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

#include <vehj3.h>

Inheritance diagram for ViscoElasticJoint:
Collaboration diagram for ViscoElasticJoint:

Public Member Functions

 ViscoElasticJoint (unsigned int uL, const DofOwner *pDO, const ConstitutiveLaw6D *pCL, const StructNode *pN1, const StructNode *pN2, const Vec3 &tilde_f1, const Vec3 &tilde_f2, const Mat3x3 &tilde_R1, const Mat3x3 &tilde_R2, const OrientationDescription &od, flag fOut)
 
 ~ViscoElasticJoint (void)
 
virtual ConstLawType::Type GetConstLawType (void) const
 
virtual void AfterConvergence (const VectorHandler &X, const VectorHandler &XP)
 
virtual void AfterPredict (VectorHandler &X, VectorHandler &XP)
 
virtual void InitialWorkSpaceDim (integer *piNumRows, integer *piNumCols) const
 
virtual VariableSubMatrixHandlerInitialAssJac (VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
 
- 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
 
void SetInverseDynamicsFlags (unsigned uIDF)
 
unsigned GetInverseDynamicsFlags (void) const
 
bool bIsErgonomy (void) const
 
bool bIsRightHandSide (void) const
 
virtual VariableSubMatrixHandlerAssJac (VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
 
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, 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 DeformableJoint
 DeformableJoint (unsigned int uL, const DofOwner *pDO, const ConstitutiveLaw6D *pCL, const StructNode *pN1, const StructNode *pN2, const Vec3 &tilde_f1, const Vec3 &tilde_f2, const Mat3x3 &tilde_R1h, const Mat3x3 &tilde_R2h, const OrientationDescription &od, flag fOut)
 
virtual ~DeformableJoint (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 bool bInverseDynamics (void) const
 
virtual unsigned int iGetNumDof (void) const
 
virtual DofOrder::Order GetDofType (unsigned int) const
 
virtual void WorkSpaceDim (integer *piNumRows, integer *piNumCols) const
 
virtual unsigned int iGetInitialNumDof (void) const
 
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
 
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)
 
SubVectorHandlerAssRes (SubVectorHandler &WorkVec, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr, const VectorHandler &XPrimePrimeCurr, InverseDynamics::Order iOrder=InverseDynamics::INVERSE_DYNAMICS)
 
virtual SubVectorHandlerInitialAssRes (SubVectorHandler &WorkVec, const VectorHandler &XCurr)
 
- 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)
 
- 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 AssMats (FullSubMatrixHandler &WorkMatA, FullSubMatrixHandler &WorkMatB, doublereal dCoef)
 
void AssVec (SubVectorHandler &WorkVec)
 
- Protected Member Functions inherited from DeformableJoint
void AssMatCommon (FullSubMatrixHandler &WM, doublereal dCoef)
 
void AssMatElastic (FullSubMatrixHandler &WM, doublereal dCoef, const Mat6x6 &FDE)
 
void AssMatViscous (FullSubMatrixHandler &WMA, FullSubMatrixHandler &WMB, doublereal dCoef, const Mat6x6 &FDEPrime)
 
- 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

Vec3 ThetaRef
 
Mat6x6 FDE
 
Mat6x6 FDEPrime
 
- Protected Attributes inherited from WithLabel
unsigned int uLabel
 
std::string sName
 
- Protected Attributes inherited from ToBeOutput
flag fOutput
 
- Protected Attributes inherited from DeformableJoint
const StructNodepNode1
 
const StructNodepNode2
 
Vec3 tilde_f1
 
Vec3 tilde_f2
 
Mat3x3 tilde_R1h
 
Mat3x3 tilde_R2h
 
OrientationDescription od
 
Vec6 tilde_k
 
Vec6 tilde_kPrime
 
bool bFirstRes
 
Vec3 d1
 
Vec3 d2
 
Vec3 d1Prime
 
Vec3 d2Prime
 
Mat3x3 R1h
 
Vec6 F
 
- 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 490 of file vehj3.h.

Constructor & Destructor Documentation

ViscoElasticJoint::ViscoElasticJoint ( unsigned int  uL,
const DofOwner pDO,
const ConstitutiveLaw6D pCL,
const StructNode pN1,
const StructNode pN2,
const Vec3 tilde_f1,
const Vec3 tilde_f2,
const Mat3x3 tilde_R1,
const Mat3x3 tilde_R2,
const OrientationDescription od,
flag  fOut 
)

Definition at line 1331 of file vehj3.cc.

References FDE, FDEPrime, ConstitutiveLawOwner< T, Tder >::GetFDE(), ConstitutiveLawOwner< T, Tder >::GetFDEPrime(), MultRMRt(), and DeformableJoint::R1h.

1342 : Elem(uL, fOut),
1343 DeformableJoint(uL, pDO, pCL, pN1, pN2, tilde_f1, tilde_f2, tilde_R1h, tilde_R2h, od, fOut),
1344 ThetaRef(Zero3)
1345 {
1346  /*
1347  * Chiede la matrice tangente di riferimento
1348  * e la porta nel sistema globale
1349  */
1352 }
Mat3x3 MultRMRt(const Mat3x3 &m, const Mat3x3 &R)
Definition: matvec3.cc:1162
const Vec3 Zero3(0., 0., 0.)
OrientationDescription od
Definition: vehj3.h:53
Mat3x3 tilde_R2h
Definition: vehj3.h:51
const Tder & GetFDE(void) const
Definition: constltp.h:298
Mat3x3 R1h
Definition: vehj3.h:74
Mat3x3 tilde_R1h
Definition: vehj3.h:50
Mat6x6 FDEPrime
Definition: vehj3.h:496
Elem(unsigned int uL, flag fOut)
Definition: elem.cc:41
Mat6x6 FDE
Definition: vehj3.h:495
const Tder & GetFDEPrime(void) const
Definition: constltp.h:303
DeformableJoint(unsigned int uL, const DofOwner *pDO, const ConstitutiveLaw6D *pCL, const StructNode *pN1, const StructNode *pN2, const Vec3 &tilde_f1, const Vec3 &tilde_f2, const Mat3x3 &tilde_R1h, const Mat3x3 &tilde_R2h, const OrientationDescription &od, flag fOut)
Definition: vehj3.cc:57

Here is the call graph for this function:

ViscoElasticJoint::~ViscoElasticJoint ( void  )

Definition at line 1354 of file vehj3.cc.

References NO_OP.

1355 {
1356  NO_OP;
1357 }
#define NO_OP
Definition: myassert.h:74

Member Function Documentation

void ViscoElasticJoint::AfterConvergence ( const VectorHandler X,
const VectorHandler XP 
)
virtual

Reimplemented from SimulationEntity.

Definition at line 1360 of file vehj3.cc.

References ConstitutiveLawOwner< T, Tder >::AfterConvergence(), DeformableJoint::tilde_k, and DeformableJoint::tilde_kPrime.

1362 {
1364 }
Vec6 tilde_k
Definition: vehj3.h:56
void AfterConvergence(const T &Eps, const T &EpsPrime=mb_zero< T >())
Definition: constltp.h:288
Vec6 tilde_kPrime
Definition: vehj3.h:59

Here is the call graph for this function:

void ViscoElasticJoint::AfterPredict ( VectorHandler X,
VectorHandler XP 
)
virtual

Reimplemented from SimulationEntity.

Definition at line 1410 of file vehj3.cc.

References DeformableJoint::bFirstRes, Vec3::Cross(), DeformableJoint::d1, DeformableJoint::d1Prime, DeformableJoint::d2, DeformableJoint::d2Prime, RotManip::DRot_I(), FDE, FDEPrime, ConstitutiveLawOwner< T, Tder >::GetFDE(), ConstitutiveLawOwner< T, Tder >::GetFDEPrime(), StructNode::GetRCurr(), StructNode::GetRRef(), StructDispNode::GetVCurr(), StructNode::GetWCurr(), StructDispNode::GetXCurr(), Mat3x3::MulTM(), MultRMRt(), MultRMRtGammam1(), Mat3x3::MulTV(), DeformableJoint::pNode1, DeformableJoint::pNode2, DeformableJoint::R1h, ThetaRef, DeformableJoint::tilde_f1, DeformableJoint::tilde_f2, DeformableJoint::tilde_k, DeformableJoint::tilde_kPrime, DeformableJoint::tilde_R1h, DeformableJoint::tilde_R2h, ConstitutiveLawOwner< T, Tder >::Update(), and RotManip::VecRot().

1412 {
1413  /* Calcola le deformazioni, aggiorna il legame costitutivo
1414  * e crea la FDE */
1415 
1416  /* Recupera i dati */
1417  R1h = pNode1->GetRRef()*tilde_R1h;
1418 
1419  d2 = pNode2->GetRCurr()*tilde_f2;
1420  d1 = pNode2->GetXCurr() + d2 - pNode1->GetXCurr();
1421 
1422  d2Prime = pNode2->GetWCurr().Cross(d2);
1424 
1425  /* Calcola la deformazione corrente nel sistema locale (nodo a) */
1427 
1428  /* Calcola l'inversa di Gamma di ThetaRef */
1429  Mat3x3 GammaRefm1 = RotManip::DRot_I(ThetaRef);
1430 
1431  Vec3 f1(pNode1->GetRRef()*tilde_f1);
1432 
1433  tilde_k = Vec6(R1h.MulTV(d1 - f1), ThetaRef);
1434 
1436  R1h.MulTV(pNode2->GetWCurr() - pNode1->GetWCurr()));
1437 
1438  ConstitutiveLaw6DOwner::Update(tilde_k, tilde_kPrime);
1439 
1440  /* Chiede la matrice tangente di riferimento e la porta
1441  * nel sistema globale */
1443  MultRMRtGammam1(FDE, R1h, GammaRefm1);
1444 
1445  /* FIXME: we need to be able to regenerate FDE
1446  * if the constitutive law throws ChangedEquationStructure */
1448 
1449  bFirstRes = true;
1450 }
Mat3x3 MultRMRt(const Mat3x3 &m, const Mat3x3 &R)
Definition: matvec3.cc:1162
Vec3 d2Prime
Definition: vehj3.h:73
Vec3 Cross(const Vec3 &v) const
Definition: matvec3.h:218
virtual const Mat3x3 & GetRRef(void) const
Definition: strnode.h:1006
Definition: matvec3.h:98
Vec6 tilde_k
Definition: vehj3.h:56
virtual const Mat3x3 & GetRCurr(void) const
Definition: strnode.h:1012
Mat3x3 tilde_R2h
Definition: vehj3.h:51
const Tder & GetFDE(void) const
Definition: constltp.h:298
Vec3 tilde_f2
Definition: vehj3.h:49
Mat3x3 R1h
Definition: vehj3.h:74
Vec3 VecRot(const Mat3x3 &Phi)
Definition: Rot.cc:136
Vec3 MulTV(const Vec3 &v) const
Definition: matvec3.cc:482
Mat3x3 tilde_R1h
Definition: vehj3.h:50
Vec3 d1Prime
Definition: vehj3.h:73
Definition: matvec6.h:37
virtual const Vec3 & GetWCurr(void) const
Definition: strnode.h:1030
Mat3x3 MulTM(const Mat3x3 &m) const
Definition: matvec3.cc:500
Vec3 tilde_f1
Definition: vehj3.h:48
virtual const Vec3 & GetXCurr(void) const
Definition: strnode.h:310
static void MultRMRtGammam1(Mat6x6 &M, const Mat3x3 &R, const Mat3x3 &Gammam1)
Definition: vehj3.cc:44
virtual const Vec3 & GetVCurr(void) const
Definition: strnode.h:322
Mat6x6 FDEPrime
Definition: vehj3.h:496
Mat6x6 FDE
Definition: vehj3.h:495
const Tder & GetFDEPrime(void) const
Definition: constltp.h:303
const StructNode * pNode2
Definition: vehj3.h:47
void Update(const T &Eps, const T &EpsPrime=mb_zero< T >())
Definition: constltp.h:283
const StructNode * pNode1
Definition: vehj3.h:46
bool bFirstRes
Definition: vehj3.h:70
Mat3x3 DRot_I(const Vec3 &phi)
Definition: Rot.cc:111
Vec6 tilde_kPrime
Definition: vehj3.h:59

