Iterative Solvers supporting block recursive matrix and vector classes at compile time.
More...
|
typedef Dune::BCRSMatrix< FieldMatrix< T, n, m >, A > | Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::Matrix |
| The matrix type.
|
|
typedef Dune::BCRSMatrix< FieldMatrix< T, n, m >, A > | Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::matrix_type |
|
typedef Dune::ISTL::Impl::BCCSMatrix< T, int > | Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::LDLMatrix |
| The corresponding SuperLU Matrix type.
|
|
typedef ISTL::Impl::BCCSMatrixInitializer< BCRSMatrix< FieldMatrix< T, n, m >, A >, int > | Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::MatrixInitializer |
| Type of an associated initializer class.
|
|
typedef Dune::BlockVector< FieldVector< T, m >, typename std::allocator_traits< A >::template rebind_alloc< FieldVector< T, m > > > | Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::domain_type |
| The type of the domain of the solver.
|
|
typedef Dune::BlockVector< FieldVector< T, n >, typename std::allocator_traits< A >::template rebind_alloc< FieldVector< T, n > > > | Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::range_type |
| The type of the range of the solver.
|
|
typedef Dune::BCRSMatrix< FieldMatrix< T, n, m >, A > | Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::Matrix |
| The matrix type.
|
|
typedef Dune::BCRSMatrix< FieldMatrix< T, n, m >, A > | Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::matrix_type |
|
typedef ISTL::Impl::BCCSMatrix< T, int > | Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::SPQRMatrix |
| The corresponding SuperLU Matrix type.
|
|
typedef ISTL::Impl::BCCSMatrixInitializer< BCRSMatrix< FieldMatrix< T, n, m >, A >, int > | Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::MatrixInitializer |
| Type of an associated initializer class.
|
|
typedef Dune::BlockVector< FieldVector< T, m >, typename std::allocator_traits< A >::template rebind_alloc< FieldVector< T, m > > > | Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::domain_type |
| The type of the domain of the solver.
|
|
typedef Dune::BlockVector< FieldVector< T, n >, typename std::allocator_traits< A >::template rebind_alloc< FieldVector< T, n > > > | Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::range_type |
| The type of the range of the solver.
|
|
using | Dune::UMFPackMethodChooser< std::complex< double > >::size_type = SuiteSparse_long |
|
using | Dune::UMFPack< M >::size_type = SuiteSparse_long |
|
using | Dune::UMFPack< M >::Matrix = M |
| The matrix type.
|
|
using | Dune::UMFPack< M >::matrix_type = M |
|
using | Dune::UMFPack< M >::UMFPackMatrix = ISTL::Impl::BCCSMatrix<typename Matrix::field_type, size_type> |
| The corresponding (scalar) UMFPack matrix type.
|
|
using | Dune::UMFPack< M >::MatrixInitializer = ISTL::Impl::BCCSMatrixInitializer<M, size_type> |
| Type of an associated initializer class.
|
|
using | Dune::UMFPack< M >::domain_type = Impl::UMFPackDomainType<M> |
| The type of the domain of the solver.
|
|
using | Dune::UMFPack< M >::range_type = Impl::UMFPackRangeType<M> |
| The type of the range of the solver.
|
|
|
virtual SolverCategory::Category | Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::category () const |
| Category of the solver (see SolverCategory::Category)
|
|
| Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::LDL (const Matrix &matrix, int verbose=0) |
| Construct a solver object from a BCRSMatrix.
|
|
| Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::LDL (const Matrix &matrix, int verbose, bool) |
| Constructor for compatibility with SuperLU standard constructor.
|
|
| Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::LDL (const Matrix &matrix, const ParameterTree &config) |
| Constructs the LDL solver.
|
|
| Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::LDL () |
| Default constructor.
|
|
virtual | Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::~LDL () |
| Default constructor.
|
|
virtual void | Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::apply (domain_type &x, range_type &b, InverseOperatorResult &res) |
| Apply inverse operator,.
|
|
virtual void | Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::apply (domain_type &x, range_type &b, double reduction, InverseOperatorResult &res) |
| apply inverse operator, with given convergence criteria.
|
|
void | Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::apply (T *x, T *b) |
| Additional apply method with c-arrays in analogy to superlu.
|
|
void | Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::setOption (unsigned int option, double value) |
|
void | Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::setMatrix (const Matrix &matrix) |
| Initialize data from given matrix.
|
|
template<class S > |
void | Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::setSubMatrix (const Matrix &matrix, const S &rowIndexSet) |
|
void | Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::setVerbosity (int v) |
| Sets the verbosity level for the solver.
|
|
LDLMatrix & | Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::getInternalMatrix () |
| Return the column compress matrix.
|
|
void | Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::free () |
| Free allocated space.
|
|
const char * | Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::name () |
| Get method name.
|
|
double * | Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::getD () |
| Get factorization diagonal matrix D.
|
|
int * | Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::getLp () |
| Get factorization Lp.
|
|
int * | Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::getLi () |
| Get factorization Li.
|
|
double * | Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::getLx () |
| Get factorization Lx.
|
|
template<typename TL , typename M > |
std::shared_ptr< Dune::InverseOperator< typename Dune::TypeListElement< 1, TL >::type, typename Dune::TypeListElement< 2, TL >::type > > | Dune::LDLCreator::operator() (TL, const M &mat, const Dune::ParameterTree &config, std::enable_if_t< isValidBlock< typename Dune::TypeListElement< 1, TL >::type::block_type >::value, int >=0) const |
|
template<typename TL , typename M > |
std::shared_ptr< Dune::InverseOperator< typename Dune::TypeListElement< 1, TL >::type, typename Dune::TypeListElement< 2, TL >::type > > | Dune::LDLCreator::operator() (TL, const M &, const Dune::ParameterTree &, std::enable_if_t< !isValidBlock< typename Dune::TypeListElement< 1, TL >::type::block_type >::value, int >=0) const |
|
| Dune::DUNE_REGISTER_DIRECT_SOLVER ("ldl", Dune::LDLCreator()) |
|
virtual SolverCategory::Category | Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::category () const |
| Category of the solver (see SolverCategory::Category)
|
|
| Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::SPQR (const Matrix &matrix, int verbose=0) |
| Construct a solver object from a BCRSMatrix.
|
|
| Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::SPQR (const Matrix &matrix, int verbose, bool) |
| Constructor for compatibility with SuperLU standard constructor.
|
|
| Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::SPQR (const Matrix &matrix, const ParameterTree &config) |
| Constructs the SPQR solver.
|
|
| Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::SPQR () |
| Default constructor.
|
|
virtual | Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::~SPQR () |
| Destructor.
|
|
virtual void | Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::apply (domain_type &x, range_type &b, InverseOperatorResult &res) |
| Apply inverse operator,.
|
|
virtual void | Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::apply (domain_type &x, range_type &b, double reduction, InverseOperatorResult &res) |
| apply inverse operator, with given convergence criteria.
|
|
void | Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::setOption (unsigned int option, double value) |
|
void | Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::setMatrix (const Matrix &matrix) |
| Initialize data from given matrix.
|
|
template<class S > |
void | Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::setSubMatrix (const Matrix &matrix, const S &rowIndexSet) |
|
void | Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::setVerbosity (int v) |
| Sets the verbosity level for the solver.
|
|
SuiteSparseQR_factorization< T > * | Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::getFactorization () |
| Return the matrix factorization.
|
|
SPQRMatrix & | Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::getInternalMatrix () |
| Return the column coppressed matrix.
|
|
void | Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::free () |
| Free allocated space.
|
|
const char * | Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::name () |
| Get method name.
|
|
template<typename TL , typename M > |
std::shared_ptr< Dune::InverseOperator< typename Dune::TypeListElement< 1, TL >::type, typename Dune::TypeListElement< 2, TL >::type > > | Dune::SPQRCreator::operator() (TL, const M &mat, const Dune::ParameterTree &config, std::enable_if_t< isValidBlock< typename Dune::TypeListElement< 1, TL >::type::block_type >::value, int >=0) const |
|
template<typename TL , typename M > |
std::shared_ptr< Dune::InverseOperator< typename Dune::TypeListElement< 1, TL >::type, typename Dune::TypeListElement< 2, TL >::type > > | Dune::SPQRCreator::operator() (TL, const M &, const Dune::ParameterTree &, std::enable_if_t<!isValidBlock< typename Dune::TypeListElement< 1, TL >::type::block_type >::value, int >=0) const |
|
| Dune::DUNE_REGISTER_DIRECT_SOLVER ("spqr", Dune::SPQRCreator()) |
|
template<typename... A> |
static void | Dune::UMFPackMethodChooser< double >::defaults (A... args) |
|
template<typename... A> |
static void | Dune::UMFPackMethodChooser< double >::free_numeric (A... args) |
|
template<typename... A> |
static void | Dune::UMFPackMethodChooser< double >::free_symbolic (A... args) |
|
template<typename... A> |
static int | Dune::UMFPackMethodChooser< double >::load_numeric (A... args) |
|
template<typename... A> |
static void | Dune::UMFPackMethodChooser< double >::numeric (A... args) |
|
template<typename... A> |
static void | Dune::UMFPackMethodChooser< double >::report_info (A... args) |
|
template<typename... A> |
static void | Dune::UMFPackMethodChooser< double >::report_status (A... args) |
|
template<typename... A> |
static int | Dune::UMFPackMethodChooser< double >::save_numeric (A... args) |
|
template<typename... A> |
static void | Dune::UMFPackMethodChooser< double >::solve (A... args) |
|
template<typename... A> |
static void | Dune::UMFPackMethodChooser< double >::symbolic (A... args) |
|
template<typename... A> |
static void | Dune::UMFPackMethodChooser< std::complex< double > >::defaults (A... args) |
|
template<typename... A> |
static void | Dune::UMFPackMethodChooser< std::complex< double > >::free_numeric (A... args) |
|
template<typename... A> |
static void | Dune::UMFPackMethodChooser< std::complex< double > >::free_symbolic (A... args) |
|
template<typename... A> |
static int | Dune::UMFPackMethodChooser< std::complex< double > >::load_numeric (A... args) |
|
template<typename... A> |
static void | Dune::UMFPackMethodChooser< std::complex< double > >::numeric (const size_type *cs, const size_type *ri, const double *val, A... args) |
|
template<typename... A> |
static void | Dune::UMFPackMethodChooser< std::complex< double > >::report_info (A... args) |
|
template<typename... A> |
static void | Dune::UMFPackMethodChooser< std::complex< double > >::report_status (A... args) |
|
template<typename... A> |
static int | Dune::UMFPackMethodChooser< std::complex< double > >::save_numeric (A... args) |
|
template<typename... A> |
static void | Dune::UMFPackMethodChooser< std::complex< double > >::solve (size_type m, const size_type *cs, const size_type *ri, std::complex< double > *val, double *x, const double *b, A... args) |
|
template<typename... A> |
static void | Dune::UMFPackMethodChooser< std::complex< double > >::symbolic (size_type m, size_type n, const size_type *cs, const size_type *ri, const double *val, A... args) |
|
virtual SolverCategory::Category | Dune::UMFPack< M >::category () const |
| Category of the solver (see SolverCategory::Category)
|
|
| Dune::UMFPack< M >::UMFPack (const Matrix &matrix, int verbose=0) |
| Construct a solver object from a matrix.
|
|
| Dune::UMFPack< M >::UMFPack (const Matrix &matrix, int verbose, bool) |
| Constructor for compatibility with SuperLU standard constructor.
|
|
| Dune::UMFPack< M >::UMFPack (const Matrix &mat_, const ParameterTree &config) |
| Construct a solver object from a matrix.
|
|
| Dune::UMFPack< M >::UMFPack () |
| default constructor
|
|
| Dune::UMFPack< M >::UMFPack (const Matrix &mat_, const char *file, int verbose=0) |
| Try loading a decomposition from file and do a decomposition if unsuccessful.
|
|
| Dune::UMFPack< M >::UMFPack (const char *file, int verbose=0) |
| try loading a decomposition from file
|
|
virtual | Dune::UMFPack< M >::~UMFPack () |
|
virtual void | Dune::UMFPack< M >::apply (domain_type &x, range_type &b, InverseOperatorResult &res) |
| Apply inverse operator,.
|
|
virtual void | Dune::UMFPack< M >::apply (domain_type &x, range_type &b, double reduction, InverseOperatorResult &res) |
| apply inverse operator, with given convergence criteria.
|
|
void | Dune::UMFPack< M >::apply (T *x, T *b) |
| additional apply method with c-arrays in analogy to superlu
|
|
void | Dune::UMFPack< M >::setOption (unsigned int option, double value) |
| Set UMFPack-specific options.
|
|
void | Dune::UMFPack< M >::saveDecomposition (const char *file) |
| saves a decomposition to a file
|
|
template<class BitVector = Impl::NoBitVector> |
void | Dune::UMFPack< M >::setMatrix (const Matrix &matrix, const BitVector &bitVector={}) |
| Initialize data from given matrix.
|
|
template<typename S > |
void | Dune::UMFPack< M >::setSubMatrix (const Matrix &_mat, const S &rowIndexSet) |
|
void | Dune::UMFPack< M >::setVerbosity (int v) |
| sets the verbosity level for the UMFPack solver
|
|
void * | Dune::UMFPack< M >::getFactorization () |
| Return the matrix factorization.
|
|
UMFPackMatrix & | Dune::UMFPack< M >::getInternalMatrix () |
| Return the column compress matrix from UMFPack.
|
|
void | Dune::UMFPack< M >::free () |
| free allocated space.
|
|
const char * | Dune::UMFPack< M >::name () |
|
template<typename TL , typename M > |
std::shared_ptr< Dune::InverseOperator< Impl::UMFPackDomainType< M >, Impl::UMFPackRangeType< M > > > | Dune::UMFPackCreator::operator() (TL, const M &mat, const Dune::ParameterTree &config, std::enable_if_t< isValidBlock< TL, M >::value, int >=0) const |
|
template<typename TL , typename M > |
std::shared_ptr< Dune::InverseOperator< typename Dune::TypeListElement< 1, TL >::type, typename Dune::TypeListElement< 2, TL >::type > > | Dune::UMFPackCreator::operator() (TL, const M &, const Dune::ParameterTree &, std::enable_if_t<!isValidBlock< TL, M >::value, int >=0) const |
|
| Dune::DUNE_REGISTER_DIRECT_SOLVER ("umfpack", Dune::UMFPackCreator()) |
|
template<class S > |
std::size_t | Dune::ILUSubdomainSolver< M, X, Y >::copyToLocalMatrix (const M &A, S &rowset) |
| Copy the local part of the global matrix to ILU.
|
|
template<class S > |
void | Dune::ILU0SubdomainSolver< M, X, Y >::setSubMatrix (const M &A, S &rowset) |
| Set the data of the local problem.
|
|
template<class S > |
void | Dune::ILUNSubdomainSolver< M, X, Y >::setSubMatrix (const M &A, S &rowset) |
| Set the data of the local problem.
|
|
| Dune::SuperLU< T >::~SuperLU () |
|
void | Dune::SuperLU< T >::free () |
| free allocated space.
|
|
| Dune::SuperLU< T >::SuperLU (const Matrix &mat, bool verbose=false, bool reusevector=true) |
| Constructs the SuperLU solver.
|
|
| Dune::SuperLU< T >::SuperLU () |
| Empty default constructor.
|
|
void | Dune::SuperLU< T >::setVerbosity (bool v) |
|
void | Dune::SuperLU< T >::setMatrix (const Matrix &mat) |
| Initialize data from given matrix.
|
|
template<class S > |
void | Dune::SuperLU< T >::setSubMatrix (const Matrix &mat, const S &rowIndexSet) |
|
void | Dune::SuperLU< T >::apply (domain_type &x, range_type &b, InverseOperatorResult &res) |
| Apply inverse operator,.
|
|
void | Dune::SuperLU< T >::apply (T *x, T *b) |
| Apply SuperLu to C arrays.
|
|
Iterative Solvers supporting block recursive matrix and vector classes at compile time.
The Iterative Solver Template Library applies generic programming in C++ to the domain of iterative solvers of linear systems stemming from finite element discretizations. Those discretizations exhibit a lot of structure, e.g:
Our matrix and vector interface supports a block recursive structure. Each sparse matrix entry can itself be either a sparse or a small dense matrix.
The solvers use this recursive block structure via template meta programming at compile time.