MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
DoubleLinearViscoElasticCLR< T, Tder > Struct Template Reference
Inheritance diagram for DoubleLinearViscoElasticCLR< T, Tder >:
Collaboration diagram for DoubleLinearViscoElasticCLR< T, Tder >:

Public Member Functions

virtual ConstitutiveLaw< T,
Tder > * 
Read (const DataManager *pDM, MBDynParser &HP, ConstLawType::Type &CLType)
 
- Public Member Functions inherited from ConstitutiveLawRead< T, Tder >
virtual ~ConstitutiveLawRead (void)
 

Detailed Description

template<class T, class Tder>
struct DoubleLinearViscoElasticCLR< T, Tder >

Definition at line 1072 of file constltp_impl.cc.

Member Function Documentation

template<class T , class Tder >
virtual ConstitutiveLaw<T, Tder>* DoubleLinearViscoElasticCLR< T, Tder >::Read ( const DataManager pDM,
MBDynParser HP,
ConstLawType::Type CLType 
)
inlinevirtual

Implements ConstitutiveLawRead< T, Tder >.

Definition at line 1074 of file constltp_impl.cc.

References DEBUGCOUT, dS, IncludeParser::GetLineData(), GetPreStress(), HighParser::GetReal(), HighParser::IsKeyWord(), SAFENEWWITHCONSTRUCTOR, and ConstLawType::VISCOELASTIC.

1074  {
1075  ConstitutiveLaw<T, Tder>* pCL = 0;
1076 
1077  CLType = ConstLawType::VISCOELASTIC;
1078 
1079  doublereal dS = HP.GetReal();
1080  DEBUGCOUT("stiffness = " << dS << std::endl);
1081 
1082  if (dS <= 0.) {
1083  silent_cerr("warning, null or negative stiffness at line "
1084  << HP.GetLineData() << std::endl);
1085  }
1086 
1087  doublereal dUpp = HP.GetReal();
1088  if (dUpp <= 0.) {
1089  silent_cerr("warning, null or negative upper limit strain at line "
1090  << HP.GetLineData() << std::endl);
1091  }
1092 
1093  doublereal dLow = HP.GetReal();
1094  if (dLow >= 0.) {
1095  silent_cerr("warning, null or positive lower limit strain at line "
1096  << HP.GetLineData() << std::endl);
1097  }
1098 
1099  doublereal dSecondS = HP.GetReal();
1100  if (dSecondS <= 0.) {
1101  silent_cerr("warning, null or negative second stiffness at line "
1102  << HP.GetLineData() << std::endl);
1103  }
1104 
1105  doublereal dSP = HP.GetReal();
1106  DEBUGCOUT("stiffness prime = " << dSP << std::endl);
1107 
1108  if (dSP <= 0.) {
1109  silent_cerr("warning, null or negative stiffness prime at line "
1110  << HP.GetLineData() << std::endl);
1111  }
1112 
1113  doublereal dSecondSP = dSP;
1114  if (HP.IsKeyWord("second" "damping")) {
1115  dSecondSP = HP.GetReal();
1116  DEBUGCOUT("second stiffness prime = " << dSecondSP << std::endl);
1117 
1118  if (dSecondSP <= 0.) {
1119  silent_cerr("warning, null or negative second stiffness prime at line "
1120  << HP.GetLineData() << std::endl);
1121  }
1122  }
1123 
1124  /* Prestress and prestrain */
1125  T PreStress(mb_zero<T>());
1126  GetPreStress(HP, PreStress);
1127  TplDriveCaller<T>* pTplDC = GetPreStrain<T>(pDM, HP);
1128 
1131  L,
1132  L(pTplDC, PreStress,
1133  dS, dUpp, dLow, dSecondS, dSP, dSecondSP));
1134 
1135  return pCL;
1136  };
virtual bool IsKeyWord(const char *sKeyWord)
Definition: parser.cc:910
#define DEBUGCOUT(msg)
Definition: myassert.h:232
#define SAFENEWWITHCONSTRUCTOR(pnt, item, constructor)
Definition: mynewmem.h:698
void GetPreStress(MBDynParser &HP, T &PreStress)
const doublereal dS
Definition: beamslider.cc:71
double doublereal
Definition: colamd.c:52
virtual HighParser::ErrOut GetLineData(void) const
Definition: parsinc.cc:697
virtual doublereal GetReal(const doublereal &dDefval=0.0)
Definition: parser.cc:1056

Here is the call graph for this function:


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