|
|
|
This directory contains the MLD2P4 set of preconditioners, version 2.0
|
|
|
|
|
|
|
|
WHAT'S NEW
|
|
|
|
|
|
|
|
Version 2.0.
|
|
|
|
|
|
|
|
Finally moved to F2003, with the support of PSBLAS3.
|
|
|
|
There are a few minor differences at user level:
|
|
|
|
1. In the configure step, you should specify the INSTALL directory
|
|
|
|
of PSBLAS version 3, not the source directory;
|
|
|
|
2. In the various makefiles, libmld_prec.a should now be used in
|
|
|
|
addition (and in front of) libpsb_prec.a, and no longer in
|
|
|
|
place of it.
|
|
|
|
3. As for the basic usage, this is practically identical to the
|
|
|
|
previous version(s).
|
|
|
|
|
|
|
|
The Fortran 2003 support means that it is far easier to develop and
|
|
|
|
integrate new solvers and smoothers; you need to take one of the
|
|
|
|
existing solvers/smoothers as a model, develop your own by
|
|
|
|
changing/replacing the model contents, and then pass the new object
|
|
|
|
to the PREC%SET() method which will copy into the internals, as per
|
|
|
|
the PROTOTYPE design pattern. It's easier done than said!
|
|
|
|
|
|
|
|
|
|
|
|
In version 1.1:
|
|
|
|
- The MLD_SIZEOF() function has been redefined to be INTEGER(8), so
|
|
|
|
as to be able to measure large data sets.
|
|
|
|
- The internals of the multilevel preconditioner have been repackaged
|
|
|
|
in a more structured fashion; no changes are needed in the user
|
|
|
|
code.
|
|
|
|
- Note that we now need version 2.3.1 of PSBLAS.
|
|
|
|
|
|
|
|
|
|
|
|
To compile:
|
|
|
|
0. Unpack the tar file in a directory of your choice (preferrably
|
|
|
|
outside the main PSBLAS directory).
|
|
|
|
1. run configure --with-psblas=<ABSOLUTE path of the PSBLAS source directory>
|
|
|
|
adding the options for SuperLU, SuperLU_Dist, UMFPACK as desired.
|
|
|
|
2. Tweak Make.inc if you are not satisfied.
|
|
|
|
|
|
|
|
3. make;
|
|
|
|
|
|
|
|
4. Go into the test subdirectory and build the examples of your choice.
|
|
|
|
|
|
|
|
Notes:
|
|
|
|
|
|
|
|
- The single precision version is supported only by SuperLU; thus, even
|
|
|
|
if you specify at configure to use UMFPACK or SuperLU_Dist, the
|
|
|
|
corresponding preconditioner options will be available only from the
|
|
|
|
double precision version.
|
|
|
|
|
|
|
|
- The Krylov methods are linked and recompiled from the PSBLAS source
|
|
|
|
directory; thus we define here two libraries, libmld_krylov.a and
|
|
|
|
libmld_prec.a, and a bunch of modules, including a duplicate of
|
|
|
|
psb_krylov_mod.mod. The directories for the MLD2P4 versions, in both
|
|
|
|
the include and link paths, must come before the PSBLAS ones,
|
|
|
|
because the Krylov interface is superseded by the new one.
|
|
|
|
Once the CLASS() construct becomes available in Gnu Fortran, this
|
|
|
|
will no longer be necessary, and the duplicate Krylov library and
|
|
|
|
module will go away, leaving only the mld_prec library and module.
|
|
|
|
|
|
|
|
- A program that was using the PSBLAS precoditioners needs no source
|
|
|
|
code changes, but should be recompiled. If the new preconditioner
|
|
|
|
(or preconditioner options, such as ILU(N) factorization) are
|
|
|
|
required, only the type of the preconditioner object and its
|
|
|
|
setup/build/free calls should be updated; the rest of the
|
|
|
|
application continues to make use of the PSBLAS existing
|
|
|
|
interfaces.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CREDITS
|
|
|
|
|
|
|
|
developed by
|
|
|
|
Salvatore Filippone
|
|
|
|
Pasqua D'Ambra
|
|
|
|
Daniela di Serafino
|
|
|
|
Alfredo Buttari
|