Incomplete LU
The Incomplete LU node () is an attribute node that handles parameters for linear system solvers/preconditioners that use incomplete LU factorization. Right-click an Iterative, Krylov Preconditioner, Presmoother, Postsmoother, or Coarse Solver attribute node to add an Incomplete LU node. Also see About Incomplete LU.
General
In this section you specify the properties of the incomplete LU preconditioner.
Select a Solver. Select:
ILU (the default) to use a solver designed specifically for incomplete LU factorization.
ILUT (MKL) to use the ILUT solver (preconditioner) from Intel® MKL (Intel Math Kernel Library). Unlike ILU0, ILUT preserves some resulting fill-in in the preconditioner matrix (see Ref. 23).
ILU0 (MKL) to use the ILU0 solver (preconditioner) from Intel MKL. ILU0 preserves the structure of the original matrix in the result (see Ref. 23).
SPOOLES to use the sparse object-oriented linear equations solver SPOOLES.
The ILUT (MKL) and ILUT0 (MKL) preconditioners can perform better than ILU when solving large systems but are not multithreaded.
Drop Using
For Incomplete LU, select an option from the Drop using list to specify a drop rule. See Selecting a Drop Rule. Select:
Tolerance (the default) to let the solver drop (neglect) elements that have small enough absolute values. Tune the sizes of the neglected elements either in the Drop tolerance field or using the accompanying slide bar. A larger tolerance neglects more elements.
Fill ratio to let the solver keep a certain fraction of the elements. The elements with largest absolute values are kept. Tune the number of nonzero elements in the incomplete factorization using either the Fill ratio field or the accompanying field. A smaller fill ratio neglects more elements.
For ILUT (MKL), you can specify both a drop tolerance and a fill ratio.
Drop Tolerance
For Incomplete LU, ILUT (MKL), and SPOOLES, use the Drop tolerance field or the accompanying slide bar to tune the maximum allowed sizes of dropped (neglected) elements (default: 0.01). A smaller drop tolerance means that the preconditioner drops fewer elements and so the preconditioner becomes more accurate. This leads to fewer iterations in the iterative solver, but memory requirements and preconditioning time increase. A larger drop tolerance means that the preconditioner drops more elements and so memory use and preconditioning time decrease. In this case, however, the preconditioner becomes less accurate, which leads to more iterations in the iterative solver, or, if the drop tolerance is too high, to no convergence at all. Often it is most efficient to use as high a drop tolerance as possible; that is, choose it so that the iterative solver barely converges.
Respect Pattern
For Incomplete LU, by default the solver never drops elements in positions where the original matrix is nonzero. Clear the Respect pattern check box to allow the solver to also drop such elements.
Pivot Threshold
For both Incomplete LU and SPOOLES, use the Pivot threshold field to enter a number between 0 and 1 that acts as pivot threshold (default: 1). This means that in any given column, the algorithm accepts an entry as a pivot element if its absolute value is greater than or equal to the specified pivot threshold times the largest absolute value in the column. The solver permutes rows for stability. In any given column, if the absolute value of the diagonal element is less than the pivot threshold times the largest absolute value in the column, it permutes rows such that the largest element is on the diagonal. Thus the default value 1 means that it uses partial pivoting.
Number of Iterations and Relaxation Factor
For Incomplete LU, ILUT (MKL), and ILU0 (MKL) — once the approximate factors L and U have been computed — you can use the incomplete LU factorization as an iterative preconditioner/smoother. Here, M = (LU)/ω, where ω is a relaxation factor, and L and U are the approximate factors. Use the Number of iterations field to specify how many iterations to perform (default: 1). The relaxation factor ω is similar to the one used by, for example, the SOR node. Specify such a factor in the Relaxation factor field (default: 1). See also About the Relaxation Factor.
Preordering Algorithm
For SPOOLES, use the Preordering algorithm list to select one of the following preorderings:
Nested dissection (NS, the default)
Minimum degree
Multisection (MS)
Best of ND and MS (the best of nested dissection and multisection)