mbsim 4.0.0 MBSim Kernel

Public Member Functions | Protected Attributes | Private Attributes | List of all members
MBSim::ContactObserver Class Reference
Inheritance diagram for MBSim::ContactObserver:
[legend]

## Public Member Functions

| ContactObserver (const std::string &name="")
void | setContact (Contact *link_)
void | init (InitStage stage, const InitConfigSet &config) override
| plots time series header More...
void | plot () override
| plots time dependent data More...
void | initializeUsingXML (xercesc::DOMElement *element) override
void | setDynamicSystemSolver (DynamicSystemSolver *sys) override
| sets the used dynamics system solver to the element More...
void | setOutputFrame (Frame *outputFrame_)
std::shared_ptr< OpenMBV::Group > | getObserversOpenMBVGrp () override
H5::GroupBase * | getObserversPlotGroup () override
| BOOST_PARAMETER_MEMBER_FUNCTION ((void), enableOpenMBVForce, tag,(optional(sideOfInteraction,(OpenMBVInteractionArrow::SideOfInteraction), OpenMBVInteractionArrow::action)(scaleLength,(double), 1)(scaleSize,(double), 1)(referencePoint,(OpenMBVArrow::ReferencePoint), OpenMBVArrow::toPoint)(colorRepresentation,(OpenMBVArrow::ColorRepresentation), OpenMBVArrow::none)(minimalColorValue,(double), 0)(maximalColorValue,(double), 1)(diffuseColor,(const fmatvec::Vec3 &), fmatvec::Vec3(std::vector< double >{-1, 1, 1}))(transparency,(double), 0)(pointSize,(double), 0)(lineWidth,(double), 0)))
| BOOST_PARAMETER_MEMBER_FUNCTION ((void), enableOpenMBVMoment, tag,(optional(sideOfInteraction,(OpenMBVInteractionArrow::SideOfInteraction), OpenMBVInteractionArrow::action)(scaleLength,(double), 1)(scaleSize,(double), 1)(referencePoint,(OpenMBVArrow::ReferencePoint), OpenMBVArrow::toPoint)(colorRepresentation,(OpenMBVInteractionArrow::ColorRepresentation), OpenMBVArrow::none)(minimalColorValue,(double), 0)(maximalColorValue,(double), 1)(diffuseColor,(const fmatvec::Vec3 &), fmatvec::Vec3(std::vector< double >{-1, 1, 1}))(transparency,(double), 0)(pointSize,(double), 0)(lineWidth,(double), 0)))
| BOOST_PARAMETER_MEMBER_FUNCTION ((void), enableOpenMBVContactPoints, tag,(optional(size,(double), 1)(offset,(double), 1)(transparency,(double), 0)(pointSize,(double), 0)(lineWidth,(double), 0)))
| Draw two OpenMBV::Frame's of size 'size' at the contact points if 'enable'==true, otherwise the object is available but disabled. If the contact is closed, then the two contact points are the same on each contour. If the contact is not closed, then the two contact point lie on the contours with minimal distance in between. The x-axis of this frames are orientated to the other frame origin (normal vector).
| BOOST_PARAMETER_MEMBER_FUNCTION ((void), enableOpenMBVNormalForce, tag,(optional(sideOfInteraction,(OpenMBVInteractionArrow::SideOfInteraction), OpenMBVInteractionArrow::action)(scaleLength,(double), 1)(scaleSize,(double), 1)(referencePoint,(OpenMBVArrow::ReferencePoint), OpenMBVArrow::toPoint)(colorRepresentation,(OpenMBVArrow::ColorRepresentation), OpenMBVArrow::none)(minimalColorValue,(double), 0)(maximalColorValue,(double), 1)(diffuseColor,(const fmatvec::Vec3 &), fmatvec::Vec3(std::vector< double >{-1, 1, 1}))(transparency,(double), 0)(pointSize,(double), 0)(lineWidth,(double), 0)))
| Sets the OpenMBV::Arrow to be used for drawing the normal force vector. This vector is the force which is applied on the second contour. The reactio (not drawn) is applied on the first contour.
| BOOST_PARAMETER_MEMBER_FUNCTION ((void), enableOpenMBVTangentialForce, tag,(optional(sideOfInteraction,(OpenMBVInteractionArrow::SideOfInteraction), OpenMBVInteractionArrow::action)(scaleLength,(double), 1)(scaleSize,(double), 1)(referencePoint,(OpenMBVArrow::ReferencePoint), OpenMBVArrow::toPoint)(colorRepresentation,(OpenMBVFrictionArrow::ColorRepresentation), OpenMBVFrictionArrow::none)(minimalColorValue,(double), 0)(maximalColorValue,(double), 1)(diffuseColor,(const fmatvec::Vec3 &), fmatvec::Vec3(std::vector< double >{-1, 1, 1}))(transparency,(double), 0)(pointSize,(double), 0)(lineWidth,(double), 0)))
| Sets the OpenMBV::Arrow to be used for drawing the friction force vector. This vector is the friction which is applied on the second contour. The reactio (not drawn) is applied on the frist contour. If using a set-valued friction law, then the arrow is drawn in green if the contact is in slip and in red, if the contact is in stick.
Public Member Functions inherited from MBSim::Observer
| Observer (const std::string &name)
void | init (InitStage stage, const InitConfigSet &config) override
| plots time series header More...
std::shared_ptr< OpenMBV::Group > | getOpenMBVGrp () override
void | createPlotGroup () override
| creates the plotGroup for H5-output
int | getisInd ()
int | getisSize ()
virtual void | calcisSize ()
virtual void | aboutToUpdateInternalState ()
virtual void | postprocessing ()
virtual void | setisInd (int isInd_)
virtual void | updateInternalStateRef (fmatvec::Vec &cur, fmatvec::Vec &next)
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 | 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)
DynamicSystemSolver * | getDynamicSystemSolver ()
H5::GroupBase * | getPlotGroup ()
virtual H5::GroupBase * | getFramesPlotGroup ()
virtual H5::GroupBase * | getContoursPlotGroup ()
virtual H5::GroupBase * | getGroupsPlotGroup ()
virtual H5::GroupBase * | getObjectsPlotGroup ()
virtual H5::GroupBase * | getLinksPlotGroup ()
virtual H5::GroupBase * | getConstraintsPlotGroup ()
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)
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 Element * | getChildByContainerAndName (const std::string &container, const std::string &name) const
| Get the Element named name in the container named container.
virtual std::shared_ptr< OpenMBV::Group > | getFramesOpenMBVGrp ()
virtual std::shared_ptr< OpenMBV::Group > | getContoursOpenMBVGrp ()
virtual std::shared_ptr< OpenMBV::Group > | getGroupsOpenMBVGrp ()
virtual std::shared_ptr< OpenMBV::Group > | getObjectsOpenMBVGrp ()
virtual std::shared_ptr< OpenMBV::Group > | getLinksOpenMBVGrp ()
virtual std::shared_ptr< OpenMBV::Group > | getConstraintsOpenMBVGrp ()
virtual Element * | getParent ()
virtual const Element * | getParent () 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::DOMEvalException & | getDOMEvalError () const

## Protected Attributes

std::vector< SingleContactObserver > | contactObserver
Contact * | link
std::string | saved_link
std::shared_ptr< OpenMBV::Frame > | openMBVContactFrame
| container of ContactFrames to draw
std::shared_ptr< OpenMBVInteractionArrow > | ombvForce
std::shared_ptr< OpenMBVInteractionArrow > | ombvMoment
std::shared_ptr< OpenMBVInteractionArrow > | ombvContact
std::shared_ptr< OpenMBVFrictionArrow > | ombvFriction
Protected Attributes inherited from MBSim::Observer
fmatvec::Vec | curis
fmatvec::Vec | nextis
int | isSize { 0 }
int | isInd { 0 }
Protected Attributes inherited from MBSim::Element
Element * | parent
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.
DynamicSystemSolver * | ds
| 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::GroupBase * | plotGroup
| 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

## Private Attributes

Frame * | outputFrame { nullptr }
std::string | saved_outputFrame

## 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)

## Member Function Documentation

## ◆ init()

void MBSim::ContactObserver::init | ( | InitStage | stage,
|  | const InitConfigSet & | config
| ) |  |

override virtual

plots time series header

Parameters

  invocing | parent class

Reimplemented from MBSim::Element.

## ◆ plot()

void MBSim::ContactObserver::plot | ( |  | ) |

override virtual

plots time dependent data

Parameters

  simulation | time
  simulation | time step size for derivative calculation

Reimplemented from MBSim::Element.

## ◆ setDynamicSystemSolver()

void MBSim::ContactObserver::setDynamicSystemSolver | ( | DynamicSystemSolver * | sys | ) |

override virtual

sets the used dynamics system solver to the element

Parameters

  pointer | to the dynamic system solver of which the element is part of

Reimplemented from MBSim::Element.

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

- /mbsim-env/mbsim/kernel/mbsim/observers/contact_observer.h
- /mbsim-env/mbsim/kernel/mbsim/observers/contact_observer.cc