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 asiis
, or to construct by expandingiis
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#
Examples#
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