mbsim  4.0.0
MBSim Kernel
MBSim::Frame Class Reference

cartesian frame on bodies used for application of e.g. links and loads More...

#include <frame.h>

Inheritance diagram for MBSim::Frame:
[legend]

Public Member Functions

 Frame (const std::string &name="dummy")
 constructor More...
 
 ~Frame () override=default
 destructor
 
void init (InitStage stage, const InitConfigSet &config) override
 plots time series header More...
 
void plot () override
 plots time dependent data More...
 
int gethSize (int i=0) const
 
int gethInd (int i=0) const
 
void sethSize (int size, int i=0)
 
void sethInd (int ind, int i=0)
 
const fmatvec::Vec3 & getPosition (bool check=true) const
 
fmatvec::Vec3 & getPosition (bool check=true)
 
void setPosition (const fmatvec::Vec3 &v)
 
const fmatvec::Vec3 & evalPosition ()
 
const fmatvec::SqrMat3 & getOrientation (bool check=true) const
 
fmatvec::SqrMat3 & getOrientation (bool check=true)
 
void setOrientation (const fmatvec::SqrMat3 &AWP_)
 
const fmatvec::SqrMat3 & evalOrientation ()
 
const fmatvec::Vec3 & getVelocity (bool check=true) const
 
fmatvec::Vec3 & getVelocity (bool check=true)
 
void setVelocity (const fmatvec::Vec3 &v)
 
const fmatvec::Vec3 & evalVelocity ()
 
const fmatvec::Vec3 & getAngularVelocity (bool check=true) const
 
fmatvec::Vec3 & getAngularVelocity (bool check=true)
 
void setAngularVelocity (const fmatvec::Vec3 &omega)
 
const fmatvec::Vec3 & evalAngularVelocity ()
 
const fmatvec::Vec3 & getAcceleration (bool check=true) const
 
fmatvec::Vec3 & getAcceleration (bool check=true)
 
void setAcceleration (const fmatvec::Vec3 &a)
 
const fmatvec::Vec3 & evalAcceleration ()
 
const fmatvec::Vec3 & getAngularAcceleration (bool check=true) const
 
fmatvec::Vec3 & getAngularAcceleration (bool check=true)
 
void setAngularAcceleration (const fmatvec::Vec3 &psi)
 
const fmatvec::Vec3 & evalAngularAcceleration ()
 
const fmatvec::Mat3xV & getJacobianOfTranslation (int j=0, bool check=true) const
 
fmatvec::Mat3xV & getJacobianOfTranslation (int j=0, bool check=true)
 
void setJacobianOfTranslation (const fmatvec::Mat3xV &WJP_, int j=0)
 
const fmatvec::Mat3xV & evalJacobianOfTranslation (int j=0)
 
const fmatvec::Mat3xV & getJacobianOfRotation (int j=0, bool check=true) const
 
fmatvec::Mat3xV & getJacobianOfRotation (int j=0, bool check=true)
 
void setJacobianOfRotation (const fmatvec::Mat3xV &WJR_, int j=0)
 
const fmatvec::Mat3xV & evalJacobianOfRotation (int j=0)
 
const fmatvec::Vec3 & getGyroscopicAccelerationOfTranslation (bool check=true) const
 
fmatvec::Vec3 & getGyroscopicAccelerationOfTranslation (bool check=true)
 
void setGyroscopicAccelerationOfTranslation (const fmatvec::Vec3 &WjP_)
 
const fmatvec::Vec3 & evalGyroscopicAccelerationOfTranslation ()
 
const fmatvec::Vec3 & getGyroscopicAccelerationOfRotation (bool check=true) const
 
fmatvec::Vec3 & getGyroscopicAccelerationOfRotation (bool check=true)
 
void setGyroscopicAccelerationOfRotation (const fmatvec::Vec3 &WjR_)
 
const fmatvec::Vec3 & evalGyroscopicAccelerationOfRotation ()
 
void initializeUsingXML (xercesc::DOMElement *element) override
 
 BOOST_PARAMETER_MEMBER_FUNCTION ((void), enableOpenMBV, tag,(optional(size,(double), 1)(offset,(double), 1)(path,(bool), false)(transparency,(double), 0)(pointSize,(double), 0)(lineWidth,(double), 0)))
 
void setOpenMBVFrame (const std::shared_ptr< OpenMBV::Frame > &frame)
 
std::shared_ptr< OpenMBV::Frame > & getOpenMBVFrame ()
 
void resetUpToDate () override
 
virtual void resetPositionsUpToDate ()
 
virtual void resetVelocitiesUpToDate ()
 
virtual void resetJacobiansUpToDate ()
 
virtual void resetGyroscopicAccelerationsUpToDate ()
 
virtual void updatePositions ()
 
virtual void updateVelocities ()
 
virtual void updateAccelerations ()
 
virtual void updateJacobians (int j=0)
 
virtual void updateGyroscopicAccelerations ()
 
void createPlotGroup () override
 creates the plotGroup for H5-output More...
 
- Public Member Functions inherited from MBSim::Element
 Element (const std::string &name)
 constructor
 
 ~Element () override=default
 destructor
 
void throwError (const std::string &msg) const
 
virtual void setDynamicSystemSolver (DynamicSystemSolver *sys)
 sets the used dynamics system solver to the element More...
 
virtual void plot ()
 plots time dependent data More...
 
virtual void plotAtSpecialEvent ()
 plots time dependent data at special events More...
 
const std::string & getName () const
 
void setName (const std::string &str)
 
void setPath (const std::string &str)
 
DynamicSystemSolvergetDynamicSystemSolver ()
 
virtual void init (InitStage stage, const InitConfigSet &config=InitConfigSet())
 plots time series header More...
 
virtual void createPlotGroup ()
 creates the plotGroup for H5-output More...
 
H5::GroupBasegetPlotGroup ()
 
virtual H5::GroupBasegetFramesPlotGroup ()
 
virtual H5::GroupBasegetContoursPlotGroup ()
 
virtual H5::GroupBasegetGroupsPlotGroup ()
 
virtual H5::GroupBasegetObjectsPlotGroup ()
 
virtual H5::GroupBasegetLinksPlotGroup ()
 
virtual H5::GroupBasegetConstraintsPlotGroup ()
 
virtual H5::GroupBasegetObserversPlotGroup ()
 
bool getPlotFeature (const PlotFeatureEnum &pf)
 
virtual void setPlotFeature (const PlotFeatureEnum &pf, bool value)
 Set a plot feature. More...
 
void setPlotFeatureForChildren (const PlotFeatureEnum &pf, bool value)
 Set a plot feature for the children of this object. More...
 
void setPlotFeatureRecursive (const PlotFeatureEnum &pf, bool value)
 Set a plot feature for this object and the children of this object. More...
 
template<class T >
void setPlotAttribute (const std::string &name, const T &value)
 Set a plot attribute: static data attached as key/value pairs to the plot datasets/groups.
 
void setPlotAttribute (const std::string &name)
 
virtual void initializeUsingXML (xercesc::DOMElement *element)
 
template<class T >
T * getByPath (const std::string &path, bool initialCaller=true) const
 Get the object of type T represented by the path path. Do not set any argurment other than path!
 
std::string getPath (const Element *relTo=nullptr, std::string sep="/") const
 Return the path of this object. If relativeTo is not NULL return a relative path to relativeTo. Do not set any argurment other than relTo and sep!
 
virtual ElementgetChildByContainerAndName (const std::string &container, const std::string &name) const
 Get the Element named name in the container named container. More...
 
virtual std::shared_ptr< OpenMBV::GroupgetOpenMBVGrp ()
 
virtual std::shared_ptr< OpenMBV::GroupgetFramesOpenMBVGrp ()
 
virtual std::shared_ptr< OpenMBV::GroupgetContoursOpenMBVGrp ()
 
virtual std::shared_ptr< OpenMBV::GroupgetGroupsOpenMBVGrp ()
 
virtual std::shared_ptr< OpenMBV::GroupgetObjectsOpenMBVGrp ()
 
virtual std::shared_ptr< OpenMBV::GroupgetLinksOpenMBVGrp ()
 
virtual std::shared_ptr< OpenMBV::GroupgetConstraintsOpenMBVGrp ()
 
virtual std::shared_ptr< OpenMBV::GroupgetObserversOpenMBVGrp ()
 
virtual ElementgetParent ()
 
virtual const ElementgetParent () const
 
virtual void setParent (Element *parent_)
 
std::vector< Element * > getDependencies () const
 checks dependency on other elements. More...
 
void addDependency (Element *ele)
 
int computeLevel ()
 computes the length of the pathes in the graph that represents the dependencies between all elements. More...
 
virtual void updatePositions (Frame *frame)
 
virtual void updateVelocities (Frame *frame)
 
virtual void updateAccelerations (Frame *frame)
 
virtual void updateJacobians (Frame *frame, int j=0)
 
virtual void updateGyroscopicAccelerations (Frame *frame)
 
virtual void resetUpToDate ()
 
const double & getTime () const
 
double getStepSize () const
 
const MBXMLUtils::DOMEvalExceptiongetDOMEvalError () const
 

Protected Attributes

int hSize [2]
 size and index of right hand side
 
int hInd [2]
 
fmatvec::Vec3 WrOP
 position of coordinate system in inertial frame of reference
 
fmatvec::SqrMat3 AWP
 transformation matrix in inertial frame of reference
 
fmatvec::Vec3 WvP
 velocity and angular velocity of coordinate system in inertial frame of reference
 
fmatvec::Vec3 WomegaP
 
fmatvec::Mat3xV WJP [3]
 Jacobians of translation and rotation from coordinate system to inertial frame.
 
fmatvec::Mat3xV WJR [3]
 
fmatvec::Vec3 WjP
 
fmatvec::Vec3 WjR
 
fmatvec::Vec3 WaP
 acceleration and angular acceleration of coordinate system in inertial frame of reference
 
fmatvec::Vec3 WpsiP
 
std::shared_ptr< OpenMBV::FrameopenMBVFrame
 
bool updJac [3]
 
bool updGA {true}
 
bool updPos {true}
 
bool updVel {true}
 
bool updAcc {true}
 
- Protected Attributes inherited from MBSim::Element
Elementparent { nullptr }
 
std::string name
 name of element
 
std::string path
 The path of this object. Is set during the init stage reorganizeHierarchy. Before this the path is calculated dynamically using getPath() after this stage getPath just returns this value.
 
MBXMLUtils::DOMEvalException domEvalError
 Special XML helper variable.
 
DynamicSystemSolverds { nullptr }
 dynamic system
 
H5::VectorSerie< double > * plotVectorSerie { nullptr }
 time series
 
std::vector< double > plotVector
 one entry of time series
 
std::vector< std::string > plotColumns
 columns of time series
 
H5::GroupBaseplotGroup { nullptr }
 associated plot group
 
std::vector< Element * > dependency
 vector containing all dependencies.
 
PlotFeatureMap plotFeature
 plot feature
 
PlotFeatureMap plotFeatureForChildren
 
std::map< std::string, std::variant< std::monostate, int, double, std::string, std::vector< int >, std::vector< double >, std::vector< std::vector< double > > > > plotAttribute
 

Additional Inherited Members

- Public Types inherited from MBSim::Element
enum  InitStage {
  resolveStringRef =0 , preInit , plotting , unknownStage ,
  LASTINITSTAGE
}
 The stages of the initialization. More...
 
- Protected Member Functions inherited from MBSim::Element
void updatePlotFeatures ()
 
void addToPlot (const std::string &name)
 
void addToPlot (const std::string &name, int size)
 
void addToPlot (const std::string &name, const std::vector< std::string > &iname)
 
template<class AT >
void plot (const AT &x)
 
template<class Type , class AT >
void plot (const fmatvec::Vector< Type, AT > &x)
 

Detailed Description

cartesian frame on bodies used for application of e.g. links and loads

Author
Martin Foerg
Date
2009-03-19 some comments (Thorsten Schindler)
2009-04-08 stationary frame (Thorsten Schindler)
2009-07-06 deleted stationary frame (Thorsten Schindler)

Constructor & Destructor Documentation

◆ Frame()

MBSim::Frame::Frame ( const std::string &  name = "dummy")

constructor

Parameters
nameof coordinate system

Member Function Documentation

◆ createPlotGroup()

void MBSim::Frame::createPlotGroup ( )
overridevirtual

creates the plotGroup for H5-output

Reimplemented from MBSim::Element.

◆ init()

void MBSim::Frame::init ( InitStage  stage,
const InitConfigSet &  config 
)
overridevirtual

plots time series header

Parameters
invocingparent class

Reimplemented from MBSim::Element.

◆ initializeUsingXML()

void MBSim::Frame::initializeUsingXML ( xercesc::DOMElement *  element)
overridevirtual

Reimplemented from MBSim::Element.

◆ plot()

void MBSim::Frame::plot ( )
overridevirtual

plots time dependent data

Parameters
simulationtime
simulationtime step size for derivative calculation

Reimplemented from MBSim::Element.

◆ resetUpToDate()

void MBSim::Frame::resetUpToDate ( )
overridevirtual

Reimplemented from MBSim::Element.

Member Data Documentation

◆ WjP

fmatvec::Vec3 MBSim::Frame::WjP
protected

translational and rotational acceleration not linear in the generalised velocity derivatives


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