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