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

#include <SparseLDLSolverImpl.h>

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

Protected Attributes

helper::vector< RealTmp
 
helper::vector< intxadj
 
helper::vector< intadj
 
helper::vector< intt_xadj
 
helper::vector< intt_adj
 
helper::vector< RealY
 
helper::vector< intLnz
 
helper::vector< intFlag
 
helper::vector< intPattern
 
helper::vector< inttran_countvec
 

Public Member Functions

 SOFA_CLASS (SOFA_TEMPLATE3(SparseLDLSolverImpl, TMatrix, TVector, TThreadManager), SOFA_TEMPLATE3(sofa::component::linearsolver::MatrixLinearSolver, TMatrix, TVector, TThreadManager))
 

Protected Member Functions

 SparseLDLSolverImpl ()
 
template<class VecInt , class VecReal >
void solve_cpu (Real *x, const Real *b, SparseLDLImplInvertData< VecInt, VecReal > *data)
 
void LDL_ordering (int n, int *M_colptr, int *M_rowind, int *perm, int *invperm)
 
void LDL_symbolic (int n, int *M_colptr, int *M_rowind, int *colptr, int *perm, int *invperm, int *Parent)
 
void LDL_numeric (int n, int *M_colptr, int *M_rowind, Real *M_values, int *colptr, int *rowind, Real *values, Real *D, int *perm, int *invperm, int *Parent)
 
template<class VecInt , class VecReal >
void factorize (int n, int *M_colptr, int *M_rowind, Real *M_values, SparseLDLImplInvertData< VecInt, VecReal > *data)
 

Attribute details

template<class TMatrix , class TVector , class TThreadManager >
helper::vector<int> sofa::component::linearsolver::SparseLDLSolverImpl< TMatrix, TVector, TThreadManager >::adj
protected
template<class TMatrix , class TVector , class TThreadManager >
helper::vector<int> sofa::component::linearsolver::SparseLDLSolverImpl< TMatrix, TVector, TThreadManager >::Flag
protected
template<class TMatrix , class TVector , class TThreadManager >
helper::vector<int> sofa::component::linearsolver::SparseLDLSolverImpl< TMatrix, TVector, TThreadManager >::Lnz
protected
template<class TMatrix , class TVector , class TThreadManager >
helper::vector<int> sofa::component::linearsolver::SparseLDLSolverImpl< TMatrix, TVector, TThreadManager >::Pattern
protected
template<class TMatrix , class TVector , class TThreadManager >
helper::vector<int> sofa::component::linearsolver::SparseLDLSolverImpl< TMatrix, TVector, TThreadManager >::t_adj
protected
template<class TMatrix , class TVector , class TThreadManager >
helper::vector<int> sofa::component::linearsolver::SparseLDLSolverImpl< TMatrix, TVector, TThreadManager >::t_xadj
protected
template<class TMatrix , class TVector , class TThreadManager >
helper::vector<Real> sofa::component::linearsolver::SparseLDLSolverImpl< TMatrix, TVector, TThreadManager >::Tmp
protected
template<class TMatrix , class TVector , class TThreadManager >
helper::vector<int> sofa::component::linearsolver::SparseLDLSolverImpl< TMatrix, TVector, TThreadManager >::tran_countvec
protected
template<class TMatrix , class TVector , class TThreadManager >
helper::vector<int> sofa::component::linearsolver::SparseLDLSolverImpl< TMatrix, TVector, TThreadManager >::xadj
protected
template<class TMatrix , class TVector , class TThreadManager >
helper::vector<Real> sofa::component::linearsolver::SparseLDLSolverImpl< TMatrix, TVector, TThreadManager >::Y
protected

Constructor details

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

Function details

template<class TMatrix , class TVector , class TThreadManager >
template<class VecInt , class VecReal >
void sofa::component::linearsolver::SparseLDLSolverImpl< TMatrix, TVector, TThreadManager >::factorize ( int  n,
int M_colptr,
int M_rowind,
Real M_values,
SparseLDLImplInvertData< VecInt, VecReal > *  data 
)
inlineprotected
template<class TMatrix , class TVector , class TThreadManager >
void sofa::component::linearsolver::SparseLDLSolverImpl< TMatrix, TVector, TThreadManager >::LDL_numeric ( int  n,
int M_colptr,
int M_rowind,
Real M_values,
int colptr,
int rowind,
Real values,
Real D,
int perm,
int invperm,
int Parent 
)
inlineprotected
template<class TMatrix , class TVector , class TThreadManager >
void sofa::component::linearsolver::SparseLDLSolverImpl< TMatrix, TVector, TThreadManager >::LDL_ordering ( int  n,
int M_colptr,
int M_rowind,
int perm,
int invperm 
)
inlineprotected
template<class TMatrix , class TVector , class TThreadManager >
void sofa::component::linearsolver::SparseLDLSolverImpl< TMatrix, TVector, TThreadManager >::LDL_symbolic ( int  n,
int M_colptr,
int M_rowind,
int colptr,
int perm,
int invperm,
int Parent 
)
inlineprotected
template<class TMatrix , class TVector , class TThreadManager >
sofa::component::linearsolver::SparseLDLSolverImpl< TMatrix, TVector, TThreadManager >::SOFA_CLASS ( SOFA_TEMPLATE3(SparseLDLSolverImpl< TMatrix, TVector, TThreadManager >, TMatrix, TVector, TThreadManager)  ,
SOFA_TEMPLATE3(sofa::component::linearsolver::MatrixLinearSolver, TMatrix, TVector, TThreadManager)   
)
template<class TMatrix , class TVector , class TThreadManager >
template<class VecInt , class VecReal >
void sofa::component::linearsolver::SparseLDLSolverImpl< TMatrix, TVector, TThreadManager >::solve_cpu ( Real x,
const Real b,
SparseLDLImplInvertData< VecInt, VecReal > *  data 
)
inlineprotected