# PCASMSetTotalSubdomains

Sets the subdomains for all processor 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 PETSCKSP_DLLEXPORT PCASMSetTotalSubdomains(PC pc,PetscInt N,IS *is)

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 processor (or PETSC_NULL for PETSc to determine subdomains)

### 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.

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.

### Keywords

PC, ASM, set, total, global, subdomains, additive Schwarz

### See Also

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

Level:advanced
Location:src/ksp/pc/impls/asm/asm.c
Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages

### Examples

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