MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
shelleas.cc File Reference
#include "mbconfig.h"
#include "constltp_impl.h"
#include "tpldrive_impl.h"
#include "shelleas.h"
#include "mynewmem.h"
#include "shell.hc"
#include <iostream>
Include dependency graph for shelleas.cc:

Go to the source code of this file.

Typedefs

typedef
LinearElasticGenericConstitutiveLaw
< Shell::vh, Shell::fmh
LEGCLShell
 

Functions

ElemReadShell4EAS (DataManager *pDM, MBDynParser &HP, const DofOwner *pDO, unsigned int uLabel)
 

Typedef Documentation

Function Documentation

Elem* ReadShell4EAS ( DataManager pDM,
MBDynParser HP,
const DofOwner pDO,
unsigned int  uLabel 
)

Definition at line 1272 of file shelleas.cc.

References Eye3, DataManager::fReadOutput(), WithLabel::GetLabel(), DataManager::GetLogFile(), HighParser::GetReal(), MBDynParser::GetRotRel(), HighParser::IsKeyWord(), MBDYN_EXCEPT_ARGS, Elem::PLATE, R, DataManager::ReadNode(), ReadShellConstLaw(), MyVectorHandler::Reset(), SAFENEWWITHCONSTRUCTOR, and Node::STRUCTURAL.

Referenced by DataManager::ReadOneElem().

1276 {
1277  silent_cout("Shell4EAS(" << uLabel << "): warning, \"shell4eas\" is deprecated; use \"shell4easans\" instead" << std::endl);
1278 
1279  const StructNode* pN[4];
1280  Mat3x3 R[4];
1281  for (unsigned i = 0; i < 4; i++) {
1282  pN[i] = pDM->ReadNode<const StructNode, Node::STRUCTURAL>(HP);
1283  ReferenceFrame RF(pN[i]);
1284  if (HP.IsKeyWord("orientation")) {
1285  R[i] = HP.GetRotRel(RF);
1286  } else {
1287  R[i] = Eye3;
1288  }
1289  }
1290 
1291  /* Prestress and prestrain */
1292  Shell::vh PreStress(12);
1293  PreStress.Reset();
1294 
1295 #ifdef USE_CL_IN_SHELL
1297 
1299 
1300  Shell::fmh S(12, 12);
1301  for (unsigned ir = 1; ir <= 12; ir++) {
1302  for (unsigned ic = 1; ic <= 12; ic++) {
1303  S(ir, ic) = HP.GetReal();
1304  }
1305  }
1306 
1307  pD[0] = 0;
1308  SAFENEWWITHCONSTRUCTOR(pD[0], LEGCLShell, LEGCLShell(pTplDC, PreStress, S));
1309 
1310  for (unsigned i = 1; i < 4; i++) {
1311  pD[i] = pD[0]->Copy();
1312  }
1313 #else // ! USE_CL_IN_SHELL
1314  Shell::fmh pD(12, 12);
1315 
1316  if (ReadShellConstLaw(HP, pD, PreStress)) {
1317  silent_cerr("Shell(" << uLabel << "): unable to read constitutive law" << std::endl);
1319  }
1320 #endif // ! USE_CL_IN_SHELL
1321 
1322  flag fOut = pDM->fReadOutput(HP, Elem::PLATE);
1323 
1324  Elem *pEl = 0;
1326  Shell4EAS(uLabel, pDO,
1327  pN[0], pN[1], pN[2], pN[3],
1328  R[0], R[1], R[2], R[3],
1329 #ifdef USE_CL_IN_SHELL
1330 #else // ! USE_CL_IN_SHELL
1331  pD, PreStress,
1332 #endif // ! USE_CL_IN_SHELL
1333  fOut));
1334 
1335  std::ostream& out = pDM->GetLogFile();
1336  out << "shell4: " << uLabel
1337  << " " << pN[0]->GetLabel()
1338  << " " << pN[1]->GetLabel()
1339  << " " << pN[2]->GetLabel()
1340  << " " << pN[3]->GetLabel()
1341  << std::endl;
1342 
1343  return pEl;
1344 }
flag fReadOutput(MBDynParser &HP, const T &t) const
Definition: dataman.h:1064
Mat3x3 GetRotRel(const ReferenceFrame &rf)
Definition: mbpar.cc:1795
long int flag
Definition: mbdyn.h:43
#define MBDYN_EXCEPT_ARGS
Definition: except.h:63
const Mat3x3 Eye3(1., 0., 0., 0., 1., 0., 0., 0., 1.)
int ReadShellConstLaw(MBDynParser &HP, Shell::fmh &pD, Shell::vh &PreStress)
Definition: shell.cc:62
virtual bool IsKeyWord(const char *sKeyWord)
Definition: parser.cc:910
#define SAFENEWWITHCONSTRUCTOR(pnt, item, constructor)
Definition: mynewmem.h:698
Definition: elem.h:75
std::ostream & GetLogFile(void) const
Definition: dataman.h:326
LinearElasticGenericConstitutiveLaw< Shell::vh, Shell::fmh > LEGCLShell
Definition: shelleas.cc:1269
unsigned int GetLabel(void) const
Definition: withlab.cc:62
Node * ReadNode(MBDynParser &HP, Node::Type type) const
Definition: dataman3.cc:2309
Mat3x3 R
virtual doublereal GetReal(const doublereal &dDefval=0.0)
Definition: parser.cc:1056

Here is the call graph for this function: