#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.