20#ifndef _MAXWELL_CONTACT_H_
21#define _MAXWELL_CONTACT_H_
23#include <mbsim/links/single_contact.h>
24#include <mbsim/numerics/linear_complementarity_problem/linear_complementarity_problem.h>
29 class ContactKinematics;
30 class GeneralizedForceLaw;
31 class GeneralizedImpactLaw;
32 class FrictionForceLaw;
33 class FrictionImpactLaw;
34 class InfluenceFunction;
53 void updatewb()
override;
54 void updateW(
int i = 0)
override;
55 void updateV(
int i = 0)
override;
56 void updateh(
int i = 0)
override;
57 void updateg()
override;
58 void updategd()
override;
59 void updateStopVector()
override;
60 void updateJacobians(
int j = 0)
override;
64 void updateWRef(fmatvec::Mat &ref,
int j = 0)
override;
65 void updateVRef(fmatvec::Mat &ref,
int j = 0)
override;
66 void updatehRef(fmatvec::Vec &hRef,
int j = 0)
override;
67 void updaterRef(fmatvec::Vec &hRef,
int j = 0)
override;
86 void init(
InitStage stage,
const InitConfigSet &config)
override;
89 void updateLinkStatus()
override;
90 void updateLinkStatusReg()
override;
106 void setGeneralizedForceTolerance(
double tol)
override;
107 void setGeneralizedImpulseTolerance(
double tol)
override;
108 void setGeneralizedRelativePositionTolerance(
double tol)
override;
109 void setGeneralizedRelativeVelocityTolerance(
double tol)
override;
110 void setGeneralizedRelativeAccelerationTolerance(
double tol)
override;
111 void setrMax(
double rMax_)
override;
112 void setLinkStatusInd(
int LinkStatusInd_)
override;
113 void setLinkStatusRegInd(
int LinkStatusRegInd_)
override;
114 void setsvInd(
int svInd_)
override;
115 void setlaInd(
int laInd_)
override;
116 void setgInd(
int gInd_)
override;
117 void setgdInd(
int gdInd_)
override;
118 void setrFactorInd(
int rFactorInd_)
override;
119 void LinearImpactEstimation(
double t, fmatvec::Vec &gInActive_, fmatvec::Vec &gdInActive_,
int *IndInActive_, fmatvec::Vec &gAct_,
int *IndActive_)
override;
121 void updatecorrRef(fmatvec::Vec& ref)
override;
122 void updatecorr(
int j)
override;
123 void calccorrSize(
int j)
override;
124 void setcorrInd(
int corrInd_)
override;
125 void checkRoot()
override;
129 void plot()
override;
133 void resetUpToDate()
override;
153 if (pos <
static_cast<int>(
ckNames.size())) {
156 throwError(
"Name of contact Kinematics is not valid");
160 const std::vector<std::vector<SingleContact>> & getSubcontacts()
const {
164 virtual void setPlotFeatureContactKinematics(std::string cKName, std::size_t pf,
bool value);
181 Contour* getContour(
int i,
int j=0) {
return contour[i][j]; }
185 void initializeUsingXML(xercesc::DOMElement *element)
override;
187 void setGlobalSearch(
bool gS_) { gS = gS_; }
188 void setInitialGlobalSearch(
bool iGS_) { iGS = iGS_; }
189 void setInitialGuess(
const fmatvec::MatV &zeta0_) { zeta0 <<= zeta0_; }
196 virtual void initializeContourCouplings();
210 void setGapLimit(
double gLim_) {
gLim = gLim_; }
244 virtual double computeInfluenceCoefficient(
const std::pair<int, int> & contactIndex,
const std::pair<int, int> & couplingContactIndex);
249 virtual void computeMaterialConstant();
251 void updateGeneralizedPositions()
override;
252 void updateGeneralizedForces()
override;
254 std::shared_ptr<OpenMBV::Group> getLinksOpenMBVGrp()
override {
return getOpenMBVGrp(); }
268 std::vector<std::vector<Contour*>> contour;
335 fmatvec::Vec rigidBodyGap;
371 std::string contourPairingName;
373 std::vector<saved_references> saved_ref;
379 std::vector<xmlInfo> referenceXML;
basic class for contour definition for rigid (which do not know about their shape) and flexible (they...
Definition: contour.h:40
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
function describing the influence between the deformations on a body
Definition: influence_function.h:45
class to solve a linear complementarity problem
Definition: linear_complementarity_problem.h:38
general link to one or more objects
Definition: link.h:48
namespace MBSim
Definition: bilateral_constraint.cc:30