dune-istl 2.9.0
Loading...
Searching...
No Matches
Public Types | Public Member Functions | 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 Matrix = M
 The matrix type.
 
using matrix_type = M
 
typedef ISTL::Impl::BCCSMatrix< typename Matrix::field_type, long int > UMFPackMatrix
 The corresponding UMFPack matrix type.
 
typedef ISTL::Impl::BCCSMatrixInitializer< M, long int > MatrixInitializer
 Type of an associated initializer class.
 
using domain_type = typename Impl::UMFPackVectorChooser< M >::domain_type
 The type of the domain of the solver.
 
using range_type = typename Impl::UMFPackVectorChooser< M >::range_type
 The type of the range of the solver.
 

Public Member Functions

virtual SolverCategory::Category category () const
 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 ()
 
virtual void apply (domain_type &x, range_type &b, InverseOperatorResult &res)
 Apply inverse operator,.
 
virtual void apply (domain_type &x, range_type &b, double reduction, InverseOperatorResult &res)
 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
 
void setMatrix (const Matrix &matrix)
 Initialize data from given matrix.
 
template<class S >
void setSubMatrix (const Matrix &_mat, const S &rowIndexSet)
 
void setVerbosity (int v)
 sets the verbosity level for the UMFPack solver
 
void * getFactorization ()
 Return the matrix factorization.
 
UMFPackMatrixgetInternalMatrix ()
 Return the column compress matrix from UMFPack.
 
void free ()
 free allocated space.
 
const char * name ()
 

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: