#include "myassert.h"
#include "except.h"
#include "strnode.h"
#include "elem.h"
#include "constltp.h"
#include "Rot.hh"
#include "joint.h"
Go to the source code of this file.
Definition at line 594 of file membraneeas.cc.
References DataManager::fReadOutput(), WithLabel::GetLabel(), DataManager::GetLogFile(), HighParser::GetReal(), MBDYN_EXCEPT_ARGS, Elem::PLATE, ReadMembraneConstLaw(), DataManager::ReadNode(), MyVectorHandler::Reset(), SAFENEWWITHCONSTRUCTOR, and Node::STRUCTURAL.
Referenced by DataManager::ReadOneElem().
601 for (
unsigned i = 0; i < 4; i++) {
609 #ifdef USE_CL_IN_MEMBRANE
615 for (
unsigned ir = 1; ir <= 3; ir++) {
616 for (
unsigned ic = 1; ic <= 3; ic++) {
624 for (
unsigned i = 1; i < 4; i++) {
625 pD[i] = pD[0]->Copy();
627 #else // ! USE_CL_IN_MEMBRANE
631 silent_cerr(
"Membrane(" << uLabel <<
"): unable to read constitutive law" << std::endl);
634 #endif // ! USE_CL_IN_MEMBRANE
641 pN[0], pN[1], pN[2], pN[3],
642 #ifdef USE_CL_IN_MEMBRANE
649 out <<
"membrane4: " << uLabel
flag fReadOutput(MBDynParser &HP, const T &t) const
#define MBDYN_EXCEPT_ARGS
int ReadMembraneConstLaw(MBDynParser &HP, Membrane::fmh &pD, Membrane::vh &PreStress)
#define SAFENEWWITHCONSTRUCTOR(pnt, item, constructor)
std::ostream & GetLogFile(void) const
unsigned int GetLabel(void) const
Node * ReadNode(MBDynParser &HP, Node::Type type) const
LinearElasticGenericConstitutiveLaw< Membrane::vh, Membrane::fmh > LEGCLMembrane
virtual doublereal GetReal(const doublereal &dDefval=0.0)
Definition at line 74 of file membrane.cc.
References ASSERT, IncludeParser::GetLineData(), HighParser::GetReal(), FullMatrixHandler::iGetNumCols(), FullMatrixHandler::iGetNumRows(), MyVectorHandler::iGetSize(), HighParser::IsArg(), HighParser::IsKeyWord(), and FullMatrixHandler::Reset().
Referenced by ReadMembrane4EAS().
81 for (
unsigned ir = 1; ir <= 3; ir++) {
86 for (
unsigned ir = 1; ir <= 3; ir++) {
88 for (
unsigned ic = ir + 1; ic <= 3; ic++) {
108 silent_cerr(
"Membrane isotropic constitutive law: Young's modulus already provided at line " << HP.
GetLineData() << std::endl);
114 silent_cerr(
"Membrane isotropic constitutive law: invalid Young's modulus " << dE <<
" at line " << HP.
GetLineData() << std::endl);
120 silent_cerr(
"Membrane isotropic constitutive law: Poisson's modulus already provided at line " << HP.
GetLineData() << std::endl);
125 if (dnu < 0. || dnu >= .5) {
126 silent_cerr(
"Membrane isotropic constitutive law: invalid Poisson's modulus " << dnu <<
" at line " << HP.
GetLineData() << std::endl);
132 silent_cerr(
"Membrane isotropic constitutive law: shear modulus already provided at line " << HP.
GetLineData() << std::endl);
138 silent_cerr(
"Membrane isotropic constitutive law: invalid shear modulus " << dG <<
" at line " << HP.
GetLineData() << std::endl);
144 silent_cerr(
"Membrane isotropic constitutive law: thickness already provided at line " << HP.
GetLineData() << std::endl);
150 silent_cerr(
"Membrane isotropic constitutive law: invalid thickness " << dh <<
" at line " << HP.
GetLineData() << std::endl);
165 silent_cerr(
"Membrane isotropic constitutive law: incomplete material data (need at least two among Young's modulus, Poisson's modulus, shear modulus)" << std::endl);
170 if (std::abs(dE/(2.*(1 + dnu)) - dG) >
171 std::numeric_limits<doublereal>::epsilon())
173 silent_cerr(
"Membrane isotropic constitutive law: inconsistent material data" << std::endl);
178 dG = dE/(2.*(1 + dnu));
180 }
else if (!bGot_E) {
181 dE = 2.*(1 + dnu)*dG;
183 }
else if (!bGot_nu) {
184 dnu = dE/(2.*dG) - 1.;
185 if (dnu <= 0. || dnu >= .5) {
186 silent_cerr(
"Membrane isotropic constitutive law: inconsistent material data (computed Poisson's modulus: " << dnu <<
")" << std::endl);
193 silent_cerr(
"Membrane isotropic constitutive law: shell thickness missing" << std::endl);
235 for (
unsigned ir = 1; ir <= 3; ir++) {
236 for (
unsigned ic = 1; ic <= 3; ic++) {
244 for (
unsigned ir = 1; ir <= 3; ir++) {
virtual integer iGetSize(void) const
virtual bool IsKeyWord(const char *sKeyWord)
#define ASSERT(expression)
virtual integer iGetNumCols(void) const
virtual HighParser::ErrOut GetLineData(void) const
virtual integer iGetNumRows(void) const
virtual doublereal GetReal(const doublereal &dDefval=0.0)
const char* psMembraneNames[] |