:orphan: # PCGASMType Type of generalized additive Schwarz method to use (differs from `PCASM` 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; ``` ## Values - ***`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. ## Note 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. ## See Also [](sec_pc), `PCGASM`, `PCASM`, `PC`, `PCGASMSetType()`, `PCASMType` ## Level beginner ## Location include/petscpctypes.h --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/include/petscpctypes.h) [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)