All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Pages
Public Member Functions | Public Attributes | Protected Member Functions | Protected Attributes | Private Attributes | List of all members
MBSimFlexibleBody::FlexibleBodyFFR Class Reference

Flexible body using a floating frame of reference formulation. More...

#include <flexible_body_ffr.h>

Inheritance diagram for MBSimFlexibleBody::FlexibleBodyFFR:
MBSim::Body MBSim::Object MBSim::Element fmatvec::Atom

Public Member Functions

 FlexibleBodyFFR (const std::string &name="")
 
virtual ~FlexibleBodyFFR ()
 destructor
 
void updatedq ()
 
void updateqd ()
 
void updateT ()
 
void updateh (int j=0)
 
void updateM ()
 
void updateGeneralizedCoordinates ()
 
void updatePositions ()
 
void updateVelocities ()
 
void updateAccelerations ()
 
void updateJacobians ()
 
void updateGyroscopicAccelerations ()
 
void updateNodalPositions ()
 
void updateNodalStresses ()
 
void updatePositions (MBSim::Frame *frame)
 
void updateVelocities (MBSim::Frame *frame)
 
void updateAccelerations (MBSim::Frame *frame)
 
void updateJacobians (MBSim::Frame *frame, int j=0)
 
void updateGyroscopicAccelerations (MBSim::Frame *frame)
 
void updateJacobians0 (MBSim::Frame *frame)
 
void updateJacobians1 (MBSim::Frame *frame)
 
void updateMb ()
 
void updatehb ()
 
void updateKJ (int j=0)
 
void updateKJ0 ()
 
void updateKJ1 ()
 
virtual void calcqSize ()
 
virtual void calcuSize (int j=0)
 
virtual void updateqRef (const fmatvec::Vec &ref)
 
virtual void updateuRef (const fmatvec::Vec &ref)
 
virtual void updateudRef (const fmatvec::Vec &ref)
 
virtual void init (InitStage stage)
 
virtual void initz ()
 
virtual void updateLLM ()
 
virtual void setUpInverseKinetics ()
 
virtual std::string getType () const
 
virtual void plot ()
 
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 setCoordinateTransformationForRotation (bool ct)
 
void setBodyFixedRepresentationOfAngularVelocity (bool bf)
 
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...
 
double getMass () const
 
MBSim::FramegetFrameK ()
 
void setMass (double m_)
 Set mass. More...
 
void setPositionIntegral (const fmatvec::Vec3 &rdm_)
 
void setPositionPositionIntegral (const fmatvec::SymMat3 &rrdm_)
 
void setShapeFunctionIntegral (const fmatvec::Mat3xV &Pdm_)
 
void setPositionShapeFunctionIntegral (const std::vector< fmatvec::Mat3xV > &rPdm_)
 
void setShapeFunctionShapeFunctionIntegral (const std::vector< std::vector< fmatvec::SqrMatV > > &PPdm_)
 
void setStiffnessMatrix (const fmatvec::SymMatV &Ke0_)
 
void setDampingMatrix (const fmatvec::SymMatV &De0_)
 
void setProportionalDamping (const fmatvec::Vec2 &beta_)
 
void setNonlinearStiffnessMatrixOfFirstOrder (const std::vector< fmatvec::SqrMatV > &Knl1_)
 
void setNonlinearStiffnessMatrixOfSecondOrder (const std::vector< std::vector< fmatvec::SqrMatV > > &Knl2_)
 
void setInitialStressIntegral (const fmatvec::VecV &ksigma0_)
 
void setNonlinearInitialStressIntegral (const fmatvec::SqrMatV &ksigma1_)
 
void setGeometricStiffnessMatrixDueToAcceleration (const std::vector< fmatvec::SqrMatV > &K0t_)
 
void setGeometricStiffnessMatrixDueToAngularAcceleration (const std::vector< fmatvec::SqrMatV > &K0r_)
 
void setGeometricStiffnessMatrixDueToAngularVelocity (const std::vector< fmatvec::SqrMatV > &K0om_)
 
void setRelativeNodalPosition (const fmatvec::VecV &r)
 
void setRelativeNodalOrientation (const fmatvec::MatVx3 &A)
 
void setShapeMatrixOfTranslation (const fmatvec::MatV &Phi_)
 
void setShapeMatrixOfRotation (const fmatvec::MatV &Psi_)
 
void setStressMatrix (const fmatvec::MatV &sigmahel_)
 
void setNonlinearStressMatrix (const std::vector< fmatvec::MatV > &sigmahen_)
 
void setInitialStress (const fmatvec::VecV &sigma0_)
 
void setGeometricStiffnessMatrixDueToForce (const std::vector< fmatvec::SqrMatV > &K0F_)
 
void setGeometricStiffnessMatrixDueToMoment (const std::vector< fmatvec::SqrMatV > &K0M_)
 
void addFrame (FixedNodalFrame *frame)
 
 BOOST_PARAMETER_MEMBER_FUNCTION ((void), enableOpenMBV, MBSim::tag,(optional(nodes,(const std::vector< MBSim::Index > &), std::vector< MBSim::Index >())(indices,(const std::vector< MBSim::Index > &), std::vector< MBSim::Index >())(minimalColorValue,(double), 0)(maximalColorValue,(double), 0)))
 
 BOOST_PARAMETER_MEMBER_FUNCTION ((void), enableOpenMBVWeight, MBSim::tag,(optional(scaleLength,(double), 1)(scaleSize,(double), 1)(referencePoint,(OpenMBV::Arrow::ReferencePoint), OpenMBV::Arrow::toPoint)(diffuseColor,(const fmatvec::Vec3 &),"[-1;1;1]")(transparency,(double), 0)))
 Visualize the weight.
 
 BOOST_PARAMETER_MEMBER_FUNCTION ((void), enableOpenMBVJointForce, MBSim::tag,(optional(scaleLength,(double), 1)(scaleSize,(double), 1)(referencePoint,(OpenMBV::Arrow::ReferencePoint), OpenMBV::Arrow::toPoint)(diffuseColor,(const fmatvec::Vec3 &),"[-1;1;1]")(transparency,(double), 0)))
 Visualize the joint force.
 
 BOOST_PARAMETER_MEMBER_FUNCTION ((void), enableOpenMBVJointMoment, MBSim::tag,(optional(scaleLength,(double), 1)(scaleSize,(double), 1)(referencePoint,(OpenMBV::Arrow::ReferencePoint), OpenMBV::Arrow::toPoint)(diffuseColor,(const fmatvec::Vec3 &),"[-1;1;1]")(transparency,(double), 0)))
 Visualize the joint moment.
 
virtual void initializeUsingXML (xercesc::DOMElement *element)
 
fmatvec::VecgetqRel (bool check=true)
 
fmatvec::VecgetuRel (bool check=true)
 
fmatvec::MatgetTRel (bool check=true)
 
void setqRel (const fmatvec::Vec &q)
 
void setuRel (const fmatvec::Vec &u)
 
int getqRelSize () const
 
int getuRelSize (int i=0) const
 
bool transformCoordinates () const
 
void resetUpToDate ()
 
const fmatvec::VecevalqRel ()
 
const fmatvec::VecevaluRel ()
 
const fmatvec::VecV & evalqTRel ()
 
const fmatvec::VecV & evalqRRel ()
 
const fmatvec::VecV & evaluTRel ()
 
const fmatvec::VecV & evaluRRel ()
 
const fmatvec::MatevalTRel ()
 
const fmatvec::Vec3 & evalGlobalRelativePosition ()
 
const fmatvec::Vec3 & evalGlobalRelativeVelocity ()
 
const fmatvec::Vec3 & evalGlobalRelativeAngularVelocity ()
 
const fmatvec::Vec3 & evalPjbT ()
 
const fmatvec::Vec3 & evalPjbR ()
 
const fmatvec::Mat3xV & evalPJTT ()
 
const fmatvec::Mat3xV & evalPJRR ()
 
const fmatvec::SymMatV & evalMb ()
 
const fmatvec::VecV & evalhb ()
 
const fmatvec::MatV & evalKJ (int j=0)
 
const fmatvec::VecV & evalKi ()
 
- Public Member Functions inherited from MBSim::Body
 Body (const std::string &name)
 
virtual void closePlot ()
 
virtual void setDynamicSystemSolver (DynamicSystemSolver *sys)
 
virtual ContourgetContour (const std::string &name, bool check=true) const
 
virtual FramegetFrame (const std::string &name, bool check=true) const
 
virtual FramegetFrameOfReference ()
 
virtual const FramegetFrameOfReference () const
 
virtual void setFrameOfReference (Frame *frame)
 
