Next: Workspace Requirements
Up: ITPACKV 2D User's Guide
Previous: Usage
Parameter Arrays
The user must call subroutine DFAULT() prior to calling one of the
ITPACKV iterative solution modules. The routine DFAULT() fills
parameter arrays IPARM(*) and RPARM(*) with default values
and has the syntax
CALL DFAULT (IPARM, RPARM)
The user may supply nondefault values for selected quantities in
IPARM(*) and
RPARM(*) by first calling
DFAULT() and
then assigning the appropriate nondefault values before calling a
solution module of ITPACKV. Important variables in this package which
may change adaptively are CME (estimate of M(B), the largest
eigenvalue of the Jacobi matrix), SME (estimate of m(B), the
smallest eigenvalue of the Jacobi matrix), OMEGA (overrelaxation
parameter for the SOR and SSOR methods), SPECR (estimate of the
spectral radius of the SSOR matrix), BETAB (estimate of the
spectral radius of the matrix LU, where L and U are strictly
lower and upper triangular matrices, respectively, such that the Jacobi
matrix B=L+U).
The integer array IPARM(*) and the real array RPARM(*) allow
the user to control certain parameters which affect the performance
of the iterative algorithms. Furthermore, these arrays allow the
updated parameters from the automatic adaptive procedures to be
communicated back to the user. The entries in IPARM(*) and
RPARM(*) are
- IPARM(1)
- ITMAX is the maximum number of iterations
allowed. It is reset on output to the number of
iterations performed. Default: 100
- IPARM(2)
- LEVEL is used to control the level of output.
Each higher value provides additional information.
Default: 0
[<0: |
no output on unit IPARM(4); |
0: |
fatal error messages only; |
1: |
warning messages and minimum output; |
2: |
reasonable summary (progress of algorithm); |
3: |
parameter values and informative comments; |
4: |
approximate solution after each iteration
(primarily useful for debugging); |
5: |
original system] |
- IPARM(3)
- IRESET is the communication switch. Default: 0
[0: |
implies certain values of IPARM(*) and
RPARM(*) will be overwritten |
|
to communicate parameters back to the user; |
: |
only IPARM(1) and IPARM(8)
will be reset.] |
- IPARM(4)
- NOUT is the output unit number. Default: 6
- IPARM(5)
- ISYM is the symmetric matrix switch.
Default: 0
[0: |
the matrix is symmetric; |
1: |
the matrix is nonsymmetric] |
- IPARM(6)
- IADAPT is the adaptive switch. It determines
whether certain parameters have been set by the user or
should be computed automatically in either a fully
or partially adaptive sense. Default: 1
[0: |
fixed iterative parameters used for SME,
CME, OMEGA, SPECR, and |
|
BETAB (nonadaptive); |
1: |
fully adaptive procedures used for all parameters; |
2: |
(SSOR methods only) SPECR determined
adaptively and CME, BETAB, |
|
and OMEGA fixed; |
3: |
(SSOR methods only) BETAB fixed and all other
parameters determined |
|
adaptively] |
(See [1,2] for details and
for CME, SME, OMEGA, SPECR,
BETAB, respectively. These parameters are set
by subroutine DFAULT() or by the user.)
- IPARM(7)
- ICASE is the adaptive procedure case switch for the
JSI and SSOR methods. There are two strategies, called
Case I and Case II, for doing the adaptive procedure.
The choice of which case to select corresponds to knowledge
of the eigenvalues of the Jacobi matrix B and their
estimates. Default: 1
[ |
Case I: Fixed
(general case); |
=2 |
Case II: Use when it is known that
![$\vert m(B)\vert \leq M(B)]$](img14.gif) |
The case switch determines how the estimates for
SME and CME are recomputed adaptively. In
Case I, SME is fixed throughout and should be less
than or equal to m(B). In Case II, SME is set
to
which may adaptively change. As far as
the adaptive procedure is concerned, Case I is the most
general case and should be specified in the absence of
specific knowledge of the relationship between the
eigenvalues and their estimates. An example when Case II
is appropriate occurs when the Jacobi matrix has
Property A, since
m(B) = -M(B).4 Also, if A is an L-matrix,
then for the Jacobi matrix, we have
and SME is always
(Case II).
5 Selecting the
correct case may increase the rate of convergence of
the iterative method. (See [2] for additional
discussion on Case I and II. Also, see
for CME, SME,
respectively.)
- IPARM(8)
- NWKSP is the amount of workspace used. It is used
for output only. If ITMAX is set to a value just
over the actual number of iterations necessary for
convergence, the amount of memory for WKSP(*) can
be reduced to just over the value returned here. This
may be done when rerunning a problem, for example.
Default: 0
- IPARM(9)
- NB is the red-black ordering switch. On output,
if reindexing is done, NB is set to the order of
the black subsystem. Default: -2
-2: |
skip indexing--system already in
desired form and is not red-black. |
-1: |
compute red-black indexing and permute
system; |
: |
skip indexing--system already in red-black
form, with NB |
|
as the order of the black subsystem. |
- IPARM(10)
- IREMOVE is the switch for effectively removing
rows and columns when the diagonal entry is extremely
large compared to the nonzero off-diagonal entries in
that row. (See RPARM(8) for additional details.)
Default: 0
[0: not done;
:
test done]
- IPARM(11)
- ITIME is the timing switch. Default: 0
[0: time method;
:
not done]
- IPARM(12)
- IDGTS is the error analysis switch. It determines
if an analysis is done to determine the accuracy
of the final computed solution. Default: 0
[<0: |
skip error analysis |
0: |
compute DIGIT1 and DIGIT2 and
store in
, |
|
respectively; |
1: |
print DIGIT1 and DIGIT2; |
2: |
print final approximate solution vector; |
3: |
print final approximate residual vector; |
4: |
print both solution and residual vectors; |
|
otherwise: no printing] |
(If
,
no printing is done. See
for details on DIGIT1
and DIGIT2.)
- RPARM(1)
- ZETA is the stopping criterion or approximate
relative accuracy desired in the final computed solution.
If the method did not converge in IPARM(1)
iterations, RPARM(1) is reset to an estimate of
the relative accuracy achieved. The stopping criterion
is a test of whether ZETA is greater than the
ratio of the two norm of the pseudo-residual vector and
the two norm of the current iteration vector times a
constant involving an eigenvalue estimate. (See [1,2]
for details.) Default:
- RPARM(2)
- CME is the estimate of the largest eigenvalue of
the Jacobi matrix. It changes to a new estimate if the
adaptive procedure is used.
.
Default: 0.0
- RPARM(3)
- SME is the estimate of the smallest eigenvalue of
the Jacobi matrix for the JSI method. In Case I,
SME is fixed throughout at a value
.
In Case II, SME is always set to
with CME changing in the adaptive procedure. (See
IPARM(7) for definitions of Case I and II.)
Default: 0.0
- RPARM(4)
- FF is the adaptive procedure damping factor. Its
values are in the interval (0.,1.] with 1. causing
the most frequent parameter changes when the fully
adaptive switch
is used.
Default: 0.75
- RPARM(5)
- OMEGA is the overrelaxation parameter for the SOR
and the SSOR methods. If the method is fully adaptive,
OMEGA changes. Default: 1.0
- RPARM(6)
- SPECR is the estimated spectral radius for the
SSOR matrix. If the method is adaptive, SPECR
changes. Default: 0.0
- RPARM(7)
- BETAB is the estimate for the spectral radius of the
matrix LU used in the SSOR methods. BETAB may
change depending on the adaptive switch IPARM(6).
The matrix L is the strictly lower triangular part of
the Jacobi matrix and U is the strictly upper triangular
part. When the spectral radius of LU is less than or
equal to
,
the ``SSOR condition" is satisfied
for some problems provided one uses the natural ordering.
(See [1,11] for additional details.) Default: 0.25.
- RPARM(8)
- TOL is the tolerance factor near machine relative
precision, SRELPR. In each row, if all nonzero
off-diagonal row entries are less than TOL times
the value of the diagonal entry, then this row and
corresponding column are essentially removed from the
system. This is done by setting the nonzero off-diagonal
elements in the row and corresponding column to zero,
replacing the diagonal element with 1, and adjusting
the elements on the right-hand side of the system so that
the new system is equivalent to to the original one.
6
If the diagonal entry is the only nonzero
element in a row and is not greater than the reciprocal
of TOL, then no elimination is done. This procedure
is useful for linear systems arising from finite element
discretizations of PDEs in which Dirichlet boundary
conditions are handled by giving the diagonal values in
the linear system extremely large values. (The installer
of this package should set the value of SRELPR.
See comments in subroutine DFAULT() and
Section 10 for additional details.) Default:
- RPARM(9)
- TIME1 is the total time in seconds from the beginning
of the iterative algorithm until convergence. (A machine
dependent subprogram call for returning the time in
seconds is provided by the installer of this package.)
Default: 0.0
- RPARM(10)
- TIME2 is the total time in seconds for the entire
call. Default: 0.0
- RPARM(11)
- DIGIT1 is the approximate number of digits using
the estimated relative error with the final approximate
solution. It is computed as the negative of the logarithm
base ten of the final value of the stopping test. (See
details below or [2].) Default: 0.0
- RPARM(12)
- DIGIT2 is the approximate number of digits using
the estimated relative residual with the final approximate
solution. It is computed as the negative of the logarithm
base ten of the ratio of the two norm of the residual
vector and the two norm of the right-hand side vector.
This estimate is related to the condition number of the
original linear system and, therefore, it will not be
accurate if the system is ill-conditioned. (See details
below or [2].) Default: 0.0
DIGIT1 is determined from the actual stopping test computed on
the final iteration, whereas DIGIT2 is based on the computed
residual vector using the final approximate solution after the algorithm
has converged. If these values differ greatly, then either the stopping
test has not worked successfully or the original system is ill-conditioned.
(See [2] for additional details.)
Next: Workspace Requirements
Up: ITPACKV 2D User's Guide
Previous: Usage