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:
trueorfalse- 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
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 -->