int frameIndex (const Frame *frame_) const
 
int contourIndex (const Contour *contour_) const
 
virtual ElementgetChildByContainerAndName (const std::string &container, const std::string &name) const
 
 Object (const std::string &name)
 
virtual void updateqdRef (const fmatvec::Vec &qdRef)
 
virtual void updatedqRef (const fmatvec::Vec &dqRef)
 
virtual void updateuallRef (const fmatvec::Vec &uallRef)
 
virtual void updateduRef (const fmatvec::Vec &duRef)
 
virtual void updateudallRef (const fmatvec::Vec &udallRef)
 
virtual void updatehRef (const fmatvec::Vec &hRef, int i=0)
 
virtual void updatedhdqRef (const fmatvec::Mat &dhdqRef, int i=0)
 
virtual void updatedhduRef (const fmatvec::SqrMat &dhduRef, int i=0)
 
virtual void updatedhdtRef (const fmatvec::Vec &dhdtRef, int i=0)
 
virtual void updaterRef (const fmatvec::Vec &ref, int i=0)
 
virtual void updaterdtRef (const fmatvec::Vec &ref)
 
virtual void updateTRef (const fmatvec::Mat &ref)
 
virtual void updateMRef (const fmatvec::SymMat &ref)
 
virtual void updateLLMRef (const fmatvec::SymMat &ref)
 
virtual void writez (H5::GroupBase *group)
 
virtual void readz0 (H5::GroupBase *group)
 
virtual double evalKineticEnergy ()
 
virtual double evalPotentialEnergy ()
 
- Public Member Functions inherited from fmatvec::Atom
Atomoperator= (const Atom &)
 
void setMessageStreamActive (MsgType type, bool active)
 
void getMessageStream (MsgType type, std::shared_ptr< bool > &a, std::shared_ptr< std::ostream > &s)
 
void adoptMessageStreams (const Atom *src=NULL)
 
std::ostream & msg (MsgType type)
 
bool msgAct (MsgType type)
 

Public Attributes

void(FlexibleBodyFFR::* updateKJ_ [2])()
 

Protected Member Functions

void updateMConst ()
 update constant mass matrix
 
void updateMNotConst ()
 update time dependend mass matrix
 
void updateLLMConst ()
 Cholesky decomposition of constant mass matrix.
 
void updateLLMNotConst ()
 Cholesky decomposition of time dependent mass matrix.
 
void determineSID ()
 
void prefillMassMatrix ()
 
- Protected Member Functions inherited from MBSim::Body
virtual void addFrame (Frame *frame)
 
virtual void addContour (Contour *contour)
 
- Protected Member Functions inherited from fmatvec::Atom
 Atom (const Atom &src)
 

Protected Attributes

double m
 
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::Vec2 beta
 
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
 
fmatvec::SqrMat3 Id
 
std::vector< fmatvec::Vec3 > KrKP
 
std::vector< fmatvec::Vec3 > WrOP
 
std::vector< fmatvec::Vec3 > disp
 
std::vector< fmatvec::SqrMat3 > ARP
 
std::vector< fmatvec::SqrMat3 > AWK
 
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::Vector
< fmatvec::Fixed< 6 >, double > > 
sigma
 
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
 
MBSim::FrameK
 
fmatvec::SymMat Mbuf
 TODO.
 
bool coordinateTransformation
 boolean to use body fixed Frame for rotation
 
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
 
MBSim::Function< fmatvec::Vec3(fmatvec::VecV,
double)> * 
fPrPK
 translation from parent Frame to kinematic Frame in parent system
 
MBSim::Function
< fmatvec::RotMat3(fmatvec::VecV,
double)> * 
fAPK
 rotation from kinematic Frame to parent Frame
 
void(FlexibleBodyFFR::* updateM_ )()
 function pointer to update mass matrix
 
void(FlexibleBodyFFR::* updateLLM_ )()
 function pointer for Cholesky decomposition of mass matrix
 
void(FlexibleBodyFFR::* updateJacobians_ [2])(MBSim::Frame *frame)
 
fmatvec::Vec aT
 
fmatvec::Vec aR
 
fmatvec::Vec qRel
 
fmatvec::Vec uRel
 
fmatvec::Mat TRel
 
fmatvec::VecV qTRel
 
fmatvec::VecV qRRel
 
fmatvec::VecV uTRel
 
fmatvec::VecV uRRel
 
fmatvec::Mat3xV WJTrel
 
fmatvec::Mat3xV WJRrel
 
fmatvec::Mat3xV PJTT
 
fmatvec::Mat3xV PJRR
 
int nu [2]
 
int nq
 
MBSim::FrameframeForJacobianOfRotation
 
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
 
bool constJT
 
bool constJR
 
bool constjT
 
bool constjR
 
bool updPjb
 
bool updGC
 
bool updT
 
bool updMb
 
bool updKJ [2]
 
bool updNodalPos
 
bool updNodalStress
 
fmatvec::SymMatV M_
 
fmatvec::VecV h_
 
fmatvec::MatV KJ [2]
 
fmatvec::VecV Ki
 
bool bodyFixedRepresentationOfAngularVelocity
 
- Protected Attributes inherited from MBSim::Body
std::vector< Frame * > frame
 
FrameR
 
fmatvec::Mat3xV PJT [2]
 
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
 

Private Attributes

MBSim::FrameopenMBVFrame
 Frame of reference for drawing openMBVBody.
 
std::shared_ptr< OpenMBV::ArrowFWeight
 
std::shared_ptr< OpenMBV::ArrowFArrow
 
std::shared_ptr< OpenMBV::ArrowMArrow
 
std::vector< MBSim::Index > ombvNodes
 
std::vector< MBSim::Index > ombvIndices
 

Additional Inherited Members

- Public Types inherited from fmatvec::Atom
enum  MsgType
 
- Static Public Member Functions inherited from fmatvec::Atom
static void setCurrentMessageStream (MsgType type, const std::shared_ptr< bool > &a=std::make_shared< bool >(true), const std::shared_ptr< std::ostream > &s=std::make_shared< std::ostream >(std::cout.rdbuf()))
 
static std::ostream & msgStatic (MsgType type)
 
static bool msgActStatic (MsgType type)
 

Detailed Description

Flexible body using a floating frame of reference formulation.

Member Function Documentation

MBSim::Function<fmatvec::RotMat3(fmatvec::VecV, double)>* MBSimFlexibleBody::FlexibleBodyFFR::getRotation ( )
inline

get Kinematic for rotational motion

Returns
rotational kinematic description
MBSim::Function<fmatvec::Vec3(fmatvec::VecV, double)>* MBSimFlexibleBody::FlexibleBodyFFR::getTranslation ( )
inline

get Kinematic for translational motion

Returns
translational kinematic description
void MBSimFlexibleBody::FlexibleBodyFFR::setGeneralRotation ( MBSim::Function< fmatvec::RotMat3(fmatvec::VecV, double)> *  fAPK_)
inline

set Kinematic for general rotational motion

Parameters
fAPKrotational kinematic description
void MBSimFlexibleBody::FlexibleBodyFFR::setGeneralTranslation ( MBSim::Function< fmatvec::Vec3(fmatvec::VecV, double)> *  fPrPK_)
inline

set Kinematic for genral translational motion

Parameters
fPrPKtranslational kinematic description
void MBSimFlexibleBody::FlexibleBodyFFR::setMass ( double  m_)
inline

Set mass.

Set the mass of the flexible body.

Parameters
mThe mass of the body
void MBSimFlexibleBody::FlexibleBodyFFR::setStateDependentRotation ( MBSim::Function< fmatvec::RotMat3(fmatvec::VecV)> *  fAPK_)
inline

set Kinematic for only state dependent rotational motion

Parameters
fAPKrotational kinematic description
void MBSimFlexibleBody::FlexibleBodyFFR::setStateDependentTranslation ( MBSim::Function< fmatvec::Vec3(fmatvec::VecV)> *  fPrPK_)
inline

set Kinematic for only state dependent translational motion

Parameters
fPrPKtranslational kinematic description
void MBSimFlexibleBody::FlexibleBodyFFR::setTimeDependentRotation ( MBSim::Function< fmatvec::RotMat3(double)> *  fAPK_)
inline

set Kinematic for only time dependent rotational motion

Parameters
fAPKrotational kinematic description
void MBSimFlexibleBody::FlexibleBodyFFR::setTimeDependentTranslation ( MBSim::Function< fmatvec::Vec3(double)> *  fPrPK_)
inline

set Kinematic for only time dependent translational motion

Parameters
fPrPKtranslational kinematic description

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

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML