#include <CGLinearSolver.h>


Public Types | |
| typedef TMatrix | Matrix |
| typedef TVector | Vector |
Public Member Functions | |
| CGLinearSolver () | |
| void | solve (Matrix &M, Vector &x, Vector &b) |
| Solve Mx=b. | |
| template<> | |
| void | cgstep_beta (Vector &p, Vector &r, double beta) |
| template<> | |
| void | cgstep_alpha (Vector &x, Vector &r, Vector &p, Vector &q, double alpha) |
Data Fields | |
| Data< unsigned > | f_maxIter |
| Data< double > | f_tolerance |
| Data< double > | f_smallDenominatorThreshold |
| Data< bool > | f_verbose |
Protected Member Functions | |
| void | cgstep_beta (Vector &p, Vector &r, double beta) |
| This method is separated from the rest to be able to use custom/optimized versions depending on the types of vectors. | |
| void | cgstep_alpha (Vector &x, Vector &r, Vector &p, Vector &q, double alpha) |
| This method is separated from the rest to be able to use custom/optimized versions depending on the types of vectors. | |
Definition at line 44 of file CGLinearSolver.h.
| typedef TMatrix sofa::component::linearsolver::CGLinearSolver< TMatrix, TVector >::Matrix |
Definition at line 47 of file CGLinearSolver.h.
| typedef TVector sofa::component::linearsolver::CGLinearSolver< TMatrix, TVector >::Vector |
Definition at line 48 of file CGLinearSolver.h.
| sofa::component::linearsolver::CGLinearSolver< TMatrix, TVector >::CGLinearSolver | ( | ) | [inline] |
Definition at line 54 of file CGLinearSolver.h.
| void sofa::component::linearsolver::CGLinearSolver< simulation::GraphScatteredMatrix, simulation::GraphScatteredVector >::cgstep_alpha | ( | Vector & | x, | |
| Vector & | r, | |||
| Vector & | p, | |||
| Vector & | q, | |||
| double | alpha | |||
| ) | [inline] |
Definition at line 198 of file CGLinearSolver.h.
References sofa::core::objectmodel::BaseObject::getContext().
| void sofa::component::linearsolver::CGLinearSolver< TMatrix, TVector >::cgstep_alpha | ( | Vector & | x, | |
| Vector & | r, | |||
| Vector & | p, | |||
| Vector & | q, | |||
| double | alpha | |||
| ) | [inline, protected] |
This method is separated from the rest to be able to use custom/optimized versions depending on the types of vectors.
It computes: x += p*alpha, r -= q*alpha
Definition at line 185 of file CGLinearSolver.h.
Referenced by sofa::component::linearsolver::CGLinearSolver< TMatrix, TVector >::solve().
| void sofa::component::linearsolver::CGLinearSolver< simulation::GraphScatteredMatrix, simulation::GraphScatteredVector >::cgstep_beta | ( | Vector & | p, | |
| Vector & | r, | |||
| double | beta | |||
| ) | [inline] |
| void sofa::component::linearsolver::CGLinearSolver< TMatrix, TVector >::cgstep_beta | ( | Vector & | p, | |
| Vector & | r, | |||
| double | beta | |||
| ) | [inline, protected] |
This method is separated from the rest to be able to use custom/optimized versions depending on the types of vectors.
It computes: p = p*beta + r
Definition at line 178 of file CGLinearSolver.h.
Referenced by sofa::component::linearsolver::CGLinearSolver< TMatrix, TVector >::solve().
| void sofa::component::linearsolver::CGLinearSolver< TMatrix, TVector >::solve | ( | Matrix & | M, | |
| Vector & | x, | |||
| Vector & | b | |||
| ) | [inline] |
Solve Mx=b.
Definition at line 71 of file CGLinearSolver.h.
References sofa::component::linearsolver::CGLinearSolver< TMatrix, TVector >::cgstep_alpha(), sofa::component::linearsolver::CGLinearSolver< TMatrix, TVector >::cgstep_beta(), sofa::simulation::MatrixLinearSolver< TMatrix, TVector >::createVector(), sofa::simulation::MatrixLinearSolver< TMatrix, TVector >::deleteVector(), sofa::component::linearsolver::CGLinearSolver< TMatrix, TVector >::f_maxIter, sofa::core::objectmodel::BaseObject::f_printLog, sofa::component::linearsolver::CGLinearSolver< TMatrix, TVector >::f_smallDenominatorThreshold, sofa::component::linearsolver::CGLinearSolver< TMatrix, TVector >::f_tolerance, sofa::component::linearsolver::CGLinearSolver< TMatrix, TVector >::f_verbose, and sofa::core::objectmodel::Data< T >::getValue().
| Data<unsigned> sofa::component::linearsolver::CGLinearSolver< TMatrix, TVector >::f_maxIter |
Definition at line 49 of file CGLinearSolver.h.
Referenced by sofa::component::collision::SolverMergers::createLinearSolver(), main(), and sofa::component::linearsolver::CGLinearSolver< TMatrix, TVector >::solve().
| Data<double> sofa::component::linearsolver::CGLinearSolver< TMatrix, TVector >::f_smallDenominatorThreshold |
Definition at line 51 of file CGLinearSolver.h.
Referenced by sofa::component::collision::SolverMergers::createLinearSolver(), main(), and sofa::component::linearsolver::CGLinearSolver< TMatrix, TVector >::solve().
| Data<double> sofa::component::linearsolver::CGLinearSolver< TMatrix, TVector >::f_tolerance |
Definition at line 50 of file CGLinearSolver.h.
Referenced by sofa::component::collision::SolverMergers::createLinearSolver(), main(), and sofa::component::linearsolver::CGLinearSolver< TMatrix, TVector >::solve().
| Data<bool> sofa::component::linearsolver::CGLinearSolver< TMatrix, TVector >::f_verbose |
Definition at line 52 of file CGLinearSolver.h.
Referenced by sofa::component::linearsolver::CGLinearSolver< TMatrix, TVector >::solve().
1.5.7.1