Skip to main content
`Ctrl`+`K`

# PCICC

Incomplete Cholesky factorization preconditioners [CVDV97]

## Options Database Keys

- -pc_factor_levels <k> - number of levels of fill for ICC(k)

- -pc_factor_in_place - only for ICC(0) with natural ordering, reuses the space of the matrix for its factorization (overwrites original matrix)

- -pc_factor_fill <nfill> - expected amount of fill in factored matrix compared to original matrix, nfill > 1

- -pc_factor_mat_ordering_type <natural,nd,1wd,rcm,qmd> - set the row/column ordering of the factored matrix

## Notes

Only implemented for some matrix formats. Not implemented in parallel.

For `MATSEQBAIJ` matrices this implements a point block ICC.

By default, the Manteuffel shift [Man79] is applied, for matrices with block size 1 only. Call `PCFactorSetShiftType`(pc,`MAT_SHIFT_POSITIVE_DEFINITE`); to turn off the shift.

## References

[CVDV97]

Tony F Chan and Henk A Van Der Vorst. Approximate and incomplete factorizations. In Parallel numerical algorithms, pages 167–202. Springer, 1997.

[Man79]

Thomas A Manteuffel. Shifted incomplete Cholesky factorization. In Sparse Matrix Proceedings 1978, 41–61. SIAM, Philadelphia, PA, 1979.

## See Also

KSP: Linear System Solvers, `PCCreate()`, `PCSetType()`, `PCType`, `PC`, `PCSOR`, `MatOrderingType`, `PCILU`, `PCLU`, `PCCHOLESKY`, `PCFactorSetZeroPivot()`, `PCFactorSetShiftType()`, `PCFactorSetShiftAmount()`, `PCFactorSetFill()`, `PCFactorSetMatOrderingType()`, `PCFactorSetReuseOrdering()`, `PCFactorSetLevels()`

## Level

beginner

## Location

src/ksp/pc/impls/factor/icc/icc.c

## Examples

src/ksp/pc/tutorials/ex2.c

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