linalg 1.8.2
A linear algebra library that provides a user-friendly interface to several BLAS and LAPACK routines.
|
Computes the incomplete LU factorization of a sparse matrix in CSR format with standard dropping strategy. More...
Public Member Functions | |
subroutine | iludp (n, a, ja, ia, alph, droptol, permtol, mbloc, alu, jlu, ju, iwk, w, jw, iperm, ierr) |
Computes the incomplete LU factorization of a sparse matrix in CSR format with standard dropping strategy.
[in] | n | The row dimension of the matrix. |
[in] | a | The non-zero elements of matrix A. |
[in] | ja | The column indices of matrix A. |
[in] | ia | The index in A where the requested row starts. |
[in] | alph | The diagonal compensation parameter. If ALPH = 0, the process is approximately equivalent to ILU with threshold; else, if ALPH = 1, the process is approximately equivalent to MILU with threshold. |
[in] | droptol | The threshold for dropping small terms in the factorization. |
[in] | permtol | A tolerance ratio used to determine whether or not to permute two columns. At step I, columns I and J are permuted when ABS(A(I,J)) * PERMTOL .GT. ABS(A(I,I)). Good values are typically between 0.1 to 0.01. |
[in] | mbloc | If desired, permuting can be done only within the diagonal blocks of size MBLOC. Useful for PDE problems with many degrees of freedom. If this feature is not required, simply set MBLOC equal to N. |
[out] | alu | The factored matrix stored in Modified Sparse Row (MSR) format containing the L and U factors together. The diagonal, stored in ALU(1:N), is inverted. Each i-th row of the ALU, JLU matrix contains the i-th row of L, excluding the diagonal entry, followed by the i-th row of U. |
[out] | jlu | The column indices for the factored matrix. |
[out] | ju | An N-element array containing the pointers to the beginning of each row of U in the factored matrix. |
[in] | iwk | The lengths of alu and jlu . |
[out] | w | An N+1 element workspace array. |
[out] | jw | A 2*N element workspace array. |
[out] | ierr | Error flag:
|
Definition at line 499 of file sparskit.f90.
subroutine sparskit::iludp::iludp | ( | integer(int32), intent(in) | n, |
real(real64), dimension(*), intent(inout) | a, | ||
integer(int32), dimension(*), intent(inout) | ja, | ||
integer(int32), dimension(n+1), intent(inout) | ia, | ||
real(real64), intent(in) | alph, | ||
real(real64), intent(in) | droptol, | ||
real(real64), intent(in) | permtol, | ||
integer(int32), intent(in) | mbloc, | ||
real(real64), dimension(*), intent(out) | alu, | ||
integer(int32), dimension(*), intent(out) | jlu, | ||
integer(int32), dimension(n), intent(out) | ju, | ||
integer(int32), intent(in) | iwk, | ||
real(real64), dimension(2*n), intent(out) | w, | ||
integer(int32), dimension(2*n), intent(out) | jw, | ||
integer(int32), dimension(2*n), intent(out) | iperm, | ||
integer(int32), intent(out) | ierr ) |
Definition at line 499 of file sparskit.f90.