PETSc version 3.16.5
Fix/Edit manual page

# PCASMSetLocalSubdomains

Sets the local subdomains (for this processor only) for the additive Schwarz preconditioner.

### Synopsis

    #include "petscpc.h"
    PetscErrorCode  PCASMSetLocalSubdomains(PC pc,PetscInt n,IS is[],IS is_local[])

Collective on pc

### Input Parameters

| pc | - the preconditioner context
| n | - the number of subdomains for this processor (default value = 1)
| is | - the index set that defines the subdomains for this processor (or NULL for PETSc to determine subdomains)
| is_local | - the index sets that define the local part of the subdomains for this processor, not used unless PCASMType is PC_ASM_RESTRICT (or NULL to not provide these)

### Options Database Key

To set the total number of subdomain blocks rather than specify the index sets, use the option

| -pc_asm_local_blocks <blks> | - Sets local blocks

### Notes

The IS numbering is in the parallel, global numbering of the vector for both is and is_local

By default the ASM preconditioner uses 1 block per processor.

Use PCASMSetTotalSubdomains() to set the subdomains for all processors.

If is_local is provided and PCASMType is PC_ASM_RESTRICT then the solution only over the is_local region is interpolated back to form the global solution (this is the standard restricted additive Schwarz method)

If the is_local is provided and PCASMType is PC_ASM_INTERPOLATE or PC_ASM_NONE then an error is generated since there is no code to handle that case.

### See Also

PCASMSetTotalSubdomains(), PCASMSetOverlap(), PCASMGetSubKSP(),
PCASMCreateSubdomains2D(), PCASMGetLocalSubdomains(), PCASMType, PCASMSetType()

### Level

advanced

### Location

src/ksp/pc/impls/asm/asm.c

### Examples

src/ksp/ksp/tutorials/ex8.c.html

### Implementations

PCASMSetLocalSubdomains_ASM in src/ksp/pc/impls/asm/asm.c
Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages