You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
amg4psblas/docs/html/node14.html

412 lines
14 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--Converted with LaTeX2HTML 2018 (Released Feb 1, 2018) -->
<HTML>
<HEAD>
<TITLE>Smoothed Aggregation</TITLE>
<META NAME="description" CONTENT="Smoothed Aggregation">
<META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="LaTeX2HTML v2018">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node15.html">
<LINK REL="previous" HREF="node13.html">
<LINK REL="up" HREF="node12.html">
<LINK REL="next" HREF="node15.html">
</HEAD>
<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
<A NAME="tex2html261"
HREF="node15.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html257"
HREF="node12.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html251"
HREF="node13.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html259"
HREF="node2.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html262"
HREF="node15.html">Smoothers and coarsest-level solvers</A>
<B> Up:</B> <A NAME="tex2html258"
HREF="node12.html">Multigrid Background</A>
<B> Previous:</B> <A NAME="tex2html252"
HREF="node13.html">AMG preconditioners</A>
&nbsp; <B> <A NAME="tex2html260"
HREF="node2.html">Contents</A></B>
<BR>
<BR></DIV>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION00062000000000000000"></A><A NAME="sec:aggregation"></A>
<BR>
Smoothed Aggregation
</H2><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">In order to define the prolongator <SPAN CLASS="MATH"><IMG
WIDTH="26" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
SRC="img25.png"
ALT="$P^k$"></SPAN>, used to compute
the coarse-level matrix <SPAN CLASS="MATH"><IMG
WIDTH="43" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
SRC="img15.png"
ALT="$A^{k+1}$"></SPAN>, MLD2P4 uses the smoothed aggregation
algorithm described in [<A
HREF="node36.html#BREZINA_VANEK">2</A>,<A
HREF="node36.html#VANEK_MANDEL_BREZINA">26</A>].
The basic idea of this algorithm is to build a coarse set of indices
<SPAN CLASS="MATH"><IMG
WIDTH="43" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
SRC="img26.png"
ALT="$\Omega^{k+1}$"></SPAN> by suitably grouping the indices of <SPAN CLASS="MATH"><IMG
WIDTH="25" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
SRC="img9.png"
ALT="$\Omega^k$"></SPAN> into disjoint
subsets (aggregates), and to define the coarse-to-fine space transfer operator
<SPAN CLASS="MATH"><IMG
WIDTH="26" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
SRC="img25.png"
ALT="$P^k$"></SPAN> by applying a suitable smoother to a simple piecewise constant
prolongation operator, with the aim of improving the quality of the coarse-space correction.
</BIG></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">Three main steps can be identified in the smoothed aggregation procedure:
</BIG></BIG></BIG>
<OL>
<LI>aggregation of the indices of <SPAN CLASS="MATH"><IMG
WIDTH="25" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
SRC="img9.png"
ALT="$\Omega^k$"></SPAN> to obtain <SPAN CLASS="MATH"><IMG
WIDTH="43" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
SRC="img26.png"
ALT="$\Omega^{k+1}$"></SPAN>;
</LI>
<LI>construction of the prolongator <SPAN CLASS="MATH"><IMG
WIDTH="26" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
SRC="img25.png"
ALT="$P^k$"></SPAN>;
</LI>
<LI>application of <SPAN CLASS="MATH"><IMG
WIDTH="26" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
SRC="img25.png"
ALT="$P^k$"></SPAN> and <SPAN CLASS="MATH"><IMG
WIDTH="95" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img17.png"
ALT="$R^k=(P^k)^T$"></SPAN> to build <SPAN CLASS="MATH"><IMG
WIDTH="43" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
SRC="img15.png"
ALT="$A^{k+1}$"></SPAN>.
</LI>
</OL><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">In order to perform the coarsening step, the smoothed aggregation algorithm
described in&nbsp;[<A
HREF="node36.html#VANEK_MANDEL_BREZINA">26</A>] is used. In this algorithm,
each index <!-- MATH
$j \in \Omega^{k+1}$
-->
<SPAN CLASS="MATH"><IMG
WIDTH="72" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img27.png"
ALT="$j \in \Omega^{k+1}$"></SPAN> corresponds to an aggregate <SPAN CLASS="MATH"><IMG
WIDTH="25" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img28.png"
ALT="$\Omega^k_j$"></SPAN> of <SPAN CLASS="MATH"><IMG
WIDTH="25" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
SRC="img9.png"
ALT="$\Omega^k$"></SPAN>,
consisting of a suitably chosen index <!-- MATH
$i \in \Omega^k$
-->
<SPAN CLASS="MATH"><IMG
WIDTH="52" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img29.png"
ALT="$i \in \Omega^k$"></SPAN> and indices that are (usually) contained in a
strongly-coupled neighborood of <SPAN CLASS="MATH"><IMG
WIDTH="11" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
SRC="img30.png"
ALT="$i$"></SPAN>, i.e.,
</BIG></BIG></BIG>
<BR>
<DIV ALIGN="RIGHT" CLASS="mathdisplay">
<!-- MATH
\begin{equation}
\Omega^k_j \subset \mathcal{N}_i^k(\theta) =
\left\{ r \in \Omega^k: |a_{ir}^k| > \theta \sqrt{|a_{ii}^ka_{rr}^k|} \right \} \cup \left\{ i \right\},
\end{equation}
-->
<A NAME="eq:strongly_coup"></A>
<TABLE WIDTH="100%" ALIGN="CENTER">
<TR VALIGN="MIDDLE"><TD ALIGN="CENTER" NOWRAP><A NAME="eq:strongly_coup"></A><IMG
WIDTH="387" HEIGHT="49" BORDER="0"
SRC="img31.png"
ALT="\begin{displaymath}
\Omega^k_j \subset \mathcal{N}_i^k(\theta) =
\left\{ r \i...
...vert a_{ii}^ka_{rr}^k\vert} \right \} \cup \left\{ i \right\},
\end{displaymath}"></TD>
<TD CLASS="eqno" WIDTH=10 ALIGN="RIGHT">
(<SPAN CLASS="arabic">3</SPAN>)</TD></TR>
</TABLE>
<BR CLEAR="ALL"></DIV><P></P><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
for a given threshold <!-- MATH
$\theta \in [0,1]$
-->
<SPAN CLASS="MATH"><IMG
WIDTH="69" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
SRC="img32.png"
ALT="$\theta \in [0,1]$"></SPAN> (see&nbsp;[<A
HREF="node36.html#VANEK_MANDEL_BREZINA">26</A>] for the details).
Since this algorithm has a sequential nature, a decoupled
version of it is applied, where each processor independently executes
the algorithm on the set of indices assigned to it in the initial data
distribution. This version is embarrassingly parallel, since it does not require any data
communication. On the other hand, it may produce some nonuniform aggregates
and is strongly dependent on the number of processors and on the initial partitioning
of the matrix <SPAN CLASS="MATH"><IMG
WIDTH="17" HEIGHT="15" ALIGN="BOTTOM" BORDER="0"
SRC="img3.png"
ALT="$A$"></SPAN>. Nevertheless, this parallel algorithm has been chosen for
MLD2P4, since it has been shown to produce good results in practice
[<A
HREF="node36.html#aaecc_07">5</A>,<A
HREF="node36.html#apnum_07">7</A>,<A
HREF="node36.html#TUMINARO_TONG">25</A>].
</BIG></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">The prolongator <SPAN CLASS="MATH"><IMG
WIDTH="26" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
SRC="img25.png"
ALT="$P^k$"></SPAN> is built starting from a tentative prolongator
<!-- MATH
$\bar{P}^k \in \mathbb{R}^{n_k \times n_{k+1}}$
-->
<SPAN CLASS="MATH"><IMG
WIDTH="117" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img33.png"
ALT="$\bar{P}^k \in \mathbb{R}^{n_k \times n_{k+1}}$"></SPAN>, defined as
</BIG></BIG></BIG>
<BR>
<DIV ALIGN="RIGHT" CLASS="mathdisplay">
<!-- MATH
\begin{equation}
\bar{P}^k =(\bar{p}_{ij}^k), \quad \bar{p}_{ij}^k =
\left\{ \begin{array}{ll}
1 & \quad \mbox{if} \; i \in \Omega^k_j, \\
0 & \quad \mbox{otherwise},
\end{array} \right.
\end{equation}
-->
<A NAME="eq:tent_prol"></A>
<TABLE WIDTH="100%" ALIGN="CENTER">
<TR VALIGN="MIDDLE"><TD ALIGN="CENTER" NOWRAP><A NAME="eq:tent_prol"></A><IMG
WIDTH="287" HEIGHT="52" BORDER="0"
SRC="img34.png"
ALT="\begin{displaymath}
\bar{P}^k =(\bar{p}_{ij}^k), \quad \bar{p}_{ij}^k =
\left\{...
...Omega^k_j, \\
0 &amp; \quad \mbox{otherwise},
\end{array} \right.
\end{displaymath}"></TD>
<TD CLASS="eqno" WIDTH=10 ALIGN="RIGHT">
(<SPAN CLASS="arabic">4</SPAN>)</TD></TR>
</TABLE>
<BR CLEAR="ALL"></DIV><P></P><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
where <SPAN CLASS="MATH"><IMG
WIDTH="25" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img28.png"
ALT="$\Omega^k_j$"></SPAN> is the aggregate of <SPAN CLASS="MATH"><IMG
WIDTH="25" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
SRC="img9.png"
ALT="$\Omega^k$"></SPAN>
corresponding to the index <!-- MATH
$j \in \Omega^{k+1}$
-->
<SPAN CLASS="MATH"><IMG
WIDTH="72" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img27.png"
ALT="$j \in \Omega^{k+1}$"></SPAN>.
<SPAN CLASS="MATH"><IMG
WIDTH="26" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
SRC="img25.png"
ALT="$P^k$"></SPAN> is obtained by applying to <SPAN CLASS="MATH"><IMG
WIDTH="26" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
SRC="img35.png"
ALT="$\bar{P}^k$"></SPAN> a smoother
<!-- MATH
$S^k \in \mathbb{R}^{n_k \times n_k}$
-->
<SPAN CLASS="MATH"><IMG
WIDTH="101" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img36.png"
ALT="$S^k \in \mathbb{R}^{n_k \times n_k}$"></SPAN>:
</BIG></BIG></BIG>
<BR><P></P>
<DIV ALIGN="CENTER" CLASS="mathdisplay">
<!-- MATH
\begin{displaymath}
P^k = S^k \bar{P}^k,
\end{displaymath}
-->
<IMG
WIDTH="90" HEIGHT="30" BORDER="0"
SRC="img37.png"
ALT="\begin{displaymath}
P^k = S^k \bar{P}^k,
\end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
in order to remove nonsmooth components from the range of the prolongator,
and hence to improve the convergence properties of the multilevel
method&nbsp;[<A
HREF="node36.html#BREZINA_VANEK">2</A>,<A
HREF="node36.html#Stuben_01">24</A>].
A simple choice for <SPAN CLASS="MATH"><IMG
WIDTH="24" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"
SRC="img38.png"
ALT="$S^k$"></SPAN> is the damped Jacobi smoother:
</BIG></BIG></BIG>
<BR><P></P>
<DIV ALIGN="CENTER" CLASS="mathdisplay">
<!-- MATH
\begin{displaymath}
S^k = I - \omega^k (D^k)^{-1} A^k_F ,
\end{displaymath}
-->
<IMG
WIDTH="175" HEIGHT="31" BORDER="0"
SRC="img39.png"
ALT="\begin{displaymath}
S^k = I - \omega^k (D^k)^{-1} A^k_F ,
\end{displaymath}">
</DIV>
<BR CLEAR="ALL">
<P></P><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
where <SPAN CLASS="MATH"><IMG
WIDTH="28" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
SRC="img40.png"
ALT="$D^k$"></SPAN> is the diagonal matrix with the same diagonal entries as <SPAN CLASS="MATH"><IMG
WIDTH="26" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
SRC="img41.png"
ALT="$A^k$"></SPAN>,
<!-- MATH
$A^k_F = (\bar{a}_{ij}^k)$
-->
<SPAN CLASS="MATH"><IMG
WIDTH="87" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img42.png"
ALT="$A^k_F = (\bar{a}_{ij}^k)$"></SPAN> is the filtered matrix defined as
</BIG></BIG></BIG>
<BR>
<DIV ALIGN="RIGHT" CLASS="mathdisplay">
<!-- MATH
\begin{equation}
\bar{a}_{ij}^k =
\left \{ \begin{array}{ll}
a_{ij}^k & \mbox{if } j \in \mathcal{N}_i^k(\theta), \\
0 & \mbox{otherwise},
\end{array} \right.
\; (j \ne i),
\qquad
\bar{a}_{ii}^k = a_{ii}^k - \sum_{j \ne i} (a_{ij}^k - \bar{a}_{ij}^k),
\end{equation}
-->
<A NAME="eq:filtered"></A>
<TABLE WIDTH="100%" ALIGN="CENTER">
<TR VALIGN="MIDDLE"><TD ALIGN="CENTER" NOWRAP><A NAME="eq:filtered"></A><IMG
WIDTH="499" HEIGHT="59" BORDER="0"
SRC="img43.png"
ALT="\begin{displaymath}
\bar{a}_{ij}^k =
\left \{ \begin{array}{ll}
a_{ij}^k &amp; \m...
...ii}^k = a_{ii}^k - \sum_{j \ne i} (a_{ij}^k - \bar{a}_{ij}^k),
\end{displaymath}"></TD>
<TD CLASS="eqno" WIDTH=10 ALIGN="RIGHT">
(<SPAN CLASS="arabic">5</SPAN>)</TD></TR>
</TABLE>
<BR CLEAR="ALL"></DIV><P></P><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
and <SPAN CLASS="MATH"><IMG
WIDTH="24" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"
SRC="img44.png"
ALT="$\omega^k$"></SPAN> is an approximation of <SPAN CLASS="MATH"><IMG
WIDTH="61" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img45.png"
ALT="$4/(3\rho^k)$"></SPAN>, where
<SPAN CLASS="MATH"><IMG
WIDTH="22" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img46.png"
ALT="$\rho^k$"></SPAN> is the spectral radius of <!-- MATH
$(D^k)^{-1}A^k_F$
-->
<SPAN CLASS="MATH"><IMG
WIDTH="83" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img47.png"
ALT="$(D^k)^{-1}A^k_F$"></SPAN> [<A
HREF="node36.html#BREZINA_VANEK">2</A>].
In MLD2P4 this approximation is obtained by using <!-- MATH
$\| A^k_F \|_\infty$
-->
<SPAN CLASS="MATH"><IMG
WIDTH="61" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img48.png"
ALT="$\Vert A^k_F \Vert _\infty$"></SPAN> as an estimate
of <SPAN CLASS="MATH"><IMG
WIDTH="22" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img46.png"
ALT="$\rho^k$"></SPAN>. Note that for systems coming from uniformly elliptic
problems, filtering the matrix <SPAN CLASS="MATH"><IMG
WIDTH="26" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
SRC="img41.png"
ALT="$A^k$"></SPAN> has little or no effect, and
<SPAN CLASS="MATH"><IMG
WIDTH="26" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
SRC="img41.png"
ALT="$A^k$"></SPAN> can be used instead of <SPAN CLASS="MATH"><IMG
WIDTH="29" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img49.png"
ALT="$A^k_F$"></SPAN>. The latter choice is the default in MLD2P4.
</BIG></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
<A NAME="tex2html261"
HREF="node15.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html257"
HREF="node12.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html251"
HREF="node13.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html259"
HREF="node2.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html262"
HREF="node15.html">Smoothers and coarsest-level solvers</A>
<B> Up:</B> <A NAME="tex2html258"
HREF="node12.html">Multigrid Background</A>
<B> Previous:</B> <A NAME="tex2html252"
HREF="node13.html">AMG preconditioners</A>
&nbsp; <B> <A NAME="tex2html260"
HREF="node2.html">Contents</A></B> </DIV>
<!--End of Navigation Panel-->
</BODY>
</HTML>