As with linear solvers,
Sundance has no built-in nonlinear solvers; it uses Trilinos solvers. The Trilinos nonlinear solver package is
NOX.
A NOX solver can be constructed in a number of ways:
-
Construct a NOX solver from a specification given in an XML file.
-
Construct a NOX solver from ParameterList objects built in your source code.
-
Construct NOX solver objects directly.
This document describes only the first of these methods.
A
NOX solver is constructed heirarchically out of lower-level objects such as line search algorithms, linear solvers, and convergence tests. The XML specification of a
NOX solver reflects this heirarchical structure; the XML for a
NOX solver contains subblocks for the line search, convergence test, and linear solver. The skeleton of a
NOX solver specification looks like this:
<ParameterList name="NOX Solver">
<!-- solver type information goes here -->
<ParameterList name="Line Search">
<!-- line search parameters go here -->
</ParameterList>
<ParameterList name="Status Test">
<!-- convergence checking parameters go here -->
</ParameterList>
<ParameterList name="Linear Solver">
<!-- Linear solver parameters go here -->
</ParameterList>
</ParameterList>
The
"Linear Solver"
block simply contains the XML to specify a linear solver, as described in
Linear Solvers.
Most parameters from an XML file are mapped directly into NOX parameter objects. See the NOX parameter documentation for information on available parameters.