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

#include <vehj2.h>

Inheritance diagram for DeformableDispJoint:
Collaboration diagram for DeformableDispJoint:

Public Member Functions

 DeformableDispJoint (unsigned int uL, const DofOwner *pDO, const ConstitutiveLaw3D *pCL, const StructNode *pN1, const StructNode *pN2, const Vec3 &tilde_f1, const Vec3 &tilde_f2, const Mat3x3 &tilde_R1, const Mat3x3 &tilde_R2, flag fOut)
 
virtual ~DeformableDispJoint (void)
 
virtual Joint::Type GetJointType (void) const
 
virtual std::ostream & Restart (std::ostream &out) const
 
void OutputPrepare (OutputHandler &OH)
 
virtual void Output (OutputHandler &OH) const
 
void SetValue (DataManager *pDM, VectorHandler &X, VectorHandler &XP, SimulationEntity::Hints *ph=0)
 
virtual HintParseHint (DataManager *pDM, const char *s) const
 
virtual ConstLawType::Type GetConstLawType (void) const =0
 
virtual unsigned int iGetNumDof (void) const
 
virtual DofOrder::Order GetDofType (unsigned int) const
 
virtual void WorkSpaceDim (integer *piNumRows, integer *piNumCols) const
 
virtual bool bInverseDynamics (void) const
 
virtual unsigned int iGetInitialNumDof (void) const
 
virtual VariableSubMatrixHandlerAssJac (VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual void AssMats (VariableSubMatrixHandler &WorkMatA, VariableSubMatrixHandler &WorkMatB, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual unsigned int iGetNumPrivData (void) const
 
virtual unsigned int iGetPrivDataIdx (const char *s) const
 
virtual doublereal dGetPrivData (unsigned int i) const
 
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 SubVectorHandlerAssRes (SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)=0
 
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 DofOrder::Order GetEqType (unsigned int i) 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 void ReadInitialState (MBDynParser &HP)
 
- Public Member Functions inherited from ToBeOutput
 ToBeOutput (flag fOut=fDefaultOut)
 
virtual ~ToBeOutput (void)
 
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 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)
 
virtual void InitialWorkSpaceDim (integer *piNumRows, integer *piNumCols) const =0
 
virtual VariableSubMatrixHandlerInitialAssJac (VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)=0
 
virtual SubVectorHandlerInitialAssRes (SubVectorHandler &WorkVec, const VectorHandler &XCurr)=0
 
- Public Member Functions inherited from ConstitutiveLawOwner< T, Tder >
 ConstitutiveLawOwner (const ConstitutiveLaw< T, Tder > *pCL)
 
virtual ~ConstitutiveLawOwner (void)
 
ConstitutiveLaw< T, Tder > * pGetConstLaw (void) const
 
void Update (const T &Eps, const T &EpsPrime=mb_zero< T >())
 
void AfterConvergence (const T &Eps, const T &EpsPrime=mb_zero< T >())
 
const T & GetF (void) const
 
const Tder & GetFDE (void) const
 
const Tder & GetFDEPrime (void) const
 
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 std::ostream & OutputAppend (std::ostream &out) const
 

Protected Member Functions

void AssMatF (FullSubMatrixHandler &WMA, const Vec3 &d1, const Vec3 &d2, doublereal dCoef)
 
void AssMatFDE (FullSubMatrixHandler &WMA, const Vec3 &d1, const Vec3 &d2, doublereal dCoef)
 
void AssMatFDEPrime (FullSubMatrixHandler &WMA, FullSubMatrixHandler &WMB, const Vec3 &d1, const Vec3 &d2, doublereal dCoef)
 
virtual void AssMats (FullSubMatrixHandler &WMA, FullSubMatrixHandler &WMB, doublereal dCoef)=0
 
- 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

const StructNodepNode1
 
const StructNodepNode2
 
Vec3 tilde_f1
 
Vec3 tilde_f2
 
Mat3x3 tilde_R1h
 
Mat3x3 tilde_R2h
 
Vec3 tilde_R1hT_tilde_f1
 
Vec3 tilde_d
 
Vec3 tilde_dPrime
 
bool bFirstRes
 
Vec3 F
 
Mat3x3 FDE
 
Mat3x3 FDEPrime
 
- Protected Attributes inherited from WithLabel
unsigned int uLabel
 
std::string sName
 
- Protected Attributes inherited from ToBeOutput
flag fOutput
 
- Protected Attributes inherited from GravityOwner
GravitypGravity
 
- Protected Attributes inherited from ConstitutiveLawOwner< T, Tder >
ConstitutiveLaw< T, Tder > * pConstLaw
 

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
}
 

Detailed Description

Definition at line 43 of file vehj2.h.

Constructor & Destructor Documentation

DeformableDispJoint::DeformableDispJoint ( unsigned int  uL,
const DofOwner pDO,
const ConstitutiveLaw3D pCL,
const StructNode pN1,
const StructNode pN2,
const Vec3 tilde_f1,
const Vec3 tilde_f2,
const Mat3x3 tilde_R1,
const Mat3x3 tilde_R2,
flag  fOut 
)

Definition at line 43 of file vehj2.cc.

References ASSERT, StructDispNode::GetNodeType(), pNode1, pNode2, and Node::STRUCTURAL.

