Definition at line 276 of file module-muscles.cc.
Implements ConstitutiveLawRead< doublereal, doublereal >.
Definition at line 278 of file module-muscles.cc.
References MBDynParser::GetDriveCaller(), IncludeParser::GetLineData(), GetPreStress(), HighParser::GetReal(), HighParser::GetYesNoOrBool(), HighParser::IsArg(), HighParser::IsKeyWord(), MBDYN_EXCEPT_ARGS, SAFENEWWITHCONSTRUCTOR, and ConstLawType::VISCOELASTIC.
284 silent_cerr(
"MusclePennestriCL:\n"
285 " muscle Pennestri ,\n"
286 " [ initial length , <Li> , ]\n"
287 " reference length , <L0> ,\n"
288 " [ reference velocity , <V0> , ]\n"
289 " reference force , <F0> ,\n"
290 " activation , (DriveCaller) <activation>\n"
291 " [ , activation check , (bool)<activation_check> ]\n"
292 " [ , ergonomy , { yes | no } , ]\n"
293 " [ , reflexive , # only when ergonomy == no\n"
294 " proportional gain , <kp> ,\n"
295 " derivative gain , <kd> ,\n"
296 " reference length, (DriveCaller) <lref> ]\n"
297 " [ , prestress, <prestress> ]\n"
298 " [ , prestrain, (DriveCaller) <prestrain> ]\n"
307 bool bGotErgo(
false);
309 silent_cerr(
"MusclePennestriCL: deprecated, \"ergonomy\" "
311 <<
" should be at end of definition" << std::endl);
320 silent_cerr(
"MusclePennestriCL: null or negative initial length "
326 if (!HP.
IsKeyWord(
"reference" "length")) {
327 silent_cerr(
"MusclePennestriCL: \"reference length\" expected "
333 silent_cerr(
"MusclePennestriCL: null or negative reference length "
340 if (HP.
IsKeyWord(
"reference" "velocity")) {
343 silent_cerr(
"MusclePennestriCL: null or negative reference velocity "
349 if (!HP.
IsKeyWord(
"reference" "force")) {
350 silent_cerr(
"MusclePennestriCL: \"reference force\" expected "
356 silent_cerr(
"MusclePennestriCL: null or negative reference force "
362 silent_cerr(
"MusclePennestriCL: \"activation\" expected "
368 bool bActivationOverflow(
false);
369 if (HP.
IsKeyWord(
"activation" "check")) {
374 if (!bGotErgo && HP.
IsKeyWord(
"ergonomy")) {
378 bool bReflexive(
false);
384 silent_cerr(
"MusclePennestriCL: "
385 "\"reflexive\" and \"ergonomy\" incompatible "
391 if (!HP.
IsKeyWord(
"proportional" "gain")) {
392 silent_cerr(
"MusclePennestriCL: \"proportional gain\" expected "
398 if (!HP.
IsKeyWord(
"derivative" "gain")) {
399 silent_cerr(
"MusclePennestriCL: \"derivative gain\" expected "
405 if (!HP.
IsKeyWord(
"reference" "length")) {
406 silent_cerr(
"MusclePennestriCL: \"reference length\" expected "
425 Li, L0, V0, F0, pAct,
426 bActivationOverflow));
428 }
else if (bReflexive) {
431 Li, L0, V0, F0, pAct,
438 Li, L0, V0, F0, pAct,
439 bActivationOverflow));
#define MBDYN_EXCEPT_ARGS
virtual bool GetYesNoOrBool(bool bDefval=false)
virtual bool IsKeyWord(const char *sKeyWord)
#define SAFENEWWITHCONSTRUCTOR(pnt, item, constructor)
void GetPreStress(MBDynParser &HP, T &PreStress)
DriveCaller * GetDriveCaller(bool bDeferred=false)
virtual HighParser::ErrOut GetLineData(void) const
virtual doublereal GetReal(const doublereal &dDefval=0.0)
The documentation for this struct was generated from the following file: