mbsim  4.0.0
MBSim Kernel
MBSim::BilateralConstraint Class Reference

basic bilateral force law on acceleration level for constraint description More...

#include <bilateral_constraint.h>

Inheritance diagram for MBSim::BilateralConstraint:
[legend]

Public Member Functions

 BilateralConstraint ()=default
 constructor
 
 ~BilateralConstraint () override=default
 destructor
 
bool isClosed (double g, double gTol) override
 decides, if force law is active More...
 
double project (double la, double gdn, double r, double laMin=0) override
 prox function evaluation More...
 
fmatvec::Vec diff (double la, double gdn, double r, double laMin=0) override
 
double solve (double G, double gdn) override
 
bool isFulfilled (double la, double gdn, double tolla, double gdTol, double laMin=0) override
 
bool isSetValued () const override
 
GeneralizedImpactLawcreateGeneralizedImpactLaw () const override
 
- Public Member Functions inherited from MBSim::GeneralizedForceLaw
 GeneralizedForceLaw ()
 constructor
 
 ~GeneralizedForceLaw () override=default
 destructor
 
virtual bool isClosed (double g, double gTol)
 decides, if force law is active More...
 
virtual double project (double la, double gdn, double r, double laMin=0)
 prox function evaluation More...
 
virtual fmatvec::Vec diff (double la, double gdn, double r, double laMin=0)
 
virtual double solve (double G, double gdn)
 
virtual double operator() (double g, double gd)
 
virtual bool isFulfilled (double la, double gdn, double tolla, double tolgd, double laMin=0)
 
virtual bool isSetValued () const =0
 
virtual GeneralizedImpactLawcreateGeneralizedImpactLaw () const
 
- 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
 

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

Detailed Description

basic bilateral force law on acceleration level for constraint description

Author
Martin Foerg
Date
2009-07-29 some comments (Thorsten Schindler)
2010-07-06 isSticking added for impact laws (Robert Huber)

Member Function Documentation

◆ createGeneralizedImpactLaw()

GeneralizedImpactLaw * MBSim::BilateralConstraint::createGeneralizedImpactLaw ( ) const
overridevirtual

Reimplemented from MBSim::GeneralizedForceLaw.

◆ diff()

Vec MBSim::BilateralConstraint::diff ( double  la,
double  gdn,
double  r,
double  laMin = 0 
)
overridevirtual

Reimplemented from MBSim::GeneralizedForceLaw.

◆ isClosed()

bool MBSim::BilateralConstraint::isClosed ( double  g,
double  gTol 
)
inlineoverridevirtual

decides, if force law is active

Parameters
gapdistance
tolerance
Returns
flag, if force law is active

Reimplemented from MBSim::GeneralizedForceLaw.

◆ isFulfilled()

bool MBSim::BilateralConstraint::isFulfilled ( double  la,
double  gdn,
double  tolla,
double  tolgd,
double  laMin = 0 
)
overridevirtual
Parameters
contactforce parameter
contactrelative velocity
tolerancefor contact force parameters
tolerancefor relative velocity
Returns
flag if the force law is valid given the parameters

Reimplemented from MBSim::GeneralizedForceLaw.

◆ isSetValued()

bool MBSim::BilateralConstraint::isSetValued ( ) const
inlineoverridevirtual
Returns
flag if the force law is setvalued

Implements MBSim::GeneralizedForceLaw.

◆ project()

double MBSim::BilateralConstraint::project ( double  la,
double  gdn,
double  r,
double  laMin = 0 
)
overridevirtual

prox function evaluation

Parameters
kineticvariable
kinematicvariable
relaxationfactor
minimalthreshold for kinetic variable
Returns
result of prox function evaluation

Reimplemented from MBSim::GeneralizedForceLaw.

◆ solve()

double MBSim::BilateralConstraint::solve ( double  G,
double  gdn 
)
overridevirtual

Reimplemented from MBSim::GeneralizedForceLaw.


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