DUNE PDELab (2.8)
Dune::SuperLU< M > Class Template Reference
SuperLu Solver. More...
#include <dune/istl/superlu.hh>
Public Types | |
using | Matrix = M |
The matrix type. | |
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. More... | |
SuperLU (const Matrix &mat, const ParameterTree &config) | |
Constructs the SuperLU solver. More... | |
SuperLU () | |
Empty default constructor. More... | |
void | apply (domain_type &x, range_type &b, InverseOperatorResult &res) |
Apply inverse operator,. More... | |
void | apply (domain_type &x, range_type &b, double reduction, InverseOperatorResult &res) |
apply inverse operator, with given convergence criteria. More... | |
void | apply (T *x, T *b) |
Apply SuperLu to C arrays. | |
void | setMatrix (const Matrix &mat) |
Initialize data from given matrix. | |
void | free () |
free allocated space. More... | |
Detailed Description
template<typename M>
class Dune::SuperLU< M >
class Dune::SuperLU< M >
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.
Constructor & Destructor Documentation
◆ SuperLU()
template<typename M >
|
inline |
Constructs the SuperLU solver.
- Parameters
-
matrix 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 |
Member Function Documentation
◆ apply()
template<typename M >
|
inline |
apply inverse operator, with given convergence criteria.
- Warning
- Right hand side b may be overwritten!
- Parameters
-
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.
- Exceptions
-
SolverAbort When the solver detects a problem and cannot continue
References Dune::SuperLU< M >::apply().
The documentation for this class was generated from the following file:
- dune/istl/superlu.hh
![Creative Commons License](https://i.creativecommons.org/l/by-sa/4.0/80x15.png)