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

#include <BlockJacobiPreconditioner.h>

Linear solver based on a NxN bloc diagonal matrix (i.e. block Jacobi preconditioner) More...

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

Detailed Description

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

Linear solver based on a NxN bloc diagonal matrix (i.e. block Jacobi preconditioner)

Public Attributes

Data< boolf_verbose
 Dump system state at each iteration. More...
 
BlockJacobiPreconditionerInternalData< TVector > internalData
 not use in CPU More...
 

Public Member Functions

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

Static Public Member Functions

static const std::string GetCustomTemplateName ()
 

Protected Member Functions

 BlockJacobiPreconditioner ()
 

Attribute details

template<class TMatrix , class TVector >
Data<bool> sofa::component::linearsolver::BlockJacobiPreconditioner< TMatrix, TVector >::f_verbose

Dump system state at each iteration.

template<class TMatrix , class TVector >
BlockJacobiPreconditionerInternalData<TVector> sofa::component::linearsolver::BlockJacobiPreconditioner< TMatrix, TVector >::internalData

not use in CPU

Constructor details

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

Function details

template<class TMatrix , class TVector >
static const std::string sofa::component::linearsolver::BlockJacobiPreconditioner< TMatrix, TVector >::GetCustomTemplateName ( )
inlinestatic

Returns the sofa template name. By default the name of the c++ class signature is exposed... so we need to override that by implementing GetCustomTemplateName() function More details on the name customization infrastructure is in NameDecoder.h

template<class TMatrix , class TVector >
void sofa::component::linearsolver::BlockJacobiPreconditioner< TMatrix, TVector >::invert ( Matrix M)
override
template<class TMatrix , class TVector >
sofa::component::linearsolver::BlockJacobiPreconditioner< TMatrix, TVector >::SOFA_CLASS ( SOFA_TEMPLATE2(BlockJacobiPreconditioner< TMatrix, TVector >, TMatrix, TVector)  ,
SOFA_TEMPLATE2(sofa::component::linearsolver::MatrixLinearSolver, TMatrix, TVector)   
)
template<class TMatrix , class TVector >
void sofa::component::linearsolver::BlockJacobiPreconditioner< TMatrix, TVector >::solve ( Matrix M,
Vector x,
Vector b 
)
override