#include <NOX_StatusTest_NormUpdate.H>
Inheritance diagram for NOX::StatusTest::NormUpdate:
Public Types  
enum  ScaleType { Unscaled, Scaled } 
Type that determines whether to scale the norm by the problem size. More...  
Public Member Functions  
NormUpdate (double tolerance, NOX::Abstract::Vector::NormType ntype, ScaleType stype=Scaled)  
Constructor for absolute norm.  
NormUpdate (double tolerance, ScaleType stype=Scaled)  
Constructor for absolute norm.  
virtual  ~NormUpdate () 
Destructor.  
virtual NOX::StatusTest::StatusType  checkStatus (const NOX::Solver::Generic &problem) 
Test the stopping criterion  
virtual NOX::StatusTest::StatusType  checkStatusEfficiently (const NOX::Solver::Generic &problem, NOX::StatusTest::CheckType checkType) 
Test the stopping criterion efficiently  
virtual NOX::StatusTest::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  getNormUpdate () const 
Returns the value of the Updatenorm computed in the last call to checkStatus.  
virtual double  getTolerance () const 
Returns the true tolerance. 
If checkStatusEfficiently is called with the type set to NOX::StatusTest::None, then the status is set to NOX::StatusTest::Unevaluated and returned. (Also #normUpdate is set to 1.0.)
If checkStatusEfficiently is called on the first iteration, then the status is set to NOX::StatusTest::Unconverged and returned. (Also #normUpdate is set to 1.0.)
If checkStatusEfficiently is called on a problem where the solution group does not have F evaluated (i.e., problem.getSolutionGroup().isF() is false), then the status is set to NOX::StatusTest::Unconverged and returned. (Also #normUpdate is set to 1.0.)
Finally, we return NOX::StatusTest::Converged if and NOX::StatusTest::Uncoverged otherwise. Here represents the norm of and represents the tolerance. We define:
where is the solution vector of the th nonlinear iterate.
Let denote an optional scale factor defined as
sType
in the constructor is NOX::NormF::Scaled, and
sType
in the constructor is NOX::NormF::Unscaled.Then is defined as follows:
nType
in the constructor is Abstract::Vector::TWO, then
nType
in the constructor is Abstract::Vector::ONE, then
nType
in the constructor is Abstract::Vector::INF, then
Finally, is set to the tolerance
in the constructor, i.e.,

Type that determines whether to scale the norm by the problem size.


Constructor for absolute norm.
This constructor defaults to the 

Constructor for absolute norm.
This constructor defaults to the 

Test the stopping criterion efficiently The test can (and should, if possible) be skipped if checkType is NOX::StatusType::None. If the test is skipped, then the status should be set to NOX::StatusTest::Unevaluated. Reimplemented from NOX::StatusTest::Generic. 