to be used in the iterative solutions of sparse linear systems:
to be used in the iterative solutions of sparse linear systems:
\begin{equation}
\begin{equation}
Ax=b,
Ax=b,
@ -18,24 +18,25 @@ where $A$ is a square, real or complex, sparse matrix with a symmetric sparsity
%
%
These preconditioners have the following general features:
These preconditioners have the following general features:
\begin{itemize}
\begin{itemize}
\item both \emph{additive and hybrid multilevel} variants, i.e.\ multiplicative among the levels
\item both \emph{additive and hybrid multilevel} variants are implemented,
and additive inside a level, are implemented; the basic additive Schwarz preconditioners
i.e.\ variants that are additive among the levels and inside each level, and variants
are obtained by considering only one level;
that are multiplicative among the levels and additive inside each level; the basic Additive Schwarz (AS) preconditioners are obtained by considering only one level;
\item a \emph{purely algebraic} approach is used to
\item a \emph{purely algebraic} approach is used to
generate a sequence of coarse-level corrections to a basic preconditioner, without
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
explicitly using any information on the geometry of the original problem (e.g.\ the
discretization of a PDE). The \emph{smoothed aggregation} technique is applied
discretization of a PDE). The \emph{smoothed aggregation} technique is applied
as algebraic coarsening strategy~\cite{Vanek_Mandel_Brezina,Brezina_Vanek}.
as algebraic coarsening strategy~\cite{BREZINA_VANEK,VANEK_MANDEL_BREZINA}.
\end{itemize}
\end{itemize}
The package is written in \emph{Fortran~95}, following an \emph{object-oriented approach}
The package is written in \emph{Fortran~95}, following an \emph{object-oriented approach}
through the exploitation of features such as abstract data type creation, functional overloading and
through the exploitation of features such as abstract data type creation, functional
dynamic memory management, while providing a smooth path towards the integration in
overloading and dynamic memory management, while providing a smooth path towards the integration in legacy application codes.
legacy application codes. The parallel implementation is based on a Single Program Multiple Data
\textbf{NON MI PIACE QUESTO PERIODO, E' TROPPO LUNGO. RIUSCITE A SCRIVERLO MEGLIO?}
(SPMD) paradigm for distributed-memory architectures.
The parallel implementation is based
on a Single Program Multiple Data (SPMD) paradigm for distributed-memory architectures.
Single and double precision implementations of MLD2P4 are available for both the
Single and double precision implementations of MLD2P4 are available for both the
real and the complex case, that can be used through a single interface.
real and the complex case, that can be used through a single interface.
\textbf{SALVATORE, funziona tutto?}
MLD2P4 has been designed to implement scalable and easy-to-use multilevel preconditioners
MLD2P4 has been designed to implement scalable and easy-to-use multilevel preconditioners
in the context of the \emph{PSBLAS (Parallel Sparse BLAS) computational framework}~\cite{psblas_00}.
in the context of the \emph{PSBLAS (Parallel Sparse BLAS) computational framework}~\cite{psblas_00}.
@ -67,7 +68,7 @@ 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
We provide here a description of the upper-layer routines, but not of the
medium-layer ones.
medium-layer ones.
This guide is organized as follows:\textbf{organizzazione della guida}
This guide is organized as follows:\textbf{ORGANIZZAZIONE DELLA GUIDA}
\markboth{\underline{MLD2P4 User's and Reference Guide}}
{\underline{\ref{sec:userinterface} User Interface}}
The basic user interface of MLD2P4 consists of six routines. The four routines \verb|mld_precinit|,
The basic user interface of MLD2P4 consists of six routines. The four routines \verb|mld_precinit|,
\verb|mld_precset|, \verb|mld_precbld| and \verb|mld_precaply| encapsulate all the functionalities for the setup and application of any one-level and multi-level
\verb|mld_precset|, \verb|mld_precbld| and \verb|mld_precaply| encapsulate all the functionalities for the setup and application of any one-level and multi-level
@ -48,8 +50,7 @@ according to the preconditioner type chosen by the user.
& available local solver: 'ILU' for incomplete LU, 'MILU' for modified incomplete LU, 'ILUT'
\verb|mld_sub_fillin_| &
for incomplete LU with threshold, 'UMF' for complete LU using UMFPACK~\cite{UMFPACK} version 4.4, 'SLU' for complete LU using SuperLU~\cite{SUPERLU}, version 3.0 \\
&
\verb|mld_sub_fillin_| &\verb|integer|
&
& any number $\ge0$
&\textbf{CAMBIARE NOME PARAMETRO NEL SW}\\
& 0
\verb|mld_sub_thresh_| &
&\textbf{CAMBIARE NOME PARAMETRO NEL SW} fill-in level for 'ILU', 'MILU' and 'ILUT' of local blocks\\
&
\verb|mld_sub_thresh_| &\verb|real|
&
& any number $\ge0.$
&\\
& 0.
\verb|mld_sub_ren_| &
& drop tolerance for 'ILUT'
&
\textbf{NELLA DOCUMENTAZIONE INTERNA DELLA ROUTINE DI FATTORIZZAZIONE C'E' INTERO, CAMBIARE!}\\
%\multicolumn{5}{|c|}{\emph{coarse-space correction at the coarsest level}}\\\hline
%\multicolumn{5}{|c|}{\emph{coarse-space correction at the coarsest level}}\\\hline
\verb|mld_coarse_mat_| &
\verb|mld_coarse_mat_| &\verb|character(len=*)|
&
& 'DISTR', 'REPL'
&
& 'DISTR'
&\\
& Coarse matrix: distributed or replicated \\
\verb|mld_coarse_solve_| &
\verb|mld_coarse_solve_| &\verb|character(len=*)|
&
& 'BJAC' \ \ \ 'UMF' \ \ \ 'SLUDIST'
&
& 'BJAC'
&\textbf{VEDI OSSERVAZIONI EMAIL 15-16/06/08}\\
&\textbf{VEDI OSSERVAZIONI EMAIL 15-16/06/08} available solver for coarse system.
\verb|mld_coarse_subsolve_| &
Only 'BJAC' and 'SLUDIST' can be used for distributed coarse matrix. 'BJAC' corresponds to some sweeps of a block-Jacobi solver, while 'SLUDIST' corresponds
&
to the use of the external package SuperLU\_Dist~\cite{SUPERLUDIST}, version 2.0, for distributed sparse factorization and solve. \\
&\textbf{VEDI OSSERVAZIONI EMAIL 15-16/06/08} available solver for diagonal local blocks of the coarse matrix, when 'BJAC' is used as coarse solver\\
&
\verb|mld_coarse_sweeps_|&\verb|integer|
&\\
& any number $> 0$
\verb|mld_coarse_fillin_| &
& 4
&
& number of Block-Jacobi sweeps when 'BJAC' is used as coarse solver \\
&
\verb|mld_coarse_fillin_| &\verb|integer|
&\textbf{MODIFICA NOME PARAM. NEL SW}\\
& any number $\ge0$
\verb|mld_coarse_thresh_| &
& 0
&
& fill-in level in incomplete factorization of local diagonal blocks of the coarse matrix, when 'BJAC' is used as coarse solver and 'ILU' or 'MILU' is used as local solver \textbf{MODIFICA NOME PARAM. NEL SW}\\
&
\verb|mld_coarse_thresh_| &\verb|real|
&\\\hline
& any number $\ge0.$
& 0.
& drop tolerance in incomplete factorization of local diagonal blocks of the coarse matrix, when 'BJAC' is used as coarse solver and 'ILUT' is used as local solver \\\hline
\end{tabular}
\end{tabular}
\end{center}
\end{center}
\caption{Parameters defining the coarse-space correction at the coarsest
\caption{Parameters defining the coarse-space correction at the coarsest
@ -287,10 +292,10 @@ the user through the routines \verb|mld_precinit| and \verb|mld_precset|.
& The sparse matrix structure containing the local part of the
& The sparse matrix structure containing the local part of the
matrix to be preconditioned. Note that \emph{x} must be chosen according
matrix to be preconditioned. Note that \emph{x} must be chosen according
to the real/complex, single/double precision version of MLD2P4 under use.
to the real/complex, single/double precision version of MLD2P4 under use.
See the PSBLAS User's Guide for details \cite{}.\\
See the PSBLAS User's Guide for details \cite{PSBLASGUIDE}.\\