:orphan: # PCILU Incomplete factorization preconditioners. ## Options Database Keys - ***-pc_factor_levels -*** number of levels of fill for ILU(k) - ***-pc_factor_in_place -*** only for ILU(0) with natural ordering, reuses the space of the matrix for its factorization (overwrites original matrix) - ***-pc_factor_diagonal_fill -*** fill in a zero diagonal even if levels of fill indicate it wouldn't be fill - ***-pc_factor_reuse_ordering -*** reuse ordering of factorized matrix from previous factorization - ***-pc_factor_fill -*** expected amount of fill in factored matrix compared to original matrix, nfill > 1 - ***-pc_factor_nonzeros_along_diagonal -*** reorder the matrix before factorization to remove zeros from the diagonal, this decreases the chance of getting a zero pivot - ***-pc_factor_mat_ordering_type -*** set the row/column ordering of the factored matrix - ***-pc_factor_pivot_in_blocks -*** 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 ## 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 src/ksp/pc/impls/factor/ilu/ilu.c ## Examples src/ksp/ksp/tutorials/ex52.c
src/ksp/ksp/tutorials/ex62.c
src/ksp/ksp/tutorials/ex7.c
src/ksp/ksp/tutorials/ex7f.F90
src/ksp/ksp/tutorials/ex8.c
src/ksp/pc/tutorials/ex1.c
--- [Edit on GitLab](https://gitlab.com/petsc/petsc/-/edit/release/src/ksp/pc/impls/factor/ilu/ilu.c) [Index of all PC routines](index.md) [Table of Contents for all manual pages](/manualpages/index.md) [Index of all manual pages](/manualpages/singleindex.md)