Vertex-CFD Logo

Contents:

  • Installation and Testing
    • Installation
      • Trilinos Installation
        • Trilinos-CPU Installation
        • Trilinos-GPU Installation
      • VERTEX-CFD Installation
    • Testing
      • Unit Tests
      • Regression Tests
  • How to Run Vertex-CFD
    • Running a simulation
    • Visualizing the solution file
  • Packages
    • Vertex-CFD
      • Theory
        • Governing equations
        • Discretized equations
        • Boundary conditions
        • Initial conditions
      • Vertex-CFD Input Files
        • Mesh block
        • Solution output block
        • Scalar Response Output
        • Write Restart block
        • Read Restart block
        • Nonlinear solve (NOX)
        • Native HYPRE linear solver
        • Block ID to Physics ID Mapping
        • Physics blocks
        • User data block
        • Boundary conditions block
        • Initial conditions block
        • Closure model blocks
      • Tutorial Cases
        • Planar Poiseuille Flow Tutorial
        • 3D Incompressible Rayleigh-Benard Convection Tutorial
        • Two-Dimensional Periodic Hartmann Flow with Electrically Insulating Walls
      • Post Processing
        • Residuals
    • Vertex-RAD
      • Theory
        • Governing equations
        • Discretized equations
        • Boundary conditions
        • Initial conditions
      • Vertex-RAD Input Files
    • Vertex-Multiphase
    • Vertex-Plasma
    • Vertex-SN
      • Theory
      • Governing Equations
      • Operator Form
      • FEM Equations
      • Reference Discretizations
    • SciDac
  • Doxygen
  • Kokkos Tools
  • AI-agents
    • Doxygen-agent — Developer Documentation Generator
      • Agent files
      • Prerequisite
      • Generate developer documentation
        • Interactive
        • Non-interactive
      • Notes
    • Sphinx-agent — User Documentation Generator
      • Agent files
      • Prerequisite
      • Generate user documentation
        • Interactive
        • Non-interactive
      • Notes
Vertex-CFD
  • Packages
  • Vertex-CFD
  • Vertex-CFD Input Files
  • Nonlinear solve (NOX)
  • NOX Line Search
  • View page source

NOX Line Search

The Line Search sublist selects how NOX scales and accepts the search direction before updating the nonlinear solution.

<Line Search>
Method
Type:

string

Value:

"Full Step", "Backtrack", "Polynomial", "More'-Thuente", "NonlinearCG", "Safeguarded Step", or "Safeguarded Direction"

Usage:

Optional with Nonlinear Solver = "Line Search Based"

Default:

"Full Step"

Description:

Selects a built-in NOX line-search algorithm. Vertex-CFD inputs use "Full Step". NOX also accepts "User Defined" when a C++ line-search-factory object is supplied; that object cannot be represented by an XML string alone. "Safeguarded Direction" is available only in Thyra-enabled NOX builds.

Full Step
Full Step
Type:

double

Value:

Step length

Usage:

Optional with Method = "Full Step"

Default:

1.0

Description:

Multiplies the computed search direction before updating the nonlinear solution.

Alternative line-search sublists

This is a documentation grouping, not an XML sublist. The parameter names and defaults below come from Trilinos NOX. None of these methods occurs in the searched Vertex-CFD examples, regression inputs, or driver-test inputs, so their integration with Vertex-CFD is not covered by a project test.

Backtrack

Selected by Method = "Backtrack". Minimum Step defaults to 1.0e-12, Default Step to 1.0, Recovery Step to the default step, Max Iters to 100, and Reduction Factor to 0.5. The reduction factor must be strictly between zero and one.

Polynomial

Selected by Method = "Polynomial". Its principal defaults are "Armijo-Goldstein" for Sufficient Decrease Condition, "Cubic" for Interpolation Type, and "Constant" for Recovery Step Type. Minimum Step defaults to 1.0e-12, Default Step to 1.0, Max Iters to 100, and Alpha Factor to 1.0e-4. NOX also reads Recovery Step, interpolation-bound factors, counter controls, and the allowed-increase controls from this sublist.

More’-Thuente

Selected by Method = "More'-Thuente". Sufficient Decrease, Curvature Condition, and Interval Width default to 1.0e-4, 0.9999, and 1.0e-15. The step bounds default to 1.0e-12 and 1.0e6; Max Iters defaults to 20; and the default and recovery steps are 1.0. It also accepts Sufficient Decrease Condition, Recovery Step Type, and Optimize Slope Calculation.

NonlinearCG

Selected by Method = "NonlinearCG". The NOX implementation does not read a NonlinearCG parameter sublist; it computes a single step from directional derivatives.

Safeguarded Step

Selected by Method = "Safeguarded Step".

Update Limit Vector
Type:

Teuchos::RCP<NOX::Abstract::Vector>

Value:

C++ vector object

Usage:

Required with Method = "Safeguarded Step"

Default:

Teuchos::null

Description:

Supplies the maximum allowed update for each entry in the search direction. NOX rejects a null vector, and Vertex-CFD does not provide an XML factory for this object.

Step Size Lower Bound
Type:

double

Value:

Lower bound for the computed step

Usage:

Optional with Method = "Safeguarded Step"

Default:

1.0e-3

Description:

Clamps the safeguarded step to at least this value.

Step Size Upper Bound
Type:

double

Value:

Upper bound for the computed step

Usage:

Optional with Method = "Safeguarded Step"

Default:

1.0

Description:

Clamps the safeguarded step to at most this value.

Use Counters
Type:

bool

Value:

true or false

Usage:

Optional with Method = "Safeguarded Step"

Default:

false

Description:

Enables NOX line-search statistics for this method.

A complete XML example cannot be provided for this method. Although the bounds and counter flag are XML-representable, the required Update Limit Vector is a C++ object. The owning NOX tests construct that vector programmatically, and no searched Vertex-CFD input exposes an XML factory for it.

Safeguarded Direction

Selected by Method = "Safeguarded Direction" when NOX is built with Thyra support. It also requires an object-valued Update Limit Vector and cannot be configured using XML values alone. Use Counters defaults to false.

Example

Listing 15 Full-step line search used by a Vertex-CFD implicit solve.
1          <ParameterList name="Line Search">
2            <Parameter name="Method" type="string" value="Full Step"/>
3            <ParameterList name="Full Step">
4              <Parameter name="Full Step" type="double" value="1"/>
5            </ParameterList> <!-- Full Step -->
6          </ParameterList> <!-- Line Search -->
Previous Next

© Copyright 2025, Marco Delchini.

Built with Sphinx using a theme provided by Read the Docs.