dune-istl 2.8.0
Modules | Files | Classes | Typedefs | Enumerations | Enumerator | Functions | Variables
Iterative Solvers Template Library (ISTL)

Iterative Solvers supporting block recursive matrix and vector classes at compile time. More...

Collaboration diagram for Iterative Solvers Template Library (ISTL):

Modules

 Iterative Solvers
 
 Communication Interface
 
 Sparse Matrix and Vector classes
 Matrix and Vector classes that support a block recursive structure capable of representing the natural structure from Finite Element discretisations.
 

Files

file  ldl.hh
 Class for using LDL with ISTL matrices.
 
file  spqr.hh
 Class for using SPQR with ISTL matrices.
 
file  superlu.hh
 Classes for using SuperLU with ISTL matrices.
 
file  umfpack.hh
 Classes for using UMFPack with ISTL matrices.
 

Classes

class  Dune::ILUSubdomainSolver< M, X, Y >
 base class encapsulating common algorithms of ILU0SubdomainSolver and ILUNSubdomainSolver. More...
 
class  Dune::ILU0SubdomainSolver< M, X, Y >
 Exact subdomain solver using ILU(p) with appropriate p. More...
 
class  Dune::ILUNSubdomainSolver< M, X, Y >
 
class  Dune::ISTLError
 derive error class from the base class in common More...
 
class  Dune::BCRSMatrixError
 Error specific to BCRSMatrix. More...
 
class  Dune::ImplicitModeCompressionBufferExhausted
 Thrown when the compression buffer used by the implicit BCRSMatrix construction is exhausted. More...
 
class  Dune::SolverAbort
 Thrown when a solver aborts due to some problem. More...
 
class  Dune::MatrixBlockError
 Error when performing an operation on a matrix block. More...
 
class  Dune::SeqOverlappingSchwarz< M, X, TM, TD, TA >
 Sequential overlapping Schwarz preconditioner. More...
 
struct  Dune::SeqOverlappingSchwarzAssemblerHelper< T, tag >
 
class  Dune::LDL< Matrix >
 Use the LDL package to directly solve linear systems – empty default class. More...
 
class  Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >
 The LDL direct sparse solver for matrices of type BCRSMatrix. More...
 
struct  Dune::IsDirectSolver< LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > > >
 
struct  Dune::StoresColumnCompressed< LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > > >
 
struct  Dune::LDLCreator
 
struct  Dune::LDLCreator::isValidBlock< F >
 
struct  Dune::LDLCreator::isValidBlock< FieldVector< double, k > >
 
class  Dune::SPQR< Matrix >
 Use the SPQR package to directly solve linear systems – empty default class. More...
 
class  Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >
 The SPQR direct sparse solver for matrices of type BCRSMatrix. More...
 
struct  Dune::IsDirectSolver< SPQR< BCRSMatrix< T, A > > >
 
struct  Dune::StoresColumnCompressed< SPQR< BCRSMatrix< T, A > > >
 
struct  Dune::SPQRCreator
 
struct  Dune::SPQRCreator::isValidBlock< class >
 
struct  Dune::SPQRCreator::isValidBlock< FieldVector< double, 1 > >
 
struct  Dune::SuperLUSolveChooser< T >
 
struct  Dune::SuperLUDenseMatChooser< T >
 
struct  Dune::SuperLUQueryChooser< T >
 
struct  Dune::QuerySpaceChooser< T >
 
class  Dune::SuperLU< M >
 SuperLu Solver. More...
 
struct  Dune::UMFPackMethodChooser< T >
 
struct  Dune::UMFPackMethodChooser< double >
 
struct  Dune::UMFPackMethodChooser< std::complex< double > >
 
class  Dune::UMFPack< M >
 The UMFPack direct sparse solver. More...
 
struct  Dune::IsDirectSolver< UMFPack< BCRSMatrix< FieldMatrix< T, n, m >, A > > >
 
struct  Dune::StoresColumnCompressed< UMFPack< BCRSMatrix< T, A > > >
 
struct  Dune::UMFPackCreator
 
struct  Dune::UMFPackCreator::isValidBlock< F, class >
 
struct  Dune::UMFPackCreator::isValidBlock< B, std::enable_if_t< std::is_same< typename FieldTraits< B >::real_type, double >::value > >
 

Typedefs

using Dune::ImplicitModeOverflowExhausted = ImplicitModeCompressionBufferExhausted
 Alias for backward compatibility. More...
 
typedef Dune::BCRSMatrix< FieldMatrix< T, n, m >, A > Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::Matrix
 The matrix type. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
typedef Dune::BCRSMatrix< FieldMatrix< T, n, m >, A > Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::Matrix
 The matrix type. More...
 
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. More...
 
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. More...
 
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. More...
 
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. More...
 
using Dune::UMFPack< M >::Matrix = M
 The matrix type. More...
 
using Dune::UMFPack< M >::matrix_type = M
 
typedef ISTL::Impl::BCCSMatrix< typename Matrix::field_type, long int > Dune::UMFPack< M >::UMFPackMatrix
 The corresponding UMFPack matrix type. More...
 
typedef ISTL::Impl::BCCSMatrixInitializer< M, long int > Dune::UMFPack< M >::MatrixInitializer
 Type of an associated initializer class. More...
 
using Dune::UMFPack< M >::domain_type = typename Impl::UMFPackVectorChooser< M >::domain_type
 The type of the domain of the solver. More...
 
using Dune::UMFPack< M >::range_type = typename Impl::UMFPackVectorChooser< M >::range_type
 The type of the range of the solver. More...
 

Enumerations

enum  { Dune::IsDirectSolver< LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > > >::value = true }
 
enum  { Dune::StoresColumnCompressed< LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > > >::value = true }
 
enum  { Dune::IsDirectSolver< SPQR< BCRSMatrix< T, A > > >::value = true }
 
enum  { Dune::StoresColumnCompressed< SPQR< BCRSMatrix< T, A > > >::value = true }
 
enum  { Dune::IsDirectSolver< UMFPack< BCRSMatrix< FieldMatrix< T, n, m >, A > > >::value =true }
 
enum  { Dune::StoresColumnCompressed< UMFPack< BCRSMatrix< T, A > > >::value = true }
 

Functions

virtual SolverCategory::Category Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::category () const
 Category of the solver (see SolverCategory::Category) More...
 
 Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::LDL (const Matrix &matrix, int verbose=0)
 Construct a solver object from a BCRSMatrix. More...
 
 Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::LDL (const Matrix &matrix, int verbose, bool)
 Constructor for compatibility with SuperLU standard constructor. More...
 
 Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::LDL (const Matrix &matrix, const ParameterTree &config)
 Constructs the LDL solver. More...
 
 Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::LDL ()
 Default constructor. More...
 
virtual Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::~LDL ()
 Default constructor. More...
 
virtual void Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::apply (domain_type &x, range_type &b, InverseOperatorResult &res)
 Apply inverse operator,. More...
 
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. More...
 
void Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::apply (T *x, T *b)
 Additional apply method with c-arrays in analogy to superlu. More...
 
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. More...
 
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. More...
 
LDLMatrixDune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::getInternalMatrix ()
 Return the column compress matrix. More...
 
void Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::free ()
 Free allocated space. More...
 
const char * Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::name ()
 Get method name. More...
 
double * Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::getD ()
 Get factorization diagonal matrix D. More...
 
int * Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::getLp ()
 Get factorization Lp. More...
 
int * Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::getLi ()
 Get factorization Li. More...
 
double * Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::getLx ()
 Get factorization Lx. More...
 
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) More...
 
 Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::SPQR (const Matrix &matrix, int verbose=0)
 Construct a solver object from a BCRSMatrix. More...
 
 Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::SPQR (const Matrix &matrix, int verbose, bool)
 Constructor for compatibility with SuperLU standard constructor. More...
 
 Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::SPQR (const Matrix &matrix, const ParameterTree &config)
 Constructs the SPQR solver. More...
 
 Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::SPQR ()
 Default constructor. More...
 
virtual Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::~SPQR ()
 Destructor. More...
 
virtual void Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::apply (domain_type &x, range_type &b, InverseOperatorResult &res)
 Apply inverse operator,. More...
 
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. More...
 
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. More...
 
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. More...
 
SuiteSparseQR_factorization< T > * Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::getFactorization ()
 Return the matrix factorization. More...
 
SPQRMatrixDune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::getInternalMatrix ()
 Return the column coppressed matrix. More...
 
void Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::free ()
 Free allocated space. More...
 
const char * Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::name ()
 Get method name. More...
 
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 long int *cs, const long int *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 (long int m, const long int *cs, const long int *ri, std::complex< double > *val, double *x, const double *b, A... args)
 
template<typename... A>
static void Dune::UMFPackMethodChooser< std::complex< double > >::symbolic (long int m, long int n, const long int *cs, const long int *ri, const double *val, A... args)
 
virtual SolverCategory::Category Dune::UMFPack< M >::category () const
 Category of the solver (see SolverCategory::Category) More...
 
 Dune::UMFPack< M >::UMFPack (const Matrix &matrix, int verbose=0)
 Construct a solver object from a matrix. More...
 
 Dune::UMFPack< M >::UMFPack (const Matrix &matrix, int verbose, bool)
 Constructor for compatibility with SuperLU standard constructor. More...
 
 Dune::UMFPack< M >::UMFPack (const Matrix &mat_, const ParameterTree &config)
 Construct a solver object from a matrix. More...
 
 Dune::UMFPack< M >::UMFPack ()
 default constructor More...
 
 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. More...
 
 Dune::UMFPack< M >::UMFPack (const char *file, int verbose=0)
 try loading a decomposition from file More...
 
virtual Dune::UMFPack< M >::~UMFPack ()
 
virtual void Dune::UMFPack< M >::apply (domain_type &x, range_type &b, InverseOperatorResult &res)
 Apply inverse operator,. More...
 
virtual void Dune::UMFPack< M >::apply (domain_type &x, range_type &b, double reduction, InverseOperatorResult &res)
 apply inverse operator, with given convergence criteria. More...
 
void Dune::UMFPack< M >::apply (T *x, T *b)
 additional apply method with c-arrays in analogy to superlu More...
 
void Dune::UMFPack< M >::setOption (unsigned int option, double value)
 Set UMFPack-specific options. More...
 
void Dune::UMFPack< M >::saveDecomposition (const char *file)
 saves a decomposition to a file More...
 
void Dune::UMFPack< M >::setMatrix (const Matrix &matrix)
 Initialize data from given matrix. More...
 
template<class 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 More...
 
void * Dune::UMFPack< M >::getFactorization ()
 Return the matrix factorization. More...
 
UMFPackMatrixDune::UMFPack< M >::getInternalMatrix ()
 Return the column compress matrix from UMFPack. More...
 
void Dune::UMFPack< M >::free ()
 free allocated space. More...
 
const char * Dune::UMFPack< M >::name ()
 
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 &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::UMFPackCreator::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 ("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. More...
 
template<class S >
void Dune::ILU0SubdomainSolver< M, X, Y >::setSubMatrix (const M &A, S &rowset)
 Set the data of the local problem. More...
 
template<class S >
void Dune::ILUNSubdomainSolver< M, X, Y >::setSubMatrix (const M &A, S &rowset)
 Set the data of the local problem. More...
 
 Dune::SuperLU< M >::~SuperLU ()
 
void Dune::SuperLU< M >::free ()
 free allocated space. More...
 
 Dune::SuperLU< M >::SuperLU (const Matrix &mat, bool verbose=false, bool reusevector=true)
 Constructs the SuperLU solver. More...
 
 Dune::SuperLU< M >::SuperLU ()
 Empty default constructor. More...
 
void Dune::SuperLU< M >::setVerbosity (bool v)
 
void Dune::SuperLU< M >::setMatrix (const Matrix &mat)
 Initialize data from given matrix. More...
 
template<class S >
void Dune::SuperLU< M >::setSubMatrix (const Matrix &mat, const S &rowIndexSet)
 
void Dune::SuperLU< M >::apply (domain_type &x, range_type &b, InverseOperatorResult &res)
 Apply inverse operator,. More...
 
void Dune::SuperLU< M >::apply (T *x, T *b)
 Apply SuperLu to C arrays. More...
 

Variables

static constexpr bool Dune::UMFPackMethodChooser< T >::valid = false
 
static constexpr bool Dune::UMFPackMethodChooser< double >::valid = true
 
static constexpr bool Dune::UMFPackMethodChooser< std::complex< double > >::valid = true
 

Detailed Description

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:

  1. Certain discretizations for systems of PDEs or higher order methods result in matrices where individual entries are replaced by small blocks, say of size $2\times 2$ or $4\times 4$. Dense blocks of different sizes e.g. arise in $hp$ Discontinuous Galerkin discretization methods. It is straightforward and efficient to treat these small dense blocks as fully coupled and solve them with direct methods within the iterative method.
  2. Equation-wise ordering for systems results in matrices having an $n\times n$ block structure where $n$ corresponds to the number of variables in the PDE and the blocks themselves are large and sparse. As an example we mention the Stokes system.
  3. Other discretisation, e.~g. those of reaction/diffusion systems, produce sparse matrices whose blocks are sparse matrices of small dense blocks,

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.

ISTL consists of the matrix and vector API and the solvers which use the Preconditioners preconditioners.

Typedef Documentation

◆ domain_type [1/3]

template<typename T , typename A , int n, int m>
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.

◆ domain_type [2/3]

template<typename T , typename A , int n, int m>
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.

◆ domain_type [3/3]

template<typename M >
using Dune::UMFPack< M >::domain_type = typename Impl::UMFPackVectorChooser<M>::domain_type

The type of the domain of the solver.

◆ ImplicitModeOverflowExhausted

Alias for backward compatibility.

Deprecated:
The class ImplicitModeOverflowExhausted got renamed to ImplicitModeCompressionBufferExhausted in dune-istl 2.8, because the old name was very misleading. We keep the old name for backward compatibility, but discourage its use.

◆ LDLMatrix

template<typename T , typename A , int n, int m>
typedef Dune::ISTL::Impl::BCCSMatrix<T,int> Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::LDLMatrix

The corresponding SuperLU Matrix type.

◆ Matrix [1/3]

template<typename T , typename A , int n, int m>
typedef Dune::BCRSMatrix<FieldMatrix<T,n,m>,A> Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::Matrix

The matrix type.

◆ Matrix [2/3]

template<typename T , typename A , int n, int m>
typedef Dune::BCRSMatrix<FieldMatrix<T,n,m>,A> Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::Matrix

The matrix type.

◆ Matrix [3/3]

template<typename M >
using Dune::UMFPack< M >::Matrix = M

The matrix type.

◆ matrix_type [1/3]

template<typename T , typename A , int n, int m>
typedef Dune::BCRSMatrix<FieldMatrix<T,n,m>,A> Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::matrix_type

◆ matrix_type [2/3]

template<typename T , typename A , int n, int m>
typedef Dune::BCRSMatrix<FieldMatrix<T,n,m>,A> Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::matrix_type

◆ matrix_type [3/3]

template<typename M >
using Dune::UMFPack< M >::matrix_type = M

◆ MatrixInitializer [1/3]

template<typename T , typename A , int n, int m>
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.

◆ MatrixInitializer [2/3]

template<typename T , typename A , int n, int m>
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.

◆ MatrixInitializer [3/3]

template<typename M >
typedef ISTL::Impl::BCCSMatrixInitializer<M, long int> Dune::UMFPack< M >::MatrixInitializer

Type of an associated initializer class.

◆ range_type [1/3]

template<typename T , typename A , int n, int m>
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.

◆ range_type [2/3]

template<typename T , typename A , int n, int m>
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.

◆ range_type [3/3]

template<typename M >
using Dune::UMFPack< M >::range_type = typename Impl::UMFPackVectorChooser<M>::range_type

The type of the range of the solver.

◆ SPQRMatrix

template<typename T , typename A , int n, int m>
typedef ISTL::Impl::BCCSMatrix<T,int> Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::SPQRMatrix

The corresponding SuperLU Matrix type.

◆ UMFPackMatrix

template<typename M >
typedef ISTL::Impl::BCCSMatrix<typename Matrix::field_type, long int> Dune::UMFPack< M >::UMFPackMatrix

The corresponding UMFPack matrix type.

Enumeration Type Documentation

◆ anonymous enum

template<typename T , typename A , int n, int m>
anonymous enum
Enumerator
value 

◆ anonymous enum

template<typename T , typename A , int n, int m>
anonymous enum
Enumerator
value 

◆ anonymous enum

template<typename T , typename A >
anonymous enum
Enumerator
value 

◆ anonymous enum

template<typename T , typename A >
anonymous enum
Enumerator
value 

◆ anonymous enum

template<typename T , typename A , int n, int m>
anonymous enum
Enumerator
value 

◆ anonymous enum

template<typename T , typename A >
anonymous enum
Enumerator
value 

Function Documentation

◆ apply() [1/10]

template<typename T , typename A , int n, int m>
virtual void Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::apply ( domain_type x,
range_type b,
double  reduction,
InverseOperatorResult res 
)
inlinevirtual

apply inverse operator, with given convergence criteria.

Warning
Right hand side b may be overwritten!
Parameters
xThe left hand side to store the result in.
bThe right hand side
reductionThe minimum defect reduction to achieve.
resObject to store the statistics about applying the operator.
Exceptions
SolverAbortWhen the solver detects a problem and cannot continue

◆ apply() [2/10]

template<typename T , typename A , int n, int m>
virtual void Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::apply ( domain_type x,
range_type b,
double  reduction,
InverseOperatorResult res 
)
inlinevirtual

apply inverse operator, with given convergence criteria.

Warning
Right hand side b may be overwritten!
Parameters
xThe left hand side to store the result in.
bThe right hand side
reductionThe minimum defect reduction to achieve.
resObject to store the statistics about applying the operator.
Exceptions
SolverAbortWhen the solver detects a problem and cannot continue

◆ apply() [3/10]

template<typename M >
virtual void Dune::UMFPack< M >::apply ( domain_type x,
range_type b,
double  reduction,
InverseOperatorResult res 
)
inlinevirtual

apply inverse operator, with given convergence criteria.

Warning
Right hand side b may be overwritten!
Parameters
xThe left hand side to store the result in.
bThe right hand side
reductionThe minimum defect reduction to achieve.
resObject to store the statistics about applying the operator.
Exceptions
SolverAbortWhen the solver detects a problem and cannot continue

◆ apply() [4/10]

template<typename T , typename A , int n, int m>
virtual void Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::apply ( domain_type x,
range_type b,
InverseOperatorResult res 
)
inlinevirtual

Apply inverse operator,.

Warning
Note: right hand side b may be overwritten!
Parameters
xThe left hand side to store the result in.
bThe right hand side
resObject to store the statistics about applying the operator.
Exceptions
SolverAbortWhen the solver detects a problem and cannot continue

◆ apply() [5/10]

template<typename T , typename A , int n, int m>
virtual void Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::apply ( domain_type x,
range_type b,
InverseOperatorResult res 
)
inlinevirtual

Apply inverse operator,.

Warning
Note: right hand side b may be overwritten!
Parameters
xThe left hand side to store the result in.
bThe right hand side
resObject to store the statistics about applying the operator.
Exceptions
SolverAbortWhen the solver detects a problem and cannot continue

◆ apply() [6/10]

template<typename M >
void Dune::SuperLU< M >::apply ( domain_type x,
range_type b,
InverseOperatorResult res 
)

Apply inverse operator,.

Warning
Note: right hand side b may be overwritten!
Parameters
xThe left hand side to store the result in.
bThe right hand side
resObject to store the statistics about applying the operator.
Exceptions
SolverAbortWhen the solver detects a problem and cannot continue

◆ apply() [7/10]

template<typename M >
virtual void Dune::UMFPack< M >::apply ( domain_type x,
range_type b,
InverseOperatorResult res 
)
inlinevirtual

Apply inverse operator,.

Warning
Note: right hand side b may be overwritten!
Parameters
xThe left hand side to store the result in.
bThe right hand side
resObject to store the statistics about applying the operator.
Exceptions
SolverAbortWhen the solver detects a problem and cannot continue

◆ apply() [8/10]

template<typename T , typename A , int n, int m>
void Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::apply ( T *  x,
T *  b 
)
inline

Additional apply method with c-arrays in analogy to superlu.

Parameters
xsolution array
brhs array

◆ apply() [9/10]

template<typename M >
void Dune::SuperLU< M >::apply ( T *  x,
T *  b 
)

Apply SuperLu to C arrays.

◆ apply() [10/10]

template<typename M >
void Dune::UMFPack< M >::apply ( T *  x,
T *  b 
)
inline

additional apply method with c-arrays in analogy to superlu

Parameters
xsolution array
brhs array

◆ category() [1/3]

template<typename T , typename A , int n, int m>
virtual SolverCategory::Category Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::category ( ) const
inlinevirtual

◆ category() [2/3]

template<typename T , typename A , int n, int m>
virtual SolverCategory::Category Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::category ( ) const
inlinevirtual

◆ category() [3/3]

template<typename M >
virtual SolverCategory::Category Dune::UMFPack< M >::category ( ) const
inlinevirtual

◆ copyToLocalMatrix()

template<class M , class X , class Y >
template<class S >
std::size_t Dune::ILUSubdomainSolver< M, X, Y >::copyToLocalMatrix ( const M &  A,
S &  rowset 
)
protected

Copy the local part of the global matrix to ILU.

Parameters
AThe global matrix.
rowsetThe global indices of the local problem.

◆ defaults() [1/2]

template<typename... A>
static void Dune::UMFPackMethodChooser< double >::defaults ( A...  args)
inlinestatic

◆ defaults() [2/2]

template<typename... A>
static void Dune::UMFPackMethodChooser< std::complex< double > >::defaults ( A...  args)
inlinestatic

◆ DUNE_REGISTER_DIRECT_SOLVER() [1/3]

Dune::DUNE_REGISTER_DIRECT_SOLVER ( "ldl"  ,
Dune::LDLCreator()   
)

◆ DUNE_REGISTER_DIRECT_SOLVER() [2/3]

Dune::DUNE_REGISTER_DIRECT_SOLVER ( "spqr"  ,
Dune::SPQRCreator()   
)

◆ DUNE_REGISTER_DIRECT_SOLVER() [3/3]

Dune::DUNE_REGISTER_DIRECT_SOLVER ( "umfpack"  ,
Dune::UMFPackCreator()   
)

◆ free() [1/4]

template<typename T , typename A , int n, int m>
void Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::free ( )
inline

Free allocated space.

Warning
Later calling apply will result in an error.

◆ free() [2/4]

template<typename T , typename A , int n, int m>
void Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::free ( )
inline

Free allocated space.

Warning
Later calling apply will result in an error.

◆ free() [3/4]

template<typename M >
void Dune::SuperLU< M >::free

free allocated space.

Warning
later calling apply will result in an error.

◆ free() [4/4]

template<typename M >
void Dune::UMFPack< M >::free ( )
inline

free allocated space.

Warning
later calling apply will result in an error.

◆ free_numeric() [1/2]

template<typename... A>
static void Dune::UMFPackMethodChooser< double >::free_numeric ( A...  args)
inlinestatic

◆ free_numeric() [2/2]

template<typename... A>
static void Dune::UMFPackMethodChooser< std::complex< double > >::free_numeric ( A...  args)
inlinestatic

◆ free_symbolic() [1/2]

template<typename... A>
static void Dune::UMFPackMethodChooser< double >::free_symbolic ( A...  args)
inlinestatic

◆ free_symbolic() [2/2]

template<typename... A>
static void Dune::UMFPackMethodChooser< std::complex< double > >::free_symbolic ( A...  args)
inlinestatic

◆ getD()

template<typename T , typename A , int n, int m>
double * Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::getD ( )
inline

Get factorization diagonal matrix D.

Warning
It is up to the user to preserve consistency.

◆ getFactorization() [1/2]

template<typename T , typename A , int n, int m>
SuiteSparseQR_factorization< T > * Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::getFactorization ( )
inline

Return the matrix factorization.

Warning
It is up to the user to keep consistency.

◆ getFactorization() [2/2]

template<typename M >
void * Dune::UMFPack< M >::getFactorization ( )
inline

Return the matrix factorization.

Warning
It is up to the user to keep consistency.

◆ getInternalMatrix() [1/3]

template<typename T , typename A , int n, int m>
LDLMatrix & Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::getInternalMatrix ( )
inline

Return the column compress matrix.

Warning
It is up to the user to keep consistency.

◆ getInternalMatrix() [2/3]

template<typename T , typename A , int n, int m>
SPQRMatrix & Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::getInternalMatrix ( )
inline

Return the column coppressed matrix.

Warning
It is up to the user to keep consistency.

◆ getInternalMatrix() [3/3]

template<typename M >
UMFPackMatrix & Dune::UMFPack< M >::getInternalMatrix ( )
inline

Return the column compress matrix from UMFPack.

Warning
It is up to the user to keep consistency.

◆ getLi()

template<typename T , typename A , int n, int m>
int * Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::getLi ( )
inline

Get factorization Li.

Warning
It is up to the user to preserve consistency.

◆ getLp()

template<typename T , typename A , int n, int m>
int * Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::getLp ( )
inline

Get factorization Lp.

Warning
It is up to the user to preserve consistency.

◆ getLx()

template<typename T , typename A , int n, int m>
double * Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::getLx ( )
inline

Get factorization Lx.

Warning
It is up to the user to preserve consistency.

◆ LDL() [1/4]

template<typename T , typename A , int n, int m>
Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::LDL ( )
inline

Default constructor.

◆ LDL() [2/4]

template<typename T , typename A , int n, int m>
Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::LDL ( const Matrix matrix,
const ParameterTree &  config 
)
inline

Constructs the LDL solver.

Parameters
matrixThe matrix of the system to solve.
configParameterTree containing solver parameters.
ParameterTree Key Meaning
verbose The verbosity level. default=0

◆ LDL() [3/4]

template<typename T , typename A , int n, int m>
Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::LDL ( const Matrix matrix,
int  verbose,
bool   
)
inline

Constructor for compatibility with SuperLU standard constructor.

This computes the matrix decomposition, and may take a long time (and use a lot of memory).

Parameters
matrixthe matrix to solve for
verbose0 or 1 set the verbosity level, defaults to 0

◆ LDL() [4/4]

template<typename T , typename A , int n, int m>
Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::LDL ( const Matrix matrix,
int  verbose = 0 
)
inline

Construct a solver object from a BCRSMatrix.

This computes the matrix decomposition, and may take a long time (and use a lot of memory).

Parameters
matrixthe matrix to solve for
verbose0 or 1 set the verbosity level, defaults to 0

◆ load_numeric() [1/2]

template<typename... A>
static int Dune::UMFPackMethodChooser< double >::load_numeric ( A...  args)
inlinestatic

◆ load_numeric() [2/2]

template<typename... A>
static int Dune::UMFPackMethodChooser< std::complex< double > >::load_numeric ( A...  args)
inlinestatic

◆ name() [1/3]

template<typename T , typename A , int n, int m>
const char * Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::name ( )
inline

Get method name.

◆ name() [2/3]

template<typename T , typename A , int n, int m>
const char * Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::name ( )
inline

Get method name.

◆ name() [3/3]

template<typename M >
const char * Dune::UMFPack< M >::name ( )
inline

◆ numeric() [1/2]

template<typename... A>
static void Dune::UMFPackMethodChooser< double >::numeric ( A...  args)
inlinestatic

◆ numeric() [2/2]

template<typename... A>
static void Dune::UMFPackMethodChooser< std::complex< double > >::numeric ( const long int *  cs,
const long int *  ri,
const double *  val,
A...  args 
)
inlinestatic

◆ operator()() [1/6]

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
inline

◆ operator()() [2/6]

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< typename Dune::TypeListElement< 1, TL >::type::block_type >::value, int >  = 0 
) const
inline

