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

#include <vehj.h>

Inheritance diagram for ElasticHingeJointInv:
Collaboration diagram for ElasticHingeJointInv:

Public Member Functions

 ElasticHingeJointInv (unsigned int uL, const DofOwner *pDO, const ConstitutiveLaw3D *pCL, const StructNode *pN1, const StructNode *pN2, const Mat3x3 &tilde_R1h, const Mat3x3 &tilde_R2h, const OrientationDescription &od, flag fOut)
 
virtual ~ElasticHingeJointInv (void)
 
virtual void Output (OutputHandler &OH) 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
 
void SetInverseDynamicsFlags (unsigned uIDF)
 
unsigned GetInverseDynamicsFlags (void) const
 
bool bIsErgonomy (void) const
 
bool bIsRightHandSide (void) const
 
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 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 ElasticHingeJoint
 ElasticHingeJoint (unsigned int uL, const DofOwner *pDO, const ConstitutiveLaw3D *pCL, const StructNode *pN1, const StructNode *pN2, const Mat3x3 &tilde_R1h, const Mat3x3 &tilde_R2h, const OrientationDescription &od, flag fOut)
 
virtual ~ElasticHingeJoint (void)
 
virtual void AfterConvergence (const VectorHandler &X, const VectorHandler &XP)
 
virtual ConstLawType::Type GetConstLawType (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 SubVectorHandlerAssRes (SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
VariableSubMatrixHandlerAssJac (VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
 
SubVectorHandlerAssRes (SubVectorHandler &WorkVec, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr, const VectorHandler &XPrimePrimeCurr, InverseDynamics::Order iOrder=InverseDynamics::INVERSE_DYNAMICS)
 
void Update (const VectorHandler &XCurr, InverseDynamics::Order iOrder=InverseDynamics::INVERSE_DYNAMICS)
 
virtual void AfterConvergence (const VectorHandler &X, const VectorHandler &XP, const VectorHandler &XPP)
 
virtual void InitialWorkSpaceDim (integer *piNumRows, integer *piNumCols) const
 
virtual VariableSubMatrixHandlerInitialAssJac (VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
 
virtual SubVectorHandlerInitialAssRes (SubVectorHandler &WorkVec, const VectorHandler &XCurr)
 
- Public Member Functions inherited from DeformableHingeJoint
 DeformableHingeJoint (unsigned int uL, const DofOwner *pDO, const ConstitutiveLaw3D *pCL, const StructNode *pN1, const StructNode *pN2, const Mat3x3 &tilde_R1h, const Mat3x3 &tilde_R2h, const OrientationDescription &od, flag fOut)
 
virtual ~DeformableHingeJoint (void)
 
virtual Joint::Type GetJointType (void) const
 
virtual std::ostream & Restart (std::ostream &out) const
 
void OutputPrepare (OutputHandler &OH)
 
virtual void AfterPredict (VectorHandler &X, VectorHandler &XP)
 
void SetValue (DataManager *pDM, VectorHandler &X, VectorHandler &XP, SimulationEntity::Hints *ph=0)
 
virtual void SetInitialValue (VectorHandler &)
 
virtual HintParseHint (DataManager *pDM, const char *s) const
 
virtual unsigned int iGetNumDof (void) const
 
virtual void WorkSpaceDim (integer *piNumRows, integer *piNumCols) const
 
virtual bool bInverseDynamics (void) 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
 
- 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
 
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)
 
- 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)
 
virtual void AfterPredict (void)
 
virtual void AssVec (SubVectorHandler &WorkVec)
 
- Protected Member Functions inherited from ElasticHingeJoint
virtual void AssMat (FullSubMatrixHandler &WM, doublereal dCoef)
 
- Protected Member Functions inherited from DeformableHingeJoint
void AssMatMInv (FullSubMatrixHandler &WMA, doublereal dCoef)
 
void AssMatMDE (FullSubMatrixHandler &WMA, doublereal dCoef)
 
virtual void AssMatMDEPrime (FullSubMatrixHandler &WMA, FullSubMatrixHandler &WMB, doublereal dCoef)
 
void AssMatMDEPrimeInv (FullSubMatrixHandler &WMA, FullSubMatrixHandler &WMB, doublereal dCoef)
 
void OutputInv (OutputHandler &OH) const
 
doublereal dGetPrivDataInv (unsigned int i) const
 
- 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
 

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 Attributes inherited from WithLabel
unsigned int uLabel
 
std::string sName
 
- Protected Attributes inherited from ToBeOutput
flag fOutput
 
- Protected Attributes inherited from ElasticHingeJoint
Vec3 ThetaRef
 
Vec3 ThetaCurr
 
- Protected Attributes inherited from DeformableHingeJoint
const StructNodepNode1
 
const StructNodepNode2
 
Mat3x3 tilde_R1h
 
Mat3x3 tilde_R2h
 
OrientationDescription od
 
bool bFirstRes
 
Vec3 M
 
Mat3x3 MDE
 
Mat3x3 MDEPrime
 
Mat3x3 hat_I
 
Mat3x3 hat_IT
 
- Protected Attributes inherited from GravityOwner
GravitypGravity
 
- Protected Attributes inherited from ConstitutiveLawOwner< T, Tder >
ConstitutiveLaw< T, Tder > * pConstLaw
 

Detailed Description

Definition at line 299 of file vehj.h.

Constructor & Destructor Documentation

ElasticHingeJointInv::ElasticHingeJointInv ( unsigned int  uL,
const DofOwner pDO,
const ConstitutiveLaw3D pCL,
const StructNode pN1,
const StructNode pN2,
const Mat3x3 tilde_R1h,
const Mat3x3 tilde_R2h,
const OrientationDescription od,
flag  fOut 
)

Definition at line 885 of file vehj.cc.

References NO_OP.

894 : Elem(uL, fOut),
895 ElasticHingeJoint(uL, pDO, pCL, pN1, pN2, tilde_R1h, tilde_R2h, od, fOut)
896 {
897  NO_OP;
898 }
#define NO_OP
Definition: myassert.h:74
ElasticHingeJoint(unsigned int uL, const DofOwner *pDO, const ConstitutiveLaw3D *pCL, const StructNode *pN1, const StructNode *pN2, const Mat3x3 &tilde_R1h, const Mat3x3 &tilde_R2h, const OrientationDescription &od, flag fOut)
Definition: vehj.cc:541
OrientationDescription od
Definition: vehj.h:53
Elem(unsigned int uL, flag fOut)
Definition: elem.cc:41
ElasticHingeJointInv::~ElasticHingeJointInv ( void  )
virtual

Definition at line 900 of file vehj.cc.

References NO_OP.

901 {
902  NO_OP;
903 }
#define NO_OP
Definition: myassert.h:74

Member Function Documentation

void ElasticHingeJointInv::AfterPredict ( void  )
protectedvirtual

Reimplemented from ElasticHingeJoint.

Definition at line 861 of file vehj.cc.

References RotManip::DRot_I(), Eye3, ConstitutiveLawOwner< T, Tder >::GetFDE(), StructNode::GetRRef(), DeformableHingeJoint::hat_I, DeformableHingeJoint::hat_IT, grad::Inv(), DeformableHingeJoint::MDE, Mat3x3::MulMT(), DeformableHingeJoint::pNode1, DeformableHingeJoint::pNode2, RotManip::Rot(), ElasticHingeJoint::ThetaCurr, ElasticHingeJoint::ThetaRef, DeformableHingeJoint::tilde_R1h, DeformableHingeJoint::tilde_R2h, Mat3x3::Transpose(), ConstitutiveLawOwner< T, Tder >::Update(), and RotManip::VecRot().

862 {
863  /* Recupera i dati */
864  Mat3x3 R1h(pNode1->GetRRef()*tilde_R1h);
865  Mat3x3 R2h(pNode2->GetRRef()*tilde_R2h);
866  ThetaCurr = ThetaRef = RotManip::VecRot(R1h.MulTM(R2h));
867 
868  /* Aggiorna il legame costitutivo */
870 
871  Mat3x3 tilde_R(RotManip::Rot(ThetaRef/2.));
872  Mat3x3 hat_R(R1h*tilde_R);
873 
874  /* Calcola l'inversa di Gamma di ThetaRef */
875  Mat3x3 GammaRefm1 = RotManip::DRot_I(ThetaRef);
876 
877  /* Chiede la matrice tangente di riferimento e la porta
878  * nel sistema globale */
879  MDE = hat_R*ConstitutiveLaw3DOwner::GetFDE()*GammaRefm1.MulMT(R1h);
880 
881  hat_I = hat_R*(Eye3 + tilde_R).Inv().MulMT(hat_R);
882  hat_IT = hat_I.Transpose();
883 }
virtual const Mat3x3 & GetRRef(void) const
Definition: strnode.h:1006
Vec3 ThetaRef
Definition: vehj.h:180
const Tder & GetFDE(void) const
Definition: constltp.h:298
const Mat3x3 Eye3(1., 0., 0., 0., 1., 0., 0., 0., 1.)
Mat3x3 hat_I
Definition: vehj.h:70
const StructNode * pNode1
Definition: vehj.h:48
Vec3 VecRot(const Mat3x3 &Phi)
Definition: Rot.cc:136
Matrix< T, 2, 2 > Inv(const Matrix< T, 2, 2 > &A)
Definition: matvec.h:3282
Mat3x3 hat_IT
Definition: vehj.h:71
Mat3x3 Rot(const Vec3 &phi)
Definition: Rot.cc:62
Mat3x3 Transpose(void) const
Definition: matvec3.h:816
Mat3x3 tilde_R1h
Definition: vehj.h:50
Vec3 ThetaCurr
Definition: vehj.h:181
Mat3x3 MulMT(const Mat3x3 &m) const
Definition: matvec3.cc:444
void Update(const T &Eps, const T &EpsPrime=mb_zero< T >())
Definition: constltp.h:283
Mat3x3 DRot_I(const Vec3 &phi)
Definition: Rot.cc:111
Mat3x3 tilde_R2h
Definition: vehj.h:51
const StructNode * pNode2
Definition: vehj.h:49

Here is the call graph for this function:

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

Reimplemented from DeformableHingeJoint.

Definition at line 906 of file vehj.cc.

References DeformableHingeJoint::AssMatMInv().

907 {
909 }
void AssMatMInv(FullSubMatrixHandler &WMA, doublereal dCoef)
Definition: vehj.cc:95

Here is the call graph for this function:

void ElasticHingeJointInv::AssVec ( SubVectorHandler WorkVec)
protectedvirtual

Reimplemented from ElasticHingeJoint.

Definition at line 912 of file vehj.cc.

References VectorHandler::Add(), DeformableHingeJoint::bFirstRes, ConstitutiveLawOwner< T, Tder >::GetF(), StructNode::GetRCurr(), DeformableHingeJoint::M, DeformableHingeJoint::pNode1, DeformableHingeJoint::pNode2, RotManip::Rot(), VectorHandler::Sub(), ElasticHingeJoint::ThetaCurr, DeformableHingeJoint::tilde_R1h, DeformableHingeJoint::tilde_R2h, ConstitutiveLawOwner< T, Tder >::Update(), and RotManip::VecRot().

913 {
915 
916  if (bFirstRes) {
917  /* ThetaCurr and the constitutive laws were updated
918  * by AfterPredict */
919  bFirstRes = false;
920 
921  } else {
923  ThetaCurr = RotManip::VecRot(R1h.MulTM(R2h));
924 
925  /* aggiorna il legame costitutivo */
927  }
928 
929  Mat3x3 hat_R(R1h*RotManip::Rot(ThetaCurr/2.));
930  M = hat_R*GetF();
931 
932  WorkVec.Add(1, M);
933  WorkVec.Sub(4, M);
934 }
virtual const Mat3x3 & GetRCurr(void) const
Definition: strnode.h:1012
virtual void Sub(integer iRow, const Vec3 &v)
Definition: vh.cc:78
const StructNode * pNode1
Definition: vehj.h:48
Vec3 VecRot(const Mat3x3 &Phi)
Definition: Rot.cc:136
Mat3x3 Rot(const Vec3 &phi)
Definition: Rot.cc:62
virtual void Add(integer iRow, const Vec3 &v)
Definition: vh.cc:63
const T & GetF(void) const
Definition: constltp.h:293
Mat3x3 tilde_R1h
Definition: vehj.h:50
Vec3 ThetaCurr
Definition: vehj.h:181
void Update(const T &Eps, const T &EpsPrime=mb_zero< T >())
Definition: constltp.h:283
Mat3x3 tilde_R2h
Definition: vehj.h:51
const StructNode * pNode2
Definition: vehj.h:49

Here is the call graph for this function:

doublereal ElasticHingeJointInv::dGetPrivData ( unsigned int  i) const
virtual

Reimplemented from SimulationEntity.

Definition at line 943 of file vehj.cc.

References DeformableHingeJoint::dGetPrivDataInv().

944 {
946 }
doublereal dGetPrivDataInv(unsigned int i) const
Definition: vehj.cc:511

Here is the call graph for this function:

void ElasticHingeJointInv::Output ( OutputHandler OH) const
virtual

Reimplemented from ToBeOutput.

Definition at line 937 of file vehj.cc.

References DeformableHingeJoint::OutputInv().

938 {
940 }
void OutputInv(OutputHandler &OH) const
Definition: vehj.cc:289

Here is the call graph for this function:


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