petsc-3.10.5 2019-03-28
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}.

### 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

intermediate

### Location

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