16 #ifndef SURGSIM_MATH_MLCPGAUSSSEIDELSOLVER_H 17 #define SURGSIM_MATH_MLCPGAUSSSEIDELSOLVER_H 75 double getEpsilonConvergence()
const;
79 void setEpsilonConvergence(
double precision);
82 double getContactTolerance()
const;
86 void setContactTolerance(
double tolerance);
89 size_t getMaxIterations()
const;
93 void setMaxIterations(
size_t maxIterations);
99 const std::vector<MlcpConstraintType>& constraintsType,
100 size_t constraintID,
size_t matrixEntryForConstraintID);
105 const std::vector<MlcpConstraintType>& constraintsType,
107 double* convergenceCriteria,
108 bool* validSignorini);
114 const std::vector<MlcpConstraintType>& constraintsType,
115 double constraintConvergenceCriteria[MLCP_NUM_CONSTRAINT_TYPES],
double* convergenceCriteria,
116 bool* validSignorini);
121 const std::vector<MlcpConstraintType>& constraintsType,
122 double convergenceCriteria,
123 bool validSignorini,
size_t iterations);
144 std::shared_ptr<SurgSim::Framework::Logger>
m_logger;
150 #endif // SURGSIM_MATH_MLCPGAUSSSEIDELSOLVER_H Definition: CompoundShapeToGraphics.cpp:29
A solver for mixed LCP problems using the Gauss-Seidel iterative method.
Definition: MlcpGaussSeidelSolver.h:53
Eigen::Matrix< double, Eigen::Dynamic, 1 > Vector
Definition: MlcpProblem.h:63
Definition: MlcpConstraintType.h:44
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > Matrix
A dynamic size matrix.
Definition: Matrix.h:65
Matrix m_lhsEnforcedLocalSystem
The left-hand side matrix.
Definition: MlcpGaussSeidelSolver.h:138
double m_epsilonConvergence
The precision.
Definition: MlcpGaussSeidelSolver.h:126
size_t m_numEnforcedAtomicConstraints
The number of atomic constraints, aka the system size.
Definition: MlcpGaussSeidelSolver.h:135
Eigen::Matrix< double, Eigen::Dynamic, 1 > Vector
A dynamic size column vector.
Definition: Vector.h:68
Eigen::Matrix< double, Eigen::Dynamic, 1 > Vector
Definition: MlcpSolution.h:35
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > Matrix
Definition: MlcpProblem.h:62
size_t m_maxIterations
The maximum number of iterations.
Definition: MlcpGaussSeidelSolver.h:132
The description of a solution to a mixed linear complementarity problem.
Definition: MlcpSolution.h:33
This class provides a solver interface for mixed linear complementarity problems. ...
Definition: MlcpSolver.h:30
Definitions of small fixed-size square matrix types.
Definitions of small fixed-size vector types.
Vector m_rhsEnforcedLocalSystem
The right-hand side vector.
Definition: MlcpGaussSeidelSolver.h:141
std::shared_ptr< SurgSim::Framework::Logger > m_logger
The logger.
Definition: MlcpGaussSeidelSolver.h:144
double m_contactTolerance
The contact tolerance.
Definition: MlcpGaussSeidelSolver.h:129
void solve(const T &a, const T &b, const T &epsilon, int *numRoots, std::array< T, N > *roots)
Specialized solve routine for linear polynomials (2 coefficients)
Definition: PolynomialRoots-inl.h:64
A description of an MLCP (mixed linear complementarity problem, or mixed LCP) system to be solved...
Definition: MlcpProblem.h:57