53 : Elem(uL, fOut),
54 Joint(uL, pDO, fOut),
56 pNode1(pN1), pNode2(pN2),
57 tilde_f1(tilde_f1), tilde_f2(tilde_f2),
61 # ifdef USE_NETCDF
62 Var_tilde_d(0),
63 Var_tilde_dPrime(0),
64 Var_d(0),
65 Var_dPrime(0),
66 #endif // USE_NETCDF
67 bFirstRes(false), F(Zero3)
68 {
69  ASSERT(pNode1 != NULL);
70  ASSERT(pNode2 != NULL);
73 }
const Vec3 Zero3(0., 0., 0.)
Vec3 tilde_dPrime
Definition: vehj2.h:55
virtual Node::Type GetNodeType(void) const
Definition: strnode.cc:145
ConstitutiveLawOwner< Vec3, Mat3x3 > ConstitutiveLaw3DOwner
Definition: constltp.h:379
Joint(unsigned int uL, const DofOwner *pD, flag fOut)
Definition: joint.cc:83
const StructNode * pNode1
Definition: vehj2.h:46
Mat3x3 tilde_R2h
Definition: vehj2.h:51
Vec3 tilde_R1hT_tilde_f1
Definition: vehj2.h:52
Mat3x3 tilde_R1h
Definition: vehj2.h:50
#define ASSERT(expression)
Definition: colamd.c:977
Mat3x3 Transpose(void) const
Definition: matvec3.h:816
const StructNode * pNode2
Definition: vehj2.h:47
Elem(unsigned int uL, flag fOut)
Definition: elem.cc:41

Here is the call graph for this function:

DeformableDispJoint::~DeformableDispJoint ( void  )
virtual

Definition at line 76 of file vehj2.cc.

References NO_OP.

77 {
78  NO_OP;
79 }
#define NO_OP
Definition: myassert.h:74

Member Function Documentation

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

Implements Elem.

Definition at line 248 of file vehj2.cc.

References AssMats(), StructDispNode::iGetFirstMomentumIndex(), StructDispNode::iGetFirstPositionIndex(), pNode1, pNode2, FullSubMatrixHandler::PutColIndex(), FullSubMatrixHandler::PutRowIndex(), FullSubMatrixHandler::ResizeReset(), VariableSubMatrixHandler::SetFull(), and WorkSpaceDim().

Referenced by ElasticDispJoint::AssJac().

252 {
253  FullSubMatrixHandler& WM = WorkMat.SetFull();
254 
255  /* Dimensiona e resetta la matrice di lavoro */
256  integer iNumRows = 0;
257  integer iNumCols = 0;
258  WorkSpaceDim(&iNumRows, &iNumCols);
259  WM.ResizeReset(iNumRows, iNumCols);
260 
261  /* Recupera gli indici */
262  integer iNode1FirstPosIndex = pNode1->iGetFirstPositionIndex();
263  integer iNode1FirstMomIndex = pNode1->iGetFirstMomentumIndex();
264  integer iNode2FirstPosIndex = pNode2->iGetFirstPositionIndex();
265  integer iNode2FirstMomIndex = pNode2->iGetFirstMomentumIndex();
266 
267  /* Setta gli indici della matrice */
268  for (int iCnt = 1; iCnt <= 6; iCnt++) {
269  WM.PutRowIndex(iCnt, iNode1FirstMomIndex + iCnt);
270  WM.PutColIndex(iCnt, iNode1FirstPosIndex + iCnt);
271  WM.PutRowIndex(6 + iCnt, iNode2FirstMomIndex + iCnt);
272  WM.PutColIndex(6 + iCnt, iNode2FirstPosIndex + iCnt);
273  }
274 
275  AssMats(WM, WM, dCoef);
276 
277  return WorkMat;
278 }
virtual void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: vehj2.h:132
void PutColIndex(integer iSubCol, integer iCol)
Definition: submat.h:325
FullSubMatrixHandler & SetFull(void)
Definition: submat.h:1168
const StructNode * pNode1
Definition: vehj2.h:46
virtual integer iGetFirstMomentumIndex(void) const =0
virtual integer iGetFirstPositionIndex(void) const
Definition: strnode.h:452
virtual void ResizeReset(integer, integer)
Definition: submat.cc:182
virtual void AssMats(FullSubMatrixHandler &WMA, FullSubMatrixHandler &WMB, doublereal dCoef)=0
void PutRowIndex(integer iSubRow, integer iRow)
Definition: submat.h:311
const StructNode * pNode2
Definition: vehj2.h:47
long int integer
Definition: colamd.c:51

Here is the call graph for this function:

void DeformableDispJoint::AssMatF ( FullSubMatrixHandler WMA,
const Vec3 d1,
const Vec3 d2,
doublereal  dCoef 
)
protected

Definition at line 83 of file vehj2.cc.

References FullSubMatrixHandler::Add(), F, MatCross, MatCrossCross, and FullSubMatrixHandler::Sub().

Referenced by ElasticDispJoint::AssMats(), ElasticDispJointInv::AssMats(), ViscousDispJoint::AssMats(), and ViscoElasticDispJoint::AssMats().

85 {
86  /* force */
87  Vec3 FTmp(F*dCoef);
88 
89  /* - [ F x ] * dCoef */
90  Mat3x3 MTmp(MatCross, FTmp);
91  WMA.Add(1, 4, MTmp);
92  WMA.Sub(6 + 1, 4, MTmp);
93  WMA.Sub(4, 1, MTmp);
94  WMA.Add(4, 6 + 1, MTmp);
95 
96  /* [ di x ] [ F x ] * dCoef */
97  WMA.Add(4, 4, Mat3x3(MatCrossCross, d1, FTmp));
98  WMA.Sub(6 + 4, 4, Mat3x3(MatCrossCross, d2, FTmp));
99 
100  /* [ F x ] [ d2 x ] * dCoef */
101  MTmp = Mat3x3(MatCrossCross, FTmp, d2);
102  WMA.Sub(4, 6 + 4, MTmp);
103  WMA.Add(6 + 4, 6 + 4, MTmp);
104 }
Definition: matvec3.h:98
const MatCross_Manip MatCross
Definition: matvec3.cc:639
void Add(integer iRow, integer iCol, const Vec3 &v)
Definition: submat.cc:209
const MatCrossCross_Manip MatCrossCross
Definition: matvec3.cc:640
void Sub(integer iRow, integer iCol, const Vec3 &v)
Definition: submat.cc:215

Here is the call graph for this function:

void DeformableDispJoint::AssMatFDE ( FullSubMatrixHandler WMA,
const Vec3 d1,
const Vec3 d2,
doublereal  dCoef 
)
protected

Definition at line 108 of file vehj2.cc.

References FullSubMatrixHandler::Add(), Vec3::Cross(), FDE, MatCross, and FullSubMatrixHandler::Sub().

Referenced by ElasticDispJoint::AssMats(), ElasticDispJointInv::AssMats(), and ViscoElasticDispJoint::AssMats().

110 {
111  /* F/d */
112  Mat3x3 DTmp(FDE*dCoef);
113 
114  /* Force equations */
115 
116  /* delta x1 */
117  WMA.Add(1, 1, DTmp);
118  WMA.Sub(6 + 1, 1, DTmp);
119 
120  /* delta x2 */
121  WMA.Sub(1, 6 + 1, DTmp);
122  WMA.Add(6 + 1, 6 + 1, DTmp);
123 
124  /* delta g1 */
125  Mat3x3 MTmp(DTmp*Mat3x3(MatCross, d1));
126  WMA.Sub(1, 4, MTmp);
127  WMA.Add(6 + 1, 4, MTmp);
128 
129  /* delta g2 */
130  MTmp = DTmp*Mat3x3(MatCross, d2);
131  WMA.Add(1, 6 + 4, MTmp);
132  WMA.Sub(6 + 1, 6 + 4, MTmp);
133 
134  /* Moment equation on node 1 */
135  /* d1 x F/d */
136  MTmp = d1.Cross(DTmp);
137 
138  /* delta x1 */
139  WMA.Add(4, 1, MTmp);
140 
141  /* delta x2 */
142  WMA.Sub(4, 6 + 1, MTmp);
143 
144  /* delta g1 */
145  WMA.Sub(4, 4, MTmp*Mat3x3(MatCross, d1));
146 
147  /* delta g2 */
148  WMA.Add(4, 6 + 4, MTmp*Mat3x3(MatCross, d2));
149 
150  /* Moment equation on node 2 */
151  MTmp = d2.Cross(DTmp);
152 
153  /* delta x1 */
154  WMA.Sub(6 + 4, 1, MTmp);
155 
156  /* delta x2 */
157  WMA.Add(6 + 4, 6 + 1, MTmp);
158 
159  /* delta g1 */
160  WMA.Add(6 + 4, 4, MTmp*Mat3x3(MatCross, d1));
161 
162  /* delta g2 */
163  WMA.Sub(6 + 4, 6 + 4, MTmp*Mat3x3(MatCross, d2));
164 }
Vec3 Cross(const Vec3 &v) const
Definition: matvec3.h:218
const MatCross_Manip MatCross
Definition: matvec3.cc:639
void Add(integer iRow, integer iCol, const Vec3 &v)
Definition: submat.cc:209
void Sub(integer iRow, integer iCol, const Vec3 &v)
Definition: submat.cc:215

Here is the call graph for this function:

void DeformableDispJoint::AssMatFDEPrime ( FullSubMatrixHandler WMA,
FullSubMatrixHandler WMB,
const Vec3 d1,
const Vec3 d2,
doublereal  dCoef 
)
protected

Definition at line 168 of file vehj2.cc.

References FullSubMatrixHandler::Add(), Vec3::Cross(), FDEPrime, StructDispNode::GetVCurr(), StructNode::GetWCurr(), MatCross, MatCrossCross, pNode1, pNode2, and FullSubMatrixHandler::Sub().

Referenced by ViscousDispJoint::AssMats(), and ViscoElasticDispJoint::AssMats().

171 {
172  /* F/dot{d} */
173  WMB.Add(1, 1, FDEPrime);
174  WMB.Sub(6 + 1, 1, FDEPrime);
175  WMB.Sub(1, 6 + 1, FDEPrime);
176  WMB.Add(6 + 1, 6 + 1, FDEPrime);
177 
178  Mat3x3 MTmp(d1.Cross(FDEPrime));
179 
180  WMB.Add(4, 1, MTmp);
181  WMB.Sub(4, 6 + 1, MTmp);
182 
183  MTmp = d2.Cross(FDEPrime);
184 
185  WMB.Sub(6 + 4, 1, MTmp);
186  WMB.Add(6 + 4, 6 + 1, MTmp);
187 
188  /* F/dot{d} * [ d2 x ] */
189  MTmp = FDEPrime*Mat3x3(MatCross, d2);
190 
191  WMB.Add(1, 6 + 4, MTmp);
192  WMB.Sub(6 + 1, 6 + 4, MTmp);
193 
194  WMB.Add(4, 6 + 4, d1.Cross(MTmp));
195  WMB.Sub(6 + 4, 6 + 4, d2.Cross(MTmp));
196 
197  /* F/dot{d} * [ d1 x ] */
198  MTmp = FDEPrime*Mat3x3(MatCross, d1);
199 
200  WMB.Sub(1, 4, MTmp);
201  WMB.Add(6 + 1, 4, MTmp);
202 
203  WMB.Sub(4, 4, d1.Cross(MTmp));
204  WMB.Add(6 + 4, 4, d2.Cross(MTmp));
205 
206  /* F/dot{d} * [ ( w1 * dCoef ) x ] */
207  Mat3x3 CTmp = FDEPrime*Mat3x3(MatCross, pNode1->GetWCurr()*dCoef);
208 
209  WMA.Sub(1, 1, CTmp);
210  WMA.Add(6 + 1, 1, CTmp);
211  WMA.Add(1, 6 + 1, CTmp);
212  WMA.Sub(6 + 1, 6 + 1, CTmp);
213 
214  MTmp = d1.Cross(CTmp);
215 
216  WMA.Sub(4, 1, MTmp);
217  WMA.Add(4, 6 + 1, MTmp);
218 
219  MTmp = d2.Cross(CTmp);
220 
221  WMA.Add(6 + 4, 1, MTmp);
222  WMA.Sub(6 + 4, 6 + 1, MTmp);
223 
224  /* F/dot{d} * ( [ d1Prime x ] - [ w1 x ] [ d1 x ] ) * dCoef */
225  Vec3 d1Prime(pNode2->GetVCurr()
226  + pNode2->GetWCurr().Cross(d2)
227  - pNode1->GetVCurr());
228  MTmp = FDEPrime*(Mat3x3(MatCross, d1Prime*dCoef) - Mat3x3(MatCrossCross, pNode1->GetWCurr(), d1*dCoef));
229  WMA.Sub(1, 4, MTmp);
230  WMA.Add(6 + 1, 4, MTmp);
231 
232  WMA.Sub(4, 4, d1.Cross(MTmp));
233  WMA.Add(6 + 4, 4, d2.Cross(MTmp));
234 
235  /* F/dot{d} * ( [ ( w2 x d2 ) x ] - [ w1 x ] [ d2 x ] ) * dCoef */
236  Vec3 d2Prime(pNode2->GetWCurr().Cross(d2));
237  MTmp = FDEPrime*(Mat3x3(MatCross, d2Prime*dCoef)
238  - Mat3x3(MatCrossCross, pNode1->GetWCurr(), d2*dCoef));
239  WMA.Add(1, 6 + 4, MTmp);
240  WMA.Sub(6 + 1, 6 + 4, MTmp);
241 
242  WMA.Add(4, 6 + 4, d1.Cross(MTmp));
243  WMA.Sub(6 + 4, 6 + 4, d2.Cross(MTmp));
244 }
Mat3x3 FDEPrime
Definition: vehj2.h:62
Vec3 Cross(const Vec3 &v) const
Definition: matvec3.h:218
Definition: matvec3.h:98
const MatCross_Manip MatCross
Definition: matvec3.cc:639
void Add(integer iRow, integer iCol, const Vec3 &v)
Definition: submat.cc:209
const StructNode * pNode1
Definition: vehj2.h:46
virtual const Vec3 & GetWCurr(void) const
Definition: strnode.h:1030
const MatCrossCross_Manip MatCrossCross
Definition: matvec3.cc:640
const StructNode * pNode2
Definition: vehj2.h:47
virtual const Vec3 & GetVCurr(void) const
Definition: strnode.h:322
void Sub(integer iRow, integer iCol, const Vec3 &v)
Definition: submat.cc:215

Here is the call graph for this function:

virtual void DeformableDispJoint::AssMats ( FullSubMatrixHandler WMA,
FullSubMatrixHandler WMB,
doublereal  dCoef 
)
protectedpure virtual
void DeformableDispJoint::AssMats ( VariableSubMatrixHandler WorkMatA,
VariableSubMatrixHandler WorkMatB,
const VectorHandler XCurr,
const VectorHandler XPrimeCurr 
)
virtual

Reimplemented from Elem.

Reimplemented in ElasticDispJointInv, and ElasticDispJoint.

Definition at line 282 of file vehj2.cc.

References AssMats(), StructDispNode::iGetFirstMomentumIndex(), StructDispNode::iGetFirstPositionIndex(), pNode1, pNode2, FullSubMatrixHandler::PutColIndex(), FullSubMatrixHandler::PutRowIndex(), FullSubMatrixHandler::ResizeReset(), VariableSubMatrixHandler::SetFull(), and WorkSpaceDim().

286 {
287  FullSubMatrixHandler& WMA = WorkMatA.SetFull();
288  FullSubMatrixHandler& WMB = WorkMatB.SetFull();
289 
290  /* Dimensiona e resetta la matrice di lavoro */
291  integer iNumRows = 0;
292  integer iNumCols = 0;
293  WorkSpaceDim(&iNumRows, &iNumCols);
294  WMA.ResizeReset(iNumRows, iNumCols);
295  WMB.ResizeReset(iNumRows, iNumCols);
296 
297  /* Recupera gli indici */
298  integer iNode1FirstPosIndex = pNode1->iGetFirstPositionIndex();
299  integer iNode1FirstMomIndex = pNode1->iGetFirstMomentumIndex();
300  integer iNode2FirstPosIndex = pNode2->iGetFirstPositionIndex();
301  integer iNode2FirstMomIndex = pNode2->iGetFirstMomentumIndex();
302 
303  /* Setta gli indici della matrice */
304  for (int iCnt = 1; iCnt <= 6; iCnt++) {
305  WMA.PutRowIndex(iCnt, iNode1FirstMomIndex + iCnt);
306  WMA.PutColIndex(iCnt, iNode1FirstPosIndex + iCnt);
307  WMA.PutRowIndex(6 + iCnt, iNode2FirstMomIndex + iCnt);
308  WMA.PutColIndex(6 + iCnt, iNode2FirstPosIndex + iCnt);
309 
310  WMB.PutRowIndex(iCnt, iNode1FirstMomIndex + iCnt);
311  WMB.PutColIndex(iCnt, iNode1FirstPosIndex + iCnt);
312  WMB.PutRowIndex(6 + iCnt, iNode2FirstMomIndex + iCnt);
313  WMB.PutColIndex(6 + iCnt, iNode2FirstPosIndex + iCnt);
314  }
315 
316  AssMats(WMA, WMB, 1.);
317 }
virtual void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: vehj2.h:132
void PutColIndex(integer iSubCol, integer iCol)
Definition: submat.h:325
FullSubMatrixHandler & SetFull(void)
Definition: submat.h:1168
const StructNode * pNode1
Definition: vehj2.h:46
virtual integer iGetFirstMomentumIndex(void) const =0
virtual integer iGetFirstPositionIndex(void) const
Definition: strnode.h:452
virtual void ResizeReset(integer, integer)
Definition: submat.cc:182
virtual void AssMats(FullSubMatrixHandler &WMA, FullSubMatrixHandler &WMB, doublereal dCoef)=0
void PutRowIndex(integer iSubRow, integer iRow)
Definition: submat.h:311
const StructNode * pNode2
Definition: vehj2.h:47
long int integer
Definition: colamd.c:51

Here is the call graph for this function:

bool DeformableDispJoint::bInverseDynamics ( void  ) const
virtual

Reimplemented from Elem.

Definition at line 478 of file vehj2.cc.

479 {
480  return true;
481 }
doublereal DeformableDispJoint::dGetPrivData ( unsigned int  i) const
virtual

Reimplemented from ConstitutiveLawOwner< T, Tder >.

Definition at line 543 of file vehj2.cc.

References ASSERT, Vec3::Cross(), ConstitutiveLawOwner< T, Tder >::dGetPrivData(), ConstitutiveLawOwner< T, Tder >::GetF(), StructNode::GetRCurr(), StructDispNode::GetVCurr(), StructNode::GetWCurr(), StructDispNode::GetXCurr(), iGetNumPrivData(), pNode1, pNode2, tilde_d, tilde_dPrime, tilde_f2, tilde_R1h, and tilde_R1hT_tilde_f1.

544 {
545  ASSERT(i > 0);
546 
547  ASSERT(i <= iGetNumPrivData());
548 
549  switch (i) {
550  case 1:
551  case 2:
552  case 3:
553  {
554  /* FIXME: allows simplifications by using only the column
555  * and the components of tilde_R1h that is actually required */
556  Vec3 d2(pNode2->GetRCurr()*tilde_f2);
558  Vec3 tilde_d(R1h.MulTV(pNode2->GetXCurr() + d2 - pNode1->GetXCurr()) - tilde_R1hT_tilde_f1);
559  return tilde_d(i);
560  }
561 
562  case 4:
563  case 5:
564  case 6:
565  {
566  Vec3 d2(pNode2->GetRCurr()*tilde_f2);
567  Mat3x3 R1h(pNode1->GetRCurr());
568  Vec3 d1(pNode2->GetXCurr() + d2 - pNode1->GetXCurr());
569  Vec3 d1Prime(pNode2->GetVCurr() + pNode2->GetWCurr().Cross(d2) - pNode1->GetVCurr());
570  Vec3 tilde_dPrime(R1h.MulTV(d1Prime - pNode1->GetWCurr().Cross(d1)));
571 
572  return tilde_dPrime(i - 3);
573  }
574 
575  case 7:
576  case 8:
577  case 9:
578  return GetF()(i - 6);
579 
580  default:
582  }
583 }
Vec3 Cross(const Vec3 &v) const
Definition: matvec3.h:218
Vec3 tilde_dPrime
Definition: vehj2.h:55
Definition: matvec3.h:98
virtual const Mat3x3 & GetRCurr(void) const
Definition: strnode.h:1012
const StructNode * pNode1
Definition: vehj2.h:46
Vec3 tilde_R1hT_tilde_f1
Definition: vehj2.h:52
Mat3x3 tilde_R1h
Definition: vehj2.h:50
virtual const Vec3 & GetWCurr(void) const
Definition: strnode.h:1030
#define ASSERT(expression)
Definition: colamd.c:977
virtual const Vec3 & GetXCurr(void) const
Definition: strnode.h:310
virtual doublereal dGetPrivData(unsigned int i) const
Definition: constltp.h:369
const T & GetF(void) const
Definition: constltp.h:293
const StructNode * pNode2
Definition: vehj2.h:47
virtual const Vec3 & GetVCurr(void) const
Definition: strnode.h:322
virtual unsigned int iGetNumPrivData(void) const
Definition: vehj2.cc:484

Here is the call graph for this function:

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

Reimplemented from Elem.

Definition at line 167 of file vehj2.h.

References pNode1, and pNode2.

167  {
168  connectedNodes.resize(2);
169  connectedNodes[0] = pNode1;
170  connectedNodes[1] = pNode2;
171  };
const StructNode * pNode1
Definition: vehj2.h:46
const StructNode * pNode2
Definition: vehj2.h:47
virtual ConstLawType::Type DeformableDispJoint::GetConstLawType ( void  ) const
pure virtual
virtual DofOrder::Order DeformableDispJoint::GetDofType ( unsigned int  ) const
inlinevirtual

Reimplemented from ConstitutiveLawOwner< T, Tder >.

Definition at line 127 of file vehj2.h.

References DofOrder::UNKNOWN.

127  {
128  return DofOrder::UNKNOWN;
129  };
virtual Joint::Type DeformableDispJoint::GetJointType ( void  ) const
inlinevirtual

Implements Joint.

Definition at line 103 of file vehj2.h.

References Joint::DEFORMABLEDISPJOINT.

103  {
105  };
virtual unsigned int DeformableDispJoint::iGetInitialNumDof ( void  ) const
inlinevirtual

Implements SubjectToInitialAssembly.

Definition at line 141 of file vehj2.h.

141  {
142  return 0;
143  };
virtual unsigned int DeformableDispJoint::iGetNumDof ( void  ) const
inlinevirtual

Reimplemented from ConstitutiveLawOwner< T, Tder >.

Definition at line 123 of file vehj2.h.

123  {
124  return 0;
125  };
unsigned int DeformableDispJoint::iGetNumPrivData ( void  ) const
virtual

Reimplemented from ConstitutiveLawOwner< T, Tder >.

Definition at line 484 of file vehj2.cc.

References ConstitutiveLawOwner< T, Tder >::iGetNumPrivData().

Referenced by dGetPrivData().

485 {
487 }
virtual unsigned int iGetNumPrivData(void) const
Definition: constltp.h:352

Here is the call graph for this function:

unsigned int DeformableDispJoint::iGetPrivDataIdx ( const char *  s) const
virtual

Reimplemented from ConstitutiveLawOwner< T, Tder >.

Definition at line 490 of file vehj2.cc.

References ASSERT, ConstitutiveLawOwner< T, Tder >::iGetPrivDataIdx(), and STRLENOF.

491 {
492  ASSERT(s != NULL);
493 
494  unsigned idx = 0;
495 
496  switch (s[0]) {
497  case 'd':
498  break;
499 
500  case 'v':
501  idx += 3;
502  break;
503 
504  case 'F':
505  idx += 6;
506  break;
507 
508  default:
509  {
510  size_t l = STRLENOF("constitutiveLaw.");
511  if (strncmp(s, "constitutiveLaw.", l) == 0) {
513  if (idx > 0) {
514  return 9 + idx;
515  }
516  }
517  return 0;
518  }
519  }
520 
521  switch (s[1]) {
522  case 'x':
523  idx += 1;
524  break;
525  case 'y':
526  idx += 2;
527  break;
528  case 'z':
529  idx += 3;
530  break;
531  default:
532  return 0;
533  }
534 
535  if (s[2] != '\0') {
536  return 0;
537  }
538 
539  return idx;
540 }
virtual unsigned int iGetPrivDataIdx(const char *s) const
Definition: constltp.h:361
#define ASSERT(expression)
Definition: colamd.c:977
#define STRLENOF(s)
Definition: mbdyn.h:166

Here is the call graph for this function:

void DeformableDispJoint::Output ( OutputHandler OH) const
virtual

Reimplemented from ToBeOutput.

Definition at line 359 of file vehj2.cc.

References ToBeOutput::bToBeOutput(), GetConstLawType(), OutputHandler::GetCurrentStep(), ConstitutiveLawOwner< T, Tder >::GetF(), WithLabel::GetLabel(), StructNode::GetRCurr(), OutputHandler::JOINTS, OutputHandler::Joints(), Joint::Output(), Vec3::pGetVec(), pNode1, tilde_d, tilde_dPrime, tilde_R1h, OutputHandler::UseNetCDF(), OutputHandler::UseText(), ConstLawType::VISCOUS, and Zero3.

360 {
361  if (bToBeOutput()) {
362 #ifdef USE_NETCDF
364  Var_F_local->put_rec(GetF().pGetVec(), OH.GetCurrentStep());
365  Var_M_local->put_rec(Zero3.pGetVec(), OH.GetCurrentStep());
366  Var_F_global->put_rec((pNode1->GetRCurr()*(tilde_R1h*GetF())).pGetVec(),
367  OH.GetCurrentStep());
368  Var_M_global->put_rec(Zero3.pGetVec(), OH.GetCurrentStep());
369  Var_tilde_d->put_rec(tilde_d.pGetVec(), OH.GetCurrentStep());
370  Var_d->put_rec((pNode1->GetRCurr()*(tilde_R1h*tilde_d)).pGetVec(),
371  OH.GetCurrentStep());
373  Var_tilde_dPrime->put_rec(tilde_dPrime.pGetVec(),
374  OH.GetCurrentStep());
375  Var_dPrime->put_rec((pNode1->GetRCurr()*(tilde_R1h*tilde_dPrime)).pGetVec(),
376  OH.GetCurrentStep());
377  } else {
378  Var_tilde_dPrime->put_rec(Zero3.pGetVec(), OH.GetCurrentStep());
379  Var_dPrime->put_rec(Zero3.pGetVec(), OH.GetCurrentStep());
380  }
381  }
382 #endif // USE_NETCDF
383 
384  if (OH.UseText(OutputHandler::JOINTS)) {
385  Joint::Output(OH.Joints(), "DeformableDispJoint", GetLabel(),
386  GetF(), Zero3,
388  << " " << tilde_d;
390  OH.Joints() << " " << tilde_dPrime;
391  }
392  OH.Joints() << std::endl;
393  }
394  }
395 }
const Vec3 Zero3(0., 0., 0.)
Vec3 tilde_dPrime
Definition: vehj2.h:55
virtual bool bToBeOutput(void) const
Definition: output.cc:890
bool UseNetCDF(int out) const
Definition: output.cc:491
virtual const Mat3x3 & GetRCurr(void) const
Definition: strnode.h:1012
const StructNode * pNode1
Definition: vehj2.h:46
Mat3x3 tilde_R1h
Definition: vehj2.h:50
long GetCurrentStep(void) const
Definition: output.h:116
std::ostream & Joints(void) const
Definition: output.h:443
virtual ConstLawType::Type GetConstLawType(void) const =0
const T & GetF(void) const
Definition: constltp.h:293
const doublereal * pGetVec(void) const
Definition: matvec3.h:192
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
bool UseText(int out) const
Definition: output.cc:446

Here is the call graph for this function:

void DeformableDispJoint::OutputPrepare ( OutputHandler OH)
virtual

Reimplemented from ToBeOutput.

Definition at line 337 of file vehj2.cc.

References ToBeOutput::bToBeOutput(), OutputHandler::JOINTS, Joint::OutputPrepare_int(), and OutputHandler::UseNetCDF().

338 {
339  if (bToBeOutput()) {
340 #ifdef USE_NETCDF
342  std::string name;
343  OutputPrepare_int("deformable displacement", OH, name);
344 
345  Var_tilde_d = OH.CreateVar<Vec3>(name + "d", "m",
346  "relative position in local frame (x, y, z)");
347  Var_tilde_dPrime = OH.CreateVar<Vec3>(name + "dPrime", "m/s",
348  "relative linear velocity in local frame (x, y, z)");
349  Var_d = OH.CreateVar<Vec3>(name + "D", "m",
350  "relative position in global frame (x, y, z)");
351  Var_dPrime = OH.CreateVar<Vec3>(name + "DPrime", "m/s",
352  "relative linear velocity in global frame (x, y, z)");
353  }
354 #endif // USE_NETCDF
355  }
356 }
virtual bool bToBeOutput(void) const
Definition: output.cc:890
Definition: matvec3.h:98
bool UseNetCDF(int out) const
Definition: output.cc:491
virtual void OutputPrepare_int(const std::string &type, OutputHandler &OH, std::string &name)
Definition: joint.cc:107

Here is the call graph for this function:

Hint * DeformableDispJoint::ParseHint ( DataManager pDM,
const char *  s 
) const
virtual

Reimplemented from SimulationEntity.

Definition at line 439 of file vehj2.cc.

References SimulationEntity::ParseHint(), and STRLENOF.

440 {
441  if (strncasecmp(s, "offset{" /*}*/ , STRLENOF("offset{" /*}*/ )) == 0)
442  {
443  s += STRLENOF("offset{" /*}*/ );
444 
445  if (strcmp(&s[1], /*{*/ "}") != 0) {
446  return 0;
447  }
448 
449  switch (s[0]) {
450  case '1':
451  return new Joint::OffsetHint<1>;
452 
453  case '2':
454  return new Joint::OffsetHint<2>;
455  }
456 
457  } else if (strncasecmp(s, "hinge{" /*}*/, STRLENOF("hinge{" /*}*/)) == 0) {
458  s += STRLENOF("hinge{" /*}*/);
459 
460  if (strcmp(&s[1], /* { */ "}") != 0) {
461  return 0;
462  }
463 
464  switch (s[0]) {
465  case '1':
466  return new Joint::HingeHint<1>;
467 
468  case '2':
469  return new Joint::HingeHint<2>;
470  }
471  }
472 
473  return ConstitutiveLaw3DOwner::ParseHint(pDM, s);
474 }
virtual Hint * ParseHint(DataManager *pDM, const char *s) const
Definition: simentity.cc:76
#define STRLENOF(s)
Definition: mbdyn.h:166

