mbsim  4.0.0
MBSim Kernel
MBSim::ContactKinematics Class Reference

basic class for contact kinematical calculations More...

#include <contact_kinematics.h>

Inheritance diagram for MBSim::ContactKinematics:
[legend]

Public Member Functions

 ContactKinematics (int maxNumContacts_=1)
 constructor
 
 ~ContactKinematics () override=default
 destructor
 
virtual void assignContours (const std::vector< Contour * > &contour_)
 treats ordering of contours More...
 
virtual void calcisSize ()
 
void setisInd (int ind)
 
int getisSize ()
 
virtual void updateInternalStateRef (fmatvec::Vec &curisParent, fmatvec::Vec &nextisParent)
 
virtual void search ()
 
virtual void updateg (std::vector< SingleContact > &contact)
 compute contact kinematics for all contacts More...
 
virtual void updateg (SingleContact &contact, int i=0)
 compute contact kinematics for a single contact More...
 
virtual void updatewb (std::vector< SingleContact > &contact)
 compute contact kinematics on acceleration level for all contacts More...
 
virtual void updatewb (SingleContact &contact, int i=0)
 compute contact kinematics on acceleration level for a single contact More...
 
void assignContours (Contour *contour1, Contour *contour2)
 treats ordering of contours More...
 
int getMaximumNumberOfContacts () const
 
void setGlobalSearch (bool gS_=true)
 
void setInitialGlobalSearch (bool iGS_=true)
 
virtual void setInitialGuess (const fmatvec::MatV &zeta0_)
 set initial guess for root-finding More...
 
void setTolerance (double tol_)
 set tolerance for root-finding
 
void setMaximumNumberOfContacts (int maxNumContacts_)
 set maximum number of contacts
 

Static Public Member Functions

static std::vector< double > searchPossibleContactPoints (Function< double(double)> *func, double eta, const std::vector< double > &nodes, double tol)
 
static std::vector< double > searchPossibleContactPoints (Function< fmatvec::Vec(fmatvec::Vec)> *func, int i, fmatvec::Vec &zeta, const std::vector< double > &nodes, double tol)
 

Protected Attributes

double tol {1e-10}
 tolerance for root-finding
 
int maxNumContacts {1}
 maximum number of contacts
 
fmatvec::Vec curis
 
fmatvec::Vec nextis
 
int isInd { 0 }
 
int isSize { 0 }
 
std::vector< Contour * > contour
 
bool gS {false}
 
bool iGS {false}
 

Detailed Description

basic class for contact kinematical calculations

Author
Martin Foerg
Date
2009-03-18 some comments (Thorsten Schindler)
2009-04-02 velocity part deleted (Thorsten Schindler)
2009-07-28 updates are pure virtual (Thorsten Schindler)

Member Function Documentation

◆ assignContours() [1/2]

virtual void MBSim::ContactKinematics::assignContours ( const std::vector< Contour * > &  contour_)
inlinevirtual

treats ordering of contours

Parameters
contourvector

Reimplemented in MBSim::ContactKinematicsBevelGearBevelGear, MBSim::ContactKinematicsBevelGearPlanarGear, MBSim::ContactKinematicsCircleCircle, MBSim::ContactKinematicsCircleExtrusion, MBSim::ContactKinematicsCircleFrustum, MBSim::ContactKinematicsCircleLine, MBSim::ContactKinematicsCircleLineSegment, MBSim::ContactKinematicsCirclePlanarContour, MBSim::ContactKinematicsCirclePlanarFrustum, MBSim::ContactKinematicsCirclePlane, MBSim::ContactKinematicsCircleSpatialContour, MBSim::ContactKinematicsCompoundContourCompoundContour, MBSim::ContactKinematicsCylindricalGearCylindricalGear, MBSim::ContactKinematicsCylindricalGearRack, MBSim::ContactKinematicsEdgeEdge, MBSim::ContactKinematicsLinePlanarContour, MBSim::ContactKinematicsPlanarContourPlanarContour, MBSim::ContactKinematicsPlaneSpatialContour, MBSim::ContactKinematicsPlatePolynomialFrustum, MBSim::ContactKinematicsPointCircle, MBSim::ContactKinematicsPointContourInterpolation, MBSim::ContactKinematicsPointCylinder, MBSim::ContactKinematicsPointFrustum, MBSim::ContactKinematicsPointLine, MBSim::ContactKinematicsPointLineSegment, MBSim::ContactKinematicsPointPlanarContour, MBSim::ContactKinematicsPointPlane, MBSim::ContactKinematicsPointPlaneWithFrustum, MBSim::ContactKinematicsPointPlate, MBSim::ContactKinematicsPointPolynomialFrustum, MBSim::ContactKinematicsPointSpatialContour, MBSim::ContactKinematicsPointSphere, MBSim::ContactKinematicsSpatialContourSpatialContour, MBSim::ContactKinematicsSphereFrustum, MBSim::ContactKinematicsSpherePlane, MBSim::ContactKinematicsSpherePlate, MBSim::ContactKinematicsSpherePolynomialFrustum, MBSim::ContactKinematicsSphereSpatialContour, MBSim::ContactKinematicsSphereSphere, and MBSim::ContactKinematicsCompoundContourContour.

◆ assignContours() [2/2]

void MBSim::ContactKinematics::assignContours ( Contour contour1,
Contour contour2 
)
inline

treats ordering of contours

Parameters
firstcontour
secondcontour

◆ getMaximumNumberOfContacts()

int MBSim::ContactKinematics::getMaximumNumberOfContacts ( ) const
inline
Returns
maximum number of contacts

◆ setInitialGuess()

◆ updateg() [1/2]

virtual void MBSim::ContactKinematics::updateg ( SingleContact contact,
int  i = 0 
)
inlinevirtual

compute contact kinematics for a single contact

Parameters
conctactsingle contact
iindex of the contact that should be updated

Reimplemented in MBSim::ContactKinematicsBevelGearBevelGear, MBSim::ContactKinematicsBevelGearPlanarGear, MBSim::ContactKinematicsCircleCircle, MBSim::ContactKinematicsCircleExtrusion, MBSim::ContactKinematicsCircleFrustum, MBSim::ContactKinematicsCircleLine, MBSim::ContactKinematicsCircleLineSegment, MBSim::ContactKinematicsCirclePlanarContour, MBSim::ContactKinematicsCirclePlanarFrustum, MBSim::ContactKinematicsCirclePlane, MBSim::ContactKinematicsCircleSpatialContour, MBSim::ContactKinematicsCylindricalGearCylindricalGear, MBSim::ContactKinematicsCylindricalGearRack, MBSim::ContactKinematicsEdgeEdge, MBSim::ContactKinematicsLinePlanarContour, MBSim::ContactKinematicsPlanarContourPlanarContour, MBSim::ContactKinematicsPlaneSpatialContour, MBSim::ContactKinematicsPlatePolynomialFrustum, MBSim::ContactKinematicsPointCircle, MBSim::ContactKinematicsPointContourInterpolation, MBSim::ContactKinematicsPointCylinder, MBSim::ContactKinematicsPointExtrusion, MBSim::ContactKinematicsPointFrustum, MBSim::ContactKinematicsPointLine, MBSim::ContactKinematicsPointLineSegment, MBSim::ContactKinematicsPointPlanarContour, MBSim::ContactKinematicsPointPlane, MBSim::ContactKinematicsPointPlaneWithFrustum, MBSim::ContactKinematicsPointPlate, MBSim::ContactKinematicsPointPolynomialFrustum, MBSim::ContactKinematicsPointSpatialContour, MBSim::ContactKinematicsPointSphere, MBSim::ContactKinematicsSpatialContourSpatialContour, MBSim::ContactKinematicsSphereFrustum, MBSim::ContactKinematicsSpherePlane, MBSim::ContactKinematicsSpherePlate, MBSim::ContactKinematicsSpherePolynomialFrustum, MBSim::ContactKinematicsSphereSpatialContour, and MBSim::ContactKinematicsSphereSphere.

◆ updateg() [2/2]

virtual void MBSim::ContactKinematics::updateg ( std::vector< SingleContact > &  contact)
virtual

compute contact kinematics for all contacts

Parameters
contactvector of all contacts
iindex of the contact point that should be updated

Reimplemented in MBSim::ContactKinematicsCompoundContourCompoundContour, and MBSim::ContactKinematicsCompoundContourContour.

◆ updatewb() [1/2]

◆ updatewb() [2/2]

virtual void MBSim::ContactKinematics::updatewb ( std::vector< SingleContact > &  contact)
inlinevirtual

compute contact kinematics on acceleration level for all contacts

Parameters
conctactsingle contact
iindex of the contact that should be updated

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