PCASMSetTotalSubdomains#

Sets the subdomains for all processors for the additive Schwarz preconditioner, PCASM.

Synopsis#

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

Collective, all MPI ranks must pass in the same array of IS

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) the values of the is array are copied so you can free the array (not the IS in the array) after this call

  • is_local - the index sets that define the local part of the subdomains for this processor (or NULL to not provide this information) The values of the is_local array are copied so you can free the array (not the IS in the array) after this call

Options Database Key#

  • -pc_asm_blocks - Sets total blocks

Notes#

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

By default the PCASM preconditioner uses 1 block per processor.

These index sets cannot be destroyed until after completion of the linear solves for which the PCASM 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#

KSP: Linear System Solvers, PCASM, PCASMSetLocalSubdomains(), PCASMSetOverlap(), PCASMGetSubKSP(), PCASMCreateSubdomains2D(), PCGASM

Level#

advanced

Location#

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

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