SOFA API  6a688117
Open source framework for multi-physics simuation
sofa::component::linearsolver::SSORPreconditioner< TMatrix, TVector, TThreadManager > Class Template Reference

#include <SSORPreconditioner.h>

Inheritance diagram for sofa::component::linearsolver::SSORPreconditioner< TMatrix, TVector, TThreadManager >:

Detailed Description

template<class TMatrix, class TVector, class TThreadManager = NoThreadManager>
class sofa::component::linearsolver::SSORPreconditioner< TMatrix, TVector, TThreadManager >

Linear system solver / preconditioner based on Successive Over Relaxation (SSOR).

If the matrix is decomposed as $A = D + L + L^T$, this solver computes

Classes

class  SSORPreconditionerInvertData
 

Public Attributes

Data< boolf_verbose
 Dump system state at each iteration. More...
 
Data< doublef_omega
 Omega coefficient. More...
 

Public Member Functions

 SOFA_CLASS (SOFA_TEMPLATE3(SSORPreconditioner, TMatrix, TVector, TThreadManager), SOFA_TEMPLATE3(sofa::component::linearsolver::MatrixLinearSolver, TMatrix, TVector, TThreadManager))
 
void solve (Matrix &M, Vector &x, Vector &b) override
 
void invert (Matrix &M) override
 
MatrixInvertDatacreateInvertData () override
 
template<>
void solve (Matrix &M, Vector &z, Vector &r)
 
template<>
void solve (Matrix &M, Vector &z, Vector &r)
 
template<>
void solve (Matrix &M, Vector &z, Vector &r)
 

Protected Member Functions

 SSORPreconditioner ()
 

Attribute details

template<class TMatrix , class TVector , class TThreadManager = NoThreadManager>
Data<double> sofa::component::linearsolver::SSORPreconditioner< TMatrix, TVector, TThreadManager >::f_omega

Omega coefficient.

template<class TMatrix , class TVector , class TThreadManager = NoThreadManager>
Data<bool> sofa::component::linearsolver::SSORPreconditioner< TMatrix, TVector, TThreadManager >::f_verbose

Dump system state at each iteration.

Constructor details

template<class TMatrix , class TVector , class TThreadManager >
sofa::component::linearsolver::SSORPreconditioner< TMatrix, TVector, TThreadManager >::SSORPreconditioner ( )
protected

Function details

template<class TMatrix , class TVector , class TThreadManager = NoThreadManager>
MatrixInvertData* sofa::component::linearsolver::SSORPreconditioner< TMatrix, TVector, TThreadManager >::createInvertData ( )
inlineoverride
template<class TMatrix , class TVector , class TThreadManager >
void sofa::component::linearsolver::SSORPreconditioner< TMatrix, TVector, TThreadManager >::invert ( Matrix M)
override
template<class TMatrix , class TVector , class TThreadManager = NoThreadManager>
sofa::component::linearsolver::SSORPreconditioner< TMatrix, TVector, TThreadManager >::SOFA_CLASS ( SOFA_TEMPLATE3(SSORPreconditioner< TMatrix, TVector, TThreadManager >, TMatrix, TVector, TThreadManager)  ,
SOFA_TEMPLATE3(sofa::component::linearsolver::MatrixLinearSolver, TMatrix, TVector, TThreadManager)   
)
template<class TMatrix , class TVector , class TThreadManager >
void sofa::component::linearsolver::SSORPreconditioner< TMatrix, TVector, TThreadManager >::solve ( Matrix M,
Vector x,
Vector b 
)
override
template<>
void sofa::component::linearsolver::SSORPreconditioner< SparseMatrix< double >, FullVector< double > >::solve ( Matrix M,
Vector z,
Vector r 
)