Feel++ 0.91.0
Public Types | Public Member Functions | Static Public Member Functions

Feel::BackendGmm< T > Class Template Reference

#include <backendgmm.hpp>

Inheritance diagram for Feel::BackendGmm< T >:
Feel::Backend< T >

List of all members.

Public Types

typedef super::value_type value_type
typedef BackendGmmDefaults defaults_type
typedef super::sparse_matrix_type sparse_matrix_type
typedef
super::sparse_matrix_ptrtype 
sparse_matrix_ptrtype
typedef MatrixGmm< value_type,
gmm::row_major > 
gmm_sparse_matrix_type
typedef boost::shared_ptr
< gmm_sparse_matrix_type
gmm_sparse_matrix_ptrtype
typedef super::vector_type vector_type
typedef super::vector_ptrtype vector_ptrtype
typedef VectorUblas< value_type > gmm_vector_type
typedef boost::shared_ptr
< vector_type
gmm_vector_ptrtype
typedef super::solve_return_type solve_return_type
typedef super::nl_solve_return_type nl_solve_return_type

Public Member Functions

 BackendGmm (po::variables_map const &vm, std::string const &prefix="")
sparse_matrix_ptrtype newMatrix (DataMap const &d1, DataMap const &d2)
vector_ptrtype newVector (DataMap const &d)
void set_noisy (int noisy)
void set_maxiter (int maxiter)
void set_fillin (int fillin)
void set_threshold (double threshold)
void set_tol (double tol)
void set_symmetric (bool isSymmetric)
void set_direct (bool isDirect)
void set_solver_type (std::string const &solver)
void set_preconditioner_type (std::string const &prec)
void set_restart (int restart)
void prod (sparse_matrix_type const &A, vector_type const &x, vector_type &b) const
solve_return_type solve (sparse_matrix_type const &A, vector_type &x, const vector_type &b)
solve_return_type solve (sparse_matrix_ptrtype const &A, vector_ptrtype &x, const vector_ptrtype &b)
solve_return_type solve (sparse_matrix_ptrtype const &A, sparse_matrix_ptrtype const &P, vector_ptrtype &x, const vector_ptrtype &b)
value_type dot (const gmm_vector_type &f, const gmm_vector_type &x) const
bool converged ()
size_type get_iteration ()
boost::shared_ptr
< MatrixTriplet< T > > 
toTriplet (sparse_matrix_type const &m)

Static Public Member Functions

template<typename DomainSpace , typename DualImageSpace >
static sparse_matrix_ptrtype newMatrix (boost::shared_ptr< DomainSpace > const &space1, boost::shared_ptr< DualImageSpace > const &space2)
template<typename SpaceT >
static vector_ptrtype newVector (boost::shared_ptr< SpaceT > const &space)
template<typename SpaceT >
static vector_ptrtype newVector (SpaceT const &space)

Detailed Description

template<typename T>
class Feel::BackendGmm< T >

this class provides an interface to the GMM linear algebra library


Member Function Documentation

template<typename T>
sparse_matrix_ptrtype Feel::BackendGmm< T >::newMatrix ( DataMap const &  dm1,
DataMap const &  dm2 
) [inline, virtual]

instantiate a new sparse vector

Implements Feel::Backend< T >.

References Feel::DataMap::nGlobalElements().

template<typename T>
vector_ptrtype Feel::BackendGmm< T >::newVector ( DataMap const &  dm) [inline, virtual]

instantiate a new vector

Implements Feel::Backend< T >.

References Feel::DataMap::nGlobalElements().

template<typename T>
void Feel::BackendGmm< T >::prod ( sparse_matrix_type const &  A,
vector_type const &  x,
vector_type y 
) const [inline, virtual]
template<typename T>
solve_return_type Feel::BackendGmm< T >::solve ( sparse_matrix_ptrtype const &  A,
sparse_matrix_ptrtype const &  P,
vector_ptrtype &  x,
const vector_ptrtype &  b 
) [inline, virtual]

solve for $P A x = P b$ where $P$ is an approximation of the inverse of $A$.

Parameters:
Amatrix to inverse
rhsright hand side vector
solutionsolution of the system
Ppreconditioner
maxitmaximum number of iterations
tolerancetolerance on the residual
transposeif true solve the transpose problem
Warning:
some parameter may not be meaningful for all backends

Implements Feel::Backend< T >.