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

base class for all mechanical bodies with mass and generalised coordinates More...

#include <body.h>

Inheritance diagram for MBSim::Body:
MBSim::Object MBSim::Element fmatvec::Atom MBSim::RigidBody

Public Member Functions

 Body (const std::string &name)
 constructor More...
 
virtual ~Body ()
 destructor
 
void setInitialGeneralizedPosition (const fmatvec::Vec &q0_)
 
void setInitialGeneralizedVelocity (const fmatvec::Vec &u0_)
 
void setInitialGeneralizedPosition (double q0_)
 
void setInitialGeneralizedVelocity (double u0_)
 
void sethSize (int hSize_, int i=0)
 
void sethInd (int hInd_, int i=0)
 
virtual void plot (double t, double dt=1)
 plots time dependent data More...
 
virtual void closePlot ()
 closes plot file
 
virtual std::string getType () const
 
virtual void setDynamicSystemSolver (DynamicSystemSolver *sys)
 sets the used dynamics system solver to the element More...
 
virtual void init (InitStage stage)
 initialize object at start of simulation with respect to contours and frames
 
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)
 
const std::vector< Frame * > & getFrames () const
 
const std::vector< Contour * > & getContours () const
 
int frameIndex (const Frame *frame_) const
 
int contourIndex (const Contour *contour_) const
 
virtual void initializeUsingXML (xercesc::DOMElement *element)
 
virtual xercesc::DOMElement * writeXMLFile (xercesc::DOMNode *element)
 
virtual ElementgetChildByContainerAndName (const std::string &container, const std::string &name) const
 Get the Element named name in the container named container.
 
fmatvec::Mat3xV & getPJT (int i=0)
 
fmatvec::Mat3xV & getPJR (int i=0)
 
int getuRelSize (int i=0) const
 
- Public Member Functions inherited from MBSim::Object
 Object (const std::string &name)
 constructor
 
virtual ~Object ()
 destructor
 
virtual void updateT (double t)
 
virtual void updateh (double t, int j=0)
 
virtual void updateM (double t, int i=0)
 
virtual void updatedhdz (double t)
 
virtual void updatedq (double t, double dt)
 
virtual void updatedu (double t, double dt)
 
virtual void updateud (double t, int i=0)
 
virtual void updateqd (double t)
 
virtual void updatezd (double t)
 
virtual int gethSize (int i=0) const
 
virtual int getqSize () const
 
virtual int getuSize (int i=0) const
 
virtual void calcqSize ()
 
virtual void calcuSize (int j)
 
virtual int getuInd (int i=0)
 
virtual void setqInd (int qInd_)
 
virtual void setuInd (int uInd_, int i=0)
 
virtual const fmatvec::Vecgetq () const
 
virtual const fmatvec::Vecgetu () const
 
virtual H5::GroupBasegetPlotGroup ()
 
virtual PlotFeatureStatus getPlotFeature (PlotFeature fp)
 
virtual PlotFeatureStatus getPlotFeatureForChildren (PlotFeature fp)
 
virtual void updateStateDependentVariables (double t)=0
 
virtual void updateStateDerivativeDependentVariables (double t)
 
virtual void updateJacobians (double t, int j=0)=0
 
virtual void updatehInverseKinetics (double t, int i=0)
 
virtual void updatedx (double t, double dt)
 
virtual void updatexd (double t)
 
virtual void calcxSize ()
 
virtual const fmatvec::Vecgetx () const
 
virtual fmatvec::Vecgetx ()
 
virtual void setxInd (int xInd_)
 
virtual int getxSize () const
 
virtual void updatexRef (const fmatvec::Vec &ref)
 
virtual void updatexdRef (const fmatvec::Vec &ref)
 
virtual void updateqRef (const fmatvec::Vec &qRef)
 references to positions of dynamic system parent More...
 
virtual void updateqdRef (const fmatvec::Vec &qdRef)
 references to differentiated positions of dynamic system parent More...
 
virtual void updateuRef (const fmatvec::Vec &uRef)
 references to velocities of dynamic system parent More...
 
virtual void updateuallRef (const fmatvec::Vec &uallRef)
 references to velocities of dynamic system parent More...
 
virtual void updateudRef (const fmatvec::Vec &udRef, int i=0)
 references to differentiated velocities of dynamic system parent More...
 
virtual void updateudallRef (const fmatvec::Vec &udallRef, int i=0)
 references to differentiated velocities of dynamic system parent More...
 
virtual void updatehRef (const fmatvec::Vec &hRef, int i=0)
 references to smooth force vector of dynamic system parent More...
 
virtual void updatedhdqRef (const fmatvec::Mat &dhdqRef, int i=0)
 references to object Jacobian for implicit integration of dynamic system parent regarding positions More...
 
virtual void updatedhduRef (const fmatvec::SqrMat &dhduRef, int i=0)
 references to object Jacobian for implicit integration of dynamic system parent regarding velocities More...
 
virtual void updatedhdtRef (const fmatvec::Vec &dhdtRef, int i=0)
 references to object Jacobian for implicit integration of dynamic system parent regarding time More...
 
virtual void updaterRef (const fmatvec::Vec &ref, int i=0)
 references to nonsmooth force vector of dynamic system parent More...
 
virtual void updateTRef (const fmatvec::Mat &ref)
 references to linear transformation matrix between differentiated positions and velocities of dynamic system parent More...
 
virtual void updateMRef (const fmatvec::SymMat &ref, int i=0)
 references to mass matrix of dynamic system parent More...
 
virtual void updateLLMRef (const fmatvec::SymMat &ref, int i=0)
 references to Cholesky decomposition of dynamic system parent More...
 
virtual void initz ()
 
virtual void writez (H5::GroupBase *group)
 writes its z-Vector to a subgroup of the given group
 
virtual void readz0 (H5::GroupBase *group)
 reads the z-Vector of a subgroup of the given group
 
virtual void facLLM (int i=0)
 perform Cholesky decomposition of mass martix
 
virtual void calcSize (int j)
 calculates size of right hand side More...
 
virtual double computeKineticEnergy ()
 
virtual double computePotentialEnergy ()
 
virtual void setUpInverseKinetics ()
 TODO.
 
void setqSize (int qSize_)
 
void setuSize (int uSize_, int i=0)
 
int getzSize () const
 
int gethInd (int i=0)
 
const fmatvec::Vecgeth (int i=0) const
 
fmatvec::Vecgeth (int i=0)
 
const fmatvec::Vecgetr (int i=0) const
 
fmatvec::Vecgetr (int i=0)
 
const fmatvec::SymMatgetM (int i=0) const
 
fmatvec::SymMatgetM (int i=0)
 
const fmatvec::MatgetT () const
 
fmatvec::MatgetT ()
 
const fmatvec::SymMatgetLLM (int i=0) const
 
fmatvec::SymMatgetLLM (int i=0)
 
fmatvec::Vecgetq ()
 
fmatvec::Vecgetu ()
 
const fmatvec::Vecgetq0 () const
 
const fmatvec::Vecgetu0 () const
 
fmatvec::Vecgetq0 ()
 
fmatvec::Vecgetu0 ()
 
const fmatvec::Vecgetqd () const
 
const fmatvec::Vecgetud (int i=0) const
 
fmatvec::Vecgetqd ()
 
fmatvec::Vecgetud (int i=0)
 
void setq (const fmatvec::Vec &q_)
 
void setu (const fmatvec::Vec &u_)
 
- Public Member Functions inherited from MBSim::Element
 Element (const std::string &name)
 constructor
 
virtual ~Element ()
 destructor
 
virtual void initDataInterfaceBase (DynamicSystemSolver *parentds)
 TODO.
 
virtual void plotAtSpecialEvent (double t, double dt=1)
 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 createPlotGroup ()
 creates the plotGroup for H5-output
 
H5::GroupBasegetPlotGroup ()
 
virtual void setPlotFeature (PlotFeature pf, PlotFeatureStatus value)
 Set a plot feature. More...
 
void setPlotFeatureForChildren (PlotFeature pf, PlotFeatureStatus value)
 Set a plot feature for the children of this object. More...
 
void setPlotFeatureRecursive (PlotFeature pf, PlotFeatureStatus value)
 Set a plot feature for this object and the children of this object. More...
 
PlotFeatureStatus getPlotFeature (PlotFeature pf)
 
PlotFeatureStatus getPlotFeatureForChildren (PlotFeature pf)
 
const std::vector
< MBXMLUtils::EmbedDOMLocator > & 
getLocationStack () const
 
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=NULL, 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 ElementgetParent ()
 
virtual const ElementgetParent () const
 
virtual void setParent (Element *parent_)
 
std::vector< Element * > getElementsDependingOn () 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...
 
- Public Member Functions inherited from fmatvec::Atom
Atomoperator= (const Atom &)
 
void setMessageStreamActive (MsgType type, bool active)
 
void getMessageStream (MsgType type, boost::shared_ptr< bool > &a, boost::shared_ptr< std::ostream > &s)
 
void adoptMessageStreams (const Atom *src=NULL)
 
std::ostream & msg (MsgType type)
 
bool msgAct (MsgType type)
 

Protected Member Functions

virtual void addFrame (Frame *frame)
 
virtual void addContour (Contour *contour)
 
- Protected Member Functions inherited from MBSim::Element
void updatePlotFeatures ()
 
- Protected Member Functions inherited from fmatvec::Atom
 Atom (const Atom &src)
 

Protected Attributes

std::vector< Frame * > frame
 vector of frames and contours
 
std::vector< Contour * > contour
 
FrameR
 frame of reference of the object
 
fmatvec::Mat3xV PJT [2]
 
fmatvec::Mat3xV PJR [2]
 
int nu [2]
 
int nq
 
- Protected Attributes inherited from MBSim::Object
int qSize
 size of object positions
 
int uSize [2]
 size of object velocities
 
int hSize [2]
 size of object h-vector (columns of J)
 
int qInd
 indices of positions, velocities, right hand side
 
int uInd [2]
 
int hInd [2]
 
int xSize
 size and local index of order one parameters
 
int xInd
 
fmatvec::Vec q
 positions, velocities
 
fmatvec::Vec u
 
fmatvec::Vec uall
 
fmatvec::Vec x
 
fmatvec::Vec q0
 initial position, velocity
 
fmatvec::Vec u0
 
fmatvec::Vec x0
 
fmatvec::Vec qd
 differentiated positions, velocities
 
fmatvec::Vec ud [2]
 
fmatvec::Vec udall [2]
 
fmatvec::Vec xd
 
fmatvec::Vec h [2]
 complete and object smooth and nonsmooth right hand side
 
fmatvec::Vec r [2]
 
fmatvec::Mat W [2]
 
fmatvec::Mat V [2]
 
fmatvec::Mat dhdq
 Jacobians of h.
 
fmatvec::SqrMat dhdu
 
fmatvec::Vec dhdt
 
fmatvec::Mat T
 linear relation matrix of differentiated position and velocity parameters
 
fmatvec::SymMat M [2]
 mass matrix
 
fmatvec::SymMat LLM [2]
 LU-decomposition of mass matrix.
 
- Protected Attributes inherited from MBSim::Element
Elementparent
 
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.
 
std::vector
< MBXMLUtils::EmbedDOMLocator > 
locationStack
 
DynamicSystemSolverds
 dynamic system
 
H5::VectorSerie< double > * plotVectorSerie
 time series
 
std::vector< double > plotVector
 one entry of time series
 
std::vector< std::string > plotColumns
 columns of time series
 
H5::GroupBaseplotGroup
 associated plot group
 
std::vector< Element * > dependency
 vector containing all dependencies.
 

Private Attributes

std::string saved_frameOfReference
 

Additional Inherited Members

- Public Types inherited from MBSim::Element
enum  PlotFeatureStatus { enabled, disabled, unset }
 Plot feature status. More...
 
enum  PlotFeature {
  plotRecursive =0, separateFilePerGroup, state, stateDerivative,
  notMinimalState, rightHandSide, globalPosition, globalVelocity,
  globalAcceleration, energy, openMBV, generalizedLinkForce,
  linkKinematics, stopVector, debug, LASTPLOTFEATURE
}
 Plot Features. More...
 
enum  InitStage {
  modelBuildup =0, resolveXMLPath, preInit, resize,
  relativeFrameContourLocation, worldFrameContourLocation, plotting, reorganizeHierarchy,
  unknownStage, calculateLocalInitialValues, LASTINITSTAGE
}
 The stages of the initialization. More...
 
- Public Types inherited from fmatvec::Atom
enum  MsgType
 
- Static Public Member Functions inherited from MBSim::Element
static double getDouble (xercesc::DOMElement *e)
 
static int getInt (xercesc::DOMElement *e)
 
static bool getBool (xercesc::DOMElement *e)
 
static fmatvec::Vec3 getVec3 (xercesc::DOMElement *e)
 
static fmatvec::Vec getVec (xercesc::DOMElement *e, int rows=0)
 
static fmatvec::Mat3xV getMat3xV (xercesc::DOMElement *e, int cols=0)
 
static fmatvec::Mat getMat (xercesc::DOMElement *e, int rows=0, int cols=0)
 
static fmatvec::SqrMat3 getSqrMat3 (xercesc::DOMElement *e)
 
static fmatvec::SqrMat getSqrMat (xercesc::DOMElement *e, int size=0)
 
static fmatvec::SymMat3 getSymMat3 (xercesc::DOMElement *e)
 
static fmatvec::SymMat getSymMat (xercesc::DOMElement *e, int size=0)
 
- Static Public Member Functions inherited from fmatvec::Atom
static void setCurrentMessageStream (MsgType type, const boost::shared_ptr< bool > &a=boost::make_shared< bool >(true), const boost::shared_ptr< std::ostream > &s=boost::make_shared< std::ostream >(std::cout.rdbuf()))
 
static std::ostream & msgStatic (MsgType type)
 
static bool msgActStatic (MsgType type)
 

Detailed Description

base class for all mechanical bodies with mass and generalised coordinates

Author
Martin Foerg
Date
2009-04-06 object and body divided (Markus Schneider)

The following part is only a test for equation and image output for the XML documentation. A not inline equation

\[ \int_a^b\sin(x)dx +5 \]

And a inline equation $x_a+\cos(x)$. And a image

mbsim.png
The image caption
End of the test.

Constructor & Destructor Documentation

MBSim::Body::Body ( const std::string &  name)

constructor

Parameters
nameof body

Member Function Documentation

void MBSim::Body::addContour ( Contour contour)
protectedvirtual
Parameters
contourto add
void MBSim::Body::addFrame ( Frame frame)
protectedvirtual
Parameters
frameto add
int MBSim::Body::contourIndex ( const Contour contour_) const
Parameters
contour
Returns
index of contour
int MBSim::Body::frameIndex ( const Frame frame_) const
Parameters
frame
Returns
index of frame
Contour * MBSim::Body::getContour ( const std::string &  name,
bool  check = true 
) const
virtual
Parameters
nameof the contour
flagfor checking existence
Returns
contour
Frame * MBSim::Body::getFrame ( const std::string &  name,
bool  check = true 
) const
virtual
Parameters
nameof the frame
flagfor checking existence
Returns
frame
virtual Frame* MBSim::Body::getFrameOfReference ( )
inlinevirtual
Returns
frame of reference
virtual const Frame* MBSim::Body::getFrameOfReference ( ) const
inlinevirtual
Returns
frame of reference
virtual std::string MBSim::Body::getType ( ) const
inlinevirtual
Returns
std::string representation

Reimplemented from MBSim::Object.

Reimplemented in MBSim::RigidBody.

void MBSim::Body::plot ( double  t,
double  dt = 1 
)
virtual

plots time dependent data

Parameters
simulationtime
simulationtime step size for derivative calculation

Reimplemented from MBSim::Object.

Reimplemented in MBSim::RigidBody.

void MBSim::Body::setDynamicSystemSolver ( DynamicSystemSolver sys)
virtual

sets the used dynamics system solver to the element

Parameters
pointerto the dynamic system solver of which the element is part of

Reimplemented from MBSim::Element.

virtual void MBSim::Body::setFrameOfReference ( Frame frame)
inlinevirtual
Parameters
frameof reference

Member Data Documentation

fmatvec::Mat3xV MBSim::Body::PJT[2]
protected

JACOBIAN of translation, rotation and their derivatives in parent system


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

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML