**petsc-3.8.3 2017-12-09**

# PCGASMType

Type of generalized additive Schwarz method to use (differs from ASM in allowing multiple processors per subdomain).
### Synopsis

typedef enum {PC_GASM_BASIC = 3,PC_GASM_RESTRICT = 1,PC_GASM_INTERPOLATE = 2,PC_GASM_NONE = 0} PCGASMType;

Each subdomain has nested inner and outer parts. The inner subdomains are assumed to form a non-overlapping covering of the computational
domain, while the outer subdomains contain the inner subdomains and overlap with each other. This preconditioner will compute
a subdomain correction over each *outer* subdomain from a residual computed there, but its different variants will differ in
(a) how the outer subdomain residual is computed, and (b) how the outer subdomain correction is computed.

PC_GASM_BASIC - Symmetric version where the full from the outer subdomain is used, and the resulting correction is applied

over the outer subdomains. As a result, points in the overlap will receive the sum of the corrections

from neighboring subdomains.

Classical standard additive Schwarz.

PC_GASM_RESTRICT - Residual from the outer subdomain is used but the correction is restricted to the inner subdomain only

(i.e., zeroed out over the overlap portion of the outer subdomain before being applied). As a result,

each point will receive a correction only from the unique inner subdomain containing it (nonoverlapping covering

assumption).

Default.

PC_GASM_INTERPOLATE - Residual is zeroed out over the overlap portion of the outer subdomain, but the resulting correction is

applied over the outer subdomain. As a result, points in the overlap will receive the sum of the corrections

from neighboring subdomains.

PC_GASM_NONE - Residuals and corrections are zeroed out outside the local subdomains.

Not very good.

### See Also

PCGASMSetType()

**Level:**beginner

Location:src/ksp/pc/../../../include/petscpctypes.h

Index of all PC routines

Table of Contents for all manual pages

Index of all manual pages