|
|
◆ SscIcSolve()
| Sub SscIcSolve |
( |
N As |
Long, |
|
|
Val() As |
Double, |
|
|
Colptr() As |
Long, |
|
|
Rowind() As |
Long, |
|
|
Idiag() As |
Long, |
|
|
B() As |
Double, |
|
|
X() As |
Double, |
|
|
Optional Info As |
Long, |
|
|
Optional ByVal Uplo As |
String = "U", |
|
|
Optional Base As |
Long = -1 |
|
) |
| |
Incomplete Cholesky decomposition preconditioner (IC) (symmetric positive definite matrix) (CSC)
- Purpose
- This routine is the incomplete Cholesky decomposition preconditioner (IC) for the symmetric positive definite coefficient matrix of the sparse linear equations. It solves the equation Mx = b, where M is the preconditioner matrix (L*D*L^T or U^T*D*U).
- Parameters
-
| [in] | N | Dimension of preconditioner matrix. (N >= 0) (if N = 0, returns without computation) |
| [in] | Val() | Array Val(LVal - 1) (LVal >= Nnz) (Nnz is number of nonzero elements)
Values of non-zero elements of preconditioner matrix. |
| [in] | Colptr() | Array Colptr(LColptr - 1) (LColptr >= N + 1)
Column pointers of preconditioner matrix. |
| [in] | Rowind() | Array Rowind(LRowind - 1) (LRowind >= Nnz)
Row indices of preconditioner matrix. |
| [in] | Idiag() | Array Idiag(LIdiag) (LIdiag >= N)
Indices of diagonal elements. |
| [in] | B() | Array B(LB - 1) (LB >= N)
Right hand side vector b. |
| [out] | X() | Array X(LX - 1) (LX >= N)
Solution vector x. |
| [out] | Info | (Optional)
= 0: Successful exit.
= i < 0: The (-i)-th argument is invalid.
= j > 0: Matrix is singular (j-th diagonal element is zero). |
| [in] | Uplo | (Optional)
= "U": Upper trianglar matrix U and diagonal matrix D are stored as the preconditioner matrix.
= "L": Lower trianglar matrix L and diagonal matrix D are stored as the preconditioner matrix.
(default = "U") |
| [in] | Base | (Optional)
Indexing of Colptr() and Rowind().
= 0: Zero-based (C style) indexing: Starting index is 0.
= 1: One-based (Fortran style) indexing: Starting index is 1.
(default: Assumes 1 if Colptr(0) = 1, 0 otherwise) |
- Example Program
- See example of SscIc0.
|