mbsim  4.0.0
MBSim Kernel
MBSim::MaxwellContact Class Reference

class for maxwell contacts More...

#include <maxwell_contact.h>

Inheritance diagram for MBSim::MaxwellContact:
[legend]

Classes

struct  saved_references
 
struct  xmlInfo
 

Public Member Functions

 MaxwellContact (const std::string &name="")
 constructor More...
 
 ~MaxwellContact () override
 destructor
 
void updatewb () override
 
void updateW (int i=0) override
 
void updateV (int i=0) override
 
void updateh (int i=0) override
 
void updateg () override
 
void updategd () override
 
void updateStopVector () override
 
void updateJacobians (int j=0) override
 
void updateWRef (fmatvec::Mat &ref, int j=0) override
 references to contact force direction matrix of dynamic system parent More...
 
void updateVRef (fmatvec::Mat &ref, int j=0) override
 references to condensed contact force direction matrix of dynamic system parent More...
 
void updatehRef (fmatvec::Vec &hRef, int j=0) override
 references to complete and link smooth force vector of dynamic system parent More...
 
void updaterRef (fmatvec::Vec &hRef, int j=0) override
 references to nonsmooth force vector of dynamic system parent More...
 
void updatewbRef (fmatvec::Vec &ref) override
 references to TODO of dynamic system parent More...
 
void updatelaRef (fmatvec::Vec &ref) override
 references to contact force parameter of dynamic system parent More...
 
void updateLaRef (fmatvec::Vec &ref) override
 references to contact force parameter of dynamic system parent More...
 
void updategRef (fmatvec::Vec &ref) override
 references to contact relative distances of dynamic system parent More...
 
void updategdRef (fmatvec::Vec &ref) override
 references to contact relative velocities of dynamic system parent More...
 
void updateresRef (fmatvec::Vec &ref) override
 references to residuum of nonlinear contact equations of dynamic system parent More...
 
void updaterFactorRef (fmatvec::Vec &ref) override
 references to rfactors of dynamic system parent More...
 
void updatesvRef (fmatvec::Vec &ref) override
 references to stopvector of dynamic system parent (root function for event driven integration) More...
 
void updatejsvRef (fmatvec::VecInt &ref) override
 references to stopvector evaluation of dynamic system parent (root detection with corresponding bool array by event driven integrator) More...
 
void updateLinkStatusRef (fmatvec::VecInt &LinkStatusParent) override
 reference to vector of link status (for set valued links with piecewise link equations) More...
 
void updateLinkStatusRegRef (fmatvec::VecInt &LinkStatusRegParent) override
 reference to vector of link status (for single-valued links) More...
 
void calclaSize (int j) override
 calculates size of contact force parameters More...
 
void calcgSize (int j) override
 calculates size of relative distances More...
 
void calcgdSize (int j) override
 calculates size of gap velocities More...
 
void calcrFactorSize (int j) override
 calculates size of rfactors More...
 
void calcsvSize () override
 calculates size of stopvector (root function for event driven integration) More...
 
void calcLinkStatusSize () override
 calculates size of vector LinkStatus More...
 
void calcLinkStatusRegSize () override
 calculates size of vector LinkStatusReg More...
 
void init (InitStage stage, const InitConfigSet &config) override
 plots time series header More...
 
bool isSetValued () const override
 asks the link if it contains force laws that contribute to the lagrange multiplier and is therefore set valued More...
 
bool isSingleValued () const override
 asks the link if it contains single valued force laws that contribute to the right-hand side vector h More...
 
void updateLinkStatus () override
 
void updateLinkStatusReg () override
 
bool isActive () const override
 
bool gActiveChanged () override
 
bool detectImpact () override
 
void solveImpactsFixpointSingle () override
 
void solveConstraintsFixpointSingle () override
 
void solveImpactsGaussSeidel () override
 
void solveConstraintsGaussSeidel () override
 
void solveImpactsRootFinding () override
 
void solveConstraintsRootFinding () override
 
void jacobianConstraints () override
 computes JACOBIAN and mass action matrix of nonlinear contact equations More...
 
void jacobianImpacts () override
 computes JACOBIAN and mass action matrix of nonlinear contact equations on velocity level More...
 
void updaterFactors () override
 update relaxation factors for contact equations More...
 
void checkConstraintsForTermination () override
 verify underlying force laws concerning given tolerances More...
 
void checkImpactsForTermination () override
 verify underlying force laws on velocity level concerning given tolerances More...
 
void checkActive (int j) override
 check if set-valued contacts are active and set corresponding attributes More...
 
void setGeneralizedForceTolerance (double tol) override
 
void setGeneralizedImpulseTolerance (double tol) override
 
void setGeneralizedRelativePositionTolerance (double tol) override
 
void setGeneralizedRelativeVelocityTolerance (double tol) override
 
void setGeneralizedRelativeAccelerationTolerance (double tol) override
 
void setrMax (double rMax_) override
 
void setLinkStatusInd (int LinkStatusInd_) override
 
void setLinkStatusRegInd (int LinkStatusRegInd_) override
 
void setsvInd (int svInd_) override
 
void setlaInd (int laInd_) override
 
void setgInd (int gInd_) override
 
void setgdInd (int gdInd_) override
 
void setrFactorInd (int rFactorInd_) override
 
void LinearImpactEstimation (double t, fmatvec::Vec &gInActive_, fmatvec::Vec &gdInActive_, int *IndInActive_, fmatvec::Vec &gAct_, int *IndActive_) override
 get gap distance and calculate gap velocity of unilateral links to estimate impacts within the next step More...
 
void SizeLinearImpactEstimation (int *sizeInActive_, int *sizeActive_) override
 calculates the number of active and inactive unilateral constraints and increments sizeActive/sizeInActive More...
 
void updatecorrRef (fmatvec::Vec &ref) override
 
void updatecorr (int j) override
 
void calccorrSize (int j) override
 
void setcorrInd (int corrInd_) override
 
void checkRoot () override
 
void plot () override
 plots time dependent data More...
 
void setDynamicSystemSolver (DynamicSystemSolver *sys) override
 sets the used dynamics system solver to the element More...
 
void resetUpToDate () override
 
void setNormalForceLaw (GeneralizedForceLaw *fcl_)
 
GeneralizedForceLawgetNormalForceLaw () const
 
void setNormalImpactLaw (GeneralizedImpactLaw *fnil_)
 
void setTangentialForceLaw (FrictionForceLaw *fdf_)
 
void setTangentialImpactLaw (FrictionImpactLaw *ftil_)
 
void setContactKinematics (ContactKinematics *ck, size_t index=0)
 
ContactKinematicsgetContactKinematics (size_t index=0) const
 
ContactKinematicsfindContactKinematics (const std::string &cKName) const
 
const std::vector< std::vector< SingleContact > > & getSubcontacts () const
 
virtual void setPlotFeatureContactKinematics (std::string cKName, std::size_t pf, bool value)
 
virtual int getFrictionDirections ()
 
void connect (Contour *contour1, Contour *contour2, ContactKinematics *contactKinematics=nullptr, const std::string &name="")
 
ContourgetContour (int i, int j=0)
 
SingleContactgetSingleContact (int i, int j=0)
 
void initializeUsingXML (xercesc::DOMElement *element) override
 
void setGlobalSearch (bool gS_)
 
void setInitialGlobalSearch (bool iGS_)
 
void setInitialGuess (const fmatvec::MatV &zeta0_)
 
void setTolerance (double tol_)
 set tolerance for root-finding
 
virtual void initializeContourCouplings ()
 
void addContourCoupling (Contour *contour1, Contour *contour2, InfluenceFunction *fct)
 add a function that represents the coupling between two contours More...
 
void setDampingCoefficient (double d)
 
void setGapLimit (double gLim_)
 
virtual void updatePossibleContactPoints ()
 saves all possible contacts in a vector
 
virtual void updateInfluenceMatrix ()
 updates the influence matrix C More...
 
void updateRigidBodyGap ()
 update the rigid body distances (gaps) for the single contacts
 
virtual double computeInfluenceCoefficient (const std::pair< int, int > &contactIndex)
 computes the coupling factor for the influence matrix on one contact point (two contours) More...
 
virtual double computeInfluenceCoefficient (const std::pair< int, int > &contactIndex, const std::pair< int, int > &couplingContactIndex)
 computes the coupling factor for the influence matrix between two contact points (four contours) More...
 
virtual void computeMaterialConstant ()
 
void updateGeneralizedPositions () override
 
void updateGeneralizedForces () override
 