Here is the call graph for this function:

void ViscoElasticJoint::AssMats ( FullSubMatrixHandler WorkMatA,
FullSubMatrixHandler WorkMatB,
doublereal  dCoef 
)
protectedvirtual

Implements DeformableJoint.

Definition at line 1367 of file vehj3.cc.

References DeformableJoint::AssMatCommon(), DeformableJoint::AssMatElastic(), DeformableJoint::AssMatViscous(), FDE, and FDEPrime.

Referenced by InitialAssJac().

1369 {
1370  AssMatCommon(WMA, dCoef);
1371  AssMatElastic(WMA, dCoef, FDE);
1372  AssMatViscous(WMA, WMB, dCoef, FDEPrime);
1373 }
void AssMatElastic(FullSubMatrixHandler &WM, doublereal dCoef, const Mat6x6 &FDE)
Definition: vehj3.cc:490
void AssMatViscous(FullSubMatrixHandler &WMA, FullSubMatrixHandler &WMB, doublereal dCoef, const Mat6x6 &FDEPrime)
Definition: vehj3.cc:543
Mat6x6 FDEPrime
Definition: vehj3.h:496
Mat6x6 FDE
Definition: vehj3.h:495
void AssMatCommon(FullSubMatrixHandler &WM, doublereal dCoef)
Definition: vehj3.cc:461

