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

#include <body.h>

Inheritance diagram for DynamicMass:
Collaboration diagram for DynamicMass:

Public Member Functions

 DynamicMass (unsigned int uL, const DynamicStructDispNode *pNode, doublereal dMassTmp, flag fOut)
 
virtual ~DynamicMass (void)
 
void WorkSpaceDim (integer *piNumRows, integer *piNumCols) const
 
virtual VariableSubMatrixHandlerAssJac (VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
void AssMats (VariableSubMatrixHandler &WorkMatA, VariableSubMatrixHandler &WorkMatB, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual SubVectorHandlerAssRes (SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual void InitialWorkSpaceDim (integer *piNumRows, integer *piNumCols) const
 
virtual VariableSubMatrixHandlerInitialAssJac (VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
 
virtual SubVectorHandlerInitialAssRes (SubVectorHandler &WorkVec, const VectorHandler &XCurr)
 
virtual void SetValue (DataManager *pDM, VectorHandler &X, VectorHandler &XP, SimulationEntity::Hints *ph=0)
 
- Public Member Functions inherited from Elem
 Elem (unsigned int uL, flag fOut)
 
virtual ~Elem (void)
 
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 DofOrder::Order GetDofType (unsigned int) const
 
virtual bool bInverseDynamics (void) const
 
void SetInverseDynamicsFlags (unsigned uIDF)
 
unsigned GetInverseDynamicsFlags (void) const
 
bool bIsErgonomy (void) const
 
bool bIsRightHandSide (void) const
 
virtual VariableSubMatrixHandlerAssJac (VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
 
virtual SubVectorHandlerAssRes (SubVectorHandler &WorkVec, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr, const VectorHandler &XPrimePrimeCurr, InverseDynamics::Order iOrder=InverseDynamics::INVERSE_DYNAMICS)
 
virtual int GetNumConnectedNodes (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 void BeforePredict (VectorHandler &, VectorHandler &, VectorHandler &, VectorHandler &) const
 
virtual void AfterPredict (VectorHandler &X, VectorHandler &XP)
 
virtual void Update (const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual void DerivativesUpdate (const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual void Update (const VectorHandler &XCurr, InverseDynamics::Order iOrder)
 
virtual void AfterConvergence (const VectorHandler &X, const VectorHandler &XP)
 
virtual void AfterConvergence (const VectorHandler &X, const VectorHandler &XP, const VectorHandler &XPP)
 
virtual std::ostream & OutputAppend (std::ostream &out) const
 
virtual void ReadInitialState (MBDynParser &HP)
 
- Public Member Functions inherited from ToBeOutput
 ToBeOutput (flag fOut=fDefaultOut)
 
virtual ~ToBeOutput (void)
 
virtual void OutputPrepare (OutputHandler &OH)
 
virtual void Output (OutputHandler &OH) const
 
virtual void Output (OutputHandler &OH, const VectorHandler &X, const VectorHandler &XP) const
 
virtual flag fToBeOutput (void) const
 
virtual bool bToBeOutput (void) const
 
virtual void SetOutputFlag (flag f=flag(1))
 
- Public Member Functions inherited from Mass
 Mass (unsigned int uL, const StructDispNode *pNode, doublereal dMassTmp, flag fOut)
 
virtual ~Mass (void)
 
doublereal dGetM (void) const
 
Vec3 GetS (void) const
 
Mat3x3 GetJ (void) const
 
const StructDispNodepGetNode (void) const
 
virtual Elem::Type GetElemType (void) const
 
virtual unsigned int iGetInitialNumDof (void) const
 
virtual unsigned int iGetNumPrivData (void) const
 
virtual unsigned int iGetPrivDataIdx (const char *s) const
 
virtual doublereal dGetPrivData (unsigned int i) const
 
virtual void GetConnectedNodes (std::vector< const Node * > &connectedNodes) const
 
- Public Member Functions inherited from ElemGravityOwner
 ElemGravityOwner (unsigned int uL, flag fOut)
 
virtual ~ElemGravityOwner (void)
 
Vec3 GetS (void) const
 
Mat3x3 GetJ (void) const
 
Vec3 GetB (void) const
 
Vec3 GetG (void) const
 
- Public Member Functions inherited from GravityOwner
 GravityOwner (void)
 
virtual ~GravityOwner (void)
 
void PutGravity (const Gravity *pG)
 
virtual bool bGetGravity (const Vec3 &X, Vec3 &Acc) const
 
- Public Member Functions inherited from InitialAssemblyElem
 InitialAssemblyElem (unsigned int uL, flag fOut)
 
virtual ~InitialAssemblyElem (void)
 
- Public Member Functions inherited from SubjectToInitialAssembly
 SubjectToInitialAssembly (void)
 
virtual ~SubjectToInitialAssembly (void)
 

Private Member Functions

Vec3 GetB_int (void) const
 
void AssMats (FullSubMatrixHandler &WorkMatA, FullSubMatrixHandler &WorkMatB, doublereal dCoef, bool bGravity, const Vec3 &GravityAcceleration)
 

Additional Inherited Members

- Public Types inherited from Elem
enum  Type {
  UNKNOWN = -1, AIRPROPERTIES = 0, INDUCEDVELOCITY, AUTOMATICSTRUCTURAL,
  GRAVITY, BODY, JOINT, JOINT_REGULARIZATION,
  BEAM, PLATE, FORCE, INERTIA,
  ELECTRICBULK, ELECTRIC, THERMAL, HYDRAULIC,
  BULK, LOADABLE, DRIVEN, EXTERNAL,
  AEROMODAL, AERODYNAMIC, GENEL, SOCKETSTREAM_OUTPUT,
  RTAI_OUTPUT = SOCKETSTREAM_OUTPUT, LASTELEMTYPE
}
 
- 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 }
 
- Protected Member Functions inherited from Mass
Vec3 GetS_int (void) const
 
Mat3x3 GetJ_int (void) const
 
virtual std::ostream & Restart (std::ostream &out) const
 
void AssVecRBK_int (SubVectorHandler &WorkVec)
 
void AssMatsRBK_int (FullSubMatrixHandler &WMA, FullSubMatrixHandler &WMB, const doublereal &dCoef)
 
- Protected Member Functions inherited from ElemGravityOwner
virtual Vec3 GetG_int (void) const
 
- Protected Attributes inherited from WithLabel
unsigned int uLabel
 
std::string sName
 
- Protected Attributes inherited from ToBeOutput
flag fOutput
 
- Protected Attributes inherited from Mass
const StructDispNodepNode
 
doublereal dMass
 
- Protected Attributes inherited from GravityOwner
GravitypGravity
 

Detailed Description

Definition at line 118 of file body.h.

Constructor & Destructor Documentation

DynamicMass::DynamicMass ( unsigned int  uL,
const DynamicStructDispNode pNode,
doublereal  dMassTmp,
flag  fOut 
)

Definition at line 228 of file body.cc.

References NO_OP.

232 : Elem(uL, fOut),
233 Mass(uL, pNode, dMass, fOut)
234 {
235  NO_OP;
236 }
#define NO_OP
Definition: myassert.h:74
doublereal dMass
Definition: body.h:49
Mass(unsigned int uL, const StructDispNode *pNode, doublereal dMassTmp, flag fOut)
Definition: body.cc:44
Elem(unsigned int uL, flag fOut)
Definition: elem.cc:41
DynamicMass::~DynamicMass ( void  )
virtual

Definition at line 240 of file body.cc.

References NO_OP.

241 {
242  NO_OP;
243 }
#define NO_OP
Definition: myassert.h:74

Member Function Documentation

VariableSubMatrixHandler & DynamicMass::AssJac ( VariableSubMatrixHandler WorkMat,
doublereal  dCoef,
const VectorHandler XCurr,
const VectorHandler XPrimeCurr 
)
virtual

Implements Elem.

Definition at line 247 of file body.cc.

References AssMats(), GravityOwner::bGetGravity(), DEBUGCOUTFNAME, StructDispNode::GetXCurr(), StructDispNode::iGetFirstMomentumIndex(), StructDispNode::iGetFirstPositionIndex(), StructDispNode::pGetRBK(), Mass::pNode, FullSubMatrixHandler::PutColIndex(), FullSubMatrixHandler::PutRowIndex(), FullSubMatrixHandler::ResizeReset(), and VariableSubMatrixHandler::SetFull().

251 {
252  DEBUGCOUTFNAME("DynamicMass::AssJac");
253 
254  /* Casting di WorkMat */
255  FullSubMatrixHandler& WM = WorkMat.SetFull();
256 
257  Vec3 GravityAcceleration;
259  GravityAcceleration);
260 
261  integer iNumRows = 3;
262  if (pNode->pGetRBK()) {
263  iNumRows = 6;
264  }
265 
266  /* Dimensiona e resetta la matrice di lavoro */
267  WM.ResizeReset(iNumRows, 3);
268 
269  /* Setta gli indici della matrice - le incognite sono ordinate come:
270  * - posizione (3)
271  * - parametri di rotazione (3)
272  * - quantita' di moto (3)
273  * - momento della quantita' di moto
274  * e gli indici sono consecutivi. La funzione pGetFirstPositionIndex()
275  * ritorna il valore del primo indice -1, in modo che l'indice i-esimo
276  * e' dato da iGetFirstPositionIndex()+i */
277  integer iFirstPositionIndex = pNode->iGetFirstPositionIndex();
278  for (integer iCnt = 1; iCnt <= 3; iCnt++) {
279  WM.PutRowIndex(iCnt, iFirstPositionIndex + iCnt);
280  WM.PutColIndex(iCnt, iFirstPositionIndex + iCnt);
281  }
282 
283  if (iNumRows == 6) {
284  integer iFirstMomentumIndex = pNode->iGetFirstMomentumIndex();
285  for (integer iCnt = 1; iCnt <= 3; iCnt++) {
286  WM.PutRowIndex(3 + iCnt, iFirstMomentumIndex + iCnt);
287  }
288  }
289 
290  AssMats(WM, WM, dCoef, g, GravityAcceleration);
291 
292  return WorkMat;
293 }
void PutColIndex(integer iSubCol, integer iCol)
Definition: submat.h:325
Definition: matvec3.h:98
#define DEBUGCOUTFNAME(fname)
Definition: myassert.h:256
FullSubMatrixHandler & SetFull(void)
Definition: submat.h:1168
virtual bool bGetGravity(const Vec3 &X, Vec3 &Acc) const
Definition: gravity.cc:208
const StructDispNode * pNode
Definition: body.h:48
virtual integer iGetFirstMomentumIndex(void) const =0
virtual integer iGetFirstPositionIndex(void) const
Definition: strnode.h:452
const RigidBodyKinematics * pGetRBK(void) const
Definition: strnode.cc:152
virtual const Vec3 & GetXCurr(void) const
Definition: strnode.h:310
virtual void ResizeReset(integer, integer)
Definition: submat.cc:182
void PutRowIndex(integer iSubRow, integer iRow)
Definition: submat.h:311
void AssMats(FullSubMatrixHandler &WorkMatA, FullSubMatrixHandler &WorkMatB, doublereal dCoef, bool bGravity, const Vec3 &GravityAcceleration)
Definition: body.cc:350
long int integer
Definition: colamd.c:51

Here is the call graph for this function:

void DynamicMass::AssMats ( FullSubMatrixHandler WorkMatA,
FullSubMatrixHandler WorkMatB,
doublereal  dCoef,
bool  bGravity,
const Vec3 GravityAcceleration 
)
private

Definition at line 350 of file body.cc.

References Mass::AssMatsRBK_int(), DEBUGCOUTFNAME, Mass::dMass, FullSubMatrixHandler::IncCoef(), StructDispNode::pGetRBK(), and Mass::pNode.

Referenced by AssJac(), and AssMats().

355 {
356  DEBUGCOUTFNAME("DynamicMass::AssMats");
357 
358  /*
359  * momentum:
360  *
361  * m * I DeltaV - S /\ DeltagP + ( S /\ W ) /\ Deltag
362  */
363  WMB.IncCoef(1, 1, dMass);
364  WMB.IncCoef(2, 2, dMass);
365  WMB.IncCoef(3, 3, dMass);
366 
367  const RigidBodyKinematics *pRBK = pNode->pGetRBK();
368  if (pRBK) {
369  AssMatsRBK_int(WMA, WMB, dCoef);
370  }
371 }
#define DEBUGCOUTFNAME(fname)
Definition: myassert.h:256
const StructDispNode * pNode
Definition: body.h:48
doublereal dMass
Definition: body.h:49
const RigidBodyKinematics * pGetRBK(void) const
Definition: strnode.cc:152
void AssMatsRBK_int(FullSubMatrixHandler &WMA, FullSubMatrixHandler &WMB, const doublereal &dCoef)
Definition: body.cc:204

Here is the call graph for this function:

void DynamicMass::AssMats ( VariableSubMatrixHandler WorkMatA,
VariableSubMatrixHandler WorkMatB,
const VectorHandler XCurr,
const VectorHandler XPrimeCurr 
)
virtual

Reimplemented from Elem.

Definition at line 297 of file body.cc.

References AssMats(), GravityOwner::bGetGravity(), DEBUGCOUTFNAME, StructDispNode::GetXCurr(), StructDispNode::iGetFirstMomentumIndex(), StructDispNode::iGetFirstPositionIndex(), Mass::pNode, FullSubMatrixHandler::PutColIndex(), FullSubMatrixHandler::PutRowIndex(), FullSubMatrixHandler::ResizeReset(), and VariableSubMatrixHandler::SetFull().

301 {
302  DEBUGCOUTFNAME("DynamicMass::AssMats");
303 
304  /* Casting di WorkMat */
305  FullSubMatrixHandler& WMA = WorkMatA.SetFull();
306  FullSubMatrixHandler& WMB = WorkMatB.SetFull();
307 
308  Vec3 GravityAcceleration;
310  GravityAcceleration);
311 
312  integer iNumRows = 3;
313  if (g) {
314  iNumRows = 6;
315  }
316 
317  /* Dimensiona e resetta la matrice di lavoro */
318  WMA.ResizeReset(iNumRows, 3);
319  WMB.ResizeReset(3, 3);
320 
321  /* Setta gli indici della matrice - le incognite sono ordinate come:
322  * - posizione (3)
323  * - parametri di rotazione (3)
324  * - quantita' di moto (3)
325  * - momento della quantita' di moto
326  * e gli indici sono consecutivi. La funzione pGetFirstPositionIndex()
327  * ritorna il valore del primo indice -1, in modo che l'indice i-esimo
328  * e' dato da iGetFirstPositionIndex()+i */
329  integer iFirstPositionIndex = pNode->iGetFirstPositionIndex();
330  for (integer iCnt = 1; iCnt <= 3; iCnt++) {
331  WMA.PutRowIndex(iCnt, iFirstPositionIndex + iCnt);
332  WMA.PutColIndex(iCnt, iFirstPositionIndex + iCnt);
333 
334  WMB.PutRowIndex(iCnt, iFirstPositionIndex + iCnt);
335  WMB.PutColIndex(iCnt, iFirstPositionIndex + iCnt);
336  }
337 
338  if (g) {
339  integer iFirstMomentumIndex = pNode->iGetFirstMomentumIndex();
340  for (integer iCnt = 1; iCnt <= 3; iCnt++) {
341  WMA.PutRowIndex(3 + iCnt, iFirstMomentumIndex + iCnt);
342  }
343  }
344 
345  AssMats(WMA, WMB, 1., g, GravityAcceleration);
346 }
void PutColIndex(integer iSubCol, integer iCol)
Definition: submat.h:325
Definition: matvec3.h:98
#define DEBUGCOUTFNAME(fname)
Definition: myassert.h:256
FullSubMatrixHandler & SetFull(void)
Definition: submat.h:1168
virtual bool bGetGravity(const Vec3 &X, Vec3 &Acc) const
Definition: gravity.cc:208
const StructDispNode * pNode
Definition: body.h:48
virtual integer iGetFirstMomentumIndex(void) const =0
virtual integer iGetFirstPositionIndex(void) const
Definition: strnode.h:452
virtual const Vec3 & GetXCurr(void) const
Definition: strnode.h:310
virtual void ResizeReset(integer, integer)
Definition: submat.cc:182
void PutRowIndex(integer iSubRow, integer iRow)
Definition: submat.h:311
void AssMats(FullSubMatrixHandler &WorkMatA, FullSubMatrixHandler &WorkMatB, doublereal dCoef, bool bGravity, const Vec3 &GravityAcceleration)
Definition: body.cc:350
long int integer
Definition: colamd.c:51

Here is the call graph for this function:

SubVectorHandler & DynamicMass::AssRes ( SubVectorHandler WorkVec,
doublereal  dCoef,
const VectorHandler XCurr,
const VectorHandler XPrimeCurr 
)
virtual

Implements Elem.

Definition at line 375 of file body.cc.

References VectorHandler::Add(), DynamicStructDispNode::AddInertia(), ASSERT, Mass::AssVecRBK_int(), GravityOwner::bGetGravity(), DEBUGCOUTFNAME, Mass::dMass, StructDispNode::GetVCurr(), StructDispNode::GetXCurr(), StructDispNode::iGetFirstPositionIndex(), StructDispNode::pGetRBK(), Mass::pNode, SubVectorHandler::PutRowIndex(), VectorHandler::ResizeReset(), and VectorHandler::Sub().

379 {
380  DEBUGCOUTFNAME("DynamicMass::AssRes");
381 
382  /* Se e' definita l'accelerazione di gravita',
383  * la aggiunge (solo al residuo) */
384  Vec3 GravityAcceleration;
386  GravityAcceleration);
387 
388  const RigidBodyKinematics *pRBK = pNode->pGetRBK();
389 
390  integer iNumRows = 3;
391  if (g || pRBK) {
392  iNumRows = 6;
393  }
394 
395  WorkVec.ResizeReset(iNumRows);
396 
397  integer iFirstPositionIndex = pNode->iGetFirstPositionIndex();
398  for (integer iCnt = 1; iCnt <= iNumRows; iCnt++) {
399  WorkVec.PutRowIndex(iCnt, iFirstPositionIndex + iCnt);
400  }
401 
402  const Vec3& V(pNode->GetVCurr());
403 
404  /* Quantita' di moto: R[1] = Q */
405  WorkVec.Sub(1, V*dMass);
406 
407  if (g) {
408  WorkVec.Add(3 + 1, GravityAcceleration*dMass);
409  }
410 
411  if (pRBK) {
412  AssVecRBK_int(WorkVec);
413  }
414 
415  const DynamicStructDispNode *pDN = dynamic_cast<const DynamicStructDispNode *>(pNode);
416  ASSERT(pDN != 0);
417 
418  pDN->AddInertia(dMass);
419 
420  return WorkVec;
421 }
void AssVecRBK_int(SubVectorHandler &WorkVec)
Definition: body.cc:183
Definition: matvec3.h:98
#define DEBUGCOUTFNAME(fname)
Definition: myassert.h:256
virtual void ResizeReset(integer)
Definition: vh.cc:55
virtual void Sub(integer iRow, const Vec3 &v)
Definition: vh.cc:78
virtual bool bGetGravity(const Vec3 &X, Vec3 &Acc) const
Definition: gravity.cc:208
virtual void PutRowIndex(integer iSubRow, integer iRow)=0
const StructDispNode * pNode
Definition: body.h:48
doublereal dMass
Definition: body.h:49
virtual integer iGetFirstPositionIndex(void) const
Definition: strnode.h:452
#define ASSERT(expression)
Definition: colamd.c:977
const RigidBodyKinematics * pGetRBK(void) const
Definition: strnode.cc:152
virtual const Vec3 & GetXCurr(void) const
Definition: strnode.h:310
virtual void Add(integer iRow, const Vec3 &v)
Definition: vh.cc:63
virtual const Vec3 & GetVCurr(void) const
Definition: strnode.h:322
long int integer
Definition: colamd.c:51
virtual void AddInertia(const doublereal &dm) const
Definition: strnode.cc:1244

Here is the call graph for this function:

Vec3 DynamicMass::GetB_int ( void  ) const
privatevirtual

Reimplemented from ElemGravityOwner.

Definition at line 465 of file body.cc.

References Mass::dMass, StructDispNode::GetVCurr(), and Mass::pNode.

466 {
467  const Vec3& V(pNode->GetVCurr());
468 
469  return V*dMass;
470 }
Definition: matvec3.h:98
const StructDispNode * pNode
Definition: body.h:48
doublereal dMass
Definition: body.h:49
virtual const Vec3 & GetVCurr(void) const
Definition: strnode.h:322

Here is the call graph for this function:

VariableSubMatrixHandler & DynamicMass::InitialAssJac ( VariableSubMatrixHandler WorkMat,
const VectorHandler XCurr 
)
virtual

Implements SubjectToInitialAssembly.

Definition at line 426 of file body.cc.

References DEBUGCOUTFNAME, and VariableSubMatrixHandler::SetNullMatrix().

428 {
429  DEBUGCOUTFNAME("DynamicMass::InitialAssJac");
430 
431  /* Casting di WorkMat */
432  WorkMat.SetNullMatrix();
433 
434  return WorkMat;
435 }
#define DEBUGCOUTFNAME(fname)
Definition: myassert.h:256
void SetNullMatrix(void)
Definition: submat.h:1159

Here is the call graph for this function:

SubVectorHandler & DynamicMass::InitialAssRes ( SubVectorHandler WorkVec,
const VectorHandler XCurr 
)
virtual

Implements SubjectToInitialAssembly.

Definition at line 440 of file body.cc.

References DEBUGCOUTFNAME, and VectorHandler::Resize().

442 {
443  DEBUGCOUTFNAME("DynamicMass::InitialAssRes");
444 
445  WorkVec.Resize(0);
446 
447  return WorkVec;
448 }
#define DEBUGCOUTFNAME(fname)
Definition: myassert.h:256
virtual void Resize(integer iNewSize)=0

Here is the call graph for this function:

virtual void DynamicMass::InitialWorkSpaceDim ( integer piNumRows,
integer piNumCols 
) const
inlinevirtual

Implements SubjectToInitialAssembly.

Definition at line 167 of file body.h.

167  {
168  *piNumRows = 3;
169  *piNumCols = 3;
170  };
void DynamicMass::SetValue ( DataManager pDM,
VectorHandler X,
VectorHandler XP,
SimulationEntity::Hints ph = 0 
)
virtual

Reimplemented from SimulationEntity.

Definition at line 453 of file body.cc.

References VectorHandler::Add(), Mass::dMass, StructDispNode::GetVCurr(), StructDispNode::iGetFirstMomentumIndex(), and Mass::pNode.

456 {
457  integer iFirstIndex = pNode->iGetFirstMomentumIndex();
458 
459  const Vec3& V(pNode->GetVCurr());
460  X.Add(iFirstIndex + 1, V*dMass);
461 }
Definition: matvec3.h:98
const StructDispNode * pNode
Definition: body.h:48
doublereal dMass
Definition: body.h:49
virtual integer iGetFirstMomentumIndex(void) const =0
virtual void Add(integer iRow, const Vec3 &v)
Definition: vh.cc:63
virtual const Vec3 & GetVCurr(void) const
Definition: strnode.h:322
long int integer
Definition: colamd.c:51

Here is the call graph for this function:

void DynamicMass::WorkSpaceDim ( integer piNumRows,
integer piNumCols 
) const
inlinevirtual

Implements Elem.

Definition at line 139 of file body.h.

139  {
140  *piNumRows = 3;
141  *piNumCols = 3;
142  };

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