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

#include <constltp_impl.h>

Inheritance diagram for DoubleLinearElasticConstitutiveLaw< doublereal, doublereal >:
Collaboration diagram for DoubleLinearElasticConstitutiveLaw< doublereal, doublereal >:

Public Member Functions

 DoubleLinearElasticConstitutiveLaw (const TplDriveCaller< doublereal > *pDC, const doublereal &PStress, doublereal dStiff, doublereal dUppLimStrain, doublereal dLowLimStrain, doublereal dSecondStiff)
 
virtual ~DoubleLinearElasticConstitutiveLaw (void)
 
virtual ConstitutiveLaw
< doublereal, doublereal > * 
pCopy (void) const
 
virtual std::ostream & Restart (std::ostream &out) const
 
virtual void Update (const doublereal &Eps, const doublereal &=0.)
 
- Public Member Functions inherited from ElasticConstitutiveLaw< doublereal, doublereal >
 ElasticConstitutiveLaw (const TplDriveCaller< doublereal > *pDC, const doublereal &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< doublereal, doublereal >
 ConstitutiveLaw (void)
 
virtual ~ConstitutiveLaw (void)
 
virtual void AfterConvergence (const doublereal &Eps, const doublereal &EpsPrime=mb_zero< doublereal >())
 
virtual const doublerealGetEpsilon (void) const
 
virtual const doublerealGetEpsilonPrime (void) const
 
virtual const doublerealGetF (void) const
 
virtual const doublerealGetFDE (void) const
 
virtual const doublerealGetFDEPrime (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< doublereal >
 TplDriveOwner (const TplDriveCaller< doublereal > *pDC=0)
 
virtual ~TplDriveOwner (void)
 
void Set (const TplDriveCaller< doublereal > *pDC)
 
TplDriveCaller< doublereal > * pGetDriveCaller (void) const
 
doublereal Get (const doublereal &dVar) const
 
doublereal Get (void) const
 
virtual bool bIsDifferentiable (void) const
 
virtual doublereal GetP (void) const
 

Private Attributes

doublereal dStiffness
 
doublereal dUpperLimitStrain
 
doublereal dLowerLimitStrain
 
doublereal dSecondStiffness
 
flag fSecondStiff
 

Additional Inherited Members

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

Detailed Description

template<>
class DoubleLinearElasticConstitutiveLaw< doublereal, doublereal >

Definition at line 797 of file constltp_impl.h.

Constructor & Destructor Documentation

DoubleLinearElasticConstitutiveLaw< doublereal, doublereal >::DoubleLinearElasticConstitutiveLaw ( const TplDriveCaller< doublereal > *  pDC,
const doublereal PStress,
doublereal  dStiff,
doublereal  dUppLimStrain,
doublereal  dLowLimStrain,
doublereal  dSecondStiff 
)
inline

Definition at line 807 of file constltp_impl.h.

References ConstitutiveLaw< T, Tder >::FDE.

813  : ElasticConstitutiveLaw1D(pDC, PStress),
814  dStiffness(dStiff),
815  dUpperLimitStrain(dUppLimStrain),
816  dLowerLimitStrain(dLowLimStrain),
817  dSecondStiffness(dSecondStiff) {
818  FDE = dStiffness;
819  };
ElasticConstitutiveLaw< doublereal, doublereal > ElasticConstitutiveLaw1D

Definition at line 821 of file constltp_impl.h.

References NO_OP.

821  {
822  NO_OP;
823  };
#define NO_OP
Definition: myassert.h:74

Member Function Documentation

virtual ConstitutiveLaw<doublereal, doublereal>* DoubleLinearElasticConstitutiveLaw< doublereal, doublereal >::pCopy ( void  ) const
inlinevirtual

Implements ConstitutiveLaw< doublereal, doublereal >.

Definition at line 825 of file constltp_impl.h.

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

825  {
827 
830  cl,
831  cl(pGetDriveCaller()->pCopy(),
832  PreStress,
833  dStiffness,
837 
838  return pCL;
839  };
TplDriveCaller< doublereal > * pGetDriveCaller(void) const
Definition: tpldrive.h:105
#define SAFENEWWITHCONSTRUCTOR(pnt, item, constructor)
Definition: mynewmem.h:698
virtual ConstitutiveLaw< doublereal, doublereal > * pCopy(void) const

Here is the call graph for this function:

virtual std::ostream& DoubleLinearElasticConstitutiveLaw< doublereal, doublereal >::Restart ( std::ostream &  out) const
inlinevirtual

Reimplemented from ConstitutiveLaw< doublereal, doublereal >.

Definition at line 841 of file constltp_impl.h.

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

841  {
842  out << "double linear elastic, "
843  << dStiffness << ", "
844  << dUpperLimitStrain << ", "
845  << dLowerLimitStrain << ", "
846  << dSecondStiffness;
847  return Restart_int(out);
848  };
virtual std::ostream & Restart_int(std::ostream &out) const

Here is the call graph for this function:

virtual void DoubleLinearElasticConstitutiveLaw< doublereal, doublereal >::Update ( const doublereal Eps,
const doublereal = 0. 
)
inlinevirtual

Implements ConstitutiveLaw< doublereal, doublereal >.

Definition at line 850 of file constltp_impl.h.

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

850  {
851  Epsilon = Eps;
852 
853  doublereal dPreStrain = Get();
854  doublereal dCurrStrain = Epsilon-dPreStrain;
855  if (dCurrStrain <= dUpperLimitStrain && dCurrStrain >= dLowerLimitStrain) {
856  FDE = dStiffness;
857  F = PreStress + dStiffness*dCurrStrain;
858  } else {
860 
861  if (dCurrStrain > dUpperLimitStrain) {
863  + dSecondStiffness*(dCurrStrain - dUpperLimitStrain);
864  } else /* if (dCurrStrain < dLowerLimitStrain) */ {
866  + dSecondStiffness*(dCurrStrain - dLowerLimitStrain);
867  }
868  }
869  };
double doublereal
Definition: colamd.c:52
doublereal Get(void) const
Definition: tpldrive.h:113

Here is the call graph for this function:

Member Data Documentation

Definition at line 802 of file constltp_impl.h.

Definition at line 803 of file constltp_impl.h.

Definition at line 800 of file constltp_impl.h.

Definition at line 801 of file constltp_impl.h.

Definition at line 804 of file constltp_impl.h.


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