#include "mbconfig.h"
#include "constltp_impl.h"
#include "tpldrive_impl.h"
#include "membrane.h"
#include "mynewmem.h"
Go to the source code of this file.
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)