# NOX::StatusTest::NormF Class Reference

Various convergence tests based on the norm of the residual. More...

#include <NOX_StatusTest_NormF.H>

Inheritance diagram for NOX::StatusTest::NormF:

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

## Public Types

enum  ScaleType { Unscaled, Scaled }
Type that determines whether to scale the norm by the problem size. More...
enum  ToleranceType { Relative, Absolute }
Type that determines whether the norm is absolute or relative to the intial guess. More...

## Public Member Functions

NormF (double tolerance, NOX::Abstract::Vector::NormType ntype, ScaleType stype=Scaled)
Constructor for absolute norm.
NormF (double tolerance, ScaleType stype=Scaled)
Constructor for absolute norm.
NormF (NOX::Abstract::Group &initialGuess, double tolerance, NOX::Abstract::Vector::NormType ntype, ScaleType stype=Scaled)
Constructor with initial guess (for relative norms).
NormF (NOX::Abstract::Group &initialGuess, double tolerance, ScaleType stype=Scaled)
Constructor with initial guess (for relative norms).
virtual ~NormF ()
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 getNormF () const
Returns the value of the F-norm computed in the last call to checkStatus.
virtual double getTrueTolerance () const
Returns the true tolerance.
virtual double getSpecifiedTolerance () const
Returns the specified tolerance set in the constructor.
virtual double getInitialTolerance () const
Returns the initial tolerance.

## Detailed Description

Various convergence tests based on the norm of the residual.

Use the constructor to define the test based on the type of scaling (see ScaleType) and the type of Tolerance (see Tolerance).

If checkStatus is called with the type set to NOX::StatusTest::None, then the status is set to NOX::StatusTest::Unevaluated and returned. (Also #normF is set to 0.0.)

If checkStatus 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 #normF is set to -1.0.)

Finally, we return NOX::StatusTest::Converged if , and NOX::StatusTest::Unconverged otherwise. Here represents the norm of and represents the tolerance, as described below.

Let denote an optional scale factor defined as

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

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

We set as follows, based on the value of tolerance in the constructor.

• If an initial guess is provided, we use a relative tolerance defined by

Here is the (as defined above) associated with the initial guess.

• Otherwise, we use an absolute tolerance defined by

## 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.

Type that determines whether the norm is absolute or relative to the intial guess.

Enumeration values:
 Relative Relative to starting guess. Absolute Absolute.

## Constructor & Destructor Documentation

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

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

 NOX::StatusTest::NormF::NormF ( NOX::Abstract::Group & initialGuess, double tolerance, NOX::Abstract::Vector::NormType ntype, ScaleType stype = Scaled )
 Constructor with initial guess (for relative norms). This constructor defaults to the Relative tolerance type.

 NOX::StatusTest::NormF::NormF ( NOX::Abstract::Group & initialGuess, double tolerance, ScaleType stype = Scaled )
 Constructor with initial guess (for relative norms). This constructor defaults to the Relative ToleranceType and TWO NormType.

## Member Function Documentation

 NOX::StatusTest::StatusType NOX::StatusTest::NormF::checkStatusEfficiently ( const NOX::Solver::Generic & problem, NOX::StatusTest::CheckType checkType )  [virtual]
 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.

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

Generated on Thu Sep 18 12:40:52 2008 for NOX by  1.3.9.1