mld2p4-2:

Further  update of documentation.
stopcriterion
Salvatore Filippone 12 years ago
parent ab453d36da
commit f1b55ba552

@ -1,12 +1,13 @@
MLD2P4 version 1.1
MLD2P4 version 2.0
MultiLevel Domain Decomposition Parallel Preconditioners Package
based on PSBLAS (Parallel Sparse BLAS version 2.3.1)
based on PSBLAS (Parallel Sparse BLAS version 3.0)
(C) Copyright 2008,2009
(C) Copyright 2008,2009,2010, 2010
Salvatore Filippone University of Rome Tor Vergata
Alfredo Buttari University of Rome Tor Vergata
Alfredo Buttari CNRS-IRIT, Toulouse
Pasqua D'Ambra ICAR-CNR, Naples
Daniela di Serafino Second University of Naples

@ -72,8 +72,8 @@ of a generic algebraic multilevel Schwarz preconditioner, thus allowing to searc
for the ``best'' preconditioner for the problem at hand.
<P>
The package has been designed employing object-oriented techniques,
using Fortran 95, with interfaces to additional third party libraries
The package employs object-oriented design techniques in
Fortran&nbsp;2003, with interfaces to additional third party libraries
such as UMFPACK, SuperLU and SuperLU_Dist, that
can be exploited in building multi-level preconditioners. The parallel
implementation is based on a Single Program Multiple Data (SPMD)

@ -727,7 +727,7 @@ $w = y_1$;
\begin{tabbing}
\quad \=\quad...
...= y_l+r_l$\\
\textbf{endfor} \\ [1mm]
\textbf{endfor} [1mm]
$w = y_1$;
\end{tabbing}}
\end{minipage}}">

@ -129,18 +129,9 @@ a direct solver to the coarsest-level system, e.g. based on the LU
factorization (see Section&nbsp;<A HREF="node16.html#sec:userinterface">6</A>
for the coarsest-level solvers available in MLD2P4).
<P>
<BR><B>Remark 2.</B> The include path for MLD2P4 must override
those for PSBLAS, i.e. the former must come first in the sequence
passed to the compiler, as the MLD2P4 version of the Krylov solver
interfaces must override that of PSBLAS. This will change in the future
when the support for the <code>class</code> statement becomes widespread in Fortran
compilers.
<P>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="928"></A>
<DIV ALIGN="CENTER"><A NAME="926"></A>
<TABLE>
<CAPTION><STRONG>Table 1:</STRONG>
Preconditioner types, corresponding strings and default choices.

@ -86,7 +86,7 @@ the corresponding Fortran 95 codes are available in <code>examples/fileread/</co
<P>
<DIV ALIGN="CENTER"><A NAME="fig:ex_default"></A><A NAME="931"></A>
<DIV ALIGN="CENTER"><A NAME="fig:ex_default"></A><A NAME="929"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 2:</STRONG>
Setup and application of the default multi-level Schwarz preconditioner.
@ -193,17 +193,7 @@ boundary conditions are also available in the directory <code>examples/pdegen</c
<P>
<BR><B>Remark 3.</B> Any PSBLAS-based program using the basic preconditioners
implemented in PSBLAS 2.0, i.e. the diagonal and block-Jacobi ones,
can use the diagonal and block-Jacobi preconditioners
implemented in MLD2P4 without any change in the code.
The PSBLAS-based program must be only recompiled
and linked to the MLD2P4 library.
<BR>
<P>
<DIV ALIGN="CENTER"><A NAME="fig:ex_3lh"></A><A NAME="933"></A>
<DIV ALIGN="CENTER"><A NAME="fig:ex_3lh"></A><A NAME="931"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 3:</STRONG>
Setup of a hybrid three-level Schwarz preconditioner.</CAPTION>
@ -235,7 +225,7 @@ Setup of a hybrid three-level Schwarz preconditioner.</CAPTION>
<P>
<DIV ALIGN="CENTER"><A NAME="fig:ex_3la"></A><A NAME="935"></A>
<DIV ALIGN="CENTER"><A NAME="fig:ex_3la"></A><A NAME="933"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 4:</STRONG>
Setup of an additive three-level Schwarz preconditioner.</CAPTION>
@ -267,7 +257,7 @@ Setup of an additive three-level Schwarz preconditioner.</CAPTION>
<P>
<DIV ALIGN="CENTER"><A NAME="fig:ex_1l"></A><A NAME="937"></A>
<DIV ALIGN="CENTER"><A NAME="fig:ex_1l"></A><A NAME="935"></A>
<TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 5:</STRONG>
Setup of a one-level Schwarz preconditioner.</CAPTION>

@ -72,7 +72,7 @@ i.e.
<UL>
<LI>the sparse matrix data structure, containing the matrix to be
preconditioned, must be of type <code>mld_</code><I>x</I><code>spmat_type</code>
preconditioned, must be of type <code>psb_</code><I>x</I><code>spmat_type</code>
with <I>x</I> = <code>s</code> for real single precision, <I>x</I> = <code>d</code>
for real double precision, <I>x</I> = <code>c</code> for complex single precision,
<I>x</I> = <code>z</code> for complex double precision;
@ -93,12 +93,9 @@ i.e.
WIDTH="86" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
SRC="img61.png"
ALT="$w=M^{-1}v$"> must be of type
<I>type</I><code>(</code><I>kind_parameter</I><code>)</code>, with <I>type</I> =
<code>real</code>, <code>complex</code> and <I>kind_parameter</I> = <code>kind(1.e0)</code>,
<code>kind(1.d0)</code>, according to the sparse matrix and preconditioner
data structure; note that the PSBLAS module <code>psb_base_mod</code>
provides the constants <code>psb_spk_</code>
= <code>kind(1.e0)</code> and <code>psb_dpk_</code> = <code>kind(1.d0)</code>;
<code>psb_</code><I>x</I><code>vect_type</code> with <I>x</I> =
<code>s</code>, <code>d</code>, <code>c</code>, <code>z</code>, in a manner completely
analogous to the sparse matrix type;
</LI>
<LI>real parameters defining the preconditioner must be declared
according to the precision of the sparse matrix and preconditioner

@ -133,7 +133,7 @@ refer to Section&nbsp;<A HREF="node11.html#sec:background">4</A>.
<P>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1265"></A>
<DIV ALIGN="CENTER"><A NAME="1257"></A>
<TABLE>
<CAPTION><STRONG>Table 2:</STRONG>
Parameters defining the type of multi-level preconditioner.
@ -177,7 +177,7 @@ Parameters defining the type of multi-level preconditioner.
<P>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1267"></A>
<DIV ALIGN="CENTER"><A NAME="1259"></A>
<TABLE>
<CAPTION><STRONG>Table 3:</STRONG>
Parameters defining the one-level preconditioner used as smoother.
@ -277,7 +277,7 @@ Parameters defining the one-level preconditioner used as smoother.
<P>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1269"></A>
<DIV ALIGN="CENTER"><A NAME="1261"></A>
<TABLE>
<CAPTION><STRONG>Table 4:</STRONG>
Parameters defining the aggregation algorithm.
@ -380,7 +380,7 @@ Parameters defining the aggregation algorithm.
<P>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1272"></A>
<DIV ALIGN="CENTER"><A NAME="1264"></A>
<TABLE>
<CAPTION><STRONG>Table 5:</STRONG>
Parameters defining the coarse-space correction at the coarsest

@ -70,7 +70,7 @@ This routine computes <!-- MATH
<IMG
WIDTH="117" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img97.png"
ALT="$y = op(M^{-1})\, x$">, where <IMG
ALT="$y = op(M^{-1}) x$">, where <IMG
WIDTH="23" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img60.png"
ALT="$M$"> is a previously built

@ -152,9 +152,9 @@ We provide here a description of the upper-layer routines, but not of the
medium-layer ones.
<P>
The user interface of version 2.0 is essentially identical to that of
version 1.1; the internal implementation however has been changed a
lot, and it has become much easier to extend the library by adding new
smoothers and/or solvers, thanks to the Fortran&nbsp;2003 features
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.0.
<P>

@ -69,7 +69,8 @@ must support the Fortran&nbsp;2003 standard plus the extension <code>MOLD=</code
feature, which
enhances the usability of <code>ALLOCATE</code>.
Many compiles do this; in particular, this is
supported by the GNU Fortran compiler as of version 4.6.0
supported by the GNU Fortran compiler, for which we
recommend to use at least version 4.7.1.
The software defines data types and interfaces for
real and complex data, in both single and double precision.

@ -181,7 +181,7 @@ directories specifics to the GNU 4.3 compiler suite might be as
follows, specifying only the UMFPACK external package:
<PRE>
./configure --with-psblas=/home/user/psblas-3.0/ \
--with-libs="-L/usr/local/BLAS/gnu46 -L/usr/local/BLACS/gnu46" \
--with-libs="-L/usr/local/BLAS/gnu46" \
--with-umfpackdir=/usr/local/UMFPACK/gnu46
</PRE>
Once the configure script has completed execution, it will have

File diff suppressed because it is too large Load Diff

@ -15,8 +15,8 @@ available in this framework. MLD2P4 enables the user to easily specify different
of a generic algebraic multilevel Schwarz preconditioner, thus allowing to search
for the ``best'' preconditioner for the problem at hand.
The package has been designed employing object-oriented techniques,
using Fortran 95, with interfaces to additional third party libraries
The package employs object-oriented design techniques in
Fortran~2003, with interfaces to additional third party libraries
such as UMFPACK, SuperLU and SuperLU\_Dist, that
can be exploited in building multi-level preconditioners. The parallel
implementation is based on a Single Program Multiple Data (SPMD)

@ -13,7 +13,8 @@ must support the Fortran~2003 standard plus the extension \verb|MOLD=|
feature, which
enhances the usability of \verb|ALLOCATE|.
Many compiles do this; in particular, this is
supported by the GNU Fortran compiler as of version 4.6.0
supported by the GNU Fortran compiler, for which we
recommend to use at least version 4.7.1.
The software defines data types and interfaces for
real and complex data, in both single and double precision.
@ -196,7 +197,7 @@ directories specifics to the GNU 4.3 compiler suite might be as
follows, specifying only the UMFPACK external package:
\begin{verbatim}
./configure --with-psblas=/home/user/psblas-3.0/ \
--with-libs="-L/usr/local/BLAS/gnu46 -L/usr/local/BLACS/gnu46" \
--with-libs="-L/usr/local/BLAS/gnu46" \
--with-umfpackdir=/usr/local/UMFPACK/gnu46
\end{verbatim}
Once the configure script has completed execution, it will have

@ -62,13 +62,13 @@ a direct solver to the coarsest-level system, e.g.\ based on the LU
factorization (see Section~\ref{sec:userinterface}
for the coarsest-level solvers available in MLD2P4).
\ \\
\textbf{Remark 2.} The include path for MLD2P4 must override
those for PSBLAS, i.e.\ the former must come first in the sequence
passed to the compiler, as the MLD2P4 version of the Krylov solver
interfaces must override that of PSBLAS. This will change in the future
when the support for the \verb|class| statement becomes widespread in Fortran
compilers.
% \ \\
% \textbf{Remark 2.} The include path for MLD2P4 must override
% those for PSBLAS, i.e.\ the former must come first in the sequence
% passed to the compiler, as the MLD2P4 version of the Krylov solver
% interfaces must override that of PSBLAS. This will change in the future
% when the support for the \verb|class| statement becomes widespread in Fortran
% compilers.
\begin{table}[th]
@ -228,14 +228,14 @@ For all the previous preconditioners, example programs where the sparse matrix a
the right-hand side are generated by discretizing a PDE with Dirichlet
boundary conditions are also available in the directory \verb|examples/pdegen|.
\ \\
\textbf{Remark 3.} Any PSBLAS-based program using the basic preconditioners
implemented in PSBLAS 2.0, i.e.\ the diagonal and block-Jacobi ones,
can use the diagonal and block-Jacobi preconditioners
implemented in MLD2P4 without any change in the code.
The PSBLAS-based program must be only recompiled
and linked to the MLD2P4 library.
\\
% \ \\
% \textbf{Remark 2.} Any PSBLAS-based program using the basic preconditioners
% implemented in PSBLAS 3.0, i.e.\ the diagonal and block-Jacobi ones,
% can use the diagonal and block-Jacobi preconditioners
% implemented in MLD2P4 without change in the code.
% The PSBLAS-based program must be only recompiled
% and linked to the MLD2P4 library.
% \\
\begin{figure}[tbh]

@ -75,9 +75,9 @@ medium-layer ones.%% For a detailed description of the overall software archite
%% of MLD2P4 the reader is referred to~\cite{MLD2P4_TOMS}.
The user interface of version 2.0 is essentially identical to that of
version 1.1; the internal implementation however has been changed a
lot, and it has become much easier to extend the library by adding new
smoothers and/or solvers, thanks to the Fortran~2003 features
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~2003 features
exploited in the design of PSBLAS~3.0.
This guide is organized as follows. General information on the distribution of the source code

@ -16,7 +16,7 @@ arguments with appropriate data types must be passed to the routine,
i.e.
\begin{itemize}
\item the sparse matrix data structure, containing the matrix to be
preconditioned, must be of type \verb|mld_|\emph{x}\verb|spmat_type|
preconditioned, must be of type \verb|psb_|\emph{x}\verb|spmat_type|
with \emph{x} = \verb|s| for real single precision, \emph{x} = \verb|d|
for real double precision, \emph{x} = \verb|c| for complex single precision,
\emph{x} = \verb|z| for complex double precision;
@ -26,12 +26,9 @@ i.e.
matrix data structure;
\item the arrays containing the vectors $v$ and $w$ involved in
the preconditioner application $w=M^{-1}v$ must be of type
\emph{type}\verb|(|\emph{kind\_parameter}\verb|)|, with \emph{type} =
\verb|real|, \verb|complex| and \emph{kind\_parameter} = \verb|kind(1.e0)|,
\verb|kind(1.d0)|, according to the sparse matrix and preconditioner
data structure; note that the PSBLAS module \verb|psb_base_mod|
provides the constants \verb|psb_spk_|
= \verb|kind(1.e0)| and \verb|psb_dpk_| = \verb|kind(1.d0)|;
\verb|psb_|\emph{x}\verb|vect_type| with \emph{x} =
\verb|s|, \verb|d|, \verb|c|, \verb|z|, in a manner completely
analogous to the sparse matrix type;
\item real parameters defining the preconditioner must be declared
according to the precision of the sparse matrix and preconditioner
data structures (see Section~\ref{sec:precset}).

@ -35,7 +35,7 @@ ppde3d.o spde3d.o ppde2d.o spde2d.o: data_input.o
clean:
/bin/rm -f data_input.o ppde3d.o spde3d.o ppde2d.o spde2d.o \
/bin/rm -f data_input.o ppde3d.o spde3d.o ppde2d.o spde2d.o *$(.mod)\
$(EXEDIR)/ppde3d $(EXEDIR)/spde3d $(EXEDIR)/ppde2d $(EXEDIR)/spde2d
verycleanlib:

Loading…
Cancel
Save