# 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_NANORIF` 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
<A HREF="PETSC_DOC_OUT_ROOT_PLACEHOLDER/src/ksp/pc/impls/pbjacobi/pbjacobi.c.html#PCPBJACOBI">src/ksp/pc/impls/pbjacobi/pbjacobi.c</A>


---
[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](/docs/manualpages/index.md)  
[Index of all manual pages](/docs/manualpages/singleindex.md)  