◆ operator()() [3/6]

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
inline

◆ operator()() [4/6]

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
inline

◆ operator()() [5/6]

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
inline

◆ operator()() [6/6]

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 &  mat,
const Dune::ParameterTree &  config,
std::enable_if_t< isValidBlock< typename Dune::TypeListElement< 1, TL >::type::block_type >::value, int >  = 0 
) const
inline

◆ report_info() [1/2]

template<typename... A>
static void Dune::UMFPackMethodChooser< double >::report_info ( A...  args)
inlinestatic

◆ report_info() [2/2]

template<typename... A>
static void Dune::UMFPackMethodChooser< std::complex< double > >::report_info ( A...  args)
inlinestatic

◆ report_status() [1/2]

template<typename... A>
static void Dune::UMFPackMethodChooser< double >::report_status ( A...  args)
inlinestatic

◆ report_status() [2/2]

template<typename... A>
static void Dune::UMFPackMethodChooser< std::complex< double > >::report_status ( A...  args)
inlinestatic

◆ save_numeric() [1/2]

template<typename... A>
static int Dune::UMFPackMethodChooser< double >::save_numeric ( A...  args)
inlinestatic

◆ save_numeric() [2/2]

template<typename... A>
static int Dune::UMFPackMethodChooser< std::complex< double > >::save_numeric ( A...  args)
inlinestatic

◆ saveDecomposition()

template<typename M >
void Dune::UMFPack< M >::saveDecomposition ( const char *  file)
inline

saves a decomposition to a file

Parameters
filethe filename to save to

◆ setMatrix() [1/4]

template<typename M >
void Dune::SuperLU< M >::setMatrix ( const Matrix mat)

Initialize data from given matrix.

◆ setMatrix() [2/4]

template<typename T , typename A , int n, int m>
void Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::setMatrix ( const Matrix matrix)
inline

Initialize data from given matrix.

◆ setMatrix() [3/4]

template<typename T , typename A , int n, int m>
void Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::setMatrix ( const Matrix matrix)
inline

Initialize data from given matrix.

◆ setMatrix() [4/4]

template<typename M >
void Dune::UMFPack< M >::setMatrix ( const Matrix matrix)
inline

Initialize data from given matrix.

◆ setOption() [1/3]

template<typename T , typename A , int n, int m>
void Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::setOption ( unsigned int  option,
double  value 
)
inline

◆ setOption() [2/3]

template<typename T , typename A , int n, int m>
void Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::setOption ( unsigned int  option,
double  value 
)
inline

◆ setOption() [3/3]

template<typename M >
void Dune::UMFPack< M >::setOption ( unsigned int  option,
double  value 
)
inline

Set UMFPack-specific options.

This method allows to set various options that control the UMFPack solver. More specifically, it allows to set values in the UMF_Control array. Please see the UMFPack documentation for a list of possible options and values.

Parameters
optionEntry in the UMF_Control array, e.g., UMFPACK_IRSTEP
valueCorresponding value
Exceptions
RangeErrorIf nonexisting option was requested

◆ setSubMatrix() [1/6]

template<class M , class X , class Y >
template<class S >
void Dune::ILU0SubdomainSolver< M, X, Y >::setSubMatrix ( const M &  A,
S &  rowset 
)

Set the data of the local problem.

Parameters
AThe global matrix.
rowsetThe global indices of the local problem.
Template Parameters
SThe type of the set with the indices.

◆ setSubMatrix() [2/6]

template<class M , class X , class Y >
template<class S >
void Dune::ILUNSubdomainSolver< M, X, Y >::setSubMatrix ( const M &  A,
S &  rowset 
)

Set the data of the local problem.

Parameters
AThe global matrix.
rowsetThe global indices of the local problem.
Template Parameters
SThe type of the set with the indices.

◆ setSubMatrix() [3/6]

template<typename M >
template<class S >
void Dune::UMFPack< M >::setSubMatrix ( const Matrix _mat,
const S &  rowIndexSet 
)
inline

◆ setSubMatrix() [4/6]

template<typename M >
template<class S >
void Dune::SuperLU< M >::setSubMatrix ( const Matrix mat,
const S &  rowIndexSet 
)

◆ setSubMatrix() [5/6]

template<typename T , typename A , int n, int m>
template<class S >
void Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::setSubMatrix ( const Matrix matrix,
const S &  rowIndexSet 
)
inline

◆ setSubMatrix() [6/6]

template<typename T , typename A , int n, int m>
template<class S >
void Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::setSubMatrix ( const Matrix matrix,
const S &  rowIndexSet 
)
inline

◆ setVerbosity() [1/4]

template<typename M >
void Dune::SuperLU< M >::setVerbosity ( bool  v)

◆ setVerbosity() [2/4]

template<typename T , typename A , int n, int m>
void Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::setVerbosity ( int  v)
inline

Sets the verbosity level for the solver.

Parameters
vverbosity level: 0 only error messages, 1 a bit of statistics.

◆ setVerbosity() [3/4]

template<typename T , typename A , int n, int m>
void Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::setVerbosity ( int  v)
inline

Sets the verbosity level for the solver.

Parameters
vverbosity level: 0 only error messages, 1 a bit of statistics.

◆ setVerbosity() [4/4]

template<typename M >
void Dune::UMFPack< M >::setVerbosity ( int  v)
inline

sets the verbosity level for the UMFPack solver

Parameters
vverbosity level The following levels are implemented: 0 - only error messages 1 - a bit of statistics on decomposition and solution 2 - lots of statistics on decomposition and solution

◆ solve() [1/2]

template<typename... A>
static void Dune::UMFPackMethodChooser< double >::solve ( A...  args)
inlinestatic

◆ solve() [2/2]

template<typename... A>
static void Dune::UMFPackMethodChooser< std::complex< double > >::solve ( long int  m,
const long int *  cs,
const long int *  ri,
std::complex< double > *  val,
double *  x,
const double *  b,
A...  args 
)
inlinestatic

◆ SPQR() [1/4]

template<typename T , typename A , int n, int m>
Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::SPQR ( )
inline

Default constructor.

◆ SPQR() [2/4]

template<typename T , typename A , int n, int m>
Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::SPQR ( const Matrix matrix,
const ParameterTree &  config 
)
inline

Constructs the SPQR solver.

Parameters
matrixThe matrix of the system to solve.
configParameterTree containing solver parameters.
ParameterTree Key Meaning
verbose The verbosity level. default=0

◆ SPQR() [3/4]

template<typename T , typename A , int n, int m>
Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::SPQR ( const Matrix matrix,
int  verbose,
bool   
)
inline

Constructor for compatibility with SuperLU standard constructor.

This computes the matrix decomposition, and may take a long time (and use a lot of memory).

Parameters
matrixthe matrix to solve for
verbose,0or 1, set the verbosity level, defaults to 0

◆ SPQR() [4/4]

template<typename T , typename A , int n, int m>
Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::SPQR ( const Matrix matrix,
int  verbose = 0 
)
inline

Construct a solver object from a BCRSMatrix.

This computes the matrix decomposition, and may take a long time (and use a lot of memory).

Parameters
matrixthe matrix to solve for
verbose,0or 1, set the verbosity level, defaults to 0

◆ SuperLU() [1/2]

template<typename M >
Dune::SuperLU< M >::SuperLU

Empty default constructor.

Use setMatrix to tell SuperLU for what matrix it solves. Using this constructor no vectors will be reused.

◆ SuperLU() [2/2]

template<typename M >
Dune::SuperLU< M >::SuperLU ( const Matrix mat,
bool  verbose = false,
bool  reusevector = true 
)
explicit

Constructs the SuperLU solver.

During the construction the matrix will be decomposed. That means that in each apply call forward and backward substitutions take place (and no decomposition).

Parameters
matThe matrix of the system to solve.
verboseIf true some statistics are printed.
reusevectorDefault value is true. If true the two vectors are allocate in the first call to apply. These get resused in subsequent calls to apply and are deallocated in the destructor. If false these vectors are allocated at the beginning and deallocated at the end of each apply method. This allows using the same instance of superlu from different threads.

◆ symbolic() [1/2]

template<typename... A>
static void Dune::UMFPackMethodChooser< double >::symbolic ( A...  args)
inlinestatic

◆ symbolic() [2/2]

template<typename... A>
static void Dune::UMFPackMethodChooser< std::complex< double > >::symbolic ( long int  m,
long int  n,
const long int *  cs,
const long int *  ri,
const double *  val,
A...  args 
)
inlinestatic

◆ UMFPack() [1/6]

template<typename M >
Dune::UMFPack< M >::UMFPack ( )
inline

default constructor

◆ UMFPack() [2/6]

template<typename M >
Dune::UMFPack< M >::UMFPack ( const char *  file,
int  verbose = 0 
)
inline

try loading a decomposition from file

Parameters
filethe decomposition file
verbosethe verbosity level
Exceptions
Dune::ExceptionWhen not being able to load the file. Does not need knowledge of the actual matrix!

◆ UMFPack() [3/6]

template<typename M >
Dune::UMFPack< M >::UMFPack ( const Matrix mat_,
const char *  file,
int  verbose = 0 
)
inline

Try loading a decomposition from file and do a decomposition if unsuccessful.

Parameters
mat_the matrix to decompose when no decoposition file found
filethe decomposition file
verbosethe verbosity level

Use saveDecomposition(char* file) for manually storing a decomposition. This constructor will decompose mat_ and store the result to file if no file wasn't found in the first place. Thus, if you always use this you will only compute the decomposition once (and when you manually deleted the decomposition file).

◆ UMFPack() [4/6]

template<typename M >
Dune::UMFPack< M >::UMFPack ( const Matrix mat_,
const ParameterTree &  config 
)
inline

Construct a solver object from a matrix.

Parameters
matrixthe matrix to solve for
configParameterTree containing solver parameters.
ParameterTree Key Meaning
verbose The verbosity level. default=0

◆ UMFPack() [5/6]

template<typename M >
Dune::UMFPack< M >::UMFPack ( const Matrix matrix,
int  verbose,
bool   
)
inline

Constructor for compatibility with SuperLU standard constructor.

This computes the matrix decomposition, and may take a long time (and use a lot of memory).

Parameters
matrixthe matrix to solve for
verbose[0..2] set the verbosity level, defaults to 0

◆ UMFPack() [6/6]

template<typename M >
Dune::UMFPack< M >::UMFPack ( const Matrix matrix,
int  verbose = 0 
)
inline

Construct a solver object from a matrix.

This computes the matrix decomposition, and may take a long time (and use a lot of memory).

Parameters
matrixthe matrix to solve for
verbose[0..2] set the verbosity level, defaults to 0

◆ ~LDL()

template<typename T , typename A , int n, int m>
virtual Dune::LDL< BCRSMatrix< FieldMatrix< T, n, m >, A > >::~LDL ( )
inlinevirtual

Default constructor.

◆ ~SPQR()

template<typename T , typename A , int n, int m>
virtual Dune::SPQR< BCRSMatrix< FieldMatrix< T, n, m >, A > >::~SPQR ( )
inlinevirtual

Destructor.

◆ ~SuperLU()

template<typename M >
Dune::SuperLU< M >::~SuperLU

◆ ~UMFPack()

template<typename M >
virtual Dune::UMFPack< M >::~UMFPack ( )
inlinevirtual

Variable Documentation

◆ valid [1/3]

template<typename T >
constexpr bool Dune::UMFPackMethodChooser< T >::valid = false
staticconstexpr

◆ valid [2/3]

constexpr bool Dune::UMFPackMethodChooser< double >::valid = true
staticconstexpr

◆ valid [3/3]

constexpr bool Dune::UMFPackMethodChooser< std::complex< double > >::valid = true
staticconstexpr