Here is the call graph for this function:

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

Implements Elem.

Definition at line 321 of file vehj2.cc.

References WithLabel::GetLabel(), Mat3x3::GetVec(), ConstitutiveLawOwner< T, Tder >::pGetConstLaw(), pNode1, pNode2, Joint::Restart(), tilde_f1, tilde_f2, tilde_R1h, tilde_R2h, Write(), and Vec3::Write().

322 {
323  Joint::Restart(out) << ", deformable displacement joint, "
324  << pNode1->GetLabel() << ", reference, node, ",
325  tilde_f1.Write(out, ", ") << ", hinge, reference, node, 1, ",
326  (tilde_R1h.GetVec(1)).Write(out, ", ")
327  << ", 2, ", (tilde_R1h.GetVec(2)).Write(out, ", ") << ", "
328  << pNode2->GetLabel() << ", reference, node, ",
329  tilde_f2.Write(out, ", ") << ", hinge, reference, node, 1, ",
330  (tilde_R2h.GetVec(1)).Write(out, ", ")
331  << ", 2, ", (tilde_R2h.GetVec(2)).Write(out, ", ") << ", ";
332 
333  return pGetConstLaw()->Restart(out) << ';' << std::endl;
334 }
std::ostream & Write(std::ostream &out, const char *sFill=" ") const
Definition: matvec3.cc:738
ConstitutiveLaw< T, Tder > * pGetConstLaw(void) const
Definition: constltp.h:278
std::ostream & Write(std::ostream &out, const FullMatrixHandler &m, const char *s, const char *s2)
Definition: fullmh.cc:376
const StructNode * pNode1
Definition: vehj2.h:46
Mat3x3 tilde_R2h
Definition: vehj2.h:51
Vec3 GetVec(unsigned short int i) const
Definition: matvec3.h:893
Mat3x3 tilde_R1h
Definition: vehj2.h:50
virtual std::ostream & Restart(std::ostream &out) const
Definition: joint.h:195
const StructNode * pNode2
Definition: vehj2.h:47
unsigned int GetLabel(void) const
Definition: withlab.cc:62

Here is the call graph for this function:

void DeformableDispJoint::SetValue ( DataManager pDM,
VectorHandler X,
VectorHandler XP,
SimulationEntity::Hints ph = 0 
)
virtual

Reimplemented from Joint.

Definition at line 398 of file vehj2.cc.

References StructNode::GetRCurr(), StructDispNode::GetXCurr(), pNode1, pNode2, SimulationEntity::SetValue(), tilde_f1, tilde_f2, tilde_R1h, tilde_R2h, and Mat3x3::Transpose().

401 {
402  if (ph) {
403  for (unsigned i = 0; i < ph->size(); i++) {
404  Joint::JointHint *pjh = dynamic_cast<Joint::JointHint *>((*ph)[i]);
405 
406  if (pjh) {
407  if (dynamic_cast<Joint::OffsetHint<1> *>(pjh)) {
408  Mat3x3 R1T(pNode1->GetRCurr().Transpose());
409  Vec3 f2(pNode2->GetRCurr()*tilde_f2);
410 
411  tilde_f1 = R1T*(pNode2->GetXCurr() + f2 - pNode1->GetXCurr());
412 
413  } else if (dynamic_cast<Joint::OffsetHint<2> *>(pjh)) {
414  Mat3x3 R2T(pNode2->GetRCurr().Transpose());
415  Vec3 f1(pNode1->GetRCurr()*tilde_f1);
416 
417  tilde_f2 = R2T*(pNode1->GetXCurr() + f1 - pNode2->GetXCurr());
418 
419  } else if (dynamic_cast<Joint::HingeHint<1> *>(pjh)) {
421 
422  } else if (dynamic_cast<Joint::HingeHint<2> *>(pjh)) {
424 
425  } else if (dynamic_cast<Joint::ReactionsHint *>(pjh)) {
426  /* TODO */
427  }
428 
429  continue;
430  }
431 
432  /* else, pass to constitutive law */
433  ConstitutiveLaw3DOwner::SetValue(pDM, X, XP, ph);
434  }
435  }
436 }
Definition: matvec3.h:98
virtual const Mat3x3 & GetRCurr(void) const
Definition: strnode.h:1012
const StructNode * pNode1
Definition: vehj2.h:46
Mat3x3 tilde_R2h
Definition: vehj2.h:51
Mat3x3 tilde_R1h
Definition: vehj2.h:50
virtual const Vec3 & GetXCurr(void) const
Definition: strnode.h:310
Mat3x3 Transpose(void) const
Definition: matvec3.h:816
const StructNode * pNode2
Definition: vehj2.h:47
virtual void SetValue(DataManager *pDM, VectorHandler &X, VectorHandler &XP, SimulationEntity::Hints *h=0)
Definition: simentity.cc:63

Here is the call graph for this function:

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

Implements Elem.

Definition at line 132 of file vehj2.h.

Referenced by AssJac(), and AssMats().

132  {
133  *piNumRows = 12;
134  *piNumCols = 12;
135  };

Member Data Documentation

Vec3 DeformableDispJoint::tilde_f1
mutableprotected
Mat3x3 DeformableDispJoint::tilde_R2h
mutableprotected

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