# PCILU#

Incomplete factorization preconditioners.

## Options Database Keys#

number of levels of fill for ILU(k)**-pc_factor_levels**- only for ILU(0) with natural ordering, reuses the space of the matrix for its factorization (overwrites original matrix)**-pc_factor_in_place -**fill in a zero diagonal even if levels of fill indicate it wouldn’t be fill**-pc_factor_diagonal_fill -**reuse ordering of factorized matrix from previous factorization**-pc_factor_reuse_ordering -**expected amount of fill in factored matrix compared to original matrix, nfill > 1**-pc_factor_fill**- reorder the matrix before factorization to remove zeros from the diagonal, this decreases the chance of getting a zero pivot**-pc_factor_nonzeros_along_diagonal -**set the row/column ordering of the factored matrix**-pc_factor_mat_ordering_type <natural,nd,1wd,rcm,qmd> -**for block ILU(k) factorization, i.e. with BAIJ matrices with block size larger than 1 the diagonal blocks are factored with partial pivoting (this increases the stability of the ILU factorization**-pc_factor_pivot_in_blocks -**

## Notes#

Only implemented for some matrix format and sequential. For parallel see `PCHYPRE`

for hypre’s ILU

For `MATSEQBAIJ`

matrices this implements a point block ILU

The “symmetric” application of this preconditioner is not actually symmetric since L is not transpose(U) even when the matrix is not symmetric since the U stores the diagonals of the factorization.

If you are using `MATSEQAIJCUSPARSE`

matrices (or `MATMPIAIJCUSPARSE`

matrices with block Jacobi), factorization
is never done on the GPU).

## References#

**** -*** T. Dupont, R. Kendall, and H. Rachford. An approximate factorization procedure for solving self adjoint elliptic difference equations. SIAM J. Numer. Anal., 5, 1968.

**** -*** T.A. Oliphant. An implicit numerical method for solving two dimensional timedependent diffusion problems. Quart. Appl. Math., 19, 1961.

**** -*** TONY F. CHAN AND HENK A. VAN DER VORST, APPROXIMATE AND INCOMPLETE FACTORIZATIONS, Chapter in Parallel Numerical Algorithms, edited by D. Keyes, A. Semah, V. Venkatakrishnan, ICASE/LaRC Interdisciplinary Series in Science and Engineering, Kluwer.

## See Also#

`PCCreate()`

, `PCSetType()`

, `PCType`

, `PC`

, `PCSOR`

, `MatOrderingType`

, `PCLU`

, `PCICC`

, `PCCHOLESKY`

,
`PCFactorSetZeroPivot()`

, `PCFactorSetShiftSetType()`

, `PCFactorSetAmount()`

,
`PCFactorSetDropTolerance()`

, `PCFactorSetFill()`

, `PCFactorSetMatOrderingType()`

, `PCFactorSetReuseOrdering()`

,
`PCFactorSetLevels()`

, `PCFactorSetUseInPlace()`

, `PCFactorSetAllowDiagonalFill()`

, `PCFactorSetPivotInBlocks()`

,
`PCFactorGetAllowDiagonalFill()`

, `PCFactorGetUseInPlace()`

## Level#

beginner

## Location#

## Examples#

src/ksp/pc/tutorials/ex1.c.html

src/ksp/ksp/tutorials/ex52.c.html

src/ksp/ksp/tutorials/ex62.c.html

src/ksp/ksp/tutorials/ex7.c.html

src/ksp/ksp/tutorials/ex7f.F90.html

src/ksp/ksp/tutorials/ex8.c.html

Index of all PC routines

Table of Contents for all manual pages

Index of all manual pages