# PCASMGetSubKSP

Gets the local KSP contexts for all blocks on this processor.

### Synopsis

    #include "petscpc.h"
    PetscErrorCode PETSCKSP_DLLEXPORT PCASMGetSubKSP(PC pc,PetscInt *n_local,PetscInt *first_local,KSP *ksp[])

Collective on PC iff first_local is requested

### Input Parameter

pc -the preconditioner context

### Output Parameters

| n_local | - the number of blocks on this processor or PETSC_NULL
| first_local | - the global number of the first block on this processor or PETSC_NULL, all processors must request or all must pass PETSC_NULL
| ksp | - the array of KSP contexts

### Note

After PCASMGetSubKSP() the array of KSPes is not to be freed

Currently for some matrix implementations only 1 block per processor is supported.

You must call KSPSetUp() before calling PCASMGetSubKSP().

### Keywords

PC, ASM, additive Schwarz, get, sub, KSP, context

### See Also

PCASMSetTotalSubdomains(), PCASMSetTotalSubdomains(), PCASMSetOverlap(),
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/examples/tutorials/ex8.c.html