Skip to main content
`Ctrl`+`K`

# PCJACOBI

Jacobi (i.e. diagonal scaling preconditioning)

## Options Database Keys

- -pc_jacobi_type (diagonal|rowl1|rowmax|rowsum) - approach for forming the preconditioner

- -pc_jacobi_abs (true|false) - use the absolute value of the diagonal entry

- -pc_jacobi_rowl1_scale (true|false) - scaling of off-diagonal terms

- -pc_jacobi_fixdiag (true|false) - fix for zero diagonal terms by placing 1.0 in those locations

## Notes

By using `KSPSetPCSide`(ksp,`PC_SYMMETRIC`) or -ksp_pc_side symmetric can scale each side of the matrix by the square root of the diagonal entries.

Zero entries along the diagonal are replaced with the value 1.0

See `PCPBJACOBI` for fixed-size point block, `PCVPBJACOBI` for variable-sized point block, and `PCBJACOBI` for large size block preconditioners

## See Also

`PCCreate()`, `PCSetType()`, `PCType`, `PC`, `PCJacobiSetType()`, `PCJacobiSetUseAbs()`, `PCJacobiGetUseAbs()`, `PCASM`, `PCJacobiSetFixDiagonal()`, `PCJacobiGetFixDiagonal()`, `PCPBJACOBI`, `PCBJACOBI`, `PCVPBJACOBI`

## Level

beginner

## Location

src/ksp/pc/impls/jacobi/jacobi.c

## Examples

src/ksp/ksp/tutorials/ex1.c
src/ksp/ksp/tutorials/ex15.c
src/dm/impls/stag/tutorials/ex4.c
src/dm/impls/stag/tutorials/ex1.c
src/ksp/ksp/tutorials/ex6.c
src/ksp/ksp/tutorials/ex7.c
src/ksp/ksp/tutorials/ex23.c
src/ksp/ksp/tutorials/ex1f.F90
src/ksp/ksp/tutorials/ex15f.F90
src/ksp/ksp/tutorials/ex71.c

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