From the Hermes point of view, the main advantage of Trilinos for nonlinear problems is its implementation of the Jacobian-Free Newton-Krylov Method (JFNK) method. Let us explain how this works:
For a discretized problem of the form
by denote the Jacobian matrix of
. The
JFNK approximates the action of
on an arbitrary
vector
by
where is a small positive real number. Trilinos is smart enough
to figure out the optimal size of
by itself.
The only thing one needs to do is to enable evaluation of
the residual vector
for any given vector
.
The above approximation is plugged into an iterative matrix solver.
In Trilinos, this functionality is incorporated in the NOX solver.
If the nonlinear problem is ill-conditioned (usually it is) then
preconditioning can be provided to improve the convergence of the
iterative matrix solver. Usually, some simpler part of the Jacobian
matrix is used. For example, in higher-order FEM this
can be the block-diagonal matrix corresponding to vertex-vertex,
edge-edge and bubble-bubble products. For multiphysics problems,
people often use the single-physics diagonal blocks.