mld2p4-2:

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

@ -1,12 +1,13 @@
MLD2P4 version 1.1 MLD2P4 version 2.0
MultiLevel Domain Decomposition Parallel Preconditioners Package 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 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 Pasqua D'Ambra ICAR-CNR, Naples
Daniela di Serafino Second University of 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. for the ``best'' preconditioner for the problem at hand.
<P> <P>
The package has been designed employing object-oriented techniques, The package employs object-oriented design techniques in
using Fortran 95, with interfaces to additional third party libraries Fortran&nbsp;2003, with interfaces to additional third party libraries
such as UMFPACK, SuperLU and SuperLU_Dist, that such as UMFPACK, SuperLU and SuperLU_Dist, that
can be exploited in building multi-level preconditioners. The parallel can be exploited in building multi-level preconditioners. The parallel
implementation is based on a Single Program Multiple Data (SPMD) implementation is based on a Single Program Multiple Data (SPMD)

@ -727,7 +727,7 @@ $w = y_1$;
\begin{tabbing} \begin{tabbing}
\quad \=\quad... \quad \=\quad...
...= y_l+r_l$\\ ...= y_l+r_l$\\
\textbf{endfor} \\ [1mm] \textbf{endfor} [1mm]
$w = y_1$; $w = y_1$;
\end{tabbing}} \end{tabbing}}
\end{minipage}}"> \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> factorization (see Section&nbsp;<A HREF="node16.html#sec:userinterface">6</A>
for the coarsest-level solvers available in MLD2P4). 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> <P>
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"><A NAME="928"></A> <DIV ALIGN="CENTER"><A NAME="926"></A>
<TABLE> <TABLE>
<CAPTION><STRONG>Table 1:</STRONG> <CAPTION><STRONG>Table 1:</STRONG>
Preconditioner types, corresponding strings and default choices. Preconditioner types, corresponding strings and default choices.

@ -86,7 +86,7 @@ the corresponding Fortran 95 codes are available in <code>examples/fileread/</co
<P> <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> <TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 2:</STRONG> <CAPTION ALIGN="BOTTOM"><STRONG>Figure 2:</STRONG>
Setup and application of the default multi-level Schwarz preconditioner. Setup and application of the default multi-level Schwarz preconditioner.
@ -192,18 +192,8 @@ the right-hand side are generated by discretizing a PDE with Dirichlet
boundary conditions are also available in the directory <code>examples/pdegen</code>. boundary conditions are also available in the directory <code>examples/pdegen</code>.
<P> <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> <DIV ALIGN="CENTER"><A NAME="fig:ex_3lh"></A><A NAME="931"></A>
<P>
<DIV ALIGN="CENTER"><A NAME="fig:ex_3lh"></A><A NAME="933"></A>
<TABLE> <TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 3:</STRONG> <CAPTION ALIGN="BOTTOM"><STRONG>Figure 3:</STRONG>
Setup of a hybrid three-level Schwarz preconditioner.</CAPTION> Setup of a hybrid three-level Schwarz preconditioner.</CAPTION>
@ -235,7 +225,7 @@ Setup of a hybrid three-level Schwarz preconditioner.</CAPTION>
<P> <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> <TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 4:</STRONG> <CAPTION ALIGN="BOTTOM"><STRONG>Figure 4:</STRONG>
Setup of an additive three-level Schwarz preconditioner.</CAPTION> Setup of an additive three-level Schwarz preconditioner.</CAPTION>
@ -267,7 +257,7 @@ Setup of an additive three-level Schwarz preconditioner.</CAPTION>
<P> <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> <TABLE>
<CAPTION ALIGN="BOTTOM"><STRONG>Figure 5:</STRONG> <CAPTION ALIGN="BOTTOM"><STRONG>Figure 5:</STRONG>
Setup of a one-level Schwarz preconditioner.</CAPTION> Setup of a one-level Schwarz preconditioner.</CAPTION>

