In file /home/blah/darwin2k/src/dyno/mechanism/dynoConstraint.h:unilateral constraint for rolling contact with friction.
Inheritance:
Public Fields
-
triple rotCenter
- the axis of rotation for the wheel
-
triple rotOmega
- angular velocity of the wheel due to rotation about the axle
Public Methods
-
rollingContact(void)
- constructor
-
rollingContact(link* l, const triple &xlink, const triple &cworld, const triple &n, const triple &rotCenter, const triple &rotOmega, double tol, part* P = NULL)
- constructor.
-
rollingContact(link* l, link* l2, const triple &xlink, const triple &xlink2, const triple &n, const triple &rotCenter, const triple &rotOmega, double tol, part* P = NULL, part* P2 = NULL)
- constructor.
-
virtual int updateConstants(const triple &xlink, const triple &cworld, const triple &n, const triple &rotCenter, const triple &rotOmega, double tol)
- updates constants used in the constraint equations.
Public Methods
-
inline int dim(void) const
Public Fields
-
mechanism* mech
-
ptrList* otherMechs
-
linkForceRecord* frec
-
matrix Jc
-
double cDotTol
-
vector C
-
vector Cdot
-
int jdirty
-
int* _hasPosLimit
-
double* maxForce
-
double* minForce
-
vector prevF
-
int eindex
-
int iindex
-
int fdindex
-
int inSystem
-
double kp
-
double kv
Public Methods
-
inline int index(void) const
-
virtual int correctDrift(int i) const
-
inline virtual double computeCorrection(int i, int includeVel)
-
inline virtual int hasPosLimit(int i) const
-
inline virtual int hasNegLimit(int i) const
-
inline virtual int hasForceLimits(void) const
-
inline virtual void allocatePosLimits(void)
-
virtual void print(int printVal = 0)
-
virtual int createConstraintEquations(void)
-
virtual int deleteConstraintEquations(void)
-
virtual int setDynamicValues(void)
-
virtual const double* getCoefficients(int whichDof) const
-
virtual int resize(int newSize)
-
virtual int setDirtyFlags(void)
-
virtual int updateFlags(void)
-
inline virtual int isBilateral(void) const
-
inline virtual int isFrictional(int i) const
-
virtual int eval(int onlyConst = 0)
-
inline virtual double computeFStep(vector &a, vector &da, vector &f, vector &df, int i)
-
inline virtual double computeAStep(vector &a, vector &da, vector &f, vector &df, int i)
-
virtual int satisfied(const vector &a, const vector &f, int j)
-
inline virtual int needsImpulse(int i)
-
int computeJacobian(void)
-
virtual int violated(void)
-
virtual int applyToMech(mechanism* m, int subtract = 0)
-
int getGeneralizedForce(vector &gf)
-
virtual const linkForceRecord* getForces(void)
Public Fields
-
dynamicSystem* ds
-
int active
-
int stateSize
Public Methods
-
inline virtual int getState(double* state)
-
inline virtual int setState(const double* state)
-
inline virtual int reset(void)
Public Fields
-
static int staticClassID
-
int objectID
-
int verboseLevel
Public Methods
-
virtual const char* className(void) const
-
virtual synObject* copy(void) const
-
virtual int isOfType(int typeNum, int derivedOk)
-
static int setStaticClassID(void)
-
virtual int classID(void) const
Documentation
unilateral constraint for rolling contact with friction.
This contact is like a frictionContact except that it subtracts off
the contact point's acceleration due to the wheel's rotation about
the wheel axis. This simulates a rolling contact for spherical or
cylindrical surfaces.
- triple rotCenter
- the axis of rotation for the wheel
- triple rotOmega
- angular velocity of the wheel due to rotation about the axle
- rollingContact(void)
- constructor
- rollingContact(link* l, const triple &xlink, const triple &cworld, const triple &n, const triple &rotCenter, const triple &rotOmega, double tol, part* P = NULL)
- constructor. arguments are the same as those for the frictionContact
constructor with the addition of rotCenter and rotOmega, the
world-space rotation center and wheel angular velocity vector
- rollingContact(link* l, link* l2, const triple &xlink, const triple &xlink2, const triple &n, const triple &rotCenter, const triple &rotOmega, double tol, part* P = NULL, part* P2 = NULL)
- constructor. arguments are the same as those for the frictionContact
constructor with the addition of rotCenter and rotOmega, the
world-space rotation center and wheel angular velocity vector
- virtual int updateConstants(const triple &xlink, const triple &cworld, const triple &n, const triple &rotCenter, const triple &rotOmega, double tol)
- updates constants used in the constraint equations. This should
be called when using persistent contacts to update the constraint
for changing conditions. Note that this method is different from
contactConstraint::updateConstants, as it has extra arguments
specific for rolling contacts. It does call
contactConstraint::updateContacts, though.
- This class has no child classes.
Alphabetic index HTML hierarchy of classes or Java
This page was generated with the help of DOC++.