My Project
|
Base class for all convergence criteria which only defines an virtual API. More...
#include <convergencecriterion.hh>
Public Member Functions | |
virtual | ~ConvergenceCriterion () |
Destructor. | |
virtual void | setInitial (const Vector &curSol, const Vector &curResid)=0 |
Set the initial solution of the linear system of equations. | |
virtual void | update (const Vector &curSol, const Vector &changeIndicator, const Vector &curResid)=0 |
Update the internal members of the convergence criterion with the current solution. | |
virtual bool | converged () const =0 |
Returns true if and only if the convergence criterion is met. | |
virtual bool | failed () const |
Returns true if the convergence criterion cannot be met anymore because the solver has broken down. | |
virtual Scalar | accuracy () const =0 |
Returns the accuracy of the solution at the last update. | |
virtual void | printInitial (std::ostream &=std::cout) const |
Prints the initial information about the convergence behaviour. | |
virtual void | print (Scalar, std::ostream &=std::cout) const |
Prints the information about the convergence behaviour for the current iteration. | |
Base class for all convergence criteria which only defines an virtual API.
|
inlinevirtual |
Destructor.
In the ConvergenceCriterion it does not do anything, but it is required to be declared virtual.
|
pure virtual |
Returns the accuracy of the solution at the last update.
A value of zero means that the solution was exact.
Implemented in Opm::Linear::FixPointCriterion< Vector, CollectiveCommunication >, Opm::Linear::CombinedCriterion< Vector, CollectiveCommunication >, Opm::Linear::ResidReductionCriterion< Vector >, and Opm::Linear::WeightedResidualReductionCriterion< Vector, CollectiveCommunication >.
|
pure virtual |
Returns true if and only if the convergence criterion is met.
Implemented in Opm::Linear::CombinedCriterion< Vector, CollectiveCommunication >, Opm::Linear::FixPointCriterion< Vector, CollectiveCommunication >, Opm::Linear::ResidReductionCriterion< Vector >, and Opm::Linear::WeightedResidualReductionCriterion< Vector, CollectiveCommunication >.
|
inlinevirtual |
Returns true if the convergence criterion cannot be met anymore because the solver has broken down.
Reimplemented in Opm::Linear::CombinedCriterion< Vector, CollectiveCommunication >, and Opm::Linear::WeightedResidualReductionCriterion< Vector, CollectiveCommunication >.
|
inlinevirtual |
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. |
|
inlinevirtual |
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 in Opm::Linear::CombinedCriterion< Vector, CollectiveCommunication >, Opm::Linear::ResidReductionCriterion< Vector >, and Opm::Linear::WeightedResidualReductionCriterion< Vector, CollectiveCommunication >.
|
pure virtual |
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 |
Implemented in Opm::Linear::ResidReductionCriterion< Vector >, Opm::Linear::FixPointCriterion< Vector, CollectiveCommunication >, Opm::Linear::CombinedCriterion< Vector, CollectiveCommunication >, and Opm::Linear::WeightedResidualReductionCriterion< Vector, CollectiveCommunication >.
|
pure virtual |
Update the internal members of the convergence criterion with the current solution.
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 |
changeIndicator | A vector where all non-zero values indicate that the solution has changed since the last iteration. |
curResid | The residual vector of the current iterative solution of the linear system of equations |
Implemented in Opm::Linear::ResidReductionCriterion< Vector >, Opm::Linear::FixPointCriterion< Vector, CollectiveCommunication >, Opm::Linear::WeightedResidualReductionCriterion< Vector, CollectiveCommunication >, and Opm::Linear::CombinedCriterion< Vector, CollectiveCommunication >.