docs/pdf/Makefile
 docs/pdf/abstract.tex
 docs/pdf/advanced.tex
 docs/pdf/background.tex
 docs/pdf/bibliography.tex
 docs/pdf/building.tex
 docs/pdf/conventions.tex
 docs/pdf/distribution.tex
 docs/pdf/errors.tex
 docs/pdf/gettingstarted.tex
 docs/pdf/highlevelview.tex
 docs/pdf/listofroutines.tex
 docs/pdf/overview.tex
 docs/pdf/userguide.tex
 docs/userguide.pdf

New documentation, partial fixes.
stopcriterion
Salvatore Filippone 17 years ago
parent 9eeef87a3a
commit 001f6693b8

@ -1,7 +1,7 @@
\section{Code Distribution\label{sec:distribution}} \section{Code Distribution\label{sec:distribution}}
The MLD2P4 is freely distributable under the following copyright The MLD2P4 is freely distributable under the following copyright
terms: terms: {\small
\begin{verbatim} \begin{verbatim}
MLD2P4 version 1.0 MLD2P4 version 1.0
MultiLevel Domain Decomposition Parallel Preconditioners Package MultiLevel Domain Decomposition Parallel Preconditioners Package
@ -39,3 +39,4 @@ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE. POSSIBILITY OF SUCH DAMAGE.
\end{verbatim} \end{verbatim}
}

@ -2,20 +2,25 @@
We describe the basics for building and applying MLD2P4 one-level and multi-level We describe the basics for building and applying MLD2P4 one-level and multi-level
Schwarz preconditioners with the Krylov solvers included in PSBLAS \cite{}. Schwarz preconditioners with the Krylov solvers included in PSBLAS \cite{}.
The following five steps are required: The following steps are required:
\begin{enumerate} \begin{enumerate}
\item \emph{Declare the preconditioner data structure}. It is a derived data type,
\verb|mld_|\emph{x}\verb|prec_type|,where \emph{x} may be \verb|s|, \verb|d|, \verb|c|
or \verb|z|, according to the basic data type of the sparse matrix
(\verb|s| = real single precision; \verb|s| = real double precision;
\verb|c| = complex single precision; \verb|z| = complex double precision).
This data structure is accessed by the user only through the MLD2P4 routines,
following an object-oriented approach.
\item \emph{Allocate and initialize the preconditioner data structure, according to \item \emph{Allocate and initialize the preconditioner data structure, according to
a preconditioner type chosen by the user}. This is performed by the routine a preconditioner type chosen by the user}. This is performed by the routine
\verb|mld_precinit|, which also sets a default preconditioner for each preconditioner \verb|mld_precinit|, which also sets a default preconditioner for each preconditioner
type selected by the user. The default preconditioner associated to each preconditioner type selected by the user. The default preconditioner associated to each preconditioner
type is listed in Table~\ref{tab:precinit}; the string used by \verb|mld_precinit| type is listed in Table~\ref{tab:precinit}; the string used by \verb|mld_precinit|
to identify each preconditioner type is also given. The preconditioner data structure is to identify each preconditioner type is also given.
the derived data type \verb|mld_prec_type|, which is accessed to the user only \item \emph{Choose a specific preconditioner within the selected preconditioner type, by setting
through the MLD2P4 routines.
\item \emph{Choose a specific variant of the selected preconditioner type, by setting
the preconditioner parameters.} This is performed by the routine \verb|mld_precset|. the preconditioner parameters.} This is performed by the routine \verb|mld_precset|.
A few examples concerning the use of \verb|mld_precset| are given in A few examples concerning the use of \verb|mld_precset| are given in
Sections~\ref{sec:example1} and \ref{sec:example1}; a complete list of all the Section~\ref{sec:examples}; a complete list of all the
preconditioner parameters and their allowed values is provided in preconditioner parameters and their allowed values is provided in
Section~\ref{sec:highlevel}. Section~\ref{sec:highlevel}.
\item \emph{Build the preconditioner for a given matrix.} This is performed by \item \emph{Build the preconditioner for a given matrix.} This is performed by
@ -34,28 +39,27 @@ Note that the Fortran 95 module \verb|mld_prec_mod| must be used in the program
calling the MLD2P4 routines. Furthermore, to apply MLD2P4 with the Krylov solvers calling the MLD2P4 routines. Furthermore, to apply MLD2P4 with the Krylov solvers
from PSBLAS, the module \verb|psb_krylov_mod| must be used too. from PSBLAS, the module \verb|psb_krylov_mod| must be used too.
Two simple example programs showing the (basic) use of MLD2P4 are reported in Examples showing the basic use of MLD2P4 are reported in Section~\ref{sec:examples}.
Section~\ref{sec:examples}.
\begin{table}[th] \begin{table}[th]
{ {
\begin{center} \begin{center}
\begin{tabular}{|l|l|p{6.7cm}|} \begin{tabular}{|l|l|p{6.7cm}|}
\hline \hline
Type & String & Default preconditioner \\ \hline Type & String & Default preconditioner \\ \hline
No preconditioner &'NOPREC'& (Considered only to use the PSBLAS No preconditioner &\verb|'NOPREC'|& (Considered only to use the PSBLAS
Krylov solvers with no preconditioner.) \\ Krylov solvers with no preconditioner.) \\
Diagonal & 'DIAG' & --- \\ Diagonal & \verb|'DIAG'| & --- \\
Block Jacobi & 'BJAC' & ILU(0) on the local blocks.\\ Block Jacobi & \verb|'BJAC'| & Block Jacobi with ILU(0) on the local blocks.\\
Additive Schwarz & 'AS' & Restricted Additive Schwarz (RAS), Additive Schwarz & \verb|'AS'| & Restricted Additive Schwarz (RAS),
with overlap 1 and ILU(0) on the local blocks. \\ with overlap 1 and ILU(0) on the local blocks. \\
Multilevel &'ML' & Multi-level hybrid preconditioner (additive on the Multilevel &\verb|'ML'| & Multi-level hybrid preconditioner (additive on the
same level and multiplicative through the levels), same level and multiplicative through the levels),
with post-smoothing only. Number of levels: 2; with post-smoothing only. Number of levels: 2;
post-smoother: block-Jacobi preconditioner, with ILU(0) post-smoother: block-Jacobi preconditioner with ILU(0)
on the local blocks; coarsest matrix: distributed among the on the local blocks; coarsest matrix: distributed among the
processors; corase-level solver: 4 sweeps of the processors; corase-level solver: 4 sweeps of the
block-Jacobi solver, with ILU(0) on the blocks. \\ block-Jacobi solver, with ILU(0) on the blocks. \\
\hline \hline
\end{tabular} \end{tabular}
\end{center} \end{center}
@ -65,9 +69,12 @@ Multilevel &'ML' & Multi-level hybrid preconditioner (additive on the
\subsection{Examples\label{sec:examples}} \subsection{Examples\label{sec:examples}}
The simple code reported below shows how to set and apply the MLD2P4 default multi-level The code reported below shows how to set and apply the MLD2P4 default multi-level
preconditioned, i.e.\ the two-level hybrid post-smoothed Schwarz preconditioner, using block-Jacobi with ILU(0) on the blocks as basic preconditioner, preconditioned, i.e.\ the two-level hybrid post-smoothed Schwarz preconditioner,
a coarse matrix distributed among the processors, and four block-Jacobi sweeps with ILU(0) on the blocks as approximate coarse-level solver. The choice of this preconditioner is made using block-Jacobi with ILU(0) on the blocks as basic preconditioner,
a coarse matrix distributed among the processors, and four block-Jacobi
sweeps with ILU(0) on the blocks as approximate coarse-level solver.
The choice of this preconditioner is made
by simply specifying \verb|'ML'| as second argument of \verb|mld_precinit| by simply specifying \verb|'ML'| as second argument of \verb|mld_precinit|
(a call to \verb|mld_precset| is not needed). (a call to \verb|mld_precset| is not needed).
The preconditioner is applied within the BiCGSTAB solver provided by PSBLAS. The preconditioner is applied within the BiCGSTAB solver provided by PSBLAS.
@ -93,7 +100,7 @@ For details on the use of the PSBLAS routines, see the PSBLAS User's Guide \cite
! sparse matrix descriptor ! sparse matrix descriptor
type(psb_desc_type) :: DESC_A type(psb_desc_type) :: DESC_A
! preconditioner ! preconditioner
type(mld_prec_type) :: PRE type(mld_dprec_type) :: PRE
... ... ... ...
! !
! initialize the parallel environment ! initialize the parallel environment

@ -5,37 +5,46 @@
\ifx\pdfoutput\undefined % We're not running pdftex \ifx\pdfoutput\undefined % We're not running pdftex
\else \else
\pdfbookmark{MLD2P4-1.0 User's Guide}{title} \pdfbookmark{MLD2P4 User's and Reference Guide}{title}
\fi \fi
\newlength{\centeroffset} %\newlength{\centeroffset}
\setlength{\centeroffset}{-0.5\oddsidemargin} %\setlength{\centeroffset}{-0.5\oddsidemargin}
\addtolength{\centeroffset}{0.5\evensidemargin} %\addtolength{\centeroffset}{0.5\evensidemargin}
%\addtolength{\textwidth}{-\centeroffset} %\addtolength{\textwidth}{-\centeroffset}
\thispagestyle{empty} \thispagestyle{empty}
\vspace*{\stretch{1}} \vspace*{\stretch{1}}
\noindent\hspace*{\centeroffset}\makebox[0pt][l]{\begin{minipage}{\textwidth} \noindent\hspace*{\centeroffset}\makebox[0pt][l]{\begin{minipage}{\textwidth}
\flushright \flushright
{\Huge\bfseries MLD2P4-1.0 User's guide {\Huge\bfseries MLD2P4\\[.8ex] User's and Reference Guide
} }
\noindent\rule[-1ex]{\textwidth}{5pt}\\[2.5ex] \noindent\rule[-1ex]{\textwidth}{5pt}\\[2.5ex]
\hfill\emph{\Large A reference guide for the MultiLevel Domain \hfill\emph{\Large A guide for the Multi-Level Domain Decomposition \\[.6ex]
Decomposition Parallel Preconditioners Package based on Parallel Sparse BLAS} Parallel Preconditioners Package
based on PSBLAS}
\end{minipage}}
\vspace{\stretch{1}}
\noindent\hspace*{\centeroffset}\makebox[0pt][l]{\begin{minipage}{\textwidth}
\flushright
{\large\bfseries Pasqua D'Ambra}\\
\large ICAR-CNR, Naples, Italy\\[3ex]
{\large\bfseries Daniela di Serafino}\\
\large Second University of Naples, Italy\\[3ex]
{\large\bfseries Salvatore Filippone} \\
\large University of Rome ``Tor Vergata'', Italy
%\\[10ex]
%\today
\end{minipage}} \end{minipage}}
\vspace{\stretch{1}} \vspace{\stretch{1}}
\noindent\hspace*{\centeroffset}\makebox[0pt][l]{\begin{minipage}{\textwidth} \noindent\hspace*{\centeroffset}\makebox[0pt][l]{\begin{minipage}{\textwidth}
\flushright \flushright
{\bfseries \large Software version: 1.0\\
by Salvatore Filippone\\
Alfredo Buttari} \\
University of Rome ``Tor Vergata'' \\[3ex]
{\bfseries Daniela di Serafino }\\
Second University of Naples\\[3ex]
{\bfseries Pasqua D'Ambra}\\
ICAR-CNR, Naples\\[3ex]
\today \today
\end{minipage}} \end{minipage}}
%\addtolength{\textwidth}{\centeroffset} %\addtolength{\textwidth}{\centeroffset}
\vspace{\stretch{2}} \vspace{\stretch{2}}
@ -48,4 +57,3 @@ ICAR-CNR, Naples\\[3ex]
% mode: latex % mode: latex
% mode: flyspell % mode: flyspell
% End: % End:

@ -35,6 +35,14 @@
% /URI (http://ce.uniroma2.it/psblas) % /URI (http://ce.uniroma2.it/psblas)
} }
\setlength\oddsidemargin{.7in}
\setlength\evensidemargin{.7in}
\newlength{\centeroffset}
\setlength{\centeroffset}{0.5\oddsidemargin}
\addtolength{\centeroffset}{0.5\evensidemargin}
\addtolength{\textwidth}{-\centeroffset}
\pagestyle{myheadings}
\newcounter{subroutine}[subsection] \newcounter{subroutine}[subsection]
\newcounter{example}[subroutine] \newcounter{example}[subroutine]
\makeatletter \makeatletter

File diff suppressed because one or more lines are too long
Loading…
Cancel
Save