CXML
ditsol_driver
Driver for sparse iterative solvers (Serial and Parallel
Versions)
FORMAT
DITSOL_DRIVER (dmatvec_driver, dpcondl_driver, dpcondr_driver, mstop, a,
ia, x, b, n,
ql, iql , qr, iqr, iparam, rparam, iwork, rwork, ierror)
Arguments
DITSOL_DRIVER has the standard parameter list for an iterative solver, with
the exception of the first three arguments which must be DMATVEC_DRIVER,
DPCONDL_DRIVER and DPCONDR_DRIVER. These must be declared external in your
calling (sub)program.
Description
DITSOL_DRIVER solves the system of linear equations
A * x = b
using one of the six iterative methods provided in CXML. By a suitable
choice of the variables isolve, istore and iprec in the array IPARAM, an
appropriate solver, storage scheme and preconditioner are selected. The
preconditioner must be created in the appropriate storage scheme, prior to
the call to the driver routine.
The following table shows the preconditioning options and the
perconditioners that are permitted.
Preconditioner Left Right Split SPD Split
Diagonal X X X
Polynomial X X X
ILU X X X X
The preconditioning options applicable to the various iterative solvers are
summarized in Table 12.8.
The following table shows the real workspace requirements nrwk for each
method and the corresponding preconditioning option.
Method None Left Right Split
DITSOL_PCG 3n 4n (SPD split)
DITSOL_PLSCG 4n 5n 5n 6n
DITSOL_PBCG 5n 7n 6n 7n
DITSOL_PCGS 6n 7n 6n 7n
DITSOL_PGMRES nrwk1 nrwk1+n nrwk1+n nrwk1+n
DITSOL_PTFQMR 7n 8n 8n 9n
In DITSOL_PGMRES, nrwk1=n*(kprev+1)+kprev*(kprev+5)+1 where kprev is the
number of previous vectors stored. If ILU preconditioning is used, then an
additional real workspace of length n is required.
If you use the option of defining your own MSTOP routine, see the reference
description of each solver for the definition of the vector z.
This routine is available in both serial and parallel versions. The routine
names and parameter list are identical for both versions. For information
about linking to the serial or to the parallel library, refer to the CXML
Reference Manual.
CXML Home Page Index of CXML Routines