Simbody
3.5
|
TODO: PLUS (Poisson-Lankarani-Uchida-Sherman) impulse solver. More...
Public Member Functions | |
PLUSImpulseSolver (Real roll2slipTransitionSpeed) | |
bool | solve (int phase, const Array_< MultiplierIndex > &participating, const Matrix &A, const Vector &D, const Array_< MultiplierIndex > &expanding, Vector &piExpand, Vector &verrStart, Vector &verrApplied, Vector &pi, Array_< UncondRT > &unconditional, Array_< UniContactRT > &uniContact, Array_< UniSpeedRT > &uniSpeed, Array_< BoundedRT > &bounded, Array_< ConstraintLtdFrictionRT > &consLtdFriction, Array_< StateLtdFrictionRT > &stateLtdFriction) const override |
Solve with conditional constraints. More... | |
bool | solveBilateral (const Array_< MultiplierIndex > &participating, const Matrix &A, const Vector &D, const Vector &rhs, Vector &pi) const override |
Solve with only unconditional constraints. More... | |
SimTK_DEFINE_UNIQUE_LOCAL_INDEX_TYPE (PLUSImpulseSolver, ActiveIndex) | |
Public Member Functions inherited from SimTK::ImpulseSolver | |
ImpulseSolver (Real roll2slipTransitionSpeed, Real convergenceTol, int maxIters) | |
virtual | ~ImpulseSolver () |
void | setMaxRollingSpeed (Real roll2slipTransitionSpeed) |
Real | getMaxRollingSpeed () const |
void | setConvergenceTol (Real tol) |
Real | getConvergenceTol () const |
void | setMaxIterations (int maxIts) |
int | getMaxIterations () const |
void | clearStats () const |
void | clearStats (int phase) const |
Additional Inherited Members | |
Public Types inherited from SimTK::ImpulseSolver | |
enum | ContactType { TypeNA =-1, Observing =0, Known =1, Participating =2 } |
enum | UniCond { UniNA =-1, UniOff =0, UniActive =1, UniKnown =2 } |
enum | FricCond { FricNA =-1, FricOff =0, Sliding =1, Impending =2, Rolling =3 } |
enum | BndCond { BndNA =-1, SlipLow =0, ImpendLow =1, Engaged =2, ImpendHigh =3, SlipHigh =4 } |
Static Public Member Functions inherited from SimTK::ImpulseSolver | |
static const char * | getContactTypeName (ContactType ct) |
static const char * | getUniCondName (UniCond uc) |
static const char * | getFricCondName (FricCond fc) |
static const char * | getBndCondName (BndCond bc) |
static void | dumpUniContacts (const String &msg, const Array_< UniContactRT > &uniContacts) |
Static Public Attributes inherited from SimTK::ImpulseSolver | |
static const int | MaxNumPhases = 3 |
Protected Attributes inherited from SimTK::ImpulseSolver | |
Real | m_maxRollingTangVel |
Real | m_convergenceTol |
int | m_maxIters |
long long | m_nSolves [MaxNumPhases] |
long long | m_nIters [MaxNumPhases] |
long long | m_nFail [MaxNumPhases] |
long long | m_nBilateralSolves |
long long | m_nBilateralIters |
long long | m_nBilateralFail |
TODO: PLUS (Poisson-Lankarani-Uchida-Sherman) impulse solver.
|
inlineexplicit |
|
overridevirtual |
Solve with conditional constraints.
Implements SimTK::ImpulseSolver.
|
overridevirtual |
Solve with only unconditional constraints.
Implements SimTK::ImpulseSolver.
SimTK::PLUSImpulseSolver::SimTK_DEFINE_UNIQUE_LOCAL_INDEX_TYPE | ( | PLUSImpulseSolver | , |
ActiveIndex | |||
) |