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

#include <constltp_impl.h>

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

Public Member Functions

 CubicViscoElasticGenericConstitutiveLaw (const TplDriveCaller< Vec3 > *pDC, const Vec3 &PStress, const Vec3 &Stiff1, const Vec3 &Stiff2, const Vec3 &Stiff3, const Mat3x3 &StiffPrime)
 
virtual ~CubicViscoElasticGenericConstitutiveLaw (void)
 
virtual ConstitutiveLaw3DpCopy (void) const
 
virtual std::ostream & Restart (std::ostream &out) const
 
virtual void Update (const Vec3 &Eps, const Vec3 &EpsPrime=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 CubicViscoElasticGenericConstitutiveLaw< Vec3, Mat3x3 >

Definition at line 1703 of file constltp_impl.h.

Constructor & Destructor Documentation

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

Definition at line 1711 of file constltp_impl.h.

References ConstitutiveLaw< Vec3, Mat3x3 >::FDEPrime.

1715  : ElasticConstitutiveLaw3D(pDC, PStress),
1716  Stiff1(Stiff1), Stiff2(Stiff2), Stiff3(Stiff3)
1717  {
1718  ConstitutiveLaw3D::FDEPrime = StiffPrime;
1719  };
ElasticConstitutiveLaw< Vec3, Mat3x3 > ElasticConstitutiveLaw3D

Definition at line 1721 of file constltp_impl.h.

References NO_OP.

1721  {
1722  NO_OP;
1723  };
#define NO_OP
Definition: myassert.h:74

Member Function Documentation

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

Implements ConstitutiveLaw< Vec3, Mat3x3 >.

Definition at line 1725 of file constltp_impl.h.

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

Here is the call graph for this function:

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

Reimplemented from ConstitutiveLaw< Vec3, Mat3x3 >.

Definition at line 1737 of file constltp_impl.h.

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

1737  {
1738  out << "cubic elastic generic, ",
1739  Write(out, Stiff1, ", ") << ", ",
1740  Write(out, Stiff2, ", ") << ", ",
1741  Write(out, Stiff3, ", ") << ", ",
1742  Write(out, ConstitutiveLaw3D::FDEPrime, ", ") << ", ";
1744  };
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 CubicViscoElasticGenericConstitutiveLaw< Vec3, Mat3x3 >::Update ( const Vec3 Eps,
const Vec3 EpsPrime = Zero3 
)
inlinevirtual

Implements ConstitutiveLaw< Vec3, Mat3x3 >.

Definition at line 1746 of file constltp_impl.h.

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

1746  {
1749  Vec3 v1 = Eps - ElasticConstitutiveLaw3D::Get();
1751 
1752 #if defined(MBDYN_X_WORKAROUND_GCC_3_2) || defined(MBDYN_X_WORKAROUND_GCC_3_3)
1753  Vec3 FTmp;
1754 #endif // MBDYN_X_WORKAROUND_GCC_3_2 || MBDYN_X_WORKAROUND_GCC_3_3
1755 
1756  for (int iCnt = 1; iCnt <= 3; iCnt++) {
1757  doublereal e1 = v1(iCnt);
1758  doublereal f1 = fabs(e1);
1759  doublereal e2 = e1*e1;
1760  doublereal f2 = f1*e1;
1761  doublereal e3 = e2*e1;
1762 
1763 #if defined(MBDYN_X_WORKAROUND_GCC_3_2) || defined(MBDYN_X_WORKAROUND_GCC_3_3)
1764  ConstitutiveLaw3D::FDE.Put(iCnt, iCnt,
1765  Stiff1(iCnt)
1766  + 2.*Stiff2(iCnt)*f1
1767  + 3.*Stiff3(iCnt)*e2);
1768  FTmp(iCnt) = Stiff1(iCnt)*e1
1769  + Stiff2(iCnt)*f2
1770  + Stiff3(iCnt)*e3;
1771 #else // ! MBDYN_X_WORKAROUND_GCC_3_2 && ! MBDYN_X_WORKAROUND_GCC_3_3
1772  ConstitutiveLaw3D::FDE(iCnt, iCnt) = Stiff1(iCnt)
1773  + 2.*Stiff2(iCnt)*f1 + 3.*Stiff3(iCnt)*e2;
1774  ConstitutiveLaw3D::F(iCnt) += Stiff1(iCnt)*e1
1775  + Stiff2(iCnt)*f2 + Stiff3(iCnt)*e3;
1776 #endif // ! MBDYN_X_WORKAROUND_GCC_3_2 && ! MBDYN_X_WORKAROUND_GCC_3_3
1777  }
1778 
1779 #if defined(MBDYN_X_WORKAROUND_GCC_3_2) || defined(MBDYN_X_WORKAROUND_GCC_3_3)
1780  ConstitutiveLaw3D::F += FTmp;
1781 #endif // ! MBDYN_X_WORKAROUND_GCC_3_2 && ! MBDYN_X_WORKAROUND_GCC_3_3
1782  };
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 1706 of file constltp_impl.h.

Definition at line 1707 of file constltp_impl.h.

Definition at line 1708 of file constltp_impl.h.


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