MBDyn-1.7.3
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
DynamicStructNode Class Reference

#include <strnode.h>

Inheritance diagram for DynamicStructNode:
Collaboration diagram for DynamicStructNode:

Public Member Functions

 DynamicStructNode (unsigned int uL, const DofOwner *pDO, const Vec3 &X0, const Mat3x3 &R0, const Vec3 &V0, const Vec3 &W0, const StructNode *pRN, const RigidBodyKinematics *pRBK, doublereal dPosStiff, doublereal dVelStiff, bool bOmRot, OrientationDescription ood, flag fOut)
 
virtual ~DynamicStructNode (void)
 
virtual StructNode::Type GetStructNodeType (void) const
 
const Vec3GetWP (void) const
 
virtual unsigned int iGetNumDof (void) const
 
virtual std::ostream & DescribeDof (std::ostream &out, const char *prefix="", bool bInitial=false) const
 
virtual void DescribeDof (std::vector< std::string > &desc, bool bInitial=false, int i=-1) const
 
virtual std::ostream & DescribeEq (std::ostream &out, const char *prefix="", bool bInitial=false) const
 
virtual void DescribeEq (std::vector< std::string > &desc, bool bInitial=false, int i=-1) const
 
virtual integer iGetFirstMomentumIndex (void) const
 
virtual integer iGetFirstRowIndex (void) const
 
virtual void AddInertia (const doublereal &dm, const Vec3 &dS, const Mat3x3 &dJ) const
 
virtual const Vec3GetGCurr (void) const
 
virtual const Vec3GetGPCurr (void) const
 
virtual void AfterConvergence (const VectorHandler &X, const VectorHandler &XP)
 
virtual void BeforePredict (VectorHandler &X, VectorHandler &XP, VectorHandler &XPrev, VectorHandler &XPPrev) const
 
virtual const doublerealdGetDofValue (int iDof, int iOrder=0) const
 
virtual const doublerealdGetDofValuePrev (int iDof, int iOrder=0) const
 
virtual void SetDofValue (const doublereal &dValue, unsigned int iDof, unsigned int iOrder=0)
 
virtual void Update (const VectorHandler &X, const VectorHandler &XP)
 
- Public Member Functions inherited from StructDispNode
 StructDispNode (unsigned int uL, const DofOwner *pDO, const Vec3 &X0, const Vec3 &V0, const StructNode *pRN, const RigidBodyKinematics *pRBK, doublereal dPosStiff, doublereal dVelStiff, OrientationDescription od, flag fOut)
 
virtual ~StructDispNode (void)
 
virtual Node::Type GetNodeType (void) const
 
const RigidBodyKinematicspGetRBK (void) const
 
const Vec3GetX (void) const
 
const Vec3GetV (void) const
 
virtual integer iGetFirstPositionIndex (void) const
 
virtual DofOrder::Order GetDofType (unsigned int) const
 
virtual const Vec3GetXPrev (void) const
 
virtual const Vec3GetXCurr (void) const
 
virtual const Vec3GetVPrev (void) const
 
virtual const Vec3GetVCurr (void) const
 
virtual const Vec3GetXPPPrev (void) const
 
virtual const Vec3GetXPPCurr (void) const
 
virtual const doublerealdGetPositionStiffness (void) const
 
virtual const doublerealdGetVelocityStiffness (void) const
 
virtual bool bOutputAccelerations (void) const
 
virtual void OutputAccelerations (bool bOut)
 
- Public Member Functions inherited from Node
 Node (unsigned int uL, const DofOwner *pDO, flag fOut)
 
virtual ~Node (void)
 
const NodeGetNode (void) const
 
virtual integer iGetFirstColIndex (void) const
 
- Public Member Functions inherited from WithLabel
 WithLabel (unsigned int uL=0, const std::string &sN="")
 
virtual ~WithLabel (void)
 
void PutLabel (unsigned int uL)
 
void PutName (const std::string &sN)
 
unsigned int GetLabel (void) const
 
const std::string & GetName (void) const
 
- Public Member Functions inherited from SimulationEntity
 SimulationEntity (void)
 
virtual ~SimulationEntity (void)
 
virtual bool bIsValidIndex (unsigned int i) const
 
virtual DofOrder::Order GetEqType (unsigned int i) const
 
virtual HintParseHint (DataManager *pDM, const char *s) const
 
virtual std::ostream & OutputAppend (std::ostream &out) const
 
virtual void ReadInitialState (MBDynParser &HP)
 
- Public Member Functions inherited from DofOwnerOwner
 DofOwnerOwner (const DofOwner *pDO)
 
virtual ~DofOwnerOwner ()
 
virtual const DofOwnerpGetDofOwner (void) const
 
virtual integer iGetFirstIndex (void) const
 
- Public Member Functions inherited from ToBeOutput
 ToBeOutput (flag fOut=fDefaultOut)
 
virtual ~ToBeOutput (void)
 
virtual void Output (OutputHandler &OH, const VectorHandler &X, const VectorHandler &XP) const
 
virtual flag fToBeOutput (void) const
 
virtual bool bToBeOutput (void) const
 
- Public Member Functions inherited from RigidBodyKinematics
virtual ~RigidBodyKinematics (void)
 
virtual void Update (void)
 
- Public Member Functions inherited from DynamicStructDispNode
 DynamicStructDispNode (unsigned int uL, const DofOwner *pDO, const Vec3 &X0, const Vec3 &V0, const StructNode *pRN, const RigidBodyKinematics *pRBK, doublereal dPosStiff, doublereal dVelStiff, OrientationDescription od, flag fOut)
 
virtual ~DynamicStructDispNode (void)
 
virtual StructDispNode::Type GetStructDispNodeType (void) const
 
virtual void SetAutoStr (const AutomaticStructDispElem *p)
 
const Vec3GetXPP (void) const
 
virtual void AddInertia (const doublereal &dm) const
 
virtual const Vec3GetBCurr (void) const
 
virtual const Vec3GetBPCurr (void) const
 
virtual bool bComputeAccelerations (void) const
 
virtual bool ComputeAccelerations (bool b)
 
virtual void SetOutputFlag (flag f=flag(1))
 
- Public Member Functions inherited from StructNode
 StructNode (unsigned int uL, const DofOwner *pDO, const Vec3 &X0, const Mat3x3 &R0, const Vec3 &V0, const Vec3 &W0, const StructNode *pRN, const RigidBodyKinematics *pRBK, doublereal dPosStiff, doublereal dVelStiff, bool bOmRot, OrientationDescription ood, flag fOut)
 
virtual ~StructNode (void)
 
const Mat3x3GetR (void) const
 
const Vec3GetW (void) const
 
virtual std::ostream & Restart (std::ostream &out) const
 
virtual unsigned int iGetInitialNumDof (void) const
 
virtual const Vec3GetgRef (void) const
 
virtual const Vec3GetgCurr (void) const
 
virtual const Vec3GetgPRef (void) const
 
virtual const Vec3GetgPCurr (void) const
 
virtual const Mat3x3GetRPrev (void) const
 
virtual const Mat3x3GetRRef (void) const
 
virtual const Mat3x3GetRCurr (void) const
 
virtual const Vec3GetWPrev (void) const
 
virtual const Vec3GetWRef (void) const
 
virtual const Vec3GetWCurr (void) const
 
virtual const Vec3GetWPCurr (void) const
 
virtual const Vec3GetWPPrev (void) const
 
virtual bool bOmegaRotates (void) const
 
virtual void OutputPrepare (OutputHandler &OH)
 
virtual void Output (OutputHandler &OH) const
 
virtual void DerivativesUpdate (const VectorHandler &X, const VectorHandler &XP)
 
virtual void InitialUpdate (const VectorHandler &X)
 
void Update (const VectorHandler &X, InverseDynamics::Order iOrder)
 
virtual void SetInitialValue (VectorHandler &X)
 
virtual void SetValue (DataManager *pDM, VectorHandler &X, VectorHandler &XP, SimulationEntity::Hints *ph=0)
 
virtual void AfterPredict (VectorHandler &X, VectorHandler &XP)
 
virtual void AfterConvergence (const VectorHandler &X, const VectorHandler &XP, const VectorHandler &XPP)
 
virtual unsigned int iGetNumPrivData (void) const
 
virtual unsigned int iGetPrivDataIdx (const char *s) const
 
virtual doublereal dGetPrivData (unsigned int i) const
 

Additional Inherited Members

- Public Types inherited from StructDispNode
enum  Type { UNKNOWN = -1, DYNAMIC = 0, STATIC, LASTSTRUCTDISPNODETYPE }
 
enum  Output { OUTPUT_ACCELERATIONS = (ToBeOutput::OUTPUT_PRIVATE << 0), OUTPUT_INERTIA = (ToBeOutput::OUTPUT_PRIVATE << 1) }
 
- Public Types inherited from Node
enum  Type {
  UNKNOWN = -1, ABSTRACT = 0, STRUCTURAL, ELECTRIC,
  THERMAL, PARAMETER, HYDRAULIC, LASTNODETYPE
}
 
- Public Types inherited from SimulationEntity
typedef std::vector< Hint * > Hints
 
- Public Types inherited from ToBeOutput
enum  { OUTPUT = 0x1U, OUTPUT_MASK = 0xFU, OUTPUT_PRIVATE = 0x10U, OUTPUT_PRIVATE_MASK = ~OUTPUT_MASK }
 
- Public Types inherited from StructNode
enum  Type {
  UNKNOWN = -1, DYNAMIC = 0, STATIC, MODAL,
  DUMMY, LASTSTRUCTNODETYPE
}
 
- Protected Attributes inherited from StructDispNode
Vec3 XPrev
 
Vec3 XCurr
 
Vec3 VPrev
 
Vec3 VCurr
 
Vec3 XPPCurr
 
Vec3 XPPPrev
 
const StructNodepRefNode
 
OrientationDescription od
 
doublereal dPositionStiffness
 
doublereal dVelocityStiffness
 
const RigidBodyKinematicspRefRBK
 
bool bOutputAccels
 
- Protected Attributes inherited from WithLabel
unsigned int uLabel
 
std::string sName
 
- Protected Attributes inherited from ToBeOutput
flag fOutput
 
- Protected Attributes inherited from DynamicStructDispNode
bool bComputeAccels
 
AutomaticStructDispElempAutoStr
 
- Protected Attributes inherited from StructNode
Mat3x3 RPrev
 
Mat3x3 RRef
 
Mat3x3 RCurr
 
Vec3 gRef
 
Vec3 gCurr
 
Vec3 gPRef
 
Vec3 gPCurr
 
Vec3 WPrev
 
Vec3 WRef
 
Vec3 WCurr
 
Vec3 WPCurr
 
Vec3 WPPrev
 
bool bOmegaRot
 

Detailed Description

Definition at line 1264 of file strnode.h.

Constructor & Destructor Documentation

DynamicStructNode::DynamicStructNode ( unsigned int  uL,
const DofOwner pDO,
const Vec3 X0,
const Mat3x3 R0,
const Vec3 V0,
const Vec3 W0,
const StructNode pRN,
const RigidBodyKinematics pRBK,
doublereal  dPosStiff,
doublereal  dVelStiff,
bool  bOmRot,
OrientationDescription  ood,
flag  fOut 
)

Definition at line 2915 of file strnode.cc.

References NO_OP.

2928 :
2929 StructDispNode(uL, pDO, X0, V0, pRN, pRBK, dPosStiff, dVelStiff, ood, fOut),
2930 DynamicStructDispNode(uL, pDO, X0, V0, pRN, pRBK, dPosStiff, dVelStiff, ood, fOut),
2931 StructNode(uL, pDO, X0, R0, V0, W0, pRN, pRBK, dPosStiff, dVelStiff, bOmRot, ood, fOut)
2932 {
2933  NO_OP;
2934 }
#define NO_OP
Definition: myassert.h:74
DynamicStructDispNode(unsigned int uL, const DofOwner *pDO, const Vec3 &X0, const Vec3 &V0, const StructNode *pRN, const RigidBodyKinematics *pRBK, doublereal dPosStiff, doublereal dVelStiff, OrientationDescription od, flag fOut)
Definition: strnode.cc:1076
StructNode(unsigned int uL, const DofOwner *pDO, const Vec3 &X0, const Mat3x3 &R0, const Vec3 &V0, const Vec3 &W0, const StructNode *pRN, const RigidBodyKinematics *pRBK, doublereal dPosStiff, doublereal dVelStiff, bool bOmRot, OrientationDescription ood, flag fOut)
Definition: strnode.cc:1439
StructDispNode(unsigned int uL, const DofOwner *pDO, const Vec3 &X0, const Vec3 &V0, const StructNode *pRN, const RigidBodyKinematics *pRBK, doublereal dPosStiff, doublereal dVelStiff, OrientationDescription od, flag fOut)
Definition: strnode.cc:102
DynamicStructNode::~DynamicStructNode ( void  )
virtual

Definition at line 2938 of file strnode.cc.

References NO_OP.

2939 {
2940  NO_OP;
2941 }
#define NO_OP
Definition: myassert.h:74

Member Function Documentation

void DynamicStructNode::AddInertia ( const doublereal dm,
const Vec3 dS,
const Mat3x3 dJ 
) const
virtual

Definition at line 3092 of file strnode.cc.

References StructDispNode::bComputeAccelerations(), and DynamicStructDispNode::pAutoStr.

Referenced by DynamicVariableBody::AssRes(), DynamicBody::AssRes(), and ModalBody::AssRes().

3094 {
3095  /* FIXME: do it only if to be output... */
3096  if (bComputeAccelerations()) {
3097  dynamic_cast<AutomaticStructElem *>(pAutoStr)->AddInertia(dm, dS, dJ);
3098  }
3099 }
AutomaticStructDispElem * pAutoStr
Definition: strnode.h:484
virtual bool bComputeAccelerations(void) const
Definition: strnode.h:433
virtual void AddInertia(const doublereal &dm, const Vec3 &dS, const Mat3x3 &dJ) const
Definition: strnode.cc:3092

Here is the call graph for this function:

void DynamicStructNode::AfterConvergence ( const VectorHandler X,
const VectorHandler XP 
)
virtual

Reimplemented from DynamicStructDispNode.

Reimplemented in ModalNode.

Definition at line 3129 of file strnode.cc.

References ASSERT, StructDispNode::bComputeAccelerations(), StructDispNode::ComputeAccelerations(), DynamicStructDispNode::pAutoStr, StructNode::WPCurr, and StructDispNode::XPPCurr.

3131 {
3132  if (bComputeAccelerations()) {
3133  /* FIXME: pAutoStr is 0 in ModalNode */
3134  ASSERT(pAutoStr != 0);
3135 
3136  // FIXME: based on values set during previous
3137  // of AutomaticStructural::AssRes()
3139  }
3140 }
Vec3 WPCurr
Definition: strnode.h:749
Vec3 XPPCurr
Definition: strnode.h:95
AutomaticStructDispElem * pAutoStr
Definition: strnode.h:484
#define ASSERT(expression)
Definition: colamd.c:977
virtual bool ComputeAccelerations(bool b)
Definition: strnode.cc:194
virtual bool bComputeAccelerations(void) const
Definition: strnode.h:433

Here is the call graph for this function:

void DynamicStructNode::BeforePredict ( VectorHandler X,
VectorHandler XP,
VectorHandler XPrev,
VectorHandler XPPrev 
) const
virtual

Reimplemented from StructDispNode.

Definition at line 3143 of file strnode.cc.

References StructDispNode::bComputeAccelerations(), StructNode::BeforePredict(), StructNode::WPCurr, StructNode::WPPrev, StructDispNode::XPPCurr, and StructDispNode::XPPPrev.

3147 {
3148  if (bComputeAccelerations()) {
3149  XPPPrev = XPPCurr;
3150  WPPrev = WPCurr;
3151  }
3152 
3153  StructNode::BeforePredict(X, XP, XPr, XPPr);
3154 }
Vec3 WPPrev
Definition: strnode.h:750
Vec3 WPCurr
Definition: strnode.h:749
Vec3 XPPCurr
Definition: strnode.h:95
virtual void BeforePredict(VectorHandler &X, VectorHandler &XP, VectorHandler &XPrev, VectorHandler &XPPrev) const
Definition: strnode.cc:2389
Vec3 XPPPrev
Definition: strnode.h:96
virtual bool bComputeAccelerations(void) const
Definition: strnode.h:433

Here is the call graph for this function:

std::ostream & DynamicStructNode::DescribeDof ( std::ostream &  out,
const char *  prefix = "",
bool  bInitial = false 
) const
virtual

Reimplemented from StructDispNode.

Reimplemented in ModalNode.

Definition at line 2958 of file strnode.cc.

References StructNode::DescribeDof(), and DofOwnerOwner::iGetFirstIndex().

2959 {
2960  integer iIndex = iGetFirstIndex();
2961 
2962  StructNode::DescribeDof(out, prefix, bInitial);
2963 
2964  if (bInitial == false) {
2965  out
2966  << prefix << iIndex + 7 << "->" << iIndex + 9 << ": "
2967  "momentum [Bx,By,Bz]" << std::endl
2968  << prefix << iIndex + 10 << "->" << iIndex + 12 << ": "
2969  "momenta moment [Gx,Gy,Gz]" << std::endl;
2970  }
2971 
2972  return out;
2973 }
virtual integer iGetFirstIndex(void) const
Definition: dofown.h:127
virtual std::ostream & DescribeDof(std::ostream &out, const char *prefix="", bool bInitial=false) const
Definition: strnode.cc:1499
long int integer
Definition: colamd.c:51

Here is the call graph for this function:

void DynamicStructNode::DescribeDof ( std::vector< std::string > &  desc,
bool  bInitial = false,
int  i = -1 
) const
virtual

Reimplemented from StructDispNode.

Reimplemented in ModalNode.

Definition at line 2976 of file strnode.cc.

References StructNode::DescribeDof(), WithLabel::GetLabel(), MBDYN_EXCEPT_ARGS, sn_dof, and xyz.

2977 {
2978  if (bInitial || i == -1 || (i >= 0 && i < 6)) {
2979  StructNode::DescribeDof(desc, bInitial, i);
2980 
2981  if (bInitial || (i >= 0 && i < 6)) {
2982  return;
2983  }
2984  }
2985 
2986  if (i == -1) {
2987  desc.resize(12);
2988 
2989  } else {
2990  desc.resize(1);
2991  }
2992 
2993  std::ostringstream os;
2994  os << "StructNode(" << GetLabel() << ")";
2995 
2996  if (i == -1) {
2997  std::string name = os.str();
2998 
2999  for (i = 6; i < 12; i++) {
3000  os.str(name);
3001  os.seekp(0, std::ios_base::end);
3002  os << ": " << sn_dof[i/3] << xyz[i%3];
3003  desc[i] = os.str();
3004  }
3005 
3006  } else {
3007  if (i < 6 || i >= 12) {
3009  }
3010 
3011  os << ": " << sn_dof[i/3] << xyz[i%3];
3012  desc[0] = os.str();
3013  }
3014 }
#define MBDYN_EXCEPT_ARGS
Definition: except.h:63
static const char * sn_dof[]
Definition: strnode.cc:66
static const char xyz[]
Definition: strnode.cc:47
virtual std::ostream & DescribeDof(std::ostream &out, const char *prefix="", bool bInitial=false) const
Definition: strnode.cc:1499
unsigned int GetLabel(void) const
Definition: withlab.cc:62

Here is the call graph for this function:

std::ostream & DynamicStructNode::DescribeEq ( std::ostream &  out,
const char *  prefix = "",
bool  bInitial = false 
) const
virtual

Reimplemented from StructDispNode.

Reimplemented in ModalNode.

Definition at line 3017 of file strnode.cc.

References StructNode::DescribeEq(), and DofOwnerOwner::iGetFirstIndex().

3018 {
3019  if (bInitial == false) {
3020  integer iIndex = iGetFirstIndex();
3021 
3022  out
3023  << prefix << iIndex + 1 << "->" << iIndex + 3 << ": "
3024  "momentum definition [Bx,By,Bz]" << std::endl
3025  << prefix << iIndex + 4 << "->" << iIndex + 6 << ": "
3026  "momenta moment definition [Gx,Gy,Gz]" << std::endl;
3027  }
3028 
3029  StructNode::DescribeEq(out, prefix, bInitial);
3030 
3031  return out;
3032 }
virtual std::ostream & DescribeEq(std::ostream &out, const char *prefix="", bool bInitial=false) const
Definition: strnode.cc:1562
virtual integer iGetFirstIndex(void) const
Definition: dofown.h:127
long int integer
Definition: colamd.c:51

Here is the call graph for this function:

void DynamicStructNode::DescribeEq ( std::vector< std::string > &  desc,
bool  bInitial = false,
int  i = -1 
) const
virtual

Reimplemented from StructDispNode.

Reimplemented in ModalNode.

Definition at line 3035 of file strnode.cc.

References StructNode::DescribeEq(), WithLabel::GetLabel(), MBDYN_EXCEPT_ARGS, sn_eq, and xyz.

3036 {
3037  if (bInitial || i == -1 || (i >= 6 && i < 12)) {
3038  int new_i = i;
3039  if (!bInitial && i != -1) {
3040  new_i = i - 6;
3041  }
3042  StructNode::DescribeEq(desc, bInitial, new_i);
3043 
3044  if (bInitial || (i >= 6 && i < 12)) {
3045  return;
3046  }
3047  }
3048 
3049  if (i == -1) {
3050  desc.resize(12);
3051  for (int j = 0; j < 6; j++) {
3052  desc[6 + j] = desc[j];
3053  }
3054 
3055  } else {
3056  desc.resize(1);
3057  }
3058 
3059  std::ostringstream os;
3060  os << "StructNode(" << GetLabel() << ")";
3061 
3062  if (i == -1) {
3063  std::string name(os.str());
3064 
3065  for (i = 0; i < 6; i++) {
3066  os.str(name);
3067  os.seekp(0, std::ios_base::end);
3068  os << ": " << sn_eq[i/3] << xyz[i%3];
3069  desc[i] = os.str();
3070  }
3071 
3072  } else {
3073  if (i < 0 || i >= 6) {
3075  }
3076 
3077  os << ": " << sn_eq[i/3] << xyz[i%3];
3078  desc[0] = os.str();
3079  }
3080 }
#define MBDYN_EXCEPT_ARGS
Definition: except.h:63
static const char xyz[]
Definition: strnode.cc:47
virtual std::ostream & DescribeEq(std::ostream &out, const char *prefix="", bool bInitial=false) const
Definition: strnode.cc:1562
static const char * sn_eq[]
Definition: strnode.cc:72
unsigned int GetLabel(void) const
Definition: withlab.cc:62

Here is the call graph for this function:

const doublereal & DynamicStructNode::dGetDofValue ( int  iDof,
int  iOrder = 0 
) const
virtual

Reimplemented from StructDispNode.

Definition at line 3159 of file strnode.cc.

References ASSERT, StructDispNode::bComputeAccelerations(), StructDispNode::ComputeAccelerations(), StructNode::dGetDofValue(), MBDYN_EXCEPT_ARGS, DynamicStructDispNode::pAutoStr, StructNode::WPCurr, and StructDispNode::XPPCurr.

3160 {
3161  ASSERT(iDof >= 1 && iDof <= 6);
3162  ASSERT(iOrder >= 0 && iOrder <= 2);
3163 
3164  if (iOrder == 2) {
3165  /* FIXME: should not happen */
3167  if (!bComputeAccelerations()) {
3168  silent_cerr("DynamicStructNode::dGetDofValue("
3169  << iDof << "," << iOrder << "): "
3170  "accelerations are not computed while they should"
3171  << std::endl);
3173  }
3174 
3175 #if 1
3176  /* FIXME: might need to compute them in order to be
3177  * as up to date as possible; however, elements that contribute
3178  * to inertia should assemble first...
3179  */
3181 #endif
3182 
3183  if (iDof >= 1 && iDof <= 3) {
3184  return XPPCurr(iDof);
3185  } else {
3186  return WPCurr(iDof - 3);
3187  }
3188  }
3189 
3190  return StructNode::dGetDofValue(iDof, iOrder);
3191 }
#define MBDYN_EXCEPT_ARGS
Definition: except.h:63
Vec3 WPCurr
Definition: strnode.h:749
Vec3 XPPCurr
Definition: strnode.h:95
AutomaticStructDispElem * pAutoStr
Definition: strnode.h:484
#define ASSERT(expression)
Definition: colamd.c:977
virtual bool ComputeAccelerations(bool b)
Definition: strnode.cc:194
virtual const doublereal & dGetDofValue(int iDof, int iOrder=0) const
Definition: strnode.cc:1680
virtual bool bComputeAccelerations(void) const
Definition: strnode.h:433

Here is the call graph for this function:

const doublereal & DynamicStructNode::dGetDofValuePrev ( int  iDof,
int  iOrder = 0 
) const
virtual

Reimplemented from StructDispNode.

Definition at line 3196 of file strnode.cc.

References ASSERT, StructDispNode::bComputeAccelerations(), StructNode::dGetDofValuePrev(), MBDYN_EXCEPT_ARGS, StructNode::WPPrev, and StructDispNode::XPPPrev.

3197 {
3198  ASSERT(iDof >= 1 && iDof <= 6);
3199  ASSERT(iOrder == 0 || iOrder == 1);
3200 
3201  if (iOrder == 2) {
3202  /* FIXME: should not happen */
3204  if (!bComputeAccelerations()) {
3205  silent_cerr("DynamicStructNode::dGetDofValuePrev("
3206  << iDof << "," << iOrder << "): "
3207  "accelerations are not computed while they should"
3208  << std::endl);
3210  }
3211 
3212  if (iDof >= 1 && iDof <= 3) {
3213  return XPPPrev(iDof);
3214  } else {
3215  return WPPrev(iDof - 3);
3216  }
3217  }
3218 
3219  return StructNode::dGetDofValuePrev(iDof, iOrder);
3220 }
Vec3 WPPrev
Definition: strnode.h:750
#define MBDYN_EXCEPT_ARGS
Definition: except.h:63
Vec3 XPPPrev
Definition: strnode.h:96
#define ASSERT(expression)
Definition: colamd.c:977
virtual const doublereal & dGetDofValuePrev(int iDof, int iOrder=0) const
Definition: strnode.cc:1713
virtual bool bComputeAccelerations(void) const
Definition: strnode.h:433

Here is the call graph for this function:

const Vec3 & DynamicStructNode::GetGCurr ( void  ) const
virtual

Definition at line 3103 of file strnode.cc.

References AutomaticStructDispElem::GetGCurr(), and DynamicStructDispNode::pAutoStr.

3104 {
3105  return pAutoStr->GetGCurr();
3106 }
virtual const Vec3 & GetGCurr(void) const
Definition: autostr.h:55
AutomaticStructDispElem * pAutoStr
Definition: strnode.h:484

Here is the call graph for this function:

const Vec3 & DynamicStructNode::GetGPCurr ( void  ) const
virtual

Definition at line 3109 of file strnode.cc.

References AutomaticStructDispElem::GetGPCurr(), and DynamicStructDispNode::pAutoStr.

3110 {
3111  return pAutoStr->GetGPCurr();
3112 }
virtual const Vec3 & GetGPCurr(void) const
Definition: autostr.h:57
AutomaticStructDispElem * pAutoStr
Definition: strnode.h:484

Here is the call graph for this function:

StructNode::Type DynamicStructNode::GetStructNodeType ( void  ) const
virtual

Implements StructNode.

Reimplemented in ModalNode.

Definition at line 2946 of file strnode.cc.

References StructNode::DYNAMIC.

Referenced by DataManager::ReadElems(), and ReadVariableBody().

2947 {
2948  return StructNode::DYNAMIC;
2949 }
const Vec3 & DynamicStructNode::GetWP ( void  ) const
virtual

Reimplemented from StructDispNode.

Definition at line 2952 of file strnode.cc.

References StructNode::GetWPCurr().

2953 {
2954  return GetWPCurr();
2955 }
virtual const Vec3 & GetWPCurr(void) const
Definition: strnode.h:1042

Here is the call graph for this function:

integer DynamicStructNode::iGetFirstMomentumIndex ( void  ) const
inlinevirtual

Implements StructDispNode.

Definition at line 1373 of file strnode.h.

