:orphan: # 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 Usage 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 `PCBJACOBI`, `PCASM`, `PCASMGetSubKSP()` ## Level advanced ## Location src/ksp/pc/impls/bjacobi/bjacobi.c ## Examples src/ksp/ksp/tutorials/ex7.c
src/ksp/ksp/tutorials/ex7f.F90
src/snes/tutorials/ex3.c
## Implementations PCBJacobiGetSubKSP_BJacobi in src/ksp/pc/impls/bjacobi/bjacobi.c
--- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ksp/pc/impls/bjacobi/bjacobi.c) [Index of all PC routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)