In file /home/blah/darwin2k/src/dyno/mechanism/dynoConstraint.h:

class rollingContact

unilateral constraint for rolling contact with friction.

Inheritance:


Public Fields

[more]triple rotCenter
the axis of rotation for the wheel
[more]triple rotOmega
angular velocity of the wheel due to rotation about the axle

Public Methods

[more] rollingContact(void)
constructor
[more] rollingContact(link* l, const triple &xlink, const triple &cworld, const triple &n, const triple &rotCenter, const triple &rotOmega, double tol, part* P = NULL)
constructor.
[more] 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.
[more]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.


Inherited from frictionContact:

Public Methods

oinline int dim(void) const


Inherited from contactConstraint:


Inherited from uconstraint:


Inherited from constraint:

Public Fields

omechanism* mech
optrList* otherMechs
olinkForceRecord* frec
omatrix Jc
odouble cDotTol
ovector C
ovector Cdot
oint jdirty
oint* _hasPosLimit
odouble* maxForce
odouble* minForce
ovector prevF
oint eindex
oint iindex
oint fdindex
oint inSystem
odouble kp
odouble kv

Public Methods

oinline int index(void) const
ovirtual int correctDrift(int i) const
oinline virtual double computeCorrection(int i, int includeVel)
oinline virtual int hasPosLimit(int i) const
oinline virtual int hasNegLimit(int i) const
oinline virtual int hasForceLimits(void) const
oinline virtual void allocatePosLimits(void)
ovirtual void print(int printVal = 0)
ovirtual int createConstraintEquations(void)
ovirtual int deleteConstraintEquations(void)
ovirtual int setDynamicValues(void)
ovirtual const double* getCoefficients(int whichDof) const
ovirtual int resize(int newSize)
ovirtual int setDirtyFlags(void)
ovirtual int updateFlags(void)
oinline virtual int isBilateral(void) const
oinline virtual int isFrictional(int i) const
ovirtual int eval(int onlyConst = 0)
oinline virtual double computeFStep(vector &a, vector &da, vector &f, vector &df, int i)
oinline virtual double computeAStep(vector &a, vector &da, vector &f, vector &df, int i)
ovirtual int satisfied(const vector &a, const vector &f, int j)
oinline virtual int needsImpulse(int i)
oint computeJacobian(void)
ovirtual int violated(void)
ovirtual int applyToMech(mechanism* m, int subtract = 0)
oint getGeneralizedForce(vector &gf)
ovirtual const linkForceRecord* getForces(void)


Inherited from dynoObject:

Public Fields

odynamicSystem* ds
oint active
oint stateSize

Public Methods

oinline virtual int getState(double* state)
oinline virtual int setState(const double* state)
oinline virtual int reset(void)


Inherited from synObject:

Public Fields

ostatic int staticClassID
oint objectID
oint verboseLevel

Public Methods

ovirtual const char* className(void) const
ovirtual synObject* copy(void) const
ovirtual int isOfType(int typeNum, int derivedOk)
ostatic int setStaticClassID(void)
ovirtual 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.
otriple rotCenter
the axis of rotation for the wheel

otriple rotOmega
angular velocity of the wheel due to rotation about the axle

o rollingContact(void)
constructor

o 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

o 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

ovirtual 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++.