|
|
◆ ZCsxSsor()
| Sub ZCsxSsor |
( |
N As |
Long, |
|
|
Omega As |
Double, |
|
|
Val() As |
Complex, |
|
|
Ptr() As |
Long, |
|
|
Ind() As |
Long, |
|
|
D() As |
Complex, |
|
|
Optional Info As |
Long, |
|
|
Optional Base As |
Long = -1 |
|
) |
| |
Initialize symmetric successive over-relaxation (SSOR) preconditioner (Complex matrices) (CSC/CSR)
- Purpose
- This routine initializes the symmetric successive over-relaxation (SSOR) preconditioner for the coefficient matrix A of the sparse linear equations. The preconditioner matrix is defined as follows.
M(ω) = (1/(2 - ω))(D/ω + L)(D/ω)^(-1)(D/ω + U)
where L, D and U are the lower triangular part, the diagonal part and the upper triangular part of the coefficient matrix A, respectively.
The output D() is used by CscSsorSolve(), HscSsorSolve(), SscSsorSolve(), CsrSsorSolve(), HsrSsorSolve() or SsrSsorSolve().
- Parameters
-
| [in] | N | Dimension of the matrix A. (N >= 0) (if N = 0, returns without computation) |
| [in] | Omega | The relaxation parameter ω. (0 < ω < 2) |
| [in] | Val() | Array Val(LVal - 1) (LVal >= nnz)
Values of nonzero elements of matrix A. (nnz is number of non-zero elements) |
| [in] | Ptr() | Array Ptr(LPtr - 1) (LPtr >= N + 1)
Column pointers (CSC) / row pointers (CSR) of matrix A. |
| [in] | Ind() | Array Ind(LInd - 1) (LInd >= Nnz) (Nnz is number of nonzero elements of matrix A)
Row indices (CSC) / column indices (CSR) of matrix A. |
| [out] | D() | Array D(LD - 1) (LD >= N)
Diagonal elements D/ω. |
| [out] | Info | (Optional)
= 0: Successful exit.
= i < 0: The (-i)-th argument is invalid.
= j > 0: j diagonal elements are zero (Returns 1/ω in D() for such elements). |
| [in] | Base | (Optional)
Indexing of Ptr() and Ind().
= 0: Zero-based (C style) indexing: Starting index is 0.
= 1: One-based (Fortran style) indexing: Starting index is 1.
(default: Assumes 1 if Ptr(0) = 1, 0 otherwise) |
- Example Program
- See examples of ZCsrSsorSolve and ZCscSsorSolve.
|