:orphan:
# PCGASMCreateSubdomains2D
Creates the index sets for the `PCGASM` overlapping Schwarz preconditioner for a two-dimensional problem on a regular grid.
## Synopsis
```
#include "petscpc.h"
PetscErrorCode PCGASMCreateSubdomains2D(PC pc, PetscInt M, PetscInt N, PetscInt Mdomains, PetscInt Ndomains, PetscInt dof, PetscInt overlap, PetscInt *nsub, IS **iis, IS **ois)
```
Collective
## Input Parameters
- ***pc -*** the preconditioner context
- ***M -*** the global number of grid points in the x direction
- ***N -*** the global number of grid points in the y direction
- ***Mdomains -*** the global number of subdomains in the x direction
- ***Ndomains -*** the global number of subdomains in the y direction
- ***dof -*** degrees of freedom per node
- ***overlap -*** overlap in mesh lines
## Output Parameters
- ***Nsub -*** the number of local subdomains created
- ***iis -*** array of index sets defining inner (nonoverlapping) subdomains
- ***ois -*** array of index sets defining outer (overlapping, if overlap > 0) subdomains
## Note
Use `PCGASMDestroySubdomains()` to free the index sets and the arrays
## Fortran Note
The `IS` must be declared as an array of length long enough to hold `Nsub` entries
## See Also
`PCGASM`, `PCGASMSetSubdomains()`, `PCGASMGetSubKSP()`, `PCGASMSetOverlap()`, `PCASMCreateSubdomains2D()`,
`PCGASMDestroySubdomains()`
## Level
advanced
## 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)