# NOX::StatusTest::NormUpdate Class Reference

Various convergence tests based on the norm of the change in the solution vector, , between outer iterations. More...

#include <NOX_StatusTest_NormUpdate.H>

Inheritance diagram for NOX::StatusTest::NormUpdate:

[legend]
Collaboration diagram for NOX::StatusTest::NormUpdate:
[legend]
List of all members.

## 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, NOX::StatusTest::CheckType checkType)
Test the stopping criterion
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 Update-norm computed in the last call to checkStatus.
virtual double getTolerance () const
Returns the true tolerance.

## Detailed Description

Various convergence tests based on the norm of the change in the solution vector, , between outer iterations.

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

• if sType in the constructor is NOX::NormF::Scaled, and

• if sType in the constructor is NOX::NormF::Unscaled.

Then is defined as follows:

• If nType in the constructor is Abstract::Vector::TWO, then

• If nType in the constructor is Abstract::Vector::ONE, then

• If nType in the constructor is Abstract::Vector::INF, then

Finally, is set to the tolerance in the constructor, i.e.,

## Member Enumeration Documentation

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

Enumeration values:
 Unscaled No norm scaling. Scaled Scale the norm by the length of the vector.

## Constructor & Destructor Documentation

 NormUpdate::NormUpdate ( double tolerance, NOX::Abstract::Vector::NormType ntype, ScaleType stype = Scaled )
 Constructor for absolute norm. This constructor defaults to the Absolute tolerance type.

 NormUpdate::NormUpdate ( double tolerance, ScaleType stype = Scaled )
 Constructor for absolute norm. This constructor defaults to the Absolute ToleranceType and TWO NormType.

## Member Function Documentation

 StatusType NormUpdate::checkStatus ( const NOX::Solver::Generic & problem, NOX::StatusTest::CheckType checkType )  [virtual]
 Test the stopping criterion 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. Implements NOX::StatusTest::Generic.

The documentation for this class was generated from the following files:
• NOX_StatusTest_NormUpdate.H
• NOX_StatusTest_NormUpdate.C

Generated on Thu Sep 18 12:38:41 2008 for NOX by  1.3.9.1