ILUT Programmers Guide Contents | Index |  Search

Category:itl,functors Component type:type
Description
The algorithm of ILUT(A, 0, 1.0e-6) is slower than ILU(A). If No fill-in is arrowed , please use ILU instead of ILUT.
```  Usage:
Matrix A;
int fill_in=5;
double threshold = 1.0e-5;
ILUT precond(A, fill_in, threshold);
qmr(A, x, b, precond.left(), precond.right(), iter);
```
Matrix has to be unsymmetric. For symmetric one, use incomlete cholesky. Notes: The idea under a concrete Preconditioner such as Incomplete LU is to create a Preconditioner object to use in iterative methods.
Example
In ilut.cc:
```typedef matrix< Type,
rectangle<>,
array< compressed<> >,
row_major >::type Matrix;
Matrix A(5, 5);
dense1D<Type> x(A.nrows(), Type(0));
dense1D<Type> b(A.ncols());
for (dense1D<Type>::iterator i=b.begin(); i!=b.end(); i++)
*i = 1.;

// ilut preconditioner
ILUT<Matrix> precond(A, 0, 1.e-3);

//iteration
noisy_iteration<double> iter(b, max_iter, 1.e-6);

//qmr algorithm
qmr(A, x, b, precond.left(), precond.right(), iter);

```
Definition
ilut.h
Template Parameters

ParameterDescriptionDefault
MatrixMatrix
Model of
Members
Member Where defined Description
Precond   The preconditioner type
Left   The left preconditioner type
Right   The right preconditioner type
ILUT ()   Default Constructor
ILUT (const Matrix& A, int k_, double eps_)   Construct from Matrix A, max fill-ins (k), and threshold (eps)
void print ()
Precond operator() ()   return a right or Left Preconditioner object
Left left ()   return the Left part of a Split Preconditioner object
Right right ()   return the Right part of a Split Precondtioner objet
New members
Notes