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 <natural,nd,1wd,rcm,qmd> - 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#
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
Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages