Notes: Only implemented for some matrix formats. (for parallel see PCHYPRE for hypre's ILU)
For BAIJ 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 MATSEQAIJCUSP matrices (or MATMPIAIJCUSP matrices with block Jacobi) you must have ./configured PETSc with also --download-txpetscgpu to have the triangular solves performed on the GPU (factorization is never done on the GPU).
T.A. Oliphant. An implicit numerical method for solving two-dimensional time-dependent dif- fusion problems. Quart. Appl. Math., 19:221--229, 1961.
Review article: APPROXIMATE AND INCOMPLETE FACTORIZATIONS, TONY F. CHAN AND HENK A. VAN DER VORST http://igitur-archive.library.uu.nl/math/2001-0621-115821/proc.pdf chapter in Parallel Numerical Algorithms, edited by D. Keyes, A. Semah, V. Venkatakrishnan, ICASE/LaRC Interdisciplinary Series in Science and Engineering, Kluwer, pp. 167--202.
Level:beginner
Location:src/ksp/pc/impls/factor/ilu/ilu.c
Index of all PC routines
Table of Contents for all manual pages
Index of all manual pages
-pc_factor_levels <k> | - 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 <nfill> | - 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 |