PCBJacobiGetSubKSP — PETSc 3.21.4 documentation

Skip to main content
`Ctrl`+`K`

# PCBJacobiGetSubKSP

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

## Synopsis

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

Not Collective

## Input Parameter

- pc - the preconditioner context

## Output Parameters

- n_local - the number of blocks on this processor, or NULL

- first_local - the global number of the first block on this processor, or NULL

- ksp - the array of KSP contexts

## Notes

After `PCBJacobiGetSubKSP()` the array of `KSP` contexts is not to be freed.

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

You must call `KSPSetUp()` or `PCSetUp()` before calling `PCBJacobiGetSubKSP()`.

## Fortran Notes

You must pass in a `KSP` array that is large enough to contain all the local `KSP`s.

You can call `PCBJacobiGetSubKSP`(pc,nlocal,firstlocal,`PETSC_NULL_KSP`,ierr) to determine how large the `KSP` array must be.

## See Also

KSP: Linear System Solvers, `PCBJACOBI`, `PCASM`, `PCASMGetSubKSP()`

## Level

advanced

## Location

src/ksp/pc/impls/bjacobi/bjacobi.c

## Examples

src/ksp/ksp/tutorials/ex7f.F90
src/ksp/ksp/tutorials/ex7.c
src/snes/tutorials/ex3.c

## Implementations

PCBJacobiGetSubKSP_BJacobi() in src/ksp/pc/impls/bjacobi/bjacobi.c

Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages