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

class rigidClosure

A bilateral constraint that prevents one link from moving relative to the world coordinate system, or prevents two links from moving relative to each other.

Inheritance:


Public Fields

[more]link* l1
one of the links being constrained
[more]link* l2
the other link being constrained
[more]double distTol
the tolerance on relative motion before the constraint is considered to be violated.

Public Methods

[more] rigidClosure(void)
constructor
[more] rigidClosure(link* L1, link* L2, part* p1 = NULL, part* p2 = NULL)
constructor
[more] rigidClosure(link* L1, part* p = NULL)
constructor


Inherited from bconstraint:


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

A bilateral constraint that prevents one link from moving relative to the world coordinate system, or prevents two links from moving relative to each other. After activation, a rigidConstraint allows no further relative motion between the two links. The constraint equations for a two-link rigidClosure are:

*vDiff = *l1->vcDotS - *l2->vcDotS = 0 *omegaDotDiff = *l1->omegaDotS - *l2->omegaDotS = 0

A one-link rigidClosure has a simpler form:

*vDiff = *l1->vcDotS = 0; *omegaDiff = *l1->omegaDotS = 0;

Users can change the value of 'distTol' if they see significant constraint violations. Selecting a smaller timestep and/or error threshold (tol) in the dynoSolver can also help with this.

olink* l1
one of the links being constrained

olink* l2
the other link being constrained

odouble distTol
the tolerance on relative motion before the constraint is considered to be violated. Smaller values will lead to less violation, but may slow down the simulation.

o rigidClosure(void)
constructor

o rigidClosure(link* L1, link* L2, part* p1 = NULL, part* p2 = NULL)
constructor

o rigidClosure(link* L1, part* p = NULL)
constructor


This class has no child classes.
Friends:
mechanism
dynamicSystem

Alphabetic index HTML hierarchy of classes or Java



This page was generated with the help of DOC++.