4#ifndef DUNE_ISTL_SOLVER_HH
5#define DUNE_ISTL_SOLVER_HH
78 template<
class X,
class Y>
135 template <
typename CountType,
typename DataType>
148 template <
typename CountType,
typename DataType>
Definition basearray.hh:19
Statistics about compression achieved in implicit mode.
Definition bcrsmatrix.hh:81
Statistics about the application of an inverse operator.
Definition solver.hh:32
InverseOperatorResult()
Default constructor.
Definition solver.hh:34
double elapsed
Elapsed time in seconds.
Definition solver.hh:62
int iterations
Number of iterations.
Definition solver.hh:50
double reduction
Reduction achieved: .
Definition solver.hh:53
void clear()
Resets all data.
Definition solver.hh:40
double conv_rate
Convergence rate (average reduction per step)
Definition solver.hh:59
bool converged
True if convergence criterion has been met.
Definition solver.hh:56
Abstract base class for all solvers.
Definition solver.hh:79
void printHeader(std::ostream &s) const
helper function for printing header of solver output
Definition solver.hh:127
virtual ~InverseOperator()
Destructor.
Definition solver.hh:120
void printOutput(std::ostream &s, const CountType &iter, const DataType &norm) const
helper function for printing solver output
Definition solver.hh:149
@ normSpacing
Definition solver.hh:124
@ iterationSpacing
Definition solver.hh:124
void printOutput(std::ostream &s, const CountType &iter, const DataType &norm, const DataType &norm_old) const
helper function for printing solver output
Definition solver.hh:136
virtual void apply(X &x, Y &b, double reduction, InverseOperatorResult &res)=0
apply inverse operator, with given convergence criteria.
Y range_type
Type of the range of the operator to be inverted.
Definition solver.hh:85
X domain_type
Type of the domain of the operator to be inverted.
Definition solver.hh:82
virtual void apply(X &x, Y &b, InverseOperatorResult &res)=0
Apply inverse operator,.
X::field_type field_type
The field type of the operator.
Definition solver.hh:88