Flexible body using a floating frame of reference formulation. More...
#include <flexible_body_ffr.h>
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::Frame * | getFrameK () |
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::Vec & | getqRel (bool check=true) |
fmatvec::Vec & | getuRel (bool check=true) |
fmatvec::Mat & | getTRel (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::Vec & | evalqRel () |
const fmatvec::Vec & | evaluRel () |
const fmatvec::VecV & | evalqTRel () |
const fmatvec::VecV & | evalqRRel () |
const fmatvec::VecV & | evaluTRel () |
const fmatvec::VecV & | evaluRRel () |
const fmatvec::Mat & | evalTRel () |
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 () |
![]() | |
Body (const std::string &name) | |
virtual void | closePlot () |
virtual void | setDynamicSystemSolver (DynamicSystemSolver *sys) |
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 |
virtual Element * | getChildByContainerAndName (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 () |
![]() | |
Atom & | operator= (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 () |
![]() | |
virtual void | addFrame (Frame *frame) |
virtual void | addContour (Contour *contour) |
![]() | |
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::Frame * | K |
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::Frame * | frameForJacobianOfRotation |
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 |
![]() | |
std::vector< Frame * > | frame |
Frame * | R |
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::Frame * | openMBVFrame |
Frame of reference for drawing openMBVBody. | |
std::shared_ptr< OpenMBV::Arrow > | FWeight |
std::shared_ptr< OpenMBV::Arrow > | FArrow |
std::shared_ptr< OpenMBV::Arrow > | MArrow |
std::vector< MBSim::Index > | ombvNodes |
std::vector< MBSim::Index > | ombvIndices |
Additional Inherited Members | |
![]() | |
enum | MsgType |
![]() | |
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) |
Flexible body using a floating frame of reference formulation.
|
inline |
get Kinematic for rotational motion
|
inline |
get Kinematic for translational motion
|
inline |
set Kinematic for general rotational motion
fAPK | rotational kinematic description |
|
inline |
set Kinematic for genral translational motion
fPrPK | translational kinematic description |
|
inline |
Set mass.
Set the mass of the flexible body.
m | The mass of the body |
|
inline |
set Kinematic for only state dependent rotational motion
fAPK | rotational kinematic description |
|
inline |
set Kinematic for only state dependent translational motion
fPrPK | translational kinematic description |
|
inline |
set Kinematic for only time dependent rotational motion
fAPK | rotational kinematic description |
|
inline |
set Kinematic for only time dependent translational motion
fPrPK | translational kinematic description |