#include <NOX_StatusTest_NormWRMS.H>
Inheritance diagram for NOX::StatusTest::NormWRMS:
Public Member Functions | |
NormWRMS (double rtol, double atol, double BDFMultiplier=1.0, double tolerance=1.0, double alpha=1.0, double beta=0.5) | |
Constructor where ATOL is a scalar. | |
NormWRMS (double rtol, Abstract::Vector &atol, double BDFMultiplier=1.0, double tolerance=1.0, double alpha=1.0, double beta=0.5) | |
Constructor where ATOL is a vector. | |
virtual | ~NormWRMS () |
Destructor. | |
virtual StatusType | checkStatus (const NOX::Solver::Generic &problem) |
Test the stopping criterion | |
virtual StatusType | getStatus () const |
Return the result of the most recent checkStatus call. | |
virtual ostream & | print (ostream &stream, int indent=0) const |
Output formatted description of stopping test to output stream. | |
virtual double | getNormWRMS () const |
Returns the value of WRMS norm. | |
virtual double | getTolerance () const |
Returns the requested tolerance set in the constructor. | |
virtual double | getRTOL () const |
Returns the realative tolerance set in the constructor. | |
virtual double | getATOL () const |
Returns the absolute tolerance set in the constructor. If ATOL is a vector, this will return a value of -1.0. | |
virtual double | getBDFMultiplier () const |
Returns the value of the BDFMultiplier set in the constructor. | |
virtual double | getAlpha () const |
Returns the value of 'alpha' set in the constructor. | |
virtual double | getBeta () const |
Returns the value of 'beta' set in the constructor. |
` If the number of iterations is zero, then the status is set to NOX::StatusTest::Unconverged and returned. (Also, #value is set to 1.0e+12.)
Otherwise, returns NOX::StatusTest::Converged if the three criteria listed below are satisfied. Note that use of Criteria #2 and #3 depend on the options set in the solver.
where
Here:
rtol
in the constructoratol
in the constructor. This can be a vector or a scalar.BDFMultiplier
in the constructor.
The motivation for this test is to avoid detecting stagnation when in fact the true problem is that the step size is just small.
The value of is set in the constructor via the argument alpha
. Setting to zero effectively eliminates this part of the test.
The motivation for this test is to avoid detecting stagnation when in fact the true problem is that the linear solve tolerance was not accurate enough.
The value of is set in the constructor via the argument beta
. Setting to 1.0 effectively eliminates this part of the test.
References: