mld2p4-2:

docs/html/userhtml.html
 docs/mld2p4-2.1-guide.pdf
 docs/src/abstract.tex
 docs/src/background.tex
 docs/src/bibliography.tex
 docs/src/building.tex
 docs/src/distribution.tex
 docs/src/gettingstarted.tex
 docs/src/overview.tex
 docs/src/userguide.tex
 docs/src/userinterface.tex
 mlprec/impl/mld_ccprecset.F90
 mlprec/impl/mld_cprecset.F90
 mlprec/impl/mld_csp_renum.f90
 mlprec/impl/mld_dcprecset.F90
 mlprec/impl/mld_dprecset.F90
 mlprec/impl/mld_dsp_renum.f90
 mlprec/impl/mld_scprecset.F90
 mlprec/impl/mld_sprecset.F90
 mlprec/impl/mld_ssp_renum.f90
 mlprec/impl/mld_z_onelev_impl.f90
 mlprec/impl/mld_zcprecset.F90
 mlprec/impl/mld_zprecset.F90
 mlprec/impl/mld_zsp_renum.f90
 mlprec/mld_base_prec_type.F90

Take out SUB_REN.
Update docs.
This commit is contained in:
Salvatore Filippone
2017-04-18 13:48:34 +00:00
parent 4304f1e2c9
commit 816047d48c
163 changed files with 7987 additions and 9042 deletions
+70 -72
View File
@@ -26,26 +26,26 @@ original version by: Nikos Drakos, CBLU, University of Leeds
<BODY >
<!--Navigation Panel-->
<A NAME="tex2html102"
<A NAME="tex2html113"
HREF="node4.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html98"
<A NAME="tex2html109"
HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html92"
<A NAME="tex2html103"
HREF="node2.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html100"
<A NAME="tex2html111"
HREF="node2.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html103"
<B> Next:</B> <A NAME="tex2html114"
HREF="node4.html">Code Distribution</A>
<B> Up:</B> <A NAME="tex2html99"
<B> Up:</B> <A NAME="tex2html110"
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html93"
<B> Previous:</B> <A NAME="tex2html104"
HREF="node2.html">Contents</A>
&nbsp; <B> <A NAME="tex2html101"
&nbsp; <B> <A NAME="tex2html112"
HREF="node2.html">Contents</A></B>
<BR>
<BR>
@@ -58,8 +58,11 @@ General Overview
<P>
The M<SMALL>ULTI-</SMALL>L<SMALL>EVEL </SMALL>D<SMALL>OMAIN </SMALL>D<SMALL>ECOMPOSITION </SMALL>P<SMALL>ARALLEL </SMALL>P<SMALL>RECONDITIONERS </SMALL>P<SMALL>ACKAGE BASED ON
</SMALL>PSBLAS (MLD2P4) provides <I>multi-level Schwarz preconditioners</I>&nbsp;[<A
HREF="node27.html#dd2_96">23</A>],
</SMALL>PSBLAS (MLD2P4) provides parallel Algebraic MultiGrid (AMG) and domain decomposition
preconditioners, designed to provide scalable and easy-to-use preconditioners
multi-level Schwarz preconditioners&nbsp;[<A
HREF="node28.html#Stuben_01">25</A>,<A
HREF="node28.html#dd2_96">23</A>],
to be used in the iterative solutions of sparse linear systems:
<BR>
<DIV ALIGN="RIGHT">
@@ -83,116 +86,111 @@ Ax=b,
where <IMG
WIDTH="18" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img2.png"
ALT="$A$"> is a square, real or complex, sparse matrix with a symmetric
sparsity pattern. These preconditioners have the following general features:
<UL>
<LI>both <I>additive and hybrid multilevel</I> variants are implemented,
i.e. variants that are additive among the levels and inside each level, and variants
that are multiplicative among the levels and additive inside each level;
the basic Additive Schwarz (AS) preconditioners are obtained by considering only one level;
</LI>
<LI>a <I>purely algebraic</I> approach is used to
generate a sequence of coarse-level corrections to a basic AS preconditioner, without
explicitly using any information on the geometry of the original problem (e.g. the
discretization of a PDE). The <I>smoothed aggregation</I> technique is applied
ALT="$A$"> is a square, real or complex, sparse matrix. Multi-level preconditioners can be obtained by combining several AMG cycles (V, W, K) with
different smoothers (Jacobi, hybrid forward/backward Gauss-Seidel, block-Jacobi, additive Schwarz methods).
An algebraic approach is used to
generate a hierarchy of coarse-level matrices and operators, without
explicitly using any information on the geometry of the original problem, e.g.,
the discretization of a PDE. The smoothed aggregation technique is applied
as algebraic coarsening strategy&nbsp;[<A
HREF="node27.html#BREZINA_VANEK">1</A>,<A
HREF="node27.html#VANEK_MANDEL_BREZINA">27</A>].
</LI>
</UL>
HREF="node28.html#BREZINA_VANEK">1</A>,<A
HREF="node28.html#VANEK_MANDEL_BREZINA">27</A>].
Either exact or approximate solvers are available to solve the coarsest-level system. Specifically,
different versions of sparse LU factorizations from external packages, and native incomplete
LU factorizations and iterative block-Jacobi solvers can be used.
All smoothers can be also exploited as one-level preconditioners.
<P>
Version 2.1 of the package is written in <I>Fortran&nbsp;2003</I>, following an
<I>object-oriented design</I> through the exploitation of features
such as abstract data type creation, functional overloading and
dynamic memory management. The parallel implementation is based on a Single Program Multiple Data
(SPMD) paradigm for distributed-memory architectures. Single and
MLD2P4 is written in Fortran&nbsp;2003, following an
object-oriented design through the exploitation of features
such as abstract data type creation, functional overloading, and
dynamic memory management.
The parallel implementation is based on a Single Program Multiple Data
(SPMD) paradigm. Single and
double precision implementations of MLD2P4 are available for both the
real and the complex case, that can be used through a single
real and the complex case, which can be used through a single
interface.
<P>
MLD2P4 has been designed to implement scalable and easy-to-use
multilevel preconditioners in the context of the <I>PSBLAS
(Parallel Sparse BLAS) computational framework</I>&nbsp;[<A
HREF="node27.html#psblas_00">18</A>,<A
HREF="node27.html#PSBLAS3">17</A>].
PSBLAS is a library originally developed to address the parallel implementation of
iterative solvers for sparse linear system, by providing basic linear algebra
operators and data management facilities for distributed sparse matrices; it
also includes parallel Krylov solvers, built on the top of the basic PSBLAS kernels.
The preconditioners available in MLD2P4 can be used with these Krylov solvers.
multilevel preconditioners in the context of the PSBLAS
(Parallel Sparse BLAS) computational framework&nbsp;[<A
HREF="node28.html#psblas_00">18</A>,<A
HREF="node28.html#PSBLAS3">17</A>].
PSBLAS provides basic linear algebra
operators and data management facilities for distributed sparse matrices,
as well as parallel Krylov solvers which can be coupled with the MLD2P4 preconditioners.
The choice of PSBLAS has been mainly motivated by the need of having
a portable and efficient software infrastructure implementing ``de facto'' standard
parallel sparse linear algebra kernels, to pursue goals such as performance,
portability, modularity ed extensibility in the development of the preconditioner
package. On the other hand, the implementation of MLD2P4 has led to some
revisions and extentions of the PSBLAS kernels, leading to the
PSBLAS 2.0 version&nbsp;[<A
HREF="node27.html#PSBLASGUIDE">16</A>]. The inter-process comunication required
revisions and extentions of the original PSBLAS kernels.
The inter-process comunication required
by MLD2P4 is encapsulated into the PSBLAS routines, except few cases where
MPI&nbsp;[<A
HREF="node27.html#MPI1">24</A>] is explicitly called. Therefore, MLD2P4 can be run on any parallel
HREF="node28.html#MPI1">24</A>] is explicitly called <B>&#201; ancora cosi???</B>. Therefore, MLD2P4 can be run on any parallel
machine where PSBLAS and MPI implementations are available.
<P>
MLD2P4 has a layered and modular software architecture where three main layers can be identified.
The lower layer consists of the PSBLAS kernels, the middle one implements
the construction and application phases of the preconditioners, and the upper one
provides a uniform and easy-to-use interface to all the preconditioners.
provides a uniform interface to all the preconditioners.
This architecture allows for different levels of use of the package:
few black-box routines at the upper layer allow non-expert users to easily
build any preconditioner available in MLD2P4 and to apply it within a PSBLAS Krylov solver.
On the other hand, the routines of the middle and lower layer can be used and extended
by expert users to build new versions of multi-level Schwarz preconditioners.
We provide here a description of the upper-layer routines, but not of the
medium-layer ones.
build any preconditioner available in MLD2P4 and to apply it within a PSBLAS Krylov solver;
<B>facilities are also available that allow more expert users to extend the set of smoothers
and solvers for building new versions of preconditioners.</B>
<P>
The user interface of version 2.1 is essentially identical (except for
the support of additional solvers) to that of
version 1.1. The internal implementation however has been changed
significantly; as a result, it has become much easier to extend the library by
adding new smoothers and/or solvers, thanks to the Fortran&nbsp;2003 features
exploited in the design of PSBLAS&nbsp;3.
We note that the user interface of MLD2P4 2.1 (<B>Perche 2.1 e non 2.0???...Ricordarsi di cambiare il configure</B>)
has been extended with respect to the previous versions
in order to separate the construction
of the multi-level hierarchy from the construction of the smoothers and solvers, and to allow for more flexibility
at each level.
The software architecture described in&nbsp;[<A
HREF="node28.html#MLD2P4_TOMS">8</A>] has significantly evolved too, in order to fully exploit the
Fortran&nbsp;2003 features implemented in PSBLAS 3.
However, compatibility with previous versions has been preserved.
<P>
This guide is organized as follows. General information on the distribution of the source code
is reported in Section&nbsp;<A HREF="node4.html#sec:distribution">2</A>, while details on the configuration
and installation of the package are given in Section&nbsp;<A HREF="node5.html#sec:building">3</A>. A description of
multi-level Schwarz preconditioners based on smoothed aggregation is provided
in Section&nbsp;<A HREF="node11.html#sec:background">4</A>, to help the users in choosing among the different preconditioners
implemented in MLD2P4. The basics for building and applying the preconditioners
and installation of the package are given in Section&nbsp;<A HREF="node5.html#sec:building">3</A>. A short description of
the preconditioners implemented in MLD2P4 is provided
in Section&nbsp;<A HREF="node11.html#sec:background">4</A>, to help the users in choosing among them.
The basics for building and applying the preconditioners
with the Krylov solvers implemented in PSBLAS are reported in Section&nbsp;<A HREF="node14.html#sec:started">5</A>, where the
Fortran codes of a few sample programs are also shown. A reference guide for
the upper-layer routines of MLD2P4, that are the user interface, is provided
in Section&nbsp;<A HREF="node16.html#sec:userinterface">6</A>. The error handling mechanism used by the package is briefly described
in Section&nbsp;<A HREF="node25.html#sec:errors">7</A>. The copyright terms concerning the distribution and modification
of MLD2P4 are reported in Appendix&nbsp;<A HREF="node26.html#sec:license">A</A>.
in Section&nbsp;<A HREF="node26.html#sec:errors">8</A>. The copyright terms concerning the distribution and modification
of MLD2P4 are reported in Appendix&nbsp;<A HREF="node27.html#sec:license">A</A>.
<P>
<HR>
<!--Navigation Panel-->
<A NAME="tex2html102"
<A NAME="tex2html113"
HREF="node4.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html98"
<A NAME="tex2html109"
HREF="userhtml.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html92"
<A NAME="tex2html103"
HREF="node2.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html100"
<A NAME="tex2html111"
HREF="node2.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html103"
<B> Next:</B> <A NAME="tex2html114"
HREF="node4.html">Code Distribution</A>
<B> Up:</B> <A NAME="tex2html99"
<B> Up:</B> <A NAME="tex2html110"
HREF="userhtml.html">userhtml</A>
<B> Previous:</B> <A NAME="tex2html93"
<B> Previous:</B> <A NAME="tex2html104"
HREF="node2.html">Contents</A>
&nbsp; <B> <A NAME="tex2html101"
&nbsp; <B> <A NAME="tex2html112"
HREF="node2.html">Contents</A></B>
<!--End of Navigation Panel-->