SOFA API  99934cbc
Open source framework for multi-physics simuation
sofa::component::linearsolver::SparseLUSolver< TMatrix, TVector, TThreadManager > Class Template Reference

#include <SparseLUSolver.h>

Direct linear solver based on Sparse LU factorization, implemented with the CSPARSE library. More...

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

Detailed Description

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

Direct linear solver based on Sparse LU factorization, implemented with the CSPARSE library.

Public Attributes

Data< boolf_verbose
 Dump system state at each iteration. More...
 
Data< doublef_tol
 tolerance of factorization More...
 

Public Member Functions

 SOFA_CLASS (SOFA_TEMPLATE3(SparseLUSolver, TMatrix, TVector, TThreadManager), SOFA_TEMPLATE3(sofa::component::linearsolver::MatrixLinearSolver, TMatrix, TVector, TThreadManager))
 
 SparseLUSolver ()
 
void solve (Matrix &M, Vector &x, Vector &b) override
 
void invert (Matrix &M) override
 

Protected Member Functions

MatrixInvertDatacreateInvertData () override
 

Attribute details

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

tolerance of factorization

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

Dump system state at each iteration.

Constructor details

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

Function details

template<class TMatrix , class TVector , class TThreadManager = NoThreadManager>
MatrixInvertData* sofa::component::linearsolver::SparseLUSolver< TMatrix, TVector, TThreadManager >::createInvertData ( )
inlineoverrideprotected
template<class TMatrix , class TVector , class TThreadManager >
void sofa::component::linearsolver::SparseLUSolver< TMatrix, TVector, TThreadManager >::invert ( Matrix M)
override
template<class TMatrix , class TVector , class TThreadManager = NoThreadManager>
sofa::component::linearsolver::SparseLUSolver< TMatrix, TVector, TThreadManager >::SOFA_CLASS ( SOFA_TEMPLATE3(SparseLUSolver< 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::SparseLUSolver< TMatrix, TVector, TThreadManager >::solve ( Matrix M,
Vector x,
Vector b 
)
override