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

Go to the source code of this file.

Typedefs

typedef
LinearElasticGenericConstitutiveLaw
< Membrane::vh, Membrane::fmh
LEGCLMembrane
 

Functions

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

Typedef Documentation

Function Documentation

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

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().

598 {
599 
600  const StructDispNode* pN[4];
601  for (unsigned i = 0; i < 4; i++) {
602  pN[i] = pDM->ReadNode<const StructDispNode, Node::STRUCTURAL>(HP);
603  }
604 
605  /* Prestress and prestrain */
606  Membrane::vh PreStress(3);
607  PreStress.Reset();
608 
609 #ifdef USE_CL_IN_MEMBRANE
611 
613 
614  Membrane::fmh S(3, 3);
615  for (unsigned ir = 1; ir <= 3; ir++) {
616  for (unsigned ic = 1; ic <= 3; ic++) {
617  S(ir, ic) = HP.GetReal();
618  }
619  }
620 
621  pD[0] = 0;
622  SAFENEWWITHCONSTRUCTOR(pD[0], LEGCLMembrane, LEGCLMembrane(pTplDC, PreStress, S));
623 
624  for (unsigned i = 1; i < 4; i++) {
625  pD[i] = pD[0]->Copy();
626  }
627 #else // ! USE_CL_IN_MEMBRANE
628  Membrane::fmh pD(3, 3);
629 
630  if (ReadMembraneConstLaw(HP, pD, PreStress)) {
631  silent_cerr("Membrane(" << uLabel << "): unable to read constitutive law" << std::endl);
633  }
634 #endif // ! USE_CL_IN_MEMBRANE
635 
636  flag fOut = pDM->fReadOutput(HP, Elem::PLATE);
637 
638  Elem *pEl = 0;
640  Membrane4EAS(uLabel, pDO,
641  pN[0], pN[1], pN[2], pN[3],
642 #ifdef USE_CL_IN_MEMBRANE
643 #else // ! USE_CL_IN_MEMBRANE
644  pD, PreStress,
645 #endif // ! USE_CL_IN_MEMBRANE
646  fOut));
647 
648  std::ostream& out = pDM->GetLogFile();
649  out << "membrane4: " << uLabel
650  << " " << pN[0]->GetLabel()
651  << " " << pN[1]->GetLabel()
652  << " " << pN[2]->GetLabel()
653  << " " << pN[3]->GetLabel()
654  << std::endl;
655 
656  return pEl;
657 }
flag fReadOutput(MBDynParser &HP, const T &t) const
Definition: dataman.h:1064
long int flag
Definition: mbdyn.h:43
#define MBDYN_EXCEPT_ARGS
Definition: except.h:63
int ReadMembraneConstLaw(MBDynParser &HP, Membrane::fmh &pD, Membrane::vh &PreStress)
Definition: membrane.cc:74
#define SAFENEWWITHCONSTRUCTOR(pnt, item, constructor)
Definition: mynewmem.h:698
Definition: elem.h:75
std::ostream & GetLogFile(void) const
Definition: dataman.h:326
unsigned int GetLabel(void) const
Definition: withlab.cc:62
Node * ReadNode(MBDynParser &HP, Node::Type type) const
Definition: dataman3.cc:2309
LinearElasticGenericConstitutiveLaw< Membrane::vh, Membrane::fmh > LEGCLMembrane
Definition: membraneeas.cc:591
virtual doublereal GetReal(const doublereal &dDefval=0.0)
Definition: parser.cc:1056

Here is the call graph for this function: