HP MLIB User's Guide Vol. 2 7th Ed.

884 HP MLIB User’s Guide
What you need to know to use these subprograms
Output controls
This package differs from most library subroutines in providing optional
printed or printable output. The amount of output is controlled by an integer
variable, msglvl, specifying the message level. Setting msglvl 0 suppresses all
printed messages, including error messages, and should generally be avoided.
When
msglvl = 1, some runtime statistics and any error messages are printed.
When
msglvl > 1, the complete set of runtime statistics are printed. If
msglvl 3, various arrays whose length is on the order of the number of
equations are printed. If msglvl 4, volumes of output are produced for
debugging purposes.
It is recommend that you set msglvl = 1. The higher msglvl values ( 3) are
intended for debugging purposes and generate copious amounts of printed
output. Further, their use for this purpose may require some knowledge of the
data structures being used by the package.
Paths of control
The key to using this package efficiently is to understand the possibilities for
reusing work. As in solving dense linear systems, factored matrices can be
reused as often as needed to solve additional systems. Thus, the subprogram
DSLESL can be called repeatedly to solve additional systems with the same
coefficient matrix after subprogram DSLEFA or DSLEFS has completed
successfully. It is common to encounter sequences of sparse linear systems
where the coefficient matrices change, but their sparsity structure, that is, the
location of the nonzeros, remains fixed. In such cases, it is necessary to compute
a factorization with DSLEFA for each coefficient matrix, but the work of
choosing a reordering does not have to be repeated. The possible structures of
reuse are illustrated in the following text, Figure 13-4, and Figure 13-5:
initialization
input matrix structure
reorder matrix
for m = 1 to number_of_structurally_identical_coefficient_matrices do
input values of matrix entries
factor matrix
for r = 1 to
number_of_right_hand_sides_for_this_coefficient_matrix do
solve
endfor
endfor
Note that entering matrix values for a new coefficient matrix renders the
previously computed factorization inaccessible. Similarly, entering matrix
structure renders any previously reordered matrix structure inaccessible.
However, the save and restart capabilities described in the utility subprograms