std::shared_ptr< OpenMBV::GroupgetLinksOpenMBVGrp () override
 
H5::GroupBasegetLinksPlotGroup () override
 
- 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
 

Protected Attributes

std::vector< std::vector< SingleContact > > contacts
 list of the single sub-contact(-points)
 
std::vector< ContactKinematics * > contactKinematics
 list of the single contact kinematics
 
std::vector< std::vector< Contour * > > contour
 
std::vector< std::string > ckNames
 names for the contact kinematics More...
 
std::map< std::pair< std::string, std::size_t >, bool > plotFeatureMap
 plotFeatures of sub-contacts More...
 
GeneralizedForceLawfcl
 force laws in normal and tangential direction on acceleration and velocity level
 
FrictionForceLawfdf
 force law defining relation between tangential velocities and tangential forces
 
GeneralizedImpactLawfnil
 force law defining relation between penetration velocity and resulting normal impulses
 
FrictionImpactLawftil
 force law defining relation between tangential velocities and forces impulses
 
bool gS
 
bool iGS
 
fmatvec::MatV zeta0
 
double tol
 tolerance for root-finding
 
std::vector< std::pair< int, int > > possibleContactPoints
 saves the indices of all active contacts in pairs More...
 
LinearComplementarityProblem LCP
 variable for the LCP
 
fmatvec::SymMat C
 Influence matrix between contact points.
 
fmatvec::Vec rigidBodyGap
 
std::map< std::pair< Contour *, Contour * >, InfluenceFunction * > influenceFunctions
 saves the influence functions for a pair of contours. The key is the pair of contour names
 
fmatvec::Vec solution0
 Solution of the last time, where contact has to be solved (can be used as starting guess for the next algorithm)
 
double dampingCoefficient
 coefficient for possible contact damping
 
double gLim
 relative contact point distance limit under which damping is active
 
double matConst
 parameter for guessing starting values of contact force (average eigenvalue of influence-matrix)
 
bool matConstSetted
 parameter to save if matConst has been computed already
 
- 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
 

Private Attributes

std::vector< saved_referencessaved_ref
 
std::vector< xmlInforeferenceXML
 

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)
 

Detailed Description

class for maxwell contacts

Author
Martin Foerg

Constructor & Destructor Documentation

◆ MaxwellContact()

MBSim::MaxwellContact::MaxwellContact ( const std::string &  name = "")

constructor

Parameters
nameof contact

Member Function Documentation

◆ addContourCoupling()

void MBSim::MaxwellContact::addContourCoupling ( Contour contour1,
Contour contour2,
InfluenceFunction fct 
)

add a function that represents the coupling between two contours

Parameters
nameof first contour
nameof second contour
Functionto describe coupling between contours

\General Remark: The parameters (LagrangeParameterPositions) of the function have to be in the same order as it was given the add(...)-method

◆ calccorrSize()

void MBSim::MaxwellContact::calccorrSize ( int  j)
overridevirtual

Reimplemented from MBSim::Link.

◆ calcgdSize()

void MBSim::MaxwellContact::calcgdSize ( int  j)
overridevirtual

calculates size of gap velocities

Parameters
flagto decide which contacts are included in the calculation

see SingleContact for the implementation and DynamicSystem for explanation

Reimplemented from MBSim::Link.

◆ calcgSize()

void MBSim::MaxwellContact::calcgSize ( int  j)
overridevirtual

calculates size of relative distances

Reimplemented from MBSim::Link.

◆ calclaSize()

void MBSim::MaxwellContact::calclaSize ( int  j)
overridevirtual

calculates size of contact force parameters

Reimplemented from MBSim::Link.

◆ calcLinkStatusRegSize()

void MBSim::MaxwellContact::calcLinkStatusRegSize ( )
overridevirtual

calculates size of vector LinkStatusReg

Reimplemented from MBSim::Link.

◆ calcLinkStatusSize()

void MBSim::MaxwellContact::calcLinkStatusSize ( )
overridevirtual

calculates size of vector LinkStatus

Reimplemented from MBSim::Link.

◆ calcrFactorSize()

void MBSim::MaxwellContact::calcrFactorSize ( int  j)
overridevirtual

calculates size of rfactors

Reimplemented from MBSim::Link.

◆ calcsvSize()

void MBSim::MaxwellContact::calcsvSize ( )
overridevirtual

calculates size of stopvector (root function for event driven integration)

Reimplemented from MBSim::Link.

◆ checkActive()

void MBSim::MaxwellContact::checkActive ( int  j)
overridevirtual

check if set-valued contacts are active and set corresponding attributes

Parameters
flagto decide which criteria are used to define 'activity'

see SingleContact for the implementation and DynamicSystem for explanation

Reimplemented from MBSim::Link.

◆ checkConstraintsForTermination()

void MBSim::MaxwellContact::checkConstraintsForTermination ( )
overridevirtual

verify underlying force laws concerning given tolerances

Reimplemented from MBSim::Link.

◆ checkImpactsForTermination()

void MBSim::MaxwellContact::checkImpactsForTermination ( )
overridevirtual

verify underlying force laws on velocity level concerning given tolerances

Reimplemented from MBSim::Link.

◆ checkRoot()

void MBSim::MaxwellContact::checkRoot ( )
overridevirtual

Reimplemented from MBSim::Link.

◆ computeInfluenceCoefficient() [1/2]

double MBSim::MaxwellContact::computeInfluenceCoefficient ( const std::pair< int, int > &  contactIndex)
virtual

computes the coupling factor for the influence matrix on one contact point (two contours)

Parameters
contoursvector of contours that are part of the contact
cpDatavector of ContourPointDatas
contactIndexindex pair of contact point

◆ computeInfluenceCoefficient() [2/2]

double MBSim::MaxwellContact::computeInfluenceCoefficient ( const std::pair< int, int > &  contactIndex,
const std::pair< int, int > &  couplingContactIndex 
)
virtual

computes the coupling factor for the influence matrix between two contact points (four contours)

Parameters
contoursvector of contours that are part of the contact
cpDatavector of ContourPointDatas
contactIndexindex pair of contact point
coupledContactIndexindex pair of coupling contact point

◆ connect()

void MBSim::MaxwellContact::connect ( Contour contour1,
Contour contour2,
ContactKinematics contactKinematics = nullptr,
const std::string &  name = "" 
)

connect two contours

Parameters
contour0first contour
contour1second contour
contactKinematicsThe contact kinematics that should be used to compute the contact point.
nameName of the contact in the output

◆ detectImpact()

bool MBSim::MaxwellContact::detectImpact ( )
overridevirtual
Returns
has an impact occured?

Reimplemented from MBSim::Link.

◆ gActiveChanged()

bool MBSim::MaxwellContact::gActiveChanged ( )
overridevirtual
Returns
has the relative distance vector changed?

Implements MBSim::Link.

◆ getFrictionDirections()

int MBSim::MaxwellContact::getFrictionDirections ( )
virtual
Returns
number of considered friction directions

◆ getLinksOpenMBVGrp()

std::shared_ptr< OpenMBV::Group > MBSim::MaxwellContact::getLinksOpenMBVGrp ( )
inlineoverridevirtual

Reimplemented from MBSim::Element.

◆ getLinksPlotGroup()

H5::GroupBase * MBSim::MaxwellContact::getLinksPlotGroup ( )
inlineoverridevirtual

Reimplemented from MBSim::Element.

◆ init()

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

plots time series header

Parameters
invocingparent class

Reimplemented from MBSim::Link.

◆ initializeUsingXML()

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

Reimplemented from MBSim::Element.

◆ isActive()

bool MBSim::MaxwellContact::isActive ( ) const
overridevirtual
Returns
are link equations active?

Implements MBSim::Link.

◆ isSetValued()

bool MBSim::MaxwellContact::isSetValued ( ) const
overridevirtual

asks the link if it contains force laws that contribute to the lagrange multiplier and is therefore set valued

Returns
set valued force laws used within the link?

Reimplemented from MBSim::Link.

◆ isSingleValued()

bool MBSim::MaxwellContact::isSingleValued ( ) const
overridevirtual

asks the link if it contains single valued force laws that contribute to the right-hand side vector h

Returns
single valued force laws used within link?

Reimplemented from MBSim::Link.

◆ jacobianConstraints()

void MBSim::MaxwellContact::jacobianConstraints ( )
overridevirtual

computes JACOBIAN and mass action matrix of nonlinear contact equations

Reimplemented from MBSim::Link.

◆ jacobianImpacts()

void MBSim::MaxwellContact::jacobianImpacts ( )
overridevirtual

computes JACOBIAN and mass action matrix of nonlinear contact equations on velocity level

Reimplemented from MBSim::Link.

◆ LinearImpactEstimation()

void MBSim::MaxwellContact::LinearImpactEstimation ( double  t,
fmatvec::Vec &  gInActive_,
fmatvec::Vec &  gdInActive_,
int *  IndInActive_,
fmatvec::Vec &  gAct_,
int *  IndActive_ 
)
overridevirtual

get gap distance and calculate gap velocity of unilateral links to estimate impacts within the next step

Parameters
gInActivegap distance of inactive links (return)
gdInActivegap velocities of inactive links (return)
IndInActiveindex for gInActive/gdInActive; incremented with size after storage (return and input)
gActgap distance of active links (return)
IndActiveindex for gActive; incremented with size after storage (return and input)

Reimplemented from MBSim::Link.

◆ plot()

void MBSim::MaxwellContact::plot ( )
overridevirtual

plots time dependent data

Parameters
simulationtime
simulationtime step size for derivative calculation

Reimplemented from MBSim::Link.

◆ resetUpToDate()

void MBSim::MaxwellContact::resetUpToDate ( )
overridevirtual

Reimplemented from MBSim::Link.

◆ setcorrInd()

void MBSim::MaxwellContact::setcorrInd ( int  corrInd_)
overridevirtual

Reimplemented from MBSim::Link.

◆ setDynamicSystemSolver()

void MBSim::MaxwellContact::setDynamicSystemSolver ( DynamicSystemSolver sys)
overridevirtual

sets the used dynamics system solver to the element

Parameters
pointerto the dynamic system solver of which the element is part of

Reimplemented from MBSim::Element.

◆ setgdInd()

void MBSim::MaxwellContact::setgdInd ( int  gdInd_)
overridevirtual

Reimplemented from MBSim::Link.

◆ setGeneralizedForceTolerance()

void MBSim::MaxwellContact::setGeneralizedForceTolerance ( double  tol)
overridevirtual

Reimplemented from MBSim::Link.

◆ setGeneralizedImpulseTolerance()

void MBSim::MaxwellContact::setGeneralizedImpulseTolerance ( double  tol)
overridevirtual

Reimplemented from MBSim::Link.

◆ setGeneralizedRelativeAccelerationTolerance()

void MBSim::MaxwellContact::setGeneralizedRelativeAccelerationTolerance ( double  tol)
overridevirtual

Reimplemented from MBSim::Link.

◆ setGeneralizedRelativePositionTolerance()

void MBSim::MaxwellContact::setGeneralizedRelativePositionTolerance ( double  tol)
overridevirtual

Reimplemented from MBSim::Link.

◆ setGeneralizedRelativeVelocityTolerance()

void MBSim::MaxwellContact::setGeneralizedRelativeVelocityTolerance ( double  tol)
overridevirtual

Reimplemented from MBSim::Link.

◆ setgInd()

void MBSim::MaxwellContact::setgInd ( int  gInd_)
overridevirtual

Reimplemented from MBSim::Link.

◆ setlaInd()

void MBSim::MaxwellContact::setlaInd ( int  laInd_)
overridevirtual

Reimplemented from MBSim::Link.

◆ setLinkStatusInd()

void MBSim::MaxwellContact::setLinkStatusInd ( int  LinkStatusInd_)
overridevirtual

Reimplemented from MBSim::Link.

◆ setLinkStatusRegInd()

void MBSim::MaxwellContact::setLinkStatusRegInd ( int  LinkStatusRegInd_)
overridevirtual

Reimplemented from MBSim::Link.

◆ setrFactorInd()

void MBSim::MaxwellContact::setrFactorInd ( int  rFactorInd_)
overridevirtual

Reimplemented from MBSim::Link.

◆ setrMax()

void MBSim::MaxwellContact::setrMax ( double  rMax_)
overridevirtual

Reimplemented from MBSim::Link.

◆ setsvInd()

void MBSim::MaxwellContact::setsvInd ( int  svInd_)
overridevirtual

Reimplemented from MBSim::Link.

◆ SizeLinearImpactEstimation()

void MBSim::MaxwellContact::SizeLinearImpactEstimation ( int *  sizeInActive_,
int *  sizeActive_ 
)
overridevirtual

calculates the number of active and inactive unilateral constraints and increments sizeActive/sizeInActive

