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

#include <constltp_impl.h>

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

Public Member Functions

 ContactConstitutiveLaw (const TplDriveCaller< Vec3 > *pDC, const Vec3 &PStress, const doublereal &dKappa, const doublereal &dGamma)
 
virtual ~ContactConstitutiveLaw (void)
 
virtual ConstitutiveLaw< Vec3,
Mat3x3 > * 
pCopy (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

doublereal dKappa
 
doublereal dGamma
 

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 ContactConstitutiveLaw< Vec3, Mat3x3 >

Definition at line 1137 of file constltp_impl.h.

Constructor & Destructor Documentation

ContactConstitutiveLaw< Vec3, Mat3x3 >::ContactConstitutiveLaw ( const TplDriveCaller< Vec3 > *  pDC,
const Vec3 PStress,
const doublereal dKappa,
const doublereal dGamma 
)
inline

Definition at line 1144 of file constltp_impl.h.

References ConstitutiveLaw< T, Tder >::F, ConstitutiveLaw< T, Tder >::FDE, Zero3, and Zero3x3.

1148  : ElasticConstitutiveLaw3D(pDC, PStress), dKappa(dKappa), dGamma(dGamma) {
1149  F = Zero3;
1150  FDE = Zero3x3;
1151  };
const Vec3 Zero3(0., 0., 0.)
const Mat3x3 Zero3x3(0., 0., 0., 0., 0., 0., 0., 0., 0.)
ElasticConstitutiveLaw< Vec3, Mat3x3 > ElasticConstitutiveLaw3D
virtual ContactConstitutiveLaw< Vec3, Mat3x3 >::~ContactConstitutiveLaw ( void  )
inlinevirtual

Definition at line 1153 of file constltp_impl.h.

References NO_OP.

1153  {
1154  NO_OP;
1155  };
#define NO_OP
Definition: myassert.h:74

Member Function Documentation

virtual ConstitutiveLaw<Vec3, Mat3x3>* ContactConstitutiveLaw< Vec3, Mat3x3 >::pCopy ( void  ) const
inlinevirtual

Implements ConstitutiveLaw< Vec3, Mat3x3 >.

Definition at line 1157 of file constltp_impl.h.

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

1157  {
1159 
1162  cl,
1163  cl(pGetDriveCaller()->pCopy(),
1164  PreStress,
1165  dKappa,
1166  dGamma));
1167 
1168  return pCL;
1169  };
TplDriveCaller< Vec3 > * pGetDriveCaller(void) const
Definition: tpldrive.h:105
#define SAFENEWWITHCONSTRUCTOR(pnt, item, constructor)
Definition: mynewmem.h:698
virtual ConstitutiveLaw< Vec3, Mat3x3 > * pCopy(void) const

Here is the call graph for this function:

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

Reimplemented from ConstitutiveLaw< Vec3, Mat3x3 >.

Definition at line 1171 of file constltp_impl.h.

References ElasticConstitutiveLaw< T, Tder >::Restart_int().

1171  {
1172  out << "contact elastic, "
1173  << dKappa << ", "
1174  << dGamma;
1175  return Restart_int(out);
1176  };
virtual std::ostream & Restart_int(std::ostream &out) const

Here is the call graph for this function:

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

Implements ConstitutiveLaw< Vec3, Mat3x3 >.

Definition at line 1178 of file constltp_impl.h.

References ConstitutiveLaw< T, Tder >::Epsilon, ConstitutiveLaw< T, Tder >::F, ConstitutiveLaw< T, Tder >::FDE, TplDriveOwner< T >::Get(), and grad::pow().

1178  {
1179  doublereal dE;
1180 
1181  Epsilon = Eps;
1182  dE = Epsilon.dGet(3)-Get().dGet(3);
1183  if ( dE >= 0. ) {
1184  F.Put(3, 0.);
1185  FDE.Put(3, 3, 0.);
1186  } else {
1187  F.Put(3, dKappa*(1. - 1./pow(1. + dE, dGamma)));
1188  FDE.Put(3, 3, dGamma*dKappa/pow(1. + dE, dGamma + 1.));
1189  }
1190  };
GradientExpression< BinaryExpr< FuncPow, LhsExpr, RhsExpr > > pow(const GradientExpression< LhsExpr > &u, const GradientExpression< RhsExpr > &v)
Definition: gradient.h:2961
const doublereal & dGet(unsigned short int iRow) const
Definition: matvec3.h:285
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
void Put(unsigned short int iRow, const doublereal &dCoef)
Definition: matvec3.h:276

Here is the call graph for this function:

Member Data Documentation

Definition at line 1141 of file constltp_impl.h.

Definition at line 1140 of file constltp_impl.h.


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