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

#include <vehj4.h>

Inheritance diagram for DeformableAxialJoint:
Collaboration diagram for DeformableAxialJoint:

Public Member Functions

 DeformableAxialJoint (unsigned int uL, const DofOwner *pDO, const ConstitutiveLaw1D *pCL, const StructNode *pN1, const StructNode *pN2, const Mat3x3 &tilde_R1h, const Mat3x3 &tilde_R2h, flag fOut)
 
virtual ~DeformableAxialJoint (void)
 
virtual Joint::Type GetJointType (void) const
 
virtual std::ostream & Restart (std::ostream &out) const
 
virtual void Output (OutputHandler &OH) const
 
virtual void AfterPredict (VectorHandler &X, VectorHandler &XP)
 
void SetValue (DataManager *pDM, VectorHandler &X, VectorHandler &XP, SimulationEntity::Hints *ph=0)
 
virtual void SetInitialValue (VectorHandler &)
 
virtual bool bInverseDynamics (void) const
 
virtual HintParseHint (DataManager *pDM, const char *s) const
 
virtual ConstLawType::Type GetConstLawType (void) const =0
 
virtual unsigned int iGetNumDof (void) const
 
virtual void WorkSpaceDim (integer *piNumRows, integer *piNumCols) const
 
virtual unsigned int iGetInitialNumDof (void) const
 
virtual void GetConnectedNodes (std::vector< const Node * > &connectedNodes) const
 
virtual unsigned int iGetNumPrivData (void) const
 
virtual unsigned int iGetPrivDataIdx (const char *s) const
 
virtual doublereal dGetPrivData (unsigned int i) 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 DofOrder::Order GetDofType (unsigned int) const
 
virtual void AssMats (VariableSubMatrixHandler &WorkMatA, VariableSubMatrixHandler &WorkMatB, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual SubVectorHandlerAssRes (SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)=0
 
virtual VariableSubMatrixHandlerAssJac (VariableSubMatrixHandler &WorkMat, 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 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 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 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 DofOrder::Order GetDofType (unsigned int i) const
 
virtual std::ostream & OutputAppend (std::ostream &out) const
 

Protected Member Functions

virtual void AssMatM (FullSubMatrixHandler &WMA, doublereal dCoef)
 
void AssMatMDE (FullSubMatrixHandler &WMA, doublereal dCoef)
 
virtual void AssMatMDEPrime (FullSubMatrixHandler &WMA, FullSubMatrixHandler &WMB, doublereal dCoef)
 
virtual void AfterPredict (void)=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
 
Mat3x3 tilde_R1h
 
Mat3x3 tilde_R2h
 
bool bFirstRes
 
doublereal dTol
 
doublereal dM
 
doublereal dMDE
 
doublereal dMDEPrime
 
Vec3 M
 
Mat3x3 MDE
 
Mat3x3 MDEPrime
 
- 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 45 of file vehj4.h.

Constructor & Destructor Documentation

DeformableAxialJoint::DeformableAxialJoint ( unsigned int  uL,
const DofOwner pDO,
const ConstitutiveLaw1D pCL,
const StructNode pN1,
const StructNode pN2,
const Mat3x3 tilde_R1h,
const Mat3x3 tilde_R2h,
flag  fOut 
)

Definition at line 88 of file vehj4.cc.

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

96 : Elem(uL, fOut),
97 Joint(uL, pDO, fOut),
99 pNode1(pN1),
100 pNode2(pN2),
101 tilde_R1h(tilde_R1h),
102 tilde_R2h(tilde_R2h),
103 bFirstRes(false),
104 dTol(0.)
105 {
106  ASSERT(pNode1 != NULL);
107  ASSERT(pNode2 != NULL);
110 }
virtual Node::Type GetNodeType(void) const
Definition: strnode.cc:145
doublereal dTol
Definition: vehj4.h:55
Joint(unsigned int uL, const DofOwner *pD, flag fOut)
Definition: joint.cc:83
const StructNode * pNode1
Definition: vehj4.h:48
Mat3x3 tilde_R2h
Definition: vehj4.h:51
ConstitutiveLawOwner< doublereal, doublereal > ConstitutiveLaw1DOwner
Definition: constltp.h:378
const StructNode * pNode2
Definition: vehj4.h:49
#define ASSERT(expression)
Definition: colamd.c:977
Mat3x3 tilde_R1h
Definition: vehj4.h:50
Elem(unsigned int uL, flag fOut)
Definition: elem.cc:41

Here is the call graph for this function:

DeformableAxialJoint::~DeformableAxialJoint ( void  )
virtual

Definition at line 113 of file vehj4.cc.

References NO_OP.

114 {
115  NO_OP;
116 }
#define NO_OP
Definition: myassert.h:74

Member Function Documentation

virtual void DeformableAxialJoint::AfterPredict ( void  )
protectedpure virtual
void DeformableAxialJoint::AfterPredict ( VectorHandler X,
VectorHandler XP 
)
virtual

Reimplemented from SimulationEntity.

Definition at line 154 of file vehj4.cc.

References AfterPredict(), and bFirstRes.

156 {
157  bFirstRes = true;
158 
159  AfterPredict();
160 }
virtual void AfterPredict(void)=0

Here is the call graph for this function:

void DeformableAxialJoint::AssMatM ( FullSubMatrixHandler WMA,
doublereal  dCoef 
)
protectedvirtual

Definition at line 47 of file vehj4.cc.

References FullSubMatrixHandler::Add(), M, MatCross, and FullSubMatrixHandler::Sub().

Referenced by ElasticAxialJoint::AssMat(), ViscousAxialJoint::AssMats(), and ViscoElasticAxialJoint::AssMats().

49 {
50  /* M was updated by AssRes */
51  Mat3x3 MTmp(MatCross, M*dCoef);
52 
53  WMA.Add(1, 1, MTmp);
54  WMA.Sub(4, 1, MTmp);
55 }
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 DeformableAxialJoint::AssMatMDE ( FullSubMatrixHandler WMA,
doublereal  dCoef 
)
protected

Definition at line 59 of file vehj4.cc.

References FullSubMatrixHandler::Add(), MDE, and FullSubMatrixHandler::Sub().

Referenced by ElasticAxialJoint::AssMat(), and ViscoElasticAxialJoint::AssMats().

61 {
62  Mat3x3 MTmp(MDE*dCoef);
63 
64  WMA.Add(1, 1, MTmp);
65  WMA.Sub(1, 4, MTmp);
66  WMA.Sub(4, 1, MTmp);
67  WMA.Add(4, 4, MTmp);
68 }
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 DeformableAxialJoint::AssMatMDEPrime ( FullSubMatrixHandler WMA,
FullSubMatrixHandler WMB,
doublereal  dCoef 
)
protectedvirtual

Definition at line 72 of file vehj4.cc.

References FullSubMatrixHandler::Add(), StructNode::GetWCurr(), MatCross, MDEPrime, pNode2, and FullSubMatrixHandler::Sub().

Referenced by ViscousAxialJoint::AssMats(), and ViscoElasticAxialJoint::AssMats().

74 {
75  WMB.Add(1, 1, MDEPrime);
76  WMB.Sub(1, 4, MDEPrime);
77  WMB.Sub(4, 1, MDEPrime);
78  WMB.Add(4, 4, MDEPrime);
79 
80  Mat3x3 MTmp(MDEPrime*Mat3x3(MatCross, pNode2->GetWCurr()*dCoef));
81  WMA.Sub(1, 1, MTmp);
82  WMA.Add(1, 4, MTmp);
83  WMA.Add(4, 1, MTmp);
84  WMA.Sub(4, 4, MTmp);
85 }
const MatCross_Manip MatCross
Definition: matvec3.cc:639
void Add(integer iRow, integer iCol, const Vec3 &v)
Definition: submat.cc:209
const StructNode * pNode2
Definition: vehj4.h:49
virtual const Vec3 & GetWCurr(void) const
Definition: strnode.h:1030
Mat3x3 MDEPrime
Definition: vehj4.h:67
void Sub(integer iRow, integer iCol, const Vec3 &v)
Definition: submat.cc:215

Here is the call graph for this function:

bool DeformableAxialJoint::bInverseDynamics ( void  ) const
virtual

Reimplemented from Elem.

Definition at line 199 of file vehj4.cc.

200 {
201  return true;
202 }
doublereal DeformableAxialJoint::dGetPrivData ( unsigned int  i) const
virtual

Reimplemented from ConstitutiveLawOwner< T, Tder >.

Definition at line 262 of file vehj4.cc.

References ASSERT, ConstitutiveLawOwner< T, Tder >::dGetPrivData(), ConstitutiveLawOwner< T, Tder >::GetF(), StructNode::GetRCurr(), StructNode::GetWCurr(), iGetNumPrivData(), pNode1, pNode2, tilde_R1h, tilde_R2h, and RotManip::VecRot().

263 {
264  ASSERT(i > 0);
265 
266  ASSERT(i <= iGetNumPrivData());
267 
268  switch (i) {
269  case 1:
270  {
271  /* NOTE: this is correct also in the invariant case */
274 
275  Vec3 v(RotManip::VecRot(R1h.MulTM(R2h)));
276 
277  return v(3);
278  }
279 
280  case 2:
281  {
283  Vec3 w(R1h.MulTV(pNode2->GetWCurr() - pNode1->GetWCurr()));
284 
285  return w(3);
286  }
287 
288  case 3:
289  return GetF();
290 
291  default:
293  }
294 }
Definition: matvec3.h:98
virtual const Mat3x3 & GetRCurr(void) const
Definition: strnode.h:1012
const StructNode * pNode1
Definition: vehj4.h:48
Mat3x3 tilde_R2h
Definition: vehj4.h:51
Vec3 VecRot(const Mat3x3 &Phi)
Definition: Rot.cc:136
virtual unsigned int iGetNumPrivData(void) const
Definition: vehj4.cc:227
const StructNode * pNode2
Definition: vehj4.h:49
virtual const Vec3 & GetWCurr(void) const
Definition: strnode.h:1030
#define ASSERT(expression)
Definition: colamd.c:977
Mat3x3 tilde_R1h
Definition: vehj4.h:50
virtual doublereal dGetPrivData(unsigned int i) const
Definition: constltp.h:369
const T & GetF(void) const
Definition: constltp.h:293

Here is the call graph for this function:

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

Reimplemented from Elem.

Definition at line 142 of file vehj4.h.

References pNode1, and pNode2.

142  {
143  connectedNodes.resize(2);
144  connectedNodes[0] = pNode1;
145  connectedNodes[1] = pNode2;
146  };
const StructNode * pNode1
Definition: vehj4.h:48
const StructNode * pNode2
Definition: vehj4.h:49
virtual ConstLawType::Type DeformableAxialJoint::GetConstLawType ( void  ) const
pure virtual
virtual Joint::Type DeformableAxialJoint::GetJointType ( void  ) const
inlinevirtual

Implements Joint.

Definition at line 97 of file vehj4.h.

References Joint::DEFORMABLEAXIALJOINT.

97  {
99  };
virtual unsigned int DeformableAxialJoint::iGetInitialNumDof ( void  ) const
inlinevirtual

Implements SubjectToInitialAssembly.

Definition at line 135 of file vehj4.h.

135  {
136  return 0;
137  };
virtual unsigned int DeformableAxialJoint::iGetNumDof ( void  ) const
inlinevirtual

Reimplemented from ConstitutiveLawOwner< T, Tder >.

Definition at line 123 of file vehj4.h.

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

Reimplemented from ConstitutiveLawOwner< T, Tder >.

Definition at line 227 of file vehj4.cc.

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

Referenced by dGetPrivData().

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

Here is the call graph for this function:

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

Reimplemented from ConstitutiveLawOwner< T, Tder >.

Definition at line 233 of file vehj4.cc.

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

234 {
235  ASSERT(s != NULL);
236 
237  if (s[1] == 'z' && s[2] == '\0') {
238  switch (s[0]) {
239  case 'r':
240  return 1;
241 
242  case 'w':
243  return 2;
244 
245  case 'M':
246  return 3;
247  }
248  }
249 
250  const size_t l = STRLENOF("constitutiveLaw.");
251  if (strncmp(s, "constitutiveLaw.", l) == 0) {
252  unsigned idx = ConstitutiveLaw1DOwner::iGetPrivDataIdx(&s[l]);
253  if (idx > 0) {
254  return 3 + idx;
255  }
256  }
257 
258  return 0;
259 }
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 DeformableAxialJoint::Output ( OutputHandler OH) const
virtual

Reimplemented from ToBeOutput.

Definition at line 134 of file vehj4.cc.

References ToBeOutput::bToBeOutput(), GetConstLawType(), ConstitutiveLawOwner< T, Tder >::GetF(), WithLabel::GetLabel(), StructNode::GetRCurr(), StructNode::GetWCurr(), OutputHandler::Joints(), Joint::Output(), pNode1, pNode2, R, tilde_R1h, tilde_R2h, RotManip::VecRot(), ConstLawType::VISCOUS, and Zero3.

135 {
136  if (bToBeOutput()) {
139  Mat3x3 R(R1h.MulTM(R2h));
140 
141  Vec3 v(0., 0., GetF());
142  Joint::Output(OH.Joints(), "DeformableHinge", GetLabel(),
143  Zero3, v, Zero3, R1h*v) << " " << RotManip::VecRot(R)(3);
144 
146  OH.Joints() << " " << R1h.GetVec(3).Dot(pNode2->GetWCurr() - pNode1->GetWCurr());
147  }
148 
149  OH.Joints() << std::endl;
150  }
151 }
const Vec3 Zero3(0., 0., 0.)
virtual bool bToBeOutput(void) const
Definition: output.cc:890
virtual ConstLawType::Type GetConstLawType(void) const =0
Definition: matvec3.h:98
virtual const Mat3x3 & GetRCurr(void) const
Definition: strnode.h:1012
const StructNode * pNode1
Definition: vehj4.h:48
Mat3x3 tilde_R2h
Definition: vehj4.h:51
Vec3 VecRot(const Mat3x3 &Phi)
Definition: Rot.cc:136
const StructNode * pNode2
Definition: vehj4.h:49
virtual const Vec3 & GetWCurr(void) const
Definition: strnode.h:1030
std::ostream & Joints(void) const
Definition: output.h:443
Mat3x3 tilde_R1h
Definition: vehj4.h:50
const T & GetF(void) const
Definition: constltp.h:293
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
Mat3x3 R

Here is the call graph for this function:

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

Reimplemented from SimulationEntity.

Definition at line 205 of file vehj4.cc.

References SimulationEntity::ParseHint(), and STRLENOF.

206 {
207  if (strncasecmp(s, "hinge{" /*}*/, STRLENOF("hinge{" /*}*/)) == 0) {
208  s += STRLENOF("hinge{" /*}*/);
209 
210  if (strcmp(&s[1], /*{*/ "}") != 0) {
211  return 0;
212  }
213 
214  switch (s[0]) {
215  case '1':
216  return new Joint::HingeHint<1>;
217 
218  case '2':
219  return new Joint::HingeHint<2>;
220  }
221  }
222 
223  return ConstitutiveLaw1DOwner::ParseHint(pDM, s);
224 }
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 & DeformableAxialJoint::Restart ( std::ostream &  out) const
virtual

Implements Elem.

Definition at line 120 of file vehj4.cc.

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

121 {
122  /* FIXME: does not work for invariant hinge */
123  Joint::Restart(out) << ", deformable hinge, "
124  << pNode1->GetLabel() << ", hinge, reference, node, 1, ",
125  (tilde_R1h.GetVec(1)).Write(out, ", ")
126  << ", 2, ", (tilde_R1h.GetVec(2)).Write(out, ", ") << ", "
127  << pNode2->GetLabel() << ", hinge, reference, node, 1, ",
128  (tilde_R2h.GetVec(1)).Write(out, ", ")
129  << ", 2, ", (tilde_R2h.GetVec(2)).Write(out, ", ") << ", ";
130  return pGetConstLaw()->Restart(out) << ';' << std::endl;
131 }
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: vehj4.h:48
Mat3x3 tilde_R2h
Definition: vehj4.h:51
Vec3 GetVec(unsigned short int i) const
Definition: matvec3.h:893
const StructNode * pNode2
Definition: vehj4.h:49
virtual std::ostream & Restart(std::ostream &out) const
Definition: joint.h:195
Mat3x3 tilde_R1h
Definition: vehj4.h:50
unsigned int GetLabel(void) const
Definition: withlab.cc:62

Here is the call graph for this function:

void DeformableAxialJoint::SetInitialValue ( VectorHandler X)
virtual

Initialize state vector used in initial assembly. May set internal states of the element. Do not rely on being always called, because initial assembly could be implicitly or explicitly skipped

Reimplemented from Joint.

Definition at line 192 of file vehj4.cc.

References AfterPredict().

193 {
194  AfterPredict();
195 }
virtual void AfterPredict(void)=0

Here is the call graph for this function:

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

Reimplemented from Joint.

Definition at line 163 of file vehj4.cc.

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

166 {
167  if (ph) {
168  for (unsigned i = 0; i < ph->size(); i++) {
169  Joint::JointHint *pjh = dynamic_cast<Joint::JointHint *>((*ph)[i]);
170 
171  if (pjh) {
172  if (dynamic_cast<Joint::HingeHint<1> *>(pjh)) {
174 
175  } else if (dynamic_cast<Joint::HingeHint<2> *>(pjh)) {
177 
178  } else if (dynamic_cast<Joint::ReactionsHint *>(pjh)) {
179  /* TODO */
180  }
181 
182  continue;
183  }
184 
185  /* else, pass to constitutive law */
186  ConstitutiveLaw1DOwner::SetValue(pDM, X, XP, ph);
187  }
188  }
189 }
virtual const Mat3x3 & GetRCurr(void) const
Definition: strnode.h:1012
const StructNode * pNode1
Definition: vehj4.h:48
Mat3x3 tilde_R2h
Definition: vehj4.h:51
const StructNode * pNode2
Definition: vehj4.h:49
Mat3x3 tilde_R1h
Definition: vehj4.h:50
Mat3x3 Transpose(void) const
Definition: matvec3.h:816
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 DeformableAxialJoint::WorkSpaceDim ( integer piNumRows,
integer piNumCols 
) const
inlinevirtual

Implements Elem.

Definition at line 128 of file vehj4.h.

128  {
129  *piNumRows = 6;
130  *piNumCols = 6;
131  };

Member Data Documentation

doublereal DeformableAxialJoint::dM
protected

Definition at line 58 of file vehj4.h.

doublereal DeformableAxialJoint::dMDE
protected

Definition at line 60 of file vehj4.h.

doublereal DeformableAxialJoint::dMDEPrime
protected

Definition at line 61 of file vehj4.h.

doublereal DeformableAxialJoint::dTol
protected

Definition at line 55 of file vehj4.h.

Referenced by ElasticAxialJoint::AssVec().


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