Loading...
Searching...
No Matches
Dune::UMFPack< M > Class Template Reference
Iterative Solvers Template Library (ISTL)

The UMFPack direct sparse solver. More...

`#include <dune/istl/umfpack.hh>`

Inheritance diagram for Dune::UMFPack< M >:

## Public Types

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

## Public Member Functions

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

  Matrix | the 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:

- umfpack.hh