@ -72,7 +72,7 @@ i.e.
<UL> <UL>
<LI>the sparse matrix data structure, containing the matrix to be <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> 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, for real double precision, <I>x</I> = <code>c</code> for complex single precision,
<I>x</I> = <code>z</code> for complex double 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" WIDTH="86" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
SRC="img61.png" SRC="img61.png"
ALT="$w=M^{-1}v$"> must be of type 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>psb_</code><I>x</I><code>vect_type</code> with <I>x</I> =
<code>real</code>, <code>complex</code> and <I>kind_parameter</I> = <code>kind(1.e0)</code>, <code>s</code>, <code>d</code>, <code>c</code>, <code>z</code>, in a manner completely
<code>kind(1.d0)</code>, according to the sparse matrix and preconditioner analogous to the sparse matrix type;
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>;
</LI> </LI>
<LI>real parameters defining the preconditioner must be declared <LI>real parameters defining the preconditioner must be declared
according to the precision of the sparse matrix and preconditioner 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> <P>
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1265"></A> <DIV ALIGN="CENTER"><A NAME="1257"></A>
<TABLE> <TABLE>
<CAPTION><STRONG>Table 2:</STRONG> <CAPTION><STRONG>Table 2:</STRONG>
Parameters defining the type of multi-level preconditioner. Parameters defining the type of multi-level preconditioner.
@ -177,7 +177,7 @@ Parameters defining the type of multi-level preconditioner.
<P> <P>
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1267"></A> <DIV ALIGN="CENTER"><A NAME="1259"></A>
<TABLE> <TABLE>
<CAPTION><STRONG>Table 3:</STRONG> <CAPTION><STRONG>Table 3:</STRONG>
Parameters defining the one-level preconditioner used as smoother. Parameters defining the one-level preconditioner used as smoother.
@ -277,7 +277,7 @@ Parameters defining the one-level preconditioner used as smoother.
<P> <P>
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1269"></A> <DIV ALIGN="CENTER"><A NAME="1261"></A>
<TABLE> <TABLE>
<CAPTION><STRONG>Table 4:</STRONG> <CAPTION><STRONG>Table 4:</STRONG>
Parameters defining the aggregation algorithm. Parameters defining the aggregation algorithm.
@ -380,7 +380,7 @@ Parameters defining the aggregation algorithm.
<P> <P>
<BR><P></P> <BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1272"></A> <DIV ALIGN="CENTER"><A NAME="1264"></A>
<TABLE> <TABLE>
<CAPTION><STRONG>Table 5:</STRONG> <CAPTION><STRONG>Table 5:</STRONG>
Parameters defining the coarse-space correction at the coarsest Parameters defining the coarse-space correction at the coarsest

@ -70,7 +70,7 @@ This routine computes <!-- MATH
<IMG <IMG
WIDTH="117" HEIGHT="39" ALIGN="MIDDLE" BORDER="0" WIDTH="117" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img97.png" 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" WIDTH="23" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img60.png" SRC="img60.png"
ALT="$M$"> is a previously built 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. medium-layer ones.
<P> <P>
The user interface of version 2.0 is essentially identical to that of The user interface of version 2.0 is essentially identical to that of
version 1.1; the internal implementation however has been changed a version 1.1. The internal implementation however has been changed
lot, and it has become much easier to extend the library by adding new significantly; as a result, it has become much easier to extend the library by
smoothers and/or solvers, thanks to the Fortran&nbsp;2003 features adding new smoothers and/or solvers, thanks to the Fortran&nbsp;2003 features
exploited in the design of PSBLAS&nbsp;3.0. exploited in the design of PSBLAS&nbsp;3.0.
<P> <P>

@ -69,7 +69,8 @@ must support the Fortran&nbsp;2003 standard plus the extension <code>MOLD=</code
feature, which feature, which
enhances the usability of <code>ALLOCATE</code>. enhances the usability of <code>ALLOCATE</code>.
Many compiles do this; in particular, this is 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 The software defines data types and interfaces for
real and complex data, in both single and double precision. 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: follows, specifying only the UMFPACK external package:
<PRE> <PRE>
./configure --with-psblas=/home/user/psblas-3.0/ \ ./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 --with-umfpackdir=/usr/local/UMFPACK/gnu46
</PRE> </PRE>
Once the configure script has completed execution, it will have 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 of a generic algebraic multilevel Schwarz preconditioner, thus allowing to search
for the ``best'' preconditioner for the problem at hand. for the ``best'' preconditioner for the problem at hand.
The package has been designed employing object-oriented techniques, The package employs object-oriented design techniques in
using Fortran 95, with interfaces to additional third party libraries Fortran~2003, with interfaces to additional third party libraries
such as UMFPACK, SuperLU and SuperLU\_Dist, that such as UMFPACK, SuperLU and SuperLU\_Dist, that
can be exploited in building multi-level preconditioners. The parallel can be exploited in building multi-level preconditioners. The parallel
implementation is based on a Single Program Multiple Data (SPMD) 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 feature, which
enhances the usability of \verb|ALLOCATE|. enhances the usability of \verb|ALLOCATE|.
Many compiles do this; in particular, this is 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 The software defines data types and interfaces for
real and complex data, in both single and double precision. 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: follows, specifying only the UMFPACK external package:
\begin{verbatim} \begin{verbatim}
./configure --with-psblas=/home/user/psblas-3.0/ \ ./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 --with-umfpackdir=/usr/local/UMFPACK/gnu46
\end{verbatim} \end{verbatim}
Once the configure script has completed execution, it will have 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} factorization (see Section~\ref{sec:userinterface}
for the coarsest-level solvers available in MLD2P4). for the coarsest-level solvers available in MLD2P4).
\ \\ % \ \\
\textbf{Remark 2.} The include path for MLD2P4 must override % \textbf{Remark 2.} The include path for MLD2P4 must override
those for PSBLAS, i.e.\ the former must come first in the sequence % 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 % passed to the compiler, as the MLD2P4 version of the Krylov solver
interfaces must override that of PSBLAS. This will change in the future % interfaces must override that of PSBLAS. This will change in the future
when the support for the \verb|class| statement becomes widespread in Fortran % when the support for the \verb|class| statement becomes widespread in Fortran
compilers. % compilers.
\begin{table}[th] \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 the right-hand side are generated by discretizing a PDE with Dirichlet
boundary conditions are also available in the directory \verb|examples/pdegen|. boundary conditions are also available in the directory \verb|examples/pdegen|.
\ \\ % \ \\
\textbf{Remark 3.} Any PSBLAS-based program using the basic preconditioners % \textbf{Remark 2.} Any PSBLAS-based program using the basic preconditioners
implemented in PSBLAS 2.0, i.e.\ the diagonal and block-Jacobi ones, % implemented in PSBLAS 3.0, i.e.\ the diagonal and block-Jacobi ones,
can use the diagonal and block-Jacobi preconditioners % can use the diagonal and block-Jacobi preconditioners
implemented in MLD2P4 without any change in the code. % implemented in MLD2P4 without change in the code.
The PSBLAS-based program must be only recompiled % The PSBLAS-based program must be only recompiled
and linked to the MLD2P4 library. % and linked to the MLD2P4 library.
\\ % \\
\begin{figure}[tbh] \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}. %% of MLD2P4 the reader is referred to~\cite{MLD2P4_TOMS}.
The user interface of version 2.0 is essentially identical to that of The user interface of version 2.0 is essentially identical to that of
version 1.1; the internal implementation however has been changed a version 1.1. The internal implementation however has been changed
lot, and it has become much easier to extend the library by adding new significantly; as a result, it has become much easier to extend the library by
smoothers and/or solvers, thanks to the Fortran~2003 features adding new smoothers and/or solvers, thanks to the Fortran~2003 features
exploited in the design of PSBLAS~3.0. exploited in the design of PSBLAS~3.0.
This guide is organized as follows. General information on the distribution of the source code 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. i.e.
\begin{itemize} \begin{itemize}
\item the sparse matrix data structure, containing the matrix to be \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| 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, for real double precision, \emph{x} = \verb|c| for complex single precision,
\emph{x} = \verb|z| for complex double precision; \emph{x} = \verb|z| for complex double precision;
@ -26,12 +26,9 @@ i.e.
matrix data structure; matrix data structure;
\item the arrays containing the vectors $v$ and $w$ involved in \item the arrays containing the vectors $v$ and $w$ involved in
the preconditioner application $w=M^{-1}v$ must be of type the preconditioner application $w=M^{-1}v$ must be of type
\emph{type}\verb|(|\emph{kind\_parameter}\verb|)|, with \emph{type} = \verb|psb_|\emph{x}\verb|vect_type| with \emph{x} =
\verb|real|, \verb|complex| and \emph{kind\_parameter} = \verb|kind(1.e0)|, \verb|s|, \verb|d|, \verb|c|, \verb|z|, in a manner completely
\verb|kind(1.d0)|, according to the sparse matrix and preconditioner analogous to the sparse matrix type;
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)|;
\item real parameters defining the preconditioner must be declared \item real parameters defining the preconditioner must be declared
according to the precision of the sparse matrix and preconditioner according to the precision of the sparse matrix and preconditioner
data structures (see Section~\ref{sec:precset}). data structures (see Section~\ref{sec:precset}).

@ -35,7 +35,7 @@ ppde3d.o spde3d.o ppde2d.o spde2d.o: data_input.o
clean: 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 $(EXEDIR)/ppde3d $(EXEDIR)/spde3d $(EXEDIR)/ppde2d $(EXEDIR)/spde2d
verycleanlib: verycleanlib:

Loading…
Cancel
Save