|
My Project
|
Convergence criterion which looks at the weighted absolute value of the residual. More...
#include <weightedresidreductioncriterion.hh>
Public Member Functions | |
| WeightedResidualReductionCriterion (const CollectiveCommunication &comm) | |
| WeightedResidualReductionCriterion (const CollectiveCommunication &comm, const Vector &residWeights, Scalar residualReductionTolerance, Scalar fixPointTolerance, Scalar absResidualTolerance=0.0, Scalar maxError=0.0) | |
| void | setResidualWeight (const Vector &residWeightVec) |
| Sets the relative weight of each row of the residual. | |
| Scalar | residualWeight (size_t outerIdx, unsigned innerIdx) const |
| Return the relative weight of a row of the residual. | |
| void | setResidualReductionTolerance (Scalar tol) |
| Sets the residual reduction tolerance. | |
| Scalar | residualReductionTolerance () const |
| Returns the tolerance of the residual reduction of the solution. | |
| void | setResidualTolerance (Scalar tol) |
| Sets the maximum absolute tolerated residual. | |
| Scalar | absResidualTolerance () const |
| Returns the maximum absolute tolerated residual. | |
| Scalar | residualAccuracy () const |
| Returns the reduction of the weighted maximum of the residual compared to the initial solution. | |
| void | setFixPointTolerance (Scalar tol) |
| Sets the fix-point tolerance. | |
| Scalar | fixPointTolerance () const |
| Returns the maximum tolerated difference between two iterations to be met before a solution is considered to be converged. | |
| Scalar | fixPointAccuracy () const |
| Returns the weighted maximum of the difference between the last two iterative solutions. | |
| void | setInitial (const Vector &curSol, const Vector &curResid) |
| Set the initial solution of the linear system of equations. | |
| void | update (const Vector &curSol, const Vector &, const Vector &curResid) |
| bool | converged () const |
| Returns true if and only if the convergence criterion is met. | |
| bool | failed () const |
| Returns true if the convergence criterion cannot be met anymore because the solver has broken down. | |
| Scalar | accuracy () const |
| Returns the accuracy of the solution at the last update. | |
| void | printInitial (std::ostream &os=std::cout) const |
| Prints the initial information about the convergence behaviour. | |
| void | print (Scalar iter, std::ostream &os=std::cout) const |
| Prints the information about the convergence behaviour for the current iteration. | |
Public Member Functions inherited from Opm::Linear::ConvergenceCriterion< Vector > | |
| virtual | ~ConvergenceCriterion () |
| Destructor. | |
| virtual void | print (Scalar, std::ostream &=std::cout) const |
| Prints the information about the convergence behaviour for the current iteration. | |
Convergence criterion which looks at the weighted absolute value of the residual.
For the WeightedResidualReductionCriterion, the error of the solution is defined as
![\[ e^k = \max_i\{ \left| w_i r^k_i \right| \}\;, \]](form_138.png)
where 



In addition, to the reduction of the maximum defect, the linear solver is also considered to be converged, if the defect goes below a given absolute limit.
|
inlinevirtual |
Returns the accuracy of the solution at the last update.
A value of zero means that the solution was exact.
For the accuracy we only take the residual into account,
Implements Opm::Linear::ConvergenceCriterion< Vector >.
|
inlinevirtual |
Returns true if and only if the convergence criterion is met.
Implements Opm::Linear::ConvergenceCriterion< Vector >.
|
inlinevirtual |
Returns true if the convergence criterion cannot be met anymore because the solver has broken down.
Reimplemented from Opm::Linear::ConvergenceCriterion< Vector >.
|
inline |
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 from Opm::Linear::ConvergenceCriterion< Vector >.
|
inline |
Return the relative weight of a row of the residual.
| outerIdx | The index of the outer vector (i.e. Dune::BlockVector) |
| innerIdx | The index of the inner vector (i.e. Dune::FieldVector) |
|
inlinevirtual |
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 >.
|
inline |
Sets the relative weight of each row of the residual.
For the WeightedResidualReductionCriterion, the error of the solution is defined as
![\[ e^k = \max_i\{ \left| w_i r^k_i \right| \}\;, \]](form_138.png)
where 



This method is not part of the generic ConvergenceCriteria interface.
| residWeightVec | A Dune::BlockVector<Dune::FieldVector<Scalar, n> > with the relative weights of the linear equations |
|
inlinevirtual |
Implements Opm::Linear::ConvergenceCriterion< Vector >.