template<class T, class Tder>
struct SymbolicCLR< T, Tder >
Definition at line 595 of file constltp_impl.cc.
template<class T , class Tder >
Implements ConstitutiveLawRead< T, Tder >.
Reimplemented in SymbolicViscoElasticCLR< T, Tder >, SymbolicViscousCLR< T, Tder >, and SymbolicElasticCLR< T, Tder >.
Definition at line 597 of file constltp_impl.cc.
References ASSERT, ConstLawType::ELASTIC, IncludeParser::GetLineData(), GetPreStress(), HighParser::GetStringWithDelims(), HighParser::IsKeyWord(), MBDYN_EXCEPT_ARGS, SAFENEWWITHCONSTRUCTOR, ConstLawType::VISCOELASTIC, and ConstLawType::VISCOUS.
Referenced by SymbolicElasticCLR< T, Tder >::Read(), SymbolicViscousCLR< T, Tder >::Read(), and SymbolicViscoElasticCLR< T, Tder >::Read().
604 }
else if (
typeid(T) ==
typeid(
Vec3)) {
607 }
else if (
typeid(T) ==
typeid(
Vec6)) {
611 silent_cerr(
"Invalid dimensionality "
612 "for symbolic constitutive law "
618 std::vector<std::string> epsilon;
621 silent_cerr(
"keyword \"epsilon\" expected at line " << HP.
GetLineData() << std::endl);
627 for (
unsigned row = 0; row < dim; row++) {
631 silent_cerr(
"unable to get \"epsilon\" "
632 "symbol #" << row <<
" "
640 std::vector<std::string> epsilonPrime;
643 silent_cerr(
"keyword \"epsilon prime\" expected at line " << HP.
GetLineData() << std::endl);
647 epsilonPrime.resize(dim);
649 for (
unsigned row = 0; row < dim; row++) {
653 silent_cerr(
"unable to get \"epsilonPrime\" "
654 "symbol #" << row <<
" "
658 epsilonPrime[row] = tmp;
663 silent_cerr(
"keyword \"expression\" expected at line " << HP.
GetLineData() << std::endl);
667 std::vector<std::string> expression(dim);
668 for (
unsigned row = 0; row < dim; row++) {
671 silent_cerr(
"unable to get \"expression\" "
677 expression[row] = tmp;
681 T PreStress(mb_zero<T>());
686 GetPreStrain<T>(pDM, HP);
689 case ConstLawType::ELASTIC: {
697 silent_cerr(
"symbolic constitutive law not supported "
704 case ConstLawType::VISCOUS: {
708 L(PreStress, epsilonPrime, expression));
710 silent_cerr(
"symbolic constitutive law not supported "
722 epsilon, epsilonPrime,
725 silent_cerr(
"symbolic constitutive law not supported "
#define MBDYN_EXCEPT_ARGS
virtual bool IsKeyWord(const char *sKeyWord)
virtual const char * GetStringWithDelims(enum Delims Del=DEFAULTDELIM, bool escape=true)
#define ASSERT(expression)
#define SAFENEWWITHCONSTRUCTOR(pnt, item, constructor)
void GetPreStress(MBDynParser &HP, T &PreStress)
virtual HighParser::ErrOut GetLineData(void) const