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

basic class for contour definition for rigid (which do not know about their shape) and flexible (they know how they look like) bodies More...

#include <contour.h>

Inheritance diagram for MBSim::Contour:
MBSim::Element fmatvec::Atom MBSim::RigidContour

Public Member Functions

 Contour (const std::string &name, Frame *R=0)
 constructor More...
 
virtual ~Contour ()
 destructor
 
virtual std::string getType () const
 
virtual void plot (double t, double dt=1)
 plots time dependent data More...
 
virtual void updateKinematicsForFrame (ContourPointData &cp, Frame::Feature ff)=0
 cartesian kinematic for contour (normal, tangent, binormal) is set by implementation class More...
 
virtual void updateJacobiansForFrame (ContourPointData &cp, int j=0)=0
 JACOBIAN for contour (normal, tangent, binormal) is set by implementation class. More...
 
virtual fmatvec::Vec3 computeNormal (ContourPointData &cp)
 
virtual fmatvec::Vec3 computePosition (ContourPointData &cp)
 
virtual fmatvec::Vec3 computeVelocity (ContourPointData &cp)
 
virtual fmatvec::Vec3 computeAngularVelocity (ContourPointData &cp)
 
virtual double computeCurvature (ContourPointData &cp)
 
virtual fmatvec::Vec2 computeLagrangeParameter (const fmatvec::Vec3 &WrPoint)
 projects the point on the contour to compute the Lagrange parameter More...
 
virtual void setReferencePosition (const fmatvec::Vec3 &WrOP)
 
virtual void setReferenceOrientation (const fmatvec::SqrMat3 &AWC)
 
virtual void setReferenceVelocity (const fmatvec::Vec3 &WvP)
 
virtual void setReferenceAngularVelocity (const fmatvec::Vec3 &WomegaC)
 
virtual void setReferenceJacobianOfTranslation (const fmatvec::Mat3xV &WJP, int j=0)
 
virtual void setReferenceGyroscopicAccelerationOfTranslation (const fmatvec::Vec3 &WjP, int j=0)
 
virtual void setReferenceJacobianOfRotation (const fmatvec::Mat3xV &WJR, int j=0)
 
virtual void setReferenceGyroscopicAccelerationOfRotation (const fmatvec::Vec3 &WjR, int j=0)
 
virtual void setReferenceAcceleration (const fmatvec::Vec3 &WaP)
 
virtual void setReferenceAngularAcceleration (const fmatvec::Vec3 &WpsiC)
 
virtual void init (InitStage stage)
 TODO.
 
virtual ContactKinematics * findContactPairingWith (std::string type0, std::string type1)=0
 find contact kinematics More...
 
FramegetFrame ()
 
FramegetFrameOfReference ()
 
const fmatvec::Vec3 & getReferencePosition () const
 
const fmatvec::SqrMat3 & getReferenceOrientation () const
 
const fmatvec::Vec3 & getReferenceVelocity () const
 
const fmatvec::Vec3 & getReferenceAngularVelocity () const
 
const fmatvec::Mat3xV & getReferenceJacobianOfTranslation (int j=0) const
 
const fmatvec::Mat3xV & getReferenceJacobianOfRotation (int j=0) const
 
fmatvec::Mat3xV & getReferenceJacobianOfTranslation (int j=0)
 
fmatvec::Mat3xV & getReferenceJacobianOfRotation (int j=0)
 
const fmatvec::Vec3 & getReferenceGyroscopicAccelerationOfTranslation () const
 
const fmatvec::Vec3 & getReferenceGyroscopicAccelerationOfRotation () const
 
fmatvec::Vec3 & getReferenceGyroscopicAccelerationOfTranslation ()
 
fmatvec::Vec3 & getReferenceGyroscopicAccelerationOfRotation ()
 
virtual int gethSize (int i=0) const
 
virtual int gethInd (int i=0) const
 
virtual void sethSize (int size, int i=0)
 
virtual void sethInd (int ind, int i=0)
 
void setFrameOfReference (Frame *frame)
 
void setFrameOfReference (const std::string &frame)
 
virtual void updateStateDependentVariables (double t)
 
virtual void updateJacobians (double t, int j=0)
 
virtual void updateStateDerivativeDependentVariables (const fmatvec::Vec &ud, double t)
 
virtual void initializeUsingXML (xercesc::DOMElement *element)
 
virtual xercesc::DOMElement * writeXMLFile (xercesc::DOMNode *element)
 
- Public Member Functions inherited from MBSim::Element
 Element (const std::string &name)
 constructor
 
virtual ~Element ()
 destructor
 
virtual void initDataInterfaceBase (DynamicSystemSolver *parentds)
 TODO.
 
virtual void setDynamicSystemSolver (DynamicSystemSolver *sys)
 sets the used dynamics system solver to the element More...
 
virtual void plotAtSpecialEvent (double t, double dt=1)
 plots time dependent data at special events More...
 
virtual void closePlot ()
 closes plot file
 
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 ElementgetChildByContainerAndName (const std::string &container, const std::string &name) const
 Get the Element named name in the container named container.
 
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 Attributes

int hSize [2]
 object the contour belongs to More...
 
int hInd [2]
 
FrameR
 coordinate system of contour
 
std::string saved_frameOfReference
 
- 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.
 

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)
 
- Protected Member Functions inherited from MBSim::Element
void updatePlotFeatures ()
 
- Protected Member Functions inherited from fmatvec::Atom
 Atom (const Atom &src)
 

