Skip to main content
`Ctrl`+`K`

# PCGASMSetSubdomains

Sets the subdomains for this MPI process for the additive Schwarz preconditioner with multiple MPI processes 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 process

- iis - the index sets that define the inner subdomains (or `NULL` for PETSc to determine subdomains), the `iis` array is copied so may be freed after this call.

- 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), the `ois` array is copied so may be freed after this call.

## 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 processes. This process’ 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 processes, and have to cover the entire local subdomain owned by the current process. The index sets on each process should be ordered such that the ith local subdomain is connected to the ith remote subdomain on another MPI process.

By default the `PGASM` preconditioner uses 1 (local) subdomain per MPI process.

The `iis` and `ois` arrays may be freed after this call using `PCGASMDestroySubdomains()`

## See Also

KSP: Linear System Solvers, `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

Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages