Next: Parameter Arrays
Up: ITPACKV 2D User's Guide
Previous: Sparse Matrix Storage
Usage
The user is expected to provide the coefficient matrix, the right hand
side, an initial guess to the solution, and various integer and real
workspace arrays.
The calling sequence is
CALL
method
(N, NDIM, MAXNZ, JCOEF, COEF,
RHS, U, IWKSP, NW,
WKSP, IPARM, RPARM, IER)
where
method
is one of
JCG |
Jacobi Conjugate Gradient |
JSI |
Jacobi Semi-Iteration |
SOR |
Successive Overrelaxation |
SSORCG |
Symmetric SOR Conjugate Gradient |
SSORSI |
Symmetric SOR Semi-Iteration |
RSCG |
Reduced System Conjugate Gradient |
RSSI |
Reduced System Semi-Iteration |
and where the remaining parameters are defined in the following. Here
``input" means that the subroutine expects the user to provide the
necessary input data and ``output" means that the routine passes back
information in the variable or array indicated. All parameters are
arrays except variables N, NDIM, MAXNZ,
NW, and IER. Moreover, all parameters may be altered by
the subroutine call except variables N, NDIM, and NW.
(See Section 9 for additional details.)
- N
- is the order of the linear system. [integer; input]
- NDIM
- is the row dimension of the arrays COEF(*,*) and
JCOEF(*,*) in the routine first defining them.
Note that
.
[integer; input]
- MAXNZ
- is the maximum number of nonzero elements per row over
all rows in the matrix A. [integer; input]
- JCOEF(*,*)
- is a rectangular array of dimension NDIM by
MAXNZ containing the column numbers of the
matrix coefficients given in the corresponding
locations in COEF(*,*). [integer array; input]
- COEF(*,*)
- is a rectangular array of dimension NDIM by
MAXNZ containing the nonzero matrix coefficients.
[real array; input]
- RHS(*)
- is a vector of length N containing the right-hand side
of the linear system. [real array; input]
- U(*)
- is a vector of length N containing the initial guess
to the solution of the linear system on input and the
latest approximate solution on output. Note that U(*)
may be filled with zeros if no initial guess is known by
making a call to VFILL() prior to calling an ITPACKV
solution module. See Section 8 for details.
[real array; input/output]
- IWKSP(*)
- is a vector of length
used for integer workspace.
When reindexing for red-black ordering, the first
N locations contain on output the permutation
vector for the red-black indexing, the next N
locations contain its inverse, and the last N
are used for integer workspace.3
[integer array; output]
- NW
- is a scalar. On input, NW is the available length for
WKSP(*). On output, IPARM(8) is the actual
amount used (or needed). [integer; input]
- WKSP(*)
- is a vector used for real working space whose length depends
on the iterative method being used. It must be at least
NW entries long. (See Section 6 for the
required amount of workspace for each method.) [real array]
- IPARM(*)
- is a vector of length 12 used to initialize various
integer and logical parameters. Default values may be
set by calling subroutine DFAULT() described
in Section 5. On output, IPARM(*)
contains the values of the parameters that were changed.
(Further details are given later in
Section 5.) [integer array; input/output]
- RPARM(*)
- is a vector of length 12 used to initialize various real
parameters on input. Default values may be set by
calling subroutine DFAULT() described in
Section 5. On output, RPARM(*) contains
the final values of the parameters that were changed.
(Further details are given later in Section 5.)
[real array; input/output]
- IER
- is the error flag which is set to zero for normal convergence
and to a nonzero integer when an error condition is present.
(See Section 7 for the meaning of nonzero values.)
[integer; output]
Next: Parameter Arrays
Up: ITPACKV 2D User's Guide
Previous: Sparse Matrix Storage