The solution of large-scale nonlinear problems pervades many facets of computational science and demands robust and flexible solution strategies. The SNES component of PETSc provides a powerful suite of data-structure-neutral numerical routines for such problems. Built on top of the linear solvers and data structures discussed in preceding chapters, SNES enables the user to easily customize the nonlinear solvers according to the application at hand. Also, the SNES interface is identical for the uniprocessor and parallel cases; the only difference in the parallel version is that each processor typically forms only its local contribution to various matrices and vectors.
SNES includes methods for solving systems of nonlinear equations of the form
where
. SNES also contains solvers for
unconstrained minimization problems of the form
where
.
Newton-like methods provide the core of the package, including
both line search
and trust region techniques, which are discussed
further in Section The Nonlinear Solvers
. Following the
PETSc design philosophy, the interfaces to the various solvers are all
virtually identical. In addition, the SNES software is completely
flexible, so that the user can at runtime change any facet of the
solution process.
The general form of the n-dimensional Newton's method for solving (3 ) is
where
is an initial approximation to the solution and
is nonsingular.
In practice, the Newton iteration (5
) is implemented by
the following two steps:
Similarly, the general form of Newton's method for solving (4 ) is
where
is an initial approximation
to the solution, and
is positive definite.
The iteration (7
) is usually implemented by