<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html > <head><title>Method smoothers_build</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta name="generator" content="TeX4ht (https://tug.org/tex4ht/)"> <meta name="originator" content="TeX4ht (https://tug.org/tex4ht/)"> <!-- html,3 --> <meta name="src" content="userhtml.tex"> <link rel="stylesheet" type="text/css" href="userhtml.css"> </head><body > <!--l. 622--><div class="crosslinks"><p class="noindent"><span class="cmr-12">[</span><a href="userhtmlsu11.html" ><span class="cmr-12">next</span></a><span class="cmr-12">] [</span><a href="userhtmlsu9.html" ><span class="cmr-12">prev</span></a><span class="cmr-12">] [</span><a href="userhtmlsu9.html#tailuserhtmlsu9.html" ><span class="cmr-12">prev-tail</span></a><span class="cmr-12">] [</span><a href="#tailuserhtmlsu10.html"><span class="cmr-12">tail</span></a><span class="cmr-12">] [</span><a href="userhtmlse5.html#userhtmlsu10.html" ><span class="cmr-12">up</span></a><span class="cmr-12">] </span></p></div> <h4 class="subsectionHead"><span class="titlemark"><span class="cmr-12">5.4 </span></span> <a id="x19-180005.4"></a><span class="cmr-12">Method smoothers</span><span class="cmr-12">_build</span></h4> <div class="center" > <!--l. 625--><p class="noindent" > <!--l. 626--><p class="noindent" ><span class="lstinline"></span><span class="cmtt-12">call</span><span class="cmtt-12"> </span><span class="cmtt-12">p</span><span class="cmtt-12">%</span><span class="cmtt-12">smoothers_build</span><span class="cmtt-12">(</span><span class="cmtt-12">a</span><span class="cmtt-12">,</span><span class="cmtt-12">desc_a</span><span class="cmtt-12">,</span><span class="cmtt-12">p</span><span class="cmtt-12">,</span><span class="cmtt-12">info</span><span class="cmtt-12">[,</span><span class="cmtt-12">amold</span><span class="cmtt-12">,</span><span class="cmtt-12">vmold</span><span class="cmtt-12">,</span><span class="cmtt-12">imold</span><span class="cmtt-12">])</span><br /> </div> <!--l. 629--><p class="noindent" ><span class="cmr-12">This method builds the smoothers and the coarsest-level solvers for the multilevel</span> <span class="cmr-12">preconditioner </span><span class="lstinline"></span><span class="cmtt-12">p</span><span class="cmr-12">, according to the requirements made by the user through the methods</span> <span class="lstinline"></span><span class="cmtt-12">init</span> <span class="cmr-12">and </span><span class="lstinline"></span><span class="cmtt-12">set</span><span class="cmr-12">, and based on the aggregation hierarchy produced by a previous call to</span> <span class="lstinline"></span><span class="cmtt-12">hierarchy_build</span> <span class="cmr-12">(see Section</span><span class="cmr-12"> </span><a href="userhtmlsu9.html#x18-170005.3"><span class="cmr-12">5.3</span><!--tex4ht:ref: sec:hier_bld --></a><span class="cmr-12">).</span> <!--l. 636--><p class="noindent" ><span class="cmbx-12">Arguments</span> <div class="tabular"> <table id="TBL-11" class="tabular" cellspacing="0" cellpadding="0" ><colgroup id="TBL-11-1g"><col id="TBL-11-1"><col id="TBL-11-2"></colgroup><tr style="vertical-align:baseline;" id="TBL-11-1-"><td style="white-space:normal; text-align:left;" id="TBL-11-1-1" class="td11"><!--l. 639--><p class="noindent" ><span class="lstinline"></span><span class="cmtt-12">a</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-1-2" class="td11"><!--l. 639--><p class="noindent" ><span class="lstinline"></span><span class="cmtt-12">type</span><span class="cmtt-12">(</span><span class="cmtt-12">psb_</span><span class="cmti-12">x</span><span class="lstinline"></span><span class="cmtt-12">spmat_type</span><span class="cmtt-12">),</span><span class="cmtt-12"> </span><span class="cmtt-12">intent</span><span class="cmtt-12">(</span><span class="cmtt-12">in</span><span class="cmtt-12">)</span><span class="cmr-12">.</span> </td> </tr><tr style="vertical-align:baseline;" id="TBL-11-2-"><td style="white-space:normal; text-align:left;" id="TBL-11-2-1" class="td11"><!--l. 640--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-2-2" class="td11"><!--l. 640--><p class="noindent" ><span class="cmr-12">The sparse matrix structure containing the local part of the matrix</span> <span class="cmr-12">to be preconditioned. Note that </span><span class="cmti-12">x </span><span class="cmr-12">must be chosen according to the</span> <span class="lstinline"></span><span class="cmtt-12">real</span><span class="cmr-12">/</span><span class="lstinline"></span><span class="cmtt-12">complex</span><span class="cmr-12">, single/double precision version of AMG4PSBLAS</span> <span class="cmr-12">under use. See the PSBLAS User’s Guide for details </span><span class="cite"><span class="cmr-12">[</span><a href="userhtmlli4.html#XPSBLASGUIDE"><span class="cmr-12">17</span></a><span class="cmr-12">]</span></span><span class="cmr-12">.</span> </td> </tr><tr style="vertical-align:baseline;" id="TBL-11-3-"><td style="white-space:normal; text-align:left;" id="TBL-11-3-1" class="td11"><!--l. 644--><p class="noindent" ><span class="lstinline"></span><span class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-11-3-2" class="td11"><!--l. 644--><p class="noindent" ><span class="lstinline"></span><span class="cmtt-12">type</span><span class="cmtt-12">(</span><span class="cmtt-12">psb_desc_type</span><span class="cmtt-12">),</span><span class="cmtt-12"> </span><span class="cmtt-12">intent</span><span class="cmtt-12">(</span><span class="cmtt-12">in</span><span class="cmtt-12">)</span><span class="cmr-12">.</span> </td> </tr><tr style="vertical-align:baseline;" id="TBL-11-4-"><td style="white-space:normal; text-align:left;" id="TBL-11-4-1" class="td11"><!--l. 645--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-4-2" class="td11"><!--l. 645--><p class="noindent" ><span class="cmr-12">The communication descriptor of </span><span class="lstinline"></span><span class="cmtt-12">a</span><span class="cmr-12">. See the PSBLAS User’s Guide</span> <span class="cmr-12">for details </span><span class="cite"><span class="cmr-12">[</span><a href="userhtmlli4.html#XPSBLASGUIDE"><span class="cmr-12">17</span></a><span class="cmr-12">]</span></span><span class="cmr-12">.</span> </td> </tr><tr style="vertical-align:baseline;" id="TBL-11-5-"><td style="white-space:normal; text-align:left;" id="TBL-11-5-1" class="td11"><!--l. 647--><p class="noindent" ><span class="lstinline"></span><span class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-5-2" class="td11"><!--l. 647--><p class="noindent" ><span class="lstinline"></span><span class="cmtt-12">integer</span><span class="cmtt-12">,</span><span class="cmtt-12"> </span><span class="cmtt-12">intent</span><span class="cmtt-12">(</span><span class="cmtt-12">out</span><span class="cmtt-12">)</span><span class="cmr-12">.</span> </td> </tr><tr style="vertical-align:baseline;" id="TBL-11-6-"><td style="white-space:normal; text-align:left;" id="TBL-11-6-1" class="td11"><!--l. 648--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-6-2" class="td11"><!--l. 648--><p class="noindent" ><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12"> </span><a href="userhtmlse7.html#x26-300007"><span class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span class="cmr-12">for details.</span> </td> </tr><tr style="vertical-align:baseline;" id="TBL-11-7-"><td style="white-space:normal; text-align:left;" id="TBL-11-7-1" class="td11"><!--l. 649--><p class="noindent" ><span class="lstinline"></span><span class="cmtt-12">amold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-7-2" class="td11"><!--l. 649--><p class="noindent" ><span class="lstinline"></span><span class="cmtt-12">class</span><span class="cmtt-12">(</span><span class="cmtt-12">psb_</span><span class="cmti-12">x</span><span class="lstinline"></span><span class="cmtt-12">_base_sparse_mat</span><span class="cmtt-12">),</span><span class="cmtt-12"> </span><span class="cmtt-12">intent</span><span class="cmtt-12">(</span><span class="cmtt-12">in</span><span class="cmtt-12">),</span><span class="cmtt-12"> </span><span class="cmtt-12">optional</span><span class="cmr-12">.</span> </td> </tr><tr style="vertical-align:baseline;" id="TBL-11-8-"><td style="white-space:normal; text-align:left;" id="TBL-11-8-1" class="td11"><!--l. 650--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-8-2" class="td11"><!--l. 650--><p class="noindent" ><span class="cmr-12">The desired dynamic type for internal matrix components; this</span> <span class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span> <span class="cmr-12">processes. See the PSBLAS User’s Guide for details </span><span class="cite"><span class="cmr-12">[</span><a href="userhtmlli4.html#XPSBLASGUIDE"><span class="cmr-12">17</span></a><span class="cmr-12">]</span></span><span class="cmr-12">.</span> </td> </tr><tr style="vertical-align:baseline;" id="TBL-11-9-"><td style="white-space:normal; text-align:left;" id="TBL-11-9-1" class="td11"><!--l. 654--><p class="noindent" ><span class="lstinline"></span><span class="cmtt-12">vmold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-9-2" class="td11"><!--l. 654--><p class="noindent" ><span class="lstinline"></span><span class="cmtt-12">class</span><span class="cmtt-12">(</span><span class="cmtt-12">psb_</span><span class="cmti-12">x</span><span class="lstinline"></span><span class="cmtt-12">_base_vect_type</span><span class="cmtt-12">),</span><span class="cmtt-12"> </span><span class="cmtt-12">intent</span><span class="cmtt-12">(</span><span class="cmtt-12">in</span><span class="cmtt-12">),</span><span class="cmtt-12"> </span><span class="cmtt-12">optional</span><span class="cmr-12">.</span> </td> </tr><tr style="vertical-align:baseline;" id="TBL-11-10-"><td style="white-space:normal; text-align:left;" id="TBL-11-10-1" class="td11"><!--l. 655--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-10-2" class="td11"><!--l. 655--><p class="noindent" ><span class="cmr-12">The desired dynamic type for internal vector components; this</span> <span class="cmr-12">allows e.g. running on GPUs.</span> </td> </tr><tr style="vertical-align:baseline;" id="TBL-11-11-"><td style="white-space:normal; text-align:left;" id="TBL-11-11-1" class="td11"><!--l. 657--><p class="noindent" ><span class="lstinline"></span><span class="cmtt-12">imold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-11-2" class="td11"><!--l. 657--><p class="noindent" ><span class="lstinline"></span><span class="cmtt-12">class</span><span class="cmtt-12">(</span><span class="cmtt-12">psb_i_base_vect_type</span><span class="cmtt-12">),</span><span class="cmtt-12"> </span><span class="cmtt-12">intent</span><span class="cmtt-12">(</span><span class="cmtt-12">in</span><span class="cmtt-12">),</span><span class="cmtt-12"> </span><span class="cmtt-12">optional</span><span class="cmr-12">.</span> </td> </tr><tr style="vertical-align:baseline;" id="TBL-11-12-"><td style="white-space:normal; text-align:left;" id="TBL-11-12-1" class="td11"><!--l. 658--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-12-2" class="td11"><!--l. 658--><p class="noindent" ><span class="cmr-12">The desired dynamic type for internal integer vector components;</span> <span class="cmr-12">this allows e.g. running on GPUs.</span> </td> </tr><tr style="vertical-align:baseline;" id="TBL-11-13-"><td style="white-space:normal; text-align:left;" id="TBL-11-13-1" class="td11"> </td> </tr></table></div> <!--l. 664--><div class="crosslinks"><p class="noindent"><span class="cmr-12">[</span><a href="userhtmlsu11.html" ><span class="cmr-12">next</span></a><span class="cmr-12">] [</span><a href="userhtmlsu9.html" ><span class="cmr-12">prev</span></a><span class="cmr-12">] [</span><a href="userhtmlsu9.html#tailuserhtmlsu9.html" ><span class="cmr-12">prev-tail</span></a><span class="cmr-12">] [</span><a href="userhtmlsu10.html" ><span class="cmr-12">front</span></a><span class="cmr-12">] [</span><a href="userhtmlse5.html#userhtmlsu10.html" ><span class="cmr-12">up</span></a><span class="cmr-12">] </span></p></div> <!--l. 664--><p class="indent" > <a id="tailuserhtmlsu10.html"></a> </body></html>