Here is the call graph for this function:

void ViscoElasticJoint::AssVec ( SubVectorHandler WorkVec)
protectedvirtual

Implements DeformableJoint.

Definition at line 1376 of file vehj3.cc.

References VectorHandler::Add(), DeformableJoint::bFirstRes, Vec3::Cross(), DeformableJoint::d1, DeformableJoint::d1Prime, DeformableJoint::d2, DeformableJoint::d2Prime, DeformableJoint::F, ConstitutiveLawOwner< T, Tder >::GetF(), StructNode::GetRCurr(), StructDispNode::GetVCurr(), Vec6::GetVec1(), Vec6::GetVec2(), StructNode::GetWCurr(), StructDispNode::GetXCurr(), Mat3x3::MulTM(), MultRV(), Mat3x3::MulTV(), DeformableJoint::pNode1, DeformableJoint::pNode2, DeformableJoint::R1h, VectorHandler::Sub(), DeformableJoint::tilde_f1, DeformableJoint::tilde_f2, DeformableJoint::tilde_k, DeformableJoint::tilde_kPrime, DeformableJoint::tilde_R1h, DeformableJoint::tilde_R2h, ConstitutiveLawOwner< T, Tder >::Update(), and RotManip::VecRot().

1377 {
1378  if (bFirstRes) {
1379  bFirstRes = false;
1380 
1381  } else {
1383 
1384  d2 = pNode2->GetRCurr()*tilde_f2;
1385  d1 = pNode2->GetXCurr() + d2 - pNode1->GetXCurr();
1386 
1387  d2Prime = pNode2->GetWCurr().Cross(d2);
1389 
1390  Mat3x3 R2h(pNode2->GetRCurr()*tilde_R2h);
1391  Vec3 f1(pNode1->GetRCurr()*tilde_f1);
1392 
1393  tilde_k = Vec6(R1h.MulTV(d1 - f1), RotManip::VecRot(R1h.MulTM(R2h)));
1394 
1396  R1h.MulTV(pNode2->GetWCurr() - pNode1->GetWCurr()));
1397 
1399  }
1400 
1402 
1403  WorkVec.Add(1, F.GetVec1());
1404  WorkVec.Add(4, d1.Cross(F.GetVec1()) + F.GetVec2());
1405  WorkVec.Sub(6 + 1, F.GetVec1());
1406  WorkVec.Sub(6 + 4, d2.Cross(F.GetVec1()) + F.GetVec2());
1407 }
Vec3 d2Prime
Definition: vehj3.h:73
Vec3 Cross(const Vec3 &v) const
Definition: matvec3.h:218
Vec3 MultRV(const Vec3 &v, const Mat3x3 &R)
Definition: matvec3.cc:1144
Definition: matvec3.h:98
Vec6 tilde_k
Definition: vehj3.h:56
const Vec3 & GetVec2(void) const
Definition: matvec6.h:76
virtual const Mat3x3 & GetRCurr(void) const
Definition: strnode.h:1012
Mat3x3 tilde_R2h
Definition: vehj3.h:51
virtual void Sub(integer iRow, const Vec3 &v)
Definition: vh.cc:78
Vec3 tilde_f2
Definition: vehj3.h:49
Mat3x3 R1h
Definition: vehj3.h:74
Vec3 VecRot(const Mat3x3 &Phi)
Definition: Rot.cc:136
Vec3 MulTV(const Vec3 &v) const
Definition: matvec3.cc:482
Mat3x3 tilde_R1h
Definition: vehj3.h:50
Vec3 d1Prime
Definition: vehj3.h:73
Definition: matvec6.h:37
const Vec3 & GetVec1(void) const
Definition: matvec6.h:72
virtual const Vec3 & GetWCurr(void) const
Definition: strnode.h:1030
Mat3x3 MulTM(const Mat3x3 &m) const
Definition: matvec3.cc:500
Vec3 tilde_f1
Definition: vehj3.h:48
virtual const Vec3 & GetXCurr(void) const
Definition: strnode.h:310
virtual void Add(integer iRow, const Vec3 &v)
Definition: vh.cc:63
const T & GetF(void) const
Definition: constltp.h:293
virtual const Vec3 & GetVCurr(void) const
Definition: strnode.h:322
const StructNode * pNode2
Definition: vehj3.h:47
void Update(const T &Eps, const T &EpsPrime=mb_zero< T >())
Definition: constltp.h:283
const StructNode * pNode1
Definition: vehj3.h:46
bool bFirstRes
Definition: vehj3.h:70
Vec6 tilde_kPrime
Definition: vehj3.h:59

