23#include <mbsim/links/single_contact.h>
28 class ContactKinematics;
29 class GeneralizedForceLaw;
30 class GeneralizedImpactLaw;
31 class FrictionForceLaw;
32 class FrictionImpactLaw;
62 void updatewb()
override;
63 void updateW(
int i = 0)
override;
64 void updateV(
int i = 0)
override;
65 void updateh(
int i = 0)
override;
66 void updateg()
override;
67 void updategd()
override;
68 void updateStopVector()
override;
69 void updateStopVectorParameters()
override;
70 void updateJacobians(
int j = 0)
override;
74 void updateWRef(fmatvec::Mat &ref,
int j = 0)
override;
75 void updateVRef(fmatvec::Mat &ref,
int j = 0)
override;
76 void updatehRef(fmatvec::Vec &hRef,
int j = 0)
override;
77 void updaterRef(fmatvec::Vec &hRef,
int j = 0)
override;
91 void calcisSize()
override;
98 void init(
InitStage stage,
const InitConfigSet &config)
override;
101 void updateLinkStatus()
override;
102 void updateLinkStatusReg()
override;
118 void setGeneralizedForceTolerance(
double tol)
override;
119 void setGeneralizedImpulseTolerance(
double tol)
override;
120 void setGeneralizedRelativePositionTolerance(
double tol)
override;
121 void setGeneralizedRelativeVelocityTolerance(
double tol)
override;
122 void setGeneralizedRelativeAccelerationTolerance(
double tol)
override;
123 void setGeneralizedRelativePositionCorrectionValue(
double corr)
override;
124 void setGeneralizedRelativeVelocityCorrectionValue(
double corr)
override;
125 void setrMax(
double rMax_)
override;
126 void setLinkStatusInd(
int LinkStatusInd_)
override;
127 void setLinkStatusRegInd(
int LinkStatusRegInd_)
override;
128 void setsvInd(
int svInd_)
override;
129 void setlaInd(
int laInd_)
override;
130 void setgInd(
int gInd_)
override;
131 void setgdInd(
int gdInd_)
override;
132 void setrFactorInd(
int rFactorInd_)
override;
133 void LinearImpactEstimation(
double t, fmatvec::Vec &gInActive_, fmatvec::Vec &gdInActive_,
int *IndInActive_, fmatvec::Vec &gAct_,
int *IndActive_)
override;
135 void updatecorrRef(fmatvec::Vec& ref)
override;
136 void updatecorr(
int j)
override;
137 void calccorrSize(
int j)
override;
138 void setcorrInd(
int corrInd_)
override;
139 void checkRoot()
override;
143 void plot()
override;
147 void resetUpToDate()
override;
153 void setNormalImpactLaw(GeneralizedImpactLaw *fnil_);
154 void setTangentialForceLaw(FrictionForceLaw *fdf_);
155 void setTangentialImpactLaw(FrictionImpactLaw *ftil_);
159 const std::vector<SingleContact>& getSubcontacts()
const {
return contacts; }
174 void connect(Contour *contour1, Contour* contour2);
176 Contour* getContour(
int i) {
return contour[i]; }
178 SingleContact& getSingleContact(
int i) {
return contacts[i]; }
180 void initializeUsingXML(xercesc::DOMElement *element)
override;
182 void setGlobalSearch(
bool gS_) { gS = gS_; }
183 void setInitialGlobalSearch(
bool iGS_) { iGS = iGS_; }
184 void setInitialGuess(
const fmatvec::MatV &zeta0_) { zeta0 <<= zeta0_; }
196 void updateGeneralizedPositions()
override;
198 std::shared_ptr<OpenMBV::Group> getLinksOpenMBVGrp()
override {
return getOpenMBVGrp(); }
212 std::vector<Contour*> contour{2};
257 std::string saved_ref1, saved_ref2;
solver interface for modelling and simulation of dynamic systems
Definition: dynamic_system_solver.h:61
InitStage
The stages of the initialization.
Definition: element.h:62
H5::GroupBase * getPlotGroup()
Definition: element.h:139
std::string name
name of element
Definition: element.h:260
basic friction force law on acceleration level for constraint description
Definition: friction_force_law.h:34
basic friction force law on velocity level for constraint description
Definition: friction_impact_law.h:32
basic force law on acceleration level for constraint description
Definition: generalized_force_law.h:34
basic force law on velocity level for constraint description
Definition: generalized_impact_law.h:32
general link to one or more objects
Definition: link.h:48
namespace MBSim
Definition: bilateral_constraint.cc:30