KINSOL package provides a vast amount of nonlinear solver
functionality, and we better use it.
+@note While this program uses SUNDIAL's KINSOL package as the engine to
+ solve nonlinear problems, KINSOL is not the only option you have.
+ deal.II also has interfaces to PETSc's SNES collection of algorithms
+ (see the PETScWrappers::NonlinearSolver class) as well as to
+ the Trilinos NOX package (see the TrilinosWrappers::NOXSolver class)
+ that provide not only very similar functionality, but also a largely
+ identical interface. If you have installed a version of deal.II that
+ is configured to use either PETSc or Trilinos, but not SUNDIALS,
+ then it is not too difficult to switch this program to use either
+ of the former two packages instead: Basically everything that we
+ say and do below will also be true and work for these other packages!
+
<h3> How deal.II interfaces with KINSOL </h3>
independent, and can be broken into separate functions.
There is an assumption here that whenever KINSOL asks for a linear
-solver with the (approximation of the) Jacobian, that this will be for
+solver with the (approximation of the) Jacobian, that this will be
for an update $\delta U$ (which has zero boundary values), a multiple
of which will be added to the solution (which already has the right
boundary values). This may not be true and if so, we might have to