:orphan: # SNESGetNPC Gets a nonlinear preconditioning solver SNES` to be used to precondition the original nonlinear solver. ## Synopsis ``` #include "petscsnes.h" PetscErrorCode SNESGetNPC(SNES snes, SNES *pc) ``` Not Collective; but any changes to the obtained the npc object must be applied collectively ## Input Parameter - ***snes -*** iterative context obtained from `SNESCreate()` ## Output Parameter - ***npc -*** preconditioner context ## Options Database Key - ***-npc_snes_type -*** set the type of the `SNES` to use as the nonlinear preconditioner ## Notes If a `SNES` was previously set with `SNESSetNPC()` then that value is returned, otherwise a new `SNES` object is created. The (preconditioner) `SNES` returned automatically inherits the same nonlinear function and Jacobian supplied to the original `SNES` ## See Also [](ch_snes), `SNESSetNPC()`, `SNESHasNPC()`, `SNES`, `SNESCreate()` ## Level developer ## Location src/snes/interface/snes.c ## Examples src/snes/tutorials/ex35.c
--- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/snes/interface/snes.c) [Index of all SNES routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)