Public Member Functions |
|
std::string | kspType () const |
std::string | pcType () const |
bool | hasConstantNullSpace () const |
std::string | fieldsplitType () const |
PreconditionerType | pcEnumType () const |
SolverType | kspEnumType () const |
FieldSplitType | fieldSplitEnumType () const |
std::string | pcFactorMatSolverPackageType () const |
MatSolverPackageType | matSolverPackageEnumType () const |
MatrixStructure | precMatrixStructure () const |
value_type | rTolerance () const |
value_type | dTolerance () const |
value_type | aTolerance () const |
size_type | maxIterations () const |
bool | converged () const |
size_type | nIterations () const |
bool | transpose () const |
mpi::communicator const & | comm () const |
|
| BOOST_PARAMETER_MEMBER_FUNCTION ((void), setTolerances, tag,(required(rtolerance,(double)))(optional(maxit,(size_type), 1000)(atolerance,(double), 1e-50)(dtolerance,(double), 1e5))) |
| BOOST_PARAMETER_MEMBER_FUNCTION ((void), setSolverType, tag,(required(ksp,(std::string)))(optional(pc,(std::string),"lu")(constant_null_space,(bool), false)(pcfactormatsolverpackage,(std::string),"petsc"))) |
void | setPrecMatrixStructure (MatrixStructure mstruct) |
solvernonlinear_ptrtype | nlSolver () |
void | setTranspose (bool transpose) |
|
virtual real_type | dot (vector_type const &x, vector_type const &y) const |
real_type | dot (vector_ptrtype const &x, vector_ptrtype const &y) const |
virtual void | prod (sparse_matrix_type const &A, vector_type const &x, vector_type &y) const =0 |
void | prod (sparse_matrix_ptrtype const &A, vector_ptrtype const &x, vector_ptrtype &y) const |
| BOOST_PARAMETER_MEMBER_FUNCTION ((solve_return_type), solve, tag,(required(matrix,(sparse_matrix_ptrtype))(in_out(solution),*(mpl::or_< boost::is_convertible< mpl::_, vector_type & >, boost::is_convertible< mpl::_, vector_ptrtype > >))(rhs,(vector_ptrtype)))(optional(prec,(preconditioner_ptrtype), preconditioner(_matrix=matrix, _pc=LU_PRECOND, _backend=BACKEND_PETSC))(maxit,(size_type), M_maxit)(rtolerance,(double), M_rtolerance)(atolerance,(double), M_atolerance)(dtolerance,(double), M_dtolerance)(reuse_prec,(bool), M_reuse_prec)(transpose,(bool), false)(constant_null_space,(bool), false)(pc,(std::string), M_pc)(ksp,(std::string), M_ksp)(pcfactormatsolverpackage,(std::string), M_pcFactorMatSolverPackage))) |
virtual solve_return_type | solve (sparse_matrix_ptrtype const &A, sparse_matrix_ptrtype const &P, vector_ptrtype &x, vector_ptrtype const &b)=0 |
solve_return_type | solve (sparse_matrix_ptrtype const &A, sparse_matrix_ptrtype const &P, vector_ptrtype &x, vector_ptrtype const &b, bool reuse_prec) |
| BOOST_PARAMETER_MEMBER_FUNCTION ((nl_solve_return_type), nlSolve, tag,(required(in_out(solution),*(mpl::or_< boost::is_convertible< mpl::_, vector_type & >, boost::is_convertible< mpl::_, vector_ptrtype > >)))(optional(jacobian,(sparse_matrix_ptrtype), sparse_matrix_ptrtype())(residual,(vector_ptrtype), vector_ptrtype())(prec,(preconditioner_ptrtype), preconditioner(_pc=LU_PRECOND, _backend=BACKEND_PETSC))(maxit,(size_type), M_maxit)(rtolerance,(double), M_rtolerance)(atolerance,(double), M_atolerance)(dtolerance,(double), M_dtolerance)(reuse_prec,(bool), M_reuse_prec)(reuse_jac,(bool), M_reuse_jac)(transpose,(bool), false)(pc,(std::string), M_pc)(ksp,(std::string), M_ksp)(pcfactormatsolverpackage,(std::string), M_pcFactorMatSolverPackage))) |
virtual nl_solve_return_type | nlSolve (sparse_matrix_ptrtype &A, vector_ptrtype &x, vector_ptrtype &b, const double, const int) |
virtual nl_solve_return_type | nlSolve (sparse_matrix_ptrtype &A, vector_ptrtype &x, vector_ptrtype &b, const double, const int, bool reusePC, bool reuseJAC) |
void | attachPreconditioner (preconditioner_ptrtype preconditioner) |
Constructors, destructor |
| Backend () |
| Backend (po::variables_map const &vm, std::string const &prefix="") |
| Backend (Backend const &) |
virtual | ~Backend () |
virtual sparse_matrix_ptrtype | newMatrix (const size_type m, const size_type n, const size_type m_l, const size_type n_l, const size_type nnz=30, const size_type noz=10, size_type prop=NON_HERMITIAN)=0 |
virtual sparse_matrix_ptrtype | newMatrix (const size_type m, const size_type n, const size_type m_l, const size_type n_l, graph_ptrtype const &graph, size_type matrix_properties=NON_HERMITIAN)=0 |
sparse_matrix_ptrtype | newMatrix (const size_type m, const size_type n, const size_type m_l, const size_type n_l, graph_ptrtype const &graph, std::vector< std::vector< int > > indexSplit, size_type matrix_properties=NON_HERMITIAN) |
virtual sparse_matrix_ptrtype | newMatrix (DataMap const &dm1, DataMap const &dm2, size_type prop=NON_HERMITIAN, bool init=true)=0 |
virtual sparse_matrix_ptrtype | newZeroMatrix (const size_type m, const size_type n, const size_type m_l, const size_type n_l)=0 |
virtual sparse_matrix_ptrtype | newZeroMatrix (DataMap const &dm1, DataMap const &dm2)=0 |
| BOOST_PARAMETER_MEMBER_FUNCTION ((sparse_matrix_ptrtype), newMatrix, tag,(required(trial,*(boost::is_convertible< mpl::_, boost::shared_ptr< FunctionSpaceBase > >))(test,*(boost::is_convertible< mpl::_, boost::shared_ptr< FunctionSpaceBase > >)))(optional(pattern,(size_type), Pattern::COUPLED)(properties,(size_type), NON_HERMITIAN)(buildGraphWithTranspose,(bool), false)(pattern_block,*,(vf::Blocks< 1, 1, size_type >(size_type(Pattern::HAS_NO_BLOCK_PATTERN))))(diag_is_nonzero,*(boost::is_integral< mpl::_ >), true)(verbose,(int), 0))) |
template<typename DomainSpace , typename ImageSpace > |
sparse_matrix_ptrtype | newMatrix (DomainSpace const &dm, ImageSpace const &im, sparse_matrix_ptrtype const &M, size_type prop=NON_HERMITIAN) |
template<int NR, int NC, typename BlockType = sparse_matrix_ptrtype> |
sparse_matrix_ptrtype | newBlockMatrixImpl (vf::Blocks< NR, NC, BlockType > const &b, bool copy_values=true, bool diag_is_nonzero=true) |
| BOOST_PARAMETER_MEMBER_FUNCTION ((sparse_matrix_ptrtype), newBlockMatrix, tag,(required(block,*))(optional(copy_values,*(boost::is_integral< mpl::_ >), true)(diag_is_nonzero,*(boost::is_integral< mpl::_ >), true))) |
template<int NR, typename BlockType = vector_ptrtype> |
vector_ptrtype | newBlockVectorImpl (vf::Blocks< NR, 1, BlockType > const &b, bool copy_values=true) |
| BOOST_PARAMETER_MEMBER_FUNCTION ((vector_ptrtype), newBlockVector, tag,(required(block,*))(optional(copy_values,*(boost::is_integral< mpl::_ >), true))) |
| BOOST_PARAMETER_MEMBER_FUNCTION ((sparse_matrix_ptrtype), newZeroMatrix, tag,(required(test,*)(trial,*))) |
virtual vector_ptrtype | newVector (DataMap const &dm)=0 |
virtual vector_ptrtype | newVector (const size_type n, const size_type n_local)=0 |
template<typename DomainSpace > |
vector_ptrtype | newVector (DomainSpace const &dm) |
static backend_ptrtype | build (BackendType=BACKEND_GMM) |
static backend_ptrtype | build (po::variables_map const &vm, std::string const &prefix="") |
template<typename T>
class Feel::Backend< T >
base class for all linear algebra backends
- Author:
- Christophe Prud'homme
- See also: