:orphan:
# PCGASMSetSubdomains
Sets the subdomains for this MPI rank for the additive Schwarz preconditioner with multiple MPI ranks per subdomain, `PCGASM`
## Synopsis
```
#include "petscpc.h"
PetscErrorCode PCGASMSetSubdomains(PC pc, PetscInt n, IS iis[], IS ois[])
```
Collective
## Input Parameters
- ***pc -*** the preconditioner object
- ***n -*** the number of subdomains for this MPI rank
- ***iis -*** the index sets that define the inner subdomains (or `NULL` for PETSc to determine subdomains)
- ***ois -*** the index sets that define the outer subdomains (or `NULL` to use the same as `iis`, or to construct by expanding `iis` by
the requested overlap)
## Notes
The `IS` indices use the parallel, global numbering of the vector entries.
Inner subdomains are those where the correction is applied.
Outer subdomains are those where the residual necessary to obtain the
corrections is obtained (see `PCGASMType` for the use of inner/outer subdomains).
Both inner and outer subdomains can extend over several MPI ranks.
This rank's portion of a subdomain is known as a local subdomain.
Inner subdomains can not overlap with each other, do not have any entities from remote ranks,
and have to cover the entire local subdomain owned by the current rank. The index sets on each
rank should be ordered such that the ith local subdomain is connected to the ith remote subdomain
on another MPI rank.
By default the `PGASM` preconditioner uses 1 (local) subdomain per MPI rank.
The `iis` and `ois` arrays may be freed after this call using `PCGASMDestroySubdomains()`
## See Also
`PCGASM`, `PCGASMSetOverlap()`, `PCGASMGetSubKSP()`, `PCGASMDestroySubdomains()`,
`PCGASMCreateSubdomains2D()`, `PCGASMGetSubdomains()`
## Level
advanced
## Location
src/ksp/pc/impls/gasm/gasm.c
## Examples
src/ksp/ksp/tutorials/ex62.c
## Implementations
PCGASMSetSubdomains_GASM in src/ksp/pc/impls/gasm/gasm.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)