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/intro.tex
 docs/pdf/methods.tex
 docs/pdf/overview.tex
 docs/pdf/precs.tex
 docs/pdf/userguide.tex
 docs/pdf/userinterface.tex
 docs/userguide.pdf

 furtehr fixes to docs.
stopcriterion
Salvatore Filippone 17 years ago
parent 70c2e5400e
commit 0b62918e37

@ -1,4 +1,6 @@
\section{Multi-level Domain Decomposition Background\label{sec:background}} \section{Multi-level Domain Decomposition Background\label{sec:background}}
\markboth{\underline{MLD2P4 User's and Reference Guide}}
{\underline{\ref{sec:background} Background}}
\emph{Domain Decomposition} (DD) preconditioners, coupled with Krylov iterative \emph{Domain Decomposition} (DD) preconditioners, coupled with Krylov iterative
solvers, are widely used in the parallel solution of large and sparse linear systems. solvers, are widely used in the parallel solution of large and sparse linear systems.
@ -56,12 +58,12 @@ interpolation \cite{StubenGMD69_99}.
MLD2P4 uses a pure algebraic approach for building the sequence of coarse matrices MLD2P4 uses a pure algebraic approach for building the sequence of coarse matrices
starting from the original matrix. The algebraic approach is based on the \emph{smoothed starting from the original matrix. The algebraic approach is based on the \emph{smoothed
aggregation} algorithm \cite{Brezina_Vanek_,Vanek_Mandel_Brezina_}. A decoupled version aggregation} algorithm \cite{BREZINA_VANEK,VANEK_MANDEL_BREZINA}. A decoupled version
of this algorithm is implemented, where the smoothed aggregation is applied locally of this algorithm is implemented, where the smoothed aggregation is applied locally
to each submatrix \cite{Tuminaro_Tong_00}. In the next two subsections we provide to each submatrix \cite{TUMINARO_TONG}. In the next two subsections we provide
a brief description of the multi-level Schwarz preconditioners and on the smoothed a brief description of the multi-level Schwarz preconditioners and on the smoothed
aggregation technique as implemented in MLD2P4. For further details the user aggregation technique as implemented in MLD2P4. For further details the user
is referred to \cite{para_04,apnum_07,aaecc_07,dd2_96}. is referred to \cite{para_04,aaecc_07,apnum_07,dd2_96}.
\subsection{Multi-level Schwarz Preconditioners\label{sec:multilevel}} \subsection{Multi-level Schwarz Preconditioners\label{sec:multilevel}}
@ -112,7 +114,7 @@ three steps:
A variant of the classical AS preconditioner that outperforms it A variant of the classical AS preconditioner that outperforms it
in terms of both convergence rate and of computation and communication in terms of both convergence rate and of computation and communication
time on parallel distributed-memory computers is the so-called \emph{Restricted AS time on parallel distributed-memory computers is the so-called \emph{Restricted AS
(RAS)} preconditioner~\cite{Cai_Sarkis,Efstathiou_Gander}. It (RAS)} preconditioner~\cite{CAI_SARKIS,EFSTATHIOU}. It
is obtained by zeroing the components of $w_i$ corresponding to the is obtained by zeroing the components of $w_i$ corresponding to the
overlapping vertices when applying the prolongation. Therefore, overlapping vertices when applying the prolongation. Therefore,
RAS differs from classical AS by the prolongation operators, RAS differs from classical AS by the prolongation operators,
@ -209,20 +211,63 @@ coarse-level system. The corresponding preconditioners are called \emph{multi-le
One more reason for the multi-level approach is that it may significantly One more reason for the multi-level approach is that it may significantly
reduce the computational cost of preconditioning with respect to the two-level case reduce the computational cost of preconditioning with respect to the two-level case
(see \cite[Chapter 3]{dd2_96}). Additive and hybrid multilevel preconditioners (see \cite[Chapter 3]{dd2_96}). Additive and hybrid multilevel preconditioners
are obtained as direct extensions of the two-level counterparts. Other combinations are obtained as direct extensions of the two-level counterparts.
of the smoothers and coarse-level corrections are possible, leading to variants The algorithm for applying a multi-level version of the two-level hybrid
post-smoothed preconditioner is reported in Figure~\ref{fig:mlhpost_alg}.
Other combinations of the smoothers and coarse-level corrections are possible, leading to variants
of the previous algorithms. For a detailed descrition of them, the reader is of the previous algorithms. For a detailed descrition of them, the reader is
referred to \cite[Chapter 3]{dd2_96}. referred to \cite[Chapter 3]{dd2_96}.
\textbf{DESCRIZIONE ALGORITMICA, a titolo di esempio, %
di un precondizionatore multilevel, ad esempio quello ibrido con pre- o post-smoothing, \begin{figure}[t]
sul tipo della descrizione in figura 1 della guida di Trilinos ML 4.0.} \begin{center}
\framebox{
\begin{minipage}{.85\textwidth} {\small
\begin{tabbing}
\quad \=\quad \=\quad \=\quad \\[-1mm]
! assigned the finest matrix\\
$A_1 \leftarrow A$;\\[1mm]
! defined the number of levels $nlev$ \\[1mm]
! defined $nlev-1$ prolongators\\
$R_l^T, l=2, \ldots, nlev$;\\[1mm]
! defined $nlev-1$ coarser matrices\\
$A_l \leftarrow R_lA_{l-1}R_l^T, \; l=2, \ldots, nlev$;\\[1mm]
! defined the $nlev-1$ basic Schwarz preconditioners\\
$M_l$, basic preconditioner for $A_l \; l=1, \ldots, nlev-1$;\\[1mm]
! assigned a vector $v$\\
$v_1 \leftarrow v$; \\[2mm]
\textbf{for $l=2, nlev$ do}\\[1mm]
\> ! transfer $v_{l-1}$ to the next coarser level\\
\> $v_l \leftarrow R_lv_{l-1}$; \\[1mm]
\textbf{endfor} \\[2mm]
! apply the coarsest-level correction\\[1mm]
$y_{nlev} \leftarrow A_{nlev}^{-1}*v_{nlev}$;\\[2mm]
\textbf{for $l=nlev -1 , 1, -1$ do}\\[1mm]
\> ! transfer $y_{l+1}$ to the next finer level\\
\> $y_l \leftarrow R_{l+1}^T*y_{l+1}$;\\[1mm]
\> ! compute the residual at the current level\\
\> $r_l \leftarrow v_l-A_l^{-1}*y_l$;\\[1mm]
\> ! apply the basic Schwarz preconditioner to $r_l$\\
\> $r_l \leftarrow M_l^{-1}*r_l$\\[1mm]
\> ! update $y_l$\\
\> $y_l \leftarrow y_l+r_l$\\
\textbf{endfor} \\[1mm]
! preconditioned vector
$w \leftarrow y_1$;
\end{tabbing}
}
\end{minipage}
}
\caption{Multi-level hybrid post-smoothed preconditioner.\label{fig:mlhpost_alg}}
\end{center}
\end{figure}
%
\subsection{Smoothed Aggregation\label{sec:aggregation}} \subsection{Smoothed Aggregation\label{sec:aggregation}}
To define the restriction operator $R_C$, which is used to compute To define the restriction operator $R_C$, which is used to compute
the coarse-level matrix $A_C$, MLD2P4 uses the \emph{smoothed aggregation} the coarse-level matrix $A_C$, MLD2P4 uses the \emph{smoothed aggregation}
algorithm described in \cite{Brezina_Vanek_,Vanek_Mandel_Brezina_}. algorithm described in \cite{BREZINA_VANEK,VANEK_MANDEL_BREZINA}.
The basic idea of this algorithm is to build a coarse set of vertices The basic idea of this algorithm is to build a coarse set of vertices
$W_C$ by suitably grouping the vertices of $W$ into disjoint subsets $W_C$ by suitably grouping the vertices of $W$ into disjoint subsets
(aggregates), and to define the coarse-to-fine space transfer operator $R_C^T$ by (aggregates), and to define the coarse-to-fine space transfer operator $R_C^T$ by
@ -238,7 +283,7 @@ Three main steps can be identified in the smoothed aggregation procedure:
%\textbf{NOTA: Controllare cosa fa trilinos dopo il primo passo.} %\textbf{NOTA: Controllare cosa fa trilinos dopo il primo passo.}
To perform the coarsening step, we have implemented the aggregation algorithm sketched To perform the coarsening step, we have implemented the aggregation algorithm sketched
in \cite{apnum_07}. According to \cite{brezina_vanek}, a modification of this algorithm in \cite{apnum_07}. According to \cite{BREZINA_VANEK}, a modification of this algorithm
has been actually considered, has been actually considered,
in which each aggregate $N_r$ is made of vertices of $W$ that are \emph{strongly coupled} in which each aggregate $N_r$ is made of vertices of $W$ that are \emph{strongly coupled}
to a certain root vertex $r \in W$, i.e.\ to a certain root vertex $r \in W$, i.e.\
@ -256,7 +301,7 @@ i.e.\ near vertices adjacent to vertices in other processors, and is strongly
dependent on the number of processors and on the initial partitioning of the matrix $A$. dependent on the number of processors and on the initial partitioning of the matrix $A$.
Nevertheless, this algorithm has been chosen for the implementation in MLD2P4, Nevertheless, this algorithm has been chosen for the implementation in MLD2P4,
since it has been shown to produce good results in practice since it has been shown to produce good results in practice
\cite{Tuminaro_Tong_00,apnum_07,aaecc_07}. \cite{aaecc_07,apnum_07,TUMINARO_TONG}.
The prolongator $P_C=R_C^T$ is built starting from a \emph{tentative prolongator} The prolongator $P_C=R_C^T$ is built starting from a \emph{tentative prolongator}
$P \in \Re^{n \times n_C}$, defined as $P \in \Re^{n \times n_C}$, defined as
@ -276,14 +321,14 @@ P_C = S P,
\end{equation} \end{equation}
in order to remove oscillatory components from the range of the prolongator in order to remove oscillatory components from the range of the prolongator
and hence to improve the convergence properties of the multi-level and hence to improve the convergence properties of the multi-level
Schwarz method \cite{Brezina_Vanek_,StubenGMD69_99}. Schwarz method \cite{BREZINA_VANEK,StubenGMD69_99}.
A simple choice for $S$ is the damped Jacobi smoother: A simple choice for $S$ is the damped Jacobi smoother:
\begin{equation} \begin{equation}
S = I - \omega D^{-1} A , S = I - \omega D^{-1} A ,
\label{eq:jac_smoother} \label{eq:jac_smoother}
\end{equation} \end{equation}
where the value of $\omega$ can be chosen where the value of $\omega$ can be chosen
using some estimate of the spectral radius of $D^{-1}A$ \cite{Brezina_Vanek}. using some estimate of the spectral radius of $D^{-1}A$ \cite{BREZINA_VANEK}.
% %
%\textbf{NOTA: filtering di $A$ nello smoothing, da implementare?} %\textbf{NOTA: filtering di $A$ nello smoothing, da implementare?}
% %

@ -1,25 +1,41 @@
\begin{thebibliography}{99} \section{Bibliography\label{sec:bib}}
\markboth{\underline{MLD2P4 User's and Reference Guide}}
{\underline{\ref{sec:bib} Bibliography}}
\let\refname\relax
\begin{thebibliography}{99}
%
%\bibitem{PARA04FOREST}
%G.~Bella, S.~Filippone, A.~De Maio, A., Testa, M.:
%A Simulation Model for Forest Fires.
%In: Dongarra, J., Madsen, K., Wasniewski, J. (eds.):
%Proceedings of PARA~04 Workshop on State of the Art
%in Scientific Computing. Lecture Notes in Computer Science, 3732. Berlin:
%Springer, 2005
%
\bibitem{BREZINA_VANEK}
M.~Brezina, P.~Van{\v e}k,
{\em A Black-Box Iterative Solver Based on a Two-Level Schwarz Method},
Computing, 63, 1999, 233--263.
% %
\bibitem{PARA04FOREST} \bibitem{para_04}
Bella, G., Filippone, S., De Maio, A., Testa, M.: A.~Buttari, P.~D'Ambra, D.~di Serafino, S.~Filippone,
A Simulation Model for Forest Fires. {\em Extending PSBLAS to Build Parallel Schwarz Preconditioners},
In: Dongarra, J., Madsen, K., Wasniewski, J. (eds.): in , J.~Dongarra, K.~Madsen, J.~Wasniewski, editors,
Proceedings of PARA~04 Workshop on State of the Art Proceedings of PARA~04 Workshop on State of the Art
in Scientific Computing. Lecture Notes in Computer Science, 3732. Berlin: in Scientific Computing, Lecture Notes in Computer Science,
Springer, 2005 Springer, 2005, 593--602.
% %
\bibitem{aaecc_07} A. Buttari, D. di Serafino, P. D'Ambra, S. Filippone,\newblock \bibitem{aaecc_07} A.~Buttari, P.~D'Ambra, D.~di~Serafino, S.~Filippone,
2LEV-D2P4: a package of high-performance preconditioners,\newblock {\em 2LEV-D2P4: a package of high-performance preconditioners},
Applicable Algebra in Engineering, Communications and Computing, Applicable Algebra in Engineering, Communications and Computing,
Volume 18, Number 3, May, 2007, pp. 223-239 18, 3, May, 2007, 223--239.
%Published online: 13 February 2007, {\tt http://dx.doi.org/10.1007/s00200-007-0035-z} %Published online: 13 February 2007, {\tt http://dx.doi.org/10.1007/s00200-007-0035-z}
% %
\bibitem{apnum_07} P. D'Ambra, S. Filippone, D. Di Serafino\newblock \bibitem{apnum_07} P.~D'Ambra, S.~Filippone, D.~Di~Serafino,
On the Development of PSBLAS-based Parallel Two-level Schwarz Preconditioners {\em On the Development of PSBLAS-based Parallel Two-level Schwarz Preconditioners},
\newblock
Applied Numerical Mathematics, Elsevier Science, Applied Numerical Mathematics, Elsevier Science,
Volume 57, Issues 11-12, November-December 2007, Pages 1181-1196. 57, 11-12, 2007, 1181-1196.
%published online 3 February 2007, {\tt %published online 3 February 2007, {\tt
% http://dx.doi.org/10.1016/j.apnum.2007.01.006} % http://dx.doi.org/10.1016/j.apnum.2007.01.006}
@ -30,118 +46,127 @@ Volume 57, Issues 11-12, November-December 2007, Pages 1181-1196.
%% (See also {\tt http://www.mgnet.org/~douglas/ccd-codes.html}) %% (See also {\tt http://www.mgnet.org/~douglas/ccd-codes.html})
% %
% %
\bibitem{para_04}
A.~Buttari, P.~D'Ambra, D.~di Serafino and S.~Filippone,
{\em Extending PSBLAS to Build Parallel Schwarz Preconditioners},
in , J.~Dongarra, K.~Madsen, J.~Wasniewski, editors,
Proceedings of PARA~04 Workshop on State of the Art
in Scientific Computing, pp.~593--602, Lecture Notes in Computer Science,
Springer, 2005.
%
%% \bibitem{CAI_SAAD} %% \bibitem{CAI_SAAD}
%% X.~C.~Cai and Y.~Saad, %% X.~C.~Cai and Y.~Saad,
%% {\em Overlapping Domain Decomposition Algorithms for General Sparse Matrices}, %% {\em Overlapping Domain Decomposition Algorithms for General Sparse Matrices},
%% Numerical Linear Algebra with Applications, 3(3), pp.~221--237, 1996. %% Numerical Linear Algebra with Applications, 3(3), pp.~221--237, 1996.
%% % %
%% \bibitem{CAI_SARKIS} \bibitem{CAI_SARKIS}
%% X.C.~Cai and M.~Sarkis, X.~C.~Cai, M.~Sarkis,
%% {\em A Restricted Additive Schwarz Preconditioner for General Sparse Linear Systems}, {\em A Restricted Additive Schwarz Preconditioner for General Sparse Linear Systems},
%% SIAM Journal on Scientific Computing, 21(2), pp.~792--797, 1999. SIAM Journal on Scientific Computing, 21, 2, 1999, 792--797.
% %
\bibitem{Cai_Widlund_92} \bibitem{Cai_Widlund_92}
X.C.~Cai and O.~B.~Widlund, X.~C.~Cai, O.~B.~Widlund,
{\em Domain Decomposition Algorithms for Indefinite Elliptic Problems}, {\em Domain Decomposition Algorithms for Indefinite Elliptic Problems},
SIAM Journal on Scientific and Statistical Computing, 13(1), pp.~243--258, 1992. SIAM Journal on Scientific and Statistical Computing, 13, 1, 1992, 243--258.
% %
\bibitem{dd1_94} \bibitem{dd1_94}
T.~Chan and T.~Mathew, T.~Chan and T.~Mathew,
{\em Domain Decomposition Algorithms}, {\em Domain Decomposition Algorithms},
in A.~Iserles, editor, Acta Numerica 1994, pp.~61--143, 1994. in A.~Iserles, editor, Acta Numerica 1994, 61--143.
Cambridge University Press. Cambridge University Press.
%% % %
%% \bibitem{UMFPACK} \bibitem{UMFPACK}
%% T.A.~Davis, T.A.~Davis,
%% {\em Algorithm 832: UMFPACK - an Unsymmetric-pattern Multifrontal {\em Algorithm 832: UMFPACK - an Unsymmetric-pattern Multifrontal
%% Method with a Column Pre-ordering Strategy}, Method with a Column Pre-ordering Strategy},
%% ACM Transactions on Mathematical Software, 30, pp.~196--199, 2004. ACM Transactions on Mathematical Software, 30, 2004, 196--199.
%% (See also {\tt http://www.cise.ufl.edu/~davis/}) (See also {\tt http://www.cise.ufl.edu/~davis/})
%% % %
%% \bibitem{SUPERLU} \bibitem{SUPERLU}
%% J.W.~Demmel, S.C.~Eisenstat, J.R.~Gilbert, X.S.~Li and J.W.H.~Liu, J.W.~Demmel, S.C.~Eisenstat, J.R.~Gilbert, X.S.~Li and J.W.H.~Liu,
%% A supernodal approach to sparse partial pivoting, A supernodal approach to sparse partial pivoting,
%% SIAM Journal on Matrix Analysis and Applications, 20(3), pp.~720--755, 1999. SIAM Journal on Matrix Analysis and Applications, 20, 3, 1999, 720--755.
% %
\bibitem{BLACS} %\bibitem{BLACS}
J.~J.~Dongarra and R.~C.~Whaley, %J.~J.~Dongarra and R.~C.~Whaley,
{\em A User's Guide to the BLACS v.~1.1}, %{\em A User's Guide to the BLACS v.~1.1},
Lapack Working Note 94, Tech.\ Rep.\ UT-CS-95-281, University of %Lapack Working Note 94, Tech.\ Rep.\ UT-CS-95-281, University of
Tennessee, March 1995 (updated May 1997). %Tennessee, March 1995 (updated May 1997).
% %
\bibitem{sblas_97} %\bibitem{sblas_97}
I.~Duff, M.~Marrone, G.~Radicati and C.~Vittoli, %I.~Duff, M.~Marrone, G.~Radicati and C.~Vittoli,
{\em Level 3 Basic Linear Algebra Subprograms for Sparse Matrices: %{\em Level 3 Basic Linear Algebra Subprograms for Sparse Matrices:
a User Level Interface}, %a User Level Interface},
ACM Transactions on Mathematical Software, 23(3), pp.~379--401, 1997. %ACM Transactions on Mathematical Software, 23(3), pp.~379--401, 1997.
% %
\bibitem{sblas_02} %\bibitem{sblas_02}
I.~Duff, M.~Heroux and R.~Pozo, %I.~Duff, M.~Heroux and R.~Pozo,
{\em An Overview of the Sparse Basic Linear %{\em An Overview of the Sparse Basic Linear
Algebra Subprograms: the New Standard from the BLAS Technical Forum}, %Algebra Subprograms: the New Standard from the BLAS Technical Forum},
ACM Transactions on Mathematical Software, 28(2), pp.~239--267, 2002. %ACM Transactions on Mathematical Software, 28(2), pp.~239--267, 2002.
%
\bibitem{EFSTATHIOU}
E.~Efstathiou, J.~G.~Gander,
{\em Why Restricted Additive Schwarz Converges Faster than Additive Schwarz},
BIT Numerical Mathematics, 43, 2003, 945--959.
%
\bibitem{PSBLASGUIDE}
S.~Filippone, A.~Buttari,
{\em PSBLAS-2.1 User's Guide. A Reference Guide for the Parallel Sparse BLAS Library},
xxxxx.
% %
\bibitem{psblas_00} \bibitem{psblas_00}
S.~Filippone and M.~Colajanni, S.~Filippone, M.~Colajanni,
{\em PSBLAS: A Library for Parallel Linear Algebra {\em PSBLAS: A Library for Parallel Linear Algebra
Computation on Sparse Matrices}, Computation on Sparse Matrices},
\newblock ACM Transactions on Mathematical Software, 26, 4, 2000, 527--550.
ACM Transactions on Mathematical Software, 26(4), pp.~527--550, 2000. \bibitem{SUPERLUDIST}
% X.~S.~Li, J.~W.~Demmel, {\em SuperLU\_DIST: A Scalable Distributed-memory Sparse Direct Solver for Unsymmetric Linear Systems},
\bibitem{KIVA3PSBLAS} ACM Transactions on Mathematical Software, 29, 2, 2003, 110--140.
S.~Filippone, P.~D'Ambra, M.~Colajanni, %
{\em Using a Parallel Library of Sparse Linear Algebra in a Fluid Dynamics %\bibitem{KIVA3PSBLAS}
Applications Code on Linux Clusters}, %S.~Filippone, P.~D'Ambra, M.~Colajanni,
in G.~Joubert, A.~Murli, F.~Peters, M.~Vanneschi, editors, %{\em Using a Parallel Library of Sparse Linear Algebra in a Fluid Dynamics
Parallel Computing - Advances \& Current Issues, %Applications Code on Linux Clusters},
pp.~441--448, Imperial College Press, 2002. %in G.~Joubert, A.~Murli, F.~Peters, M.~Vanneschi, editors,
% %Parallel Computing - Advances \& Current Issues,
\bibitem{METIS} %pp.~441--448, Imperial College Press, 2002.
Karypis, G. and Kumar, V., %
{\em {METIS}: Unstructured Graph Partitioning and Sparse Matrix %\bibitem{METIS}
Ordering System}. %Karypis, G. and Kumar, V.,
Minneapolis, MN 55455: University of Minnesota, Department of %{\em {METIS}: Unstructured Graph Partitioning and Sparse Matrix
Computer Science, 1995. % Ordering System}.
Internet Address: {\verb|http://www.cs.umn.edu/~karypis|}. %Minneapolis, MN 55455: University of Minnesota, Department of
\bibitem{BLAS1} % Computer Science, 1995.
Lawson, C., Hanson, R., Kincaid, D. and Krogh, F., %Internet Address: {\verb|http://www.cs.umn.edu/~karypis|}.
Basic {L}inear {A}lgebra {S}ubprograms for {F}ortran usage, %\bibitem{BLAS1}
{ACM Trans. Math. Softw.} vol.~{5}, 38--329, 1979. %Lawson, C., Hanson, R., Kincaid, D. and Krogh, F.,
% Basic {L}inear {A}lgebra {S}ubprograms for {F}ortran usage,
\bibitem{machiels} %{ACM Trans. Math. Softw.} vol.~{5}, 38--329, 1979.
{Machiels, L. and Deville, M.} %
{\em Fortran 90: An entry to object-oriented programming for the solution %\bibitem{machiels}
of partial differential equations.} %{Machiels, L. and Deville, M.}
{ACM Trans. Math. Softw.} vol.~{23}, 32--49. %{\em Fortran 90: An entry to object-oriented programming for the solution
\bibitem{metcalf} % of partial differential equations.}
{Metcalf, M., Reid, J. and Cohen, M.} %{ACM Trans. Math. Softw.} vol.~{23}, 32--49.
{\em Fortran 95/2003 explained.} %\bibitem{metcalf}
{Oxford University Press}, 2004. %{Metcalf, M., Reid, J. and Cohen, M.}
%{\em Fortran 95/2003 explained.}
%{Oxford University Press}, 2004.
%
\bibitem{dd2_96} \bibitem{dd2_96}
B.~Smith, P.~Bjorstad and W.~Gropp, B.~Smith, P.~Bjorstad, W.~Gropp,
{\em Domain Decomposition: Parallel Multilevel Methods for Elliptic {\em Domain Decomposition: Parallel Multilevel Methods for Elliptic
Partial Differential Equations}, Partial Differential Equations},
Cambridge University Press, 1996. Cambridge University Press, 1996.
%
\bibitem{MPI1} \bibitem{MPI1}
M.~Snir, S.~Otto, S.~Huss-Lederman, D.~Walker and J.~Dongarra, M.~Snir, S.~Otto, S.~Huss-Lederman, D.~Walker, J.~Dongarra,
{\em MPI: The Complete Reference. Volume 1 - The MPI Core}, second edition, {\em MPI: The Complete Reference. Volume 1 - The MPI Core}, second edition,
MIT Press, 1998. MIT Press, 1998.
% %
\bibitem{BREZINA_VANEK} \bibitem{StubenGMD69_99}
M.~Brezina and P.~Van{\v e}k, K.~St\"{u}ben,
{\em A Black-Box Iterative Solver Based on a Two-Level Schwarz Method}, {\em Algebraic Multigrid (AMG): an Introduction with Applications},
Computing, 1999, 63, 233-263. in A.~Sch\"{u}ller, U.~Trottenberg, C.~Oosterlee, editors, Multigrid,
Academic Press, 2000.
% %
\bibitem{TUMINARO_TONG}
R.~S.~Tuminaro, C.~Tong,
{\em Parallel Smoothed Aggregation Multigrid: Aggregation Strategies on Massively Parallel Machines},
in J. Donnelley, editor, Proceedings of SuperComputing 2000, Dallas, 2000.
% %
\bibitem{VANEK_MANDEL_BREZINA} \bibitem{VANEK_MANDEL_BREZINA}
P.~Van{\v e}k, J.~Mandel and M.~Brezina, P.~Van{\v e}k, J.~Mandel and M.~Brezina,
@ -149,4 +174,4 @@ P.~Van{\v e}k, J.~Mandel and M.~Brezina,
Computing, 1996, 56, 179-196. Computing, 1996, 56, 179-196.
% %
\end{thebibliography} \end{thebibliography}

@ -1,4 +1,6 @@
\section{Configuring and Building MLD2P4\label{sec:configuring}} \section{Configuring and Building MLD2P4\label{sec:configuring}}
\markboth{\underline{MLD2P4 User's and Reference Guide}}
{\underline{\ref{sec:configuring} Configuring and Building}}
- uso di GNU autoconf e automake \\ - uso di GNU autoconf e automake \\
- software di base necessario (MPI, BLACS, BLAS, PSBLAS, UMFPACK ? - specificare versioni)\\ - software di base necessario (MPI, BLACS, BLAS, PSBLAS, UMFPACK ? - specificare versioni)\\
- software opzionale (SuperLU, SuperLUdist - specificare versioni e opzioni di configure)\\ - software opzionale (SuperLU, SuperLUdist - specificare versioni e opzioni di configure)\\

@ -1,4 +1,7 @@
\section{Notational Conventions\label{sec:conventions}} \section{Notational Conventions\label{sec:conventions}}
\markboth{\underline{MLD2P4 User's and Reference Guide}}
{\underline{\ref{sec:conventions} Notational conventions}}
- caratteri tipografici usati nella guida (vedi guida ML recente e guida Aztec) \\ - caratteri tipografici usati nella guida (vedi guida ML recente e guida Aztec) \\
- convenzioni sui nomi di routine (differenza nei nomi tra high-level e medium-level), - convenzioni sui nomi di routine (differenza nei nomi tra high-level e medium-level),
strutture dati, moduli, costanti, etc. (vedi guida psblas) \\ strutture dati, moduli, costanti, etc. (vedi guida psblas) \\

@ -1,4 +1,6 @@
\section{Code Distribution\label{sec:distribution}} \section{License\label{sec:distribution}}
\markboth{\underline{MLD2P4 User's and Reference Guide}}
{\underline{\ref{sec:distribution} License}}
The MLD2P4 is freely distributable under the following copyright The MLD2P4 is freely distributable under the following copyright
terms: {\small terms: {\small

@ -1,4 +1,6 @@
\section{Error Handling}\label{sec:errors} \section{Error Handling}\label{sec:errors}
\markboth{\underline{MLD2P4 User's and Reference Guide}}
{\underline{\ref{sec:errors} Error handling}}
Error handling Error handling
- Breve descrizione con rinvio alla guida di PSBLAS - Breve descrizione con rinvio alla guida di PSBLAS

@ -1,7 +1,9 @@
\section{Getting Started\label{sec:started}} \section{Getting Started\label{sec:started}}
\markboth{\underline{MLD2P4 User's and Reference Guide}}
{\underline{\ref{sec:started} Getting started}}
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{PSBLASGUIDE}.
The following 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, \item \emph{Declare the preconditioner data structure}. It is a derived data type,
@ -50,11 +52,12 @@ preconditioner has been chosen by taking into account that, on parallel
machines, it often leads to the smallest execution time when applied to machines, it often leads to the smallest execution time when applied to
linear systems coming from finite-difference discretizations of basic linear systems coming from finite-difference discretizations of basic
elliptic PDE problems, considered as standard tests for multi-level Schwarz elliptic PDE problems, considered as standard tests for multi-level Schwarz
preconditioners \cite{apnum_07,aaecc_07}. However, this solver does not correspond preconditioners \cite{aaecc_07,apnum_07}. However, this solver does
to the smallest number of iterations of the preconditioned Krylov method, which is not necessarily to the smallest number of iterations of the
usually obtained by applying a direct solver, e.g.\ based on the LU factorization, at preconditioned Krylov method, which is usually obtained by applying a
the coarsest level (see Section~\ref{sec:userinterface} for coarsest-level direct solver, e.g.\ based on the LU factorization, on a matrix
solvers available in MLD2P4). replicated at the coarsest level (see Section~\ref{sec:userinterface}
for coarsest-level solvers available in MLD2P4).
\begin{table}[th] \begin{table}[th]
{ {
@ -108,7 +111,7 @@ in the directory \textbf{XXXXXX (COMPLETARE. DIRE CHE I FILE IN REALTA' SONO DUE
LA GENERAZIONE DELLA MATRICE ED UNO CON LA LETTURA).} Note that the modules \verb|psb_base_mod| LA GENERAZIONE DELLA MATRICE ED UNO CON LA LETTURA).} Note that the modules \verb|psb_base_mod|
and \verb|psb_util_mod| at the beginning of the code are required by PSBLAS. and \verb|psb_util_mod| at the beginning of the code are required by PSBLAS.
\textbf{O psb\_base\_mod} E' RICHIESTO ANCHE DA MLD2P4?) \textbf{O psb\_base\_mod} E' RICHIESTO ANCHE DA MLD2P4?)
For details on the use of the PSBLAS routines, see the PSBLAS User's Guide \cite{}. For details on the use of the PSBLAS routines, see the PSBLAS User's Guide \cite{PSBLASGUIDE}.
\textbf{LE FIGURE SONO DECENTRATE, NONOSTANTE IL CENTER. CI VUOLE UNA MINIPAGE?} \textbf{LE FIGURE SONO DECENTRATE, NONOSTANTE IL CENTER. CI VUOLE UNA MINIPAGE?}
@ -178,7 +181,7 @@ the default values of the preconditioner parameters. The code reported in
Figure~\ref{fig:ex_3lh} shows how to set a three-level hybrid Schwarz Figure~\ref{fig:ex_3lh} shows how to set a three-level hybrid Schwarz
preconditioner, which uses block Jacobi with ILU(0) on the preconditioner, which uses block Jacobi with ILU(0) on the
local blocks as post-smoother, a coarsest matrix replicated on the processors, local blocks as post-smoother, a coarsest matrix replicated on the processors,
and the LU factorization from UMFPACK as coarse-level solver. and the LU factorization from UMFPACK~\cite{UMFPACK}, version 4.4, as coarse-level solver.
The number of levels is specified by using \verb|mld_precinit|; the other The number of levels is specified by using \verb|mld_precinit|; the other
preconditioner parameters are set by calling \verb|mld_precset|. Note that preconditioner parameters are set by calling \verb|mld_precset|. Note that
the type of multilevel framework (i.e.\ multiplicative among the levels the type of multilevel framework (i.e.\ multiplicative among the levels
@ -189,13 +192,14 @@ which applies RAS, with overlap 1 and ILU(0) on the blocks,
as pre- and post-smoother, and five block-Jacobi sweeps, with as pre- and post-smoother, and five block-Jacobi sweeps, with
the UMFPACK LU factorization on the blocks, as distributed coarsest-level the UMFPACK LU factorization on the blocks, as distributed coarsest-level
solver. Again, \verb|mld_precset| is used only to set solver. Again, \verb|mld_precset| is used only to set
non-default values of the parameters (see Tables~\ref{tab:ptype}-\ref{tab:pcoarse}). non-default values of the parameters (see Tables~\ref{tab:p_type}-\ref{tab:p_coarse}).
In both cases, the construction and the application of the preconditioner In both cases, the construction and the application of the preconditioner
are carried out as for the default multi-level preconditioner. are carried out as for the default multi-level preconditioner.
The code fragments shown in in Figures~\ref{fig:ex_3lh}-\ref{fig:3la} are The code fragments shown in in Figures~\ref{fig:ex_3lh}-\ref{fig:ex_3la} are
included in the example program file \verb|example_ml.f90|. included in the example program file \verb|example_ml.f90|.
\textbf{LO STESSO PROGRAMMA CONTIENE I TRE ESEMPI, CON UN SWITCH TRA L'UNO E L'ALTRO \textbf{LO STESSO PROGRAMMA CONTIENE I TRE ESEMPI, CON UN SWITCH TRA L'UNO E L'ALTRO
O FACCIAMO 3 PROGRAMMI DISTINTI? NON RICORDO CHE COSA ABBIAMO DECISO.} O FACCIAMO 3 PROGRAMMI DISTINTI? NON RICORDO CHE COSA ABBIAMO DECISO.
PASQUA: ABBIAMO DETTO CHE ERA PREFERIBILE UN UNICO PROGRAMMA CON SWITCH.}
Finally, Figure~\ref{fig:ex_1l} shows the setup of a one-level Finally, Figure~\ref{fig:ex_1l} shows the setup of a one-level
additive Schwarz preconditioner, i.e. RAS with overlap 2. The corresponding code, additive Schwarz preconditioner, i.e. RAS with overlap 2. The corresponding code,

@ -1,4 +1,6 @@
\section{User Interface\label{sec:highlevel}} \section{User Interface\label{sec:highlevel}}
\markboth{\underline{MLD2P4 User's and Reference Guide}}
{\underline{\ref{sec:overview} 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 \verb|mld_precset|, \verb|mld_precbld| and \verb|mld_precaply| encapsulate all the functionalities

@ -1,4 +1,6 @@
\section{Introduction}\label{sec:intro} \section{Introduction}\label{sec:intro}
\markboth{\underline{MLD2P4 User's and Reference Guide}}
{\underline{\ref{sec:overview} Introduction}}
The MLD2P4 library provides .... The MLD2P4 library provides ....

@ -1,5 +1,7 @@
\section{Iterative Methods} \section{Iterative Methods}
\label{sec:methods} \label{sec:methods}
\markboth{\underline{MLD2P4 User's and Reference Guide}}
{\underline{\ref{sec:methods} Iterative Methods}}
In this chapter we provide routines for preconditioners and iterative In this chapter we provide routines for preconditioners and iterative
methods. The interfaces for Krylov subspace methods are available in methods. The interfaces for Krylov subspace methods are available in

@ -4,7 +4,7 @@
{\underline{\ref{sec:overview} General Overview}} {\underline{\ref{sec:overview} General Overview}}
The \textsc{Multi-Level Domain Decomposition Parallel Preconditioners Package based on The \textsc{Multi-Level Domain Decomposition Parallel Preconditioners Package based on
PSBLAS (MLD2P4}) provides \emph{multi-level Schwarz preconditioners}~\cite{DD2}, PSBLAS (MLD2P4}) provides \emph{multi-level Schwarz preconditioners}~\cite{dd2_96},
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}
%%% Local Variables: %%% Local Variables:
%%% mode: latex %%% mode: latex

@ -1,5 +1,7 @@
\section{Preconditioner routines} \section{Preconditioner routines}
\label{sec:precs} \label{sec:precs}
\markboth{\underline{MLD2P4 User's and Reference Guide}}
{\underline{\ref{sec:precs} Preconditioners}}
% \section{Preconditioners} % \section{Preconditioners}
\label{sec:psprecs} \label{sec:psprecs}

@ -83,6 +83,7 @@
\newcommand{\precdata}{\hyperlink{precdata}{{\tt mld\_prec\_type}}} \newcommand{\precdata}{\hyperlink{precdata}{{\tt mld\_prec\_type}}}
\newcommand{\descdata}{\hyperlink{descdata}{{\tt psb\_desc\_type}}} \newcommand{\descdata}{\hyperlink{descdata}{{\tt psb\_desc\_type}}}
\newcommand{\spdata}{\hyperlink{spdata}{{\tt psb\_spmat\_type}}} \newcommand{\spdata}{\hyperlink{spdata}{{\tt psb\_spmat\_type}}}
\newcommand{\Ref}[1]{\mbox{(\ref{#1})}}
\begin{document} \begin{document}
\include{title} \include{title}
@ -111,7 +112,6 @@
\include{overview} \include{overview}
\include{conventions} \include{conventions}
\include{distribution}
\include{building} \include{building}
\include{background} \include{background}
\include{gettingstarted} \include{gettingstarted}
@ -119,6 +119,9 @@
%\include{advanced} %\include{advanced}
\include{errors} \include{errors}
%\include{listofroutines} %\include{listofroutines}
\cleardoublepage
\appendix
\include{distribution}
\cleardoublepage \cleardoublepage

@ -1,4 +1,6 @@
\section{User Interface\label{sec:userinterface}} \section{User Interface\label{sec:userinterface}}
\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.
\subsubsection*{Arguments} \subsubsection*{Arguments}
\begin{tabular}{p{1.2cm}p{11.5cm}} \begin{tabular}{p{1.2cm}p{11.5cm}}
\verb|p| & \verb|type(mld_|\emph{x}\verb|prec_type), intent(inout)|. \verb|p| & \verb|type(mld_|\emph{x}\verb|prec_type), intent(inout)|.\\
\textbf{CONTROLLARE SE DEVE ESSERE INOUT O SOLO OUT} \\
& The preconditioner data structure. Note that \emph{x} & The preconditioner data structure. Note that \emph{x}
must be chosen according to the real/complex, single/double must be chosen according to the real/complex, single/double
precision version of MLD2P4 under use.\\ precision version of MLD2P4 under use.\\
@ -147,10 +148,9 @@ ACCESSIBILE ALL'UTENTE.}
MULTILEVEL.} \\ MULTILEVEL.} \\
\verb|mld_smoother_pos_| & \verb|character(len=*)| \verb|mld_smoother_pos_| & \verb|character(len=*)|
& 'PRE' \ \ \ 'POST' \ \ \ 'TWOSIDE' & 'PRE' \ \ \ 'POST' \ \ \ 'TWOSIDE'
& 2,...,\verb|nlev| & 'POST'
& ``position'' of the smoother: pre-smoother, post-smoother, & ``position'' of the smoother: pre-smoother, post-smoother,
pre-/post-smoother \textbf{PREFERISCO TWOSIDE A BOTH pre-/post-smoother \\
PERCHE' E' DIVERSO DA TRILINOS} \\
\hline \hline
\end{tabular} \end{tabular}
\end{center} \end{center}
@ -168,31 +168,33 @@ ACCESSIBILE ALL'UTENTE.}
\verb|mld_sub_ovr| & \verb|integer| \verb|mld_sub_ovr| & \verb|integer|
& any number $\ge 0$ & any number $\ge 0$
& 1 & 1
& \textbf{CAMBIARE NOME PARAMETRO NEL SW} \\ & \textbf{CAMBIARE NOME PARAMETRO NEL SW} number of overlap in the basic Schwarz preconditioner \\
\verb|mld_sub_restr_| & \verb|mld_sub_restr_| & \verb|character(len=*)|
& & 'HALO' \ \ \ 'NONE'
& & 'HALO'
& \\ & type of restriction operator used in basic Schwarz preconditioner: 'HALO' for taking into account contributions from the overlap \\
\verb|mld_sub_prol_| & \verb|mld_sub_prol_| & \verb|character(len=*)|
& & 'SUM' \ \ \ 'NONE'
& & 'NONE'
& \\ & type of prolongator operator used in basic Schwarz preconditioner: 'NONE' for neglecting contributions from the overlap \\
\verb|mld_sub_solve_| & \verb|mld_sub_solve_| & \verb|character(len=*)|
& & 'ILU' \ \ \ 'MILU' \ \ \ 'ILUT' \ \ \ 'UMF' \ \ \ 'SLU'
& & 'UMF'
& \\ & 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 $\ge 0$
& \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 $\ge 0.$
& \\ & 0.
\verb|mld_sub_ren_| & & drop tolerance for 'ILUT'
& \textbf{NELLA DOCUMENTAZIONE INTERNA DELLA ROUTINE DI FATTORIZZAZIONE C'E' INTERO, CAMBIARE!}\\
\verb|mld_sub_ren_| & \verb|character(len=*)|
& \textbf{MANCA COSTANTE STRINGA ASSOCIATA}
& &
& \textbf{MANCA COSTANTE STRINGA ASSOCIATA} \\ & reordering algorithm for the local blocks \\
\hline \hline
\end{tabular} \end{tabular}
@ -208,22 +210,23 @@ ACCESSIBILE ALL'UTENTE.}
\verb|what| & \emph{data type} & \verb|val| & \emph{default} & \verb|what| & \emph{data type} & \verb|val| & \emph{default} &
\emph{comments} \\ \hline \emph{comments} \\ \hline
%\multicolumn{5}{|c|}{\emph{aggregation algorithm}} \\ \hline %\multicolumn{5}{|c|}{\emph{aggregation algorithm}} \\ \hline
\verb|mld_aggr_alg_| & \verb|mld_aggr_alg_| & \verb|character(len=*)|
& & 'DEC'
& & 'DEC'
& \\ & define the aggregation scheme. Now, only decoupled aggregation is available\\
\verb|mld_aggr_kind_| & \verb|mld_aggr_kind_| & \verb|character(len=*)|
& & 'SMOOTH', 'RAW'
& & 'SMOOTH'
& \\ & define the type of aggregation technique (smoothed or nonsmoothed). \\
\verb|mld_aggr_thresh_| & \verb|mld_aggr_thresh_| & \verb|real|
& & any number $\in [0, 1]$
& & 0.
& \\ & dropping threshold in aggregation \\
\verb|mld_aggr_eig_| & \verb|mld_aggr_eig_| & \verb|character(len=*)|
& & \textbf{MANCA STRINGA CORRISPONDENTE a mld\_max\_norm}
& & 'ANORM'???
& \textbf{MANCA STRINGA CORRISPONDENTE a mld\_max\_norm} \\ & define the algorithm to evaluate the maximum eigenvalue of $D^{-1}A$ for smoothed
aggregation. Now, only the A-norm of the matrix is available\\
\hline \hline
\end{tabular} \end{tabular}
\end{center} \end{center}
@ -238,30 +241,32 @@ ACCESSIBILE ALL'UTENTE.}
\verb|what| & \emph{data type} & \verb|val| & \emph{default} & \verb|what| & \emph{data type} & \verb|val| & \emph{default} &
\emph{comments} \\ \hline \emph{comments} \\ \hline
%\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. \\
& \verb|mld_coarse_subsolve_| & \verb|character(len=*)|
& \textbf{VEDI OSSERVAZIONI EMAIL 15-16/06/08}\\ & 'ILU' \ \ \ 'MILU' \ \ \ 'ILUT' \ \ \ 'UMF' \ \ \ 'SLU'
\verb|mld_coarse_sweeps_|& & 'UMF'
& & \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 $\ge 0$
\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 $\ge 0.$
& 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}.\\
\verb|desc_a| & \verb|type(psb_desc_type), intent(in)|. \\ \verb|desc_a| & \verb|type(psb_desc_type), intent(in)|. \\
& The communication descriptor of a. See the PSBLAS User's Guide for & The communication descriptor of a. See the PSBLAS User's Guide for
details \cite{ }.\\ details \cite{PSBLASGUIDE}.\\
\verb|p| & \verb|type(mld_|\emph{x}\verb|prec_type), intent(inout)|.\\ \verb|p| & \verb|type(mld_|\emph{x}\verb|prec_type), intent(inout)|.\\
& The preconditioner data structure. Note that \emph{x} must be chosen according & The preconditioner data structure. 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.\\

File diff suppressed because it is too large Load Diff
Loading…
Cancel
Save