Rheolef
7.2
an efficient C++ finite element environment
|
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_tol
by the average magnitude of all the original elements in the current row. By default,drop_tol
is1000*epsilon
whereepsilon
is the machine precision associated to theFloat
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 optionfill_factor
is used to computen_fillin
:n_fillin = (nnz*fill_factor)/n + 1
wheren
is the matrix size andnnz
is 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