petsc-3.9.4 2018-09-11
Report Typos and Errors

SNESASPIN

Helper SNES type for Additive-Schwarz Preconditioned Inexact Newton

Options Database

-npc_snes_ - options prefix of the nonlinear subdomain solver (must be of type NASM)
-npc_sub_snes_ - options prefix of the subdomain nonlinear solves
-npc_sub_ksp_ - options prefix of the subdomain Krylov solver
-npc_sub_pc_ - options prefix of the subdomain preconditioner

Notes

This routine sets up an instance of NETWONLS with nonlinear left preconditioning. It differs from other similar functionality in SNES as it creates a linear shell matrix that corresponds to the product

\sum_{i=0}^{N_b}J_b({X^b_{converged}})^{-1}J(X + \sum_{i=0}^{N_b}(X^b_{converged} - X^b))

which is the ASPIN preconditioned matrix. Similar solvers may be constructed by having matrix-free differencing of nonlinear solves per linear iteration, but this is far more efficient when subdomain sparse-direct preconditioner factorizations are reused on each application of J_b^{-1}.

Level

intermediate

References

1. - X. C. Cai and D. E. Keyes, "Nonlinearly preconditioned inexact Newton algorithms", SIAM J. Sci. Comput., 24, 2002.
2. - Peter R. Brune, Matthew G. Knepley, Barry F. Smith, and Xuemin Tu, "Composing Scalable Nonlinear Algebraic Solvers", SIAM Review, 57(4), 2015

See Also

SNESCreate(), SNES, SNESSetType(), SNESNEWTONLS, SNESNASM, SNESGetNPC(), SNESGetNPCSide()

Level

none

Location

src/snes/impls/nasm/aspin.c
Index of all SNES routines
Table of Contents for all manual pages
Index of all manual pages