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

#include <genel_.h>

Inheritance diagram for GenelSpring:
Collaboration diagram for GenelSpring:

Public Member Functions

 GenelSpring (unsigned int uLabel, const DofOwner *pDO, const ConstitutiveLaw1D *pCL, const ScalarDof &sd1, const ScalarDof &sd2, flag fOutput)
 
virtual ~GenelSpring (void)
 
virtual std::ostream & Restart (std::ostream &out) const
 
virtual void AfterConvergence (const VectorHandler &X, const VectorHandler &XP)
 
virtual Genel::Type GetGenelType (void) const
 
virtual void WorkSpaceDim (integer *piNumRows, integer *piNumCols) const
 
virtual VariableSubMatrixHandlerAssJac (VariableSubMatrixHandler &WorkMat, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
virtual SubVectorHandlerAssRes (SubVectorHandler &WorkVec, doublereal dCoef, const VectorHandler &XCurr, const VectorHandler &XPrimeCurr)
 
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 void SetValue (DataManager *pDM, VectorHandler &X, VectorHandler &XP, SimulationEntity::Hints *h=0)
 
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, const VectorHandler &XPP)
 
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 Genel
 Genel (unsigned int uL, const DofOwner *pDO, flag fOut)
 
virtual ~Genel (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
 
virtual void SetInitialValue (VectorHandler &X)
 
- Public Member Functions inherited from ConstitutiveLawOwner< T, Tder >
 ConstitutiveLawOwner (const ConstitutiveLaw< T, Tder > *pCL)
 
virtual ~ConstitutiveLawOwner (void)
 
ConstitutiveLaw< T, Tder > * pGetConstLaw (void) const
 
void Update (const T &Eps, const T &EpsPrime=mb_zero< T >())
 
void AfterConvergence (const T &Eps, const T &EpsPrime=mb_zero< T >())
 
const T & GetF (void) const
 
const Tder & GetFDE (void) const
 
const Tder & GetFDEPrime (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 DofOrder::Order GetDofType (unsigned int i) const
 
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
 

Protected Attributes

ScalarDof SD1
 
ScalarDof SD2
 
doublereal dVal
 
- Protected Attributes inherited from WithLabel
unsigned int uLabel
 
std::string sName
 
- Protected Attributes inherited from ToBeOutput
flag fOutput
 
- Protected Attributes inherited from ConstitutiveLawOwner< T, Tder >
ConstitutiveLaw< T, Tder > * pConstLaw
 

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 Genel
enum  Type {
  UNKNOWN = -1, SWASHPLATE = 0, ROTORTRIM, CLAMP,
  DISTANCE, SPRING, SPRINGSUPPORT, CROSSSPRINGSUPPORT,
  SPRINGDAMPER, SPRINGDAMPERSUPPORT, CROSSSPRINGDAMPERSUPPORT, MASS,
  SCALARFILTER, STATESPACESISO, STATESPACEMIMO, LASTGENELTYPE
}
 

Detailed Description

Definition at line 162 of file genel_.h.

Constructor & Destructor Documentation

GenelSpring::GenelSpring ( unsigned int  uLabel,
const DofOwner pDO,
const ConstitutiveLaw1D pCL,
const ScalarDof sd1,
const ScalarDof sd2,
flag  fOutput 
)

Definition at line 373 of file genel_.cc.

References NO_OP.

379 : Elem(uLabel, fOutput),
380 Genel(uLabel, pDO, fOutput),
381 ConstitutiveLaw1DOwner(pCL), SD1(sd1), SD2(sd2), dVal(0.)
382 {
383  NO_OP;
384 }
flag fOutput
Definition: output.h:658
ScalarDof SD2
Definition: genel_.h:166
#define NO_OP
Definition: myassert.h:74
ScalarDof SD1
Definition: genel_.h:165
ConstitutiveLawOwner< doublereal, doublereal > ConstitutiveLaw1DOwner
Definition: constltp.h:378
doublereal dVal
Definition: genel_.h:168
unsigned int uLabel
Definition: withlab.h:44
Genel(unsigned int uL, const DofOwner *pDO, flag fOut)
Definition: genel.cc:44
Elem(unsigned int uL, flag fOut)
Definition: elem.cc:41
GenelSpring::~GenelSpring ( void  )
virtual

Definition at line 386 of file genel_.cc.

References ScalarDof::pNode, SAFEDELETE, SD1, and SD2.

387 {
388  const Node2Scalar *pn2s;
389 
390  pn2s = dynamic_cast<const Node2Scalar *>(SD1.pNode);
391  if (pn2s) {
392  SAFEDELETE(pn2s);
393  }
394 
395  pn2s = dynamic_cast<const Node2Scalar *>(SD2.pNode);
396  if (pn2s) {
397  SAFEDELETE(pn2s);
398  }
399 }
ScalarNode * pNode
Definition: node.h:708
ScalarDof SD2
Definition: genel_.h:166
ScalarDof SD1
Definition: genel_.h:165
#define SAFEDELETE(pnt)
Definition: mynewmem.h:710

Member Function Documentation

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

Reimplemented from SimulationEntity.

Definition at line 409 of file genel_.cc.

References ConstitutiveLawOwner< T, Tder >::AfterConvergence(), and dVal.

411 {
413 }
doublereal dVal
Definition: genel_.h:168
void AfterConvergence(const T &Eps, const T &EpsPrime=mb_zero< T >())
Definition: constltp.h:288

Here is the call graph for this function:

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

Implements Elem.

Definition at line 432 of file genel_.cc.

References DEBUGCOUT, ConstitutiveLawOwner< T, Tder >::GetFDE(), Node::iGetFirstColIndex(), Node::iGetFirstRowIndex(), ScalarDof::iOrder, ScalarDof::pNode, FullSubMatrixHandler::PutCoef(), FullSubMatrixHandler::PutColIndex(), FullSubMatrixHandler::PutRowIndex(), FullSubMatrixHandler::ResizeReset(), SD1, SD2, and VariableSubMatrixHandler::SetFull().

436 {
437  DEBUGCOUT("Entering GenelSpring::AssJac()" << std::endl);
438 
439  FullSubMatrixHandler& WM = WorkMat.SetFull();
440  WM.ResizeReset(2, 2);
441 
442  integer iNode1RowIndex = SD1.pNode->iGetFirstRowIndex() + 1;
443  integer iNode1ColIndex = SD1.pNode->iGetFirstColIndex() + 1;
444  integer iNode2RowIndex = SD2.pNode->iGetFirstRowIndex() + 1;
445  integer iNode2ColIndex = SD2.pNode->iGetFirstColIndex() + 1;
446 
447  WM.PutRowIndex(1, iNode1RowIndex);
448  WM.PutColIndex(1, iNode1ColIndex);
449  WM.PutRowIndex(2, iNode2RowIndex);
450  WM.PutColIndex(2, iNode2ColIndex);
451 
452  doublereal dFDE = GetFDE();
453 
454  if (SD1.iOrder == 1) {
455  WM.PutCoef(1, 1, dFDE);
456  WM.PutCoef(2, 1, -dFDE);
457  } else {
458  WM.PutCoef(1, 1, dFDE*dCoef);
459  WM.PutCoef(2, 1, -dFDE*dCoef);
460  }
461 
462  if (SD2.iOrder == 1) {
463  WM.PutCoef(1, 2, -dFDE);
464  WM.PutCoef(2, 2, dFDE);
465  } else {
466  WM.PutCoef(1, 2, -dFDE*dCoef);
467  WM.PutCoef(2, 2, dFDE*dCoef);
468  }
469 
470  return WorkMat;
471 }
ScalarNode * pNode
Definition: node.h:708
void PutColIndex(integer iSubCol, integer iCol)
Definition: submat.h:325
FullSubMatrixHandler & SetFull(void)
Definition: submat.h:1168
int iOrder
Definition: node.h:710
const Tder & GetFDE(void) const
Definition: constltp.h:298
void PutCoef(integer iRow, integer iCol, const doublereal &dCoef)
Definition: submat.h:672
ScalarDof SD2
Definition: genel_.h:166
ScalarDof SD1
Definition: genel_.h:165
#define DEBUGCOUT(msg)
Definition: myassert.h:232
virtual integer iGetFirstRowIndex(void) const
Definition: node.cc:82
virtual void ResizeReset(integer, integer)
Definition: submat.cc:182
void PutRowIndex(integer iSubRow, integer iRow)
Definition: submat.h:311
double doublereal
Definition: colamd.c:52
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 & GenelSpring::AssRes ( SubVectorHandler WorkVec,
doublereal  dCoef,
const VectorHandler XCurr,
const VectorHandler XPrimeCurr 
)
virtual

Implements Elem.

Definition at line 475 of file genel_.cc.

References DEBUGCOUT, Node::dGetDofValue(), dVal, ConstitutiveLawOwner< T, Tder >::GetF(), Node::iGetFirstRowIndex(), ScalarDof::iOrder, ScalarDof::pNode, SubVectorHandler::PutItem(), VectorHandler::ResizeReset(), SD1, SD2, and ConstitutiveLawOwner< T, Tder >::Update().

479 {
480  DEBUGCOUT("Entering GenelSpring::AssRes()" << std::endl);
481 
482  WorkVec.ResizeReset(2);
483 
484  integer iNode1RowIndex = SD1.pNode->iGetFirstRowIndex()+1;
485  integer iNode2RowIndex = SD2.pNode->iGetFirstRowIndex()+1;
486 
487  doublereal dVal1 = SD1.pNode->dGetDofValue(1, SD1.iOrder);
488  doublereal dVal2 = SD2.pNode->dGetDofValue(1, SD2.iOrder);
489 
490  dVal = dVal2 - dVal1;
492 
493  doublereal d = GetF();
494 
495  WorkVec.PutItem(1, iNode1RowIndex, d);
496  WorkVec.PutItem(2, iNode2RowIndex, -d);
497 
498  return WorkVec;
499 }
ScalarNode * pNode
Definition: node.h:708
virtual const doublereal & dGetDofValue(int iDof, int iOrder=0) const =0
virtual void ResizeReset(integer)
Definition: vh.cc:55
int iOrder
Definition: node.h:710
ScalarDof SD2
Definition: genel_.h:166
virtual void PutItem(integer iSubRow, integer iRow, const doublereal &dCoef)
Definition: submat.h:1445
ScalarDof SD1
Definition: genel_.h:165
#define DEBUGCOUT(msg)
Definition: myassert.h:232
virtual integer iGetFirstRowIndex(void) const
Definition: node.cc:82
doublereal dVal
Definition: genel_.h:168
const T & GetF(void) const
Definition: constltp.h:293
double doublereal
Definition: colamd.c:52
long int integer
Definition: colamd.c:51
void Update(const T &Eps, const T &EpsPrime=mb_zero< T >())
Definition: constltp.h:283

Here is the call graph for this function:

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

Reimplemented from Elem.

Definition at line 505 of file genel_.cc.

References ScalarDof::pNode, SD1, and SD2.

505  {
506  connectedNodes.resize(2);
507  connectedNodes[0] = SD1.pNode;
508  connectedNodes[1] = SD2.pNode;
509 }
ScalarNode * pNode
Definition: node.h:708
ScalarDof SD2
Definition: genel_.h:166
ScalarDof SD1
Definition: genel_.h:165
Genel::Type GenelSpring::GetGenelType ( void  ) const
virtual

Implements Genel.

Definition at line 417 of file genel_.cc.

References Genel::SPRING.

418 {
419  return Genel::SPRING;
420 }
std::ostream & GenelSpring::Restart ( std::ostream &  out) const
virtual

Implements Elem.

Definition at line 403 of file genel_.cc.

404 {
405  return out;
406 }
void GenelSpring::WorkSpaceDim ( integer piNumRows,
integer piNumCols 
) const
virtual

Implements Elem.

Definition at line 424 of file genel_.cc.

425 {
426  *piNumRows = 2;
427  *piNumCols = 2;
428 }

Member Data Documentation

doublereal GenelSpring::dVal
protected

Definition at line 168 of file genel_.h.

Referenced by AfterConvergence(), and AssRes().

ScalarDof GenelSpring::SD1
protected

Definition at line 165 of file genel_.h.

Referenced by AssJac(), AssRes(), GetConnectedNodes(), and ~GenelSpring().

ScalarDof GenelSpring::SD2
protected

Definition at line 166 of file genel_.h.

Referenced by AssJac(), AssRes(), GetConnectedNodes(), and ~GenelSpring().


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