NOX Direction

The Direction sublist selects the search-direction method used by a line-search-based NOX solve and configures its method-specific sublists.

<Direction>
Method
Type:

string

Value:

"Newton", "Steepest Descent", "NonlinearCG", or "Broyden"

Usage:

Optional

Default:

"Newton"

Description:

Selects a built-in search-direction method that can be configured entirely from XML. Most Vertex-CFD inputs use "Newton"; "Broyden" is also used by an inductionless-MHD example. NOX additionally accepts "User Defined" when a C++ direction-factory object is supplied; that object cannot be represented by an XML string alone.

Newton
Forcing Term Method
Type:

string

Value:

"Constant", "Type 1", or "Type 2"

Usage:

Optional with Method = "Newton"

Default:

"Constant"

Description:

Controls whether the linear-solve tolerance is constant or adjusted with an inexact-Newton forcing term.

Rescue Bad Newton Solve
Type:

bool

Value:

true or false

Usage:

Optional with Method = "Newton"

Default:

true

Description:

When true, NOX uses the computed Newton direction even when the linear solve does not report convergence. When false, a failed linear solve causes the direction computation to fail.

Forcing Term Minimum Tolerance
Type:

double

Value:

Minimum inexact-Newton forcing tolerance

Usage:

Optional with Forcing Term Method = "Type 1" or "Type 2"

Default:

1.0e-4

Description:

Sets the lower bound applied to the adjusted linear-solve tolerance.

Forcing Term Maximum Tolerance
Type:

double

Value:

Maximum inexact-Newton forcing tolerance

Usage:

Optional with Forcing Term Method = "Type 1" or "Type 2"

Default:

0.9

Description:

Sets the upper bound applied to the adjusted linear-solve tolerance.

Forcing Term Initial Tolerance
Type:

double

Value:

Initial inexact-Newton forcing tolerance

Usage:

Optional with Forcing Term Method = "Type 1" or "Type 2"

Default:

0.01

Description:

Sets the linear-solve tolerance used at the first nonlinear iteration.

Forcing Term Alpha
Type:

double

Value:

Inexact-Newton forcing exponent

Usage:

Optional with Forcing Term Method = "Type 2"

Default:

1.5

Description:

Sets the exponent used by the Type 2 forcing-term update.

Forcing Term Gamma
Type:

double

Value:

Inexact-Newton forcing scale

Usage:

Optional with Forcing Term Method = "Type 2"

Default:

0.9

Description:

Sets the scale factor used by the Type 2 forcing-term update.

Set Tolerance in Parameter List
Type:

bool

Value:

true or false

Usage:

Optional; has no effect for Method = "Newton"

Default:

true

Description:

Compatibility entry shared with NOX’s inexact-Newton utility. The Newton direction validates this entry but does not read it; when Newton uses an adjustable forcing term, it always writes the updated value to Linear Solver/Tolerance. The flag controls that write only in algorithms that use the shared utility, including Broyden.

Linear Solver

This sublist controls the convergence request passed from the NOX Newton direction to the Thyra linear solve. It is distinct from the top-level <Linear Solver> block, which selects and configures the actual Stratimikos linear solver and preconditioner.

Tolerance
Type:

double

Value:

Requested relative linear-solve tolerance

Usage:

Optional

Default:

1.0e-10

Description:

Sets the requested tolerance for the Newton linear solve. When an inexact-Newton forcing method is active, NOX updates this entry at each nonlinear iteration.

Solve Measure Numerator
Type:

string

Value:

"None", "Norm Residual", "Norm Solution", "Norm Initial Residual", or "Norm RHS"

Usage:

Optional

Default:

"Norm Residual"

Description:

Selects the numerator of the Thyra convergence measure used for the linear solve.

Solve Measure Denominator
Type:

string

Value:

"None", "Norm Residual", "Norm Solution", "Norm Initial Residual", or "Norm RHS"

Usage:

Optional

Default:

"Norm Initial Residual"

Description:

Selects the denominator of the Thyra convergence measure used for the linear solve.

Stratimikos Linear Solver

Vertex-CFD inputs retain this NOX sublist as an empty compatibility container. The active Vertex-CFD path uses NOX::Thyra::Group and obtains the solver and preconditioner from the top-level <Linear Solver> block; it does not configure them from this nested list.

NOX Stratimikos Options

This is an empty compatibility sublist in all searched Vertex-CFD inputs. Options with this name belong to the older NOX Epetra Stratimikos interface and are not read by the Thyra-backed Vertex-CFD solve path. Leave this sublist empty.

Broyden

This sublist is selected by Method = "Broyden". NOX creates it with defaults when it is absent, as in the inductionless-MHD example.

Restart Frequency
Type:

integer

Value:

Nonlinear iterations between Jacobian restarts

Usage:

Optional

Default:

10

Description:

Recomputes the Jacobian and clears the stored Broyden updates at this interval.

Max Convergence Rate
Type:

double

Value:

Maximum accepted residual convergence rate

Usage:

Optional

Default:

1.0

Description:

Restarts the Broyden approximation when the nonlinear convergence rate exceeds this value.

Memory
Type:

integer

Value:

Number of Broyden updates retained

Usage:

Optional

Default:

Value of Restart Frequency

Description:

Limits the number of stored Broyden update vectors.

Broyden also accepts the forcing-term entries and a nested Linear Solver list described under Newton. Its constant-forcing linear tolerance defaults to 1.0e-4.

Steepest Descent
Scaling Type
Type:

string

Value:

"2-Norm", "F 2-Norm", "Quadratic Model Min", or "None"

Usage:

Optional with Method = "Steepest Descent"

Default:

"2-Norm"

Description:

Selects how NOX scales the steepest-descent direction. No searched Vertex-CFD input selects this method.

Nonlinear CG
Restart Frequency
Type:

integer

Value:

Nonlinear iterations between restarts

Usage:

Optional with Method = "NonlinearCG"

Default:

10

Description:

Restarts the nonlinear conjugate-gradient recurrence at this interval.

Precondition
Type:

string

Value:

"On" or "Off"

Usage:

Optional with Method = "NonlinearCG"

Default:

"Off"

Description:

Enables right preconditioning of the nonlinear conjugate-gradient direction.

Orthogonalize
Type:

string

Value:

"Fletcher-Reeves" or "Polak-Ribiere"

Usage:

Optional with Method = "NonlinearCG"

Default:

"Fletcher-Reeves"

Description:

Selects the conjugate-gradient recurrence.

Linear Solver

Supplies the right-preconditioning parameters when Precondition = "On". No searched Vertex-CFD input selects nonlinear conjugate gradient.

Example

Listing 13 Newton direction configuration used by a Vertex-CFD implicit solve.
 1          <ParameterList name="Direction">
 2            <Parameter name="Method" type="string" value="Newton"/>
 3            <ParameterList name="Newton">
 4              <Parameter name="Forcing Term Method" type="string" value="Constant"/>
 5              <Parameter name="Rescue Bad Newton Solve" type="bool" value="1"/>
 6              <ParameterList name="Stratimikos Linear Solver">
 7                <ParameterList name="NOX Stratimikos Options">
 8                </ParameterList>
 9              </ParameterList> <!-- Stratimikos Linear Solver -->
10            </ParameterList> <!-- Newton -->
11          </ParameterList> <!-- Direction -->

The Newton linear-solve tolerance below is copied exactly from examples/inputs/incompressible/incompressible_2d_planar_poiseuille.xml. An inline block is used because that file contains both top-level and NOX-nested lists named Linear Solver, so literalinclude markers cannot select this complete block unambiguously.

Listing 14 Override the requested tolerance for the Newton linear solve.
1<ParameterList name="Linear Solver">
2  <Parameter name="Tolerance" type="double" value="1.0e-10"/>
3</ParameterList> <!-- Linear Solver -->