:orphan: # 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 -*** 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 -*** 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 src/ksp/pc/impls/gasm/gasm.c ## Examples src/ksp/ksp/tutorials/ex62.c
src/ksp/ksp/tutorials/ex64.c
--- [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](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)