#include <GenericConstraintProblem.h>
|
| | GenericConstraintProblem () |
| |
| | ~GenericConstraintProblem () override |
| |
| void | clear (int nbConstraints) override |
| |
| void | freeConstraintResolutions () |
| |
| void | solveTimed (SReal tol, int maxIt, SReal timeout) override |
| |
| void | gaussSeidel (SReal timeout=0, GenericConstraintSolver *solver=nullptr) |
| | Projective Gauss Seidel method building the compliance matrix. More...
|
| |
| void | unbuiltGaussSeidel (SReal timeout=0, GenericConstraintSolver *solver=nullptr) |
| | Projective Gauss Seidel unbuilt method. More...
|
| |
| void | NNCG (GenericConstraintSolver *solver=nullptr, int iterationNewton=1) |
| |
| void | gaussSeidel_increment (bool measureError, SReal *dfree, SReal *force, SReal **w, SReal tol, SReal *d, int dim, bool &constraintsAreVerified, SReal &error, sofa::type::vector< SReal > &tabErrors) const |
| |
| void | result_output (GenericConstraintSolver *solver, SReal *force, SReal error, int iterCount, bool convergence) |
| |
| int | getNumConstraints () |
| |
| int | getNumConstraintGroups () |
| |
| | ConstraintProblem () |
| |
| virtual | ~ConstraintProblem () |
| |
| int | getDimension () const |
| |
| SReal ** | getW () |
| |
| SReal * | getDfree () |
| |
| SReal * | getF () |
| |
| unsigned int | getProblemId () |
| |
◆ _d
◆ allVerified
| bool sofa::component::constraint::lagrangian::solver::GenericConstraintProblem::allVerified |
◆ cclist_elems
| std::vector< ConstraintCorrections > sofa::component::constraint::lagrangian::solver::GenericConstraintProblem::cclist_elems |
◆ change_sequence
| bool sofa::component::constraint::lagrangian::solver::GenericConstraintProblem::change_sequence |
◆ constraints_sequence
| std::list<unsigned int> sofa::component::constraint::lagrangian::solver::GenericConstraintProblem::constraints_sequence |
◆ constraintsResolutions
◆ currentError
| SReal sofa::component::constraint::lagrangian::solver::GenericConstraintProblem::currentError |
◆ currentIterations
| int sofa::component::constraint::lagrangian::solver::GenericConstraintProblem::currentIterations |
◆ m_deltaF
◆ m_deltaF_new
◆ m_lam
◆ m_p
◆ scaleTolerance
| bool sofa::component::constraint::lagrangian::solver::GenericConstraintProblem::scaleTolerance |
◆ sceneTime
| SReal sofa::component::constraint::lagrangian::solver::GenericConstraintProblem::sceneTime |
◆ sor
| SReal sofa::component::constraint::lagrangian::solver::GenericConstraintProblem::sor |
◆ Wdiag
◆ GenericConstraintProblem()
| sofa::component::constraint::lagrangian::solver::GenericConstraintProblem::GenericConstraintProblem |
( |
| ) |
|
|
inline |
◆ ~GenericConstraintProblem()
| sofa::component::constraint::lagrangian::solver::GenericConstraintProblem::~GenericConstraintProblem |
( |
| ) |
|
|
inlineoverride |
◆ clear()
| void sofa::component::constraint::lagrangian::solver::GenericConstraintProblem::clear |
( |
int |
nbConstraints | ) |
|
|
overridevirtual |
◆ freeConstraintResolutions()
| void sofa::component::constraint::lagrangian::solver::GenericConstraintProblem::freeConstraintResolutions |
( |
| ) |
|
◆ gaussSeidel()
| void sofa::component::constraint::lagrangian::solver::GenericConstraintProblem::gaussSeidel |
( |
SReal |
timeout = 0, |
|
|
GenericConstraintSolver * |
solver = nullptr |
|
) |
| |
Projective Gauss Seidel method building the compliance matrix.
◆ gaussSeidel_increment()
| void sofa::component::constraint::lagrangian::solver::GenericConstraintProblem::gaussSeidel_increment |
( |
bool |
measureError, |
|
|
SReal * |
dfree, |
|
|
SReal * |
force, |
|
|
SReal ** |
w, |
|
|
SReal |
tol, |
|
|
SReal * |
d, |
|
|
int |
dim, |
|
|
bool & |
constraintsAreVerified, |
|
|
SReal & |
error, |
|
|
sofa::type::vector< SReal > & |
tabErrors |
|
) |
| const |
◆ getNumConstraintGroups()
| int sofa::component::constraint::lagrangian::solver::GenericConstraintProblem::getNumConstraintGroups |
( |
| ) |
|
◆ getNumConstraints()
| int sofa::component::constraint::lagrangian::solver::GenericConstraintProblem::getNumConstraints |
( |
| ) |
|
◆ NNCG()
| void sofa::component::constraint::lagrangian::solver::GenericConstraintProblem::NNCG |
( |
GenericConstraintSolver * |
solver = nullptr, |
|
|
int |
iterationNewton = 1 |
|
) |
| |
Method from: A nonsmooth nonlinear conjugate gradient method for interactive contact force problems
- 2010, Silcowitz, Morten and Niebe, Sarah and Erleben, Kenny
◆ result_output()
| void sofa::component::constraint::lagrangian::solver::GenericConstraintProblem::result_output |
( |
GenericConstraintSolver * |
solver, |
|
|
SReal * |
force, |
|
|
SReal |
error, |
|
|
int |
iterCount, |
|
|
bool |
convergence |
|
) |
| |
◆ solveTimed()
| void sofa::component::constraint::lagrangian::solver::GenericConstraintProblem::solveTimed |
( |
SReal |
tol, |
|
|
int |
maxIt, |
|
|
SReal |
timeout |
|
) |
| |
|
overridevirtual |
◆ unbuiltGaussSeidel()
| void sofa::component::constraint::lagrangian::solver::GenericConstraintProblem::unbuiltGaussSeidel |
( |
SReal |
timeout = 0, |
|
|
GenericConstraintSolver * |
solver = nullptr |
|
) |
| |
Projective Gauss Seidel unbuilt method.