|
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
|
|
"http://www.w3.org/TR/html4/loose.dtd">
|
|
|
|
<html >
|
|
|
|
<head><title>Multigrid Background</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. 1--><div class="crosslinks"><p class="noindent"><span
|
|
|
|
class="cmbx-12">[</span><a
|
|
|
|
href="userhtmlse5.html" ><span
|
|
|
|
class="cmbx-12">next</span></a><span
|
|
|
|
class="cmbx-12">] [</span><a
|
|
|
|
href="userhtmlse3.html" ><span
|
|
|
|
class="cmbx-12">prev</span></a><span
|
|
|
|
class="cmbx-12">] [</span><a
|
|
|
|
href="userhtmlse3.html#tailuserhtmlse3.html" ><span
|
|
|
|
class="cmbx-12">prev-tail</span></a><span
|
|
|
|
class="cmbx-12">] [</span><a
|
|
|
|
href="#tailuserhtmlse4.html"><span
|
|
|
|
class="cmbx-12">tail</span></a><span
|
|
|
|
class="cmbx-12">] [</span><a
|
|
|
|
href="userhtml.html#userhtmlse4.html" ><span
|
|
|
|
class="cmbx-12">up</span></a><span
|
|
|
|
class="cmbx-12">] </span></p></div>
|
|
|
|
<h3 class="sectionHead"><span class="titlemark"><span
|
|
|
|
class="cmbx-12">4 </span></span> <a
|
|
|
|
id="x13-120004"></a><span
|
|
|
|
class="cmbx-12">Multigrid Background</span></h3>
|
|
|
|
<!--l. 5--><p class="noindent" ><span
|
|
|
|
class="cmbx-12">Multigrid preconditioners, coupled with Krylov iterative solvers, are widely</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">used in the parallel solution of large and sparse linear systems, because of</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">their optimality in the solution of linear systems arising from the</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">discretization of scalar elliptic Partial Differential Equations (PDEs) on</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">regular grids. Optimality, also known as algorithmic scalability, is the</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">property of having a computational cost per iteration that depends linearly</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">on the problem size, and a convergence rate that is independent of the</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">problem size.</span>
|
|
|
|
<!--l. 13--><p class="indent" > <span
|
|
|
|
class="cmbx-12">Multigrid preconditioners are based on a recursive application of a</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">two-grid process consisting of smoother iterations and a coarse-space (or</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">coarse-level) correction. The smoothers may be either basic iterative</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">methods, such as the Jacobi and Gauss-Seidel ones, or more complex</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">subspace-correction methods, such as the Schwarz ones. The coarse-space</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">correction consists of solving, in an appropriately chosen coarse space, the</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">residual equation associated with the approximate solution computed by</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">the smoother, and of using the solution of this equation to correct the</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">previous approximation. The transfer of information between the original</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">(fine) space and the coarse one is performed by using suitable restriction</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">and prolongation operators. The construction of the coarse space and the</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">corresponding transfer operators is carried out by applying a so-called</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">coarsening algorithm to the system matrix. Two main approaches</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">can be used to perform coarsening: the geometric approach, which</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">exploits the knowledge of some physical grid associated with the</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">matrix and requires the user to define transfer operators from the</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">fine to the coarse level and vice versa, and the algebraic approach,</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">which builds the coarse-space correction and the associate transfer</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">operators using only matrix information. The first approach may be</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">difficult when the system comes from discretizations on complex</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">geometries; furthermore, ad hoc one-level smoothers may be required to</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">get an efficient interplay between fine and coarse levels, e.g., when</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">matrices with highly varying coefficients are considered. The second</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">approach performs a fully automatic coarsening and enforces the</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">interplay between fine and coarse level by suitably choosing the coarse</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">space and the coarse-to-fine interpolation (see, e.g., </span><span class="cite"><span
|
|
|
|
class="cmbx-12">[</span><a
|
|
|
|
href="userhtmlli4.html#XBriggs2000"><span
|
|
|
|
class="cmbx-12">3</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
|
|
|
|
class="cmbx-12"> </span><a
|
|
|
|
href="userhtmlli4.html#Xdd2_96"><span
|
|
|
|
class="cmbx-12">24</span></a><span
|
|
|
|
class="cmbx-12">]</span></span> <span
|
|
|
|
class="cmbx-12">for</span>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<span
|
|
|
|
class="cmbx-12">details.)</span>
|
|
|
|
<!--l. 37--><p class="indent" > <span
|
|
|
|
class="cmbx-12">MLD2P4 uses a pure algebraic approach, based on the smoothed</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">aggregation algorithm </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">, for building the sequence of coarse matrices</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">and transfer operators, starting from the original one. A decoupled version</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">of this algorithm is implemented, where the smoothed aggregation is</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">applied locally to each submatrix </span><span class="cite"><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">. A brief description of the AMG</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">preconditioners implemented in MLD2P4 is given in Sections</span><span
|
|
|
|
class="cmbx-12"> </span><a
|
|
|
|
href="userhtmlsu6.html#x14-130004.1"><span
|
|
|
|
class="cmbx-12">4.1</span><!--tex4ht:ref: sec:multilevel --></a><span
|
|
|
|
class="cmbx-12">-</span><a
|
|
|
|
href="userhtmlsu8.html#x16-150004.3"><span
|
|
|
|
class="cmbx-12">4.3</span><!--tex4ht:ref: sec:smoothers --></a><span
|
|
|
|
class="cmbx-12">. For</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">further details the reader is referred to </span><span class="cite"><span
|
|
|
|
class="cmbx-12">[</span><a
|
|
|
|
href="userhtmlli4.html#Xpara_04"><span
|
|
|
|
class="cmbx-12">4</span></a><span
|
|
|
|
class="cmbx-12">,</span><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#XMLD2P4_TOMS"><span
|
|
|
|
class="cmbx-12">8</span></a><span
|
|
|
|
class="cmbx-12">]</span></span><span
|
|
|
|
class="cmbx-12">.</span>
|
|
|
|
<!--l. 47--><p class="indent" > <span
|
|
|
|
class="cmbx-12">We note that optimal multigrid preconditioners do not necessarily</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">correspond to minimum execution times in a parallel setting. Indeed, to</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">obtain effective parallel multigrid preconditioners, a tradeoff between the</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">optimality and the cost of building and applying the smoothers and</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">the coarse-space corrections must be achieved. Effective parallel</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">preconditioners require algorithmic scalability to be coupled with</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">implementation scalability, i.e., a computational cost per iteration</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">which remains (almost) constant as the number of parallel processors</span>
|
|
|
|
<span
|
|
|
|
class="cmbx-12">increases.</span>
|
|
|
|
<!--l. 56--><p class="noindent" >
|
|
|
|
<div class="subsectionTOCS">
|
|
|
|
<span
|
|
|
|
class="cmbx-12"> </span><span class="subsectionToc" ><span
|
|
|
|
class="cmbx-12">4.1 </span><a
|
|
|
|
href="userhtmlsu6.html#x14-130004.1"><span
|
|
|
|
class="cmbx-12">AMG preconditioners</span></a></span>
|
|
|
|
<br /> <span
|
|
|
|
class="cmbx-12"> </span><span class="subsectionToc" ><span
|
|
|
|
class="cmbx-12">4.2 </span><a
|
|
|
|
href="userhtmlsu7.html#x15-140004.2"><span
|
|
|
|
class="cmbx-12">Smoothed Aggregation</span></a></span>
|
|
|
|
<br /> <span
|
|
|
|
class="cmbx-12"> </span><span class="subsectionToc" ><span
|
|
|
|
class="cmbx-12">4.3 </span><a
|
|
|
|
href="userhtmlsu8.html#x16-150004.3"><span
|
|
|
|
class="cmbx-12">Smoothers and coarsest-level solvers</span></a></span>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
|
|
|
|
class="cmbx-12">[</span><a
|
|
|
|
href="userhtmlse5.html" ><span
|
|
|
|
class="cmbx-12">next</span></a><span
|
|
|
|
class="cmbx-12">] [</span><a
|
|
|
|
href="userhtmlse3.html" ><span
|
|
|
|
class="cmbx-12">prev</span></a><span
|
|
|
|
class="cmbx-12">] [</span><a
|
|
|
|
href="userhtmlse3.html#tailuserhtmlse3.html" ><span
|
|
|
|
class="cmbx-12">prev-tail</span></a><span
|
|
|
|
class="cmbx-12">] [</span><a
|
|
|
|
href="userhtmlse4.html" ><span
|
|
|
|
class="cmbx-12">front</span></a><span
|
|
|
|
class="cmbx-12">] [</span><a
|
|
|
|
href="userhtml.html#userhtmlse4.html" ><span
|
|
|
|
class="cmbx-12">up</span></a><span
|
|
|
|
class="cmbx-12">] </span></p></div>
|
|
|
|
<!--l. 1--><p class="indent" > <a
|
|
|
|
id="tailuserhtmlse4.html"></a>
|
|
|
|
</body></html>
|