Reimplemented from MBSim::Link.

◆ solveConstraintsFixpointSingle()

void MBSim::MaxwellContact::solveConstraintsFixpointSingle ( )
overridevirtual

solve contact equations of motion with single step fixed point scheme

Reimplemented from MBSim::Link.

◆ solveConstraintsGaussSeidel()

void MBSim::MaxwellContact::solveConstraintsGaussSeidel ( )
overridevirtual

solve contact equations of motion with Gauss-Seidel scheme

Reimplemented from MBSim::Link.

◆ solveConstraintsRootFinding()

void MBSim::MaxwellContact::solveConstraintsRootFinding ( )
overridevirtual

solve contact equations of motion with Newton scheme

Reimplemented from MBSim::Link.

◆ solveImpactsFixpointSingle()

void MBSim::MaxwellContact::solveImpactsFixpointSingle ( )
overridevirtual

solve impact equations of motion with single step fixed point scheme on velocity level

Parameters
timestep-size

Reimplemented from MBSim::Link.

◆ solveImpactsGaussSeidel()

void MBSim::MaxwellContact::solveImpactsGaussSeidel ( )
overridevirtual

solve impact equations of motion with Gauss-Seidel scheme on velocity level

Parameters
timestep-size

Reimplemented from MBSim::Link.

◆ solveImpactsRootFinding()

void MBSim::MaxwellContact::solveImpactsRootFinding ( )
overridevirtual

solve impact equations of motion with Newton scheme on velocity level

Parameters
timestep-size

Reimplemented from MBSim::Link.

◆ updatecorr()

void MBSim::MaxwellContact::updatecorr ( int  j)
overridevirtual

Reimplemented from MBSim::Link.

◆ updatecorrRef()

void MBSim::MaxwellContact::updatecorrRef ( fmatvec::Vec &  ref)
overridevirtual

Reimplemented from MBSim::Link.

◆ updateg()

void MBSim::MaxwellContact::updateg ( )
overridevirtual

Reimplemented from MBSim::Link.

◆ updategd()

void MBSim::MaxwellContact::updategd ( )
overridevirtual

Reimplemented from MBSim::Link.

◆ updategdRef()

void MBSim::MaxwellContact::updategdRef ( fmatvec::Vec &  ref)
overridevirtual

references to contact relative velocities of dynamic system parent

Reimplemented from MBSim::Link.

◆ updateGeneralizedForces()

void MBSim::MaxwellContact::updateGeneralizedForces ( )
overridevirtual

Reimplemented from MBSim::Link.

◆ updateGeneralizedPositions()

void MBSim::MaxwellContact::updateGeneralizedPositions ( )
overridevirtual

Reimplemented from MBSim::Link.

◆ updategRef()

void MBSim::MaxwellContact::updategRef ( fmatvec::Vec &  ref)
overridevirtual

references to contact relative distances of dynamic system parent

Reimplemented from MBSim::Link.

◆ updateh()

void MBSim::MaxwellContact::updateh ( int  i = 0)
overridevirtual

Reimplemented from MBSim::Link.

◆ updatehRef()

void MBSim::MaxwellContact::updatehRef ( fmatvec::Vec &  hRef,
int  i = 0 
)
overridevirtual

references to complete and link smooth force vector of dynamic system parent

Implements MBSim::Link.

◆ updateInfluenceMatrix()

void MBSim::MaxwellContact::updateInfluenceMatrix ( )
virtual

updates the influence matrix C

Parameters
contoursvector of contours that are part of the contact
cpDatavector of ContourPointDatas

◆ updateJacobians()

void MBSim::MaxwellContact::updateJacobians ( int  j = 0)
overridevirtual

Reimplemented from MBSim::Link.

◆ updatejsvRef()

void MBSim::MaxwellContact::updatejsvRef ( fmatvec::VecInt &  jsvParent)
overridevirtual

references to stopvector evaluation of dynamic system parent (root detection with corresponding bool array by event driven integrator)

Reimplemented from MBSim::Link.

◆ updatelaRef()

void MBSim::MaxwellContact::updatelaRef ( fmatvec::Vec &  ref)
overridevirtual

references to contact force parameter of dynamic system parent

Reimplemented from MBSim::Link.

◆ updateLaRef()

void MBSim::MaxwellContact::updateLaRef ( fmatvec::Vec &  ref)
overridevirtual

references to contact force parameter of dynamic system parent

Reimplemented from MBSim::Link.

◆ updateLinkStatus()

void MBSim::MaxwellContact::updateLinkStatus ( )
overridevirtual

Reimplemented from MBSim::Link.

◆ updateLinkStatusRef()

void MBSim::MaxwellContact::updateLinkStatusRef ( fmatvec::VecInt &  LinkStatusParent)
overridevirtual

reference to vector of link status (for set valued links with piecewise link equations)

Reimplemented from MBSim::Link.

◆ updateLinkStatusReg()

void MBSim::MaxwellContact::updateLinkStatusReg ( )
overridevirtual

Reimplemented from MBSim::Link.

◆ updateLinkStatusRegRef()

void MBSim::MaxwellContact::updateLinkStatusRegRef ( fmatvec::VecInt &  LinkStatusRegParent)
overridevirtual

reference to vector of link status (for single-valued links)

Reimplemented from MBSim::Link.

◆ updateresRef()

void MBSim::MaxwellContact::updateresRef ( fmatvec::Vec &  ref)
overridevirtual

references to residuum of nonlinear contact equations of dynamic system parent

Reimplemented from MBSim::Link.

◆ updaterFactorRef()

void MBSim::MaxwellContact::updaterFactorRef ( fmatvec::Vec &  ref)
overridevirtual

references to rfactors of dynamic system parent

Reimplemented from MBSim::Link.

◆ updaterFactors()

void MBSim::MaxwellContact::updaterFactors ( )
overridevirtual

update relaxation factors for contact equations

Reimplemented from MBSim::Link.

◆ updaterRef()

void MBSim::MaxwellContact::updaterRef ( fmatvec::Vec &  ref,
int  i = 0 
)
overridevirtual

references to nonsmooth force vector of dynamic system parent

Implements MBSim::Link.

◆ updateStopVector()

void MBSim::MaxwellContact::updateStopVector ( )
overridevirtual

Reimplemented from MBSim::Link.

◆ updatesvRef()

void MBSim::MaxwellContact::updatesvRef ( fmatvec::Vec &  sv)
overridevirtual

references to stopvector of dynamic system parent (root function for event driven integration)

Reimplemented from MBSim::Link.

◆ updateV()

void MBSim::MaxwellContact::updateV ( int  i = 0)
overridevirtual

Reimplemented from MBSim::Link.

◆ updateVRef()

void MBSim::MaxwellContact::updateVRef ( fmatvec::Mat &  ref,
int  i = 0 
)
overridevirtual

references to condensed contact force direction matrix of dynamic system parent

Implements MBSim::Link.

◆ updateW()

void MBSim::MaxwellContact::updateW ( int  i = 0)
overridevirtual

Reimplemented from MBSim::Link.

◆ updatewb()

void MBSim::MaxwellContact::updatewb ( )
overridevirtual

Reimplemented from MBSim::Link.

◆ updatewbRef()

void MBSim::MaxwellContact::updatewbRef ( fmatvec::Vec &  ref)
overridevirtual

references to TODO of dynamic system parent

Reimplemented from MBSim::Link.

◆ updateWRef()

void MBSim::MaxwellContact::updateWRef ( fmatvec::Mat &  ref,
int  i = 0 
)
overridevirtual

references to contact force direction matrix of dynamic system parent

Implements MBSim::Link.

Member Data Documentation

◆ ckNames

std::vector<std::string> MBSim::MaxwellContact::ckNames
protected

names for the contact kinematics

Todo:
: what really is annoying is the fact, that due to the concept of the compound contour the sub contacts can not be build when the contours are connected. Thus it is not possible before the contact kinematics are assigned (what happens in the preInit-stage) that plot featers (and everything else, like names for the plot and so on) can not be set before. Thus this properties have to be saved in a special list in the multiple contact or the things are set later on...

◆ plotFeatureMap

std::map<std::pair<std::string, std::size_t>, bool> MBSim::MaxwellContact::plotFeatureMap
protected

plotFeatures of sub-contacts

Todo:
: see remark of ckNames

◆ possibleContactPoints

std::vector<std::pair<int, int> > MBSim::MaxwellContact::possibleContactPoints
protected

saves the indices of all active contacts in pairs

pair.first: number of contact kinematics pair.second: number of subcontact point of contact kinematics


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