dune-istl  2.11
Public Types | Public Member Functions | Friends | List of all members
Dune::UMFPack< M > Class Template Reference

The UMFPack direct sparse solver. More...

#include <dune/istl/umfpack.hh>

Inheritance diagram for Dune::UMFPack< M >:
Inheritance graph

Public Types

using size_type = SuiteSparse_long
 
using Matrix = M
 The matrix type. More...
 
using matrix_type = M
 
using UMFPackMatrix = ISTL::Impl::BCCSMatrix< typename Matrix::field_type, size_type >
 The corresponding (scalar) UMFPack matrix type. More...
 
using MatrixInitializer = ISTL::Impl::BCCSMatrixInitializer< M, size_type >
 Type of an associated initializer class. More...
 
using domain_type = Impl::UMFPackDomainType< M >
 The type of the domain of the solver. More...
 
using range_type = Impl::UMFPackRangeType< M >
 The type of the range of the solver. More...
 

Public Member Functions

SolverCategory::Category category () const override
 Category of the solver (see SolverCategory::Category) More...
 
 UMFPack (const Matrix &matrix, int verbose=0)
 Construct a solver object from a matrix. More...
 
 UMFPack (const Matrix &matrix, int verbose, bool)
 Constructor for compatibility with SuperLU standard constructor. More...
 
 UMFPack (const Matrix &mat_, const ParameterTree &config)
 Construct a solver object from a matrix. More...
 
 UMFPack ()
 default constructor More...
 
 UMFPack (const Matrix &mat_, const char *file, int verbose=0)
 Try loading a decomposition from file and do a decomposition if unsuccessful. More...
 
 UMFPack (const char *file, int verbose=0)
 try loading a decomposition from file More...
 
virtual ~UMFPack ()
 
void apply (domain_type &x, range_type &b, InverseOperatorResult &res) override
 Apply inverse operator,. More...
 
void apply (domain_type &x, range_type &b, [[maybe_unused]] double reduction, InverseOperatorResult &res) override
 apply inverse operator, with given convergence criteria. More...
 
void apply (T *x, T *b)
 additional apply method with c-arrays in analogy to superlu More...
 
void setOption (unsigned int option, double value)
 Set UMFPack-specific options. More...
 
void saveDecomposition (const char *file)
 saves a decomposition to a file More...
 
template<class BitVector = Impl::NoBitVector>
void setMatrix (const Matrix &matrix, const BitVector &bitVector={})
 Initialize data from given matrix. More...
 
void setSubMatrix (const Matrix &_mat, const std::set< typename Matrix::size_type > &rowIndexSet)
 
void setVerbosity (int v)
 sets the verbosity level for the UMFPack solver More...
 
void * getFactorization ()
 Return the matrix factorization. More...
 
UMFPackMatrixgetInternalMatrix ()
 Return the column compress matrix from UMFPack. More...
 
void free ()
 free allocated space. More...
 
const char * name ()
 

Friends

template<class Mat , class X , class TM , class TD , class T1 >
class SeqOverlappingSchwarz
 
struct SeqOverlappingSchwarzAssemblerHelper< UMFPack< Matrix >, true >
 

Detailed Description

template<typename M>
class Dune::UMFPack< M >

The UMFPack direct sparse solver.

Details on UMFPack can be found on http://www.cise.ufl.edu/research/sparse/umfpack/

UMFPack will always use double precision. For complex matrices use a matrix type with std::complex<double> as the underlying number type.

Template Parameters
Matrixthe matrix type defining the system
Note
This will only work if dune-istl has been configured to use UMFPack

The documentation for this class was generated from the following file: