CXML
dapply_ilu_sdia
Apply ILU preconditioner for symmetric diagonal storage
FORMAT
DAPPLY_ILU_SDIA (job, p, ip, ndim, nz, x, y, n)
Arguments
job integer*4
On entry, defines the operation to be performed. If the
lower triangular part of the matrix A is stored, the
preconditioner is of the form L * transp(L), where L
is a lower triangular matrix. In this case:
job = 0 : y = inverse(L) * x
job = 1 : y = inverse(transp(L)) * x
If the upper triangular part of the matrix A is stored,
the preconditioner is of the form transp(U) * U, where
U is an upper triangular matrix. In this case:
job = 0 : y = inverse(U) * x
job = 1 : y = inverse(transp(U)) * x
On exit, job is unchanged.
p real*8
On entry, a two-dimensional array with dimensions ndim
by nz containing information for use by the Incomplete
Cholesky preconditioner.
On exit, p is unchanged.
ip integer*4
On entry, a one-dimensional array of length at least
nz, containing the distances of the diagonals in array
P from the main diagonal.
On exit, ip is unchanged.
ndim integer*4
On entry, the leading dimension of array A, as declared
in the calling subprogram; ndim >= n.
On exit, ndim is unchanged.
nz integer*4
On entry, the number of diagonals stored in array P.
On exit, nz is unchanged.
x real*8
On entry, a one-dimensional array of length at least n,
containing the elements of vector x, accessed with unit
increment.
On exit, x is unchanged.
y real*8
On entry, a one-dimensional array of length at least n.
On exit, array Y is overwritten by the output vector y.
The elements of array Y are accessed with unit
increment.
n integer*4
On entry, the order of the matrix A.
On exit, n is unchanged.
Description
DAPPLY_ILU_SDIA applies the Incomplete Cholesky preconditioner for a sparse
matrix stored using the symmetric diagonal storage scheme. The input
arrays, P and IP, contain information for use by the routine. These arrays
are generated by a call to the routine DCREATE_ILU_SDIA prior to a call to
one of the iterative solvers with Incomplete Cholesky preconditioning.
Depending on the value of the input parameter job, DAPPLY_ILU_SDIA operates
on either the matrix or its transpose. The symmetric diagonal storage
scheme, SDIA, allows either the lower or upper triangular part of the
matrix to be stored. If the lower triangular part is stored, the routine
DCREATE_ILU_SDIA creates the incomplete Cholesky preconditioner in the form
L* transp(L), where L is a lower triangular matrix. In this case, job = 0
implies
y = inverse(L) * x
and job = 1 implies
y = inverse(trans(L)) * x.
If the upper triangular part of the matrix A is stored, the routine
DCREATE_ILU_SDIA creates the incomplete Cholesky preconditioner in the form
transp(U) * U, where U is an upper triangular matrix. In this case, job = 0
implies
y = inverse(U) * x
and job = 1 implies
y = inverse(transp(U)) * x.
CXML Home Page Index of CXML Routines