Skip to main content
`Ctrl`+`K`

# 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

KSP: Linear System Solvers, `PCCreate()`, `PCSetType()`, `PCType`, `PC`, `PCJACOBI`, `PCVPBJACOBI`, `PCBJACOBI`

## Level

beginner

## Location

src/ksp/pc/impls/pbjacobi/pbjacobi.c

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