Next: Usage
Up: ITPACKV 2D User's Guide
Previous: Applicability
Sparse Matrix Storage
There are two rectangular arrays, one real and one integer, which are
used to store a representation of the coefficient matrix. Both arrays
are of size at least N by MAXNZ, where N is the number of
linear equations and MAXNZ is the maximum number of nonzeros per
row in the matrix, with the maximum being taken over all rows. Each row
in COEF(*,*) will contain the nonzeros of the respective row in
the full matrix A, and the corresponding row in JCOEF(*,*) will
contain its respective column numbers.
For example, the matrix
would be represented in the COEF(*,*) and JCOEF(*,*)
arrays as
There are several remarks which should be made:
- 1.
- If a row in the matrix A has fewer than MAXNZ
nonzeros, the corresponding rows in COEF(*,*) and
JCOEF(*,*) should be padded with zeros.
- 2.
- The nonzero entries in a given row of COEF(*,*) may appear
in any order. However, if the diagonal element is not in
column 1, then ITPACKV will place it there without returning
it to its original position upon exiting.
- 3.
- The diagonal element of each row should be positive. If
a diagonal element is negative, ITPACKV will reverse the
signs of all entries corresponding to this equation.
Since this may result in a loss of symmetry of the system,
convergence may be adversely affected. Hence it is better
if the user enters the matrix with positive diagonal elements.
- 4.
- In ITPACKV 2D, all nonzero matrix entries must be present
even if the matrix is symmetric. It does not suffice
to store just the upper or lower triangle of the matrix A.
Next: Usage
Up: ITPACKV 2D User's Guide
Previous: Applicability