<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <!--Converted with LaTeX2HTML 2012 (1.2) original version by: Nikos Drakos, CBLU, University of Leeds * revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan * with significant contributions from: Jens Lippmann, Marek Rouchal, Martin Wilck and others --> <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 v2012"> <META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css"> <LINK REL="STYLESHEET" HREF="userhtml.css"> <LINK REL="previous" HREF="node12.html"> <LINK REL="up" HREF="node11.html"> <LINK REL="next" HREF="node14.html"> </HEAD> <BODY > <!--Navigation Panel--> <A NAME="tex2html221" HREF="node14.html"> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <A NAME="tex2html217" HREF="node11.html"> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <A NAME="tex2html213" HREF="node12.html"> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <A NAME="tex2html219" HREF="node2.html"> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <BR> <B> Next:</B> <A NAME="tex2html222" HREF="node14.html">Getting Started</A> <B> Up:</B> <A NAME="tex2html218" HREF="node11.html">Multi-level Domain Decomposition Background</A> <B> Previous:</B> <A NAME="tex2html214" HREF="node12.html">Multi-level Schwarz Preconditioners</A> <B> <A NAME="tex2html220" HREF="node2.html">Contents</A></B> <BR> <BR> <!--End of Navigation Panel--> <H2><A NAME="SECTION00062000000000000000"></A><A NAME="sec:aggregation"></A> <BR> Smoothed Aggregation </H2> <P> In order to define the restriction operator <IMG WIDTH="29" HEIGHT="32" ALIGN="MIDDLE" BORDER="0" SRC="img69.png" ALT="$R_C$">, which is used to compute the coarse-level matrix <IMG WIDTH="29" HEIGHT="32" ALIGN="MIDDLE" BORDER="0" SRC="img44.png" ALT="$A_C$">, MLD2P4 uses the <I>smoothed aggregation</I> algorithm described in [<A HREF="node25.html#BREZINA_VANEK">1</A>,<A HREF="node25.html#VANEK_MANDEL_BREZINA">27</A>]. The basic idea of this algorithm is to build a coarse set of vertices <IMG WIDTH="32" HEIGHT="32" ALIGN="MIDDLE" BORDER="0" SRC="img45.png" ALT="$W_C$"> by suitably grouping the vertices of <IMG WIDTH="23" HEIGHT="16" ALIGN="BOTTOM" BORDER="0" SRC="img11.png" ALT="$W$"> into disjoint subsets (aggregates), and to define the coarse-to-fine space transfer operator <IMG WIDTH="29" HEIGHT="40" ALIGN="MIDDLE" BORDER="0" SRC="img70.png" ALT="$R_C^T$"> by applying a suitable smoother to a simple piecewise constant prolongation operator, to improve the quality of the coarse-space correction. <P> Three main steps can be identified in the smoothed aggregation procedure: <OL> <LI>coarsening of the vertex set <IMG WIDTH="23" HEIGHT="16" ALIGN="BOTTOM" BORDER="0" SRC="img11.png" ALT="$W$">, to obtain <IMG WIDTH="32" HEIGHT="32" ALIGN="MIDDLE" BORDER="0" SRC="img45.png" ALT="$W_C$">; </LI> <LI>construction of the prolongator <IMG WIDTH="29" HEIGHT="40" ALIGN="MIDDLE" BORDER="0" SRC="img70.png" ALT="$R_C^T$">; </LI> <LI>application of <IMG WIDTH="29" HEIGHT="32" ALIGN="MIDDLE" BORDER="0" SRC="img69.png" ALT="$R_C$"> and <IMG WIDTH="29" HEIGHT="40" ALIGN="MIDDLE" BORDER="0" SRC="img70.png" ALT="$R_C^T$"> to build <IMG WIDTH="29" HEIGHT="32" ALIGN="MIDDLE" BORDER="0" SRC="img44.png" ALT="$A_C$">. </LI> </OL> <P> To perform the coarsening step, we have implemented the aggregation algorithm sketched in [<A HREF="node25.html#apnum_07">4</A>]. According to [<A HREF="node25.html#VANEK_MANDEL_BREZINA">27</A>], a modification of this algorithm has been actually considered, in which each aggregate <IMG WIDTH="26" HEIGHT="32" ALIGN="MIDDLE" BORDER="0" SRC="img71.png" ALT="$N_r$"> is made of vertices of <IMG WIDTH="23" HEIGHT="16" ALIGN="BOTTOM" BORDER="0" SRC="img11.png" ALT="$W$"> that are <I>strongly coupled</I> to a certain root vertex <IMG WIDTH="53" HEIGHT="32" ALIGN="MIDDLE" BORDER="0" SRC="img72.png" ALT="$r \in W$">, i.e. <BR><P></P> <DIV ALIGN="CENTER"> <!-- MATH \begin{displaymath} N_r = \left\{s \in W: |a_{rs}| > \theta \sqrt{|a_{rr}a_{ss}|} \right\} \cup \left\{ r \right\} , \end{displaymath} --> <IMG WIDTH="320" HEIGHT="38" BORDER="0" SRC="img73.png" ALT="\begin{displaymath}N_r = \left\{s \in W: \vert a_{rs}\vert > \theta \sqrt{\vert a_{rr}a_{ss}\vert} \right\} \cup \left\{ r \right\} , \end{displaymath}"> </DIV> <BR CLEAR="ALL"> <P></P> for a given <!-- MATH $\theta \in [0,1]$ --> <IMG WIDTH="69" HEIGHT="36" ALIGN="MIDDLE" BORDER="0" SRC="img74.png" ALT="$\theta \in [0,1]$">. Since this algorithm has a sequential nature, a <I>decoupled</I> version of it has been chosen, where each processor <IMG WIDTH="10" HEIGHT="18" ALIGN="BOTTOM" BORDER="0" SRC="img75.png" ALT="$i$"> independently applies the algorithm to the set of vertices <IMG WIDTH="31" HEIGHT="39" ALIGN="MIDDLE" BORDER="0" SRC="img76.png" ALT="$W_i^0$"> 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 non-uniform aggregates near boundary vertices, 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 <IMG WIDTH="18" HEIGHT="15" ALIGN="BOTTOM" BORDER="0" SRC="img2.png" ALT="$A$">. Nevertheless, this algorithm has been chosen for the implementation in MLD2P4, since it has been shown to produce good results in practice [<A HREF="node25.html#aaecc_07">3</A>,<A HREF="node25.html#apnum_07">4</A>,<A HREF="node25.html#TUMINARO_TONG">26</A>]. <P> The prolongator <IMG WIDTH="75" HEIGHT="40" ALIGN="MIDDLE" BORDER="0" SRC="img77.png" ALT="$P_C=R_C^T$"> is built starting from a <I>tentative prolongator</I> <!-- MATH $P \in \Re^{n \times n_C}$ --> <IMG WIDTH="90" HEIGHT="38" ALIGN="MIDDLE" BORDER="0" SRC="img78.png" ALT="$P \in \Re^{n \times n_C}$">, defined as <BR> <DIV ALIGN="RIGHT"> <!-- MATH \begin{equation} P=(p_{ij}), \quad p_{ij}= \left\{ \begin{array}{ll} 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 WIDTH="291" HEIGHT="52" BORDER="0" SRC="img79.png" ALT="\begin{displaymath} P=(p_{ij}), \quad p_{ij}= \left\{ \begin{array}{ll} 1 & \qu... ...\in V^j_C \\ 0 & \quad \mbox{otherwise} \end{array} \right. . \end{displaymath}"></TD> <TD WIDTH=10 ALIGN="RIGHT"> (2)</TD></TR> </TABLE> <BR CLEAR="ALL"></DIV><P></P> <IMG WIDTH="27" HEIGHT="32" ALIGN="MIDDLE" BORDER="0" SRC="img80.png" ALT="$P_C$"> is obtained by applying to <IMG WIDTH="18" HEIGHT="15" ALIGN="BOTTOM" BORDER="0" SRC="img81.png" ALT="$P$"> a smoother <!-- MATH $S \in \Re^{n \times n}$ --> <IMG WIDTH="78" HEIGHT="38" ALIGN="MIDDLE" BORDER="0" SRC="img82.png" ALT="$S \in \Re^{n \times n}$">: <BR> <DIV ALIGN="RIGHT"> <!-- MATH \begin{equation} P_C = S P, \end{equation} --> <TABLE WIDTH="100%" ALIGN="CENTER"> <TR VALIGN="MIDDLE"><TD ALIGN="CENTER" NOWRAP><A NAME="eq:smoothed_prol"></A><IMG WIDTH="73" HEIGHT="30" BORDER="0" SRC="img83.png" ALT="\begin{displaymath} P_C = S P, \end{displaymath}"></TD> <TD WIDTH=10 ALIGN="RIGHT"> (3)</TD></TR> </TABLE> <BR CLEAR="ALL"></DIV><P></P> in order to remove oscillatory components from the range of the prolongator and hence to improve the convergence properties of the multi-level Schwarz method [<A HREF="node25.html#BREZINA_VANEK">1</A>,<A HREF="node25.html#StubenGMD69_99">25</A>]. A simple choice for <IMG WIDTH="16" HEIGHT="16" ALIGN="BOTTOM" BORDER="0" SRC="img84.png" ALT="$S$"> is the damped Jacobi smoother: <BR> <DIV ALIGN="RIGHT"> <!-- MATH \begin{equation} S = I - \omega D^{-1} A , \end{equation} --> <TABLE WIDTH="100%" ALIGN="CENTER"> <TR VALIGN="MIDDLE"><TD ALIGN="CENTER" NOWRAP><A NAME="eq:jac_smoother"></A><IMG WIDTH="125" HEIGHT="30" BORDER="0" SRC="img85.png" ALT="\begin{displaymath} S = I - \omega D^{-1} A , \end{displaymath}"></TD> <TD WIDTH=10 ALIGN="RIGHT"> (4)</TD></TR> </TABLE> <BR CLEAR="ALL"></DIV><P></P> where the value of <IMG WIDTH="16" HEIGHT="18" ALIGN="BOTTOM" BORDER="0" SRC="img86.png" ALT="$\omega$"> can be chosen using some estimate of the spectral radius of <IMG WIDTH="50" HEIGHT="21" ALIGN="BOTTOM" BORDER="0" SRC="img87.png" ALT="$D^{-1}A$"> [<A HREF="node25.html#BREZINA_VANEK">1</A>]. <P> <HR> <!--Navigation Panel--> <A NAME="tex2html221" HREF="node14.html"> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A> <A NAME="tex2html217" HREF="node11.html"> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A> <A NAME="tex2html213" HREF="node12.html"> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A> <A NAME="tex2html219" HREF="node2.html"> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A> <BR> <B> Next:</B> <A NAME="tex2html222" HREF="node14.html">Getting Started</A> <B> Up:</B> <A NAME="tex2html218" HREF="node11.html">Multi-level Domain Decomposition Background</A> <B> Previous:</B> <A NAME="tex2html214" HREF="node12.html">Multi-level Schwarz Preconditioners</A> <B> <A NAME="tex2html220" HREF="node2.html">Contents</A></B> <!--End of Navigation Panel--> </BODY> </HTML>