|
Rheolef
7.2
an efficient C++ finite element environment
|
ilut incomplete LU factorization preconditionner
solver pa = ilut(a);
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.
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_tolby the average magnitude of all the original elements in the current row. By default,drop_tolis1000*epsilonwhereepsilonis the machine precision associated to theFloattype.
fill_factor (integer)
On each row, after elimination, only the
n_fillinlargest elements in the L part and the fill largest elements in the U part are kept, in addition to the diagonal elements. The optionfill_factoris used to computen_fillin:n_fillin = (nnz*fill_factor)/n + 1wherenis the matrix size andnnzis its total number of non-zero entires. Withfill_factor=1, the incomplete factorization as about the same non-zero entries as the initial matrix. Withfill_factor=n, the factorization is complete, up to the dropped elements. By defaultfill_factor=10.
int fill_factor = 10; double drop_tol = 1e-12; solver pa = ilut (a, fill_factor, drop_tol);
This documentation has been generated from file linalg/lib/ilut.h