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

#include <accelerometer.h>

Inheritance diagram for RotAccel:
Collaboration diagram for RotAccel:

Public Member Functions

 RotAccel (unsigned int uL, const DofOwner *pD, const StructNode *pS, const ScalarDifferentialNode *pA, const Vec3 &TmpDir, flag fOut)
 
 ~RotAccel (void)
 
virtual Electric::Type GetElectricType (void) const
 
virtual std::ostream & Restart (std::ostream &out) const
 
virtual unsigned int iGetNumDof (void) const
 
virtual DofOrder::Order GetDofType (unsigned int i) const
 
virtual void WorkSpaceDim (integer *piNumRows, integer *piNumCols) const
 
VariableSubMatrixHandlerAssJac (VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
SubVectorHandlerAssRes (SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual void SetInitialValue (VectorHandler &)
 
virtual void SetValue (DataManager *pDM, VectorHandler &X, VectorHandler &, SimulationEntity::Hints *ph=0)
 
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 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 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 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 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
 
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 Electric
 Electric (unsigned int uL, const DofOwner *pDO, flag fOut)
 
virtual ~Electric (void)
 
virtual Elem::Type GetElemType (void) const
 
- Public Member Functions inherited from ElemWithDofs
 ElemWithDofs (unsigned int uL, const DofOwner *pDO, flag fOut)
 
virtual ~ElemWithDofs (void)
 
- Public Member Functions inherited from DofOwnerOwner
 DofOwnerOwner (const DofOwner *pDO)
 
virtual ~DofOwnerOwner ()
 
virtual const DofOwnerpGetDofOwner (void) const
 
virtual integer iGetFirstIndex (void) const
 

Private Attributes

const StructNodepStrNode
 
const ScalarDifferentialNodepAbsNode
 
Vec3 Dir
 

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 Electric
enum  Type {
  UNKNOWN = -1, ACCELEROMETER = 0, DISPLACEMENT, DISCRETECONTROL,
  MOTOR, LASTELECTRICTYPE
}
 
- Protected Attributes inherited from WithLabel
unsigned int uLabel
 
std::string sName
 
- Protected Attributes inherited from ToBeOutput
flag fOutput
 

Detailed Description

Definition at line 163 of file accelerometer.h.

Constructor & Destructor Documentation

RotAccel::RotAccel ( unsigned int  uL,
const DofOwner pD,
const StructNode pS,
const ScalarDifferentialNode pA,
const Vec3 TmpDir,
flag  fOut 
)

Definition at line 408 of file accelerometer.cc.

References Node::ABSTRACT, ASSERT, StructDispNode::GetNodeType(), ScalarDifferentialNode::GetNodeType(), pAbsNode, pStrNode, and Node::STRUCTURAL.

414 : Elem(uL, fOut),
415 Electric(uL, pDO, fOut),
416 pStrNode(pS), pAbsNode(pA),
417 Dir(TmpDir)
418 {
419  ASSERT(pStrNode != NULL);
421  ASSERT(pAbsNode != NULL);
423 }
virtual Node::Type GetNodeType(void) const
Definition: strnode.cc:145
Electric(unsigned int uL, const DofOwner *pDO, flag fOut)
Definition: elec.cc:48
const StructNode * pStrNode
#define ASSERT(expression)
Definition: colamd.c:977
const ScalarDifferentialNode * pAbsNode
virtual Node::Type GetNodeType(void) const
Definition: node.cc:169
Elem(unsigned int uL, flag fOut)
Definition: elem.cc:41

Here is the call graph for this function:

RotAccel::~RotAccel ( void  )

Definition at line 426 of file accelerometer.cc.

References NO_OP.

427 {
428  NO_OP;
429 }
#define NO_OP
Definition: myassert.h:74

Member Function Documentation

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

Implements Elem.

Definition at line 445 of file accelerometer.cc.

References DEBUGCOUT, Vec3::dGet(), Dir, StructNode::GetRCurr(), Node::iGetFirstColIndex(), DofOwnerOwner::iGetFirstIndex(), pAbsNode, pStrNode, SparseSubMatrixHandler::PutItem(), SparseSubMatrixHandler::ResizeReset(), and VariableSubMatrixHandler::SetSparse().

449 {
450  DEBUGCOUT("Entering RotAccel::AssJac()" << std::endl);
451 
452  /* Casting di WorkMat */
453  SparseSubMatrixHandler& WM = WorkMat.SetSparse();
454  WM.ResizeReset(6, 0);
455 
456  /* Indici delle equazioni */
457  integer iFirstColIndex = pStrNode->iGetFirstColIndex();
458  integer iAbstractIndex = pAbsNode->iGetFirstIndex()+1;
459  integer iFirstIndex = iGetFirstIndex()+1;
460 
461  WM.PutItem(1, iAbstractIndex, iAbstractIndex, dCoef);
462  WM.PutItem(2, iAbstractIndex, iFirstIndex, -1.);
463  WM.PutItem(3, iFirstIndex, iFirstIndex, dCoef);
464 
465  Vec3 tmp = pStrNode->GetRCurr()*Dir;
466  WM.PutItem(4, iFirstIndex, iFirstColIndex+4, tmp.dGet(1));
467  WM.PutItem(5, iFirstIndex, iFirstColIndex+5, tmp.dGet(2));
468  WM.PutItem(6, iFirstIndex, iFirstColIndex+6, tmp.dGet(3));
469 
470  return WorkMat;
471 }
Definition: matvec3.h:98
virtual const Mat3x3 & GetRCurr(void) const
Definition: strnode.h:1012
void ResizeReset(integer iNewRow, integer iNewCol)
Definition: submat.cc:1084
const StructNode * pStrNode
void PutItem(integer iSubIt, integer iRow, integer iCol, const doublereal &dCoef)
Definition: submat.h:997
const doublereal & dGet(unsigned short int iRow) const
Definition: matvec3.h:285
#define DEBUGCOUT(msg)
Definition: myassert.h:232
const ScalarDifferentialNode * pAbsNode
SparseSubMatrixHandler & SetSparse(void)
Definition: submat.h:1178
virtual integer iGetFirstIndex(void) const
Definition: dofown.h:127
long int integer
Definition: colamd.c:51
virtual integer iGetFirstColIndex(void) const
Definition: node.cc:88

Here is the call graph for this function:

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

Implements Elem.

Definition at line 475 of file accelerometer.cc.

References a, DEBUGCOUT, ScalarDifferentialNode::dGetX(), Dir, Vec3::Dot(), StructNode::GetRCurr(), StructNode::GetWCurr(), DofOwnerOwner::iGetFirstIndex(), pAbsNode, pStrNode, VectorHandler::PutCoef(), SubVectorHandler::PutRowIndex(), and VectorHandler::Resize().

479 {
480  DEBUGCOUT("Entering RotAccel::AssRes()" << std::endl);
481 
482  /* Dimensiona e resetta la matrice di lavoro */
483  WorkVec.Resize(2);
484 
485  integer iAbstractIndex = pAbsNode->iGetFirstIndex() + 1;
486  integer iFirstIndex = iGetFirstIndex() + 1;
487 
488  WorkVec.PutRowIndex(1, iAbstractIndex);
489  WorkVec.PutRowIndex(2, iFirstIndex);
490 
491  Vec3 tmp = pStrNode->GetRCurr()*Dir;
492 
493  doublereal v = XCurr(iFirstIndex);
494  doublereal vp = XPrimeCurr(iFirstIndex);
495  doublereal a = pAbsNode->dGetX();
496 
497  WorkVec.PutCoef(1, vp - a);
498  WorkVec.PutCoef(2, tmp.Dot(pStrNode->GetWCurr()) - v);
499 
500  return WorkVec;
501 }
Definition: matvec3.h:98
virtual const Mat3x3 & GetRCurr(void) const
Definition: strnode.h:1012
doublereal Dot(const Vec3 &v) const
Definition: matvec3.h:243
const StructNode * pStrNode
virtual void PutRowIndex(integer iSubRow, integer iRow)=0
#define DEBUGCOUT(msg)
Definition: myassert.h:232
virtual const Vec3 & GetWCurr(void) const
Definition: strnode.h:1030
const ScalarDifferentialNode * pAbsNode
virtual void PutCoef(integer iRow, const doublereal &dCoef)=0
static const doublereal a
Definition: hfluid_.h:289
virtual integer iGetFirstIndex(void) const
Definition: dofown.h:127
double doublereal
Definition: colamd.c:52
long int integer
Definition: colamd.c:51
virtual void Resize(integer iNewSize)=0
virtual const doublereal & dGetX(void) const
Definition: node.h:386

Here is the call graph for this function:

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

Reimplemented from Elem.

Definition at line 208 of file accelerometer.h.

References pAbsNode, and pStrNode.

208  {
209  connectedNodes.resize(2);
210  connectedNodes[0] = pStrNode;
211  connectedNodes[1] = pAbsNode;
212  };
const StructNode * pStrNode
const ScalarDifferentialNode * pAbsNode
DofOrder::Order RotAccel::GetDofType ( unsigned int  i) const
virtual

Reimplemented from Elem.

Definition at line 510 of file accelerometer.cc.

References ASSERT, and DofOrder::DIFFERENTIAL.

511 {
512  ASSERT(i == 0);
513  return DofOrder::DIFFERENTIAL;
514 }
#define ASSERT(expression)
Definition: colamd.c:977
virtual Electric::Type RotAccel::GetElectricType ( void  ) const
inlinevirtual

Implements Electric.

Definition at line 176 of file accelerometer.h.

References Electric::ACCELEROMETER.

176  {
178  };
unsigned int RotAccel::iGetNumDof ( void  ) const
virtual

Reimplemented from Elem.

Definition at line 504 of file accelerometer.cc.

505 {
506  return 1;
507 }
std::ostream & RotAccel::Restart ( std::ostream &  out) const
virtual

Implements Elem.

Definition at line 433 of file accelerometer.cc.

References Dir, WithLabel::GetLabel(), pAbsNode, pStrNode, Electric::Restart(), and Vec3::Write().

434 {
435  Electric::Restart(out) << ", accelerometer, rotational, "
436  << pStrNode->GetLabel() << ", "
437  << pAbsNode->GetLabel() << ", "
438  "reference, node, ", Dir.Write(out, ", ") << ';'
439  << std::endl;
440  return out;
441 }
std::ostream & Write(std::ostream &out, const char *sFill=" ") const
Definition: matvec3.cc:738
const StructNode * pStrNode
const ScalarDifferentialNode * pAbsNode
virtual std::ostream & Restart(std::ostream &out) const
Definition: elec.cc:65
unsigned int GetLabel(void) const
Definition: withlab.cc:62

Here is the call graph for this function:

void RotAccel::SetInitialValue ( VectorHandler X)
virtual

Initialize state vector used in initial assembly. May set internal states of the element. Do not rely on being always called, because initial assembly could be implicitly or explicitly skipped

Reimplemented from DofOwnerOwner.

Definition at line 524 of file accelerometer.cc.

References NO_OP.

525 {
526  NO_OP;
527 }
#define NO_OP
Definition: myassert.h:74
void RotAccel::SetValue ( DataManager pDM,
VectorHandler X,
VectorHandler ,
SimulationEntity::Hints ph = 0 
)
virtual

Reimplemented from SimulationEntity.

Definition at line 530 of file accelerometer.cc.

References Dir, grad::Dot(), StructNode::GetRCurr(), StructNode::GetWCurr(), DofOwnerOwner::iGetFirstIndex(), pStrNode, and VectorHandler::PutCoef().

533 {
535  X.PutCoef(iGetFirstIndex() + 1, v);
536 }
virtual const Mat3x3 & GetRCurr(void) const
Definition: strnode.h:1012
const StructNode * pStrNode
virtual const Vec3 & GetWCurr(void) const
Definition: strnode.h:1030
DotTraits< VectorExprLhs, VectorExprRhs, N_rows, N_rows >::ExpressionType Dot(const VectorExpression< VectorExprLhs, N_rows > &u, const VectorExpression< VectorExprRhs, N_rows > &v)
Definition: matvec.h:3133
virtual void PutCoef(integer iRow, const doublereal &dCoef)=0
virtual integer iGetFirstIndex(void) const
Definition: dofown.h:127
double doublereal
Definition: colamd.c:52

Here is the call graph for this function:

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

Implements Elem.

Definition at line 517 of file accelerometer.cc.

518 {
519  *piNumRows = 2;
520  *piNumCols = 5;
521 }

Member Data Documentation

Vec3 RotAccel::Dir
private

Definition at line 167 of file accelerometer.h.

Referenced by AssJac(), AssRes(), Restart(), and SetValue().

const ScalarDifferentialNode* RotAccel::pAbsNode
private

Definition at line 166 of file accelerometer.h.

Referenced by AssJac(), AssRes(), GetConnectedNodes(), Restart(), and RotAccel().

const StructNode* RotAccel::pStrNode
private

Definition at line 165 of file accelerometer.h.

Referenced by AssJac(), AssRes(), GetConnectedNodes(), Restart(), RotAccel(), and SetValue().


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