Here is the call graph for this function:

virtual ConstLawType::Type ViscoElasticJoint::GetConstLawType ( void  ) const
inlinevirtual

Implements DeformableJoint.

Definition at line 519 of file vehj3.h.

References ConstLawType::VISCOELASTIC.

519  {
521  };
VariableSubMatrixHandler & ViscoElasticJoint::InitialAssJac ( VariableSubMatrixHandler WorkMat,
const VectorHandler XCurr 
)
virtual

Implements SubjectToInitialAssembly.

Definition at line 1455 of file vehj3.cc.

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

1457 {
1458  FullSubMatrixHandler& WM = WorkMat.SetFull();
1459 
1460  /* Dimensiona e resetta la matrice di lavoro */
1461  integer iNumRows = 0;
1462  integer iNumCols = 0;
1463  InitialWorkSpaceDim(&iNumRows, &iNumCols);
1464  WM.ResizeReset(iNumRows, iNumCols);
1465 
1466  /* Recupera gli indici */
1467  integer iNode1FirstPosIndex = pNode1->iGetFirstPositionIndex();
1468  integer iNode2FirstPosIndex = pNode2->iGetFirstPositionIndex();
1469 
1470  /* Setta gli indici della matrice */
1471  for (int iCnt = 1; iCnt <= 6; iCnt++) {
1472  WM.PutRowIndex(iCnt, iNode1FirstPosIndex + iCnt);
1473  WM.PutColIndex(iCnt, iNode1FirstPosIndex + iCnt);
1474  WM.PutRowIndex(6 + iCnt, iNode2FirstPosIndex + iCnt);
1475  WM.PutColIndex(6 + iCnt, iNode2FirstPosIndex + iCnt);
1476  }
1477 
1478  AssMats(WM, WM, 1.);
1479 
1480  return WorkMat;
1481 }
void PutColIndex(integer iSubCol, integer iCol)
Definition: submat.h:325
FullSubMatrixHandler & SetFull(void)
Definition: submat.h:1168
virtual integer iGetFirstPositionIndex(void) const
Definition: strnode.h:452
virtual void ResizeReset(integer, integer)
Definition: submat.cc:182
void PutRowIndex(integer iSubRow, integer iRow)
Definition: submat.h:311
void AssMats(FullSubMatrixHandler &WorkMatA, FullSubMatrixHandler &WorkMatB, doublereal dCoef)
Definition: vehj3.cc:1367
virtual void InitialWorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: vehj3.h:531
const StructNode * pNode2
Definition: vehj3.h:47
long int integer
Definition: colamd.c:51
const StructNode * pNode1
Definition: vehj3.h:46

Here is the call graph for this function:

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

Implements SubjectToInitialAssembly.

Definition at line 531 of file vehj3.h.

Referenced by InitialAssJac().

531  {
532  *piNumRows = 12;
533  *piNumCols = 12;
534  };

Member Data Documentation

Mat6x6 ViscoElasticJoint::FDE
protected

Definition at line 495 of file vehj3.h.

Referenced by AfterPredict(), AssMats(), and ViscoElasticJoint().

Mat6x6 ViscoElasticJoint::FDEPrime
protected

Definition at line 496 of file vehj3.h.

Referenced by AfterPredict(), AssMats(), and ViscoElasticJoint().

Vec3 ViscoElasticJoint::ThetaRef
protected

Definition at line 493 of file vehj3.h.

Referenced by AfterPredict().


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