@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
< HTML >
< HTML >
< HEAD >
< HEAD >
< TITLE > Smoothed Aggregation < / TITLE >
< TITLE > Multi-level Schwarz Preconditioners < / TITLE >
< META NAME = "description" CONTENT = " Smoothed Aggregation ">
< META NAME = "description" CONTENT = " Multi-level Schwarz Preconditioners ">
< META NAME = "keywords" CONTENT = "userhtml" >
< META NAME = "keywords" CONTENT = "userhtml" >
< META NAME = "resource-type" CONTENT = "document" >
< META NAME = "resource-type" CONTENT = "document" >
< META NAME = "distribution" CONTENT = "global" >
< META NAME = "distribution" CONTENT = "global" >
@ -18,306 +18,751 @@ original version by: Nikos Drakos, CBLU, University of Leeds
< LINK REL = "STYLESHEET" HREF = "userhtml.css" >
< LINK REL = "STYLESHEET" HREF = "userhtml.css" >
< LINK REL = "next" HREF = "node13.html" >
< LINK REL = "previous" HREF = "node11.html" >
< LINK REL = "previous" HREF = "node11.html" >
< LINK REL = "up" HREF = "node1 0 .html">
< LINK REL = "up" HREF = "node1 1 .html">
< LINK REL = "next" HREF = "node13.html" >
< LINK REL = "next" HREF = "node13.html" >
< / HEAD >
< / HEAD >
< BODY >
< BODY >
<!-- Navigation Panel -->
<!-- Navigation Panel -->
< A NAME = "tex2html20 4 "
< A NAME = "tex2html20 9 "
HREF="node13.html">
HREF="node13.html">
< IMG WIDTH = "37" HEIGHT = "24" ALIGN = "BOTTOM" BORDER = "0" ALT = "next"
< IMG WIDTH = "37" HEIGHT = "24" ALIGN = "BOTTOM" BORDER = "0" ALT = "next"
SRC="file:/usr/share/latex2html/icons/next.png">< / A >
SRC="file:/usr/share/latex2html/icons/next.png">< / A >
< A NAME = "tex2html20 0 "
< A NAME = "tex2html20 5 "
HREF="node10 .html">
HREF="node11 .html">
< IMG WIDTH = "26" HEIGHT = "24" ALIGN = "BOTTOM" BORDER = "0" ALT = "up"
< IMG WIDTH = "26" HEIGHT = "24" ALIGN = "BOTTOM" BORDER = "0" ALT = "up"
SRC="file:/usr/share/latex2html/icons/up.png">< / A >
SRC="file:/usr/share/latex2html/icons/up.png">< / A >
< A NAME = "tex2html19 6 "
< A NAME = "tex2html19 9 "
HREF="node11.html">
HREF="node11.html">
< IMG WIDTH = "63" HEIGHT = "24" ALIGN = "BOTTOM" BORDER = "0" ALT = "previous"
< IMG WIDTH = "63" HEIGHT = "24" ALIGN = "BOTTOM" BORDER = "0" ALT = "previous"
SRC="file:/usr/share/latex2html/icons/prev.png">< / A >
SRC="file:/usr/share/latex2html/icons/prev.png">< / A >
< A NAME = "tex2html20 2 "
< A NAME = "tex2html20 7 "
HREF="node2.html">
HREF="node2.html">
< IMG WIDTH = "65" HEIGHT = "24" ALIGN = "BOTTOM" BORDER = "0" ALT = "contents"
< IMG WIDTH = "65" HEIGHT = "24" ALIGN = "BOTTOM" BORDER = "0" ALT = "contents"
SRC="file:/usr/share/latex2html/icons/contents.png">< / A >
SRC="file:/usr/share/latex2html/icons/contents.png">< / A >
< BR >
< BR >
< B > Next:< / B > < A NAME = "tex2html2 05 "
< B > Next:< / B > < A NAME = "tex2html2 1 0"
HREF="node13.html">Getting Started < / A >
HREF="node13.html">Smoothed Aggregation < / A >
< B > Up:< / B > < A NAME = "tex2html20 1 "
< B > Up:< / B > < A NAME = "tex2html20 6 "
HREF="node10 .html">Multi-level Domain Decomposition Background< / A >
HREF="node11 .html">Multi-level Domain Decomposition Background< / A >
< B > Previous:< / B > < A NAME = "tex2html 197 "
< B > Previous:< / B > < A NAME = "tex2html 200 "
HREF="node11.html">Multi-level Schwarz Preconditioners < / A >
HREF="node11.html">Multi-level Domain Decomposition Background < / A >
< B > < A NAME = "tex2html20 3 "
< B > < A NAME = "tex2html20 8 "
HREF="node2.html">Contents< / A > < / B >
HREF="node2.html">Contents< / A > < / B >
< BR >
< BR >
< BR >
< BR >
<!-- End of Navigation Panel -->
<!-- End of Navigation Panel -->
< H2 > < A NAME = "SECTION0006 2 000000000000000"> < / A > < A NAME = "sec: aggregation "> < / A >
< H2 > < A NAME = "SECTION0006 1 000000000000000"> < / A > < A NAME = "sec: multilevel "> < / A >
< BR >
< BR >
Smoothed Aggregation
Multi-level Schwarz Preconditioners
< / H2 >
< / H2 >
< P >
< P >
In order to define the restriction operator < IMG
The Multilevel preconditioners implemented in MLD2P4 are obtained by combining
WIDTH="29" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
AS preconditioners with coarse-space corrections; therefore
SRC="img67.png"
we first provide a sketch of the AS preconditioners.
ALT="$R_C$">, which is used to compute
the coarse-level matrix < IMG
< P >
WIDTH="29" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
Given the linear system ,
SRC="img43.png"
where <!-- MATH
ALT="$A_C$">, MLD2P4 uses the < I > smoothed aggregation< / I >
$A=(a_{ij}) \in \Re^{n \times n}$
algorithm described in [< A
-->
HREF="node24.html#BREZINA_VANEK">1< / A > ,< A
HREF="node24.html#VANEK_MANDEL_BREZINA">24< / A > ].
The basic idea of this algorithm is to build a coarse set of vertices
< IMG
< IMG
WIDTH="32" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
WIDTH="137" HEIGHT="38" ALIGN="MIDDLE" BORDER="0"
SRC="img44.png"
SRC="img3.png"
ALT="$W_C$"> by suitably grouping the vertices of < IMG
ALT="$A=(a_{ij}) \in \Re^{n \times n}$"> is a
nonsingular sparse matrix with a symmetric nonzero pattern,
let < IMG
WIDTH="93" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
SRC="img4.png"
ALT="$G=(W,E)$"> be the adjacency graph of < IMG
WIDTH="18" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img2.png"
ALT="$A$">, where <!-- MATH
$W=\{1, 2, \ldots, n\}$
-->
< IMG
WIDTH="138" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
SRC="img5.png"
ALT="$W=\{1, 2, \ldots, n\}$">
and <!-- MATH
$E=\{(i,j) : a_{ij} \neq 0\}$
-->
< IMG
WIDTH="162" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
SRC="img6.png"
ALT="$E=\{(i,j) : a_{ij} \neq 0\}$"> are the vertex set and the edge set of < IMG
WIDTH="18" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img7.png"
ALT="$G$">,
respectively. Two vertices are called adjacent if there is an edge connecting
them. For any integer < IMG
WIDTH="45" HEIGHT="34" ALIGN="MIDDLE" BORDER="0"
SRC="img8.png"
ALT="$\delta > 0$">, a < IMG
WIDTH="13" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img9.png"
ALT="$\delta$">-overlap
partition of < IMG
WIDTH="24" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img10.png"
ALT="$W$"> can be defined recursively as follows.
Given a 0-overlap (or non-overlapping) partition of < IMG
WIDTH="24" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img10.png"
ALT="$W$">,
i.e. a set of < IMG
WIDTH="20" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img11.png"
ALT="$m$"> disjoint nonempty sets <!-- MATH
$W_i^0 \subset W$
-->
< IMG
WIDTH="73" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img12.png"
ALT="$W_i^0 \subset W$"> such that
<!-- MATH
$\cup_{i=1}^m W_i^0 = W$
-->
< IMG
WIDTH="107" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img13.png"
ALT="$\cup_{i=1}^m W_i^0 = W$">, a < IMG
WIDTH="13" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img9.png"
ALT="$\delta$">-overlap
partition of < IMG
WIDTH="24" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
WIDTH="24" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img10.png"
SRC="img10.png"
ALT="$W$"> into disjoint subsets
ALT="$W$"> is obtained by considering the sets
(aggregates), and to define the coarse-to-fine space transfer operator < IMG
<!-- MATH
WIDTH="29" HEIGHT="40" ALIGN="MIDDLE" BORDER="0"
$W_i^\delta \supset W_i^{\delta-1}$
SRC="img68.png"
-->
ALT="$R_C^T$"> by
< IMG
applying a suitable smoother to a simple piecewise constant
WIDTH="97" HEIGHT="41" ALIGN="MIDDLE" BORDER="0"
prolongation operator, to improve the quality of the coarse-space correction.
SRC="img14.png"
ALT="$W_i^\delta \supset W_i^{\delta-1}$"> obtained by including the vertices that
are adjacent to any vertex in <!-- MATH
$W_i^{\delta-1}$
-->
< IMG
WIDTH="48" HEIGHT="41" ALIGN="MIDDLE" BORDER="0"
SRC="img15.png"
ALT="$W_i^{\delta-1}$">.
< P >
< P >
Three main steps can be identified in the smoothed aggregation procedure:
Let < IMG
WIDTH="22" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img16.png"
ALT="$n_i^\delta$"> be the size of < IMG
WIDTH="30" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img17.png"
ALT="$W_i^\delta$"> and <!-- MATH
$R_i^{\delta} \in
\Re^{n_i^\delta \times n}$
-->
< IMG
WIDTH="93" HEIGHT="43" ALIGN="MIDDLE" BORDER="0"
SRC="img18.png"
ALT="$R_i^{\delta} \in
\Re^{n_i^\delta \times n}$"> the restriction operator that maps
a vector < IMG
WIDTH="56" HEIGHT="34" ALIGN="MIDDLE" BORDER="0"
SRC="img19.png"
ALT="$v \in \Re^n$"> onto the vector <!-- MATH
$v_i^{\delta} \in \Re^{n_i^\delta}$
-->
< IMG
WIDTH="70" HEIGHT="43" ALIGN="MIDDLE" BORDER="0"
SRC="img20.png"
ALT="$v_i^{\delta} \in \Re^{n_i^\delta}$">
containing the components of < IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img21.png"
ALT="$v$"> corresponding to the vertices in
< IMG
WIDTH="30" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img17.png"
ALT="$W_i^\delta$">. The transpose of < IMG
WIDTH="25" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img22.png"
ALT="$R_i^{\delta}$"> is a
prolongation operator from <!-- MATH
$\Re^{n_i^\delta}$
-->
< IMG
WIDTH="32" HEIGHT="24" ALIGN="BOTTOM" BORDER="0"
SRC="img23.png"
ALT="$\Re^{n_i^\delta}$"> to < IMG
WIDTH="26" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img24.png"
ALT="$\Re^n$">.
The matrix <!-- MATH
$A_i^\delta=R_i^\delta A (R_i^\delta)^T \in
\Re^{n_i^\delta \times n_i^\delta}$
-->
< IMG
WIDTH="201" HEIGHT="43" ALIGN="MIDDLE" BORDER="0"
SRC="img25.png"
ALT="$A_i^\delta=R_i^\delta A (R_i^\delta)^T \in
\Re^{n_i^\delta \times n_i^\delta}$"> can be considered
as a restriction of < IMG
WIDTH="18" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img2.png"
ALT="$A$"> corresponding to the set < IMG
WIDTH="31" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img26.png"
ALT="$W_i^{\delta}$">.
< P >
The < I > classical one-level AS< / I > preconditioner is defined by
< BR > < P > < / P >
< DIV ALIGN = "CENTER" >
<!-- MATH
\begin{displaymath}
M_{AS}^{-1}= \sum_{i=1}^m (R_i^{\delta})^T
(A_i^\delta)^{-1} R_i^{\delta},
\end{displaymath}
-->
< IMG
WIDTH="206" HEIGHT="58" BORDER="0"
SRC="img27.png"
ALT="\begin{displaymath}
M_{AS}^{-1}= \sum_{i=1}^m (R_i^{\delta})^T
(A_i^\delta)^{-1} R_i^{\delta},
\end{displaymath}">
< / DIV >
< BR CLEAR = "ALL" >
< P > < / P >
where < IMG
WIDTH="25" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img28.png"
ALT="$A_i^\delta$"> is assumed to be nonsingular. Its application
to a vector < IMG
WIDTH="56" HEIGHT="34" ALIGN="MIDDLE" BORDER="0"
SRC="img19.png"
ALT="$v \in \Re^n$"> within a Krylov solver requires the following
three steps:
< OL >
< OL >
< LI > coarsening of the vertex set < IMG
< LI > restriction of < IMG
WIDTH="24" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img10.png"
SRC="img21.png"
ALT="$W$">, to obtain < IMG
ALT="$v$"> as <!-- MATH
WIDTH="32" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
$v_i = R_i^{\delta} v$
SRC="img44.png"
-->
ALT="$W_C$">;
< IMG
WIDTH="71" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img29.png"
ALT="$v_i = R_i^{\delta} v$">, < IMG
WIDTH="97" HEIGHT="33" ALIGN="MIDDLE" BORDER="0"
SRC="img30.png"
ALT="$i=1,\ldots,m$">;
< / LI >
< / LI >
< LI > construction of the prolongator < IMG
< LI > solution of the linear systems <!-- MATH
WIDTH="29" HEIGHT="40" ALIGN="MIDDLE" BORDER="0"
$A_i^\delta w_i = v_i$
SRC="img68.png"
-->
ALT="$R_C^T$">;
< IMG
WIDTH="80" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img31.png"
ALT="$A_i^\delta w_i = v_i$">,
< IMG
WIDTH="97" HEIGHT="33" ALIGN="MIDDLE" BORDER="0"
SRC="img30.png"
ALT="$i=1,\ldots,m$">;
< / LI >
< / LI >
< LI > application of < IMG
< LI > prolongation and sum of the < IMG
WIDTH="29" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
WIDTH="23" HEIGHT="31 " ALIGN="MIDDLE" BORDER="0"
SRC="img67.png"
SRC="img32 .png"
ALT="$R_C$"> and < IMG
ALT="$w_i$">'s, i.e. <!-- MATH
WIDTH="29" HEIGHT="40" ALIGN="MIDDLE" BORDER="0"
$w = \sum_{i=1}^m (R_i^{\delta})^T w_i$
SRC="img68.png"
-->
ALT="$R_C^T$"> to build < IMG
< IMG
WIDTH="29" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
WIDTH="144" HEIGHT="39 " ALIGN="MIDDLE" BORDER="0"
SRC="img43.png"
SRC="img3 3.png"
ALT="$A_C$">.
ALT="$w = \sum_{i=1}^m (R_i^{\delta})^T w_i $">.
< / LI >
< / LI >
< / OL >
< / OL >
Note that the linear systems at step 2 are usually solved approximately,
e.g. using incomplete LU factorizations such as ILU(< IMG
WIDTH="13" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img34.png"
ALT="$p$">), MILU(< IMG
WIDTH="13" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img34.png"
ALT="$p$">) and
ILU(< IMG
WIDTH="27" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img35.png"
ALT="$p,t$">) [< A
HREF="node25.html#Saad_book">19< / A > , Chapter 10].
< P >
< P >
To perform the coarsening step, we have implemented the aggregation algorithm sketched
A variant of the classical AS preconditioner that outperforms it
in [< A
in terms of convergence rate and of computation and communication
HREF="node24.html#apnum_07">4< / A > ]. According to [< A
time on parallel distributed-memory computers is the so-called < I > Restricted AS
HREF="node24.html#VANEK_MANDEL_BREZINA">24< / A > ], a modification of
(RAS)< / I > preconditioner [< A
this algorithm has been actually considered,
HREF="node25.html#CAI_SARKIS">5< / A > ,< A
in which each aggregate < IMG
HREF="node25.html#EFSTATHIOU">13< / A > ]. It
WIDTH="26" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
is obtained by zeroing the components of < IMG
SRC="img69.png"
WIDTH="23" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
ALT="$N_r$"> is made of vertices of < IMG
SRC="img32.png"
WIDTH="24" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
ALT="$w_i$"> corresponding to the
SRC="img10.png"
overlapping vertices when applying the prolongation. Therefore,
ALT="$W$"> that are < I > strongly coupled< / I >
RAS differs from classical AS by the prolongation operators,
to a certain root vertex < IMG
which are substituted by <!-- MATH
WIDTH="53" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
$(\tilde{R}_i^0)^T \in \Re^{n_i^\delta \times n}$
SRC="img70.png"
-->
ALT="$r \in W$">, i.e. < BR > < P > < / P >
< IMG
WIDTH="118" HEIGHT="43" ALIGN="MIDDLE" BORDER="0"
SRC="img36.png"
ALT="$(\tilde{R}_i^0)^T \in \Re^{n_i^\delta \times n}$">,
where < IMG
WIDTH="25" HEIGHT="42" ALIGN="MIDDLE" BORDER="0"
SRC="img37.png"
ALT="$\tilde{R}_i^0$"> is obtained by zeroing the rows of < IMG
WIDTH="25" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img38.png"
ALT="$R_i^\delta$">
corresponding to the vertices in <!-- MATH
$W_i^\delta \backslash W_i^0$
-->
< IMG
WIDTH="66" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img39.png"
ALT="$W_i^\delta \backslash W_i^0$">:
< BR > < P > < / P >
< DIV ALIGN = "CENTER" >
< DIV ALIGN = "CENTER" >
<!-- MATH
<!-- MATH
\begin{displaymath}
\begin{displaymath}
N_r = \left\{s \in W: |a_{rs}| > \theta \sqrt{|a_{rr}a_{ss}|} \right\}
M_{RAS}^{-1}= \sum_{i=1}^m (\tilde{R}_i^0)^T
\cup \left\{ r \right\} ,
(A_i^\delta)^{-1} R_i^{\delta}.
\end{displaymath}
\end{displaymath}
-->
-->
< IMG
< IMG
WIDTH="319" HEIGHT="38" BORDER="0"
WIDTH="216" HEIGHT="58" BORDER="0"
SRC="img71.png"
SRC="img40.png"
ALT="\begin{displaymath}N_r = \left\{s \in W: \vert a_{rs}\vert > \theta \sqrt{\vert a_{rr}a_{ss}\vert} \right\}
ALT="\begin{displaymath}
\cup \left\{ r \right\} ,
M_{RAS}^{-1}= \sum_{i=1}^m (\tilde{R}_i^0)^T
(A_i^\delta)^{-1} R_i^{\delta}.
\end{displaymath}">
\end{displaymath}">
< / DIV >
< / DIV >
< BR CLEAR = "ALL" >
< BR CLEAR = "ALL" >
< P > < / P >
< P > < / P >
for a given <!-- MATH
Analogously, the AS variant called < I > AS with Harmonic extension (ASH)< / I >
$\theta \in [0,1]$
is defined by
< BR > < P > < / P >
< DIV ALIGN = "CENTER" >
<!-- MATH
\begin{displaymath}
M_{ASH}^{-1}= \sum_{i=1}^m (R_i^{\delta})^T
(A_i^\delta)^{-1} \tilde{R}_i^0.
\end{displaymath}
-->
-->
< IMG
< IMG
WIDTH="69" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
WIDTH="218" HEIGHT="58" BORDER="0"
SRC="img72.png"
SRC="img41.png"
ALT="$\theta \in [0,1]$">.
ALT="\begin{displaymath}M_{ASH}^{-1}= \sum_{i=1}^m (R_i^{\delta})^T
Since this algorithm has a sequential nature, a < I > decoupled< / I > version of
(A_i^\delta)^{-1} \tilde{R}_i^0.
it has been chosen, where each processor < IMG
\end{displaymath}">
WIDTH="10" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
< / DIV >
SRC="img73.png"
< BR CLEAR = "ALL" >
ALT="$i$"> independently applies the algorithm to
< P > < / P >
the set of vertices < IMG
We note that for < IMG
WIDTH="31" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
WIDTH="45" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img74.png"
SRC="img42.png"
ALT="$W_i^0$"> assigned to it in the initial data distribution. This
ALT="$\delta=0$"> the three variants of the AS preconditioner are
version is embarrassingly parallel, since it does not require any data communication.
all equal to the block-Jacobi preconditioner.
On the other hand, it may produce non-uniform aggregates near boundary vertices,
i.e. near vertices adjacent to vertices in other processors, and is strongly
< P >
dependent on the number of processors and on the initial partitioning of the matrix < IMG
As already observed, the convergence rate of the one-level Schwarz
preconditioned iterative solvers deteriorates as the number < IMG
WIDTH="20" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img11.png"
ALT="$m$"> of partitions
of < IMG
WIDTH="24" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img10.png"
ALT="$W$"> increases [< A
HREF="node25.html#dd1_94">7< / A > ,< A
HREF="node25.html#dd2_96">20< / A > ]. To reduce the dependency
of the number of iterations on the degree of parallelism we may
introduce a global coupling among the overlapping partitions by defining
a coarse-space approximation < IMG
WIDTH="29" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img43.png"
ALT="$A_C$"> of the matrix < IMG
WIDTH="18" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
WIDTH="18" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img2.png"
SRC="img2.png"
ALT="$A$">.
ALT="$A$">.
Nevertheless, this algorithm has been chosen for the implementation in MLD2P4,
In a pure algebraic setting, < IMG
since it has been shown to produce good results in practice
WIDTH="29" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
[< A
SRC="img43.png"
HREF="node24.html#aaecc_07">3< / A > ,< A
ALT="$A_C$"> is usually built with
HREF="node24.html#apnum_07">4< / A > ,< A
a Galerkin approach. Given a set < IMG
HREF="node24.html#TUMINARO_TONG">23< / A > ].
WIDTH="32" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img44.png"
ALT="$W_C$"> of < I > coarse vertices< / I > ,
with size < IMG
WIDTH="26" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img45.png"
ALT="$n_C$">, and a suitable restriction operator
<!-- MATH
$R_C \in \Re^{n_C \times n}$
-->
< IMG
WIDTH="101" HEIGHT="38" ALIGN="MIDDLE" BORDER="0"
SRC="img46.png"
ALT="$R_C \in \Re^{n_C \times n}$">, < IMG
WIDTH="29" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img43.png"
ALT="$A_C$"> is defined as
< BR > < P > < / P >
< DIV ALIGN = "CENTER" >
<!-- MATH
\begin{displaymath}
A_C=R_C A R_C^T
\end{displaymath}
-->
< P >
< IMG
The prolongator < IMG
WIDTH="109" HEIGHT="31" BORDER="0"
WIDTH="75" HEIGHT="40" ALIGN="MIDDLE" BORDER="0"
SRC="img47.png"
SRC="img75.png"
ALT="\begin{displaymath}
ALT="$P_C=R_C^T$"> is built starting from a < I > tentative prolongator< / I >
A_C=R_C A R_C^T
\end{displaymath}">
< / DIV >
< BR CLEAR = "ALL" >
< P > < / P >
and the coarse-level correction matrix to be combined with a generic
one-level AS preconditioner < IMG
WIDTH="38" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img48.png"
ALT="$M_{1L}$"> is obtained as
< BR > < P > < / P >
< DIV ALIGN = "CENTER" >
<!-- MATH
<!-- MATH
$P \in \Re^{n \times n_C}$
\begin{displaymath}
M_{C}^{-1}= R_C^T A_C^{-1} R_C,
\end{displaymath}
-->
-->
< IMG
< IMG
WIDTH="90" HEIGHT="38" ALIGN="MIDDLE" BORDER="0"
WIDTH="144" HEIGHT="32" BORDER="0"
SRC="img76.png"
SRC="img49.png"
ALT="$P \in \Re^{n \times n_C}$">, defined as
ALT="\begin{displaymath}
< BR >
M_{C}^{-1}= R_C^T A_C^{-1} R_C,
< DIV ALIGN = "RIGHT" >
\end{displaymath}">
< / DIV >
< BR CLEAR = "ALL" >
< P > < / P >
where < IMG
WIDTH="29" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img43.png"
ALT="$A_C$"> is assumed to be nonsingular. The application of < IMG
WIDTH="42" HEIGHT="41" ALIGN="MIDDLE" BORDER="0"
SRC="img50.png"
ALT="$M_{C}^{-1}$">
to a vector < IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img21.png"
ALT="$v$"> corresponds to a restriction, a solution and
a prolongation step; the solution step, involving the matrix < IMG
WIDTH="29" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img43.png"
ALT="$A_C$">,
may be carried out also approximately.
< P >
The combination of < IMG
WIDTH="32" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img51.png"
ALT="$M_{C}$"> and < IMG
WIDTH="38" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img48.png"
ALT="$M_{1L}$"> may be
performed in either an additive or a multiplicative framework.
In the former case, the < I > two-level additive< / I > Schwarz preconditioner
is obtained:
< BR > < P > < / P >
< DIV ALIGN = "CENTER" >
<!-- MATH
<!-- MATH
\begin{equation}
\begin{displaymath}
P=(p_{ij}), \quad p_{ij}=
M_{2LA}^{-1} = M_{C}^{-1} + M_{1L}^{-1}.
\left\{ \begin{array}{ll}
\end{displaymath}
1 & \quad \mbox{if} \; i \in V^j_C \\
0 & \quad \mbox{otherwise}
\end{array} \right. .
\end{equation}
-->
-->
< TABLE WIDTH = "100%" ALIGN = "CENTER" >
< TR VALIGN = "MIDDLE" > < TD ALIGN = "CENTER" NOWRAP > < A NAME = "eq:tent_prol" > < / A > < IMG
< IMG
WIDTH="290" HEIGHT="52" BORDER="0"
WIDTH="166" HEIGHT="32" BORDER="0"
SRC="img77.png"
SRC="img52 .png"
ALT="\begin{displaymath}
ALT="\begin{displaymath}
P=(p_{ij}), \quad p_{ij}=
M_{2LA}^{-1} = M_{C}^{-1} + M_{1L}^{-1}.
\left\{ \begin{array}{ll}
\end{displaymath}">
1 & \qu...
< / DIV >
...\in V^j_C \\
< BR CLEAR = "ALL" >
0 & \quad \mbox{otherwise}
< P > < / P >
\end{array} \right. .
Applying < IMG
\end{displaymath}">< / TD >
WIDTH="59" HEIGHT="41" ALIGN="MIDDLE" BORDER="0"
< TD WIDTH = 10 ALIGN = "RIGHT" >
SRC="img53.png"
(2)< / TD > < / TR >
ALT="$M_{2L-A}^{-1}$"> to a vector < IMG
< / TABLE >
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
< BR CLEAR = "ALL" > < / DIV > < P > < / P >
SRC="img21.png"
ALT="$v$"> within a Krylov solver
corresponds to applying < IMG
WIDTH="42" HEIGHT="41" ALIGN="MIDDLE" BORDER="0"
SRC="img50.png"
ALT="$M_{C}^{-1}$">
and < IMG
WIDTH="42" HEIGHT="41" ALIGN="MIDDLE" BORDER="0"
SRC="img54.png"
ALT="$M_{1L}^{-1}$"> to < IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img21.png"
ALT="$v$"> independently and then summing up
the results.
< P >
In the multiplicative case, the combination can be
performed by first applying the smoother < IMG
WIDTH="42" HEIGHT="41" ALIGN="MIDDLE" BORDER="0"
SRC="img54.png"
ALT="$M_{1L}^{-1}$"> and then
the coarse-level correction operator < IMG
WIDTH="42" HEIGHT="41" ALIGN="MIDDLE" BORDER="0"
SRC="img50.png"
ALT="$M_{C}^{-1}$">:
< BR > < P > < / P >
< DIV ALIGN = "CENTER" >
<!-- MATH
\begin{displaymath}
\begin{array}{l}
w = M_{1L}^{-1} v, \\
z = w + M_{C}^{-1} (v-Aw);
\end{array}
\end{displaymath}
-->
< IMG
< IMG
WIDTH="27" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
WIDTH="177" HEIGHT="51" BORDER="0"
SRC="img78.png"
SRC="img55.png"
ALT="$P_C$"> is obtained by
ALT="\begin{displaymath}
applying to < IMG
\begin{array}{l}
WIDTH="18" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
w = M_{1L}^{-1} v, \\
SRC="img79.png"
z = w + M_{C}^{-1} (v-Aw);
ALT="$P$"> a smoother <!-- MATH
\end{array}\end{displaymath}">
$S \in \Re^{n \times n}$
< / DIV >
< BR CLEAR = "ALL" >
< P > < / P >
this corresponds to the following < I > two-level hybrid pre-smoothed< / I >
Schwarz preconditioner:
< BR > < P > < / P >
< DIV ALIGN = "CENTER" >
<!-- MATH
\begin{displaymath}
M_{2LH-PRE}^{-1} = M_{C}^{-1} + \left( I - M_{C}^{-1}A \right) M_{1L}^{-1}.
\end{displaymath}
-->
-->
< IMG
< IMG
WIDTH="78" HEIGHT="38" ALIGN="MIDDLE" BORDER="0"
WIDTH="308" HEIGHT="33" BORDER="0"
SRC="img80.png"
SRC="img56.png"
ALT="$S \in \Re^{n \times n}$">:
ALT="\begin{displaymath}
< BR >
M_{2LH-PRE}^{-1} = M_{C}^{-1} + \left( I - M_{C}^{-1}A \right) M_{1L}^{-1}.
< DIV ALIGN = "RIGHT" >
\end{displaymath}">
< / DIV >
< BR CLEAR = "ALL" >
< P > < / P >
On the other hand, by applying the smoother after the coarse-level correction,
i.e. by computing
< BR > < P > < / P >
< DIV ALIGN = "CENTER" >
<!-- MATH
\begin{displaymath}
\begin{array}{l}
w = M_{C}^{-1} v , \\
z = w + M_{1L}^{-1} (v-Aw) ,
\end{array}
\end{displaymath}
-->
< IMG
WIDTH="177" HEIGHT="51" BORDER="0"
SRC="img57.png"
ALT="\begin{displaymath}
\begin{array}{l}
w = M_{C}^{-1} v , \\
z = w + M_{1L}^{-1} (v-Aw) ,
\end{array}\end{displaymath}">
< / DIV >
< BR CLEAR = "ALL" >
< P > < / P >
the < I > two-level hybrid post-smoothed< / I >
Schwarz preconditioner is obtained:
< BR > < P > < / P >
< DIV ALIGN = "CENTER" >
<!-- MATH
<!-- MATH
\begin{equation}
\begin{displaymath }
P_C = S P,
M_{2LH-POST}^{-1} = M_{1L}^{-1} + \left( I - M_{1L}^{-1}A \right) M_{C}^{-1}.
\end{equation}
\end{displaymath }
-->
-->
< TABLE WIDTH = "100%" ALIGN = "CENTER" >
< TR VALIGN = "MIDDLE" > < TD ALIGN = "CENTER" NOWRAP > < A NAME = "eq:smoothed_prol" > < / A > < IMG
< IMG
WIDTH="73" HEIGHT="30" BORDER="0"
WIDTH="317" HEIGHT="33 " BORDER="0"
SRC="img81.png"
SRC="img5 8.png"
ALT="\begin{displaymath}
ALT="\begin{displaymath}
P_C = S P,
M_{2LH-POST}^{-1} = M_{1L}^{-1} + \left( I - M_{1L}^{-1}A \right) M_{C}^{-1}.
\end{displaymath}">< / TD >
\end{displaymath}">
< TD WIDTH = 10 ALIGN = "RIGHT" >
< / DIV >
(3)< / TD > < / TR >
< BR CLEAR = "ALL" >
< / TABLE >
< P > < / P >
< BR CLEAR = "ALL" > < / DIV > < P > < / P >
One more variant of two-level hybrid preconditioner is obtained by applying
in order to remove oscillatory components from the range of the prolongator
the smoother before and after the coarse-level correction. In this case, the
and hence to improve the convergence properties of the multi-level
preconditioner is symmetric if < IMG
Schwarz method [< A
WIDTH="18" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
HREF="node24.html#BREZINA_VANEK">1< / A > ,< A
SRC="img2.png"
HREF="node24.html#StubenGMD69_99">22< / A > ].
ALT="$A$">, < IMG
A simple choice for < IMG
WIDTH="38" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
WIDTH="16" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img48.png"
SRC="img82.png"
ALT="$M_{1L}$"> and < IMG
ALT="$S$"> is the damped Jacobi smoother:
WIDTH="32" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
< BR >
SRC="img51.png"
< DIV ALIGN = "RIGHT" >
ALT="$M_{C}$"> are symmetric.
< P >
As previously noted, on parallel computers the number of submatrices usually matches
the number of available processors. When the size of the system to be preconditioned
is very large, the use of many processors, i.e. of many small submatrices, often
leads to a large coarse-level system, whose solution may be computationally expensive.
On the other hand, the use of few processors often leads to local sumatrices that
are too expensive to be processed on single processors, because of memory and/or
computing requirements. Therefore, it seems natural to use a recursive approach,
in which the coarse-level correction is re-applied starting from the current
coarse-level system. The corresponding preconditioners, called < I > multi-level< / I >
preconditioners, can significantly reduce the computational cost of preconditioning
with respect to the two-level case (see [< A
HREF="node25.html#dd2_96">20< / A > , Chapter 3]).
Additive and hybrid multilevel preconditioners
are obtained as direct extensions of the two-level counterparts.
For a detailed descrition of them, the reader is
referred to [< A
HREF="node25.html#dd2_96">20< / A > , Chapter 3].
The algorithm for the application of a multi-level hybrid
post-smoothed preconditioner < IMG
WIDTH="23" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img59.png"
ALT="$M$"> to a vector < IMG
WIDTH="13" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img21.png"
ALT="$v$">, i.e. for the
computation of < IMG
WIDTH="87" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
SRC="img60.png"
ALT="$w=M^{-1}v$">, is reported, for
example, in Figure < A HREF = "#fig:mlhpost_alg" > 1< / A > . Here the number of levels
is denoted by < IMG
WIDTH="37" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img61.png"
ALT="$nlev$"> and the levels are numbered in increasing order starting
from the finest one, i.e. the finest level is level 1; the coarse matrix
and the corresponding basic preconditioner at each level < IMG
WIDTH="10" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img62.png"
ALT="$l$"> are denoted by < IMG
WIDTH="22" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img63.png"
ALT="$A_l$"> and
< IMG
WIDTH="27" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img64.png"
ALT="$M_l$">, respectively, with < IMG
WIDTH="61" HEIGHT="32" ALIGN="MIDDLE" BORDER="0"
SRC="img65.png"
ALT="$A_1=A$">.
< DIV ALIGN = "CENTER" > < A NAME = "fig:mlhpost_alg" > < / A > < A NAME = "508" > < / A >
< TABLE >
< CAPTION ALIGN = "BOTTOM" > < STRONG > Figure 1:< / STRONG >
Application of the multi-level hybrid post-smoothed preconditioner.< / CAPTION >
< TR > < TD >
< DIV ALIGN = "CENTER" >
<!-- MATH
<!-- MATH
\begin{equation}
$\framebox{
S = I - \omega D^{-1} A ,
\begin{minipage}{.85\textwidth} {\small
\end{equation}
\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 coarser level\\
\> $v_l = R_lv_{l-1}$\ \\[1mm]
\textbf{endfor} \\[2mm]
! apply the coarsest-level correction\\[1mm]
$y_{nlev} = 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 = R_{l+1}^T y_{l+1}$;\\[1mm]
\> ! compute the residual at the current level\\
\> $r_l = v_l-A_l^{-1} y_l$;\\[1mm]
\> ! apply the basic Schwarz preconditioner to the residual\\
\> $r_l = M_l^{-1} r_l$\\[1mm]
\> ! update $y_l$\\
\> $y_l = y_l+r_l$\\
\textbf{endfor} \\[1mm]
$w = y_1$;
\end{tabbing}
}
\end{minipage}
}$
-->
-->
< TABLE WIDTH = "100%" ALIGN = "CENTER" >
< IMG
< TR VALIGN = "MIDDLE" > < TD ALIGN = "CENTER" NOWRAP > < A NAME = "eq:jac_smoother" > < / A > < IMG
WIDTH="430" HEIGHT="435" ALIGN="BOTTOM" BORDER="0"
WIDTH="126" HEIGHT="30" BORDER="0"
SRC="img66.png"
SRC="img83.png"
ALT="\framebox{
ALT="\begin{displaymath}
\begin{minipage}{.85\textwidth} {\small
S = I - \omega D^{-1} A ,
\begin{tabbing}
\end{displaymath}">< / TD >
\quad \=\quad...
< TD WIDTH = 10 ALIGN = "RIGHT" >
...= y_l+r_l$\\
(4)< / TD > < / TR >
\textbf{endfor} [1mm]
$w = y_1$;
\end{tabbing}}
\end{minipage}}">
< / DIV > < / TD > < / TR >
< / TABLE >
< / TABLE >
< BR CLEAR = "ALL" > < / DIV > < P > < / P >
< / DIV >
where the value of < IMG
WIDTH="16" HEIGHT="14" ALIGN="BOTTOM" BORDER="0"
SRC="img84.png"
ALT="$\omega$"> can be chosen
using some estimate of the spectral radius of < IMG
WIDTH="50" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
SRC="img85.png"
ALT="$D^{-1}A$"> [< A
HREF="node24.html#BREZINA_VANEK">1< / A > ].
< P >
< P >
< HR >
< HR >
<!-- Navigation Panel -->
<!-- Navigation Panel -->
< A NAME = "tex2html204"
< A NAME = "tex2html209"
HREF="node13.html">
HREF="node13.html">
< IMG WIDTH = "37" HEIGHT = "24" ALIGN = "BOTTOM" BORDER = "0" ALT = "next"
< IMG WIDTH = "37" HEIGHT = "24" ALIGN = "BOTTOM" BORDER = "0" ALT = "next"
SRC="file:/usr/share/latex2html/icons/next.png">< / A >
SRC="file:/usr/share/latex2html/icons/next.png">< / A >
< A NAME = "tex2html200"
< A NAME = "tex2html205"
HREF="node10.html">
HREF="node11 .html">
< IMG WIDTH = "26" HEIGHT = "24" ALIGN = "BOTTOM" BORDER = "0" ALT = "up"
< IMG WIDTH = "26" HEIGHT = "24" ALIGN = "BOTTOM" BORDER = "0" ALT = "up"
SRC="file:/usr/share/latex2html/icons/up.png">< / A >
SRC="file:/usr/share/latex2html/icons/up.png">< / A >
< A NAME = "tex2html196"
< A NAME = "tex2html19 9 "
HREF="node11.html">
HREF="node11.html">
< IMG WIDTH = "63" HEIGHT = "24" ALIGN = "BOTTOM" BORDER = "0" ALT = "previous"
< IMG WIDTH = "63" HEIGHT = "24" ALIGN = "BOTTOM" BORDER = "0" ALT = "previous"
SRC="file:/usr/share/latex2html/icons/prev.png">< / A >
SRC="file:/usr/share/latex2html/icons/prev.png">< / A >
< A NAME = "tex2html202"
< A NAME = "tex2html20 7 "
HREF="node2.html">
HREF="node2.html">
< IMG WIDTH = "65" HEIGHT = "24" ALIGN = "BOTTOM" BORDER = "0" ALT = "contents"
< IMG WIDTH = "65" HEIGHT = "24" ALIGN = "BOTTOM" BORDER = "0" ALT = "contents"
SRC="file:/usr/share/latex2html/icons/contents.png">< / A >
SRC="file:/usr/share/latex2html/icons/contents.png">< / A >
< BR >
< BR >
< B > Next:< / B > < A NAME = "tex2html205"
< B > Next:< / B > < A NAME = "tex2html2 1 0"
HREF="node13.html">Getting Started< / A >
HREF="node13.html">Smoothed Aggregation < / A >
< B > Up:< / B > < A NAME = "tex2html201"
< B > Up:< / B > < A NAME = "tex2html20 6 "
HREF="node10.html">Multi-level Domain Decomposition Background< / A >
HREF="node11 .html">Multi-level Domain Decomposition Background< / A >
< B > Previous:< / B > < A NAME = "tex2html 197 "
< B > Previous:< / B > < A NAME = "tex2html 200 "
HREF="node11.html">Multi-level Schwarz Preconditioners < / A >
HREF="node11.html">Multi-level Domain Decomposition Background < / A >
< B > < A NAME = "tex2html20 3 "
< B > < A NAME = "tex2html20 8 "
HREF="node2.html">Contents< / A > < / B >
HREF="node2.html">Contents< / A > < / B >
<!-- End of Navigation Panel -->
<!-- End of Navigation Panel -->