NOX::Direction::Utils::InexactNewton Class Reference

Inexact Newton Utilities More...

#include <NOX_Direction_Utils_InexactNewton.H>

Collaboration diagram for NOX::Direction::Utils::InexactNewton:

[legend]
List of all members.

Public Member Functions

 InexactNewton (const Teuchos::RefCountPtr< NOX::GlobalData > &gd, Teuchos::ParameterList &directionSublist)
 Constructor.
virtual ~InexactNewton ()
 Destructor.
virtual bool reset (const Teuchos::RefCountPtr< NOX::GlobalData > &gd, Teuchos::ParameterList &directionSublist)
 Reset the utilities.
virtual double computeForcingTerm (const NOX::Abstract::Group &soln, const NOX::Abstract::Group &oldSoln, int niter, const NOX::Solver::Generic &solver, double eta_last=-1.0)

Detailed Description

Inexact Newton Utilities

If we use an iterative linear solver for a Newton-based solve, then this is called an inexact Newton method. The tolerance used to terminate the linear solve is called the forcing term. The forcing term may be constant, or it may be adjustable. In either case, at iteration $k$ we require,

\[ \frac{\|J_k d_k - (-F_k)\|}{\|F_k\|} \leq \eta_k. \]

Here $\eta_k$ is the forcing term for iteration $k$.

Note:
This solution tolerance is to be enforced by the user's implementation of NOX::Abstract::Group::computeNewton; it is passed in as the "Tolerance" in the parameter list for that function.
Adjustable forcing terms were introduced by Eisenstat and Walker (1982); here they are implemented as described in Pernice and Walker (1998). We have two choices for adjustable forcing terms:

Parameters

Note:
When using a forcing term, it's critically important the the residual of the original system is used in the comparison. This can be an issue if scaling or left preconditioning is applied to the linear system.
References


Member Function Documentation

double NOX::Direction::Utils::InexactNewton::computeForcingTerm const NOX::Abstract::Group soln,
const NOX::Abstract::Group oldSoln,
int  niter,
const NOX::Solver::Generic solver,
double  eta_last = -1.0
[virtual]
 

if the user supplied eta_last then it will use this value for eta_km1 instead of looking for it in the "Linear Solver" sublist.


The documentation for this class was generated from the following files:
Generated on Thu Sep 18 12:38:37 2008 for NOX by doxygen 1.3.9.1