SOFA API  73d8bb95
Open source framework for multi-physics simuation
sofa::component::linearsolver::SparseCholeskySolver< TMatrix, TVector > Class Template Reference

#include <SparseCholeskySolver.h>

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

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

Detailed Description

template<class TMatrix, class TVector>
class sofa::component::linearsolver::SparseCholeskySolver< TMatrix, TVector >

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

Public Attributes

Data< boolf_verbose
 Dump system state at each iteration. More...
 
cs A
 
css * S
 
csn * N
 
intA_i
 
intA_p
 
helper::vector< doubleA_x
 
helper::vector< doublez_tmp
 
helper::vector< doubler_tmp
 
helper::vector< doubletmp
 

Public Member Functions

 SOFA_CLASS (SOFA_TEMPLATE2(SparseCholeskySolver, TMatrix, TVector), SOFA_TEMPLATE2(sofa::component::linearsolver::MatrixLinearSolver, TMatrix, TVector))
 
 SparseCholeskySolver ()
 
 ~SparseCholeskySolver ()
 
void solve (Matrix &M, Vector &x, Vector &b) override
 
void invert (Matrix &M) override
 
void solveT (double *z, double *r)
 
void solveT (float *z, float *r)
 

Attribute details

template<class TMatrix , class TVector >
cs sofa::component::linearsolver::SparseCholeskySolver< TMatrix, TVector >::A
template<class TMatrix , class TVector >
int* sofa::component::linearsolver::SparseCholeskySolver< TMatrix, TVector >::A_i
template<class TMatrix , class TVector >
int* sofa::component::linearsolver::SparseCholeskySolver< TMatrix, TVector >::A_p
template<class TMatrix , class TVector >
helper::vector<double> sofa::component::linearsolver::SparseCholeskySolver< TMatrix, TVector >::A_x
template<class TMatrix , class TVector >
Data<bool> sofa::component::linearsolver::SparseCholeskySolver< TMatrix, TVector >::f_verbose

Dump system state at each iteration.

template<class TMatrix , class TVector >
csn* sofa::component::linearsolver::SparseCholeskySolver< TMatrix, TVector >::N
template<class TMatrix , class TVector >
helper::vector<double> sofa::component::linearsolver::SparseCholeskySolver< TMatrix, TVector >::r_tmp
template<class TMatrix , class TVector >
css* sofa::component::linearsolver::SparseCholeskySolver< TMatrix, TVector >::S
template<class TMatrix , class TVector >
helper::vector<double> sofa::component::linearsolver::SparseCholeskySolver< TMatrix, TVector >::tmp
template<class TMatrix , class TVector >
helper::vector<double> sofa::component::linearsolver::SparseCholeskySolver< TMatrix, TVector >::z_tmp

Constructor details

template<class TMatrix , class TVector >
sofa::component::linearsolver::SparseCholeskySolver< TMatrix, TVector >::SparseCholeskySolver ( )
template<class TMatrix , class TVector >
sofa::component::linearsolver::SparseCholeskySolver< TMatrix, TVector >::~SparseCholeskySolver ( )

Function details

template<class TMatrix , class TVector >
void sofa::component::linearsolver::SparseCholeskySolver< TMatrix, TVector >::invert ( Matrix M)
override
template<class TMatrix , class TVector >
sofa::component::linearsolver::SparseCholeskySolver< TMatrix, TVector >::SOFA_CLASS ( SOFA_TEMPLATE2(SparseCholeskySolver< TMatrix, TVector >, TMatrix, TVector)  ,
SOFA_TEMPLATE2(sofa::component::linearsolver::MatrixLinearSolver, TMatrix, TVector)   
)
template<class TMatrix , class TVector >
void sofa::component::linearsolver::SparseCholeskySolver< TMatrix, TVector >::solve ( Matrix M,
Vector x,
Vector b 
)
override
template<class TMatrix , class TVector >
void sofa::component::linearsolver::SparseCholeskySolver< TMatrix, TVector >::solveT ( double z,
double r 
)
template<class TMatrix , class TVector >
void sofa::component::linearsolver::SparseCholeskySolver< TMatrix, TVector >::solveT ( float z,
float r 
)