mbsim  4.0.0
MBSim Kernel
MBSim::JointConstraint Class Reference

Joint contraint. More...

#include <joint_constraint.h>

Inheritance diagram for MBSim::JointConstraint:
[legend]

Classes

class  Residuum
 

Public Types

enum  FrameOfReference { firstFrame =0 , secondFrame , unknown }
 
- Public Types inherited from MBSim::Element
enum  InitStage {
  resolveStringRef =0 , preInit , plotting , unknownStage ,
  LASTINITSTAGE
}
 The stages of the initialization. More...
 

Public Member Functions

 JointConstraint (const std::string &name="")
 
void calcisSize () override
 
void init (InitStage stage, const InitConfigSet &config) override
 plots time series header More...
 
void resetUpToDate () override
 
void connect (Frame *frame0, Frame *frame1)
 
void addDependentRigidBodyOnFirstSide (RigidBody *bd)
 
void addDependentRigidBodyOnSecondSide (RigidBody *bd)
 
void setIndependentRigidBody (RigidBody *bi_)
 
void addIndependentRigidBody (RigidBody *bi_)
 
void setUpInverseKinetics () override
 
void setForceDirection (const fmatvec::Mat3xV &fd)
 
void setMomentDirection (const fmatvec::Mat3xV &md)
 
void setFrameOfReference (FrameOfReference refFrame_)
 The frame of reference for the force/moment direction vectors. If firstFrame (default) the first frame, if secondFrame the second frame is used.
 
void updatePositions (Frame *frame) override
 
void updateGeneralizedCoordinates () override
 
void updateGeneralizedJacobians (int jj=0) override
 
void updateForceDirections ()
 
void updateA ()
 
const fmatvec::Mat3xV & evalGlobalForceDirection ()
 
const fmatvec::Mat3xV & evalGlobalMomentDirection ()
 
const fmatvec::SqrMat & evalA ()
 
fmatvec::Mat3xV & getGlobalForceDirection (bool check=true)
 
fmatvec::Mat3xV & getGlobalMomentDirection (bool check=true)
 
fmatvec::SqrMat & getA (bool check=true)
 
void setInitialGuess (const fmatvec::VecV &q0_)
 
void initializeUsingXML (xercesc::DOMElement *element) override
 
- Public Member Functions inherited from MBSim::MechanicalConstraint
 MechanicalConstraint (const std::string &name)
 
MechanicalLinkgetMechanicalLink ()
 
- Public Member Functions inherited from MBSim::Constraint
 Constraint (const std::string &name)
 
virtual void updateGeneralizedCoordinates ()
 
virtual void updateGeneralizedJacobians (int j=0)
 
virtual void updatedx ()
 
virtual void updatexd ()
 
virtual void calcxSize ()
 
const fmatvec::Vec & getx () const
 
fmatvec::Vec & getx ()
 
int getxInd ()
 
virtual void setxInd (int xInd_)
 
int getxSize () const
 
int getisInd ()
 
virtual void setisInd (int isInd_)
 
int getisSize ()
 
virtual void updatexRef (fmatvec::Vec &xParent)
 
virtual void updatexdRef (fmatvec::Vec &xdParent)
 
virtual void updatedxRef (fmatvec::Vec &dxParent)
 
virtual void calcisSize ()
 
virtual void aboutToUpdateInternalState ()
 
virtual void postprocessing ()
 
virtual void initz ()
 
virtual void writez (H5::GroupBase *group)
 
virtual void readz0 (H5::GroupBase *group)
 
virtual void setUpInverseKinetics ()
 
std::shared_ptr< OpenMBV::GroupgetOpenMBVGrp () override
 
bool getUpdateGeneralizedCoordinates () const
 
bool getUpdateGeneralizedJacobians () const
 
virtual void updateInternalStateRef (fmatvec::Vec &cur, fmatvec::Vec &next)
 
void resetUpToDate () override
 
const fmatvec::Vec & evalxd ()
 
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
 

Private Attributes

std::unique_ptr< Residuumresiduum
 
std::unique_ptr< MultiDimNewtonMethodnewton
 
std::vector< RigidBody * > bd1
 
std::vector< RigidBody * > bd2
 
std::vector< RigidBody * > bi
 
std::vector< Frame * > frame
 
FrameOfReference refFrame {firstFrame}
 frame of reference the force is defined in
 
FloatingRelativeFrame C
 
fmatvec::Mat3xV DF
 
fmatvec::Mat3xV DM
 
fmatvec::Mat3xV forceDir
 
fmatvec::Mat3xV momentDir
 
fmatvec::RangeV iF
 
fmatvec::RangeV iM
 
std::vector< fmatvec::RangeV > Iq1
 
std::vector< fmatvec::RangeV > Iq2
 
std::vector< fmatvec::RangeV > Iu1
 
std::vector< fmatvec::RangeV > Iu2
 
std::vector< fmatvec::RangeV > Ih1
 
std::vector< fmatvec::RangeV > Ih2
 
int nq {0}
 
int nu {0}
 
int nh {0}
 
fmatvec::Vec q0
 
fmatvec::Mat JT
 
fmatvec::Mat JR
 
fmatvec::SqrMat A
 
bool updDF {true}
 
bool updA {true}
 
std::string saved_ref1
 
std::string saved_ref2
 
std::vector< std::string > saved_RigidBodyFirstSide
 
std::vector< std::string > saved_RigidBodySecondSide
 
std::vector< std::string > saved_IndependentBody
 

Additional Inherited Members

- 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::MechanicalConstraint
MechanicalLinklink
 
- Protected Attributes inherited from MBSim::Constraint
fmatvec::Vec x
 order one parameters
 
fmatvec::Vec xd
 differentiated order one parameters
 
fmatvec::Vec dx
 
fmatvec::Vec x0
 order one initial value
 
fmatvec::Vec curis
 
fmatvec::Vec nextis
 
int xSize
 size and local index of order one parameters
 
int xInd
 
int isSize
 
int isInd
 
bool updGC
 
bool updGJ
 
- 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

Joint contraint.

Author
Martin Foerg 2011-08-04 XML Interface added (Markus Schneider)

Member Function Documentation

◆ calcisSize()

void MBSim::JointConstraint::calcisSize ( )
overridevirtual

Reimplemented from MBSim::Constraint.

◆ init()

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

plots time series header

Parameters
invocingparent class

Reimplemented from MBSim::Element.

◆ initializeUsingXML()

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

Reimplemented from MBSim::Element.

◆ resetUpToDate()

void MBSim::JointConstraint::resetUpToDate ( )
overridevirtual

Reimplemented from MBSim::Constraint.

◆ setUpInverseKinetics()

void MBSim::JointConstraint::setUpInverseKinetics ( )
overridevirtual

Reimplemented from MBSim::Constraint.

◆ updateGeneralizedCoordinates()

void MBSim::JointConstraint::updateGeneralizedCoordinates ( )
overridevirtual

Reimplemented from MBSim::Constraint.

◆ updateGeneralizedJacobians()

void MBSim::JointConstraint::updateGeneralizedJacobians ( int  jj = 0)
overridevirtual

Reimplemented from MBSim::Constraint.

◆ updatePositions()

void MBSim::JointConstraint::updatePositions ( Frame frame)
overridevirtual

Reimplemented from MBSim::Element.


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