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