Abstract

We present an incomplete UL (IUL) decomposition of matrix which is extracted as a by-product of BFAPINV (backward factored approximate inverse) process. We term this IUL factorization as IULBF. We have used ILUFF [3] and IULBF as left preconditioner for linear systems. Different versions of ILUFF and IULBF preconditioners are computed by using different dropping techniques. In this paper, we compare quality of different versions of ILUFF and IULBF preconditioners.

1. Introduction

Consider the linear system of equations where the coefficient matrix is nonsymmetric, nonsingular, large, sparse, and . Suppose . Linear system is termed left preconditioned system of system (1.1) and matrix is called left preconditioner matrix [1]. System (1.2) is solved by Krylov subspace methods [1].

Suppose that matrix is nonsymmetric. Also, suppose that and are unit lower and upper triangular matrices, respectively, and is a diagonal matrix. FFAPINV (forward factored approximate inverse) Algorithm [2], computes matrices , , and such that relation holds. It is possible to obtain an incomplete (ILU) decomposition of matrix , as a by-product of FFAPINV process, such that is an unit lower triangular and is an upper triangular matrix and Matrix in (1.4) is called ILUFF preconditioner (ILU factorization obtained from forward factored approximate inverse process) [3]. The approximate inverse factors , and in (1.3) and , matrices in (1.4) satisfy the two following relations:

In Algorithms 1 and 2, and refer to th column and th row of matrix A, respectively.

(1) 𝑤 1 = 𝑒 𝑇 1 , 𝑧 1 = 𝑒 1 , 𝑑 1 = 𝑎 1 1 .
(2) for 𝑗 = 2 to 𝑛   do
(3)   𝑤 𝑗 = 𝑒 𝑇 𝑗 , 𝑧 𝑗 = 𝑒 𝑗 .
(4)  for   𝑖 = 1 to 𝑗 1 do
(5)    𝐿 𝑗 𝑖 = 𝐴 𝑗 , 𝑧 𝑖 𝑑 𝑖 , 𝑈 𝑖 𝑗 = 𝑤 𝑖 𝐴 , 𝑗 𝑑 𝑖
(6)   apply a dropping rule to 𝐿 𝑗 𝑖 and to 𝑈 𝑖 𝑗
(7)    𝑧 𝑗 = 𝑧 𝑗 𝑤 𝑖 𝐴 , 𝑗 𝑑 𝑖 𝑧 𝑖 ,   𝑤 𝑗 = 𝑤 𝑗 𝐴 𝑗 , 𝑧 𝑖 𝑑 𝑖 𝑤 𝑖
(8)   for all 𝑙 𝑖 apply a dropping rule to 𝑧 𝑙 𝑗 and to 𝑤 𝑗 𝑙
     (first format of dropping for 𝑊 and 𝑍 )
(9)   end for
(10) for all 𝑙 𝑗 apply a dropping rule to 𝑧 𝑙 𝑗 and to 𝑤 𝑗 𝑙
      (second format of dropping for 𝑊 and 𝑍 )
(11)   𝑑 𝑗 = 𝑤 𝑗 𝐴 , 𝑗 (if 𝐴 is not positive definite)
(12)   𝑑 𝑗 = 𝑤 𝑗 𝐴 𝑤 𝑇 𝑗 (if 𝐴 is positive definite)
(13) end for
(14) Return 𝐿 = ( 𝐿 𝑖 𝑗 ) and 𝑈 = ( 𝑑 𝑖 𝑈 𝑖 𝑗 )

(1) 𝑤 𝑛 = 𝑒 𝑇 𝑛 , 𝑧 𝑛 = 𝑒 𝑛 , 𝑑 𝑛 = 𝑎 𝑛 𝑛 .
(2) for   𝑗 = 𝑛 1 to 1 do
(3)   𝑤 𝑗 = 𝑒 𝑇 𝑗 , 𝑧 𝑗 = 𝑒 𝑗 .
(4)  for 𝑖 = 𝑗 + 1 to 𝑛   do
(5)    𝑈 𝑗 𝑖 = 𝐴 𝑗 , 𝑧 𝑖 𝑑 𝑖 , 𝐿 𝑖 𝑗 = 𝑤 𝑖 𝐴 , 𝑗 𝑑 𝑖
(6)   apply a dropping rule to 𝑈 𝑗 𝑖 and to 𝐿 𝑖 𝑗
(7)    𝑧 𝑗 = 𝑧 𝑗 𝑤 𝑖 𝐴 , 𝑗 𝑑 𝑖 𝑧 𝑖 , 𝑤 𝑗 = 𝑤 𝑗 𝐴 𝑗 , 𝑧 𝑖 𝑑 𝑖 𝑤 𝑖
(8)   for all 𝑙 𝑖 apply a dropping rule to 𝑧 𝑙 𝑗 and to 𝑤 𝑗 𝑙
    (first format of dropping for 𝑊 and 𝑍 )
(9)   end for
(10) for all 𝑙 𝑗 apply a dropping rule to 𝑧 𝑙 𝑗 and to 𝑤 𝑗 𝑙
     (second format of dropping for 𝑊 and 𝑍 )
(11)   𝑑 𝑗 = 𝑤 𝑗 𝐴 , 𝑗 (if 𝐴 is not positive definite)
(12)   𝑑 𝑗 = 𝑤 𝑗 𝐴 𝑤 𝑇 𝑗 (if 𝐴 is positive definite)
(13) end for
(14) Return 𝐿 = ( 𝑑 𝑗 𝐿 𝑖 𝑗 ) and 𝑈 = ( 𝑈 𝑖 𝑗 )

In Section 2 of this paper, we present different dropping strategies for , and , factors of ILUFF preconditioner. In Section 3, we first introduce the IULBF preconditioner and then, we present different dropping strategies for this preconditioner. In Section 4, we present numerical results.

2. Different Versions of ILUFF Preconditioner

Algorithm 1,which has been presented in the next page, computes the ILUFF preconditioner.

Suppose that and are the drop tolerance parameters for and matrices, respectively. We have used two strategies to drop entries of and vectors in ILUFF algorithm.

(i) First Dropping Strategy
In this strategy, only line 8 of Algorithm 1 will be run and line 10 will not. In this case, entries and , for are dropped when

(ii) Second Dropping Strategy
In this strategy, only line 10 of Algorithm 1 will be run and line 8 will not. In this case, the whole vectors and are computed as and then, entries and , for , are dropped when criterions (2.1) are satisfied.

We have used two strategies to drop entries of and matrices in ILUFF algorithm.

(i) Inverse-Based Dropping Strategy
Let be the same drop tolerance parameter for and matrices and be the same drop tolerance parameter for and matrices. Consider as and as . We drop entries and , for , when criterions (2.1) hold. Then, in line 6 of Algorithm 1, entries and , for , are dropped when

(ii) Simple Dropping Strategy
Let and be the drop tolerance parameters for and matrices. In line 6 of Algorithm 1, entries and , for , are dropped when Different versions of ILUFF preconditioners are computed by using different dropping strategies in Algorithm 1.

(i) ILUFF1
In Algorithm 1, first dropping strategy is used to drop entries of and matrices and simple dropping strategy is used to drop entries of and matrices.

(ii) ILUFF2
In Algorithm 1, first dropping strategy is used to drop entries of and matrices and inverse-based dropping strategy is used to drop entries of and matrices.

(iii) ILUFF3
In Algorithm 1, second dropping strategy is used to drop entries of and matrices and simple dropping strategy is used to drop entries of and matrices.

(iv) ILUFF4
In Algorithm 1, second dropping strategy is used to drop entries of and matrices and inverse-based dropping strategy is used to drop entries of and matrices.

3. IULBF Preconditioner and Its Different Versions

Suppose that and are unit upper and lower triangular matrices, respectively, and is a diagonal matrix. BFAPINV algorithm [2, 4] computes matrices , , and such that relation (1.3) holds. We obtain an IUL decomposition of matrix , as a by-product of BFAPINV process, such that is a lower triangular and is an unit upper triangular matrix and

Matrix in relation (3.1) is called IULBF preconditioner (IUL factorization obtained from backward factored approximate inverse process). Algorithm 2 computes the IULBF preconditioner. The approximate inverse factors , , and in (1.3) and , matrices in (3.1) satisfy the two following relations:

Suppose that and are the drop tolerance parameters for and matrices, respectively. We have used two strategies to drop entries of and vectors in IULBF algorithm.

(i) First Dropping Strategy
In this strategy, only line 8 of Algorithm 2 will be run and line 10 will not. In this case, entries and , for are dropped when criterions hold.

(ii) Second Dropping Strategy
In this strategy, only line 10 of Algorithm 2 will be run and line 8 will not. In this case, the whole vectors and are computed as and then, entries and , for , are dropped when criterions (3.3) are satisfied.

We have used two strategies to drop entries of and matrices in IULBF algorithm.

(i) Inverse-Based Dropping Strategy
Let be the same drop tolerance parameter for and matrices and be the same drop tolerance parameter for and matrices. Consider as and as . We drop entries and , for , when criterions (3.3) hold. Then, in line 6 of Algorithm 2, entries and , for , are dropped when

(ii) Simple Dropping Strategy
Let and be the drop tolerance parameters for and matrices. In line 6 of Algorithm 2, entries and , for , are dropped when Different versions of IULBF preconditioner are computed by using different dropping strategies in Algorithm 2.

(i) IULBF1
In Algorithm 2, first dropping strategy is used to drop entries of and matrices and simple dropping strategy is used to drop entries of and matrices.

(ii) IULBF2
In Algorithm 2, first dropping strategy is used to drop entries of and matrices and inverse-based dropping strategy is used to drop entries of and matrices.

(iii) IULBF3
In Algorithm 2, second dropping strategy is used to drop entries of and matrices and simple dropping strategy is used to drop entries of and matrices.

(iv) IULBF4
In Algorithm 2, second dropping strategy is used to drop entries of and matrices and inverse-based dropping strategy is used to drop entries of and matrices.

4. Numerical Results

In this section, we report results of left preconditioned GMRES(16) method [1]. Preconditioners are ILUFF1, ILUFF2, ILUFF3, ILUFF4, IULBF1, IULBF2, IULBF3, and IULBF4. All coefficient matrices are nonsymmetric and from University of Florida Sparse Matrix Collection [5]. Vector is in which . We have written codes of ILUFF1, ILUFF2, ILUFF3, ILUFF4, IULBF1, IULBF2, IULBF3, IULBF4, and GMRES(16) in MATLAB, and we have run all the experiments on a machine with 1GB of RAM memory. In all the experiments, if the pivot element (lines 11 and 12 of ILUFF and IULBF algorithms) is less than the machine precision, then we replace it by . Density of preconditioners is defined as

in which , , and refer to the number of nonzero entries of , and matrices, respectively. In all the experiments, we have selected ,, , , , , , and equal to 0.1.

Table 1, reports results of GMRES(16) method without preconditioning. In this table, indicates the dimension of the matrix and column indicates whether or not the matrix is positive definite. Yes (no) in this column means that the matrix is (is not) positive definite. time, indicates the iteration time of GMRES(16) without preconditioning and , is the number of iterations of GMRES(16) method. time is in seconds. In this table, + means that there is no convergence after 10,000 iterations. In all the experiments, the stopping criterion is

in which is the th residual vector of the system and is the initial residual vector. In all the experiments, the initial guess is the zero vector.

In Table 2, the information of ILUFF1, ILUFF2, ILUFF3, and ILUFF4 preconditioners are presented and also in Table 3, the information of IULBF1, IULBF2, IULBF3, and IULBF4 preconditioners are presented. In Tables 2 and 3, time is the preconditioning time and density is the density of preconditioner. time is also in seconds.

In Table 4, results of left preconditioned systems by using different versions of ILUFF preconditioner have been presented, and also in Table 5 results of left preconditioned systems by using different versions of IULBF preconditioner have been presented. In Tables 4 and 5, time is the total time which is the sum of preconditioning time and iteration time, and is the number of iterations of left preconditioned GMRES(16). In these tables, + indicates that no convergence has been obtained in 5000 iterations.

5. Conclusion

Results of Tables 1 and 4 show that ILUFF1, ILUFF2, ILUFF3, and ILUFF4 preconditioners are useful tools to decrease the number of iterations of GMRES(16) method and results of Tables 1 and 5 show that IULBF1, IULBF2, IULBF3, and IULBF4 preconditioners are also useful tools to decrease the number of iterations of GMRES(16) method.

Comparison of columns 2 and 6 of Table 4 indicates that sometimes ILUFF3 preconditioner decreases the number of iterations of GMRES(16) method a little bit more than ILUFF1 preconditioner and some other times it is vice versa. Comparison of columns 2 and 4 and columns 6 and 8 of this table, also shows that ILUFF2 preconditioner decreases the number of iterations of GMRES(16) method more than ILUFF1 preconditioner and ILUFF4 preconditioner decreases the number of iterations of GMRES(16) method more than ILUFF3 preconditioner.

Comparison of columns 2 and 6 of Table 5 indicates that IULBF3 preconditioner decreases the number of iterations of GMRES(16) method a little bit more than IULBF1 preconditioner. Comparison of columns 2 and 4 and columns 6 and 8 of this table, also shows that IULBF2 preconditioner decreases the number of iterations of GMRES(16) method more than IULBF1 preconditioner and IULBF4 preconditioner decreases the number of iterations of GMRES(16) method more than IULBF3 preconditioner.

Comparison of columns of Tables 4 and 5 indicate that (except for matrix epb0) different versions of IULBF preconditioner decrease the number of iterations of GMRES(16) method more than different versions of ILUFF preconditioner.