:orphan: # PCPBJACOBI Point block Jacobi preconditioner ## Notes See `PCJACOBI` for diagonal Jacobi, `PCVPBJACOBI` for variable-size point block, and `PCBJACOBI` for large size blocks This works for `MATAIJ` and `MATBAIJ` matrices and uses the blocksize provided to the matrix Uses dense LU factorization with partial pivoting to invert the blocks; if a zero pivot is detected a PETSc error is generated. ## Developer Notes This should support the `PCSetErrorIfFailure()` flag set to `PETSC_TRUE` to allow the factorization to continue even after a zero pivot is found resulting in a Nan and hence terminating `KSP` with a `KSP_DIVERGED_NANORINF` allowing a nonlinear solver/ODE integrator to recover without stopping the program as currently happens. Perhaps should provide an option that allows generation of a valid preconditioner even if a block is singular as the `PCJACOBI` does. ## See Also `PCCreate()`, `PCSetType()`, `PCType`, `PC`, `PCJACOBI`, `PCVPBJACOBI`, `PCBJACOBI` ## Level beginner ## Location src/ksp/pc/impls/pbjacobi/pbjacobi.c --- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ksp/pc/impls/pbjacobi/pbjacobi.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)