MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
InLineWithOffsetJoint Class Reference

#include <inline.h>

Inheritance diagram for InLineWithOffsetJoint:
Collaboration diagram for InLineWithOffsetJoint:

Public Member Functions

 InLineWithOffsetJoint (unsigned int uL, const DofOwner *pDO, const StructNode *pN1, const StructNode *pN2, const Mat3x3 &RvTmp, const Vec3 &pTmp, const Vec3 &qTmp, flag fOut)
 
 ~InLineWithOffsetJoint (void)
 
virtual Joint::Type GetJointType (void) const
 
virtual std::ostream & Restart (std::ostream &out) const
 
virtual unsigned int iGetNumDof (void) const
 
virtual DofOrder::Order GetDofType (unsigned int i) const
 
virtual void WorkSpaceDim (integer *piNumRows, integer *piNumCols) const
 
VariableSubMatrixHandlerAssJac (VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
SubVectorHandlerAssRes (SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
DofOrder::Order GetEqType (unsigned int i) const
 
virtual void Output (OutputHandler &OH) const
 
virtual unsigned int iGetInitialNumDof (void) const
 
virtual void InitialWorkSpaceDim (integer *piNumRows, integer *piNumCols) const
 
VariableSubMatrixHandlerInitialAssJac (VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
 
SubVectorHandlerInitialAssRes (SubVectorHandler &WorkVec, const VectorHandler &XCurr)
 
virtual void GetConnectedNodes (std::vector< const Node * > &connectedNodes) const
 
- Public Member Functions inherited from Elem
 Elem (unsigned int uL, flag fOut)
 
virtual ~Elem (void)
 
virtual std::ostream & DescribeDof (std::ostream &out, const char *prefix="", bool bInitial=false) const
 
virtual void DescribeDof (std::vector< std::string > &desc, bool bInitial=false, int i=-1) const
 
virtual std::ostream & DescribeEq (std::ostream &out, const char *prefix="", bool bInitial=false) const
 
virtual void DescribeEq (std::vector< std::string > &desc, bool bInitial=false, int i=-1) const
 
virtual void AssMats (VariableSubMatrixHandler &WorkMatA, VariableSubMatrixHandler &WorkMatB, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual bool bInverseDynamics (void) const
 
void SetInverseDynamicsFlags (unsigned uIDF)
 
unsigned GetInverseDynamicsFlags (void) const
 
bool bIsErgonomy (void) const
 
bool bIsRightHandSide (void) const
 
virtual VariableSubMatrixHandlerAssJac (VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
 
virtual SubVectorHandlerAssRes (SubVectorHandler &WorkVec, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr, const VectorHandler &XPrimePrimeCurr, InverseDynamics::Order iOrder=InverseDynamics::INVERSE_DYNAMICS)
 
virtual int GetNumConnectedNodes (void) const
 
- Public Member Functions inherited from WithLabel
 WithLabel (unsigned int uL=0, const std::string &sN="")
 
virtual ~WithLabel (void)
 
void PutLabel (unsigned int uL)
 
void PutName (const std::string &sN)
 
unsigned int GetLabel (void) const
 
const std::string & GetName (void) const
 
- Public Member Functions inherited from SimulationEntity
 SimulationEntity (void)
 
virtual ~SimulationEntity (void)
 
virtual bool bIsValidIndex (unsigned int i) const
 
virtual HintParseHint (DataManager *pDM, const char *s) const
 
virtual void BeforePredict (VectorHandler &, VectorHandler &, VectorHandler &, VectorHandler &) const
 
virtual void AfterPredict (VectorHandler &X, VectorHandler &XP)
 
virtual void Update (const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual void DerivativesUpdate (const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual void AfterConvergence (const VectorHandler &X, const VectorHandler &XP)
 
virtual void AfterConvergence (const VectorHandler &X, const VectorHandler &XP, const VectorHandler &XPP)
 
virtual unsigned int iGetNumPrivData (void) const
 
virtual unsigned int iGetPrivDataIdx (const char *s) const
 
virtual doublereal dGetPrivData (unsigned int i) const
 
virtual std::ostream & OutputAppend (std::ostream &out) const
 
virtual void ReadInitialState (MBDynParser &HP)
 
- Public Member Functions inherited from ToBeOutput
 ToBeOutput (flag fOut=fDefaultOut)
 
virtual ~ToBeOutput (void)
 
virtual void OutputPrepare (OutputHandler &OH)
 
virtual void Output (OutputHandler &OH, const VectorHandler &X, const VectorHandler &XP) const
 
virtual flag fToBeOutput (void) const
 
virtual bool bToBeOutput (void) const
 
virtual void SetOutputFlag (flag f=flag(1))
 
- Public Member Functions inherited from Joint
 Joint (unsigned int uL, const DofOwner *pD, flag fOut)
 
virtual ~Joint (void)
 
virtual Elem::Type GetElemType (void) const
 
std::ostream & Output (std::ostream &out, const char *sJointName, unsigned int uLabel, const Vec3 &FLocal, const Vec3 &MLocal, const Vec3 &FGlobal, const Vec3 &MGlobal) const
 
virtual void SetInitialValue (VectorHandler &)
 
virtual void SetValue (DataManager *pDM, VectorHandler &, VectorHandler &, SimulationEntity::Hints *ph=0)
 
virtual void Update (const VectorHandler &XCurr, InverseDynamics::Order iOrder=InverseDynamics::INVERSE_DYNAMICS)
 
bool bIsPrescribedMotion (void) const
 
bool bIsTorque (void) const
 
- Public Member Functions inherited from ElemGravityOwner
 ElemGravityOwner (unsigned int uL, flag fOut)
 
virtual ~ElemGravityOwner (void)
 
virtual doublereal dGetM (void) const
 
Vec3 GetS (void) const
 
Mat3x3 GetJ (void) const
 
Vec3 GetB (void) const
 
Vec3 GetG (void) const
 
- Public Member Functions inherited from GravityOwner
 GravityOwner (void)
 
virtual ~GravityOwner (void)
 
void PutGravity (const Gravity *pG)
 
virtual bool bGetGravity (const Vec3 &X, Vec3 &Acc) const
 
- Public Member Functions inherited from ElemWithDofs
 ElemWithDofs (unsigned int uL, const DofOwner *pDO, flag fOut)
 
virtual ~ElemWithDofs (void)
 
- Public Member Functions inherited from DofOwnerOwner
 DofOwnerOwner (const DofOwner *pDO)
 
virtual ~DofOwnerOwner ()
 
virtual const DofOwnerpGetDofOwner (void) const
 
virtual integer iGetFirstIndex (void) const
 
- Public Member Functions inherited from InitialAssemblyElem
 InitialAssemblyElem (unsigned int uL, flag fOut)
 
virtual ~InitialAssemblyElem (void)
 
- Public Member Functions inherited from SubjectToInitialAssembly
 SubjectToInitialAssembly (void)
 
virtual ~SubjectToInitialAssembly (void)
 

Private Attributes

const StructNodepNode1
 
const StructNodepNode2
 
const Mat3x3 Rv
 
const Vec3 p
 
const Vec3 q
 
Vec3 F
 

Additional Inherited Members

- Public Types inherited from Elem
enum  Type {
  UNKNOWN = -1, AIRPROPERTIES = 0, INDUCEDVELOCITY, AUTOMATICSTRUCTURAL,
  GRAVITY, BODY, JOINT, JOINT_REGULARIZATION,
  BEAM, PLATE, FORCE, INERTIA,
  ELECTRICBULK, ELECTRIC, THERMAL, HYDRAULIC,
  BULK, LOADABLE, DRIVEN, EXTERNAL,
  AEROMODAL, AERODYNAMIC, GENEL, SOCKETSTREAM_OUTPUT,
  RTAI_OUTPUT = SOCKETSTREAM_OUTPUT, LASTELEMTYPE
}
 
- Public Types inherited from SimulationEntity
typedef std::vector< Hint * > Hints
 
- Public Types inherited from ToBeOutput
enum  { OUTPUT = 0x1U, OUTPUT_MASK = 0xFU, OUTPUT_PRIVATE = 0x10U, OUTPUT_PRIVATE_MASK = ~OUTPUT_MASK }
 
- Public Types inherited from Joint
enum  Type {
  UNKNOWN = -1, DISTANCE = 0, DISTANCEWITHOFFSET, CLAMP,
  SPHERICALHINGE, PIN, UNIVERSALHINGE, UNIVERSALROTATION,
  UNIVERSALPIN, PLANEHINGE, PLANEROTATION, PLANEPIN,
  AXIALROTATION, PLANEDISP, PLANEDISPPIN, INPLANE,
  INPLANECONTACT, J_INLINE, ROD, RODBEZIER,
  DEFORMABLEHINGE, DEFORMABLEDISPJOINT, DEFORMABLEJOINT, DEFORMABLEAXIALJOINT,
  VISCOUSBODY, LINEARVELOCITY, ANGULARVELOCITY, LINEARACCELERATION,
  ANGULARACCELERATION, PRISMATIC, DRIVEHINGE, DRIVEDISP,
  DRIVEDISPPIN, IMPOSEDORIENTATION, IMPOSEDDISP, IMPOSEDDISPPIN,
  IMPOSEDKINEMATICS, BEAMSLIDER, BRAKE, GIMBAL,
  POINT_SURFACE_CONTACT, TOTALJOINT, TOTALPINJOINT, TOTALEQUATION,
  TOTALREACTION, MODAL, SCREWJOINT, LASTJOINTTYPE
}
 
- Protected Member Functions inherited from Joint
virtual void OutputPrepare_int (const std::string &type, OutputHandler &OH, std::string &name)
 
- Protected Member Functions inherited from ElemGravityOwner
virtual Vec3 GetS_int (void) const
 
virtual Mat3x3 GetJ_int (void) const
 
virtual Vec3 GetB_int (void) const
 
virtual Vec3 GetG_int (void) const
 
- Protected Attributes inherited from WithLabel
unsigned int uLabel
 
std::string sName
 
- Protected Attributes inherited from ToBeOutput
flag fOutput
 
- Protected Attributes inherited from GravityOwner
GravitypGravity
 

Detailed Description

Definition at line 131 of file inline.h.

Constructor & Destructor Documentation

InLineWithOffsetJoint::InLineWithOffsetJoint ( unsigned int  uL,
const DofOwner pDO,
const StructNode pN1,
const StructNode pN2,
const Mat3x3 RvTmp,
const Vec3 pTmp,
const Vec3 qTmp,
flag  fOut 
)

Definition at line 445 of file inline.cc.

References NO_OP.

453 : Elem(uL, fOut), Joint(uL, pDO, fOut),
454 pNode1(pN1), pNode2(pN2), Rv(RvTmp), p(pTmp), q(qTmp), F(Zero3)
455 {
456  NO_OP;
457 };
const Vec3 p
Definition: inline.h:137
const Vec3 Zero3(0., 0., 0.)
Joint(unsigned int uL, const DofOwner *pD, flag fOut)
Definition: joint.cc:83
#define NO_OP
Definition: myassert.h:74
const Vec3 q
Definition: inline.h:138
const Mat3x3 Rv
Definition: inline.h:136
const StructNode * pNode1
Definition: inline.h:133
Elem(unsigned int uL, flag fOut)
Definition: elem.cc:41
const StructNode * pNode2
Definition: inline.h:134
InLineWithOffsetJoint::~InLineWithOffsetJoint ( void  )

Definition at line 460 of file inline.cc.

References NO_OP.

461 {
462  NO_OP;
463 }
#define NO_OP
Definition: myassert.h:74

Member Function Documentation

VariableSubMatrixHandler & InLineWithOffsetJoint::AssJac ( VariableSubMatrixHandler WorkMat,
doublereal  dCoef,
const VectorHandler XCurr,
const VectorHandler XPrimeCurr 
)
virtual

Implements Elem.

Definition at line 475 of file inline.cc.

References DEBUGCOUTFNAME, Vec3::dGet(), F, StructNode::GetRCurr(), StructNode::GetRRef(), StructDispNode::GetXCurr(), DofOwnerOwner::iGetFirstIndex(), StructDispNode::iGetFirstMomentumIndex(), StructDispNode::iGetFirstPositionIndex(), MatCrossCross, pNode1, pNode2, SparseSubMatrixHandler::PutCross(), SparseSubMatrixHandler::PutItem(), SparseSubMatrixHandler::PutMat3x3(), q, SparseSubMatrixHandler::ResizeReset(), Rv, and VariableSubMatrixHandler::SetSparse().

479 {
480  DEBUGCOUTFNAME("InLineWithOffsetJoint::AssJac");
481  SparseSubMatrixHandler& WM = WorkMat.SetSparse();
482 
483  WM.ResizeReset(108, 0);
484 
485  integer iNode1FirstPosIndex = pNode1->iGetFirstPositionIndex();
486  integer iNode1FirstMomIndex = pNode1->iGetFirstMomentumIndex();
487  integer iNode2FirstPosIndex = pNode2->iGetFirstPositionIndex();
488  integer iNode2FirstMomIndex = pNode2->iGetFirstMomentumIndex();
489  integer iFirstReactionIndex = iGetFirstIndex();
490 
491  Vec3 qTmp(pNode2->GetRCurr()*q);
492  Vec3 x2qmx1(pNode2->GetXCurr()+qTmp-pNode1->GetXCurr());
493  Mat3x3 RvTmp(pNode1->GetRRef()*Rv);
494  Vec3 FTmp(RvTmp*(F*dCoef));
495 
496 
497  Vec3 Tmp1_1(RvTmp.GetVec(1).Cross(x2qmx1));
498  Vec3 Tmp1_2(RvTmp.GetVec(2).Cross(x2qmx1));
499  Vec3 Tmp2_1(qTmp.Cross(RvTmp.GetVec(1)));
500  Vec3 Tmp2_2(qTmp.Cross(RvTmp.GetVec(2)));
501  for(int iCnt = 1; iCnt <= 3; iCnt++) {
502  doublereal d = RvTmp.dGet(iCnt, 1);
503  WM.PutItem(iCnt, iNode1FirstMomIndex+iCnt,
504  iFirstReactionIndex+1, -d);
505  WM.PutItem(3+iCnt, iNode2FirstMomIndex+iCnt,
506  iFirstReactionIndex+1, d);
507 
508  WM.PutItem(6+iCnt, iFirstReactionIndex+1,
509  iNode1FirstPosIndex+iCnt, -d);
510  WM.PutItem(9+iCnt, iFirstReactionIndex+1,
511  iNode2FirstPosIndex+iCnt, d);
512 
513  d = RvTmp.dGet(iCnt, 2);
514  WM.PutItem(12+iCnt, iNode1FirstMomIndex+iCnt,
515  iFirstReactionIndex+2, -d);
516  WM.PutItem(15+iCnt, iNode2FirstMomIndex+iCnt,
517  iFirstReactionIndex+2, d);
518 
519  WM.PutItem(18+iCnt, iFirstReactionIndex+2,
520  iNode1FirstPosIndex+iCnt, -d);
521  WM.PutItem(21+iCnt, iFirstReactionIndex+2,
522  iNode2FirstPosIndex+iCnt, d);
523 
524  d = Tmp1_1.dGet(iCnt);
525  WM.PutItem(24+iCnt, iNode1FirstMomIndex+3+iCnt,
526  iFirstReactionIndex+1, d);
527 
528  WM.PutItem(27+iCnt, iFirstReactionIndex+1,
529  iNode1FirstPosIndex+3+iCnt, d);
530 
531  d = Tmp1_2.dGet(iCnt);
532  WM.PutItem(30+iCnt, iNode1FirstMomIndex+3+iCnt,
533  iFirstReactionIndex+2, d);
534 
535  WM.PutItem(33+iCnt, iFirstReactionIndex+2,
536  iNode1FirstPosIndex+3+iCnt, d);
537 
538  d = Tmp2_1.dGet(iCnt);
539  WM.PutItem(36+iCnt, iNode2FirstMomIndex+3+iCnt,
540  iFirstReactionIndex+1, d);
541 
542  WM.PutItem(39+iCnt, iFirstReactionIndex+1,
543  iNode2FirstPosIndex+3+iCnt, d);
544 
545  d = Tmp2_2.dGet(iCnt);
546  WM.PutItem(42+iCnt, iNode2FirstMomIndex+3+iCnt,
547  iFirstReactionIndex+2, d);
548 
549  WM.PutItem(45+iCnt, iFirstReactionIndex+2,
550  iNode2FirstPosIndex+3+iCnt, d);
551  }
552 
553  WM.PutCross(48+1, iNode1FirstMomIndex,
554  iNode1FirstPosIndex+3, FTmp);
555  WM.PutCross(54+1, iNode1FirstMomIndex+3,
556  iNode1FirstPosIndex, -FTmp);
557  WM.PutMat3x3(60+1, iNode1FirstMomIndex+3,
558  iNode1FirstPosIndex+3, Mat3x3(MatCrossCross, x2qmx1, FTmp));
559  WM.PutCross(69+1, iNode1FirstMomIndex+3,
560  iNode2FirstPosIndex, FTmp);
561  WM.PutCross(75+1, iNode2FirstMomIndex,
562  iNode2FirstPosIndex+3, -FTmp);
563 
564  Mat3x3 MTmp(MatCrossCross, FTmp, qTmp);
565  WM.PutMat3x3(81+1, iNode1FirstMomIndex+3,
566  iNode2FirstPosIndex+3, -MTmp);
567  WM.PutMat3x3(90+1, iNode2FirstMomIndex+3,
568  iNode2FirstPosIndex+3, -MTmp);
569 
570  WM.PutMat3x3(99+1, iNode2FirstMomIndex+3,
571  iNode1FirstPosIndex+3, Mat3x3(MatCrossCross, -qTmp, FTmp));
572 
573  return WorkMat;
574 }
void PutMat3x3(integer iSubIt, integer iFirstRow, integer iFirstCol, const Mat3x3 &m)
Definition: submat.cc:1331
virtual const Mat3x3 & GetRRef(void) const
Definition: strnode.h:1006
Definition: matvec3.h:98
#define DEBUGCOUTFNAME(fname)
Definition: myassert.h:256
virtual const Mat3x3 & GetRCurr(void) const
Definition: strnode.h:1012
void ResizeReset(integer iNewRow, integer iNewCol)
Definition: submat.cc:1084
void PutCross(integer iSubIt, integer iFirstRow, integer iFirstCol, const Vec3 &v)
Definition: submat.cc:1236
const Vec3 q
Definition: inline.h:138
const Mat3x3 Rv
Definition: inline.h:136
void PutItem(integer iSubIt, integer iRow, integer iCol, const doublereal &dCoef)
Definition: submat.h:997
const StructNode * pNode1
Definition: inline.h:133
virtual integer iGetFirstMomentumIndex(void) const =0
virtual integer iGetFirstPositionIndex(void) const
Definition: strnode.h:452
virtual const Vec3 & GetXCurr(void) const
Definition: strnode.h:310
const MatCrossCross_Manip MatCrossCross
Definition: matvec3.cc:640
SparseSubMatrixHandler & SetSparse(void)
Definition: submat.h:1178
virtual integer iGetFirstIndex(void) const
Definition: dofown.h:127
double doublereal
Definition: colamd.c:52
long int integer
Definition: colamd.c:51
const StructNode * pNode2
Definition: inline.h:134

Here is the call graph for this function:

SubVectorHandler & InLineWithOffsetJoint::AssRes ( SubVectorHandler WorkVec,
doublereal  dCoef,
const VectorHandler XCurr,
const VectorHandler XPrimeCurr 
)
virtual

Implements Elem.

Definition at line 578 of file inline.cc.

References VectorHandler::Add(), ASSERT, DEBUGCOUTFNAME, Vec3::Dot(), F, StructNode::GetRCurr(), Mat3x3::GetVec(), StructDispNode::GetXCurr(), DofOwnerOwner::iGetFirstIndex(), StructDispNode::iGetFirstMomentumIndex(), p, pNode1, pNode2, Vec3::Put(), VectorHandler::PutCoef(), SubVectorHandler::PutRowIndex(), q, VectorHandler::ResizeReset(), Rv, and VectorHandler::Sub().

582 {
583  DEBUGCOUTFNAME("InLineWithOffsetJoint::AssRes");
584  WorkVec.ResizeReset(14);
585 
586  integer iNode1FirstMomIndex = pNode1->iGetFirstMomentumIndex();
587  integer iNode2FirstMomIndex = pNode2->iGetFirstMomentumIndex();
588  integer iFirstReactionIndex = iGetFirstIndex();
589 
590  /* Indici equazioni */
591  for (int iCnt = 1; iCnt <= 6; iCnt++) {
592  WorkVec.PutRowIndex(iCnt, iNode1FirstMomIndex+iCnt);
593  WorkVec.PutRowIndex(6+iCnt, iNode2FirstMomIndex+iCnt);
594  }
595 
596  /* Indice equazione vincolo */
597  WorkVec.PutRowIndex(13, iFirstReactionIndex+1);
598  WorkVec.PutRowIndex(14, iFirstReactionIndex+2);
599 
600  Vec3 qTmp(pNode2->GetRCurr()*q);
601  Vec3 x2qmx1(pNode2->GetXCurr()+qTmp-pNode1->GetXCurr());
602  Mat3x3 RvTmp = pNode1->GetRCurr()*Rv;
603 
604  /* Aggiorna i dati propri */
605  F.Put(1, XCurr(iFirstReactionIndex+1));
606  F.Put(2, XCurr(iFirstReactionIndex+2));
607  Vec3 FTmp(RvTmp*F);
608 
609  WorkVec.Add(1, FTmp);
610  WorkVec.Add(4, x2qmx1.Cross(FTmp));
611  WorkVec.Sub(7, FTmp);
612  WorkVec.Sub(10, qTmp.Cross(FTmp));
613 
614  ASSERT(dCoef != 0.);
615  WorkVec.PutCoef(13, (Rv.GetVec(1).Dot(p)-RvTmp.GetVec(1).Dot(x2qmx1))/dCoef);
616  WorkVec.PutCoef(14, (Rv.GetVec(2).Dot(p)-RvTmp.GetVec(2).Dot(x2qmx1))/dCoef);
617 
618  return WorkVec;
619 }
const Vec3 p
Definition: inline.h:137
Definition: matvec3.h:98
#define DEBUGCOUTFNAME(fname)
Definition: myassert.h:256
virtual void ResizeReset(integer)
Definition: vh.cc:55
virtual const Mat3x3 & GetRCurr(void) const
Definition: strnode.h:1012
doublereal Dot(const Vec3 &v) const
Definition: matvec3.h:243
virtual void Sub(integer iRow, const Vec3 &v)
Definition: vh.cc:78
Vec3 GetVec(unsigned short int i) const
Definition: matvec3.h:893
const Vec3 q
Definition: inline.h:138
virtual void PutRowIndex(integer iSubRow, integer iRow)=0
const Mat3x3 Rv
Definition: inline.h:136
const StructNode * pNode1
Definition: inline.h:133
virtual integer iGetFirstMomentumIndex(void) const =0
#define ASSERT(expression)
Definition: colamd.c:977
virtual void PutCoef(integer iRow, const doublereal &dCoef)=0
virtual const Vec3 & GetXCurr(void) const
Definition: strnode.h:310
virtual void Add(integer iRow, const Vec3 &v)
Definition: vh.cc:63
virtual integer iGetFirstIndex(void) const
Definition: dofown.h:127
long int integer
Definition: colamd.c:51
void Put(unsigned short int iRow, const doublereal &dCoef)
Definition: matvec3.h:276
const StructNode * pNode2
Definition: inline.h:134

Here is the call graph for this function:

virtual void InLineWithOffsetJoint::GetConnectedNodes ( std::vector< const Node * > &  connectedNodes) const
inlinevirtual

Reimplemented from Elem.

Definition at line 210 of file inline.h.

References pNode1, and pNode2.

210  {
211  connectedNodes.resize(2);
212  connectedNodes[0] = pNode1;
213  connectedNodes[1] = pNode2;
214  };
const StructNode * pNode1
Definition: inline.h:133
const StructNode * pNode2
Definition: inline.h:134
virtual DofOrder::Order InLineWithOffsetJoint::GetDofType ( unsigned int  i) const
inlinevirtual

Reimplemented from Elem.

Definition at line 163 of file inline.h.

References DofOrder::ALGEBRAIC, and ASSERT.

163  {
164  ASSERT(i >= 0 && i < 2);
165  return DofOrder::ALGEBRAIC;
166  };
#define ASSERT(expression)
Definition: colamd.c:977
DofOrder::Order InLineWithOffsetJoint::GetEqType ( unsigned int  i) const
virtual

Reimplemented from SimulationEntity.

Definition at line 622 of file inline.cc.

References DofOrder::ALGEBRAIC, ASSERTMSGBREAK, and DofOrder::DIFFERENTIAL.

623 {
624  ASSERTMSGBREAK((i>=0) and (i<15),
625  "INDEX ERROR in InLineWithOffsetJoint::GetEqType");
626  if ((i==13) or (i==14)) {
627  return DofOrder::ALGEBRAIC;
628  }
629  return DofOrder::DIFFERENTIAL;
630 }
#define ASSERTMSGBREAK(expr, msg)
Definition: myassert.h:222
virtual Joint::Type InLineWithOffsetJoint::GetJointType ( void  ) const
inlinevirtual

Implements Joint.

Definition at line 152 of file inline.h.

References Joint::J_INLINE.

152  {
153  return J_INLINE;
154  };
virtual unsigned int InLineWithOffsetJoint::iGetInitialNumDof ( void  ) const
inlinevirtual

Implements SubjectToInitialAssembly.

Definition at line 190 of file inline.h.

190  {
191  return 4;
192  };
virtual unsigned int InLineWithOffsetJoint::iGetNumDof ( void  ) const
inlinevirtual

Reimplemented from Elem.

Definition at line 159 of file inline.h.

159  {
160  return 2;
161  };
VariableSubMatrixHandler & InLineWithOffsetJoint::InitialAssJac ( VariableSubMatrixHandler WorkMat,
const VectorHandler XCurr 
)
virtual

Implements SubjectToInitialAssembly.

Definition at line 644 of file inline.cc.

References FullSubMatrixHandler::Add(), Vec3::Cross(), grad::Cross(), DEBUGCOUTFNAME, Vec3::dGet(), F, StructNode::GetRRef(), StructDispNode::GetVCurr(), StructNode::GetWRef(), StructDispNode::GetXCurr(), DofOwnerOwner::iGetFirstIndex(), StructDispNode::iGetFirstPositionIndex(), MatCross, MatCrossCross, pNode1, pNode2, FullSubMatrixHandler::PutCoef(), FullSubMatrixHandler::PutColIndex(), FullSubMatrixHandler::PutRowIndex(), q, FullSubMatrixHandler::ResizeReset(), Rv, VariableSubMatrixHandler::SetFull(), FullSubMatrixHandler::Sub(), and Mat3x3::Transpose().

646 {
647  DEBUGCOUTFNAME("InLineWithOffsetJoint::InitialAssJac");
648  FullSubMatrixHandler& WM = WorkMat.SetFull();
649  WM.ResizeReset(28, 28);
650 
651  /* Indici gdl */
652  integer iNode1FirstPosIndex = pNode1->iGetFirstPositionIndex();
653  integer iNode2FirstPosIndex = pNode2->iGetFirstPositionIndex();
654  integer iFirstReactionIndex = iGetFirstIndex();
655  integer iReactionPrimeIndex = iFirstReactionIndex+2;
656 
657  /* Indici equazioni nodi */
658  for(int iCnt = 1; iCnt <= 12; iCnt++) {
659  WM.PutRowIndex(iCnt, iNode1FirstPosIndex+iCnt);
660  WM.PutColIndex(iCnt, iNode1FirstPosIndex+iCnt);
661  WM.PutRowIndex(12+iCnt, iNode2FirstPosIndex+iCnt);
662  WM.PutColIndex(12+iCnt, iNode2FirstPosIndex+iCnt);
663  }
664 
665  /* Indici vincoli */
666  for(int iCnt = 1; iCnt <= 4; iCnt++) {
667  WM.PutRowIndex(24+iCnt, iFirstReactionIndex+iCnt);
668  WM.PutColIndex(24+iCnt, iFirstReactionIndex+iCnt);
669  }
670 
671  /* Dati */
672  Vec3 Omega1(pNode1->GetWRef());
673  Vec3 Omega2(pNode2->GetWRef());
674  Mat3x3 RvTmp(pNode1->GetRRef()*Rv);
675  Vec3 qTmp(pNode2->GetRRef()*q);
676  Vec3 x2qmx1(pNode2->GetXCurr()+qTmp-pNode1->GetXCurr());
677  Vec3 xp2qmxp1(pNode2->GetVCurr()+Omega2.Cross(qTmp)-pNode1->GetVCurr());
678 
679  /* Aggiorna i dati propri */
680  Vec3 FPrime(XCurr(iReactionPrimeIndex+1),
681  XCurr(iReactionPrimeIndex+2),
682  0.);
683  Vec3 FTmp(RvTmp*F);
684  Vec3 FPrimeTmp(RvTmp*FPrime);
685 
686  Vec3 v1(RvTmp.GetVec(1));
687  Vec3 Tmp1_1(v1.Cross(x2qmx1));
688  Vec3 Tmp2_1(Omega1.Cross(v1));
689  Vec3 Tmp3_1((Omega1.Cross(x2qmx1)-xp2qmxp1).Cross(v1));
690  Vec3 Tmp4_1(-(xp2qmxp1.Cross(v1)+x2qmx1.Cross(Tmp2_1)));
691 
692  Vec3 Tmp5_1(qTmp.Cross(v1));
693  Vec3 Tmp6_1(qTmp.Cross(v1.Cross(Omega2-Omega1)));
694  Vec3 Tmp7_1(qTmp.Cross(Omega1.Cross(v1))-v1.Cross(Omega2.Cross(qTmp)));
695 
696  Vec3 v2(RvTmp.GetVec(2));
697  Vec3 Tmp1_2(v2.Cross(x2qmx1));
698  Vec3 Tmp2_2(Omega1.Cross(v2));
699  Vec3 Tmp3_2((Omega1.Cross(x2qmx1)-xp2qmxp1).Cross(v2));
700  Vec3 Tmp4_2(-(xp2qmxp1.Cross(v2)+x2qmx1.Cross(Tmp2_2)));
701 
702  Vec3 Tmp5_2(qTmp.Cross(v2));
703  Vec3 Tmp6_2(qTmp.Cross(v2.Cross(Omega2-Omega1)));
704  Vec3 Tmp7_2(qTmp.Cross(Omega1.Cross(v2))-v2.Cross(Omega2.Cross(qTmp)));
705 
706  for(int iCnt = 1; iCnt <= 3; iCnt++) {
707  doublereal d = v1.dGet(iCnt);
708  WM.PutCoef(iCnt, 25, -d);
709  WM.PutCoef(12+iCnt, 25, d);
710 
711  WM.PutCoef(25, iCnt, -d);
712  WM.PutCoef(25, 12+iCnt, d);
713 
714  WM.PutCoef(6+iCnt, 27, -d);
715  WM.PutCoef(18+iCnt, 27, d);
716 
717  WM.PutCoef(27, 6+iCnt, -d);
718  WM.PutCoef(27, 18+iCnt, d);
719 
720  d = v2.dGet(iCnt);
721  WM.PutCoef(iCnt, 26, -d);
722  WM.PutCoef(12+iCnt, 26, d);
723 
724  WM.PutCoef(26, iCnt, -d);
725  WM.PutCoef(26, 12+iCnt, d);
726 
727  WM.PutCoef(6+iCnt, 28, -d);
728  WM.PutCoef(18+iCnt, 28, d);
729 
730  WM.PutCoef(28, 6+iCnt, -d);
731  WM.PutCoef(28, 18+iCnt, d);
732 
733  d = Tmp1_1.dGet(iCnt);
734  WM.PutCoef(3+iCnt, 25, d);
735  WM.PutCoef(25, 3+iCnt, d);
736 
737  WM.PutCoef(27, 9+iCnt, d);
738  WM.PutCoef(9+iCnt, 27, d);
739 
740  d = Tmp1_2.dGet(iCnt);
741  WM.PutCoef(3+iCnt, 26, d);
742  WM.PutCoef(26, 3+iCnt, d);
743 
744  WM.PutCoef(28, 9+iCnt, d);
745  WM.PutCoef(9+iCnt, 28, d);
746 
747  d = Tmp2_1.dGet(iCnt);
748  WM.PutCoef(27, iCnt, -d);
749  WM.PutCoef(27, 12+iCnt, d);
750 
751  WM.PutCoef(6+iCnt, 25, -d);
752  WM.PutCoef(18+iCnt, 25, d);
753 
754  d = Tmp2_2.dGet(iCnt);
755  WM.PutCoef(28, iCnt, -d);
756  WM.PutCoef(28, 12+iCnt, d);
757 
758  WM.PutCoef(6+iCnt, 26, -d);
759  WM.PutCoef(18+iCnt, 26, d);
760 
761  d = Tmp3_1.dGet(iCnt);
762  WM.PutCoef(27, 3+iCnt, d);
763 
764  d = Tmp3_2.dGet(iCnt);
765  WM.PutCoef(28, 3+iCnt, d);
766 
767  d = Tmp4_1.dGet(iCnt);
768  WM.PutCoef(9+iCnt, 25, d);
769 
770  d = Tmp4_2.dGet(iCnt);
771  WM.PutCoef(9+iCnt, 27, d);
772 
773  d = Tmp5_1.dGet(iCnt);
774  WM.PutCoef(15+iCnt, 25, d);
775  WM.PutCoef(21+iCnt, 27, d);
776 
777  WM.PutCoef(25, 15+iCnt, d);
778  WM.PutCoef(27, 21+iCnt, d);
779 
780  d = Tmp5_2.dGet(iCnt);
781  WM.PutCoef(15+iCnt, 26, d);
782  WM.PutCoef(21+iCnt, 28, d);
783 
784  WM.PutCoef(26, 15+iCnt, d);
785  WM.PutCoef(28, 21+iCnt, d);
786 
787  d = Tmp6_1.dGet(iCnt);
788  WM.PutCoef(27, 15+iCnt, d);
789 
790  d = Tmp6_2.dGet(iCnt);
791  WM.PutCoef(28, 15+iCnt, d);
792 
793  d = Tmp7_1.dGet(iCnt);
794  WM.PutCoef(21+iCnt, 25, d);
795 
796  d = Tmp7_2.dGet(iCnt);
797  WM.PutCoef(21+iCnt, 26, d);
798  }
799 
800  Mat3x3 MTmp(MatCross, FTmp);
801  WM.Add(1, 4, MTmp);
802  WM.Add(4, 13, MTmp);
803 
804  WM.Add(7, 10, MTmp);
805  WM.Add(10, 19, MTmp);
806 
807  WM.Sub(4, 1, MTmp);
808  WM.Sub(13, 4, MTmp);
809 
810  WM.Sub(19, 10, MTmp);
811  WM.Sub(10, 7, MTmp);
812 
813  MTmp = Mat3x3(MatCrossCross, x2qmx1, FTmp);
814  WM.Add(4, 4, MTmp);
815 
816  WM.Add(10, 10, MTmp);
817 
818  MTmp = Mat3x3(MatCrossCross, Omega1, FTmp) + Mat3x3(MatCross, FPrimeTmp);
819  WM.Add(7, 4, MTmp);
820  WM.Sub(19, 4, MTmp);
821 
822  MTmp = Mat3x3(MatCross, Omega1.Cross(FTmp) + FPrimeTmp);
823  WM.Sub(10, 1, MTmp);
824  WM.Add(10, 13, MTmp);
825 
826  MTmp = Mat3x3((Mat3x3(MatCross, xp2qmxp1) + Mat3x3(MatCrossCross, x2qmx1, Omega1))*Mat3x3(MatCross, FTmp)
827  + Mat3x3(MatCrossCross, x2qmx1, FPrimeTmp));
828  WM.Add(10, 4, MTmp);
829 
830  MTmp = Mat3x3(MatCrossCross, FTmp, qTmp);
831  WM.Add(16, 16, MTmp);
832  WM.Add(22, 22, MTmp);
833 
834  WM.Sub(4, 16, MTmp);
835  WM.Sub(10, 22, MTmp);
836 
837  MTmp = MTmp.Transpose();
838  WM.Add(16, 4, MTmp);
839  WM.Add(22, 10, MTmp);
840 
841  MTmp = (Mat3x3(MatCrossCross, FTmp, Omega2) + Mat3x3(MatCross, Omega1.Cross(FTmp) + FPrimeTmp))*Mat3x3(MatCross, qTmp);
842  WM.Add(22, 16, MTmp);
843  WM.Sub(10, 16, MTmp);
844 
845  MTmp = Mat3x3(MatCrossCross, qTmp.Cross(Omega2), FTmp)
846  - Mat3x3(MatCross, qTmp)*(Mat3x3(MatCrossCross, Omega1, FTmp) + Mat3x3(MatCross, FPrimeTmp));
847  WM.Add(22, 4, MTmp);
848 
849  return WorkMat;
850 }
void PutColIndex(integer iSubCol, integer iCol)
Definition: submat.h:325
Vec3 Cross(const Vec3 &v) const
Definition: matvec3.h:218
virtual const Mat3x3 & GetRRef(void) const
Definition: strnode.h:1006
Definition: matvec3.h:98
#define DEBUGCOUTFNAME(fname)
Definition: myassert.h:256
const MatCross_Manip MatCross
Definition: matvec3.cc:639
FullSubMatrixHandler & SetFull(void)
Definition: submat.h:1168
void Add(integer iRow, integer iCol, const Vec3 &v)
Definition: submat.cc:209
void PutCoef(integer iRow, integer iCol, const doublereal &dCoef)
Definition: submat.h:672
virtual const Vec3 & GetWRef(void) const
Definition: strnode.h:1024
const Vec3 q
Definition: inline.h:138
const Mat3x3 Rv
Definition: inline.h:136
const StructNode * pNode1
Definition: inline.h:133
virtual integer iGetFirstPositionIndex(void) const
Definition: strnode.h:452
VectorExpression< VectorCrossExpr< VectorLhsExpr, VectorRhsExpr >, 3 > Cross(const VectorExpression< VectorLhsExpr, 3 > &u, const VectorExpression< VectorRhsExpr, 3 > &v)
Definition: matvec.h:3248
virtual const Vec3 & GetXCurr(void) const
Definition: strnode.h:310
virtual void ResizeReset(integer, integer)
Definition: submat.cc:182
const MatCrossCross_Manip MatCrossCross
Definition: matvec3.cc:640
void PutRowIndex(integer iSubRow, integer iRow)
Definition: submat.h:311
virtual const Vec3 & GetVCurr(void) const
Definition: strnode.h:322
void Sub(integer iRow, integer iCol, const Vec3 &v)
Definition: submat.cc:215
virtual integer iGetFirstIndex(void) const
Definition: dofown.h:127
double doublereal
Definition: colamd.c:52
long int integer
Definition: colamd.c:51
const StructNode * pNode2
Definition: inline.h:134

Here is the call graph for this function:

SubVectorHandler & InLineWithOffsetJoint::InitialAssRes ( SubVectorHandler WorkVec,
const VectorHandler XCurr 
)
virtual

Implements SubjectToInitialAssembly.

Definition at line 855 of file inline.cc.

References VectorHandler::Add(), Vec3::Cross(), grad::Cross(), DEBUGCOUTFNAME, Vec3::Dot(), F, StructNode::GetRCurr(), StructDispNode::GetVCurr(), Mat3x3::GetVec(), StructNode::GetWCurr(), StructDispNode::GetXCurr(), DofOwnerOwner::iGetFirstIndex(), StructDispNode::iGetFirstPositionIndex(), p, pNode1, pNode2, Vec3::Put(), VectorHandler::PutCoef(), SubVectorHandler::PutRowIndex(), q, VectorHandler::ResizeReset(), Rv, and VectorHandler::Sub().

857 {
858  DEBUGCOUTFNAME("InLineWithOffsetJoint::InitialAssRes");
859  WorkVec.ResizeReset(28);
860 
861  /* Indici gdl */
862  integer iNode1FirstPosIndex = pNode1->iGetFirstPositionIndex();
863  integer iNode2FirstPosIndex = pNode2->iGetFirstPositionIndex();
864  integer iFirstReactionIndex = iGetFirstIndex();
865  integer iReactionPrimeIndex = iFirstReactionIndex+2;
866 
867  /* Indici equazioni nodi */
868  for(int iCnt = 1; iCnt <= 12; iCnt++) {
869  WorkVec.PutRowIndex(iCnt, iNode1FirstPosIndex+iCnt);
870  WorkVec.PutRowIndex(12+iCnt, iNode2FirstPosIndex+iCnt);
871  }
872 
873  /* Indici equazioni vincoli */
874  WorkVec.PutRowIndex(25, iFirstReactionIndex+1);
875  WorkVec.PutRowIndex(26, iFirstReactionIndex+2);
876  WorkVec.PutRowIndex(27, iReactionPrimeIndex+1);
877  WorkVec.PutRowIndex(28, iReactionPrimeIndex+2);
878 
879  /* Dati */
880  Mat3x3 RvTmp(pNode1->GetRCurr()*Rv);
881  Vec3 qTmp(pNode2->GetRCurr()*q);
882  Vec3 Omega1(pNode1->GetWCurr());
883  Vec3 Omega2(pNode2->GetWCurr());
884  Vec3 x2qmx1(pNode2->GetXCurr()+qTmp-pNode1->GetXCurr());
885  Vec3 xp2qmxp1(pNode2->GetVCurr()+Omega2.Cross(qTmp)-pNode1->GetVCurr());
886 
887  /* Aggiorna i dati propri */
888  F.Put(1, XCurr(iFirstReactionIndex+1));
889  F.Put(2, XCurr(iFirstReactionIndex+2));
890  Vec3 FPrime(XCurr(iReactionPrimeIndex+1),
891  XCurr(iReactionPrimeIndex+2),
892  0.);
893  Vec3 FTmp(RvTmp*F);
894  Vec3 FPrimeTmp(RvTmp*FPrime);
895  Vec3 Tmp(Omega1.Cross(FTmp)+FPrimeTmp);
896 
897  WorkVec.Add(1, FTmp);
898  WorkVec.Add(4, x2qmx1.Cross(FTmp)); /* ( = -p/\F) */
899  WorkVec.Add(7, Tmp);
900  WorkVec.Add(10, xp2qmxp1.Cross(FTmp)+x2qmx1.Cross(Tmp));
901  WorkVec.Sub(13, FTmp);
902  WorkVec.Sub(16, qTmp.Cross(FTmp));
903  WorkVec.Sub(19, Tmp);
904  WorkVec.Sub(22, qTmp.Cross(Tmp)+(Omega2.Cross(qTmp)).Cross(FTmp));
905 
906  WorkVec.PutCoef(25, Rv.GetVec(1).Dot(p)-RvTmp.GetVec(1).Dot(x2qmx1));
907  WorkVec.PutCoef(26, Rv.GetVec(2).Dot(p)-RvTmp.GetVec(2).Dot(x2qmx1));
908  WorkVec.PutCoef(27, x2qmx1.Dot(RvTmp.GetVec(1).Cross(Omega1))-RvTmp.GetVec(1).Dot(xp2qmxp1));
909  WorkVec.PutCoef(28, x2qmx1.Dot(RvTmp.GetVec(2).Cross(Omega1))-RvTmp.GetVec(2).Dot(xp2qmxp1));
910 
911  return WorkVec;
912 }
const Vec3 p
Definition: inline.h:137
Vec3 Cross(const Vec3 &v) const
Definition: matvec3.h:218
Definition: matvec3.h:98
#define DEBUGCOUTFNAME(fname)
Definition: myassert.h:256
virtual void ResizeReset(integer)
Definition: vh.cc:55
virtual const Mat3x3 & GetRCurr(void) const
Definition: strnode.h:1012
doublereal Dot(const Vec3 &v) const
Definition: matvec3.h:243
virtual void Sub(integer iRow, const Vec3 &v)
Definition: vh.cc:78
Vec3 GetVec(unsigned short int i) const
Definition: matvec3.h:893
const Vec3 q
Definition: inline.h:138
virtual void PutRowIndex(integer iSubRow, integer iRow)=0
const Mat3x3 Rv
Definition: inline.h:136
const StructNode * pNode1
Definition: inline.h:133
virtual integer iGetFirstPositionIndex(void) const
Definition: strnode.h:452
virtual const Vec3 & GetWCurr(void) const
Definition: strnode.h:1030
virtual void PutCoef(integer iRow, const doublereal &dCoef)=0
VectorExpression< VectorCrossExpr< VectorLhsExpr, VectorRhsExpr >, 3 > Cross(const VectorExpression< VectorLhsExpr, 3 > &u, const VectorExpression< VectorRhsExpr, 3 > &v)
Definition: matvec.h:3248
virtual const Vec3 & GetXCurr(void) const
Definition: strnode.h:310
virtual void Add(integer iRow, const Vec3 &v)
Definition: vh.cc:63
virtual const Vec3 & GetVCurr(void) const
Definition: strnode.h:322
virtual integer iGetFirstIndex(void) const
Definition: dofown.h:127
long int integer
Definition: colamd.c:51
void Put(unsigned short int iRow, const doublereal &dCoef)
Definition: matvec3.h:276
const StructNode * pNode2
Definition: inline.h:134

Here is the call graph for this function:

virtual void InLineWithOffsetJoint::InitialWorkSpaceDim ( integer piNumRows,
integer piNumCols 
) const
inlinevirtual

Implements SubjectToInitialAssembly.

Definition at line 194 of file inline.h.

194  {
195  *piNumRows = 24+4;
196  *piNumCols = 24+4;
197  };
void InLineWithOffsetJoint::Output ( OutputHandler OH) const
virtual

Reimplemented from ToBeOutput.

Definition at line 632 of file inline.cc.

References ToBeOutput::bToBeOutput(), F, WithLabel::GetLabel(), StructNode::GetRCurr(), OutputHandler::Joints(), Joint::Output(), pNode1, Rv, and Zero3.

633 {
634  if (bToBeOutput()) {
635  Mat3x3 RvTmp(pNode1->GetRCurr()*Rv);
636  Joint::Output(OH.Joints(), "inline", GetLabel(),
637  F, Zero3, RvTmp*F, Zero3) << std::endl;
638  }
639 }
const Vec3 Zero3(0., 0., 0.)
virtual bool bToBeOutput(void) const
Definition: output.cc:890
virtual const Mat3x3 & GetRCurr(void) const
Definition: strnode.h:1012
const Mat3x3 Rv
Definition: inline.h:136
const StructNode * pNode1
Definition: inline.h:133
std::ostream & Joints(void) const
Definition: output.h:443
std::ostream & Output(std::ostream &out, const char *sJointName, unsigned int uLabel, const Vec3 &FLocal, const Vec3 &MLocal, const Vec3 &FGlobal, const Vec3 &MGlobal) const
Definition: joint.cc:138
unsigned int GetLabel(void) const
Definition: withlab.cc:62

Here is the call graph for this function:

std::ostream & InLineWithOffsetJoint::Restart ( std::ostream &  out) const
virtual

Implements Elem.

Definition at line 467 of file inline.cc.

References Joint::Restart().

468 {
469  Joint::Restart(out) << ", in line, not implemented yet" << std::endl;
470  return out;
471 }
virtual std::ostream & Restart(std::ostream &out) const
Definition: joint.h:195

Here is the call graph for this function:

virtual void InLineWithOffsetJoint::WorkSpaceDim ( integer piNumRows,
integer piNumCols 
) const
inlinevirtual

Implements Elem.

Definition at line 168 of file inline.h.

168  {
169  *piNumRows = 12+2;
170  *piNumCols = 12+2;
171  };

Member Data Documentation

Vec3 InLineWithOffsetJoint::F
private

Definition at line 140 of file inline.h.

Referenced by AssJac(), AssRes(), InitialAssJac(), InitialAssRes(), and Output().

const Vec3 InLineWithOffsetJoint::p
private

Definition at line 137 of file inline.h.

Referenced by AssRes(), and InitialAssRes().

const StructNode* InLineWithOffsetJoint::pNode1
private

Definition at line 133 of file inline.h.

Referenced by AssJac(), AssRes(), GetConnectedNodes(), InitialAssJac(), InitialAssRes(), and Output().

const StructNode* InLineWithOffsetJoint::pNode2
private

Definition at line 134 of file inline.h.

Referenced by AssJac(), AssRes(), GetConnectedNodes(), InitialAssJac(), and InitialAssRes().

const Vec3 InLineWithOffsetJoint::q
private

Definition at line 138 of file inline.h.

Referenced by AssJac(), AssRes(), InitialAssJac(), and InitialAssRes().

const Mat3x3 InLineWithOffsetJoint::Rv
private

Definition at line 136 of file inline.h.

Referenced by AssJac(), AssRes(), InitialAssJac(), InitialAssRes(), and Output().


The documentation for this class was generated from the following files: