ILU(k) Preconditioner

Computes an ILU factorization with fill level k for general sparse matrices.
1K Downloads
Updated 14 Mar 2015

View License

This function computes the LU factors of an incomplete LU factorization with fill level k of a square sparse matrix A. Matlab's ilu function offers ILU(0) and ILU with threshold based dropping strategies, but does not offer ILU(k) with general fill level k. The code is implemented as a C++ MEX-file and has been optimized for speed while at the same time trying to minimize memory usage. Please note that for an ilu(0) factorization Matlab's built-in ilu function should be used as it has been optimized for this case and will be faster.
References:
1. Saad, Y., Iterative Methods for Sparse Linear Systems, SIAM, Philadelphia, PA, 2nd Edition, 2003.
2. Dong, X. and Cooperman, G., Task-Oriented Parallel ILU(k) Preconditioning on Computer Cluster and Multi-core Machine, Preprint, arXiv:0803.0048 [cs.DC], 2011.

Cite As

Killian Miller (2024). ILU(k) Preconditioner (https://www.mathworks.com/matlabcentral/fileexchange/48320-ilu-k-preconditioner), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2012a
Compatible with any release
Platform Compatibility
Windows macOS Linux
Categories
Find more on Linear Algebra in Help Center and MATLAB Answers
Communities

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.11.0.0

Fixed a bug in the helper function reallocNzmax.

1.10.0.0

Minor changes to iluk_Cmex.c and iluk_Cmex_nosymb.c

1.9.0.0

Added new functionality so that iluk can be used for problems in which the sparsity pattern of A does not change, such as in time-dependent PDE problems.
Improved documentation of the code.

1.8.0.0

Modified the numeric phase to improve performance, in particular, for larger values of lfil. Speedup comes with the cost of a moderate increase in memory usage: additional N*sizeof(char) bytes, where N is the size of A.

1.7.0.0

Changed the data structure for the levels -> 2x speedup!
MEX function now called by MATLAB wrapper function iluk.m.
Transpose of A now computed in wrapper (fixes a bug in MEX file).

1.6.0.0

Added functionality to optionally output the data structure of levels as a sparse array.

1.5.0.0

Another small change to symbolic phase to improve performance.

1.4.0.0

Small change to weight calculation in symbolic factorization phase to improve performance.

1.3.0.0

Improved error checking of U factor.

1.2.0.0

Edited Description

1.1.0.0

Edited the description.

1.0.0.0