|
void | computeEnforcementSystem (int n, const MlcpProblem::Matrix &A, int nbColumnInA, const MlcpProblem::Vector &b, const MlcpSolution::Vector &initialGuess_and_solution, const MlcpProblem::Vector &frictionCoefs, const std::vector< MlcpConstraintType > &constraintsType, double subStep, int constraintID, int matrixEntryForConstraintID) |
|
void | calculateConvergenceCriteria (int n, const MlcpProblem::Matrix &A, int nbColumnInA, const MlcpProblem::Vector &b, const MlcpSolution::Vector &initialGuess_and_solution, const std::vector< MlcpConstraintType > &constraintsType, double subStep, double constraint_convergence_criteria[MLCP_NUM_CONSTRAINT_TYPES], double &convergence_criteria, bool &signoriniVerified, bool &signoriniValid) |
|
void | doOneIteration (int n, const MlcpProblem::Matrix &A, int nbColumnInA, const MlcpProblem::Vector &b, MlcpSolution::Vector *initialGuess_and_solution, const MlcpProblem::Vector &frictionCoefs, const std::vector< MlcpConstraintType > &constraintsType, double subStep, double constraint_convergence_criteria[MLCP_NUM_CONSTRAINT_TYPES], double &convergence_criteria, bool &signoriniVerified) |
|
void | printViolationsAndConvergence (int n, const MlcpProblem::Matrix &A, int nbColumnInA, const MlcpProblem::Vector &b, const MlcpSolution::Vector &initialGuess_and_solution, const std::vector< MlcpConstraintType > &constraintsType, double subStep, double convergence_criteria, bool signorini_verified, int nbLoop) |
|
A solver for mixed LCP problems using the Gauss-Seidel iterative method.
- Todo:
- Clean this up more...
The problem can contain:
- CONSTRAINT = Bilateral constraint (all atomic, a fixed 3D point=3 atomics independents constraints)
- CONTACT = Unilateral constraint
- frictionless => 1 atomic constraint per contact
- frictional with Coulomb friction (1 mu parameter per contact) => 3 atomic dependent constraints per contact (1 directional + 2 tangentials)
- SUTURING = Sliding constraint for suturing
- Frictionless suturing constraint => 2 atomic constraints per sliding point
- Frictional suturing constraint => 3 atomic constraints per sliding point (2 directional + 1 tangential with friction on it) => 1 mu parameter per frictional suturing
See e.g.: Duriez, Christian; Dubois, F.; Kheddar, A.; Andriot, C., "Realistic haptic rendering of interacting
deformable objects in virtual environments," IEEE Transactions on Visualization and Computer Graphics, vol.12, no.1, pp.36,47, Jan.-Feb. 2006.