class for contacts More...
#include <maxwell_contact.h>
Classes | |
struct | xmlInfo |
Public Member Functions | |
MaxwellContact (const std::string &name="") | |
constructor More... | |
virtual | ~MaxwellContact () |
destructor | |
virtual std::string | getType () const |
virtual void | init (InitStage stage) |
plots time series header More... | |
virtual void | initializeContourCouplings () |
virtual void | initializeUsingXML (xercesc::DOMElement *element) |
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 () |
virtual void | updateGeneralizedNormalForce () |
![]() | |
Contact (const std::string &name="") | |
constructor More... | |
virtual | ~Contact () |
destructor | |
std::shared_ptr< OpenMBV::Group > | getOpenMBVGrp () |
virtual void | updatewb () |
virtual void | updateW (int i=0) |
virtual void | updateV (int i=0) |
virtual void | updateh (int i=0) |
virtual void | updateg () |
virtual void | updategd () |
virtual void | updateStopVector () |
virtual void | updateJacobians (int j=0) |
virtual void | updateWRef (const fmatvec::Mat &ref, int j=0) |
references to contact force direction matrix of dynamic system parent | |
virtual void | updateVRef (const fmatvec::Mat &ref, int j=0) |
references to condensed contact force direction matrix of dynamic system parent | |
virtual void | updatehRef (const fmatvec::Vec &hRef, int j=0) |
references to complete and link smooth force vector of dynamic system parent | |
virtual void | updaterRef (const fmatvec::Vec &hRef, int j=0) |
references to nonsmooth force vector of dynamic system parent | |
virtual void | updatewbRef (const fmatvec::Vec &ref) |
references to TODO of dynamic system parent | |
virtual void | updatelaRef (const fmatvec::Vec &ref) |
references to contact force parameter of dynamic system parent | |
virtual void | updateLaRef (const fmatvec::Vec &ref) |
references to contact force parameter of dynamic system parent | |
virtual void | updategRef (const fmatvec::Vec &ref) |
references to contact relative distances of dynamic system parent | |
virtual void | updategdRef (const fmatvec::Vec &ref) |
references to contact relative velocities of dynamic system parent | |
virtual void | updateresRef (const fmatvec::Vec &ref) |
references to residuum of nonlinear contact equations of dynamic system parent | |
virtual void | updaterFactorRef (const fmatvec::Vec &ref) |
references to rfactors of dynamic system parent | |
virtual void | updatesvRef (const fmatvec::Vec &ref) |
references to stopvector of dynamic system parent (root function for event driven integration) | |
virtual void | updatejsvRef (const fmatvec::VecInt &ref) |
references to stopvector evaluation of dynamic system parent (root detection with corresponding bool array by event driven integrator) | |
virtual void | updateLinkStatusRef (const fmatvec::VecInt &LinkStatusParent) |
reference to vector of link status (for set valued links with piecewise link equations) | |
virtual void | updateLinkStatusRegRef (const fmatvec::VecInt &LinkStatusRegParent) |
reference to vector of link status (for single-valued links) | |
virtual void | calcxSize () |
virtual void | calclaSize (int j) |
calculates size of contact force parameters | |
virtual void | calcgSize (int j) |
calculates size of relative distances | |
virtual void | calcgdSize (int j) |
calculates size of gap velocities More... | |
virtual void | calcrFactorSize (int j) |
calculates size of rfactors | |
virtual void | calcsvSize () |
calculates size of stopvector (root function for event driven integration) | |
virtual void | calcLinkStatusSize () |
calculates size of vector LinkStatus | |
virtual void | calcLinkStatusRegSize () |
calculates size of vector LinkStatusReg | |
virtual bool | isSetValued () const |
asks the link if it contains force laws that contribute to the lagrange multiplier and is therefore set valued More... | |
virtual bool | isSingleValued () const |
asks the link if it contains single valued force laws that contribute to the right-hand side vector h More... | |
virtual void | updateLinkStatus () |
virtual void | updateLinkStatusReg () |
virtual bool | isActive () const |
virtual bool | gActiveChanged () |
virtual bool | detectImpact () |
virtual void | solveImpactsFixpointSingle () |
virtual void | solveConstraintsFixpointSingle () |
virtual void | solveImpactsGaussSeidel () |
virtual void | solveConstraintsGaussSeidel () |
virtual void | solveImpactsRootFinding () |
virtual void | solveConstraintsRootFinding () |
virtual void | jacobianConstraints () |
computes JACOBIAN and mass action matrix of nonlinear contact equations | |
virtual void | jacobianImpacts () |
computes JACOBIAN and mass action matrix of nonlinear contact equations on velocity level | |
virtual void | updaterFactors () |
update relaxation factors for contact equations | |
virtual void | checkConstraintsForTermination () |
verify underlying force laws concerning given tolerances | |
virtual void | checkImpactsForTermination () |
verify underlying force laws on velocity level concerning given tolerances | |
virtual void | checkActive (int j) |
check if set-valued contacts are active and set corresponding attributes More... | |
virtual void | setlaTol (double tol) |
virtual void | setLaTol (double tol) |
virtual void | setgTol (double tol) |
virtual void | setgdTol (double tol) |
virtual void | setgddTol (double tol) |
virtual void | setrMax (double rMax_) |
virtual void | setLinkStatusInd (int LinkStatusInd_) |
virtual void | setLinkStatusRegInd (int LinkStatusRegInd_) |
virtual void | setsvInd (int svInd_) |
virtual void | setlaInd (int laInd_) |
virtual void | setgInd (int gInd_) |
virtual void | setgdInd (int gdInd_) |
virtual void | setrFactorInd (int rFactorInd_) |
virtual void | LinearImpactEstimation (double t, fmatvec::Vec &gInActive_, fmatvec::Vec &gdInActive_, int *IndInActive_, fmatvec::Vec &gAct_, int *IndActive_) |
get gap distance and calculate gap velocity of unilateral links to estimate impacts within the next step More... | |
virtual void | SizeLinearImpactEstimation (int *sizeInActive_, int *sizeActive_) |
calculates the number of active and inactive unilateral constraints and increments sizeActive/sizeInActive | |
virtual void | updatecorrRef (const fmatvec::Vec &ref) |
virtual void | updatecorr (int j) |
virtual void | calccorrSize (int j) |
virtual void | setcorrInd (int corrInd_) |
virtual void | checkRoot () |
std::shared_ptr< OpenMBV::Frame > & | getOpenMBVFrame () |
std::shared_ptr< OpenMBV::Arrow > & | getOpenMBVNormalForceArrow () |
std::shared_ptr< OpenMBV::Arrow > & | getOpenMBVTangentialForceArrow () |
virtual void | plot () |
plots time dependent data More... | |
virtual void | closePlot () |
closes plot file | |
void | resetUpToDate () |
BOOST_PARAMETER_MEMBER_FUNCTION ((void), enableOpenMBVContactPoints, tag,(optional(size,(double), 1)(offset,(double), 1)(transparency,(double), 0))) | |
Draw two OpenMBV::Frame's of size 'size' at the contact points if 'enable'==true, otherwise the object is available but disabled. If the contact is closed, then the two contact points are the same on each contour. If the contact is not closed, then the two contact point lie on the contours with minimal distance in between. The x-axis of this frames are orientated to the other frame origin (normal vector). | |
BOOST_PARAMETER_MEMBER_FUNCTION ((void), enableOpenMBVNormalForce, tag,(optional(scaleLength,(double), 1)(scaleSize,(double), 1)(referencePoint,(OpenMBV::Arrow::ReferencePoint), OpenMBV::Arrow::toPoint)(diffuseColor,(const fmatvec::Vec3 &),"[-1;1;1]")(transparency,(double), 0))) | |
Sets the OpenMBV::Arrow to be used for drawing the normal force vector. This vector is the force which is applied on the second contour. The reactio (not drawn) is applied on the first contour. | |
BOOST_PARAMETER_MEMBER_FUNCTION ((void), enableOpenMBVTangentialForce, tag,(optional(scaleLength,(double), 1)(scaleSize,(double), 1)(referencePoint,(OpenMBV::Arrow::ReferencePoint), OpenMBV::Arrow::toPoint)(diffuseColor,(const fmatvec::Vec3 &),"[-1;1;1]")(transparency,(double), 0))) | |
Sets the OpenMBV::Arrow to be used for drawing the friction force vector. This vector is the friction which is applied on the second contour. The reactio (not drawn) is applied on the frist contour. If using a set-valued friction law, then the arrow is drawn in green if the contact is in slip and in red, if the contact is in stick. | |
void | setNormalForceLaw (GeneralizedForceLaw *fcl_) |
GeneralizedForceLaw * | getNormalForceLaw () const |
void | setNormalImpactLaw (GeneralizedImpactLaw *fnil_) |
void | setTangentialForceLaw (FrictionForceLaw *fdf_) |
void | setTangentialImpactLaw (FrictionImpactLaw *ftil_) |
void | setContactKinematics (ContactKinematics *ck, size_t index=0) |
ContactKinematics * | getContactKinematics (size_t index=0) const |
ContactKinematics * | findContactKinematics (std::string cKName) const |
const std::vector< std::vector < SingleContact > > & | getSubcontacts () const |
virtual void | setPlotFeatureContactKinematics (std::string cKName, PlotFeature pf, PlotFeatureStatus value) |
virtual int | getFrictionDirections () |
void | connect (Contour *contour1, Contour *contour2, ContactKinematics *contactKinematics=0, const std::string &name="") |
Contour * | getContour (int i, int j=0) |
void | setSearchAllContactPoints (bool searchAllCP_) |
void | setInitialGuess (const fmatvec::VecV &zeta0_) |
![]() | |
Link (const std::string &name) | |
constructor More... | |
virtual | ~Link () |
destructor | |
virtual void | updateb () |
virtual void | updatedx () |
virtual void | updatexd () |
virtual const fmatvec::Vec & | getx () const |
virtual fmatvec::Vec & | getx () |
virtual void | setxInd (int xInd_) |
virtual int | getxSize () const |
virtual void | updatexRef (const fmatvec::Vec &ref) |
virtual void | updatexdRef (const fmatvec::Vec &ref) |
virtual void | updatedxRef (const fmatvec::Vec &ref) |
virtual void | updatebRef (const fmatvec::Mat &hRef) |
virtual void | initz () |
virtual void | writez (H5::GroupBase *group) |
virtual void | readz0 (H5::GroupBase *group) |
virtual void | setbInd (int bInd_) |
virtual void | deletelaRef () |
delete reference to contact force parameter of dynamic system parent | |
virtual void | calcbSize () |
calculates size of rfactors | |
virtual bool | hasSmoothPart () const |
virtual double | evalPotentialEnergy () |
compute potential energy | |
void | setx (const fmatvec::Vec &x_) |
int | getsvSize () const |
int | getLinkStatusSize () const |
int | getLinkStatusRegSize () const |
const fmatvec::Vec & | getla (bool check=true) const |
const fmatvec::Vec & | getLa (bool check=true) const |
fmatvec::Vec & | getla (bool check=true) |
fmatvec::Vec & | getLa (bool check=true) |
int | getlaInd () const |
int | getlaSize () const |
int | getbSize () const |
const fmatvec::Vec & | evalg () |
const fmatvec::Vec & | evalgd () |
const fmatvec::Vec & | evalla () |
const fmatvec::Vec & | evalLa () |
const fmatvec::Vec & | evalwb () |
const fmatvec::Vec & | evalxd () |
int | getgdInd () const |
int | getgSize () const |
int | getgdSize () const |
int | getrFactorSize () const |
const fmatvec::VecInt & | getrFactorUnsure () const |
void | resetUpToDate () |
virtual void | updateGeneralizedPositions () |
virtual void | updateGeneralizedVelocities () |
virtual void | updateGeneralizedForces () |
const fmatvec::VecV & | evalGeneralizedRelativePosition () |
const fmatvec::VecV & | evalGeneralizedRelativeVelocity () |
const fmatvec::VecV & | evalGeneralizedForce () |
fmatvec::VecV & | getGeneralizedForce (bool check=true) |
void | savela () |
saves contact forces for use as starting value in next time step | |
void | saveLa () |
saves contact impulses for use as starting value in next time step | |
void | initla () |
load contact forces for use as starting value | |
void | initLa () |
load contact impulses for use as starting value | |
void | decreaserFactors () |
decrease rfactor if mass action matrix is not diagonal dominant (cf. Foerg: Dissertation, page 80 et seq.) | |
int | getcorrSize () const |
![]() | |
Element (const std::string &name) | |
constructor | |
virtual | ~Element () |
destructor | |
virtual void | initDataInterfaceBase (DynamicSystemSolver *parentds) |
TODO. | |
virtual void | setDynamicSystemSolver (DynamicSystemSolver *sys) |
sets the used dynamics system solver to the element 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) |
DynamicSystemSolver * | getDynamicSystemSolver () |
virtual void | createPlotGroup () |
creates the plotGroup for H5-output | |
H5::GroupBase * | getPlotGroup () |
virtual void | setPlotFeature (PlotFeature pf, PlotFeatureStatus value) |
Set a plot feature. More... | |
void | setPlotFeatureForChildren (PlotFeature pf, PlotFeatureStatus value) |
Set a plot feature for the children of this object. More... | |
void | setPlotFeatureRecursive (PlotFeature pf, PlotFeatureStatus value) |
Set a plot feature for this object and the children of this object. More... | |
PlotFeatureStatus | getPlotFeature (PlotFeature pf) |
PlotFeatureStatus | getPlotFeatureForChildren (PlotFeature pf) |
PlotFeatureStatus | initializePlotFeatureStatusUsingXML (xercesc::DOMElement *e) |
PlotFeature | initializePlotFeatureUsingXML (xercesc::DOMElement *e) |
const std::vector < MBXMLUtils::EmbedDOMLocator > & | getLocationStack () const |
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=NULL, 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 Element * | getChildByContainerAndName (const std::string &container, const std::string &name) const |
Get the Element named name in the container named container. | |
virtual Element * | getParent () |
virtual const Element * | getParent () 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) |
const double & | getTime () const |
double | getStepSize () const |
![]() | |
Atom & | operator= (const Atom &) |
void | setMessageStreamActive (MsgType type, bool active) |
void | getMessageStream (MsgType type, std::shared_ptr< bool > &a, std::shared_ptr< std::ostream > &s) |
void | adoptMessageStreams (const Atom *src=NULL) |
std::ostream & | msg (MsgType type) |
bool | msgAct (MsgType type) |
Protected Attributes | |
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 | |
int | DEBUGLEVEL |
print INFO output? More... | |
![]() | |
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, PlotFeature > , PlotFeatureStatus > | plotFeatureMap |
plotFeatures of sub-contacts More... | |
GeneralizedForceLaw * | fcl |
force laws in normal and tangential direction on acceleration and velocity level | |
FrictionForceLaw * | fdf |
force law defining relation between tangential velocities and tangential forces | |
GeneralizedImpactLaw * | fnil |
force law defining relation between penetration velocity and resulting normal impulses | |
FrictionImpactLaw * | ftil |
force law defining relation between tangential velocities and forces impulses | |
bool | searchAllCP |
fmatvec::VecV | zeta0 |
std::shared_ptr< OpenMBV::Group > | openMBVGrp |
group for the plotting of the openMBV sub elements | |
std::shared_ptr< OpenMBV::Frame > | openMBVFrame |
Frame of ContactFrames to draw. | |
std::shared_ptr< OpenMBV::Arrow > | contactArrow |
pointer to memory of normal and friction forces to draw | |
std::shared_ptr< OpenMBV::Arrow > | frictionArrow |
![]() | |
fmatvec::Vec | x |
order one parameters | |
fmatvec::Vec | xd |
differentiated order one parameters | |
fmatvec::Vec | dx |
fmatvec::Vec | x0 |
order one initial value | |
int | xSize |
size and local index of order one parameters | |
int | xInd |
fmatvec::Vec | sv |
stop vector for event driven integration (root function) | |
fmatvec::VecInt | jsv |
evaluation of roots of stop vector with a boolean vector | |
int | svSize |
size and local index of stop vector | |
int | svInd |
fmatvec::VecInt | LinkStatus |
status of link (default 0) describing which piece of the equation is valid (e.g. stick or slip) More... | |
int | LinkStatusSize |
size and local index of link status vector (set-valued) | |
int | LinkStatusInd |
fmatvec::VecInt | LinkStatusReg |
status of link More... | |
int | LinkStatusRegSize |
size and local index of single-valued link status vector | |
int | LinkStatusRegInd |
fmatvec::Vec | g |
relative distance, relative velocity, contact force parameters | |
fmatvec::Vec | gd |
fmatvec::Vec | la |
fmatvec::Vec | La |
fmatvec::Vec | laS |
contact forces of smooth contact laws | |
int | gSize |
size and local index of relative distances | |
int | gInd |
int | gdSize |
size and local index of relative velocities | |
int | gdInd |
int | laSize |
size and local index of contact force parameters | |
int | laInd |
int | bSize |
size and local index of contact force parameters | |
int | bInd |
fmatvec::RangeV | Ig |
local index of relative distances and contact force parameters | |
fmatvec::RangeV | Ila |
double | gTol |
tolerance for relative velocity, relative acceleration, force and impact | |
double | gdTol |
double | gddTol |
double | laTol |
double | LaTol |
fmatvec::Vec | la0 |
attribute to save contact force parameter of previous time step | |
fmatvec::Vec | La0 |
fmatvec::Vec | rFactor |
vector of rfactors for relaxation of contact equations | |
fmatvec::VecInt | rFactorUnsure |
boolean vector defining if rfactor belongs to not diagonal dominant mass action matrix (cf. Foerg Dissertation, page 80 et seq.) | |
int | rFactorSize |
size and local index of rfactors | |
int | rFactorInd |
double | rMax |
maximum r-factor | |
fmatvec::Vec | res |
std::vector< fmatvec::Mat > | W [2] |
force direction matrix for nonsmooth right hand side | |
std::vector< fmatvec::Mat > | V [2] |
reduced force direction matrix for nonsmooth right hand side | |
std::vector< fmatvec::Vec > | h [2] |
smooth complete and link right hand side | |
std::vector< fmatvec::Mat > | dhdq |
smooth Jacobians for implicit integration | |
std::vector< fmatvec::Mat > | dhdu |
std::vector< fmatvec::Vec > | dhdt |
std::vector< fmatvec::Vec > | r [2] |
nonsmooth right hand side | |
fmatvec::Vec | wb |
TODO. | |
fmatvec::Mat | b |
TODO. | |
int | corrSize |
int | corrInd |
fmatvec::Vec | corr |
fmatvec::VecV | rrel |
fmatvec::VecV | vrel |
fmatvec::VecV | lambda |
bool | updrrel |
bool | updvrel |
bool | updla |
![]() | |
Element * | parent |
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. | |
std::vector < MBXMLUtils::EmbedDOMLocator > | locationStack |
DynamicSystemSolver * | ds |
dynamic system | |
H5::VectorSerie< double > * | plotVectorSerie |
time series | |
std::vector< double > | plotVector |
one entry of time series | |
std::vector< std::string > | plotColumns |
columns of time series | |
H5::GroupBase * | plotGroup |
associated plot group | |
std::vector< Element * > | dependency |
vector containing all dependencies. | |
Private Attributes | |
std::vector< xmlInfo > | referenceXML |
Additional Inherited Members | |
![]() | |
enum | PlotFeatureStatus { enabled, disabled, unset } |
Plot feature status. More... | |
enum | PlotFeature { plotRecursive =0, separateFilePerGroup, state, stateDerivative, notMinimalState, rightHandSide, globalPosition, globalVelocity, globalAcceleration, energy, openMBV, generalizedLinkForce, linkKinematics, stopVector, debug, LASTPLOTFEATURE } |
Plot Features. More... | |
enum | InitStage { modelBuildup =0, resolveXMLPath, preInit, resize, plotting, reorganizeHierarchy, unknownStage, LASTINITSTAGE } |
The stages of the initialization. More... | |
![]() | |
enum | MsgType |
![]() | |
static double | getDouble (xercesc::DOMElement *e) |
static int | getInt (xercesc::DOMElement *e) |
static bool | getBool (xercesc::DOMElement *e) |
static fmatvec::Vec3 | getVec3 (xercesc::DOMElement *e) |
static fmatvec::Vec | getVec (xercesc::DOMElement *e, int rows=0) |
static fmatvec::Mat3xV | getMat3xV (xercesc::DOMElement *e, int cols=0) |
static fmatvec::Mat | getMat (xercesc::DOMElement *e, int rows=0, int cols=0) |
static fmatvec::SqrMat3 | getSqrMat3 (xercesc::DOMElement *e) |
static fmatvec::SqrMat | getSqrMat (xercesc::DOMElement *e, int size=0) |
static fmatvec::SymMat3 | getSymMat3 (xercesc::DOMElement *e) |
static fmatvec::SymMat | getSymMat (xercesc::DOMElement *e, int size=0) |
![]() | |
static void | setCurrentMessageStream (MsgType type, const std::shared_ptr< bool > &a=std::make_shared< bool >(true), const std::shared_ptr< std::ostream > &s=std::make_shared< std::ostream >(std::cout.rdbuf())) |
static std::ostream & | msgStatic (MsgType type) |
static bool | msgActStatic (MsgType type) |
![]() | |
void | updatePlotFeatures () |
![]() | |
Atom (const Atom &src) | |
class for contacts
basic class for contacts between contours, mainly implementing geometrical informations of contact-pairings
Remarks:
MBSim::MaxwellContact::MaxwellContact | ( | const std::string & | name = "" | ) |
constructor
name | of contact |
void MBSim::MaxwellContact::addContourCoupling | ( | Contour * | contour1, |
Contour * | contour2, | ||
InfluenceFunction * | fct | ||
) |
add a function that represents the coupling between two contours
name | of first contour |
name | of second contour |
Function | to describe coupling between contours |
Remark: The parameters (LagrangeParameterPositions) of the function have to be in the same order as it was given the add(...)-method
|
virtual |
computes the coupling factor for the influence matrix on one contact point (two contours)
contours | vector of contours that are part of the contact |
cpData | vector of ContourPointDatas |
contactIndex | index pair of contact point |
|
virtual |
computes the coupling factor for the influence matrix between two contact points (four contours)
contours | vector of contours that are part of the contact |
cpData | vector of ContourPointDatas |
contactIndex | index pair of contact point |
coupledContactIndex | index pair of coupling contact point |
|
inlinevirtual |
Reimplemented from MBSim::Contact.
|
virtual |
|
virtual |
updates the influence matrix C
contours | vector of contours that are part of the contact |
cpData | vector of ContourPointDatas |
|
protected |
|
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