petsc-3.12.4 2020-02-04
Report Typos and Errors

# PCASMSetTotalSubdomains

Sets the subdomains for all processors for the additive Schwarz preconditioner. Either all or no processors in the PC communicator must call this routine, with the same index sets.

### Synopsis

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

Collective on pc

### Input Parameters

| pc | - the preconditioner context
| N | - the number of subdomains for all processors
| is | - the index sets that define the subdomains for all processors (or NULL to ask PETSc to determine the subdomains)
| is_local | - the index sets that define the local part of the subdomains for this processor (or NULL to not provide this information)

### Options Database Key

To set the total number of subdomain blocks rather than specify the index sets, use the option
-pc_asm_blocks <blks> -Sets total blocks

### Notes

Currently you cannot use this to set the actual subdomains with the argument is or is_local.

By default the ASM preconditioner uses 1 block per processor.

These index sets cannot be destroyed until after completion of the linear solves for which the ASM preconditioner is being used.

Use PCASMSetLocalSubdomains() to set local subdomains.

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

### See Also

PCASMSetLocalSubdomains(), PCASMSetOverlap(), PCASMGetSubKSP(),
PCASMCreateSubdomains2D()

### Level

advanced

### Location

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

### Examples

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

### Implementations

PCASMSetTotalSubdomains_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