Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > > Class Template Reference
[ISTL]
#include <superlu.hh>
Inheritance diagram for Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >:

Detailed Description
template<typename T, typename A, int n, int m>
class Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >
SuperLu Solver.
Uses the well known SuperLU package to solve the system.
Public Types | |
typedef BlockVector < FieldVector< T, m >, A > | domain_type |
The type of the domain of the solver. | |
typedef BlockVector < FieldVector< T, n >, A > | 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) | |
Constructor. | |
SuperLU () | |
Empty default constructor. | |
void | apply (domain_type &x, range_type &b, InverseOperatorResult &res) |
void | apply (domain_type &x, range_type &b, double reduction, InverseOperatorResult &res) |
void | apply (T *x, T *b) |
Apply SuperLu to C arrays. | |
void | setMatrix (const Matrix &mat) |
Initialize data from given matrix. | |
virtual void | apply (X &x, Y &b, InverseOperatorResult &res)=0 |
Apply inverse operator,. | |
virtual void | apply (X &x, Y &b, double reduction, InverseOperatorResult &res)=0 |
apply inverse operator, with given convergence criteria. | |
Protected Member Functions | |
void | printHeader (std::ostream &s) const |
helper function for printing header of solver output | |
template<class DataType> | |
void | printOutput (std::ostream &s, const int iter, const DataType &norm, const DataType &norm_old) const |
helper function for printing solver output | |
template<class DataType> | |
void | printOutput (std::ostream &s, const int iter, const DataType &norm) const |
helper function for printing solver output |
Member Function Documentation
template<typename T, typename A, int n, int m>
void Dune::SuperLU< BCRSMatrix< FieldMatrix< T, n, m >, A > >::apply | ( | domain_type & | x, | |
range_type & | b, | |||
double | reduction, | |||
InverseOperatorResult & | res | |||
) | [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::InverseOperatorResult::converged, and Dune::InverseOperatorResult::reduction.
template<class X, class Y>
virtual void Dune::InverseOperator< X, Y >::apply | ( | X & | x, | |
Y & | b, | |||
InverseOperatorResult & | res | |||
) | [pure virtual, inherited] |
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.
Implemented in Dune::LoopSolver< X >, Dune::GradientSolver< X >, Dune::CGSolver< X >, and Dune::BiCGSTABSolver< X >.
template<class X, class Y>
virtual void Dune::InverseOperator< X, Y >::apply | ( | X & | x, | |
Y & | b, | |||
double | reduction, | |||
InverseOperatorResult & | res | |||
) | [pure virtual, inherited] |
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.
Implemented in Dune::LoopSolver< X >, Dune::GradientSolver< X >, Dune::CGSolver< X >, and Dune::BiCGSTABSolver< X >.
The documentation for this class was generated from the following file: