|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
|
"http://www.w3.org/TR/html4/loose.dtd">
|
|
|
<html >
|
|
|
<head><title>Smoothed Aggregation</title>
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
|
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
|
|
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
|
|
|
<!-- html,3 -->
|
|
|
<meta name="src" content="userhtml.tex">
|
|
|
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
|
|
</head><body
|
|
|
>
|
|
|
<!--l. 133--><div class="crosslinks"><p class="noindent"><span
|
|
|
class="cmbx-12">[</span><a
|
|
|
href="userhtmlsu8.html" ><span
|
|
|
class="cmbx-12">next</span></a><span
|
|
|
class="cmbx-12">] [</span><a
|
|
|
href="userhtmlsu6.html" ><span
|
|
|
class="cmbx-12">prev</span></a><span
|
|
|
class="cmbx-12">] [</span><a
|
|
|
href="userhtmlsu6.html#tailuserhtmlsu6.html" ><span
|
|
|
class="cmbx-12">prev-tail</span></a><span
|
|
|
class="cmbx-12">] [</span><a
|
|
|
href="#tailuserhtmlsu7.html"><span
|
|
|
class="cmbx-12">tail</span></a><span
|
|
|
class="cmbx-12">] [</span><a
|
|
|
href="userhtmlse4.html#userhtmlsu7.html" ><span
|
|
|
class="cmbx-12">up</span></a><span
|
|
|
class="cmbx-12">] </span></p></div>
|
|
|
<h4 class="subsectionHead"><span class="titlemark"><span
|
|
|
class="cmbx-12">4.2 </span></span> <a
|
|
|
id="x15-140004.2"></a><span
|
|
|
class="cmbx-12">Smoothed Aggregation</span></h4>
|
|
|
<!--l. 135--><p class="noindent" ><span
|
|
|
class="cmbx-12">In order to define the prolongator </span><span
|
|
|
class="cmmi-12">P</span><sup><span
|
|
|
class="cmmi-8">k</span></sup><span
|
|
|
class="cmbx-12">, used to compute the coarse-level</span>
|
|
|
<span
|
|
|
class="cmbx-12">matrix </span><span
|
|
|
class="cmmi-12">A</span><sup><span
|
|
|
class="cmmi-8">k</span><span
|
|
|
class="cmr-8">+1</span></sup><span
|
|
|
class="cmbx-12">, MLD2P4 uses the smoothed aggregation algorithm described</span>
|
|
|
<span
|
|
|
class="cmbx-12">in </span><span class="cite"><span
|
|
|
class="cmbx-12">[</span><a
|
|
|
href="userhtmlli4.html#XBREZINA_VANEK"><span
|
|
|
class="cmbx-12">2</span></a><span
|
|
|
class="cmbx-12">,</span><span
|
|
|
class="cmbx-12"> </span><a
|
|
|
href="userhtmlli4.html#XVANEK_MANDEL_BREZINA"><span
|
|
|
class="cmbx-12">28</span></a><span
|
|
|
class="cmbx-12">]</span></span><span
|
|
|
class="cmbx-12">. The basic idea of this algorithm is to build a coarse set of indices</span>
|
|
|
<span
|
|
|
class="cmr-12">Ω</span><sup><span
|
|
|
class="cmmi-8">k</span><span
|
|
|
class="cmr-8">+1</span></sup> <span
|
|
|
class="cmbx-12">by suitably grouping the indices of </span><span
|
|
|
class="cmr-12">Ω</span><sup><span
|
|
|
class="cmmi-8">k</span></sup> <span
|
|
|
class="cmbx-12">into disjoint subsets</span>
|
|
|
<span
|
|
|
class="cmbx-12">(aggregates), and to define the coarse-to-fine space transfer operator </span><span
|
|
|
class="cmmi-12">P</span><sup><span
|
|
|
class="cmmi-8">k</span></sup> <span
|
|
|
class="cmbx-12">by</span>
|
|
|
<span
|
|
|
class="cmbx-12">applying a suitable smoother to a simple piecewise constant prolongation</span>
|
|
|
<span
|
|
|
class="cmbx-12">operator, with the aim of improving the quality of the coarse-space</span>
|
|
|
<span
|
|
|
class="cmbx-12">correction.</span>
|
|
|
<!--l. 144--><p class="indent" > <span
|
|
|
class="cmbx-12">Three main steps can be identified in the smoothed aggregation</span>
|
|
|
<span
|
|
|
class="cmbx-12">procedure:</span>
|
|
|
<ol class="enumerate1" >
|
|
|
<li
|
|
|
class="enumerate" id="x15-14002x1"><span
|
|
|
class="cmbx-12">aggregation of the indices of </span><span
|
|
|
class="cmr-12">Ω</span><sup><span
|
|
|
class="cmmi-8">k</span></sup> <span
|
|
|
class="cmbx-12">to obtain </span><span
|
|
|
class="cmr-12">Ω</span><sup><span
|
|
|
class="cmmi-8">k</span><span
|
|
|
class="cmr-8">+1</span></sup><span
|
|
|
class="cmbx-12">;</span>
|
|
|
</li>
|
|
|
<li
|
|
|
class="enumerate" id="x15-14004x2"><span
|
|
|
class="cmbx-12">construction of the prolongator </span><span
|
|
|
class="cmmi-12">P</span><sup><span
|
|
|
class="cmmi-8">k</span></sup><span
|
|
|
class="cmbx-12">;</span>
|
|
|
</li>
|
|
|
<li
|
|
|
class="enumerate" id="x15-14006x3"><span
|
|
|
class="cmbx-12">application of </span><span
|
|
|
class="cmmi-12">P</span><sup><span
|
|
|
class="cmmi-8">k</span></sup> <span
|
|
|
class="cmbx-12">and </span><span
|
|
|
class="cmmi-12">R</span><sup><span
|
|
|
class="cmmi-8">k</span></sup> <span
|
|
|
class="cmr-12">= (</span><span
|
|
|
class="cmmi-12">P</span><sup><span
|
|
|
class="cmmi-8">k</span></sup><span
|
|
|
class="cmr-12">)</span><sup><span
|
|
|
class="cmmi-8">T</span> </sup> <span
|
|
|
class="cmbx-12">to build </span><span
|
|
|
class="cmmi-12">A</span><sup><span
|
|
|
class="cmmi-8">k</span><span
|
|
|
class="cmr-8">+1</span></sup><span
|
|
|
class="cmbx-12">.</span></li></ol>
|
|
|
<!--l. 151--><p class="indent" > <span
|
|
|
class="cmbx-12">In order to perform the coarsening step, the smoothed aggregation</span>
|
|
|
<span
|
|
|
class="cmbx-12">algorithm described in</span><span
|
|
|
class="cmbx-12"> </span><span class="cite"><span
|
|
|
class="cmbx-12">[</span><a
|
|
|
href="userhtmlli4.html#XVANEK_MANDEL_BREZINA"><span
|
|
|
class="cmbx-12">28</span></a><span
|
|
|
class="cmbx-12">]</span></span> <span
|
|
|
class="cmbx-12">is used. In this algorithm, each index </span><span
|
|
|
class="cmmi-12">j </span><span
|
|
|
class="cmsy-10x-x-120">∈ </span><span
|
|
|
class="cmr-12">Ω</span><sup><span
|
|
|
class="cmmi-8">k</span><span
|
|
|
class="cmr-8">+1</span></sup>
|
|
|
<span
|
|
|
class="cmbx-12">corresponds to an aggregate </span><span
|
|
|
class="cmr-12">Ω</span><sub><span
|
|
|
class="cmmi-8">j</span></sub><sup><span
|
|
|
class="cmmi-8">k</span></sup> <span
|
|
|
class="cmbx-12">of </span><span
|
|
|
class="cmr-12">Ω</span><sup><span
|
|
|
class="cmmi-8">k</span></sup><span
|
|
|
class="cmbx-12">, consisting of a suitably chosen index</span>
|
|
|
<span
|
|
|
class="cmmi-12">i </span><span
|
|
|
class="cmsy-10x-x-120">∈ </span><span
|
|
|
class="cmr-12">Ω</span><sup><span
|
|
|
class="cmmi-8">k</span></sup> <span
|
|
|
class="cmbx-12">and indices that are (usually) contained in a strongly-coupled</span>
|
|
|
<span
|
|
|
class="cmbx-12">neighborood of </span><span
|
|
|
class="cmmi-12">i</span><span
|
|
|
class="cmbx-12">, i.e.,</span>
|
|
|
<table
|
|
|
class="equation"><tr><td>
|
|
|
<center class="math-display" >
|
|
|
<img
|
|
|
src="userhtml13x.png" alt=" { ∘ ------}
|
|
|
Ωkj ⊂ N ki (θ) = r ∈ Ωk : |akir| > θ |akiiakrr| ∪ {i} ,
|
|
|
" class="math-display" ><a
|
|
|
id="x15-14007r3"></a></center></td><td class="equation-label"><span
|
|
|
class="cmr-12">(3)</span></td></tr></table>
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 160--><p class="nopar" >
|
|
|
<span
|
|
|
class="cmbx-12">for a given threshold </span><span
|
|
|
class="cmmi-12">θ </span><span
|
|
|
class="cmsy-10x-x-120">∈ </span><span
|
|
|
class="cmr-12">[0</span><span
|
|
|
class="cmmi-12">, </span><span
|
|
|
class="cmr-12">1] </span><span
|
|
|
class="cmbx-12">(see</span><span
|
|
|
class="cmbx-12"> </span><span class="cite"><span
|
|
|
class="cmbx-12">[</span><a
|
|
|
href="userhtmlli4.html#XVANEK_MANDEL_BREZINA"><span
|
|
|
class="cmbx-12">28</span></a><span
|
|
|
class="cmbx-12">]</span></span> <span
|
|
|
class="cmbx-12">for the details). Since this algorithm</span>
|
|
|
<span
|
|
|
class="cmbx-12">has a sequential nature, a decoupled version of it is applied, where each</span>
|
|
|
<span
|
|
|
class="cmbx-12">processor independently executes the algorithm on the set of indices</span>
|
|
|
<span
|
|
|
class="cmbx-12">assigned to it in the initial data distribution. This version is embarrassingly</span>
|
|
|
<span
|
|
|
class="cmbx-12">parallel, since it does not require any data communication. On the other</span>
|
|
|
<span
|
|
|
class="cmbx-12">hand, it may produce some nonuniform aggregates and is strongly</span>
|
|
|
<span
|
|
|
class="cmbx-12">dependent on the number of processors and on the initial partitioning of</span>
|
|
|
<span
|
|
|
class="cmbx-12">the matrix </span><span
|
|
|
class="cmmi-12">A</span><span
|
|
|
class="cmbx-12">. Nevertheless, this parallel algorithm has been chosen for</span>
|
|
|
<span
|
|
|
class="cmbx-12">MLD2P4, since it has been shown to produce good results in practice</span>
|
|
|
<span class="cite"><span
|
|
|
class="cmbx-12">[</span><a
|
|
|
href="userhtmlli4.html#Xaaecc_07"><span
|
|
|
class="cmbx-12">5</span></a><span
|
|
|
class="cmbx-12">,</span><span
|
|
|
class="cmbx-12"> </span><a
|
|
|
href="userhtmlli4.html#Xapnum_07"><span
|
|
|
class="cmbx-12">7</span></a><span
|
|
|
class="cmbx-12">,</span><span
|
|
|
class="cmbx-12"> </span><a
|
|
|
href="userhtmlli4.html#XTUMINARO_TONG"><span
|
|
|
class="cmbx-12">27</span></a><span
|
|
|
class="cmbx-12">]</span></span><span
|
|
|
class="cmbx-12">.</span>
|
|
|
<!--l. 172--><p class="indent" > <span
|
|
|
class="cmbx-12">The prolongator </span><span
|
|
|
class="cmmi-12">P</span><sup><span
|
|
|
class="cmmi-8">k</span></sup> <span
|
|
|
class="cmbx-12">is built starting from a tentative prolongator</span>
|
|
|
<span class="bar-css"><span
|
|
|
class="cmmi-12">P</span></span><sup><span
|
|
|
class="cmmi-8">k</span></sup> <span
|
|
|
class="cmsy-10x-x-120">∈ </span><span
|
|
|
class="msbm-10x-x-120">ℝ</span><sup><span
|
|
|
class="cmmi-8">n</span><sub><span
|
|
|
class="cmmi-6">k</span></sub><span
|
|
|
class="cmsy-8">×</span><span
|
|
|
class="cmmi-8">n</span><sub><span
|
|
|
class="cmmi-6">k</span><span
|
|
|
class="cmr-6">+1</span></sub></sup><span
|
|
|
class="cmbx-12">, defined as</span>
|
|
|
<table
|
|
|
class="equation"><tr><td>
|
|
|
<center class="math-display" >
|
|
|
<img
|
|
|
src="userhtml14x.png" alt=" { k
|
|
|
P<EFBFBD>k = (<28>pk), <20>pk = 1 if i ∈ Ω j,
|
|
|
ij ij 0 otherwise,
|
|
|
" class="math-display" ><a
|
|
|
id="x15-14008r4"></a></center></td><td class="equation-label"><span
|
|
|
class="cmr-12">(4)</span></td></tr></table>
|
|
|
<!--l. 181--><p class="nopar" >
|
|
|
<span
|
|
|
class="cmbx-12">where </span><span
|
|
|
class="cmr-12">Ω</span><sub><span
|
|
|
class="cmmi-8">j</span></sub><sup><span
|
|
|
class="cmmi-8">k</span></sup> <span
|
|
|
class="cmbx-12">is the aggregate of </span><span
|
|
|
class="cmr-12">Ω</span><sup><span
|
|
|
class="cmmi-8">k</span></sup> <span
|
|
|
class="cmbx-12">corresponding to the index </span><span
|
|
|
class="cmmi-12">j </span><span
|
|
|
class="cmsy-10x-x-120">∈ </span><span
|
|
|
class="cmr-12">Ω</span><sup><span
|
|
|
class="cmmi-8">k</span><span
|
|
|
class="cmr-8">+1</span></sup><span
|
|
|
class="cmbx-12">. </span><span
|
|
|
class="cmmi-12">P</span><sup><span
|
|
|
class="cmmi-8">k</span></sup> <span
|
|
|
class="cmbx-12">is</span>
|
|
|
<span
|
|
|
class="cmbx-12">obtained by applying to</span> <span class="bar-css"><span
|
|
|
class="cmmi-12">P</span></span><sup><span
|
|
|
class="cmmi-8">k</span></sup> <span
|
|
|
class="cmbx-12">a smoother </span><span
|
|
|
class="cmmi-12">S</span><sup><span
|
|
|
class="cmmi-8">k</span></sup> <span
|
|
|
class="cmsy-10x-x-120">∈ </span><span
|
|
|
class="msbm-10x-x-120">ℝ</span><sup><span
|
|
|
class="cmmi-8">n</span><sub><span
|
|
|
class="cmmi-6">k</span></sub><span
|
|
|
class="cmsy-8">×</span><span
|
|
|
class="cmmi-8">n</span><sub><span
|
|
|
class="cmmi-6">k</span></sub></sup><span
|
|
|
class="cmbx-12">:</span>
|
|
|
<center class="math-display" >
|
|
|
<img
|
|
|
src="userhtml15x.png" alt="Pk = Sk <20>P k, " class="math-display" ></center>
|
|
|
<span
|
|
|
class="cmbx-12">in order to remove nonsmooth components from the range of the</span>
|
|
|
<span
|
|
|
class="cmbx-12">prolongator, and hence to improve the convergence properties of the</span>
|
|
|
<span
|
|
|
class="cmbx-12">multilevel method</span><span
|
|
|
class="cmbx-12"> </span><span class="cite"><span
|
|
|
class="cmbx-12">[</span><a
|
|
|
href="userhtmlli4.html#XBREZINA_VANEK"><span
|
|
|
class="cmbx-12">2</span></a><span
|
|
|
class="cmbx-12">,</span><span
|
|
|
class="cmbx-12"> </span><a
|
|
|
href="userhtmlli4.html#XStuben_01"><span
|
|
|
class="cmbx-12">26</span></a><span
|
|
|
class="cmbx-12">]</span></span><span
|
|
|
class="cmbx-12">. A simple choice for </span><span
|
|
|
class="cmmi-12">S</span><sup><span
|
|
|
class="cmmi-8">k</span></sup> <span
|
|
|
class="cmbx-12">is the damped Jacobi</span>
|
|
|
<span
|
|
|
class="cmbx-12">smoother:</span>
|
|
|
|
|
|
|
|
|
|
|
|
<center class="math-display" >
|
|
|
<img
|
|
|
src="userhtml16x.png" alt="Sk = I - ωk(Dk )-1AkF,
|
|
|
" class="math-display" ></center>
|
|
|
<!--l. 195--><p class="nopar" > <span
|
|
|
class="cmbx-12">where </span><span
|
|
|
class="cmmi-12">D</span><sup><span
|
|
|
class="cmmi-8">k</span></sup> <span
|
|
|
class="cmbx-12">is the diagonal matrix with the same diagonal entries as </span><span
|
|
|
class="cmmi-12">A</span><sup><span
|
|
|
class="cmmi-8">k</span></sup><span
|
|
|
class="cmbx-12">,</span>
|
|
|
<span
|
|
|
class="cmmi-12">A</span><sub><span
|
|
|
class="cmmi-8">F</span> </sub><sup><span
|
|
|
class="cmmi-8">k</span></sup> <span
|
|
|
class="cmr-12">= (</span><span class="bar-css"><span
|
|
|
class="cmmi-12">a</span></span><sub>
|
|
|
<span
|
|
|
class="cmmi-8">ij</span></sub><sup><span
|
|
|
class="cmmi-8">k</span></sup><span
|
|
|
class="cmr-12">) </span><span
|
|
|
class="cmbx-12">is the filtered matrix defined as</span>
|
|
|
<table
|
|
|
class="equation"><tr><td>
|
|
|
<center class="math-display" >
|
|
|
<img
|
|
|
src="userhtml17x.png" alt=" {
|
|
|
<EFBFBD>ak = akij if j ∈ N ki (θ), (j ⁄= i), <20>ak = ak - ∑ (ak - <20>ak),
|
|
|
ij 0 otherwise, ii ii ij ij
|
|
|
j⁄=i
|
|
|
" class="math-display" ><a
|
|
|
id="x15-14009r5"></a></center></td><td class="equation-label"><span
|
|
|
class="cmr-12">(5)</span></td></tr></table>
|
|
|
<!--l. 208--><p class="nopar" >
|
|
|
<span
|
|
|
class="cmbx-12">and </span><span
|
|
|
class="cmmi-12">ω</span><sup><span
|
|
|
class="cmmi-8">k</span></sup> <span
|
|
|
class="cmbx-12">is an approximation of </span><span
|
|
|
class="cmr-12">4</span><span
|
|
|
class="cmmi-12">∕</span><span
|
|
|
class="cmr-12">(3</span><span
|
|
|
class="cmmi-12">ρ</span><sup><span
|
|
|
class="cmmi-8">k</span></sup><span
|
|
|
class="cmr-12">)</span><span
|
|
|
class="cmbx-12">, where </span><span
|
|
|
class="cmmi-12">ρ</span><sup><span
|
|
|
class="cmmi-8">k</span></sup> <span
|
|
|
class="cmbx-12">is the spectral radius of</span>
|
|
|
<span
|
|
|
class="cmr-12">(</span><span
|
|
|
class="cmmi-12">D</span><sup><span
|
|
|
class="cmmi-8">k</span></sup><span
|
|
|
class="cmr-12">)</span><sup><span
|
|
|
class="cmsy-8">-</span><span
|
|
|
class="cmr-8">1</span></sup><span
|
|
|
class="cmmi-12">A</span><sub>
|
|
|
<span
|
|
|
class="cmmi-8">F</span> </sub><sup><span
|
|
|
class="cmmi-8">k</span></sup> <span class="cite"><span
|
|
|
class="cmbx-12">[</span><a
|
|
|
href="userhtmlli4.html#XBREZINA_VANEK"><span
|
|
|
class="cmbx-12">2</span></a><span
|
|
|
class="cmbx-12">]</span></span><span
|
|
|
class="cmbx-12">. In MLD2P4 this approximation is obtained by using </span><span
|
|
|
class="cmsy-10x-x-120">∥</span><span
|
|
|
class="cmmi-12">A</span><sub>
|
|
|
<span
|
|
|
class="cmmi-8">F</span> </sub><sup><span
|
|
|
class="cmmi-8">k</span></sup><span
|
|
|
class="cmsy-10x-x-120">∥</span><sub>
|
|
|
<span
|
|
|
class="cmsy-8">∞</span></sub>
|
|
|
<span
|
|
|
class="cmbx-12">as an estimate of </span><span
|
|
|
class="cmmi-12">ρ</span><sup><span
|
|
|
class="cmmi-8">k</span></sup><span
|
|
|
class="cmbx-12">. Note that for systems coming from uniformly</span>
|
|
|
<span
|
|
|
class="cmbx-12">elliptic problems, filtering the matrix </span><span
|
|
|
class="cmmi-12">A</span><sup><span
|
|
|
class="cmmi-8">k</span></sup> <span
|
|
|
class="cmbx-12">has little or no effect, and</span>
|
|
|
<span
|
|
|
class="cmmi-12">A</span><sup><span
|
|
|
class="cmmi-8">k</span></sup> <span
|
|
|
class="cmbx-12">can be used instead of </span><span
|
|
|
class="cmmi-12">A</span><sub>
|
|
|
<span
|
|
|
class="cmmi-8">F</span> </sub><sup><span
|
|
|
class="cmmi-8">k</span></sup><span
|
|
|
class="cmbx-12">. The latter choice is the default in</span>
|
|
|
<span
|
|
|
class="cmbx-12">MLD2P4.</span>
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 216--><div class="crosslinks"><p class="noindent"><span
|
|
|
class="cmbx-12">[</span><a
|
|
|
href="userhtmlsu8.html" ><span
|
|
|
class="cmbx-12">next</span></a><span
|
|
|
class="cmbx-12">] [</span><a
|
|
|
href="userhtmlsu6.html" ><span
|
|
|
class="cmbx-12">prev</span></a><span
|
|
|
class="cmbx-12">] [</span><a
|
|
|
href="userhtmlsu6.html#tailuserhtmlsu6.html" ><span
|
|
|
class="cmbx-12">prev-tail</span></a><span
|
|
|
class="cmbx-12">] [</span><a
|
|
|
href="userhtmlsu7.html" ><span
|
|
|
class="cmbx-12">front</span></a><span
|
|
|
class="cmbx-12">] [</span><a
|
|
|
href="userhtmlse4.html#userhtmlsu7.html" ><span
|
|
|
class="cmbx-12">up</span></a><span
|
|
|
class="cmbx-12">] </span></p></div>
|
|
|
<!--l. 216--><p class="indent" > <a
|
|
|
id="tailuserhtmlsu7.html"></a>
|
|
|
</body></html>
|