Loading...
Searching...
No Matches
<tt>ilut</tt>

incomplete LU factorization preconditionner

# Synopsis

        solver pa = ilut(a);

# Description

`ilut` is a function that returns the dual threshold incomplete LU factorization preconditionner of its argument as a `solver`. The method is described in

        Yousef Saad,
        ILUT: a dual threshold incomplete LU factorization,
        Numer. Lin. Algebra Appl., 1(4), pp 387-402, 1994.

# Options

During the factorization, two dropping rules are used and `ilut` supports two options:

`drop_tol` (float)

> ‍ Any element whose magnitude is less than some tolerance is dropped. This tolerance is obtained by multiplying the option tolerance `drop_tol` by the average magnitude of all the original elements in the current row. By default, `drop_tol` is `1000*epsilon` where `epsilon` is the machine precision associated to the `Float` type.

`fill_factor` (integer)

> ‍ On each row, after elimination, only the `n_fillin` largest elements in the L part and the fill largest elements in the U part are kept, in addition to the diagonal elements. The option `fill_factor` is used to compute `n_fillin`: `n_fillin = (nnz*fill_factor)/n + 1` where `n` is the matrix size and `nnz` is its total number of non-zero entires. With `fill_factor=1`, the incomplete factorization as about the same non-zero entries as the initial matrix. With `fill_factor=n`, the factorization is complete, up to the dropped elements. By default `fill_factor=10`.

# Example

int fill_factor = 10; double drop_tol = 1e-12; solver pa = ilut (a, fill_factor, drop_tol);

# Implementation

This documentation has been generated from file linalg/lib/ilut.h