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

#include <strnode.h>

Inheritance diagram for ModalNode:
Collaboration diagram for ModalNode:

Public Member Functions

 ModalNode (unsigned int uL, const DofOwner *pDO, const Vec3 &X0, const Mat3x3 &R0, const Vec3 &V0, const Vec3 &W0, const RigidBodyKinematics *pRBK, doublereal dPosStiff, doublereal dVelStiff, bool bOmRot, OrientationDescription ood, flag fOut)
 
virtual ~ModalNode (void)
 
virtual StructNode::Type GetStructNodeType (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 iGetFirstRowIndex (void) const
 
virtual void Update (const VectorHandler &X, const VectorHandler &XP)
 
virtual void AfterConvergence (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 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)
 
virtual ~DynamicStructNode (void)
 
const Vec3GetWP (void) const
 
virtual unsigned int iGetNumDof (void) const
 
virtual integer iGetFirstMomentumIndex (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 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)
 
- 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 1468 of file strnode.h.

Constructor & Destructor Documentation

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

Definition at line 3303 of file strnode.cc.

References StructDispNode::ComputeAccelerations().

3315 :
3316 StructDispNode(uL, pDO, X0, V0, 0, pRBK, dPosStiff, dVelStiff, ood, fOut),
3317 DynamicStructNode(uL, pDO, X0, R0, V0, W0, 0, pRBK,
3318  dPosStiff, dVelStiff, bOmRot, ood, fOut)
3319 {
3320  /* XPP and WP are not known in ModalNode */
3321  ComputeAccelerations(false);
3322 }
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: strnode.cc:2915
virtual bool ComputeAccelerations(bool b)
Definition: strnode.cc:194
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

Here is the call graph for this function:

ModalNode::~ModalNode ( void  )
virtual

Definition at line 3326 of file strnode.cc.

References NO_OP.

3327 {
3328  NO_OP;
3329 }
#define NO_OP
Definition: myassert.h:74

Member Function Documentation

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

Reimplemented from DynamicStructNode.

Definition at line 3503 of file strnode.cc.

References NO_OP.

3505 {
3506  // override DynamicStructNode's function
3507  NO_OP;
3508 }
#define NO_OP
Definition: myassert.h:74
std::ostream & ModalNode::DescribeDof ( std::ostream &  out,
const char *  prefix = "",
bool  bInitial = false 
) const
virtual

Reimplemented from StructDispNode.

Definition at line 3349 of file strnode.cc.

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

3350 {
3351  StructNode::DescribeDof(out, prefix, bInitial);
3352 
3353  if (bInitial == false) {
3354  integer iIndex = iGetFirstIndex();
3355 
3356  out
3357  << prefix << iIndex + 7 << "->" << iIndex + 9 << ": "
3358  "velocity [vx,vy,vz]" << std::endl
3359  << prefix << iIndex + 10 << "->" << iIndex + 12 << ": "
3360  "angular velocity [wx,wy,wz]" << std::endl;
3361  }
3362 
3363  return out;
3364 }
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 ModalNode::DescribeDof ( std::vector< std::string > &  desc,
bool  bInitial = false,
int  i = -1 
) const
virtual

Reimplemented from StructDispNode.

Definition at line 3367 of file strnode.cc.

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

3368 {
3369  if (bInitial || i == -1 || (i >= 0 && i < 6)) {
3370  StructNode::DescribeDof(desc, bInitial, i);
3371 
3372  if (bInitial || (i >= 0 && i < 6)) {
3373  for (size_t ii = 0; ii < desc.size(); ii++) {
3374  desc[ii] = "Modal" + desc[ii];
3375  }
3376  return;
3377  }
3378  }
3379 
3380  if (i == -1) {
3381  desc.resize(12);
3382 
3383  } else {
3384  desc.resize(1);
3385  }
3386 
3387  std::ostringstream os;
3388  os << "ModalStructNode(" << GetLabel() << ")";
3389 
3390  if (i == -1) {
3391  std::string name = os.str();
3392 
3393  for (i = 0; i < 6; i++) {
3394  desc[i] = "Modal" + desc[i];
3395  }
3396 
3397  for (i = 6; i < 12; i++) {
3398  os.str(name);
3399  os.seekp(0, std::ios_base::end);
3400  os << ": " << sn_initial_dof[i/3] << xyz[i%3];
3401  desc[i] = os.str();
3402  }
3403 
3404  } else {
3405  if (i < 6 || i >= 12) {
3407  }
3408 
3409  os << ": " << sn_initial_dof[i/3] << xyz[i%3];
3410  desc[0] = os.str();
3411  }
3412 
3413 }
#define MBDYN_EXCEPT_ARGS
Definition: except.h:63
static const char xyz[]
Definition: strnode.cc:47
static const char * sn_initial_dof[]
Definition: strnode.cc:84
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 & ModalNode::DescribeEq ( std::ostream &  out,
const char *  prefix = "",
bool  bInitial = false 
) const
virtual

Reimplemented from StructDispNode.

Definition at line 3416 of file strnode.cc.

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

3417 {
3418  if (bInitial == false) {
3419  integer iIndex = iGetFirstIndex();
3420 
3421  out
3422  << prefix << iIndex + 1 << "->" << iIndex + 3 << ": "
3423  "linear velocity definition [vx,vy,vz]" << std::endl
3424  << prefix << iIndex + 4 << "->" << iIndex + 6 << ": "
3425  "angular velocity definition [wx,wy,wz]" << std::endl;
3426  }
3427 
3428  StructNode::DescribeEq(out, prefix, bInitial);
3429 
3430  return out;
3431 }
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 ModalNode::DescribeEq ( std::vector< std::string > &  desc,
bool  bInitial = false,
int  i = -1 
) const
virtual

Reimplemented from StructDispNode.

Definition at line 3434 of file strnode.cc.

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

3435 {
3436  if (bInitial || i == -1 || (i >= 6 && i < 12)) {
3437  int new_i = i;
3438  if (!bInitial && i != -1) {
3439  new_i = i - 6;
3440  }
3441  StructNode::DescribeEq(desc, bInitial, new_i);
3442 
3443  if (bInitial || (i >= 6 && i < 12)) {
3444  for (size_t ii = 0; ii < desc.size(); ii++) {
3445  desc[ii] = "Modal" + desc[ii];
3446  }
3447  return;
3448  }
3449  }
3450 
3451  if (i == -1) {
3452  desc.resize(12);
3453  for (int j = 0; j < 6; j++) {
3454  desc[6 + j] = "Modal" + desc[j];
3455  }
3456 
3457  } else {
3458  desc.resize(1);
3459  }
3460 
3461  std::ostringstream os;
3462  os << "ModalStructNode(" << GetLabel() << ")";
3463 
3464  const char **xeq = sn_modal_eq;
3465  if (bInitial) {
3466  xeq = sn_initial_eq;
3467  }
3468 
3469  if (i == -1) {
3470  std::string name = os.str();
3471 
3472  for (i = 0; i < 6; i++) {
3473  os.str(name);
3474  os.seekp(0, std::ios_base::end);
3475  os << ": " << xeq[i/3] << xyz[i%3];
3476  desc[i] = os.str();
3477  }
3478 
3479  } else {
3480  if (i < 0 || i >= 6) {
3482  }
3483 
3484  os << ": " << xeq[i/3] << xyz[i%3];
3485  desc[0] = os.str();
3486  }
3487 }
#define MBDYN_EXCEPT_ARGS
Definition: except.h:63
static const char * sn_initial_eq[]
Definition: strnode.cc:90
static const char * sn_modal_eq[]
Definition: strnode.cc:78
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
unsigned int GetLabel(void) const
Definition: withlab.cc:62

Here is the call graph for this function:

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

Reimplemented from DynamicStructNode.

Definition at line 3334 of file strnode.cc.

References StructNode::MODAL.

Referenced by Modal::Modal().

3335 {
3336  return StructNode::MODAL;
3337 }
integer ModalNode::iGetFirstRowIndex ( void  ) const
virtual

Reimplemented from DynamicStructNode.

Definition at line 3343 of file strnode.cc.

References StructDispNode::iGetFirstMomentumIndex().

3344 {
3345  return iGetFirstMomentumIndex();
3346 }
virtual integer iGetFirstMomentumIndex(void) const =0

Here is the call graph for this function:

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

Reimplemented from StructDispNode.

Definition at line 3491 of file strnode.cc.

References DofOwnerOwner::iGetFirstIndex(), RigidBodyKinematics::Update(), StructNode::WPCurr, and StructDispNode::XPPCurr.

3492 {
3493  StructNode::Update(X, XP);
3494 
3495  integer iFirstIndex = iGetFirstIndex();
3496 
3497  /* aggiorno XPP e WP (servono solo a modal.cc) */
3498  XPPCurr = Vec3(XP, iFirstIndex + 7);
3499  WPCurr = Vec3(XP, iFirstIndex + 10);
3500 }
Definition: matvec3.h:98
Vec3 WPCurr
Definition: strnode.h:749
Vec3 XPPCurr
Definition: strnode.h:95
virtual void Update(void)
Definition: rbk.cc:45
virtual integer iGetFirstIndex(void) const
Definition: dofown.h:127
long int integer
Definition: colamd.c:51

Here is the call graph for this function:


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