#include <BelosStatusTestImpResNorm.hpp>
Inheritance diagram for Belos::StatusTestImpResNorm< ScalarType, MV, OP >:

Public Types | |
| typedef Teuchos::ScalarTraits< ScalarType > | SCT |
| typedef SCT::magnitudeType | MagnitudeType |
| typedef MultiVecTraits< ScalarType, MV > | MVT |
Public Member Functions | |
Constructors/destructors. | |
| StatusTestImpResNorm (MagnitudeType Tolerance, int quorum=-1, bool showMaxResNormOnly=false) | |
| Constructor. | |
| virtual | ~StatusTestImpResNorm () |
| Destructor. | |
Form and parameter definition methods. | |
| int | defineResForm (NormType TypeOfNorm) |
| Define form of the residual, its norm and optional weighting vector. | |
| int | defineScaleForm (ScaleType TypeOfScaling, NormType TypeOfNorm, MagnitudeType ScaleValue=Teuchos::ScalarTraits< MagnitudeType >::one()) |
| Define form of the scaling, its norm, its optional weighting vector, or, alternatively, define an explicit value. | |
| int | setTolerance (MagnitudeType tolerance) |
| Set the value of the tolerance. | |
| int | setQuorum (int quorum) |
| Sets the number of residuals that must pass the convergence test before Passed is returned. | |
| int | setShowMaxResNormOnly (bool showMaxResNormOnly) |
| Set whether the only maximum residual norm is displayed when the print() method is called. | |
Status methods | |
| StatusType | checkStatus (Iteration< ScalarType, MV, OP > *iSolver) |
| Check convergence status: Passed, Failed, or Undefined. | |
| StatusType | getStatus () const |
| Return the result of the most recent CheckStatus call. | |
Reset methods | |
| void | reset () |
| Resets the internal configuration to the initial state. | |
Print methods | |
| void | print (std::ostream &os, int indent=0) const |
| Output formatted description of stopping test to output stream. | |
| void | printStatus (std::ostream &os, StatusType type) const |
| Print message for each status specific to this stopping test. | |
Methods to access data members. | |
| Teuchos::RCP< MV > | getSolution () |
| Returns the current solution estimate that was computed for the most recent residual test. | |
| int | getQuorum () const |
| Returns the number of residuals that must pass the convergence test before Passed is returned. | |
| std::vector< int > | convIndices () |
| Returns the vector containing the indices of the residuals that passed the test. | |
| MagnitudeType | getTolerance () const |
! Returns the value of the tolerance, , set in the constructor. | |
| MagnitudeType | getCurrTolerance () const |
| Returns the current value of the tolerance which may be modified if there is a loss of accuracy. | |
| const std::vector< MagnitudeType > * | getTestValue () const |
Returns the test value, , computed in most recent call to CheckStatus. | |
| const std::vector< MagnitudeType > * | getResNormValue () const |
Returns the residual norm value, , computed in most recent call to CheckStatus. | |
| const std::vector< MagnitudeType > * | getScaledNormValue () const |
Returns the scaled norm value, . | |
| bool | getLOADetected () const |
| Returns a boolean indicating a loss of accuracy has been detected in computing the residual. | |
Misc. | |
| StatusType | firstCallCheckStatusSetup (Iteration< ScalarType, MV, OP > *iSolver) |
| Call to setup initial scaling vector. | |
Overridden from Teuchos::Describable | |
| std::string | description () const |
| Method to return description of the maximum iteration status test. | |
The form of the test is
where
is the i-th residual vector, implicitly computed by the iteration,
is the i-th residual norm determined by the enum NormType (1-norm, 2-norm or inf-norm),
is the i-th scale factor that can be passed in as a precomputed number of the templated type, or can be selected from by the enum ScaleType (norm of RHS, norm of initial residual).
is the tolerance that is passed in as a number of the templated type to the constructor. The value of
can be reset using the ResetTolerance() method.
Definition at line 65 of file BelosStatusTestImpResNorm.hpp.
| typedef Teuchos::ScalarTraits<ScalarType> Belos::StatusTestImpResNorm< ScalarType, MV, OP >::SCT |
Reimplemented from Belos::StatusTestResNorm< ScalarType, MV, OP >.
Definition at line 70 of file BelosStatusTestImpResNorm.hpp.
| typedef SCT::magnitudeType Belos::StatusTestImpResNorm< ScalarType, MV, OP >::MagnitudeType |
Reimplemented from Belos::StatusTestResNorm< ScalarType, MV, OP >.
Definition at line 71 of file BelosStatusTestImpResNorm.hpp.
| typedef MultiVecTraits<ScalarType,MV> Belos::StatusTestImpResNorm< ScalarType, MV, OP >::MVT |
Reimplemented from Belos::StatusTestResNorm< ScalarType, MV, OP >.
Definition at line 72 of file BelosStatusTestImpResNorm.hpp.
| Belos::StatusTestImpResNorm< ScalarType, MV, OP >::StatusTestImpResNorm | ( | MagnitudeType | Tolerance, | |
| int | quorum = -1, |
|||
| bool | showMaxResNormOnly = false | |||
| ) |
Constructor.
The constructor takes a single argument specifying the tolerance (
). If none of the form definition methods are called, we use
as the stopping criterion, where
uses the least costly form of the 2-norm of residual available from the iterative method and
is the corresponding norm of the initial residual. The least costly form of the 2-norm depends on the chosen iterative method. Most Krylov methods produce the preconditioned residual vector in a form that would be exact in infinite precision arithmetic. This vector may be different from the true residual either because left scaling or preconditioning was used, or because round-off error has introduced significant error, or both.
You can also state the number of vectors that must pass the convergence criteria before the status test passes by using the quorum argument.
Definition at line 340 of file BelosStatusTestImpResNorm.hpp.
| Belos::StatusTestImpResNorm< ScalarType, MV, OP >::~StatusTestImpResNorm | ( | ) | [virtual] |
| int Belos::StatusTestImpResNorm< ScalarType, MV, OP >::defineResForm | ( | NormType | TypeOfNorm | ) |
Define form of the residual, its norm and optional weighting vector.
This method defines the form of
. We specify:
Definition at line 382 of file BelosStatusTestImpResNorm.hpp.
| int Belos::StatusTestImpResNorm< ScalarType, MV, OP >::defineScaleForm | ( | ScaleType | TypeOfScaling, | |
| NormType | TypeOfNorm, | |||
| MagnitudeType | ScaleValue = Teuchos::ScalarTraits< MagnitudeType >::one() | |||
| ) | [virtual] |
Define form of the scaling, its norm, its optional weighting vector, or, alternatively, define an explicit value.
This method defines the form of how the residual is scaled (if at all). It operates in two modes:
where
is the matrix of the linear problem.
Implements Belos::StatusTestResNorm< ScalarType, MV, OP >.
Definition at line 394 of file BelosStatusTestImpResNorm.hpp.
| int Belos::StatusTestImpResNorm< ScalarType, MV, OP >::setTolerance | ( | MagnitudeType | tolerance | ) | [inline, virtual] |
Set the value of the tolerance.
We allow the tolerance to be reset for cases where, in the process of testing the residual, we find that the initial tolerance was too tight or too lax.
Implements Belos::StatusTestResNorm< ScalarType, MV, OP >.
Definition at line 135 of file BelosStatusTestImpResNorm.hpp.
| int Belos::StatusTestImpResNorm< ScalarType, MV, OP >::setQuorum | ( | int | quorum | ) | [inline, virtual] |
Sets the number of residuals that must pass the convergence test before Passed is returned.
quorum=-1 then all residuals must pass the convergence test before Passed is returned. Implements Belos::StatusTestResNorm< ScalarType, MV, OP >.
Definition at line 139 of file BelosStatusTestImpResNorm.hpp.
| int Belos::StatusTestImpResNorm< ScalarType, MV, OP >::setShowMaxResNormOnly | ( | bool | showMaxResNormOnly | ) | [inline, virtual] |
Set whether the only maximum residual norm is displayed when the print() method is called.
Implements Belos::StatusTestResNorm< ScalarType, MV, OP >.
Definition at line 142 of file BelosStatusTestImpResNorm.hpp.
| StatusType Belos::StatusTestImpResNorm< ScalarType, MV, OP >::checkStatus | ( | Iteration< ScalarType, MV, OP > * | iSolver | ) | [virtual] |
Check convergence status: Passed, Failed, or Undefined.
This method checks to see if the convergence criteria are met. Depending on how the residual test is constructed this method will return the appropriate status type.
Implements Belos::StatusTest< ScalarType, MV, OP >.
Definition at line 409 of file BelosStatusTestImpResNorm.hpp.
| StatusType Belos::StatusTestImpResNorm< ScalarType, MV, OP >::getStatus | ( | ) | const [inline, virtual] |
Return the result of the most recent CheckStatus call.
Implements Belos::StatusTest< ScalarType, MV, OP >.
Definition at line 158 of file BelosStatusTestImpResNorm.hpp.
| void Belos::StatusTestImpResNorm< ScalarType, MV, OP >::reset | ( | ) | [virtual] |
Resets the internal configuration to the initial state.
Implements Belos::StatusTest< ScalarType, MV, OP >.
Definition at line 367 of file BelosStatusTestImpResNorm.hpp.
| void Belos::StatusTestImpResNorm< ScalarType, MV, OP >::print | ( | std::ostream & | os, | |
| int | indent = 0 | |||
| ) | const [virtual] |
Output formatted description of stopping test to output stream.
Implements Belos::StatusTest< ScalarType, MV, OP >.
Definition at line 580 of file BelosStatusTestImpResNorm.hpp.
| void Belos::StatusTestImpResNorm< ScalarType, MV, OP >::printStatus | ( | std::ostream & | os, | |
| StatusType | type | |||
| ) | const [virtual] |
Print message for each status specific to this stopping test.
Reimplemented from Belos::StatusTest< ScalarType, MV, OP >.
Definition at line 612 of file BelosStatusTestImpResNorm.hpp.
| Teuchos::RCP<MV> Belos::StatusTestImpResNorm< ScalarType, MV, OP >::getSolution | ( | ) | [inline, virtual] |
Returns the current solution estimate that was computed for the most recent residual test.
Implements Belos::StatusTestResNorm< ScalarType, MV, OP >.
Definition at line 183 of file BelosStatusTestImpResNorm.hpp.
| int Belos::StatusTestImpResNorm< ScalarType, MV, OP >::getQuorum | ( | ) | const [inline, virtual] |
Returns the number of residuals that must pass the convergence test before Passed is returned.
quorum=-1 then all residuals must pass the convergence test before Passed is returned. Implements Belos::StatusTestResNorm< ScalarType, MV, OP >.
Definition at line 187 of file BelosStatusTestImpResNorm.hpp.
| std::vector<int> Belos::StatusTestImpResNorm< ScalarType, MV, OP >::convIndices | ( | ) | [inline, virtual] |
Returns the vector containing the indices of the residuals that passed the test.
Implements Belos::StatusTestResNorm< ScalarType, MV, OP >.
Definition at line 190 of file BelosStatusTestImpResNorm.hpp.
| MagnitudeType Belos::StatusTestImpResNorm< ScalarType, MV, OP >::getTolerance | ( | ) | const [inline, virtual] |
! Returns the value of the tolerance,
, set in the constructor.
Implements Belos::StatusTestResNorm< ScalarType, MV, OP >.
Definition at line 193 of file BelosStatusTestImpResNorm.hpp.
| MagnitudeType Belos::StatusTestImpResNorm< ScalarType, MV, OP >::getCurrTolerance | ( | ) | const [inline] |
Returns the current value of the tolerance which may be modified if there is a loss of accuracy.
Definition at line 196 of file BelosStatusTestImpResNorm.hpp.
| const std::vector<MagnitudeType>* Belos::StatusTestImpResNorm< ScalarType, MV, OP >::getTestValue | ( | ) | const [inline, virtual] |
Returns the test value,
, computed in most recent call to CheckStatus.
Implements Belos::StatusTestResNorm< ScalarType, MV, OP >.
Definition at line 199 of file BelosStatusTestImpResNorm.hpp.
| const std::vector<MagnitudeType>* Belos::StatusTestImpResNorm< ScalarType, MV, OP >::getResNormValue | ( | ) | const [inline] |
Returns the residual norm value,
, computed in most recent call to CheckStatus.
Definition at line 202 of file BelosStatusTestImpResNorm.hpp.
| const std::vector<MagnitudeType>* Belos::StatusTestImpResNorm< ScalarType, MV, OP >::getScaledNormValue | ( | ) | const [inline] |
| bool Belos::StatusTestImpResNorm< ScalarType, MV, OP >::getLOADetected | ( | ) | const [inline, virtual] |
Returns a boolean indicating a loss of accuracy has been detected in computing the residual.
Implements Belos::StatusTestResNorm< ScalarType, MV, OP >.
Definition at line 208 of file BelosStatusTestImpResNorm.hpp.
| StatusType Belos::StatusTestImpResNorm< ScalarType, MV, OP >::firstCallCheckStatusSetup | ( | Iteration< ScalarType, MV, OP > * | iSolver | ) |
Call to setup initial scaling vector.
After this function is called getScaledNormValue() can be called to get the scaling vector.
Definition at line 635 of file BelosStatusTestImpResNorm.hpp.
| std::string Belos::StatusTestImpResNorm< ScalarType, MV, OP >::description | ( | ) | const [inline, virtual] |
Method to return description of the maximum iteration status test.
Reimplemented from Teuchos::Describable.
Definition at line 227 of file BelosStatusTestImpResNorm.hpp.
1.4.7