mbsimflexiblebody 4.0.0 MBSim Flexible Body Module

Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
MBSimFlexibleBody::GenericFlexibleFfrBody Class Reference

Generic flexible body using a floating frame of reference formulation. More...

`#include <generic_flexible_ffr_body.h>`

Inheritance diagram for MBSimFlexibleBody::GenericFlexibleFfrBody:
[legend]

## Public Types

enum | GeneralizedVelocityOfRotation { derivativeOfGeneralizedPositionOfRotation =0, coordinatesOfAngularVelocityWrtFrameOfReference, coordinatesOfAngularVelocityWrtFrameForKinematics, unknown }
Public Types inherited from MBSim::Element
enum | InitStage

## Public Member Functions

| GenericFlexibleFfrBody (const std::string &name="")
| ~GenericFlexibleFfrBody () override
| destructor
void | updateqd () override
void | updateT () override
void | updateh (int j=0) override
void | updateM () override
void | updateGeneralizedPositions () override
void | updateGeneralizedVelocities () override
void | updateDerivativeOfGeneralizedPositions () override
void | updateGeneralizedAccelerations () override
void | updatePositions ()
void | updateVelocities ()
void | updateAccelerations ()
void | updateJacobians () override
void | updateGyroscopicAccelerations ()
void | updatePositions (MBSim::Frame *frame) override
void | updateVelocities (MBSim::Frame *frame) override
void | updateAccelerations (MBSim::Frame *frame) override
void | updateJacobians (MBSim::Frame *frame, int j=0) override
void | updateGyroscopicAccelerations (MBSim::Frame *frame) override
void | updateJacobians0 (MBSim::Frame *frame)
void | updateJacobians1 (MBSim::Frame *frame)
void | updateMb ()
void | updateKJ (int j=0)
void | updateKJ0 ()
void | updateKJ1 ()
void | calcSize () override
void | calcqSize () override
void | calcuSize (int j=0) override
void | init (InitStage stage, const MBSim::InitConfigSet &config) override
void | setUpInverseKinetics () override
void | plot () override
int | getNumberOfModeShapes ()
void | setGeneralTranslation (MBSim::Function< fmatvec::Vec3(fmatvec::VecV, double)> *fPrPK_)
| set Kinematic for genral translational motion More...
void | setTimeDependentTranslation (MBSim::Function< fmatvec::Vec3(double)> *fPrPK_)
| set Kinematic for only time dependent translational motion More...
void | setStateDependentTranslation (MBSim::Function< fmatvec::Vec3(fmatvec::VecV)> *fPrPK_)
| set Kinematic for only state dependent translational motion More...
void | setTranslation (MBSim::Function< fmatvec::Vec3(fmatvec::VecV, double)> *fPrPK_)
void | setTranslation (MBSim::Function< fmatvec::Vec3(double)> *fPrPK_)
void | setTranslation (MBSim::Function< fmatvec::Vec3(fmatvec::VecV)> *fPrPK_)
void | setGeneralRotation (MBSim::Function< fmatvec::RotMat3(fmatvec::VecV, double)> *fAPK_)
| set Kinematic for general rotational motion More...
void | setTimeDependentRotation (MBSim::Function< fmatvec::RotMat3(double)> *fAPK_)
| set Kinematic for only time dependent rotational motion More...
void | setStateDependentRotation (MBSim::Function< fmatvec::RotMat3(fmatvec::VecV)> *fAPK_)
| set Kinematic for only state dependent rotational motion More...
void | setRotation (MBSim::Function< fmatvec::RotMat3(fmatvec::VecV, double)> *fAPK_)
void | setRotation (MBSim::Function< fmatvec::RotMat3(double)> *fAPK_)
void | setRotation (MBSim::Function< fmatvec::RotMat3(fmatvec::VecV)> *fAPK_)
void | setTranslationDependentRotation (bool dep)
void | setGeneralizedVelocityOfRotation (GeneralizedVelocityOfRotation generalizedVelocityOfRotation_)
MBSim::Function< fmatvec::Vec3(fmatvec::VecV, double)> * | getTranslation ()
| get Kinematic for translational motion More...
MBSim::Function< fmatvec::RotMat3(fmatvec::VecV, double)> * | getRotation ()
| get Kinematic for rotational motion More...
MBSim::Frame * | getFrameK ()
const fmatvec::Vec3 & | getNodalRelativePosition (int i) const
const fmatvec::SqrMat3 & | getNodalRelativeOrientation (int i) const
const fmatvec::Mat3xV & | getNodalShapeMatrixOfTranslation (int i) const
const fmatvec::Mat3xV & | getNodalShapeMatrixOfRotation (int i) const
void | initializeUsingXML (xercesc::DOMElement *element) override
void | setqRel (const fmatvec::VecV &q)
void | setuRel (const fmatvec::VecV &u)
bool | transformCoordinates () const
void | resetUpToDate () override
const fmatvec::VecV & | evalqTRel ()
const fmatvec::VecV & | evalqRRel ()
const fmatvec::VecV & | evalqERel ()
const fmatvec::VecV & | evaluTRel ()
const fmatvec::VecV & | evaluRRel ()
const fmatvec::VecV & | evaluERel ()
const fmatvec::VecV & | evalqdTRel ()
const fmatvec::VecV & | evalqdRRel ()
const fmatvec::VecV & | evalqdERel ()
const fmatvec::VecV & | evaludERel ()
const fmatvec::Vec3 & | evalGlobalRelativePosition ()
const fmatvec::Vec3 & | evalGlobalRelativeVelocity ()
const fmatvec::Vec3 & | evalGlobalRelativeAngularVelocity ()
const fmatvec::Mat3xV & | evalPJTT ()
const fmatvec::Mat3xV & | evalPJRR ()
const fmatvec::Vec3 & | evalPjhT ()
const fmatvec::Vec3 & | evalPjhR ()
const fmatvec::Vec3 & | evalPjbT ()
const fmatvec::Vec3 & | evalPjbR ()
const fmatvec::SymMatV & | evalMb ()
const fmatvec::VecV & | evalhb ()
const fmatvec::MatV & | evalKJ (int j=0)
const fmatvec::VecV & | evalKi ()
const fmatvec::Vec3 & | evalGlobalRelativePosition (int i)
const fmatvec::Vec3 & | evalGlobalRelativeAngularVelocity (int i)
fmatvec::Vec3 & | getGlobalRelativeVelocity (bool check=true)
fmatvec::SqrMat3 & | getRelativeOrientation (bool check=true)
fmatvec::Vec3 & | getPjbT (bool check=true)
fmatvec::Vec3 & | getPjbR (bool check=true)
fmatvec::VecV & | getqTRel (bool check=true)
fmatvec::VecV & | getqRRel (bool check=true)
fmatvec::VecV & | getqERel (bool check=true)
fmatvec::VecV & | getuTRel (bool check=true)
fmatvec::VecV & | getuRRel (bool check=true)
fmatvec::VecV & | getuERel (bool check=true)
fmatvec::VecV & | getqdTRel (bool check=true)
fmatvec::VecV & | getqdRRel (bool check=true)
fmatvec::VecV & | getqdERel (bool check=true)
fmatvec::VecV & | getudERel (bool check=true)
fmatvec::Vec3 & | getNodalRelativeVelocity (int i, bool check=true)
void | updateStresses (int i) override
void | updatePositions (int i) override
void | updateVelocities (int i) override
void | updateAccelerations (int i) override
void | updateJacobians (int i, int j=0) override
void | updateGyroscopicAccelerations (int i) override
void | addFrame (NodeBasedFrame *frame)
Public Member Functions inherited from MBSimFlexibleBody::NodeBasedBody
| NodeBasedBody (const std::string &name)
void | resetUpToDate () override
const fmatvec::Vec3 & | evalNodalPosition (int i)
const fmatvec::Vec3 & | evalNodalVelocity (int i)
const fmatvec::Vec3 & | evalNodalAcceleration (int i)
const fmatvec::Mat3xV & | evalNodalJacobianOfTranslation (int i, int j=0)
const fmatvec::Vec3 & | evalNodalGyroscopicAccelerationOfTranslation (int i)
const fmatvec::Vec3 & | evalNodalDisplacement (int i)
const fmatvec::Vector< fmatvec::Fixed< 6 >, double > & | evalNodalStress (int i)
fmatvec::SqrMat3 & | getNodalOrientation (int i, bool check=true)
fmatvec::Vec3 & | getNodalAngularVelocity (int i, bool check=true)
fmatvec::Vec3 & | getNodalAngularAcceleration (int i, bool check=true)
fmatvec::Mat3xV & | getNodalJacobianOfRotation (int i, int j=0, bool check=true)
fmatvec::Vec3 & | getNodalGyroscopicAccelerationOfRotation (int i, bool check=true)
void | addFrame (NodeBasedFrame *frame)
void | init (InitStage stage, const MBSim::InitConfigSet &config) override
int | getNumberOfNodes ()
int | getNodeIndex (int nodeNumber) const
Public Member Functions inherited from MBSim::Body
| Body (const std::string &name)
void | setDynamicSystemSolver (DynamicSystemSolver *sys) override
void | init (InitStage stage, const InitConfigSet &config) override
void | createPlotGroup () override
virtual Contour * | getContour (const std::string &name, bool check=true) const
virtual Frame * | getFrame (const std::string &name, bool check=true) const
virtual Frame * | getFrameOfReference ()
virtual const Frame * | getFrameOfReference () const
virtual void | setFrameOfReference (Frame *frame)
int | frameIndex (const Frame *frame_) const
int | contourIndex (const Contour *contour_) const
Element * | getChildByContainerAndName (const std::string &container, const std::string &name) const override
virtual void | addFrame (Frame *frame)
virtual void | addContour (Contour *contour)
Public Member Functions inherited from MBSim::Object
| Object (const std::string &name)
virtual void | updateqRef (fmatvec::Vec &qRef)
virtual void | updateqdRef (fmatvec::Vec &qdRef)
virtual void | updatedqRef (fmatvec::Vec &dqRef)
virtual void | updateuRef (fmatvec::Vec &uRef)
virtual void | updateuallRef (fmatvec::Vec &uallRef)
virtual void | updateudRef (fmatvec::Vec &udRef)
virtual void | updateduRef (fmatvec::Vec &duRef)
virtual void | updateudallRef (fmatvec::Vec &udallRef)
virtual void | updatehRef (fmatvec::Vec &hRef, int i=0)
virtual void | updatedhdqRef (fmatvec::Mat &dhdqRef, int i=0)
virtual void | updatedhduRef (fmatvec::SqrMat &dhduRef, int i=0)
virtual void | updatedhdtRef (fmatvec::Vec &dhdtRef, int i=0)
virtual void | updaterRef (fmatvec::Vec &ref, int i=0)
virtual void | updaterdtRef (fmatvec::Vec &ref)
virtual void | updateTRef (fmatvec::Mat &ref)
virtual void | updateMRef (fmatvec::SymMat &ref)
virtual void | updateLLMRef (fmatvec::SymMat &ref)
void | init (InitStage stage, const InitConfigSet &config) override
virtual void | initz ()
virtual void | writez (H5::GroupBase *group)
virtual void | readz0 (H5::GroupBase *group)
virtual void | updateLLM ()
void | createPlotGroup () override
Public Member Functions inherited from MBSim::Element
| Element (const std::string &name)
virtual void | plotAtSpecialEvent ()
const std::string & | getName () const
void | setName (const std::string &str)
DynamicSystemSolver * | getDynamicSystemSolver ()
H5::GroupBase * | getPlotGroup ()
bool | getPlotFeature (const PlotFeatureEnum &pf)
virtual void | setPlotFeature (const PlotFeatureEnum &pf, bool value)
void | setPlotFeatureForChildren (const PlotFeatureEnum &pf, bool value)
void | setPlotFeatureRecursive (const PlotFeatureEnum &pf, bool value)
void | setPlotAttribute (const std::string &name, const T &value)
T * | getByPath (const std::string &path, bool initialCaller=true) const
std::string | getPath (const Element *relTo=nullptr, std::string sep="/") const
std::vector< Element * > | getDependencies () const
int | computeLevel ()

## Static Public Member Functions

template<class T >
static std::vector< T > | getCellArray1D (xercesc::DOMElement *element)
template<class T >
static std::vector< T > | getCellArray1D (int m, const typename BaseType< T >::type &A)
template<class T >
static std::vector< std::vector< T > > | getCellArray2D (xercesc::DOMElement *element)
template<class T >
static std::vector< std::vector< T > > | getCellArray2D (int m, int N, const typename BaseType< T >::type &A)

## Public Attributes

void(GenericFlexibleFfrBody::* | updateKJ_ [2])()
Public Attributes inherited from MBSim::Element
| resolveStringRef
| preInit
| plotting
| unknownStage

## Protected Member Functions

void | assemble ()
void | prefillMassMatrix ()

## Protected Attributes

double | m {0}
fmatvec::Vec3 | rdm
fmatvec::SymMat3 | rrdm
fmatvec::SymMat3 | mmi0
fmatvec::Mat3xV | Pdm
std::vector< std::vector< fmatvec::SqrMatV > > | PPdm
std::vector< std::vector< fmatvec::SqrMatV > > | Knl2
std::vector< std::vector< fmatvec::SqrMatV > > | Ke2
std::vector< fmatvec::Mat3xV > | rPdm
std::vector< std::vector< fmatvec::SqrMat3 > > | mmi2
std::vector< std::vector< fmatvec::SqrMat3 > > | Gr1
std::vector< fmatvec::SqrMatV > | Knl1
std::vector< fmatvec::SqrMatV > | K0t
std::vector< fmatvec::SqrMatV > | K0r
std::vector< fmatvec::SqrMatV > | K0om
std::vector< fmatvec::SqrMatV > | Ct1
std::vector< fmatvec::SqrMatV > | Cr1
std::vector< fmatvec::SqrMatV > | Ge
std::vector< fmatvec::SqrMatV > | Oe1
std::vector< fmatvec::SqrMatV > | Ke1
std::vector< fmatvec::SqrMatV > | De1
fmatvec::VecV | ksigma0
fmatvec::SqrMatV | ksigma1
std::vector< fmatvec::SymMat3 > | mmi1
fmatvec::MatVx3 | Ct0
fmatvec::MatVx3 | Cr0
fmatvec::SymMatV | Me
fmatvec::SymMatV | Ke0
fmatvec::SymMatV | De0
std::vector< fmatvec::SqrMat3 > | Gr0
fmatvec::Matrix< fmatvec::General, fmatvec::Var, fmatvec::Fixed< 6 >, double > | Oe0
std::vector< fmatvec::Vec3 > | KrKP
std::vector< fmatvec::Vec3 > | WrRP
std::vector< fmatvec::Vec3 > | Wvrel
std::vector< fmatvec::Vec3 > | Womrel
std::vector< fmatvec::SqrMat3 > | ARP
std::vector< fmatvec::Mat3xV > | Phi
std::vector< fmatvec::Mat3xV > | Psi
std::vector< std::vector< fmatvec::SqrMatV > > | K0F
std::vector< std::vector< fmatvec::SqrMatV > > | K0M
std::vector< fmatvec::Vector< fmatvec::Fixed< 6 >, double > > | sigma0
std::vector< fmatvec::Matrix< fmatvec::General, fmatvec::Fixed< 6 >, fmatvec::Var, double > > | sigmahel
std::vector< std::vector< fmatvec::Matrix< fmatvec::General, fmatvec::Fixed< 6 >, fmatvec::Var, double > > > | sigmahen
int | ne {0}
MBSim::Frame * | K
fmatvec::Vec3 | PjhT
fmatvec::Vec3 | PjhR
fmatvec::Vec3 | PjbT
fmatvec::Vec3 | PjbR
fmatvec::SqrMat3 | APK
| rotation matrix from kinematic Frame to parent Frame
fmatvec::Vec3 | PrPK
| translation from parent to kinematic Frame in parent and world system
fmatvec::Vec3 | WrPK
fmatvec::Vec3 | WvPKrel
| translational and angular velocity from parent to kinematic Frame in world system
fmatvec::Vec3 | WomPK
MBSim::Function< fmatvec::MatV(fmatvec::VecV)> * | fTR {nullptr}
MBSim::Function< fmatvec::Vec3(fmatvec::VecV, double)> * | fPrPK {nullptr}
| translation from parent Frame to kinematic Frame in parent system
MBSim::Function< fmatvec::RotMat3(fmatvec::VecV, double)> * | fAPK {nullptr}
| rotation from kinematic Frame to parent Frame
void(GenericFlexibleFfrBody::* | updateJacobians_ [2])(MBSim::Frame *frame)
fmatvec::Vec | aT
fmatvec::Vec | aR
fmatvec::VecV | qTRel
fmatvec::VecV | qRRel
fmatvec::VecV | qERel
fmatvec::VecV | uTRel
fmatvec::VecV | uRRel
fmatvec::VecV | uERel
fmatvec::VecV | qdTRel
fmatvec::VecV | qdRRel
fmatvec::VecV | qdERel
fmatvec::VecV | udERel
fmatvec::Mat3xV | WJTrel
fmatvec::Mat3xV | WJRrel
fmatvec::Mat3xV | PJTT
fmatvec::Mat3xV | PJRR
MBSim::Frame * | frameForJacobianOfRotation {nullptr}
fmatvec::Range< fmatvec::Var, fmatvec::Var > | i02
fmatvec::Range< fmatvec::Var, fmatvec::Var > | iqT
fmatvec::Range< fmatvec::Var, fmatvec::Var > | iqR
fmatvec::Range< fmatvec::Var, fmatvec::Var > | iqE
fmatvec::Range< fmatvec::Var, fmatvec::Var > | iuT
fmatvec::Range< fmatvec::Var, fmatvec::Var > | iuR
fmatvec::Range< fmatvec::Var, fmatvec::Var > | iuE
bool | translationDependentRotation {false}
bool | constJT {false}
bool | constJR {false}
bool | constjT {false}
bool | constjR {false}
bool | updPjb {true}
bool | updGC {true}
bool | updMb {true}
bool | updKJ [2]
fmatvec::SymMatV | M_
fmatvec::VecV | h_
fmatvec::MatV | KJ [2]
fmatvec::VecV | Ki
GeneralizedVelocityOfRotation | generalizedVelocityOfRotation {derivativeOfGeneralizedPositionOfRotation}
OpenMBVFlexibleBody::ColorRepresentation | ombvColorRepresentation {OpenMBVFlexibleBody::none}
std::vector< int > | plotNodes
std::vector< int > | visuNodes
Protected Attributes inherited from MBSimFlexibleBody::NodeBasedBody
std::vector< fmatvec::Vec3 > | WrOP
std::vector< fmatvec::Vec3 > | WvP
std::vector< fmatvec::Vec3 > | Wom
std::vector< fmatvec::Vec3 > | WaP
std::vector< fmatvec::Vec3 > | Wpsi
std::vector< fmatvec::Vec3 > | WjP
std::vector< fmatvec::Vec3 > | WjR
std::vector< fmatvec::Vec3 > | disp
std::vector< fmatvec::SqrMat3 > | AWK
std::vector< fmatvec::Mat3xV > | WJP [2]
std::vector< fmatvec::Mat3xV > | WJR [2]
std::vector< bool > | updNodalPos
std::vector< bool > | updNodalVel
std::vector< bool > | updNodalAcc
std::vector< bool > | updNodalGA
std::vector< bool > | updNodalStress
std::vector< bool > | updNodalJac [2]
std::vector< fmatvec::Vector< fmatvec::Fixed< 6 >, double > > | sigma
int | nn {0}
std::vector< int > | nodeMap
std::vector< int > | nodeNumbers
Protected Attributes inherited from MBSim::Body
std::vector< Frame * > | frame
Frame * | R
fmatvec::Mat3xV | PJT [2]
Protected Attributes inherited from MBSim::Object
int | qSize
int | uSize [2]
int | hSize [2]
int | qInd
fmatvec::Vec | q
fmatvec::Vec | q0
fmatvec::Vec | qd
fmatvec::Vec | h [2]
fmatvec::Mat | dhdq
fmatvec::Mat | T
fmatvec::SymMat | M
fmatvec::SymMat | LLM
Protected Attributes inherited from MBSim::Element
std::string | name
std::string | path
MBXMLUtils::DOMEvalException | domEvalError
DynamicSystemSolver * | ds
H5::VectorSerie< double > * | plotVectorSerie
std::vector< double > | plotVector
std::vector< std::string > | plotColumns
H5::GroupBase * | plotGroup
std::vector< Element * > | dependency
PlotFeatureMap | plotFeature

## Private Member Functions

double | evalNone (int i)
double | evalXDisplacement (int i)
double | evalYDisplacement (int i)
double | evalZDisplacement (int i)
double | evalTotalDisplacement (int i)
double | evalXXStress (int i)
double | evalYYStress (int i)
double | evalZZStress (int i)
double | evalXYStress (int i)
double | evalYZStress (int i)
double | evalZXStress (int i)
double | evalEquivalentStress (int i)

## Private Attributes

double(GenericFlexibleFfrBody::* | evalOMBVColorRepresentation [12])(int i)

## Detailed Description

Generic flexible body using a floating frame of reference formulation.

## Member Function Documentation

## ◆ addFrame()

void MBSimFlexibleBody::NodeBasedBody::addFrame

Parameters

  node | frame

## ◆ getRotation()

MBSim::Function<fmatvec::RotMat3(fmatvec::VecV, double)>* MBSimFlexibleBody::GenericFlexibleFfrBody::getRotation | ( |  | ) |

inline

get Kinematic for rotational motion

Returns
  rotational kinematic description

## ◆ getTranslation()

MBSim::Function<fmatvec::Vec3(fmatvec::VecV, double)>* MBSimFlexibleBody::GenericFlexibleFfrBody::getTranslation | ( |  | ) |

inline

get Kinematic for translational motion

Returns
  translational kinematic description

## ◆ setGeneralRotation()

void MBSimFlexibleBody::GenericFlexibleFfrBody::setGeneralRotation | ( | MBSim::Function< fmatvec::RotMat3(fmatvec::VecV, double)> * | fAPK_ | ) |

inline

set Kinematic for general rotational motion

Parameters

  fAPK | rotational kinematic description

## ◆ setGeneralTranslation()

void MBSimFlexibleBody::GenericFlexibleFfrBody::setGeneralTranslation | ( | MBSim::Function< fmatvec::Vec3(fmatvec::VecV, double)> * | fPrPK_ | ) |

inline

set Kinematic for genral translational motion

Parameters

  fPrPK | translational kinematic description

## ◆ setStateDependentRotation()

void MBSimFlexibleBody::GenericFlexibleFfrBody::setStateDependentRotation | ( | MBSim::Function< fmatvec::RotMat3(fmatvec::VecV)> * | fAPK_ | ) |

inline

set Kinematic for only state dependent rotational motion

Parameters

  fAPK | rotational kinematic description

## ◆ setStateDependentTranslation()

void MBSimFlexibleBody::GenericFlexibleFfrBody::setStateDependentTranslation | ( | MBSim::Function< fmatvec::Vec3(fmatvec::VecV)> * | fPrPK_ | ) |

inline

set Kinematic for only state dependent translational motion

Parameters

  fPrPK | translational kinematic description

## ◆ setTimeDependentRotation()

void MBSimFlexibleBody::GenericFlexibleFfrBody::setTimeDependentRotation | ( | MBSim::Function< fmatvec::RotMat3(double)> * | fAPK_ | ) |

inline

set Kinematic for only time dependent rotational motion

Parameters

  fAPK | rotational kinematic description

## ◆ setTimeDependentTranslation()

void MBSimFlexibleBody::GenericFlexibleFfrBody::setTimeDependentTranslation | ( | MBSim::Function< fmatvec::Vec3(double)> * | fPrPK_ | ) |

inline

set Kinematic for only time dependent translational motion

Parameters

  fPrPK | translational kinematic description

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

- /mbsim-env/mbsim/modules/mbsimFlexibleBody/mbsimFlexibleBody/flexible_body/generic_flexible_ffr_body.h
- /mbsim-env/mbsim/modules/mbsimFlexibleBody/mbsimFlexibleBody/flexible_body/generic_flexible_ffr_body.cc