next up previous
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 $D^{\frac{1}{2}}$ of square roots of the diagonal entries of the linear system, that is,

\begin{displaymath}(D^{-\frac{1}{2}}AD^{-\frac{1}{2}})(D^{\frac{1}{2}}u) = (D^{-\frac{1}{2}}b). \end{displaymath}

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 $(D^{\frac{1}{2}}u)$. 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 $\omega=1$ 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 up previous
Next: Installation Guide Up: ITPACKV 2D User's Guide Previous: Use of Subroutine VFILL