:orphan:
# SNESCOMPOSITE
Build a preconditioner by composing together several nonlinear solvers 
## Options Database Keys

- ***-snes_composite_type <type: one of multiplicative, additive, symmetric_multiplicative, special> -*** Sets composite preconditioner type
- ***-snes_composite_sneses -*** <snes0,snes1,...> list of `SNES` to compose





## References

- **** -*** Peter R. Brune, Matthew G. Knepley, Barry F. Smith, and Xuemin Tu, "Composing Scalable Nonlinear Algebraic Solvers",
SIAM Review, 57(4), 2015



## See Also
 `SNES`, `SNESCOMPOSITE`, `SNESCompositeAddSNES()`, `SNESCompositeGetSNES()`,
`SNES_COMPOSITE_ADDITIVE`, `SNES_COMPOSITE_MULTIPLICATIVE`, `SNESCompositeType`, `SNESCompositeSetType()`,
`SNESCompositeSetDamping()`

## Level
intermediate

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/snes/impls/composite/snescomposite.c.html#SNESCOMPOSITE">src/snes/impls/composite/snescomposite.c</A>

## Examples
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/snes/tutorials/ex9.c.html">src/snes/tutorials/ex9.c</A><BR>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/snes/impls/composite/snescomposite.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)  
