% contents=\framebox{ begin{minipage}{.85\textwidth}{\small begin{tabbing}\quad\=\quad\=\quad\=\quad\\[-1mm]$v_1= v$; \\[2mm]\textbf{for $l=2, nlev$\ do}\\[1mm]\> ! transfer $v_{l-1}$\ to the next ...}
<BR><FONTSIZE="+1">University of Rome ``Tor Vergata'', Italy
</FONT></FONT></FONT></DIV></TD></TR>
</TABLE>
<P>
<BR>
<BR>
<TABLEWIDTH="100%">
<BR><B>Salvatore Filippone</B>
<TR><TD>
<DIVALIGN="RIGHT">
<FONTSIZE="+1">Software version: 1.0
<BR>
<BR>
July 22, 2008
University of Rome ``Tor Vergata'', Italy
Software version: 1.0
</FONT></DIV></TD></TR>
</TABLE>
<P>
<BR>
<BR>
July 24, 2008
<BR>
<BR>
<P>
<P>
<P>
<P>
<BR><HR>
<H3>Abstract:</H3>
<DIV>
MLD2P4 (M<SMALL>ULTI-</SMALL>L<SMALL>EVEL </SMALL>D<SMALL>OMAIN </SMALL>D<SMALL>ECOMPOSITION </SMALL>P<SMALL>ARALLEL </SMALL>P<SMALL>RECONDITIONERS </SMALL>P<SMALL>ACKAGE BASED ON
</SMALL>PSBLAS) is a package of parallel algebraic multi-level preconditioners.
It implements various versions of one-level additive and of multi-level additive
and hybrid Schwarz algorithms. In the multi-level case, a purely algebraic approach
is applied to generate coarse-level corrections, so that no geometric background is needed
concerning the matrix to be preconditioned. The matrix is required to be square, real
or complex, with a symmetric sparsity pattern.
<P>
MLD2P4 has been designed to provide scalable and easy-to-use preconditioners in the
context of the PSBLAS (Parallel Sparse Basic Linear Algebra Subprograms)
computational framework and can be used in conjuction with the Krylov solvers
available in this framework. MLD2P4 enables the user to easily specify different aspects
of a generic algebraic multilevel Schwarz preconditioner, thus allowing to search
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
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)
paradigm for distributed-memory architectures; the inter-process data
communication is based on MPI and is managed mainly through PSBLAS.
<P>
This guide provides a brief description of the functionalities and
the user interface of MLD2P4.
</DIV>
<P>
<P>
<BR><HR>
<!--Table of Child-Links-->
<!--Table of Child-Links-->
<ANAME="CHILD_LINKS"></A>
<ANAME="CHILD_LINKS"></A>
<UL>
<ULCLASS="ChildLinks">
<LI><ANAME="tex2html15"
<LI><ANAME="tex2html15"
HREF="node1.html">Contents</A>
HREF="node1.html">Abstract</A>
<LI><ANAME="tex2html16"
<LI><ANAME="tex2html16"
HREF="node2.html">General Overview</A>
HREF="node2.html">Contents</A>
<LI><ANAME="tex2html17"
<LI><ANAME="tex2html17"
HREF="node3.html">Notational Conventions</A>
HREF="node3.html">General Overview</A>
<LI><ANAME="tex2html18"
<LI><ANAME="tex2html18"
HREF="node4.html">Code Distribution</A>
HREF="node4.html">Code Distribution</A>
<LI><ANAME="tex2html19"
<LI><ANAME="tex2html19"
@ -238,29 +169,10 @@ the user interface of MLD2P4.
MLD2P4 (M<SMALL>ULTI-</SMALL>L<SMALL>EVEL </SMALL>D<SMALL>OMAIN </SMALL>D<SMALL>ECOMPOSITION </SMALL>P<SMALL>ARALLEL </SMALL>P<SMALL>RECONDITIONERS </SMALL>P<SMALL>ACKAGE BASED ON
<LI><ANAME="tex2html56"
</SMALL>PSBLAS) is a package of parallel algebraic multi-level preconditioners.
HREF="node2.html">General Overview</A>
It implements various versions of one-level additive and of multi-level additive
<LI><ANAME="tex2html57"
and hybrid Schwarz algorithms. In the multi-level case, a purely algebraic approach
HREF="node3.html">Notational Conventions</A>
is applied to generate coarse-level corrections, so that no geometric background is needed
<LI><ANAME="tex2html58"
concerning the matrix to be preconditioned. The matrix is required to be square, real
HREF="node4.html">Code Distribution</A>
or complex, with a symmetric sparsity pattern.
<LI><ANAME="tex2html59"
HREF="node5.html">Configuring and Building MLD2P4</A>
<P>
<UL>
MLD2P4 has been designed to provide scalable and easy-to-use preconditioners in the
<LI><ANAME="tex2html60"
context of the PSBLAS (Parallel Sparse Basic Linear Algebra Subprograms)
HREF="node6.html">Prerequisites</A>
computational framework and can be used in conjuction with the Krylov solvers
<LI><ANAME="tex2html61"
available in this framework. MLD2P4 enables the user to easily specify different aspects
HREF="node7.html">Optional third party libraries</A>
of a generic algebraic multilevel Schwarz preconditioner, thus allowing to search
<LI><ANAME="tex2html62"
for the ``best'' preconditioner for the problem at hand.
HREF="node8.html">Configuration options</A>
<LI><ANAME="tex2html63"
<P>
HREF="node9.html">Example and test programs</A>
The package has been designed employing object-oriented techniques,
</UL>
using Fortran 95, with interfaces to additional third party libraries
<BR>
such as UMFPACK, SuperLU and SuperLU_Dist, that
<LI><ANAME="tex2html64"
can be exploited in building multi-level preconditioners. The parallel
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 [<A
Schwarz preconditioners with the Krylov solvers included in PSBLAS [<A
HREF="node30.html#PSBLASGUIDE">11</A>].
HREF="node30.html#PSBLASGUIDE">14</A>].
The following steps are required:
The following steps are required:
<OL>
<OL>
<LI><I>Declare the preconditioner data structure</I>. It is a derived data type,
<LI><SPAN CLASS="textit">Declare the preconditioner data structure</SPAN>. It is a derived data type,
<code>mld_</code><I>x</I><code>prec_type</code>, where <I>x</I> may be <code>s</code>, <code>d</code>, <code>c</code>
<code>mld_</code><SPAN CLASS="textit">x</SPAN><code>prec_</code><code>type</code>, where <SPAN CLASS="textit">x</SPAN> may be <code>s</code>, <code>d</code>, <code>c</code>
or <code>z</code>, according to the basic data type of the sparse matrix
or <code>z</code>, according to the basic data type of the sparse matrix
(<code>s</code> = real single precision; <code>d</code> = real double precision;
(<code>s</code> = real single precision; <code>d</code> = real double precision;
<code>c</code> = complex single precision; <code>z</code> = complex double precision).
<code>c</code> = complex single precision; <code>z</code> = complex double precision).
This data structure is accessed by the user only through the MLD2P4 routines,
This data structure is accessed by the user only through the MLD2P4 routines,
following an object-oriented approach.
following an object-oriented approach.
</LI>
</LI>
<LI><I>Allocate and initialize the preconditioner data structure, according to
<LI><SPAN CLASS="textit">Allocate and initialize the preconditioner data structure, according to
a preconditioner type chosen by the user</I>. This is performed by the routine
a preconditioner type chosen by the user</SPAN>. This is performed by the routine
<code>mld_precinit</code>, which also sets defaults for each preconditioner
<code>mld_precinit</code>, which also sets defaults for each preconditioner
type selected by the user. The defaults associated to each preconditioner
type selected by the user. The defaults associated to each preconditioner
type are given in Table <AHREF="#tab:precinit"><IMGALIGN="BOTTOM"BORDER="1"ALT="[*]"
type are given in Table <AHREF="#tab:precinit">1</A>, where the strings used by
SRC="file:/usr/share/latex2html/icons/crossref.png"></A>, where the strings used by
<code>mld_precinit</code> to identify the preconditioner types are also given.
<code>mld_precinit</code> to identify the preconditioner types are also given.
Note that these strings are valid also if uppercase letters are substituted by
Note that these strings are valid also if uppercase letters are substituted by
corresponding lowercase ones.
corresponding lowercase ones.
</LI>
</LI>
<LI><I>Modify the selected preconditioner type, by properly setting
<LI><SPAN CLASS="textit">Modify the selected preconditioner type, by properly setting
preconditioner parameters.</I> This is performed by the routine <code>mld_precset</code>.
preconditioner parameters.</SPAN> This is performed by the routine <code>mld_precset</code>.
This routine must be called only if the user wants to modify the default values
This routine must be called only if the user wants to modify the default values
of the parameters associated to the selected preconditioner type, to obtain a variant
of the parameters associated to the selected preconditioner type, to obtain a variant
of the preconditioner. Examples of use of <code>mld_precset</code> are given in
of the preconditioner. Examples of use of <code>mld_precset</code> are given in
<TDALIGN="LEFT"VALIGN="TOP"WIDTH=298>Error code. If no error, 0 is returned. See Section <AHREF="node28.html#sec:errors"><IMGALIGN="BOTTOM"BORDER="1"ALT="[*]"
<TDALIGN="LEFT"VALIGN="TOP"WIDTH=340>Error code. If no error, 0 is returned. See Section <AHREF="node28.html#sec:errors">7</A> for details.</TD>
SRC="file:/usr/share/latex2html/icons/crossref.png"></A> for details.</TD>
<TDALIGN="LEFT"VALIGN="TOP"WIDTH=298>Error code. If no error, 0 is returned. See Section <AHREF="node28.html#sec:errors"><IMGALIGN="BOTTOM"BORDER="1"ALT="[*]"
<TDALIGN="LEFT"VALIGN="TOP"WIDTH=340>Error code. If no error, 0 is returned. See Section <AHREF="node28.html#sec:errors">7</A>
The M<SMALL>ULTI-</SMALL>L<SMALL>EVEL </SMALL>D<SMALL>OMAIN </SMALL>D<SMALL>ECOMPOSITION </SMALL>P<SMALL>ARALLEL </SMALL>P<SMALL>RECONDITIONERS </SMALL>P<SMALL>ACKAGE BASED ON
<TDALIGN="LEFT"VALIGN="TOP"WIDTH=298>Error code. If no error, 0 is returned. See Section <AHREF="node28.html#sec:errors"><IMGALIGN="BOTTOM"BORDER="1"ALT="[*]"
<TDALIGN="LEFT"VALIGN="TOP"WIDTH=340>Error code. If no error, 0 is returned. See Section <AHREF="node28.html#sec:errors">7</A> for details.</TD>
SRC="file:/usr/share/latex2html/icons/crossref.png"></A> for details.</TD>
</TR>
</TR>
</TABLE>
</TABLE>
@ -100,7 +100,7 @@ single/double precision version of MLD2P4 under use.
<TDALIGN="LEFT"VALIGN="TOP"WIDTH=298>Error code. If no error, 0 is returned. See Section <AHREF="node28.html#sec:errors"><IMGALIGN="BOTTOM"BORDER="1"ALT="[*]"
<TDALIGN="LEFT"VALIGN="TOP"WIDTH=340>Error code. If no error, 0 is returned. See Section <AHREF="node28.html#sec:errors">7</A> for details.</TD>
SRC="file:/usr/share/latex2html/icons/crossref.png"></A> for details.</TD>
<TDALIGN="LEFT"VALIGN="TOP"WIDTH=298>Error code. If no error, 0 is returned. See Section <AHREF="node28.html#sec:errors"><IMGALIGN="BOTTOM"BORDER="1"ALT="[*]"
<TDALIGN="LEFT"VALIGN="TOP"WIDTH=298>Error code. If no error, 0 is returned. See Section <AHREF="node28.html#sec:errors">7</A> for details.</TD>
SRC="file:/usr/share/latex2html/icons/crossref.png"></A> for details.</TD>
<TDALIGN="LEFT"VALIGN="TOP"WIDTH=300>Error code. If no error, 0 is returned. See Section <AHREF="node28.html#sec:errors"><IMGALIGN="BOTTOM"BORDER="1"ALT="[*]"
<TDALIGN="LEFT"VALIGN="TOP"WIDTH=340>Error code. If no error, 0 is returned. See Section <AHREF="node28.html#sec:errors">7</A> for details.</TD>
SRC="file:/usr/share/latex2html/icons/crossref.png"></A> for details.</TD>
- caratteri tipografici usati nella guida (vedi guida ML recente e guida Aztec)
The M<SMALL>ULTI-</SMALL>L<SMALL>EVEL </SMALL>D<SMALL>OMAIN </SMALL>D<SMALL>ECOMPOSITION </SMALL>P<SMALL>ARALLEL </SMALL>P<SMALL>RECONDITIONERS </SMALL>P<SMALL>ACKAGE BASED ON
<BR> - convenzioni sui nomi di routine (anche differenza nei nomi tra high-level e
<BR><FONTSIZE="+1">University of Rome ``Tor Vergata'', Italy
</FONT></FONT></FONT></DIV></TD></TR>
</TABLE>
<P>
<BR>
<BR>
<TABLEWIDTH="100%">
<BR><B>Salvatore Filippone</B>
<TR><TD>
<DIVALIGN="RIGHT">
<FONTSIZE="+1">Software version: 1.0
<BR>
<BR>
July 22, 2008
University of Rome ``Tor Vergata'', Italy
Software version: 1.0
</FONT></DIV></TD></TR>
</TABLE>
<P>
<BR>
<BR>
July 24, 2008
<BR>
<BR>
<P>
<P>
<P>
<P>
<BR><HR>
<H3>Abstract:</H3>
<DIV>
MLD2P4 (M<SMALL>ULTI-</SMALL>L<SMALL>EVEL </SMALL>D<SMALL>OMAIN </SMALL>D<SMALL>ECOMPOSITION </SMALL>P<SMALL>ARALLEL </SMALL>P<SMALL>RECONDITIONERS </SMALL>P<SMALL>ACKAGE BASED ON
</SMALL>PSBLAS) is a package of parallel algebraic multi-level preconditioners.
It implements various versions of one-level additive and of multi-level additive
and hybrid Schwarz algorithms. In the multi-level case, a purely algebraic approach
is applied to generate coarse-level corrections, so that no geometric background is needed
concerning the matrix to be preconditioned. The matrix is required to be square, real
or complex, with a symmetric sparsity pattern.
<P>
MLD2P4 has been designed to provide scalable and easy-to-use preconditioners in the
context of the PSBLAS (Parallel Sparse Basic Linear Algebra Subprograms)
computational framework and can be used in conjuction with the Krylov solvers
available in this framework. MLD2P4 enables the user to easily specify different aspects
of a generic algebraic multilevel Schwarz preconditioner, thus allowing to search
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
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)
paradigm for distributed-memory architectures; the inter-process data
communication is based on MPI and is managed mainly through PSBLAS.
<P>
This guide provides a brief description of the functionalities and
the user interface of MLD2P4.
</DIV>
<P>
<P>
<BR><HR>
<!--Table of Child-Links-->
<!--Table of Child-Links-->
<ANAME="CHILD_LINKS"></A>
<ANAME="CHILD_LINKS"></A>
<UL>
<ULCLASS="ChildLinks">
<LI><ANAME="tex2html15"
<LI><ANAME="tex2html15"
HREF="node1.html">Contents</A>
HREF="node1.html">Abstract</A>
<LI><ANAME="tex2html16"
<LI><ANAME="tex2html16"
HREF="node2.html">General Overview</A>
HREF="node2.html">Contents</A>
<LI><ANAME="tex2html17"
<LI><ANAME="tex2html17"
HREF="node3.html">Notational Conventions</A>
HREF="node3.html">General Overview</A>
<LI><ANAME="tex2html18"
<LI><ANAME="tex2html18"
HREF="node4.html">Code Distribution</A>
HREF="node4.html">Code Distribution</A>
<LI><ANAME="tex2html19"
<LI><ANAME="tex2html19"
@ -238,29 +169,10 @@ the user interface of MLD2P4.