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

Definition at line 1140 of file constltp_impl.cc.

Member Function Documentation

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

Implements ConstitutiveLawRead< T, Tder >.

Definition at line 1142 of file constltp_impl.cc.

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

1142  {
1143  ConstitutiveLaw<T, Tder>* pCL = 0;
1144 
1145  CLType = ConstLawType::VISCOELASTIC;
1146 
1147  doublereal dS = HP.GetReal();
1148  DEBUGCOUT("Visco-Elastic Turbulent Rod Joint, stiffness = "
1149  << dS << std::endl);
1150 
1151  if (dS <= 0.) {
1152  silent_cerr("warning, null or negative stiffness at line "
1153  << HP.GetLineData() << std::endl);
1154  }
1155 
1156  doublereal dParabStiff = HP.GetReal();
1157  DEBUGCOUT("stiffness prime = " << dParabStiff << std::endl);
1158 
1159  if (dParabStiff <= 0.) {
1160  silent_cerr("warning, null or negative derivative stiffness at line "
1161  << HP.GetLineData() << std::endl);
1162  }
1163 
1164  doublereal dTreshold = 0.;
1165  if (HP.IsArg()) {
1166  dTreshold = HP.GetReal(dTreshold);
1167 
1168  /*
1169  * Il legame costitutivo ha la forma seguente:
1170  * F = Kp*e + Kd*(de/dt)
1171  * con Kp costante e Kd dato dalla seguente legge:
1172  * Kd = cost2 per fabs(de/dt) < Treshold
1173  * Kd = 2*cost1*fabs(de/dt) per fabs(de/dt) > Treshold
1174  * se non viene inserito il valore di treshold, lo si
1175  * assume = 0. e quindi il legame e' sempre del secondo
1176  * tipo. Altrimenti, se non viene inserita la seconda
1177  * costante cost2, si assume che vi sia raccordo tra
1178  * i due tipi di legge, ovvero cost2 = cost1*Treshold
1179  * altrimenti e' possibile avere un comportamento,
1180  * che in prima approssimazione e' valido
1181  * per numerosi fluidi, in cui vi e' un salto tra i due
1182  * tipi di legge costitutiva. */
1183  }
1184 
1185  doublereal dSP = dTreshold*dParabStiff;
1186  if (HP.IsArg()) {
1187  dSP = HP.GetReal(dSP);
1188  }
1189 
1190  /* Prestress and prestrain */
1191  T PreStress(mb_zero<T>());
1192  GetPreStress(HP, PreStress);
1193  TplDriveCaller<T>* pTplDC = GetPreStrain<T>(pDM, HP);
1194 
1197  L,
1198  L(pTplDC, PreStress,
1199  dS, dSP, dTreshold, dParabStiff));
1200 
1201  return pCL;
1202  };
#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
virtual bool IsArg(void)
Definition: parser.cc:807
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: