Dune Core Modules (2.4.2)
Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > Class Template Referenceabstract
SuperLu Solver. More...
#include <dune/istl/superlu.hh>
Public Types | |
typedef Dune::BCRSMatrix< FieldMatrix< T, n, m >, A > | Matrix |
The matrix type. | |
typedef Dune::SuperLUMatrix< Matrix > | SuperLUMatrix |
The corresponding SuperLU Matrix type. | |
typedef SuperMatrixInitializer< BCRSMatrix< FieldMatrix< T, n, m >, A > > | MatrixInitializer |
Type of an associated initializer class. | |
typedef Dune::BlockVector< FieldVector< T, m >, typename A::template rebind< FieldVector< T, m > >::other > | domain_type |
The type of the domain of the solver. | |
typedef Dune::BlockVector< FieldVector< T, n >, typename A::template rebind< FieldVector< T, n > >::other > | range_type |
The type of the range of the solver. | |
typedef X::field_type | field_type |
The field type of the operator. | |
Public Member Functions | |
SuperLU (const Matrix &mat, bool verbose=false, bool reusevector=true) | |
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... | |
virtual void | apply (BlockVector< FieldVector< T, m >, A::template rebind< FieldVector< T, m > >::other > &x, BlockVector< FieldVector< T, n >, A::template rebind< FieldVector< T, n > >::other > &b, InverseOperatorResult &res)=0 |
Apply inverse operator,. More... | |
virtual void | apply (BlockVector< FieldVector< T, m >, A::template rebind< FieldVector< T, m > >::other > &x, BlockVector< FieldVector< T, n >, A::template rebind< FieldVector< T, n > >::other > &b, double reduction, InverseOperatorResult &res)=0 |
apply inverse operator, with given convergence criteria. More... | |
Detailed Description
template<typename T, typename A, int n, int m>
class Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >
class Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >
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. Therfore 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.
Member Function Documentation
◆ apply() [1/3]
|
pure virtualinherited |
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.
◆ apply() [2/3]
|
pure virtualinherited |
Apply inverse operator,.
- Warning
- Note: right hand side b may be overwritten!
- Parameters
-
x The left hand side to store the result in. b The right hand side res Object to store the statistics about applying the operator.
◆ apply() [3/3]
template<typename T , typename A , int n, int 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.
References DUNE_UNUSED_PARAMETER.
The documentation for this class was generated from the following file:
- dune/istl/superlu.hh