Detailed Description

basic class for contour definition for rigid (which do not know about their shape) and flexible (they know how they look like) bodies

Author
Martin Foerg
Date
2009-03-23 some comments (Thorsten Schindler)
2009-04-20 RigidContour added (Thorsten Schindler)
2009-06-04 not rigid things are in separate files
2009-07-16 split from concret contours into new folder contours

kinematics is stored in coordinate system class and is individually evaluated in specific contact kinematics

Constructor & Destructor Documentation

MBSim::Contour::Contour ( const std::string &  name,
Frame R = 0 
)

constructor

Parameters
nameof contour

Member Function Documentation

virtual fmatvec::Vec3 MBSim::Contour::computeAngularVelocity ( ContourPointData cp)
inlinevirtual
Returns
angular in world frame
Parameters
contourposition
virtual double MBSim::Contour::computeCurvature ( ContourPointData cp)
inlinevirtual
Returns
curvature of contour in contour point
Parameters
contourposition
virtual fmatvec::Vec2 MBSim::Contour::computeLagrangeParameter ( const fmatvec::Vec3 &  WrPoint)
inlinevirtual

projects the point on the contour to compute the Lagrange parameter

Parameters
WrPointpoint in world coordinates
Returns
Vec of lagrange parameters
Remarks
: a vector length of 2 is necessary (Vec(2,INIT,0.))
virtual fmatvec::Vec3 MBSim::Contour::computeNormal ( ContourPointData cp)
inlinevirtual
Returns
normal in world frame
Parameters
contourposition
virtual fmatvec::Vec3 MBSim::Contour::computePosition ( ContourPointData cp)
inlinevirtual
Returns
position in world frame
Parameters
contourposition
virtual fmatvec::Vec3 MBSim::Contour::computeVelocity ( ContourPointData cp)
inlinevirtual
Returns
velocity in world frame
Parameters
contourposition
virtual ContactKinematics* MBSim::Contour::findContactPairingWith ( std::string  type0,
std::string  type1 
)
pure virtual

find contact kinematics

Author
Markus Schneider
Date
2010-11-05 initial commit (Markus Schneider)

Implemented in MBSim::RigidContour.

virtual std::string MBSim::Contour::getType ( ) const
inlinevirtual
Returns
std::string representation

Reimplemented from MBSim::Element.

Reimplemented in MBSim::RigidContour.

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

plots time dependent data

Parameters
simulationtime
simulationtime step size for derivative calculation

Reimplemented from MBSim::Element.

Reimplemented in MBSim::RigidContour.

virtual void MBSim::Contour::setReferenceAcceleration ( const fmatvec::Vec3 &  WaP)
inlinevirtual
Parameters
accelerationof contour in inertial frame
virtual void MBSim::Contour::setReferenceAngularAcceleration ( const fmatvec::Vec3 &  WpsiC)
inlinevirtual
Parameters
angularacceleration of contour in inertial frame
virtual void MBSim::Contour::setReferenceAngularVelocity ( const fmatvec::Vec3 &  WomegaC)
inlinevirtual
Parameters
angularvelocity of contour in inertial frame
virtual void MBSim::Contour::setReferenceGyroscopicAccelerationOfRotation ( const fmatvec::Vec3 &  WjR,
int  j = 0 
)
inlinevirtual
Parameters
gyroscopicacceleration of rotation of contour in inertial frame
virtual void MBSim::Contour::setReferenceGyroscopicAccelerationOfTranslation ( const fmatvec::Vec3 &  WjP,
int  j = 0 
)
inlinevirtual
Parameters
gyroscopicacceleration of translation of contour in inertial frame
virtual void MBSim::Contour::setReferenceJacobianOfRotation ( const fmatvec::Mat3xV &  WJR,
int  j = 0 
)
inlinevirtual
Parameters
JACOBIANof rotation of contour in inertial frame
virtual void MBSim::Contour::setReferenceJacobianOfTranslation ( const fmatvec::Mat3xV &  WJP,
int  j = 0 
)
inlinevirtual
Parameters
JACOBIANof translation of contour in inertial frame
virtual void MBSim::Contour::setReferenceOrientation ( const fmatvec::SqrMat3 &  AWC)
inlinevirtual
Parameters
orientationof contour to inertial frame
virtual void MBSim::Contour::setReferencePosition ( const fmatvec::Vec3 &  WrOP)
inlinevirtual
Parameters
positionof contour in inertial frame
virtual void MBSim::Contour::setReferenceVelocity ( const fmatvec::Vec3 &  WvP)
inlinevirtual
Parameters
velocityof contour in inertial frame
virtual void MBSim::Contour::updateJacobiansForFrame ( ContourPointData cp,
int  j = 0 
)
pure virtual

JACOBIAN for contour (normal, tangent, binormal) is set by implementation class.

Parameters
contourparameter
selectionof specific calculations for frames

Implemented in MBSim::RigidContour.

virtual void MBSim::Contour::updateKinematicsForFrame ( ContourPointData cp,
Frame::Feature  ff 
)
pure virtual

cartesian kinematic for contour (normal, tangent, binormal) is set by implementation class

Parameters
contourparameter
selectionof specific calculations for frames

Implemented in MBSim::RigidContour.

Member Data Documentation

int MBSim::Contour::hSize[2]
protected

object the contour belongs to

size and index of right hand side for frame JACOBIAN settings


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

Impressum / Disclaimer / Datenschutz Generated by doxygen 1.8.5 Valid HTML