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

#include <modalext.h>

Inheritance diagram for ModalExt:
Collaboration diagram for ModalExt:

Public Member Functions

 ModalExt (unsigned int uL, DataManager *pDM, const Modal *pmodal, const StructNode *pnode, bool bOutputAccelerations, ExtFileHandlerBase *pEFH, ExtModalForceBase *pEMF, bool bSendAfterPredict, int iCoupling, ExtModalForceBase::BitMask bm, flag fOut)
 
virtual ~ModalExt (void)
 
virtual Force::Type GetForceType (void) const
 
void WorkSpaceDim (integer *piNumRows, integer *piNumCols) const
 
SubVectorHandlerAssRes (SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual void Output (OutputHandler &OH) const
 
virtual void GetConnectedNodes (std::vector< const Node * > &connectedNodes) const
 
- 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 void AssMats (VariableSubMatrixHandler &WorkMatA, VariableSubMatrixHandler &WorkMatB, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
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 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, const VectorHandler &XPP)
 
virtual unsigned int iGetNumPrivData (void) const
 
virtual unsigned int iGetPrivDataIdx (const char *s) const
 
virtual doublereal dGetPrivData (unsigned int i) const
 
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 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 ExtForce
 ExtForce (unsigned int uL, DataManager *pDM, ExtFileHandlerBase *pEFH, bool bSendAfterPredict, int iCoupling, flag fOut)
 
virtual ~ExtForce (void)
 
virtual void SetValue (DataManager *pDM, VectorHandler &X, VectorHandler &XP, SimulationEntity::Hints *h=0)
 
virtual void Update (const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual void AfterConvergence (const VectorHandler &X, const VectorHandler &XP)
 
virtual void AfterPredict (VectorHandler &X, VectorHandler &XP)
 
virtual void InitialWorkSpaceDim (integer *piNumRows, integer *piNumCols) const
 
virtual VariableSubMatrixHandlerInitialAssJac (VariableSubMatrixHandler &WorkMat, const VectorHandler &XCurr)
 
virtual SubVectorHandlerInitialAssRes (SubVectorHandler &WorkVec, const VectorHandler &XCurr)
 
- Public Member Functions inherited from Force
 Force (unsigned int uL, flag fOut)
 
virtual ~Force (void)
 
virtual Elem::Type GetElemType (void) const
 
virtual VariableSubMatrixHandlerAssJac (VariableSubMatrixHandler &WorkMat, doublereal, const VectorHandler &, const VectorHandler &)
 
virtual std::ostream & Restart (std::ostream &out) const
 
virtual unsigned int iGetInitialNumDof (void) 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)
 

Protected Member Functions

bool Prepare (ExtFileHandlerBase *pEFH)
 
void Send (ExtFileHandlerBase *pEFH, ExtFileHandlerBase::SendWhen when)
 
void Recv (ExtFileHandlerBase *pEFH)
 
- Protected Member Functions inherited from ExtForce
void Send (ExtFileHandlerBase::SendWhen when)
 
void Recv (void)
 

Protected Attributes

const ModalpModal
 
const StructNodepNode
 
bool bOutputAccelerations
 
ExtModalForceBasepEMF
 
unsigned uFlags
 
Vec3 F
 
Vec3 M
 
std::vector< doublerealf
 
std::vector< doublerealq
 
std::vector< doublerealqP
 
- Protected Attributes inherited from WithLabel
unsigned int uLabel
 
std::string sName
 
- Protected Attributes inherited from ToBeOutput
flag fOutput
 
- Protected Attributes inherited from ExtForce
Converged c
 
ExtFileHandlerBasepEFH
 
bool bSendAfterPredict
 
int iCoupling
 
int iCouplingCounter
 
bool bFirstSend
 
bool bFirstRecv
 

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 }
 
- Public Types inherited from ExtForce
enum  { COUPLING_NONE = -2, COUPLING_STAGGERED = -1, COUPLING_LOOSE = 0, COUPLING_TIGHT = 1 }
 
- Public Types inherited from Force
enum  Type {
  UNKNOWN = -1, ABSTRACTFORCE = 0, ABSTRACTINTERNALFORCE, ABSOLUTEDISPFORCE,
  ABSOLUTEINTERNALDISPFORCE, ABSOLUTEFORCE, FOLLOWERFORCE, ABSOLUTECOUPLE,
  FOLLOWERCOUPLE, ABSOLUTEINTERNALFORCE, FOLLOWERINTERNALFORCE, ABSOLUTEINTERNALCOUPLE,
  FOLLOWERINTERNALCOUPLE, TOTALFORCE, TOTALINTERNALFORCE, EXTERNALSTRUCTURAL,
  MODALFORCE, EXTERNALMODAL, LASTFORCETYPE
}
 

Detailed Description

Definition at line 144 of file modalext.h.

Constructor & Destructor Documentation

ModalExt::ModalExt ( unsigned int  uL,
DataManager pDM,
const Modal pmodal,
const StructNode pnode,
bool  bOutputAccelerations,
ExtFileHandlerBase pEFH,
ExtModalForceBase pEMF,
bool  bSendAfterPredict,
int  iCoupling,
ExtModalForceBase::BitMask  bm,
flag  fOut 
)

Definition at line 333 of file modalext.cc.

References ASSERT, ExtModalForceBase::EMF_ALL, ExtModalForceBase::EMF_MODAL, ExtModalForceBase::EMF_RIGID, f, pModal, pNode, q, qP, uFlags, and Modal::uGetNModes().

344 : Elem(uL, fOut),
345 ExtForce(uL, pDM, pEFH, bSendAfterPredict, iCoupling, fOut),
346 pModal(pmodal),
347 pNode(pnode),
349 pEMF(pEMF),
351 F(Zero3),
352 M(Zero3)
353 {
354  ASSERT((pModal != 0) || (pNode != 0));
355  ASSERT(pEMF != 0);
356 
357  ASSERT((bm & ExtModalForceBase::EMF_ALL) != 0);
358  ASSERT((bm & ~ExtModalForceBase::EMF_ALL) == 0);
359 
360  if (bm & ExtModalForceBase::EMF_MODAL) {
361  f.resize(pModal->uGetNModes());
362 
363  // Temporary?
364  q.resize(pModal->uGetNModes());
365  qP.resize(pModal->uGetNModes());
366 
367  ASSERT(pModal->uGetNModes() > 0);
369 
370  } else {
371  f.resize(0);
372  q.resize(0);
373  qP.resize(0);
374  }
375 
376  if (bm & ExtModalForceBase::EMF_RIGID) {
377  ASSERT(pNode != 0);
379  }
380 }
std::vector< doublereal > f
Definition: modalext.h:154
const Modal * pModal
Definition: modalext.h:146
const Vec3 Zero3(0., 0., 0.)
Vec3 M
Definition: modalext.h:153
integer uGetNModes(void) const
Definition: modal.h:363
bool bSendAfterPredict
Definition: extforce.h:196
std::vector< doublereal > qP
Definition: modalext.h:158
ExtForce(unsigned int uL, DataManager *pDM, ExtFileHandlerBase *pEFH, bool bSendAfterPredict, int iCoupling, flag fOut)
Definition: extforce.cc:677
Vec3 F
Definition: modalext.h:153
const StructNode * pNode
Definition: modalext.h:148
#define ASSERT(expression)
Definition: colamd.c:977
unsigned uFlags
Definition: modalext.h:151
bool bOutputAccelerations
Definition: modalext.h:149
ExtModalForceBase * pEMF
Definition: modalext.h:150
Elem(unsigned int uL, flag fOut)
Definition: elem.cc:41
std::vector< doublereal > q
Definition: modalext.h:157

Here is the call graph for this function:

ModalExt::~ModalExt ( void  )
virtual

Definition at line 382 of file modalext.cc.

References pEMF, and SAFEDELETE.

