# PCGASM
Use the (restricted) additive Schwarz method, each block is (approximately) solved with its own `KSP` object on a subset of MPI ranks 
## Options Database Keys

- ***-pc_gasm_total_subdomains <n>  -*** Sets total number of local subdomains to be distributed among MPI ranks
- ***-pc_gasm_view_subdomains       -*** activates the printing of subdomain indices in `PCView()`, -ksp_view or -snes_view
- ***-pc_gasm_print_subdomains      -*** activates the printing of subdomain indices in `PCSetUp()`
- ***-pc_gasm_overlap <ovl>         -*** Sets overlap by which to (automatically) extend local subdomains
- ***-pc_gasm_type [basic,restrict,interpolate,none] -*** Sets `PCGASMType`



## Notes
To set options on the solvers for each block append -sub_ to all the `KSP`, and `PC`
options database keys. For example, -sub_pc_type ilu -sub_pc_factor_levels 1 -sub_ksp_type preonly

To set the options on the solvers separate for each block call `PCGASMGetSubKSP()`
and set the options directly on the resulting `KSP` object (you can access its `PC`
with `KSPGetPC())`




## References

- **** -*** M Dryja, OB Widlund, An additive variant of the Schwarz alternating method for the case of many subregions
Courant Institute, New York University Technical report
- **** -*** Barry Smith, Petter Bjorstad, and William Gropp, Domain Decompositions: Parallel Multilevel Methods for Elliptic Partial Differential Equations,
Cambridge University Press.



## See Also
 `PCCreate()`, `PCSetType()`, `PCType`, `PC`, `PCASM`, `PCGASMType`, `PCGASMSetType()`,
`PCBJACOBI`, `PCGASMGetSubKSP()`, `PCGASMSetSubdomains()`,
`PCSetModifySubMatrices()`, `PCGASMSetOverlap()`, `PCGASMSetType()`

## Level
beginner

## Location
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/pc/impls/gasm/gasm.c.html#PCGASM">src/ksp/pc/impls/gasm/gasm.c</A>

## Examples
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/ksp/tutorials/ex62.c.html">src/ksp/ksp/tutorials/ex62.c.html</A><BR>
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/ksp/tutorials/ex64.c.html">src/ksp/ksp/tutorials/ex64.c.html</A><BR>


---
[Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ksp/pc/impls/gasm/gasm.c)


[Index of all PC routines](index.md)  
[Table of Contents for all manual pages](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
