MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
CubicElasticGenericConstitutiveLaw< Vec3, Mat3x3 > Class Template Reference

#include <constltp_impl.h>

Inheritance diagram for CubicElasticGenericConstitutiveLaw< Vec3, Mat3x3 >:
Collaboration diagram for CubicElasticGenericConstitutiveLaw< Vec3, Mat3x3 >:

Public Member Functions

 CubicElasticGenericConstitutiveLaw (const TplDriveCaller< Vec3 > *pDC, const Vec3 &PStress, const Vec3 &Stiff1, const Vec3 &Stiff2, const Vec3 &Stiff3)
 
virtual ~CubicElasticGenericConstitutiveLaw (void)
 
virtual ConstitutiveLaw3DpCopy (void) const
 
virtual std::ostream & Restart (std::ostream &out) const
 
virtual void Update (const Vec3 &Eps, const Vec3 &=Zero3)
 
- Public Member Functions inherited from ElasticConstitutiveLaw< Vec3, Mat3x3 >
 ElasticConstitutiveLaw (const TplDriveCaller< Vec3 > *pDC, const Vec3 &PStress)
 
virtual ~ElasticConstitutiveLaw (void)
 
ConstLawType::Type GetConstLawType (void) const
 
void SetValue (DataManager *pDM, VectorHandler &X, VectorHandler &XP, SimulationEntity::Hints *ph=0)
 
virtual HintParseHint (DataManager *pDM, const char *s) const
 
- Public Member Functions inherited from ConstitutiveLaw< Vec3, Mat3x3 >
 ConstitutiveLaw (void)
 
virtual ~ConstitutiveLaw (void)
 
virtual void AfterConvergence (const Vec3 &Eps, const Vec3 &EpsPrime=mb_zero< Vec3 >())
 
virtual const Vec3GetEpsilon (void) const
 
virtual const Vec3GetEpsilonPrime (void) const
 
virtual const Vec3GetF (void) const
 
virtual const Mat3x3GetFDE (void) const
 
virtual const Mat3x3GetFDEPrime (void) const
 
virtual unsigned int iGetNumDof (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
 
- 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 Update (const VectorHandler &XCurr, InverseDynamics::Order iOrder)
 
virtual void AfterConvergence (const VectorHandler &X, const VectorHandler &XP)
 
virtual void AfterConvergence (const VectorHandler &X, const VectorHandler &XP, const VectorHandler &XPP)
 
virtual unsigned int iGetNumPrivData (void) const
 
virtual unsigned int iGetPrivDataIdx (const char *s) const
 
virtual doublereal dGetPrivData (unsigned int i) const
 
virtual std::ostream & OutputAppend (std::ostream &out) const
 
virtual void ReadInitialState (MBDynParser &HP)
 
- Public Member Functions inherited from TplDriveOwner< Vec3 >
 TplDriveOwner (const TplDriveCaller< Vec3 > *pDC=0)
 
virtual ~TplDriveOwner (void)
 
void Set (const TplDriveCaller< Vec3 > *pDC)
 
TplDriveCaller< Vec3 > * pGetDriveCaller (void) const
 
Vec3 Get (const doublereal &dVar) const
 
Vec3 Get (void) const
 
virtual bool bIsDifferentiable (void) const
 
virtual Vec3 GetP (void) const
 

Private Attributes

Vec3 Stiff1
 
Vec3 Stiff2
 
Vec3 Stiff3
 

Additional Inherited Members

- Public Types inherited from ConstitutiveLaw< Vec3, Mat3x3 >
typedef ConstitutiveLaw< Vec3,
Mat3x3 >::ErrNotAvailable 
Err
 
- Public Types inherited from SimulationEntity
typedef std::vector< Hint * > Hints
 
- Protected Member Functions inherited from ElasticConstitutiveLaw< Vec3, Mat3x3 >
virtual std::ostream & Restart_int (std::ostream &out) const
 
- Protected Attributes inherited from ElasticConstitutiveLaw< Vec3, Mat3x3 >
Vec3 PreStress
 
- Protected Attributes inherited from ConstitutiveLaw< Vec3, Mat3x3 >
Vec3 Epsilon
 
Vec3 EpsilonPrime
 
Vec3 F
 
Mat3x3 FDE
 
Mat3x3 FDEPrime
 
- Protected Attributes inherited from WithLabel
unsigned int uLabel
 
std::string sName
 
- Protected Attributes inherited from TplDriveOwner< Vec3 >
TplDriveCaller< Vec3 > * pTplDriveCaller
 

Detailed Description

template<>
class CubicElasticGenericConstitutiveLaw< Vec3, Mat3x3 >

Definition at line 544 of file constltp_impl.h.

Constructor & Destructor Documentation

CubicElasticGenericConstitutiveLaw< Vec3, Mat3x3 >::CubicElasticGenericConstitutiveLaw ( const TplDriveCaller< Vec3 > *  pDC,
const Vec3 PStress,
const Vec3 Stiff1,
const Vec3 Stiff2,
const Vec3 Stiff3 
)
inline

Definition at line 552 of file constltp_impl.h.

References NO_OP.

555  : ElasticConstitutiveLaw3D(pDC, PStress),
556  Stiff1(Stiff1), Stiff2(Stiff2), Stiff3(Stiff3)
557  {
558  NO_OP;
559  };
#define NO_OP
Definition: myassert.h:74
ElasticConstitutiveLaw< Vec3, Mat3x3 > ElasticConstitutiveLaw3D

Definition at line 561 of file constltp_impl.h.

References NO_OP.

561  {
562  NO_OP;
563  };
#define NO_OP
Definition: myassert.h:74

Member Function Documentation

virtual ConstitutiveLaw3D* CubicElasticGenericConstitutiveLaw< Vec3, Mat3x3 >::pCopy ( void  ) const
inlinevirtual

Implements ConstitutiveLaw< Vec3, Mat3x3 >.

Definition at line 565 of file constltp_impl.h.

References CubicElasticGenericConstitutiveLaw< T, Tder >::pCopy(), TplDriveOwner< Vec3 >::pGetDriveCaller(), ElasticConstitutiveLaw< Vec3, Mat3x3 >::PreStress, and SAFENEWWITHCONSTRUCTOR.

Here is the call graph for this function:

virtual std::ostream& CubicElasticGenericConstitutiveLaw< Vec3, Mat3x3 >::Restart ( std::ostream &  out) const
inlinevirtual

Reimplemented from ConstitutiveLaw< Vec3, Mat3x3 >.

Definition at line 577 of file constltp_impl.h.

References ElasticConstitutiveLaw< Vec3, Mat3x3 >::Restart_int(), and Write().

577  {
578  out << "cubic elastic generic, ",
579  Write(out, Stiff1, ", ") << ", ",
580  Write(out, Stiff2, ", ") << ", ",
581  Write(out, Stiff3, ", ") << ", ";
583  };
std::ostream & Write(std::ostream &out, const FullMatrixHandler &m, const char *s, const char *s2)
Definition: fullmh.cc:376
virtual std::ostream & Restart_int(std::ostream &out) const

Here is the call graph for this function:

virtual void CubicElasticGenericConstitutiveLaw< Vec3, Mat3x3 >::Update ( const Vec3 Eps,
const Vec3 = Zero3 
)
inlinevirtual

Implements ConstitutiveLaw< Vec3, Mat3x3 >.

Definition at line 585 of file constltp_impl.h.

References ConstitutiveLaw< Vec3, Mat3x3 >::Epsilon, ConstitutiveLaw< Vec3, Mat3x3 >::F, grad::fabs(), ConstitutiveLaw< Vec3, Mat3x3 >::FDE, TplDriveOwner< Vec3 >::Get(), ElasticConstitutiveLaw< Vec3, Mat3x3 >::PreStress, and Mat3x3::Put().

585  {
587  Vec3 v1 = Eps - ElasticConstitutiveLaw3D::Get();
589 
590 #if defined(MBDYN_X_WORKAROUND_GCC_3_2) || defined(MBDYN_X_WORKAROUND_GCC_3_3)
591  Vec3 FTmp;
592 #endif // MBDYN_X_WORKAROUND_GCC_3_2 || MBDYN_X_WORKAROUND_GCC_3_3
593 
594  for (int iCnt = 1; iCnt <= 3; iCnt++) {
595  doublereal e1 = v1(iCnt);
596  doublereal f1 = fabs(e1);
597  doublereal e2 = e1*e1;
598  doublereal f2 = f1*e1;
599  doublereal e3 = e2*e1;
600 
601 #if defined(MBDYN_X_WORKAROUND_GCC_3_2) || defined(MBDYN_X_WORKAROUND_GCC_3_3)
602  ConstitutiveLaw3D::FDE.Put(iCnt, iCnt,
603  Stiff1(iCnt)
604  + 2.*Stiff2(iCnt)*f1
605  + 3.*Stiff3(iCnt)*e2);
606  FTmp(iCnt) = Stiff1(iCnt)*e1
607  + Stiff2(iCnt)*f2
608  + Stiff3(iCnt)*e3;
609 #else // ! MBDYN_X_WORKAROUND_GCC_3_2 && ! MBDYN_X_WORKAROUND_GCC_3_3
610  ConstitutiveLaw3D::FDE(iCnt, iCnt) = Stiff1(iCnt) + 2.*Stiff2(iCnt)*f1 + 3.*Stiff3(iCnt)*e2;
611  ConstitutiveLaw3D::F(iCnt) += Stiff1(iCnt)*e1 + Stiff2(iCnt)*f2 + Stiff3(iCnt)*e3;
612 #endif // ! MBDYN_X_WORKAROUND_GCC_3_2 && ! MBDYN_X_WORKAROUND_GCC_3_3
613  }
614 
615 #if defined(MBDYN_X_WORKAROUND_GCC_3_2) || defined(MBDYN_X_WORKAROUND_GCC_3_3)
616  ConstitutiveLaw3D::F += FTmp;
617 #endif // MBDYN_X_WORKAROUND_GCC_3_3 || MBDYN_X_WORKAROUND_GCC_3_3
618  };
Definition: matvec3.h:98
GradientExpression< UnaryExpr< FuncFabs, Expr > > fabs(const GradientExpression< Expr > &u)
Definition: gradient.h:2973
void Put(unsigned short int iRow, unsigned short int iCol, const doublereal &dCoef)
Definition: matvec3.h:758
double doublereal
Definition: colamd.c:52
Vec3 Get(void) const
Definition: tpldrive.h:113

Here is the call graph for this function:

Member Data Documentation

Definition at line 547 of file constltp_impl.h.

Definition at line 548 of file constltp_impl.h.

Definition at line 549 of file constltp_impl.h.


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