From: Wolfgang Bangerth Date: Sat, 22 Apr 2023 00:23:16 +0000 (-0600) Subject: In step-77, also talk about the other nonlinear solver packages we support. X-Git-Tag: v9.5.0-rc1~261^2 X-Git-Url: https://gitweb.dealii.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F15128%2Fhead;p=dealii.git In step-77, also talk about the other nonlinear solver packages we support. --- diff --git a/examples/step-77/doc/intro.dox b/examples/step-77/doc/intro.dox index eec14ea429..f095ac99c8 100644 --- a/examples/step-77/doc/intro.dox +++ b/examples/step-77/doc/intro.dox @@ -155,6 +155,18 @@ provides a vast amount of finite-element functionality, %SUNDIALS' 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! +

How deal.II interfaces with KINSOL

@@ -237,7 +249,7 @@ problem as follows: 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