|
opm-simulators
|
Provides a convergence criterion which looks at the reduction of the two-norm of the residual for the linear solvers. More...
#include <residreductioncriterion.hh>
Public Member Functions | |
| ResidReductionCriterion (Dune::ScalarProduct< Vector > &scalarProduct, Scalar tolerance=1e-6) | |
| void | setTolerance (Scalar tol) |
| Set the maximum allowed weighted maximum of the reduction of the linear residual. | |
| Scalar | tolerance () const |
| Return the maximum allowed weighted maximum of the reduction of the linear residual. | |
| void | setInitial (const Vector &, const Vector &curResid) override |
| Set the initial solution of the linear system of equations. | |
| void | update (const Vector &, const Vector &, const Vector &curResid) override |
| bool | converged () const override |
| Returns true if and only if the convergence criterion is met. | |
| Scalar | accuracy () const override |
| Returns the accuracy of the solution at the last update. | |
| void | printInitial (std::ostream &os=std::cout) const override |
| Prints the initial information about the convergence behaviour. | |
| void | print (Scalar iter, std::ostream &os=std::cout) const override |
| Prints the information about the convergence behaviour for the current iteration. | |
| Public Member Functions inherited from Opm::Linear::ConvergenceCriterion< Vector > | |
| virtual | ~ConvergenceCriterion () |
| Destructor. | |
| virtual bool | failed () const |
| Returns true if the convergence criterion cannot be met anymore because the solver has broken down. | |
| virtual void | print (Scalar, std::ostream &=std::cout) const |
| Prints the information about the convergence behaviour for the current iteration. | |
Provides a convergence criterion which looks at the reduction of the two-norm of the residual for the linear solvers.
For the ResidReductionCriterion, the error of the solution is defined as
![\[ e^k = \frac{\left| A x_k - b \right|}{\left| A x_0 - b \right|}\;, \]](form_140.png)
|
inlineoverridevirtual |
Returns the accuracy of the solution at the last update.
A value of zero means that the solution was exact.
Implements Opm::Linear::ConvergenceCriterion< Vector >.
|
inlineoverridevirtual |
Returns true if and only if the convergence criterion is met.
Implements Opm::Linear::ConvergenceCriterion< Vector >.
|
inlineoverride |
Prints the information about the convergence behaviour for the current iteration.
| iter | The iteration number. The semantics of this parameter are chosen by the linear solver. |
| os | The output stream to which the message gets written. |
|
inlineoverridevirtual |
Prints the initial information about the convergence behaviour.
This method is called after setInitial() if the solver thinks it's a good idea to be verbose. In practice, "printing the initial information" means printing column headers and the initial state.
| os | The output stream to which the message gets written. |
Reimplemented from Opm::Linear::ConvergenceCriterion< Vector >.
|
inlineoverridevirtual |
Set the initial solution of the linear system of equations.
This version of the method does NOT take the two-norm of the residual as argument. If the two-norm of the defect is available for the linear solver, the version of the update() method with it should be called.
| curSol | The current iterative solution of the linear system of equations |
| curResid | The residual vector of the current iterative solution of the linear system of equations |
Implements Opm::Linear::ConvergenceCriterion< Vector >.
|
inlineoverridevirtual |
Implements Opm::Linear::ConvergenceCriterion< Vector >.