dune-istl 2.10
|
SuperLu Solver. More...
#include <dune/istl/superlu.hh>
Public Types | |
using | Matrix = M |
The matrix type. | |
using | matrix_type = M |
typedef Dune::SuperLUMatrix< Matrix > | SuperLUMatrix |
The corresponding SuperLU Matrix type. | |
typedef SuperMatrixInitializer< Matrix > | MatrixInitializer |
Type of an associated initializer class. | |
using | domain_type = typename Impl::SuperLUVectorChooser< M >::domain_type |
The type of the domain of the solver. | |
using | range_type = typename Impl::SuperLUVectorChooser< 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) | |
SuperLU (const Matrix &mat, bool verbose=false, bool reusevector=true) | |
Constructs the SuperLU solver. | |
SuperLU (const Matrix &mat, const ParameterTree &config) | |
Constructs the SuperLU solver. | |
SuperLU () | |
Empty default constructor. | |
~SuperLU () | |
void | apply (domain_type &x, range_type &b, InverseOperatorResult &res) |
Apply inverse operator,. | |
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) |
Apply SuperLu to C arrays. | |
void | setMatrix (const Matrix &mat) |
Initialize data from given matrix. | |
SuperLUMatrix::size_type | nnz () const |
template<class S > | |
void | setSubMatrix (const Matrix &mat, const S &rowIndexSet) |
void | setVerbosity (bool v) |
void | free () |
free allocated space. | |
const char * | name () |
SuperLu Solver.
Uses the well known SuperLU package to solve the system.
SuperLU supports single and double precision floating point and complex numbers. Unfortunately these cannot be used at the same time. Therefore users must set SUPERLU_NTYPE (0: float, 1: double, 2: std::complex<float>, 3: std::complex<double>) if the numeric type should be different from double.
using Dune::SuperLU< M >::domain_type = typename Impl::SuperLUVectorChooser<M>::domain_type |
The type of the domain of the solver.
using Dune::SuperLU< M >::Matrix = M |
The matrix type.
using Dune::SuperLU< M >::matrix_type = M |
typedef SuperMatrixInitializer<Matrix> Dune::SuperLU< M >::MatrixInitializer |
Type of an associated initializer class.
using Dune::SuperLU< M >::range_type = typename Impl::SuperLUVectorChooser<M>::range_type |
The type of the range of the solver.
typedef Dune::SuperLUMatrix<Matrix> Dune::SuperLU< M >::SuperLUMatrix |
|
inline |
Constructs the SuperLU solver.
mat | The matrix of the system to solve. |
config | ParameterTree containing solver parameters. |
ParameterTree Key | Meaning |
---|---|
verbose | The verbosity level. default=false |
reuseVector | Reuse initially allocated vectors in apply. default=true |
|
inline |
apply inverse operator, with given convergence criteria.
x | The left hand side to store the result in. |
b | The right hand side |
reduction | The minimum defect reduction to achieve. |
res | Object to store the statistics about applying the operator. |
SolverAbort | When the solver detects a problem and cannot continue |
|
inlinevirtual |
Category of the solver (see SolverCategory::Category)
|
inline |
|
inline |