383 {
384  if (pEMF) {
385  SAFEDELETE(pEMF);
386  }
387 }
ExtModalForceBase * pEMF
Definition: modalext.h:150
#define SAFEDELETE(pnt)
Definition: mynewmem.h:710

Member Function Documentation

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

Implements Elem.

Definition at line 507 of file modalext.cc.

References ExtForce::COUPLING_NONE, ExtModalForceBase::EMF_MODAL, ExtModalForceBase::EMF_RIGID, F, f, ExtForce::iCoupling, StructDispNode::iGetFirstMomentumIndex(), Modal::iGetModalIndex(), M, pModal, pNode, VectorHandler::Put(), SubVectorHandler::PutItem(), SubVectorHandler::PutRowIndex(), ExtForce::Recv(), VectorHandler::Resize(), VectorHandler::ResizeReset(), uFlags, Modal::uGetNModes(), and WorkSpaceDim().

511 {
512  ExtForce::Recv();
513 
514  if (iCoupling == COUPLING_NONE) {
515  WorkVec.Resize(0);
516  return WorkVec;
517  }
518 
519  integer iR, iC;
520  WorkSpaceDim(&iR, &iC);
521  WorkVec.ResizeReset(iR);
522 
523  integer iIdx = 1;
525  integer iFirstIndex = pNode->iGetFirstMomentumIndex();
526 
527  for (integer iCnt = 1; iCnt <= 6; iCnt++) {
528  WorkVec.PutRowIndex(iCnt, iFirstIndex + iCnt);
529  }
530 
531  WorkVec.Put(1, F);
532  WorkVec.Put(4, M);
533  }
534 
535  if (pNode) {
536  iIdx += 6;
537  }
538 
540  integer iModalIndex = pModal->iGetModalIndex() + pModal->uGetNModes() + 1;
541  for (integer iMode = 0; iMode < pModal->uGetNModes(); iMode++) {
542  WorkVec.PutItem(iIdx + iMode, iModalIndex + iMode, f[iMode]);
543  }
544  }
545 
546  return WorkVec;
547 }
std::vector< doublereal > f
Definition: modalext.h:154
const Modal * pModal
Definition: modalext.h:146
Vec3 M
Definition: modalext.h:153
virtual void ResizeReset(integer)
Definition: vh.cc:55
void Recv(void)
Definition: extforce.cc:798
integer uGetNModes(void) const
Definition: modal.h:363
virtual void PutItem(integer iSubRow, integer iRow, const doublereal &dCoef)
Definition: submat.h:1445
virtual void PutRowIndex(integer iSubRow, integer iRow)=0
Vec3 F
Definition: modalext.h:153
const StructNode * pNode
Definition: modalext.h:148
virtual integer iGetFirstMomentumIndex(void) const =0
unsigned uFlags
Definition: modalext.h:151
integer iGetModalIndex(void) const
Definition: modal.h:391
virtual void Put(integer iRow, const Vec3 &v)
Definition: vh.cc:93
int iCoupling
Definition: extforce.h:212
long int integer
Definition: colamd.c:51
void WorkSpaceDim(integer *piNumRows, integer *piNumCols) const
Definition: modalext.cc:494
virtual void Resize(integer iNewSize)=0

Here is the call graph for this function:

void ModalExt::GetConnectedNodes ( std::vector< const Node * > &  connectedNodes) const
virtual

Reimplemented from Elem.

Definition at line 578 of file modalext.cc.

References pNode.

579 {
580  if (pNode) {
581  connectedNodes.resize(1);
582  connectedNodes[0] = pNode;
583  } else {
584  connectedNodes.resize(0);
585  }
586 }
const StructNode * pNode
Definition: modalext.h:148
Force::Type ModalExt::GetForceType ( void  ) const
virtual

Implements Force.

Definition at line 488 of file modalext.cc.

References Force::EXTERNALMODAL.

489 {
490  return Force::EXTERNALMODAL;
491 }
void ModalExt::Output ( OutputHandler OH) const
virtual

Reimplemented from ToBeOutput.

Definition at line 550 of file modalext.cc.

References ToBeOutput::bToBeOutput(), ExtModalForceBase::EMF_MODAL, ExtModalForceBase::EMF_RIGID, F, f, OutputHandler::FORCES, OutputHandler::Forces(), WithLabel::GetLabel(), Modal::GetModeList(), M, pModal, pNode, uFlags, and OutputHandler::UseText().

551 {
552  if (bToBeOutput()) {
553  if (OH.UseText(OutputHandler::FORCES)) {
554  std::ostream& out = OH.Forces();
555 
557  out << GetLabel() << "#" << pNode->GetLabel()
558  << " " << F << " " << M
559  << std::endl;
560  }
561 
563  unsigned cnt = 0;
564  const std::vector<unsigned int>& ML(pModal->GetModeList());
565  for (std::vector<doublereal>::const_iterator i = f.begin(); i != f.end(); ++i) {
566  out << GetLabel() << '.' << ML[cnt]
567  << " " << *i << std::endl;
568  cnt++;
569  }
570  }
571  }
572 
573  /* TODO: NetCDF */
574  }
575 }
std::vector< doublereal > f
Definition: modalext.h:154
const Modal * pModal
Definition: modalext.h:146
virtual bool bToBeOutput(void) const
Definition: output.cc:890
Vec3 M
Definition: modalext.h:153
Vec3 F
Definition: modalext.h:153
const StructNode * pNode
Definition: modalext.h:148
unsigned uFlags
Definition: modalext.h:151
unsigned int GetLabel(void) const
Definition: withlab.cc:62
const std::vector< unsigned int > & GetModeList(void) const
Definition: modal.h:367
std::ostream & Forces(void) const
Definition: output.h:450
bool UseText(int out) const
Definition: output.cc:446

Here is the call graph for this function:

bool ModalExt::Prepare ( ExtFileHandlerBase pEFH)
protectedvirtual

Implements ExtForce.

Definition at line 390 of file modalext.cc.

References ExtModalForceBase::EMF_RIGID, WithLabel::GetLabel(), pEMF, pModal, ExtModalForceBase::Prepare(), uFlags, and Modal::uGetNModes().

391 {
392  return pEMF->Prepare(pEFH, GetLabel(),
394  pModal ? pModal->uGetNModes() : 0);
395 }
const Modal * pModal
Definition: modalext.h:146
integer uGetNModes(void) const
Definition: modal.h:363
virtual bool Prepare(ExtFileHandlerBase *pEFH, unsigned uLabel, bool bRigid, unsigned uModes)=0
unsigned uFlags
Definition: modalext.h:151
ExtModalForceBase * pEMF
Definition: modalext.h:150
unsigned int GetLabel(void) const
Definition: withlab.cc:62

Here is the call graph for this function:

void ModalExt::Recv ( ExtFileHandlerBase pEFH)
protectedvirtual

Implements ExtForce.

Definition at line 467 of file modalext.cc.

References ExtModalForceBase::EMF_ERR, F, f, WithLabel::GetLabel(), M, MBDYN_EXCEPT_ARGS, pEMF, ExtModalForceBase::Recv(), uFlags, and WithLabel::uLabel.

468 {
469  unsigned uLabel = 0;
470  unsigned uOutFlags = pEMF->Recv(pEFH, uFlags, uLabel, F, M, f);
471 
472  if (uOutFlags & ExtModalForceBase::EMF_ERR) {
473  silent_cerr("ModalExt(" << GetLabel() << "): "
474  "error while reading modal force data" << std::endl);
476  }
477 
478  if (uFlags != uOutFlags) {
479  silent_cerr("ModalExt(" << GetLabel() << "): "
480  "error while reading modal force data "
481  "(" << uOutFlags << "!=" << uFlags << ")"
482  << std::endl);
484  }
485 }
std::vector< doublereal > f
Definition: modalext.h:154
#define MBDYN_EXCEPT_ARGS
Definition: except.h:63
Vec3 M
Definition: modalext.h:153
Vec3 F
Definition: modalext.h:153
unsigned int uLabel
Definition: withlab.h:44
virtual unsigned Recv(ExtFileHandlerBase *pEFH, unsigned uFlags, unsigned &uLabel, Vec3 &f, Vec3 &m, std::vector< doublereal > &fv)=0
unsigned uFlags
Definition: modalext.h:151
ExtModalForceBase * pEMF
Definition: modalext.h:150
unsigned int GetLabel(void) const
Definition: withlab.cc:62

Here is the call graph for this function:

void ModalExt::Send ( ExtFileHandlerBase pEFH,
ExtFileHandlerBase::SendWhen  when 
)
protectedvirtual

Implements ExtForce.

Definition at line 401 of file modalext.cc.

References a, bOutputAccelerations, ExtModalForceBase::EMF_MODAL, ExtModalForceBase::EMF_RIGID, Eye3, Modal::GetA(), Modal::GetB(), Modal::GetBP(), WithLabel::GetLabel(), StructNode::GetRCurr(), StructDispNode::GetVCurr(), StructNode::GetWCurr(), StructNode::GetWPCurr(), StructDispNode::GetXCurr(), StructDispNode::GetXPPCurr(), pEMF, Modal::pGetModalNode(), pModal, pNode, q, qP, R, ExtModalForceBase::Send(), Mat3x3::Transpose(), uFlags, Modal::uGetNModes(), and Zero3.

402 {
403  Vec3 x;
404  Mat3x3 R;
405  Vec3 v;
406  Vec3 w;
407 
409  x = pNode->GetXCurr();
410  R = pNode->GetRCurr();
411  v = pNode->GetVCurr();
412  w = pNode->GetWCurr();
413 
414  } else {
415  x = Zero3;
416  R = Eye3;
417  v = Zero3;
418  w = Zero3;
419  }
420 
421  // Temporary?
423  const VecN& a = pModal->GetA();
424  const VecN& b = pModal->GetB();
425  for (unsigned i = 0; i < q.size(); i++) {
426  q[i] = a(i + 1);
427  qP[i] = b(i + 1);
428  }
429  }
430 
431  pEMF->Send(pEFH, uFlags, GetLabel(), x, R, v, w, q, qP);
432 
433 #if 0
434  if (uFlags & ExtModalForceBase::EMF_RIGID) {
435  const StructNode *pNode = pModal->pGetModalNode();
436 
437  Mat3x3 RT = pNode->GetRCurr().Transpose();
438  outf << pNode->GetLabel()
439  << " " << pNode->GetXCurr()
440  << " " << pNode->GetRCurr()
441  << " " << RT*pNode->GetVCurr()
442  << " " << RT*pNode->GetWCurr();
443  if (bOutputAccelerations) {
444  outf
445  << " " << pNode->GetXPPCurr()
446  << " " << pNode->GetWPCurr();
447  }
448  outf << std::endl;
449  }
450 
451  if (uFlags & ExtModalForceBase::EMF_MODAL) {
452  const VecN& a = pModal->GetA();
453  const VecN& b = pModal->GetB();
454  const VecN& bP = pModal->GetBP();
455  for (integer i = 1; i < pModal->uGetNModes(); i++) {
456  outf << a(i) << " " << b(i);
457  if (bOutputAccelerations) {
458  outf << " " << bP(i);
459  }
460  outf << std::endl;
461  }
462  }
463 #endif
464 }
const ModalNode * pGetModalNode(void) const
Definition: modal.h:395
const Modal * pModal
Definition: modalext.h:146
const Vec3 Zero3(0., 0., 0.)
const VecN & GetA(void) const
Definition: modal.h:371
Definition: matvec3.h:98
virtual const Mat3x3 & GetRCurr(void) const
Definition: strnode.h:1012
integer uGetNModes(void) const
Definition: modal.h:363
const Mat3x3 Eye3(1., 0., 0., 0., 1., 0., 0., 0., 1.)
std::vector< doublereal > qP
Definition: modalext.h:158
const StructNode * pNode
Definition: modalext.h:148
const VecN & GetB(void) const
Definition: modal.h:379
virtual const Vec3 & GetWCurr(void) const
Definition: strnode.h:1030
virtual const Vec3 & GetWPCurr(void) const
Definition: strnode.h:1042
unsigned uFlags
Definition: modalext.h:151
virtual const Vec3 & GetXCurr(void) const
Definition: strnode.h:310
bool bOutputAccelerations
Definition: modalext.h:149
ExtModalForceBase * pEMF
Definition: modalext.h:150
Mat3x3 Transpose(void) const
Definition: matvec3.h:816
virtual const Vec3 & GetVCurr(void) const
Definition: strnode.h:322
Definition: matvec3n.h:76
static const doublereal a
Definition: hfluid_.h:289
virtual const Vec3 & GetXPPCurr(void) const
Definition: strnode.h:334
long int integer
Definition: colamd.c:51
const VecN & GetBP(void) const
Definition: modal.h:383
unsigned int GetLabel(void) const
Definition: withlab.cc:62
std::vector< doublereal > q
Definition: modalext.h:157
virtual void Send(ExtFileHandlerBase *pEFH, unsigned uFlags, unsigned uLabel, const Vec3 &x, const Mat3x3 &R, const Vec3 &v, const Vec3 &w, const std::vector< doublereal > &q, const std::vector< doublereal > &qP)=0
Mat3x3 R

Here is the call graph for this function:

void ModalExt::WorkSpaceDim ( integer piNumRows,
integer piNumCols 
) const
virtual

Implements Elem.

Definition at line 494 of file modalext.cc.

References ExtForce::COUPLING_NONE, ExtForce::iCoupling, pModal, pNode, and Modal::uGetNModes().

Referenced by AssRes().

495 {
496  if (iCoupling == COUPLING_NONE) {
497  *piNumRows = 0;
498  *piNumCols = 0;
499 
500  } else {
501  *piNumRows = (pNode ? 6 : 0) + (pModal ? pModal->uGetNModes() : 0);
502  *piNumCols = 1;
503  }
504 }
const Modal * pModal
Definition: modalext.h:146
integer uGetNModes(void) const
Definition: modal.h:363
const StructNode * pNode
Definition: modalext.h:148
int iCoupling
Definition: extforce.h:212

Here is the call graph for this function:

Member Data Documentation

bool ModalExt::bOutputAccelerations
protected

Definition at line 149 of file modalext.h.

Referenced by Send().

Vec3 ModalExt::F
protected

Definition at line 153 of file modalext.h.

Referenced by AssRes(), Output(), and Recv().

std::vector<doublereal> ModalExt::f
protected

Definition at line 154 of file modalext.h.

Referenced by AssRes(), ModalExt(), Output(), and Recv().

Vec3 ModalExt::M
protected

Definition at line 153 of file modalext.h.

Referenced by AssRes(), Output(), and Recv().

ExtModalForceBase* ModalExt::pEMF
protected

Definition at line 150 of file modalext.h.

Referenced by Prepare(), Recv(), Send(), and ~ModalExt().

const Modal* ModalExt::pModal
protected

Definition at line 146 of file modalext.h.

Referenced by AssRes(), ModalExt(), Output(), Prepare(), Send(), and WorkSpaceDim().

const StructNode* ModalExt::pNode
protected

Definition at line 148 of file modalext.h.

Referenced by AssRes(), GetConnectedNodes(), ModalExt(), Output(), Send(), and WorkSpaceDim().

std::vector<doublereal> ModalExt::q
protected

Definition at line 157 of file modalext.h.

Referenced by ModalExt(), and Send().

std::vector<doublereal> ModalExt::qP
protected

Definition at line 158 of file modalext.h.

Referenced by ModalExt(), and Send().

unsigned ModalExt::uFlags
protected

Definition at line 151 of file modalext.h.

Referenced by AssRes(), ModalExt(), Output(), Prepare(), Recv(), and Send().


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