References DofOwnerOwner::iGetFirstIndex().

Referenced by iGetFirstRowIndex().

1374 {
1375  return DofOwnerOwner::iGetFirstIndex() + 6;
1376 }
virtual integer iGetFirstIndex(void) const
Definition: dofown.h:127

Here is the call graph for this function:

integer DynamicStructNode::iGetFirstRowIndex ( void  ) const
virtual

Reimplemented from DynamicStructDispNode.

Reimplemented in ModalNode.

Definition at line 3085 of file strnode.cc.

References iGetFirstMomentumIndex().

3086 {
3087  return iGetFirstMomentumIndex();
3088 }
virtual integer iGetFirstMomentumIndex(void) const
Definition: strnode.h:1373

Here is the call graph for this function:

unsigned int DynamicStructNode::iGetNumDof ( void  ) const
inlinevirtual

Reimplemented from DynamicStructDispNode.

Definition at line 1366 of file strnode.h.

1367 {
1368  return 12;
1369 }
void DynamicStructNode::SetDofValue ( const doublereal dValue,
unsigned int  iDof,
unsigned int  iOrder = 0 
)
virtual

Reimplemented from StructDispNode.

Definition at line 3225 of file strnode.cc.

References ASSERT, StructDispNode::bComputeAccelerations(), MBDYN_EXCEPT_ARGS, StructNode::SetDofValue(), StructNode::WPCurr, and StructDispNode::XPPCurr.

3228 {
3229  ASSERT(iDof >= 1 && iDof <= 6);
3230  ASSERT(iOrder == 0 || iOrder == 1);
3231 
3232  if (iOrder == 2) {
3233  /* FIXME: should not happen */
3235  if (!bComputeAccelerations()) {
3236  silent_cerr("DynamicStructNode::SetDofValue("
3237  << dValue << "," << iDof << "," << iOrder << "): "
3238  "accelerations are not computed while they should"
3239  << std::endl);
3241  }
3242 
3243  if (iDof >= 1 && iDof <= 3) {
3244  XPPCurr(iDof) = dValue;
3245 
3246  } else {
3247  WPCurr(iDof - 3) = dValue;
3248  }
3249 
3250  } else {
3251  StructNode::SetDofValue(iDof, iOrder);
3252  }
3253 }
#define MBDYN_EXCEPT_ARGS
Definition: except.h:63
Vec3 WPCurr
Definition: strnode.h:749
Vec3 XPPCurr
Definition: strnode.h:95
#define ASSERT(expression)
Definition: colamd.c:977
virtual void SetDofValue(const doublereal &dValue, unsigned int iDof, unsigned int iOrder=0)
Definition: strnode.cc:1746
virtual bool bComputeAccelerations(void) const
Definition: strnode.h:433

Here is the call graph for this function:

void DynamicStructNode::Update ( const VectorHandler X,
const VectorHandler XP 
)
virtual

Reimplemented from StructDispNode.

Reimplemented in ModalNode.

Definition at line 3115 of file strnode.cc.

References ASSERT, StructDispNode::bComputeAccelerations(), StructDispNode::ComputeAccelerations(), DynamicStructDispNode::pAutoStr, RigidBodyKinematics::Update(), StructNode::WPCurr, and StructDispNode::XPPCurr.

3116 {
3117  StructNode::Update(X, XP);
3118  if (bComputeAccelerations()) {
3119  /* FIXME: pAutoStr is 0 in ModalNode */
3120  ASSERT(pAutoStr != 0);
3121 
3122  // FIXME: based on values set during previous
3123  // of AutomaticStructural::AssRes()
3125  }
3126 }
Vec3 WPCurr
Definition: strnode.h:749
Vec3 XPPCurr
Definition: strnode.h:95
virtual void Update(void)
Definition: rbk.cc:45
AutomaticStructDispElem * pAutoStr
Definition: strnode.h:484
#define ASSERT(expression)
Definition: colamd.c:977
virtual bool ComputeAccelerations(bool b)
Definition: strnode.cc:194
virtual bool bComputeAccelerations(void) const
Definition: strnode.h:433

Here is the call graph for this function:


The documentation for this class was generated from the following files: