PCILU#
Incomplete factorization preconditioners [DKR68], [Oli61], [CVDV97]
Options Database Keys#
-pc_factor_levels k - number of levels of fill for ILU(k)
-pc_factor_in_place (true|false) - only for ILU(0) with natural ordering, reuses the space of the matrix for its factorization (overwrites original matrix)
-pc_factor_diagonal_fill (true|false) - fill in a zero diagonal even if levels of fill indicate it wouldn’t be filled
-pc_factor_reuse_ordering (true|false) - reuse ordering of factorized matrix from previous factorization
-pc_factor_fill nfill - expected amount of fill in factored matrix compared to original matrix, nfill > 1
-pc_factor_nonzeros_along_diagonal (true|false) - 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 (natural|nd|1wd|rcm|qmd) - set the row/column ordering of the factored matrix
-pc_factor_pivot_in_blocks (true|false) - for block ILU(k) factorization, i.e. with
MATBAIJmatrices with block size larger than 1 the diagonal blocks are factored with partial pivoting (this increases the stability of the ILU factorization-mat_solvertype_optionname - options for a specific solver package, for example
-mat_mumps_cntl_1
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).
The options prefix of the factored matrix is set to be the same as the PC options prefix.
References#
Tony F Chan and Henk A Van Der Vorst. Approximate and incomplete factorizations. In Parallel numerical algorithms, pages 167–202. Springer, 1997.
Todd Dupont, Richard P Kendall, and HH Rachford, Jr. An approximate factorization procedure for solving self-adjoint elliptic difference equations. SIAM Journal on Numerical Analysis, 5(3):559–573, 1968.
Thomas A Oliphant. An implicit, numerical method for solving two-dimensional time-dependent diffusion problems. Quarterly of Applied mathematics, 19(3):221–229, 1961.
See Also#
KSP: Linear System Solvers, PCCreate(), PCSetType(), PCType, PC, PCSOR, MatOrderingType, PCLU, PCICC, PCCHOLESKY,
PCFactorSetZeroPivot(), PCFactorSetShiftType(), PCFactorSetShiftAmount(),
PCFactorSetDropTolerance(), PCFactorSetFill(), PCFactorSetMatOrderingType(), PCFactorSetReuseOrdering(),
PCFactorSetLevels(), PCFactorSetUseInPlace(), PCFactorSetAllowDiagonalFill(), PCFactorSetPivotInBlocks(),
PCFactorGetAllowDiagonalFill(), PCFactorGetUseInPlace()
Level#
beginner
Location#
Examples#
src/ksp/ksp/tutorials/ex52.c
src/ksp/ksp/tutorials/ex7.c
src/ksp/ksp/tutorials/ex62.c
src/ksp/ksp/tutorials/ex7f.F90
src/ksp/pc/tutorials/ex4.c
src/ksp/pc/tutorials/ex1.c
src/ksp/ksp/tutorials/ex8.c
Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages