Next: Installation Guide
Up: ITPACKV 2D User's Guide
Previous: Use of Subroutine VFILL
Notes on Use
Each of the ITPACKV solution modules scales the linear system to a
unit diagonal system prior to iterating and unscales it upon
termination. This reduces the number of arithmetic operations, but it
may introduce small changes in the coefficient matrix COEF(*,*)
and the right hand side vector RHS(*) due to round-off errors in
the computer arithmetic. The scaling involves the diagonal matrix
of square roots of the diagonal entries of the linear system,
that is,
The algorithms iterate until convergence is reached based on the
relative accuracy requested via the stopping criterion set in RPARM(1)
for the scaled solution vector
. Unscaling solves for u and
returns the linear system to its original form subject to roundoff
errors in the arithmetic.
When requested, a red-black permutation of the linear system will be
done before and after the iterative algorithm is called. Otherwise,
the linear system is used in the order it is given.
If SOR(), SSORCG(), or SSORSI() is called, ITPACKV
will attempt to segregate the parts of COEF(*,*) and
JCOEF(*,*) corresponding to the upper and lower triangular parts
of the matrix A into separate columns. Since this will in general
take more storage, it may not be possible if MAXNZ (the column
dimension of COEF(*,*) and JCOEF(*,*)) is too small. In
this case the algorithms will operate on the existing data structure,
but performance will be degraded. Segregation of L and U increases
the vectorizability of these algorithms. In the case that red-black
ordering is used with SOR(), SSORCG(), or SSORSI(),
then no attempt to segregate L and U is made.
The Successive Overrelaxation (SOR) method has been shown to be more
effective with the red-black ordering than with the natural ordering
for some problems. In the SOR algorithm, the first iteration uses
and the stopping criterion is set to a large value so that
at least one Gauss-Seidel iteration is performed before an approximate
value for the optimum relaxation parameter is computed.
Optional features of this package are red-black ordering, effective
removal of rows and columns when the diagonal entry is extremely large,
and error analysis. In the event that one is not using some of these
options and needs additional memory space for a very large linear
system, the relevant subroutines which can be replaced with dummy
subroutines are as follows: red-black ordering [PRBNDX(),
PERMAT(), PERVEC()], removal of rows [SBELM()],
error analysis [PERROR()].
The iterative algorithms used in ITPACKV are quite complicated and
some knowledge of iterative methods is necessary to completely
understand them. The interested reader should consult the references
for details of the algorithms.
Next: Installation Guide
Up: ITPACKV 2D User's Guide
Previous: Use of Subroutine VFILL