You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
amg4psblas/docs/html/userhtmlse5.html

3311 lines
251 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>User Interface</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. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlse6.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse4.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse4.html#tailuserhtmlse4.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlse5.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtml.html#userhtmlse5.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">5 </span></span> <a
id="x8-160005"></a><span
class="cmr-12">User Interface</span></h3>
<!--l. 5--><p class="noindent" ><span
class="cmr-12">The basic user interface of AMG4PBLAS consists of eight methods. The six methods</span>
<code class="lstinline"><span style="color:#000000">init</span></code><span
class="cmr-12">, </span><code class="lstinline"><span style="color:#000000">set</span></code><span
class="cmr-12">, </span><code class="lstinline"><span style="color:#000000">build</span></code><span
class="cmr-12">, </span><code class="lstinline"><span style="color:#000000">hierarchy_build</span></code><span
class="cmr-12">, </span><code class="lstinline"><span style="color:#000000">smoothers_build</span></code> <span
class="cmr-12">and </span><code class="lstinline"><span style="color:#000000">apply</span></code> <span
class="cmr-12">encapsulate all the</span>
<span
class="cmr-12">functionalities for the setup and the application of any multilevel and one-level</span>
<span
class="cmr-12">preconditioner implemented in the package. The method </span><code class="lstinline"><span style="color:#000000">free</span></code> <span
class="cmr-12">deallocates the</span>
<span
class="cmr-12">preconditioner data structure, while </span><code class="lstinline"><span style="color:#000000">descr</span></code> <span
class="cmr-12">prints a description of the preconditioner</span>
<span
class="cmr-12">setup by the user. For backward compatibility, methods are also accessible as</span>
<span
class="cmr-12">stand-alone subroutines.</span>
<!--l. 16--><p class="indent" > <span
class="cmr-12">For each method, the same user interface is overloaded with respect to the</span>
<span
class="cmr-12">real/complex and single/double precision data; arguments with appropriate data types</span>
<span
class="cmr-12">must be passed to the method, i.e.,</span>
<ul class="itemize1">
<li class="itemize">
<!--l. 20--><p class="noindent" ><span
class="cmr-12">the sparse matrix data structure, containing the matrix to be preconditioned,</span>
<span
class="cmr-12">must be of type </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">psb_</span></span></span><span
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">spmat_type</span></span></span> <span
class="cmr-12">with </span><span
class="cmti-12">x </span><span
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">s</span></span></span> <span
class="cmr-12">for real single precision, </span><span
class="cmti-12">x</span>
<span
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">d</span></span></span> <span
class="cmr-12">for real double precision, </span><span
class="cmti-12">x </span><span
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">c</span></span></span> <span
class="cmr-12">for complex single precision, </span><span
class="cmti-12">x </span><span
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">z</span></span></span> <span
class="cmr-12">for</span>
<span
class="cmr-12">complex double precision;</span>
</li>
<li class="itemize">
<!--l. 25--><p class="noindent" ><span
class="cmr-12">the preconditioner data structure must be of type </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">amg_</span></span></span><span
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">prec_type</span></span></span><span
class="cmr-12">, with </span><span
class="cmti-12">x</span>
<span
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">s</span></span></span><span
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">d</span></span></span><span
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">c</span></span></span><span
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">z</span></span></span><span
class="cmr-12">, according to the sparse matrix data structure;</span>
</li>
<li class="itemize">
<!--l. 29--><p class="noindent" ><span
class="cmr-12">the arrays containing the vectors </span><span
class="cmmi-12">v </span><span
class="cmr-12">and </span><span
class="cmmi-12">w </span><span
class="cmr-12">involved in the preconditioner</span>
<span
class="cmr-12">application </span><span
class="cmmi-12">w </span><span
class="cmr-12">= </span><span
class="cmmi-12">B</span><sup><span
class="cmsy-8">-</span><span
class="cmr-8">1</span></sup><span
class="cmmi-12">v </span><span
class="cmr-12">must be of type </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">psb_</span></span></span><span
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">vect_type</span></span></span> <span
class="cmr-12">with </span><span
class="cmti-12">x </span><span
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">s</span></span></span><span
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">d</span></span></span><span
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">c</span></span></span><span
class="cmr-12">,</span>
<span class="obeylines-h"><span class="verb"><span
class="cmtt-12">z</span></span></span><span
class="cmr-12">, in a manner completely analogous to the sparse matrix type;</span>
</li>
<li class="itemize">
<!--l. 34--><p class="noindent" ><span
class="cmr-12">real parameters defining the preconditioner must be declared according to</span>
<span
class="cmr-12">the precision of the sparse matrix and preconditioner data structures (see</span>
<span
class="cmr-12">Section</span><span
class="cmr-12">&#x00A0;</span><a
href="#x8-180005.2"><span
class="cmr-12">5.2</span><!--tex4ht:ref: sec:precset --></a><span
class="cmr-12">).</span></li></ul>
<!--l. 38--><p class="noindent" ><span
class="cmr-12">A description of each method is given in the remainder of this section.</span>
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">5.1 </span></span> <a
id="x8-170005.1"></a><span
class="cmr-12">Method init</span></h4>
<div class="center"
>
<!--l. 44--><p class="noindent" >
<!--l. 45--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">init</span><span style="color:#000000">(</span><span style="color:#000000">contxt</span><span style="color:#000000">,</span><span style="color:#000000">ptype</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">)</span></code></div>
<!--l. 48--><p class="noindent" ><span
class="cmr-12">This method allocates and initializes the preconditioner </span><code class="lstinline"><span style="color:#000000">p</span></code><span
class="cmr-12">, according to the</span>
<span
class="cmr-12">preconditioner type chosen by the user.</span>
<!--l. 52--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-2" class="tabular"
><colgroup id="TBL-2-1g"><col
id="TBL-2-1"><col
id="TBL-2-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-2-1-"><td style="white-space:normal; text-align:left;" id="TBL-2-1-1"
class="td11"><!--l. 56--><p class="noindent" ><code class="lstinline"><span style="color:#000000">contxt</span></code> </td> <td style="white-space:normal; text-align:left;" id="TBL-2-1-2"
class="td11"><!--l. 56--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_ctxt_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-2-"><td style="white-space:normal; text-align:left;" id="TBL-2-2-1"
class="td11"><!--l. 57--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-2-2-2"
class="td11"><!--l. 57--><p class="noindent" ><span
class="cmr-12">The communication context.</span> </td></tr><tr
style="vertical-align:baseline;" id="TBL-2-3-"><td style="white-space:normal; text-align:left;" id="TBL-2-3-1"
class="td11"><!--l. 58--><p class="noindent" ><code class="lstinline"><span style="color:#000000">ptype </span></code> </td> <td style="white-space:normal; text-align:left;" id="TBL-2-3-2"
class="td11"><!--l. 58--><p class="noindent" ><code class="lstinline"><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">) </span></code><span
class="cmr-12">.</span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-4-"><td style="white-space:normal; text-align:left;" id="TBL-2-4-1"
class="td11"><!--l. 59--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-2-4-2"
class="td11"><!--l. 59--><p class="noindent" ><span
class="cmr-12">The type of preconditioner. Its values are specified in Table</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse4.html#x7-13015r1"><span
class="cmr-12">1</span><!--tex4ht:ref: tab:precinit --></a><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-5-"><td style="white-space:normal; text-align:left;" id="TBL-2-5-1"
class="td11"><!--l. 61--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-2-5-2"
class="td11"><!--l. 61--><p class="noindent" ><span
class="cmr-12">Note that strings are case insensitive.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-6-"><td style="white-space:normal; text-align:left;" id="TBL-2-6-1"
class="td11"><!--l. 62--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-2-6-2"
class="td11"><!--l. 62--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-7-"><td style="white-space:normal; text-align:left;" id="TBL-2-7-1"
class="td11"><!--l. 63--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-2-7-2"
class="td11"><!--l. 63--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x10-320007"><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-2-8-"><td style="white-space:normal; text-align:left;" id="TBL-2-8-1"
class="td11"> </td> </tr></table> </div>
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">5.2 </span></span> <a
id="x8-180005.2"></a><span
class="cmr-12">Method set</span></h4>
<div class="center"
>
<!--l. 74--><p class="noindent" >
<!--l. 75--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">set</span><span style="color:#000000">(</span><span style="color:#000000">what</span><span style="color:#000000">,</span><span style="color:#000000">val</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000"> </span><span style="color:#000000">[,</span><span style="color:#000000">ilev</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">ilmax</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">pos</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">idx</span><span style="color:#000000">])</span></code></div>
<!--l. 78--><p class="noindent" ><span
class="cmr-12">This method sets the parameters defining the preconditioner </span><code class="lstinline"><span style="color:#000000">p</span></code><span
class="cmr-12">. More precisely, the</span>
<span
class="cmr-12">parameter identified by </span><code class="lstinline"><span style="color:#000000">what</span></code> <span
class="cmr-12">is assigned the value contained in </span><code class="lstinline"><span style="color:#000000">val</span></code><span
class="cmr-12">.</span>
<!--l. 83--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-3" class="tabular"
><colgroup id="TBL-3-1g"><col
id="TBL-3-1"><col
id="TBL-3-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-3-1-"><td style="white-space:normal; text-align:left;" id="TBL-3-1-1"
class="td11"><!--l. 86--><p class="noindent" ><code class="lstinline"><span style="color:#000000">what</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-3-1-2"
class="td11"><!--l. 86--><p class="noindent" ><code class="lstinline"><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-3-2-"><td style="white-space:normal; text-align:left;" id="TBL-3-2-1"
class="td11"><!--l. 87--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-3-2-2"
class="td11"><!--l. 87--><p class="noindent" ><span
class="cmr-12">The parameter to be set. It can be specified through its name; the</span>
<span
class="cmr-12">string is case-insensitive. See Tables</span><span
class="cmr-12">&#x00A0;</span><a
href="#x8-18009r2"><span
class="cmr-12">2</span><!--tex4ht:ref: tab:p_cycle --></a><span
class="cmr-12">-</span><a
href="#x8-18015r8"><span
class="cmr-12">8</span><!--tex4ht:ref: tab:p_smoother_1 --></a><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-3-3-"><td style="white-space:normal; text-align:left;" id="TBL-3-3-1"
class="td11"><!--l. 90--><p class="noindent" ><code class="lstinline"><span style="color:#000000">val</span><span style="color:#000000"> </span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-3-3-2"
class="td11"><!--l. 90--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span></code> <span
class="cmti-12">or </span><code class="lstinline"><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*)</span></code> <span
class="cmti-12">or </span><code class="lstinline"><span style="color:#000000">real</span><span style="color:#000000">(</span><span style="color:#000000">psb_spk_</span><span style="color:#000000">)</span></code> <span
class="cmti-12">or</span>
<code class="lstinline"><span style="color:#000000">real</span><span style="color:#000000">(</span><span style="color:#000000">psb_dpk_</span><span style="color:#000000">)</span></code><span
class="cmr-12">, </span><code class="lstinline"><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-3-4-"><td style="white-space:normal; text-align:left;" id="TBL-3-4-1"
class="td11"><!--l. 93--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-3-4-2"
class="td11"><!--l. 93--><p class="noindent" ><span
class="cmr-12">The value of the parameter to be set. The list of allowed values and</span>
<span
class="cmr-12">the corresponding data types is given in Tables</span><span
class="cmr-12">&#x00A0;</span><a
href="#x8-18009r2"><span
class="cmr-12">2</span><!--tex4ht:ref: tab:p_cycle --></a><span
class="cmr-12">-</span><a
href="#x8-18015r8"><span
class="cmr-12">8</span><!--tex4ht:ref: tab:p_smoother_1 --></a><span
class="cmr-12">. When the value</span>
<span
class="cmr-12">is of type </span><code class="lstinline"><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*)</span></code><span
class="cmr-12">, it is also treated as case insensitive.</span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-3-5-"><td style="white-space:normal; text-align:left;" id="TBL-3-5-1"
class="td11"><!--l. 98--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-3-5-2"
class="td11"><!--l. 98--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-3-6-"><td style="white-space:normal; text-align:left;" id="TBL-3-6-1"
class="td11"><!--l. 99--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-3-6-2"
class="td11"><!--l. 99--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x10-320007"><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-3-7-"><td style="white-space:normal; text-align:left;" id="TBL-3-7-1"
class="td11"><!--l. 101--><p class="noindent" ><code class="lstinline"><span style="color:#000000">ilev</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-3-7-2"
class="td11"><!--l. 101--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">optional</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-3-8-"><td style="white-space:normal; text-align:left;" id="TBL-3-8-1"
class="td11"><!--l. 102--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-3-8-2"
class="td11"><!--l. 102--><p class="noindent" ><span
class="cmr-12">For the multilevel preconditioner, the level at which the</span>
<span
class="cmr-12">preconditioner parameter has to be set. The levels are numbered</span>
<span
class="cmr-12">in increasing order starting from the finest one, i.e., level 1 is the</span>
<span
class="cmr-12">finest level. If </span><code class="lstinline"><span style="color:#000000">ilev</span></code> <span
class="cmr-12">is not present, the parameter identified by </span><code class="lstinline"><span style="color:#000000">what</span></code>
<span
class="cmr-12">is set at all levels that are appropriate (see Tables</span><span
class="cmr-12">&#x00A0;</span><a
href="#x8-18009r2"><span
class="cmr-12">2</span><!--tex4ht:ref: tab:p_cycle --></a><span
class="cmr-12">-</span><a
href="#x8-18015r8"><span
class="cmr-12">8</span><!--tex4ht:ref: tab:p_smoother_1 --></a><span
class="cmr-12">).</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-3-9-"><td style="white-space:normal; text-align:left;" id="TBL-3-9-1"
class="td11"><!--l. 109--><p class="noindent" ><code class="lstinline"><span style="color:#000000">ilmax</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-3-9-2"
class="td11"><!--l. 109--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">optional</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-3-10-"><td style="white-space:normal; text-align:left;" id="TBL-3-10-1"
class="td11"><!--l. 110--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-3-10-2"
class="td11"><!--l. 110--><p class="noindent" ><span
class="cmr-12">For the multilevel preconditioner, when both </span><code class="lstinline"><span style="color:#000000">ilev</span></code> <span
class="cmr-12">and </span><code class="lstinline"><span style="color:#000000">ilmax</span></code> <span
class="cmr-12">are</span>
<span
class="cmr-12">present, the settings are applied at all levels </span><code class="lstinline"><span style="color:#000000">ilev</span><span style="color:#000000">:</span><span style="color:#000000">ilmax</span></code><span
class="cmr-12">. When</span>
<code class="lstinline"><span style="color:#000000">ilev</span></code> <span
class="cmr-12">is present but </span><code class="lstinline"><span style="color:#000000">ilmax</span></code> <span
class="cmr-12">is not, then the default is </span><code class="lstinline"><span style="color:#000000">ilmax</span><span style="color:#000000">=</span><span style="color:#000000">ilev</span></code><span
class="cmr-12">.</span>
<span
class="cmr-12">The levels are numbered in increasing order starting from the finest</span>
<span
class="cmr-12">one, i.e., level 1 is the finest level.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-3-11-"><td style="white-space:normal; text-align:left;" id="TBL-3-11-1"
class="td11"><!--l. 117--><p class="noindent" ><code class="lstinline"><span style="color:#000000">pos</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-3-11-2"
class="td11"><!--l. 117--><p class="noindent" ><code class="lstinline"><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-3-12-"><td style="white-space:normal; text-align:left;" id="TBL-3-12-1"
class="td11"><!--l. 118--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-3-12-2"
class="td11"><!--l. 118--><p class="noindent" ><span
class="cmr-12">Whether the other arguments apply only to the pre-smoother</span>
<span
class="cmr-12">(</span><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">PRE</span><span style="color:#000000">&#8217;</span></code><span
class="cmr-12">) or to the post-smoother (</span><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">POST</span><span style="color:#000000">&#8217;</span></code><span
class="cmr-12">). If </span><code class="lstinline"><span style="color:#000000">pos</span></code> <span
class="cmr-12">is not present,</span>
<span
class="cmr-12">the other arguments are applied to both smoothers. If the</span>
<span
class="cmr-12">preconditioner is one-level or the parameter identified by </span><code class="lstinline"><span style="color:#000000">what</span></code> <span
class="cmr-12">does</span>
<span
class="cmr-12">not concern the smoothers, </span><code class="lstinline"><span style="color:#000000">pos</span></code> <span
class="cmr-12">is ignored.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-3-13-"><td style="white-space:normal; text-align:left;" id="TBL-3-13-1"
class="td11"><!--l. 123--><p class="noindent" ><code class="lstinline"><span style="color:#000000">idx</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-3-13-2"
class="td11"><!--l. 123--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">optional</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-3-14-"><td style="white-space:normal; text-align:left;" id="TBL-3-14-1"
class="td11"><!--l. 124--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-3-14-2"
class="td11"><!--l. 124--><p class="noindent" ><span
class="cmr-12">An auxiliary input argument that can be passed to the underlying</span>
<span
class="cmr-12">objects.</span> </td>
</tr></table> </div>
<!--l. 129--><p class="noindent" >
<!--l. 134--><p class="indent" > <span
class="cmr-12">A variety of preconditioners can be obtained by setting the appropriate</span>
<span
class="cmr-12">preconditioner parameters. These parameters can be logically divided into four groups,</span>
<span
class="cmr-12">i.e., parameters defining</span>
<ol class="enumerate1" >
<li
class="enumerate" id="x8-18002x1">
<!--l. 138--><p class="noindent" ><span
class="cmr-12">the type of multilevel cycle and how many cycles must be applied;</span>
</li>
<li
class="enumerate" id="x8-18004x2">
<!--l. 139--><p class="noindent" ><span
class="cmr-12">the coarsening algorithm;</span>
</li>
<li
class="enumerate" id="x8-18006x3">
<!--l. 140--><p class="noindent" ><span
class="cmr-12">the solver at the coarsest level (for multilevel preconditioners only);</span>
</li>
<li
class="enumerate" id="x8-18008x4">
<!--l. 142--><p class="noindent" ><span
class="cmr-12">the smoother of the multilevel preconditioners, or the one-level</span>
<span
class="cmr-12">preconditioner.</span></li></ol>
<!--l. 145--><p class="noindent" ><span
class="cmr-12">A list of the parameters that can be set, along with their allowed and default values, is</span>
<span
class="cmr-12">given in Tables</span><span
class="cmr-12">&#x00A0;</span><a
href="#x8-18009r2"><span
class="cmr-12">2</span><!--tex4ht:ref: tab:p_cycle --></a><span
class="cmr-12">-</span><a
href="#x8-18015r8"><span
class="cmr-12">8</span><!--tex4ht:ref: tab:p_smoother_1 --></a><span
class="cmr-12">.</span><br
class="newline" />
<!--l. 148--><p class="indent" > <span
class="cmbx-12">Remark 2. </span><span
class="cmr-12">A smoother is usually obtained by combining two objects: a</span>
<span
class="cmr-12">smoother (</span><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SMOOTHER_TYPE</span><span style="color:#000000">&#8217;</span></code><span
class="cmr-12">) and a local solver (</span><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SUB_SOLVE</span><span style="color:#000000">&#8217;</span></code><span
class="cmr-12">), as specified in</span>
<span
class="cmr-12">Tables</span><span
class="cmr-12">&#x00A0;</span><a
href="#x8-18014r7"><span
class="cmr-12">7</span><!--tex4ht:ref: tab:p_smoother --></a><span
class="cmr-12">-</span><a
href="#x8-18016r9"><span
class="cmr-12">9</span><!--tex4ht:ref: tab:p_smoother_2 --></a><span
class="cmr-12">. For example, the block-Jacobi smoother using ILU(0) on the blocks is</span>
<span
class="cmr-12">obtained by combining the block-Jacobi smoother object with the ILU(0) solver</span>
<span
class="cmr-12">object. Similarly, the hybrid Gauss-Seidel smoother (see Note in Table</span><span
class="cmr-12">&#x00A0;</span><a
href="#x8-18014r7"><span
class="cmr-12">7</span><!--tex4ht:ref: tab:p_smoother --></a><span
class="cmr-12">) is</span>
<span
class="cmr-12">obtained by combining the block-Jacobi smoother object with a single sweep of</span>
<span
class="cmr-12">the Gauss-Seidel solver object, while the point-Jacobi smoother is the result</span>
<span
class="cmr-12">of combining the block-Jacobi smoother object with a single sweep of the</span>
<span
class="cmr-12">point-Jacobi solver object. In the same way are obtained the </span><span
class="cmmi-12">&#x2113;</span><sub><span
class="cmr-8">1</span></sub><span
class="cmr-12">-versions of the</span>
<span
class="cmr-12">smoothers. However, for simplicity, shortcuts are provided to set all versions of</span>
<span
class="cmr-12">point-Jacobi, hybrid (forward) Gauss-Seidel, and hybrid backward Gauss-Seidel, i.e.,</span>
<span
class="cmr-12">the previous smoothers can be defined just by setting </span><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SMOOTHER_TYPE</span><span style="color:#000000">&#8217;</span></code> <span
class="cmr-12">to</span>
<span
class="cmr-12">certain specific values (see Tables</span><span
class="cmr-12">&#x00A0;</span><a
href="#x8-18014r7"><span
class="cmr-12">7</span><!--tex4ht:ref: tab:p_smoother --></a><span
class="cmr-12">), without the need to set </span><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SUB_SOLVE</span><span style="color:#000000">&#8217;</span></code> <span
class="cmr-12">as</span>
<span
class="cmr-12">well.</span>
<!--l. 166--><p class="indent" > <span
class="cmr-12">The smoother and solver objects are arranged in a hierarchical manner. When</span>
<span
class="cmr-12">specifying a smoother object, its parameters, including the local solver, are set to</span>
<span
class="cmr-12">their default values, and when a solver object is specified, its defaults are also</span>
<span
class="cmr-12">set, overriding in both cases any previous settings even if explicitly specified.</span>
<span
class="cmr-12">Therefore if the user sets a smoother, and wishes to use a solver different from</span>
<span
class="cmr-12">the default one, the call to set the solver must come </span><span
class="cmti-12">after </span><span
class="cmr-12">the call to set the</span>
<span
class="cmr-12">smoother.</span>
<!--l. 175--><p class="indent" > <span
class="cmr-12">Similar considerations apply to the point-Jacobi, Gauss-Seidel and block-Jacobi</span>
<span
class="cmr-12">coarsest-level solvers, and shortcuts are available in this case too (see Table</span><span
class="cmr-12">&#x00A0;</span><a
href="#x8-18012r5"><span
class="cmr-12">5</span><!--tex4ht:ref: tab:p_coarse_1 --></a><span
class="cmr-12">).</span>
<br
class="newline" />
<!--l. 179--><p class="indent" > <span
class="cmbx-12">Remark 3. </span><span
class="cmr-12">The polynomial-accelerated smoother described in Tables</span><span
class="cmr-12">&#x00A0;</span><a
href="#x8-18014r7"><span
class="cmr-12">7</span><!--tex4ht:ref: tab:p_smoother --></a> <span
class="cmr-12">and</span><span
class="cmr-12">&#x00A0;</span><a
href="#x8-18016r9"><span
class="cmr-12">9</span><!--tex4ht:ref: tab:p_smoother_2 --></a>
<span
class="cmr-12">redefines a sweep or iteration as corresponding to the degree of the polynomial used.</span>
<span
class="cmr-12">Consequently, the </span><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SMOOTHER_SWEEPS</span><span style="color:#000000">&#8217;</span></code> <span
class="cmr-12">option is overridden by the </span><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">POLY_DEGREE</span><span style="color:#000000">&#8217;</span></code>
<span
class="cmr-12">option. This smoother is paired with a base smoother object, whose iterations are</span>
<span
class="cmr-12">accelerated using the specified polynomial smoothing technique. By default, the</span>
<span
class="cmmi-12">&#x2113;</span><sub><span
class="cmr-8">1</span></sub><span
class="cmr-12">-Jacobi smoother serves as the base smoother, offering theoretical guarantees on the</span>
<span
class="cmr-12">resulting convergence factor</span><span
class="cmr-12">&#x00A0;</span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli3.html#XDDFMT2024"><span
class="cmr-12">15</span></a><span
class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlli3.html#XLOTTES"><span
class="cmr-12">27</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">. Alternative combinations are experimental and</span>
<span
class="cmr-12">lack established guarantees.</span><br
class="newline" />
<!--l. 188--><p class="indent" > <span
class="cmbx-12">Remark 4. </span><span
class="cmr-12">Many of the coarsest-level solvers apply to a specific coarsest-matrix</span>
<span
class="cmr-12">layout; therefore, setting the solver after the layout may change the layout to either</span>
<span
class="cmr-12">distributed or replicated. Similarly, setting the layout after the solver may change the</span>
<span
class="cmr-12">solver.</span>
<!--l. 194--><p class="indent" > <span
class="cmr-12">More precisely, UMFPACK and SuperLU require the coarsest-level matrix to be</span>
<span
class="cmr-12">replicated, while SuperLU</span><span
class="cmr-12">_Dist and KRM require it to be distributed. In these cases,</span>
<span
class="cmr-12">setting the coarsest-level solver implies that the layout is redefined according to the</span>
<span
class="cmr-12">solver, ovverriding any previous settings. MUMPS, point-Jacobi, hybrid Gauss-Seidel</span>
<span
class="cmr-12">and block-Jacobi can be applied to replicated and distributed matrices, thus their</span>
<span
class="cmr-12">choice does not modify any previously specified layout. It is worth noting that, when</span>
<span
class="cmr-12">the matrix is replicated, the point-Jacobi, hybrid Gauss-Seidel and block-Jacobi solvers</span>
<span
class="cmr-12">and their </span><span
class="cmmi-12">&#x2113;</span><sub><span
class="cmr-8">1</span></sub><span
class="cmsy-10x-x-120">- </span><span
class="cmr-12">versions reduce to the corresponding local solver objects (see Remark</span><span
class="cmr-12">&#x00A0;2).</span>
<span
class="cmr-12">For the point-Jacobi and Gauss-Seidel solvers, these objects correspond to a </span><span
class="cmti-12">single</span>
<span
class="cmr-12">point-Jacobi sweep and a </span><span
class="cmti-12">single </span><span
class="cmr-12">Gauss-Seidel sweep, respectively, which are very poor</span>
<span
class="cmr-12">solvers.</span>
<!--l. 209--><p class="indent" > <span
class="cmr-12">On the other hand, the distributed layout can be used with any solver but</span>
<span
class="cmr-12">UMFPACK and SuperLU; therefore, if any of these two solvers has already been</span>
<span
class="cmr-12">selected, the coarsest-level solver is changed to block-Jacobi, with the previously chosen</span>
<span
class="cmr-12">solver applied to the local blocks. Likewise, the replicated layout can be used with any</span>
<span
class="cmr-12">solver but SuperLu</span><span
class="cmr-12">_Dist and KRM; therefore, if SuperLu</span><span
class="cmr-12">_Dist or KRM have been</span>
<span
class="cmr-12">previously set, the coarsest-level solver is changed to the default sequential</span>
<span
class="cmr-12">solver.</span>
<!--l. 217--><p class="indent" > <span
class="cmr-12">In a parallel setting with many cores, we suggest to the users to change the default</span>
<span
class="cmr-12">coarsest solver for using the KRM choice, i.e. a parallel distributed iterative solution of</span>
<span
class="cmr-12">the coarsest system based on Krylov methods.</span>
<!--l. 221--><p class="indent" > <span
class="cmbx-12">Remark 4. </span><span
class="cmr-12">The argument </span><code class="lstinline"><span style="color:#000000">idx</span></code> <span
class="cmr-12">can be used to allow finer control for those solvers;</span>
<span
class="cmr-12">for instance, by specifying the keyword </span><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">MUMPS_IPAR_ENTRY</span><span style="color:#000000">&#8217;</span></code> <span
class="cmr-12">and an appropriate value</span>
<span
class="cmr-12">for </span><code class="lstinline"><span style="color:#000000">idx</span></code><span
class="cmr-12">, it is possible to set any entry in the MUMPS integer control array. See also</span>
<span
class="cmr-12">Sec.</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse6.html#x9-310006"><span
class="cmr-12">6</span><!--tex4ht:ref: sec:adding --></a><span
class="cmr-12">.</span>
<div class="table">
<!--l. 232--><p class="indent" > <a
id="x8-18009r2"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 232--><p class="noindent" >
<div class="tabular"> <table id="TBL-4" class="tabular"
><colgroup id="TBL-4-1g"><col
id="TBL-4-1"></colgroup><colgroup id="TBL-4-2g"><col
id="TBL-4-2"></colgroup><colgroup id="TBL-4-3g"><col
id="TBL-4-3"></colgroup><colgroup id="TBL-4-4g"><col
id="TBL-4-4"></colgroup><colgroup id="TBL-4-5g"><col
id="TBL-4-5"></colgroup><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-4-1-"><td style="white-space:normal; text-align:left;" id="TBL-4-1-1"
class="td11"><!--l. 236--><p class="noindent" ><code class="lstinline"><span style="color:#000000">what</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-1-2"
class="td11"><span
class="cmcsc-10x-x-109"><span
class="small-caps">d</span><span
class="small-caps">a</span><span
class="small-caps">t</span><span
class="small-caps">a</span> <span
class="small-caps">t</span><span
class="small-caps">y</span><span
class="small-caps">p</span><span
class="small-caps">e</span> </span></td><td style="white-space:normal; text-align:left;" id="TBL-4-1-3"
class="td11"><!--l. 236--><p class="noindent" ><code class="lstinline"><span style="color:#000000">val</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-4-1-4"
class="td11"><!--l. 236--><p class="noindent" ><span
class="cmcsc-10x-x-109"><span
class="small-caps">d</span><span
class="small-caps">e</span><span
class="small-caps">f</span><span
class="small-caps">a</span><span
class="small-caps">u</span><span
class="small-caps">l</span><span
class="small-caps">t</span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-4-1-5"
class="td11"><!--l. 237--><p class="noindent" ><span
class="cmcsc-10x-x-109"><span
class="small-caps">c</span><span
class="small-caps">o</span><span
class="small-caps">m</span><span
class="small-caps">m</span><span
class="small-caps">e</span><span
class="small-caps">n</span><span
class="small-caps">t</span><span
class="small-caps">s</span></span> </td></tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-4-2-"><td style="white-space:normal; text-align:left;" id="TBL-4-2-1"
class="td11"><!--l. 238--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">ML_CYCLE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-2-2"
class="td11"><code class="lstinline"><!--l. 238--><p class="noindent" ><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*) </span> </code></td><td style="white-space:normal; text-align:left;" id="TBL-4-2-3"
class="td11"><!--l. 239--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">VCYCLE</span><span style="color:#000000">&#8217;</span></code>
<!--l. 239--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">WCYCLE</span><span style="color:#000000">&#8217;</span></code>
<!--l. 239--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">KCYCLE</span><span style="color:#000000">&#8217;</span></code>
<!--l. 239--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">ADD</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-4-2-4"
class="td11"><!--l. 240--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">VCYCLE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-4-2-5"
class="td11"><!--l. 241--><p class="noindent" >Multilevel cycle: V-cycle, W-cycle, K-cycle,
and additive composition. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-4-3-"><td style="white-space:normal; text-align:left;" id="TBL-4-3-1"
class="td11"><!--l. 242--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">CYCLE_SWEEPS</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-4-3-2"
class="td11"><code class="lstinline"><!--l. 242--><p class="noindent" ><span style="color:#000000">integer</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-4-3-3"
class="td11"><!--l. 243--><p class="noindent" >Any integer
<!--l. 243--><p class="noindent" >number <span
class="cmsy-10x-x-109">&#x2265; </span>1 </td><td style="white-space:normal; text-align:left;" id="TBL-4-3-4"
class="td11"><!--l. 243--><p class="noindent" >1 </td><td style="white-space:normal; text-align:left;" id="TBL-4-3-5"
class="td11"><!--l. 244--><p class="noindent" >Number of multilevel cycles. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-4-4-"><td style="white-space:normal; text-align:left;" id="TBL-4-4-1"
class="td11"> </td></tr></table> </div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;2: </span><span
class="content">Parameters defining the multilevel cycle and the number of cycles to be
applied. </span></div><!--tex4ht:label?: x8-18009r2 -->
</div><hr class="endfloat" />
</div>
<div class="table">
<!--l. 254--><p class="indent" > <a
id="x8-18010r3"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 254--><p class="noindent" >
<div class="tabular"> <table id="TBL-5" class="tabular"
><colgroup id="TBL-5-1g"><col
id="TBL-5-1"></colgroup><colgroup id="TBL-5-2g"><col
id="TBL-5-2"></colgroup><colgroup id="TBL-5-3g"><col
id="TBL-5-3"></colgroup><colgroup id="TBL-5-4g"><col
id="TBL-5-4"></colgroup><colgroup id="TBL-5-5g"><col
id="TBL-5-5"></colgroup><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-5-1-"><td style="white-space:normal; text-align:left;" id="TBL-5-1-1"
class="td11"><!--l. 258--><p class="noindent" ><code class="lstinline"><span style="color:#000000">what</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-1-2"
class="td11"><span
class="cmcsc-10x-x-109"><span
class="small-caps">d</span><span
class="small-caps">a</span><span
class="small-caps">t</span><span
class="small-caps">a</span> <span
class="small-caps">t</span><span
class="small-caps">y</span><span
class="small-caps">p</span><span
class="small-caps">e</span> </span></td><td style="white-space:normal; text-align:left;" id="TBL-5-1-3"
class="td11"><!--l. 258--><p class="noindent" ><code class="lstinline"><span style="color:#000000">val</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-5-1-4"
class="td11"><!--l. 258--><p class="noindent" ><span
class="cmcsc-10x-x-109"><span
class="small-caps">d</span><span
class="small-caps">e</span><span
class="small-caps">f</span><span
class="small-caps">a</span><span
class="small-caps">u</span><span
class="small-caps">l</span><span
class="small-caps">t</span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-5-1-5"
class="td11"><!--l. 259--><p class="noindent" ><span
class="cmcsc-10x-x-109"><span
class="small-caps">c</span><span
class="small-caps">o</span><span
class="small-caps">m</span><span
class="small-caps">m</span><span
class="small-caps">e</span><span
class="small-caps">n</span><span
class="small-caps">t</span><span
class="small-caps">s</span></span> </td></tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-5-2-"><td style="white-space:normal; text-align:left;" id="TBL-5-2-1"
class="td11"><!--l. 260--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">MIN_COARSE_SIZE_PER_PROCESS</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-2-2"
class="td11"><code class="lstinline"><!--l. 260--><p class="noindent" ><span style="color:#000000">integer </span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-5-2-3"
class="td11"><!--l. 261--><p class="noindent" >Any number
<!--l. 261--><p class="noindent" ><span
class="cmmi-10x-x-109">&#x003E; </span>0 </td><td style="white-space:normal; text-align:left;" id="TBL-5-2-4"
class="td11"><!--l. 262--><p class="noindent" >200 </td><td style="white-space:normal; text-align:left;" id="TBL-5-2-5"
class="td11"><!--l. 263--><p class="noindent" >Coarse size threshold per process. The
aggregation stops if the global number of
variables of the computed coarsest matrix
is lower than or equal to this threshold
multiplied by the number of processes
(see Note). </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-5-3-"><td style="white-space:normal; text-align:left;" id="TBL-5-3-1"
class="td11"><!--l. 269--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">MIN_COARSE_SIZE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-3-2"
class="td11"><code class="lstinline"><!--l. 269--><p class="noindent" ><span style="color:#000000">integer</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-5-3-3"
class="td11"><!--l. 270--><p class="noindent" >Any number
<!--l. 270--><p class="noindent" ><span
class="cmmi-10x-x-109">&#x003E; </span>0 </td><td style="white-space:normal; text-align:left;" id="TBL-5-3-4"
class="td11"><!--l. 271--><p class="noindent" >-1 </td><td style="white-space:normal; text-align:left;" id="TBL-5-3-5"
class="td11"><!--l. 272--><p class="noindent" >Coarse size threshold. The aggregation
stops if the global number of variables
of the computed coarsest matrix is lower
than or equal
to this threshold (see Note). If negative,
it is ignored in favour of the default for
<code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">MIN_COARSE_SIZE_PER_PROCESS</span><span style="color:#000000">&#8217;</span></code>. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-5-4-"><td style="white-space:normal; text-align:left;" id="TBL-5-4-1"
class="td11"><!--l. 281--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">MIN_CR_RATIO</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-4-2"
class="td11"><code class="lstinline"><!--l. 281--><p class="noindent" ><span style="color:#000000">real</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-5-4-3"
class="td11"><!--l. 282--><p class="noindent" >Any number
<!--l. 282--><p class="noindent" ><span
class="cmmi-10x-x-109">&#x003E; </span>1 </td><td style="white-space:normal; text-align:left;" id="TBL-5-4-4"
class="td11"><!--l. 283--><p class="noindent" >1.5 </td><td style="white-space:normal; text-align:left;" id="TBL-5-4-5"
class="td11"><!--l. 284--><p class="noindent" >Minimum coarsening
ratio. The aggregation stops if the ratio
between the global matrix dimensions at
two consecutive levels is lower than or
equal to this threshold (see Note). </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-5-5-"><td style="white-space:normal; text-align:left;" id="TBL-5-5-1"
class="td11"><!--l. 289--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">MAX_LEVS</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-5-2"
class="td11"><code class="lstinline"><!--l. 289--><p class="noindent" ><span style="color:#000000">integer</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-5-5-3"
class="td11"><!--l. 290--><p class="noindent" >Any integer
<!--l. 290--><p class="noindent" >number <span
class="cmmi-10x-x-109">&#x003E; </span>1 </td><td style="white-space:normal; text-align:left;" id="TBL-5-5-4"
class="td11"><!--l. 291--><p class="noindent" >20 </td><td style="white-space:normal; text-align:left;" id="TBL-5-5-5"
class="td11"><!--l. 292--><p class="noindent" >Maximum number of levels. The
aggregation stops if the number of levels
reaches this value (see Note). </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-5-6-"><td style="white-space:normal; text-align:left;" id="TBL-5-6-1"
class="td11"><!--l. 294--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">PAR_AGGR_ALG</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-6-2"
class="td11"><code class="lstinline"><!--l. 294--><p class="noindent" ><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*)</span> </code></td><td style="white-space:normal; text-align:left;" id="TBL-5-6-3"
class="td11"><!--l. 295--><p class="noindent" ><span
class="cmtt-10x-x-109">&#8217;DEC&#8217;</span>,
<span
class="cmtt-10x-x-109">&#8217;SYMDEC&#8217;</span>,
<span
class="cmtt-10x-x-109">&#8217;COUPLED&#8217;</span> </td><td style="white-space:normal; text-align:left;" id="TBL-5-6-4"
class="td11"><!--l. 296--><p class="noindent" ><span
class="cmtt-10x-x-109">&#8217;DEC&#8217;</span> </td><td style="white-space:normal; text-align:left;" id="TBL-5-6-5"
class="td11"><!--l. 297--><p class="noindent" >Parallel aggregation algorithm.
<!--l. 297--><p class="noindent" >the <code class="lstinline"><span style="color:#000000">SYMDEC</span></code> option applies decoupled
aggregation to the sparsity pattern of
<span
class="cmmi-10x-x-109">A </span>+ <span
class="cmmi-10x-x-109">A</span><sup><span
class="cmmi-8">T</span> </sup>. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-5-7-"><td style="white-space:normal; text-align:left;" id="TBL-5-7-1"
class="td11"><!--l. 314--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">AGGR_TYPE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-7-2"
class="td11"><code class="lstinline"><!--l. 314--><p class="noindent" ><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*)</span> </code></td><td style="white-space:normal; text-align:left;" id="TBL-5-7-3"
class="td11"><!--l. 315--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SOC1</span><span style="color:#000000">&#8217;</span></code>,
<code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SOC2</span><span style="color:#000000">&#8217;</span></code>,
<code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">MATCHBOXP</span><span style="color:#000000">&#8217;</span></code></td><td style="white-space:normal; text-align:left;" id="TBL-5-7-4"
class="td11"><!--l. 318--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SOC1</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-5-7-5"
class="td11"><!--l. 319--><p class="noindent" >Type of aggregation algorithm: currently,
for the
decoupled aggregation we implement two
measures of strength of connection, the
one by Van&#x011B;k, Mandel and Brezina&#x00A0;<span class="cite">[<a
href="userhtmlli3.html#XVANEK_MANDEL_BREZINA">35</a>]</span>,
and the one by Gratton et al&#x00A0;<span class="cite">[<a
href="userhtmlli3.html#XGrHeJi:16">24</a>]</span>. The
coupled aggregation is based on a parallel
version of the half-approximate matching
implemented in the MatchBox-P software
package&#x00A0;<span class="cite">[<a
href="userhtmlli3.html#XMatchBoxP">9</a>]</span>. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-5-8-"><td style="white-space:normal; text-align:left;" id="TBL-5-8-1"
class="td11"><!--l. 327--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">AGGR_SIZE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-8-2"
class="td11"><code class="lstinline"><!--l. 327--><p class="noindent" ><span style="color:#000000">integer</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-5-8-3"
class="td11"><!--l. 328--><p class="noindent" >Any integer
<!--l. 328--><p class="noindent" >power of 2,
with
<span
class="cmtt-10x-x-109">aggr</span><span
class="cmtt-10x-x-109">_size</span> <span
class="cmsy-10x-x-109">&#x2265;</span>
2 </td><td style="white-space:normal; text-align:left;" id="TBL-5-8-4"
class="td11"><!--l. 329--><p class="noindent" >4 </td><td style="white-space:normal; text-align:left;" id="TBL-5-8-5"
class="td11"><!--l. 330--><p class="noindent" >Maximum size of aggregates when the
coupled aggregation based on matching
is applied. For aggressive coarsening
with size of aggregate larger than 8
we recommend the use of smoothed
prolongators. Used only with <span
class="cmtt-10x-x-109">&#8217;COUPLED&#8217;</span>
and <span
class="cmtt-10x-x-109">&#8217;MATCHBOXP&#8217;</span> </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-5-9-"><td style="white-space:normal; text-align:left;" id="TBL-5-9-1"
class="td11"><!--l. 335--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">AGGR_PROL</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-5-9-2"
class="td11"><code class="lstinline"><!--l. 335--><p class="noindent" ><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*)</span> </code></td><td style="white-space:normal; text-align:left;" id="TBL-5-9-3"
class="td11"><!--l. 336--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SMOOTHED</span><span style="color:#000000">&#8217;</span></code>,
<code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">UNSMOOTHED</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-5-9-4"
class="td11"><!--l. 336--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SMOOTHED</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-5-9-5"
class="td11"><!--l. 337--><p class="noindent" >Prolongator used by the aggregation
algorithm: smoothed or unsmoothed (i.e.,
tentative prolongator). </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-5-10-"><td colspan="3" style="white-space:normal; text-align:left;" id="TBL-5-10-1"
class="td11"></td><div class="multicolumn" style="white-space:nowrap; text-align:left;"><span
class="cmbx-10x-x-109">Note. </span>The aggregation algorithm stops when at least one of the following criteria is met: the coarse size threshold, </div>
</tr><tr
style="vertical-align:baseline;" id="TBL-5-11-"><td colspan="3" style="white-space:normal; text-align:left;" id="TBL-5-11-1"
class="td11"></td><div class="multicolumn" style="white-space:nowrap; text-align:left;">the minimum coarsening ratio, or the maximum number of levels is reached.</div>
</tr><tr
style="vertical-align:baseline;" id="TBL-5-12-"><td colspan="3" style="white-space:normal; text-align:left;" id="TBL-5-12-1"
class="td11"></td><div class="multicolumn" style="white-space:nowrap; text-align:left;">Therefore, the actual number of levels may be smaller than the specified maximum number of levels. </div>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-5-13-"><td style="white-space:normal; text-align:left;" id="TBL-5-13-1"
class="td11"> </td></tr></table> </div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;3: </span><span
class="content">Parameters defining the aggregation algorithm. </span></div><!--tex4ht:label?: x8-18010r3 -->
</div>
</div><hr class="endfloat" />
</div>
<div class="table">
<!--l. 355--><p class="indent" > <a
id="x8-18011r4"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 355--><p class="noindent" >
<div class="tabular"> <table id="TBL-6" class="tabular"
><colgroup id="TBL-6-1g"><col
id="TBL-6-1"></colgroup><colgroup id="TBL-6-2g"><col
id="TBL-6-2"></colgroup><colgroup id="TBL-6-3g"><col
id="TBL-6-3"></colgroup><colgroup id="TBL-6-4g"><col
id="TBL-6-4"></colgroup><colgroup id="TBL-6-5g"><col
id="TBL-6-5"></colgroup><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-6-1-"><td style="white-space:normal; text-align:left;" id="TBL-6-1-1"
class="td11"><!--l. 359--><p class="noindent" ><code class="lstinline"><span style="color:#000000">what</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-1-2"
class="td11"><span
class="cmcsc-10x-x-109"><span
class="small-caps">d</span><span
class="small-caps">a</span><span
class="small-caps">t</span><span
class="small-caps">a</span> <span
class="small-caps">t</span><span
class="small-caps">y</span><span
class="small-caps">p</span><span
class="small-caps">e</span> </span></td><td style="white-space:normal; text-align:left;" id="TBL-6-1-3"
class="td11"><!--l. 359--><p class="noindent" ><code class="lstinline"><span style="color:#000000">val</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-6-1-4"
class="td11"><!--l. 359--><p class="noindent" ><span
class="cmcsc-10x-x-109"><span
class="small-caps">d</span><span
class="small-caps">e</span><span
class="small-caps">f</span><span
class="small-caps">a</span><span
class="small-caps">u</span><span
class="small-caps">l</span><span
class="small-caps">t</span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-6-1-5"
class="td11"><!--l. 360--><p class="noindent" ><span
class="cmcsc-10x-x-109"><span
class="small-caps">c</span><span
class="small-caps">o</span><span
class="small-caps">m</span><span
class="small-caps">m</span><span
class="small-caps">e</span><span
class="small-caps">n</span><span
class="small-caps">t</span><span
class="small-caps">s</span></span> </td></tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-6-2-"><td style="white-space:normal; text-align:left;" id="TBL-6-2-1"
class="td11"><!--l. 362--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">AGGR_ORD</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-2-2"
class="td11"><code class="lstinline"><!--l. 362--><p class="noindent" ><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*) </span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-6-2-3"
class="td11"><!--l. 363--><p class="noindent" ><span
class="cmtt-10x-x-109">&#8217;NATURAL&#8217;</span>
<!--l. 363--><p class="noindent" ><span
class="cmtt-10x-x-109">&#8217;DEGREE&#8217;</span> </td><td style="white-space:normal; text-align:left;" id="TBL-6-2-4"
class="td11"><!--l. 364--><p class="noindent" ><span
class="cmtt-10x-x-109">&#8217;NATURAL&#8217;</span> </td><td style="white-space:normal; text-align:left;" id="TBL-6-2-5"
class="td11"><!--l. 365--><p class="noindent" >Initial ordering of indices for
the decoupled aggregation algorithm:
either natural ordering or sorted by
descending degrees of the nodes in the
matrix graph. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-6-3-"><td style="white-space:normal; text-align:left;" id="TBL-6-3-1"
class="td11"><!--l. 372--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">AGGR_THRESH</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-3-2"
class="td11"><code class="lstinline"><!--l. 372--><p class="noindent" ><span style="color:#000000">real</span><span style="color:#000000">(</span><span style="color:#000000">kind_parameter</span><span style="color:#000000">)</span> </code></td><td style="white-space:normal; text-align:left;" id="TBL-6-3-3"
class="td11"><!--l. 373--><p class="noindent" >Any&#x00A0;real
<!--l. 373--><p class="noindent" >number&#x00A0;<span
class="cmsy-10x-x-109">&#x2208;</span>
[0<span
class="cmmi-10x-x-109">,</span>1] </td><td style="white-space:normal; text-align:left;" id="TBL-6-3-4"
class="td11"><!--l. 374--><p class="noindent" >0.01 </td><td style="white-space:normal; text-align:left;" id="TBL-6-3-5"
class="td11"><!--l. 375--><p class="noindent" >The threshold <span
class="cmmi-10x-x-109">&#x03B8; </span>in the strength of
connection algorithm. See also the note
at the bottom of this table. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-6-4-"><td style="white-space:normal; text-align:left;" id="TBL-6-4-1"
class="td11"><!--l. 378--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">AGGR_FILTER</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-6-4-2"
class="td11"><code class="lstinline"><!--l. 379--><p class="noindent" ><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*)</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-6-4-3"
class="td11"><!--l. 380--><p class="noindent" ><span
class="cmtt-10x-x-109">&#8217;FILTER&#8217;</span>
<!--l. 380--><p class="noindent" ><span
class="cmtt-10x-x-109">&#8217;NOFILTER&#8217;</span> </td><td style="white-space:normal; text-align:left;" id="TBL-6-4-4"
class="td11"><!--l. 381--><p class="noindent" ><span
class="cmtt-10x-x-109">&#8217;NOFILTER&#8217;</span> </td><td style="white-space:normal; text-align:left;" id="TBL-6-4-5"
class="td11"><!--l. 382--><p class="noindent" >Matrix used in computing the smoothed
prolongator: filtered or unfiltered. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-6-5-"><td colspan="3" style="white-space:normal; text-align:left;" id="TBL-6-5-1"
class="td11"></td><div class="multicolumn" style="white-space:nowrap; text-align:left;"><span
class="cmbx-10x-x-109">Note. </span>Different thresholds at different levels, such as those used in <span class="cite">[<a
href="userhtmlli3.html#XVANEK_MANDEL_BREZINA">35</a>, Section&#x00A0;5.1]</span>, can be easily set by invoking the rou-</div>
</tr><tr
style="vertical-align:baseline;" id="TBL-6-6-"><td colspan="3" style="white-space:normal; text-align:left;" id="TBL-6-6-1"
class="td11"></td><div class="multicolumn" style="white-space:nowrap; text-align:left;">tine <span
class="cmtt-10x-x-109">set </span>with the parameter <span
class="cmtt-10x-x-109">ilev</span>.</div>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-6-7-"><td style="white-space:normal; text-align:left;" id="TBL-6-7-1"
class="td11"> </td></tr></table> </div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;4: </span><span
class="content">Parameters defining the aggregation algorithm (continued). </span></div><!--tex4ht:label?: x8-18011r4 -->
</div><hr class="endfloat" />
</div>
<div class="table">
<!--l. 399--><p class="indent" > <a
id="x8-18012r5"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 399--><p class="noindent" >
<div class="tabular"> <table id="TBL-7" class="tabular"
><colgroup id="TBL-7-1g"><col
id="TBL-7-1"></colgroup><colgroup id="TBL-7-2g"><col
id="TBL-7-2"></colgroup><colgroup id="TBL-7-3g"><col
id="TBL-7-3"></colgroup><colgroup id="TBL-7-4g"><col
id="TBL-7-4"></colgroup><colgroup id="TBL-7-5g"><col
id="TBL-7-5"></colgroup><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-7-1-"><td style="white-space:normal; text-align:left;" id="TBL-7-1-1"
class="td11"><!--l. 402--><p class="noindent" ><code class="lstinline"><span style="color:#000000">what</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-1-2"
class="td11"><span
class="cmcsc-10x-x-109"><span
class="small-caps">d</span><span
class="small-caps">a</span><span
class="small-caps">t</span><span
class="small-caps">a</span> <span
class="small-caps">t</span><span
class="small-caps">y</span><span
class="small-caps">p</span><span
class="small-caps">e</span> </span></td><td style="white-space:normal; text-align:left;" id="TBL-7-1-3"
class="td11"><!--l. 402--><p class="noindent" ><code class="lstinline"><span style="color:#000000">val</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-7-1-4"
class="td11"><!--l. 402--><p class="noindent" ><span
class="cmcsc-10x-x-109"><span
class="small-caps">d</span><span
class="small-caps">e</span><span
class="small-caps">f</span><span
class="small-caps">a</span><span
class="small-caps">u</span><span
class="small-caps">l</span><span
class="small-caps">t</span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-7-1-5"
class="td11"><!--l. 403--><p class="noindent" ><span
class="cmcsc-10x-x-109"><span
class="small-caps">c</span><span
class="small-caps">o</span><span
class="small-caps">m</span><span
class="small-caps">m</span><span
class="small-caps">e</span><span
class="small-caps">n</span><span
class="small-caps">t</span><span
class="small-caps">s</span></span> </td></tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-7-2-"><td style="white-space:normal; text-align:left;" id="TBL-7-2-1"
class="td11"><!--l. 404--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">COARSE_MAT</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-2-2"
class="td11"><code class="lstinline"><!--l. 404--><p class="noindent" ><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*) </span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-7-2-3"
class="td11"><!--l. 405--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">DIST</span><span style="color:#000000">&#8217;</span></code>
<!--l. 405--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">REPL</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-7-2-4"
class="td11"><!--l. 406--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">REPL</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-7-2-5"
class="td11"><!--l. 407--><p class="noindent" >Coarsest matrix layout: distributed among the
processes or replicated on each of them. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-7-3-"><td style="white-space:normal; text-align:left;" id="TBL-7-3-1"
class="td11"><!--l. 409--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">COARSE_SOLVE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-3-2"
class="td11"><code class="lstinline"><!--l. 409--><p class="noindent" ><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*)</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-7-3-3"
class="td11"><!--l. 410--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">MUMPS</span><span style="color:#000000">&#8217;</span></code>
<!--l. 410--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">UMF</span><span style="color:#000000">&#8217;</span></code>
<!--l. 411--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SLU</span><span style="color:#000000">&#8217;</span></code>
<!--l. 411--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SLUDIST</span><span style="color:#000000">&#8217;</span></code>
<!--l. 412--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">ILU</span><span style="color:#000000">&#8217;</span></code>
<!--l. 413--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">JACOBI</span><span style="color:#000000">&#8217;</span></code>
<!--l. 414--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">GS</span><span style="color:#000000">&#8217;</span></code>
<!--l. 415--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">BJAC</span><span style="color:#000000">&#8217;</span></code>
<!--l. 416--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">KRM</span><span style="color:#000000">&#8217;</span></code>
<!--l. 417--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">L1</span><span style="color:#000000">-</span><span style="color:#000000">JACOBI</span><span style="color:#000000">&#8217;</span></code>
<!--l. 418--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">L1</span><span style="color:#000000">-</span><span style="color:#000000">BJAC</span><span style="color:#000000">&#8217;</span></code>
<!--l. 419--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">L1</span><span style="color:#000000">-</span><span style="color:#000000">FBGS</span><span style="color:#000000">&#8217;</span></code></td><td style="white-space:normal; text-align:left;" id="TBL-7-3-4"
class="td11"><!--l. 420--><p class="noindent" >See&#x00A0;Note.</td><td style="white-space:normal; text-align:left;" id="TBL-7-3-5"
class="td11"><!--l. 421--><p class="noindent" >Solver used at the coarsest level: sequential
LU from MUMPS, UMFPACK, or SuperLU
(plus triangular solve); distributed LU from
MUMPS or SuperLU_Dist (plus triangular solve);
point-Jacobi, hybrid Gauss-Seidel or block-Jacobi
and related <span
class="cmmi-10x-x-109">&#x2113;</span><sub><span
class="cmr-8">1</span></sub>-versions; Krylov Method (flexible
Conjugate Gradient) coupled with the block-Jacobi
preconditioner with ILU(0) on the blocks. Note
that <span
class="cmtt-10x-x-109">UMF </span>and <span
class="cmtt-10x-x-109">SLU </span>require the coarsest matrix to
be replicated, <span
class="cmtt-10x-x-109">SLUDIST</span>, <span
class="cmtt-10x-x-109">JACOBI</span>, <span
class="cmtt-10x-x-109">GS</span>, <span
class="cmtt-10x-x-109">BJAC </span>and <span
class="cmtt-10x-x-109">KRM</span>
require it to be distributed, <span
class="cmtt-10x-x-109">MUMPS </span>can be used with
either a replicated or a distributed matrix. When
any of the previous solvers is specified, the matrix
layout is set to a default value which allows the use
of the solver (see Remark 4, p.&#x00A0;21). Note also that
UMFPACK and SuperLU_Dist are available only in
double precision. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-7-4-"><td style="white-space:normal; text-align:left;" id="TBL-7-4-1"
class="td11"><!--l. 451--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">COARSE_SUBSOLVE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-4-2"
class="td11"><code class="lstinline"><!--l. 451--><p class="noindent" ><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*)</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-7-4-3"
class="td11"><!--l. 452--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">ILU</span><span style="color:#000000">&#8217;</span></code>
<!--l. 452--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">ILUT</span><span style="color:#000000">&#8217;</span></code>
<!--l. 452--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">MILU</span><span style="color:#000000">&#8217;</span></code>
<!--l. 453--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">MUMPS</span><span style="color:#000000">&#8217;</span></code>
<!--l. 453--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SLU</span><span style="color:#000000">&#8217;</span></code>
<!--l. 453--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">UMF</span><span style="color:#000000">&#8217;</span></code>
<!--l. 454--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">INVT</span><span style="color:#000000">&#8217;</span></code>
<!--l. 454--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">INVK</span><span style="color:#000000">&#8217;</span></code>
<!--l. 454--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">AINV</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-7-4-4"
class="td11"><!--l. 455--><p class="noindent" >See&#x00A0;Note.</td><td style="white-space:normal; text-align:left;" id="TBL-7-4-5"
class="td11"><!--l. 456--><p class="noindent" >Solver for the diagonal blocks of the coarsest
matrix, in case the block Jacobi solver is chosen
as coarsest-level solver: ILU(<span
class="cmmi-10x-x-109">p</span>), ILU(<span
class="cmmi-10x-x-109">p,t</span>), MILU(<span
class="cmmi-10x-x-109">p</span>),
LU from MUMPS, SuperLU or UMFPACK
(plus triangular solve), Approximate Inverses
INVK(<span
class="cmmi-10x-x-109">p,q</span>), INVT(<span
class="cmmi-10x-x-109">p</span><sub><span
class="cmr-8">1</span></sub><span
class="cmmi-10x-x-109">,p</span>2<span
class="cmmi-10x-x-109">,t</span><sub><span
class="cmr-8">1</span></sub><span
class="cmmi-10x-x-109">,t</span><sub><span
class="cmr-8">2</span></sub>) and AINV(<span
class="cmmi-10x-x-109">t</span>); note
that approximate inverses are specifically suited
for GPUs since they do not employ triangular
system solve kernels, see&#x00A0;<span class="cite">[<a
href="userhtmlli3.html#XBERTACCINIFILIPPONE">3</a>]</span>. Note that UMFPACK
and SuperLU_Dist are available only in double
precision. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-7-5-"><td colspan="3" style="white-space:normal; text-align:left;" id="TBL-7-5-1"
class="td11"></td><div class="multicolumn" style="white-space:nowrap; text-align:left;"><span
class="cmbx-10x-x-109">Note. </span>Defaults for <span
class="cmtt-10x-x-109">COARSE</span><span
class="cmtt-10x-x-109">_SOLVE </span>and <span
class="cmtt-10x-x-109">COARSE</span><span
class="cmtt-10x-x-109">_SUBSOLVE </span>are chosen in the following order:</div>
</tr><tr
style="vertical-align:baseline;" id="TBL-7-6-"><td colspan="3" style="white-space:normal; text-align:left;" id="TBL-7-6-1"
class="td11"></td><div class="multicolumn" style="white-space:nowrap; text-align:left;">single precision version &#8211; <span
class="cmtt-10x-x-109">MUMPS </span>if installed, then <span
class="cmtt-10x-x-109">SLU </span>if installed, <span
class="cmtt-10x-x-109">ILU </span>otherwise;</div>
</tr><tr
style="vertical-align:baseline;" id="TBL-7-7-"><td colspan="3" style="white-space:normal; text-align:left;" id="TBL-7-7-1"
class="td11"></td><div class="multicolumn" style="white-space:nowrap; text-align:left;">double precision version &#8211; <span
class="cmtt-10x-x-109">UMF </span>if installed, then <span
class="cmtt-10x-x-109">MUMPS </span>if installed, then <span
class="cmtt-10x-x-109">SLU </span>if installed, <span
class="cmtt-10x-x-109">ILU </span>otherwise.</div>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-7-8-"><td style="white-space:normal; text-align:left;" id="TBL-7-8-1"
class="td11"><!--l. 487--><p class="noindent" ><code class="lstinline"><span style="color:#000000">what</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-8-2"
class="td11"><span
class="cmcsc-10x-x-109"><span
class="small-caps">d</span><span
class="small-caps">a</span><span
class="small-caps">t</span><span
class="small-caps">a</span> <span
class="small-caps">t</span><span
class="small-caps">y</span><span
class="small-caps">p</span><span
class="small-caps">e</span> </span></td><td style="white-space:normal; text-align:left;" id="TBL-7-8-3"
class="td11"><!--l. 487--><p class="noindent" ><code class="lstinline"><span style="color:#000000">val</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-7-8-4"
class="td11"><!--l. 487--><p class="noindent" ><span
class="cmcsc-10x-x-109"><span
class="small-caps">d</span><span
class="small-caps">e</span><span
class="small-caps">f</span><span
class="small-caps">a</span><span
class="small-caps">u</span><span
class="small-caps">l</span><span
class="small-caps">t</span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-7-8-5"
class="td11"><!--l. 488--><p class="noindent" ><span
class="cmcsc-10x-x-109"><span
class="small-caps">c</span><span
class="small-caps">o</span><span
class="small-caps">m</span><span
class="small-caps">m</span><span
class="small-caps">e</span><span
class="small-caps">n</span><span
class="small-caps">t</span><span
class="small-caps">s</span></span> </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-7-9-"><td style="white-space:normal; text-align:left;" id="TBL-7-9-1"
class="td11"><!--l. 489--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">COARSE_SWEEPS</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-9-2"
class="td11"><code class="lstinline"><!--l. 489--><p class="noindent" ><span style="color:#000000">integer</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-7-9-3"
class="td11"><!--l. 490--><p class="noindent" >Any
integer
<!--l. 490--><p class="noindent" >number <span
class="cmmi-10x-x-109">&#x003E;</span>
0 </td><td style="white-space:normal; text-align:left;" id="TBL-7-9-4"
class="td11"><!--l. 491--><p class="noindent" >10 </td><td style="white-space:normal; text-align:left;" id="TBL-7-9-5"
class="td11"><!--l. 492--><p class="noindent" >Number of sweeps when <code class="lstinline"><span style="color:#000000">JACOBI</span></code>, <code class="lstinline"><span style="color:#000000">GS</span></code> or <code class="lstinline"><span style="color:#000000">BJAC</span></code> is
chosen as coarsest-level solver. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-7-10-"><td style="white-space:normal; text-align:left;" id="TBL-7-10-1"
class="td11"><!--l. 494--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">COARSE_FILLIN</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-10-2"
class="td11"><code class="lstinline"><!--l. 494--><p class="noindent" ><span style="color:#000000">integer</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-7-10-3"
class="td11"><!--l. 495--><p class="noindent" >Any
integer
<!--l. 495--><p class="noindent" >number <span
class="cmsy-10x-x-109">&#x2265;</span>
0 </td><td style="white-space:normal; text-align:left;" id="TBL-7-10-4"
class="td11"><!--l. 496--><p class="noindent" >0 </td><td style="white-space:normal; text-align:left;" id="TBL-7-10-5"
class="td11"><!--l. 497--><p class="noindent" >Fill-in level <span
class="cmmi-10x-x-109">p </span>of the ILU factorizations and first
fill-in for the approximate inverses. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-7-11-"><td style="white-space:normal; text-align:left;" id="TBL-7-11-1"
class="td11"><!--l. 499--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">COARSE_ILUTHRS</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-7-11-2"
class="td11"><code class="lstinline"><!--l. 500--><p class="noindent" ><span style="color:#000000">real</span><span style="color:#000000">(</span><span style="color:#000000">kind_parameter</span><span style="color:#000000">)</span> </code></td><td style="white-space:normal; text-align:left;" id="TBL-7-11-3"
class="td11"><!--l. 501--><p class="noindent" >Any real
<!--l. 501--><p class="noindent" >number <span
class="cmsy-10x-x-109">&#x2265;</span>
0 </td><td style="white-space:normal; text-align:left;" id="TBL-7-11-4"
class="td11"><!--l. 502--><p class="noindent" >0 </td><td style="white-space:normal; text-align:left;" id="TBL-7-11-5"
class="td11"><!--l. 503--><p class="noindent" >Drop tolerance <span
class="cmmi-10x-x-109">t </span>in the ILU(<span
class="cmmi-10x-x-109">p,t</span>) factorization and
first drop-tolerance for the approximate inverses. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-7-12-"><td colspan="3" style="white-space:normal; text-align:left;" id="TBL-7-12-1"
class="td11"></td><div class="multicolumn" style="white-space:nowrap; text-align:left;"><span
class="cmbx-10x-x-109">Note. </span>Further options for coarse solvers are contained in Table&#x00A0;<a
href="#x8-18013r6">6<!--tex4ht:ref: tab:p_coarse_2 --></a>.</div>
</tr><tr
style="vertical-align:baseline;" id="TBL-7-13-"><td colspan="3" style="white-space:normal; text-align:left;" id="TBL-7-13-1"
class="td11"></td><div class="multicolumn" style="white-space:nowrap; text-align:left;">For a first use it is suggested to use the default options obtained by simply selecting the solver type.</div>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-7-14-"><td style="white-space:normal; text-align:left;" id="TBL-7-14-1"
class="td11"> </td></tr></table> </div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;5: </span><span
class="content">Parameters defining the solver at the coarsest level (continued).</span></div><!--tex4ht:label?: x8-18012r5 -->
</div><hr class="endfloat" />
</div>
<div class="table">
<!--l. 516--><p class="indent" > <a
id="x8-18013r6"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 516--><p class="noindent" >
<div class="tabular"> <table id="TBL-8" class="tabular"
><colgroup id="TBL-8-1g"><col
id="TBL-8-1"></colgroup><colgroup id="TBL-8-2g"><col
id="TBL-8-2"></colgroup><colgroup id="TBL-8-3g"><col
id="TBL-8-3"></colgroup><colgroup id="TBL-8-4g"><col
id="TBL-8-4"></colgroup><colgroup id="TBL-8-5g"><col
id="TBL-8-5"></colgroup><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-8-1-"><td style="white-space:normal; text-align:left;" id="TBL-8-1-1"
class="td11"><!--l. 519--><p class="noindent" ><code class="lstinline"><span style="color:#000000">what</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-1-2"
class="td11"><span
class="cmcsc-10x-x-109"><span
class="small-caps">d</span><span
class="small-caps">a</span><span
class="small-caps">t</span><span
class="small-caps">a</span> <span
class="small-caps">t</span><span
class="small-caps">y</span><span
class="small-caps">p</span><span
class="small-caps">e</span> </span></td><td style="white-space:normal; text-align:left;" id="TBL-8-1-3"
class="td11"><!--l. 519--><p class="noindent" ><code class="lstinline"><span style="color:#000000">val</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-8-1-4"
class="td11"><!--l. 519--><p class="noindent" ><span
class="cmcsc-10x-x-109"><span
class="small-caps">d</span><span
class="small-caps">e</span><span
class="small-caps">f</span><span
class="small-caps">a</span><span
class="small-caps">u</span><span
class="small-caps">l</span><span
class="small-caps">t</span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-8-1-5"
class="td11"><!--l. 520--><p class="noindent" ><span
class="cmcsc-10x-x-109"><span
class="small-caps">c</span><span
class="small-caps">o</span><span
class="small-caps">m</span><span
class="small-caps">m</span><span
class="small-caps">e</span><span
class="small-caps">n</span><span
class="small-caps">t</span><span
class="small-caps">s</span></span> </td></tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-8-2-"><td style="white-space:normal; text-align:left;" id="TBL-8-2-1"
class="td11"><!--l. 521--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">BJAC_STOP</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-2-2"
class="td11"><code class="lstinline"><!--l. 521--><p class="noindent" ><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*) </span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-8-2-3"
class="td11"><!--l. 521--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">FALSE</span><span style="color:#000000">&#8217;</span></code>
<!--l. 521--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">TRUE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-8-2-4"
class="td11"><!--l. 521--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">FALSE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-8-2-5"
class="td11"><!--l. 521--><p class="noindent" >Select whether to use a stopping criterion for
the Block-Jacobi method used as a coarse
solver. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-8-3-"><td style="white-space:normal; text-align:left;" id="TBL-8-3-1"
class="td11"><!--l. 522--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">BJAC_TRACE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-3-2"
class="td11"><code class="lstinline"><!--l. 522--><p class="noindent" ><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*)</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-8-3-3"
class="td11"><!--l. 522--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">FALSE</span><span style="color:#000000">&#8217;</span></code>
<!--l. 522--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">TRUE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-8-3-4"
class="td11"><!--l. 522--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">FALSE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-8-3-5"
class="td11"><!--l. 522--><p class="noindent" >Select whether to print a trace for the
calculated residual for the Block-Jacobi
method used as a coarse solver. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-8-4-"><td style="white-space:normal; text-align:left;" id="TBL-8-4-1"
class="td11"><!--l. 523--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">BJAC_ITRACE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-4-2"
class="td11"><code class="lstinline"><!--l. 523--><p class="noindent" ><span style="color:#000000">integer</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-8-4-3"
class="td11"><!--l. 523--><p class="noindent" >Any integer
<!--l. 523--><p class="noindent" ><span
class="cmmi-10x-x-109">&#x003E; </span>0 </td><td style="white-space:normal; text-align:left;" id="TBL-8-4-4"
class="td11"><!--l. 523--><p class="noindent" >-1 </td><td style="white-space:normal; text-align:left;" id="TBL-8-4-5"
class="td11"><!--l. 523--><p class="noindent" >Number of iterations after which a trace is to
be printed. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-8-5-"><td style="white-space:normal; text-align:left;" id="TBL-8-5-1"
class="td11"><!--l. 524--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">BJAC_RESCHECK</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-5-2"
class="td11"><code class="lstinline"><!--l. 524--><p class="noindent" ><span style="color:#000000">integer</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-8-5-3"
class="td11"><!--l. 524--><p class="noindent" >Any integer
<!--l. 524--><p class="noindent" ><span
class="cmmi-10x-x-109">&#x003E; </span>0 </td><td style="white-space:normal; text-align:left;" id="TBL-8-5-4"
class="td11"><!--l. 524--><p class="noindent" >-1 </td><td style="white-space:normal; text-align:left;" id="TBL-8-5-5"
class="td11"><!--l. 524--><p class="noindent" >Number of iterations after which a residual is
to be calculated. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-8-6-"><td style="white-space:normal; text-align:left;" id="TBL-8-6-1"
class="td11"><!--l. 525--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">BJAC_STOPTOL</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-6-2"
class="td11"><code class="lstinline"><!--l. 525--><p class="noindent" ><span style="color:#000000">real</span><span style="color:#000000">(</span><span style="color:#000000">kind_parameter</span><span style="color:#000000">)</span> </code></td><td style="white-space:normal; text-align:left;" id="TBL-8-6-3"
class="td11"><!--l. 525--><p class="noindent" >Any real
<!--l. 525--><p class="noindent" ><span
class="cmmi-10x-x-109">&#x003C; </span>1 </td><td style="white-space:normal; text-align:left;" id="TBL-8-6-4"
class="td11"><!--l. 525--><p class="noindent" >0 </td><td style="white-space:normal; text-align:left;" id="TBL-8-6-5"
class="td11"><!--l. 525--><p class="noindent" >Tolerance for the stopping criterion on the
residual. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-8-7-"><td style="white-space:normal; text-align:left;" id="TBL-8-7-1"
class="td11"><!--l. 526--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">KRM_METHOD</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-7-2"
class="td11"><code class="lstinline"><!--l. 526--><p class="noindent" ><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*)</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-8-7-3"
class="td11"><!--l. 526--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">CG</span><span style="color:#000000">&#8217;</span></code>
<!--l. 526--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">FCG</span><span style="color:#000000">&#8217;</span></code>
<!--l. 526--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">CGS</span><span style="color:#000000">&#8217;</span></code>
<!--l. 526--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">CGR</span><span style="color:#000000">&#8217;</span></code>
<!--l. 526--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">BICG</span><span style="color:#000000">&#8217;</span></code>
<!--l. 526--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">BICGSTAB</span><span style="color:#000000">&#8217;</span></code>
<!--l. 526--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">BICGSTABL</span><span style="color:#000000">&#8217;</span></code>
<!--l. 526--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">RGMRES</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-8-7-4"
class="td11"><!--l. 526--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">FCG</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-8-7-5"
class="td11"><!--l. 526--><p class="noindent" >A string that defines the iterative method to
be used when employing a Krylov method
<code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">KRM</span><span style="color:#000000">&#8217;</span></code> as a coarse solver. <span
class="cmtt-10x-x-109">CG </span>the Conjugate
Gradient method; <span
class="cmtt-10x-x-109">FCG </span>the Flexible Conjugate
Gradient method; <span
class="cmtt-10x-x-109">CGS </span>the Conjugate Gradient
Stabilized
method; <span
class="cmtt-10x-x-109">GCR </span>the Generalized Conjugate
Residual method; <span
class="cmtt-10x-x-109">FCG </span>the Flexible Conjugate
Gradient method; <span
class="cmtt-10x-x-109">BICG </span>the Bi-Conjugate
Gradient method; <span
class="cmtt-10x-x-109">BICGSTAB </span>the Bi-Conjugate
Gradient Stabilized method; <span
class="cmtt-10x-x-109">BICGSTABL </span>the
Bi-Conjugate Gradient Stabilized method
with restarting; <span
class="cmtt-10x-x-109">RGMRES </span>the Generalized
Minimal Residual method with restarting.
Refer to the PSBLAS guide&#x00A0;<span class="cite">[<a
href="userhtmlli3.html#XPSBLASGUIDE">21</a>]</span> for further
information. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-8-8-"><td style="white-space:normal; text-align:left;" id="TBL-8-8-1"
class="td11"><!--l. 536--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">KRM_KPREC</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-8-2"
class="td11"><code class="lstinline"><!--l. 536--><p class="noindent" ><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*)</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-8-8-3"
class="td11"><!--l. 536--><p class="noindent" >Table&#x00A0;<a
href="userhtmlse4.html#x7-13015r1">1<!--tex4ht:ref: tab:precinit --></a> </td><td style="white-space:normal; text-align:left;" id="TBL-8-8-4"
class="td11"><!--l. 536--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">BJAC</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-8-8-5"
class="td11"><!--l. 536--><p class="noindent" >The one-level
preconditioners from the Table&#x00A0;<a
href="userhtmlse4.html#x7-13015r1">1<!--tex4ht:ref: tab:precinit --></a> can be used
for the coarse Krylov solver. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-8-9-"><td style="white-space:normal; text-align:left;" id="TBL-8-9-1"
class="td11"><!--l. 548--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">KRM_SUB_SOLVE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-9-2"
class="td11"><code class="lstinline"><!--l. 548--><p class="noindent" ><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*)</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-8-9-3"
class="td11"><!--l. 548--><p class="noindent" >Table&#x00A0;<a
href="#x8-18012r5">5<!--tex4ht:ref: tab:p_coarse_1 --></a> </td><td style="white-space:normal; text-align:left;" id="TBL-8-9-4"
class="td11"><!--l. 548--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">ILU</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-8-9-5"
class="td11"><!--l. 548--><p class="noindent" >Solver for the diagonal blocks of the coarsest
matrix preconditioner, in case the block Jacobi
solver is chosen
as <code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">KRM_KPREC</span><span style="color:#000000">&#8217;</span></code>: ILU(<span
class="cmmi-10x-x-109">p</span>), ILU(<span
class="cmmi-10x-x-109">p,t</span>), MILU(<span
class="cmmi-10x-x-109">p</span>),
LU from MUMPS, SuperLU or UMFPACK
(plus triangular solve), Approximate Inverses
INVK(<span
class="cmmi-10x-x-109">p,q</span>), INVT(<span
class="cmmi-10x-x-109">p</span><sub><span
class="cmr-8">1</span></sub><span
class="cmmi-10x-x-109">,p</span>2<span
class="cmmi-10x-x-109">,t</span><sub><span
class="cmr-8">1</span></sub><span
class="cmmi-10x-x-109">,t</span><sub><span
class="cmr-8">2</span></sub>) and AINV(<span
class="cmmi-10x-x-109">t</span>);
The same caveat from Table&#x00A0;<a
href="#x8-18012r5">5<!--tex4ht:ref: tab:p_coarse_1 --></a> applies here. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-8-10-"><td style="white-space:normal; text-align:left;" id="TBL-8-10-1"
class="td11"><!--l. 555--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">KRM_GLOBAL</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-10-2"
class="td11"><code class="lstinline"><!--l. 555--><p class="noindent" ><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*)</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-8-10-3"
class="td11"><!--l. 555--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">TRUE</span><span style="color:#000000">&#8217;</span></code>,
<code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">FALSE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-8-10-4"
class="td11"><!--l. 555--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">FALSE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-8-10-5"
class="td11"><!--l. 555--><p class="noindent" >Choose between a global Krylov solver, all
unknowns on a single node, or a distributed
one. The default choice is the distributed
solver. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-8-11-"><td style="white-space:normal; text-align:left;" id="TBL-8-11-1"
class="td11"><!--l. 556--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">KRM_EPS</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-11-2"
class="td11"><code class="lstinline"><!--l. 556--><p class="noindent" ><span style="color:#000000">real</span><span style="color:#000000">(</span><span style="color:#000000">kind_parameter</span><span style="color:#000000">)</span> </code></td><td style="white-space:normal; text-align:left;" id="TBL-8-11-3"
class="td11"><!--l. 556--><p class="noindent" >Real <span
class="cmmi-10x-x-109">&#x003C; </span>1 </td><td style="white-space:normal; text-align:left;" id="TBL-8-11-4"
class="td11"><!--l. 556--><p class="noindent" >10<sup><span
class="cmsy-8">-</span><span
class="cmr-8">6</span> </sup> </td><td style="white-space:normal; text-align:left;" id="TBL-8-11-5"
class="td11"><!--l. 556--><p class="noindent" >The stopping tolerance. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-8-12-"><td style="white-space:normal; text-align:left;" id="TBL-8-12-1"
class="td11"><!--l. 557--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">KRM_IRST</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-12-2"
class="td11"><code class="lstinline"><!--l. 557--><p class="noindent" ><span style="color:#000000">integer</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-8-12-3"
class="td11"><!--l. 557--><p class="noindent" >Integer
<!--l. 557--><p class="noindent" ><span
class="cmsy-10x-x-109">&#x2265; </span>1 </td><td style="white-space:normal; text-align:left;" id="TBL-8-12-4"
class="td11"><!--l. 557--><p class="noindent" >30 </td><td style="white-space:normal; text-align:left;" id="TBL-8-12-5"
class="td11"><!--l. 557--><p class="noindent" >An integer specifying the restart parameter.
This is employed for the <span
class="cmtt-10x-x-109">BiCGSTABL </span>or <span
class="cmtt-10x-x-109">RGMRES</span>
methods, otherwise it is ignored. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-8-13-"><td style="white-space:normal; text-align:left;" id="TBL-8-13-1"
class="td11"><!--l. 558--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">KRM_ISTOPC</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-13-2"
class="td11"><code class="lstinline"><!--l. 558--><p class="noindent" ><span style="color:#000000">integer</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-8-13-3"
class="td11"><!--l. 558--><p class="noindent" >Integers
1,2,3 </td><td style="white-space:normal; text-align:left;" id="TBL-8-13-4"
class="td11"><!--l. 558--><p class="noindent" >2 </td><td style="white-space:normal; text-align:left;" id="TBL-8-13-5"
class="td11"><!--l. 558--><p class="noindent" >If <span
class="cmtt-10x-x-109">1 </span>then the method uses the normwise
backward error in the infinity norm; if <span
class="cmtt-10x-x-109">2</span>, the
it uses the relative residual in the 2-norm; if <span
class="cmtt-10x-x-109">3</span>
the relative residual reduction in the 2-norm is
used instead; refer to the PSBLAS&#x00A0;<span class="cite">[<a
href="userhtmlli3.html#XPSBLASGUIDE">21</a>]</span> guide
for the details. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-8-14-"><td style="white-space:normal; text-align:left;" id="TBL-8-14-1"
class="td11"><!--l. 560--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">KRM_ITMAX</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-14-2"
class="td11"><code class="lstinline"><!--l. 560--><p class="noindent" ><span style="color:#000000">integer</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-8-14-3"
class="td11"><!--l. 560--><p class="noindent" >Integer
<!--l. 560--><p class="noindent" ><span
class="cmsy-10x-x-109">&#x2265; </span>1 </td><td style="white-space:normal; text-align:left;" id="TBL-8-14-4"
class="td11"><!--l. 560--><p class="noindent" >40 </td><td style="white-space:normal; text-align:left;" id="TBL-8-14-5"
class="td11"><!--l. 560--><p class="noindent" >The maximum number of iterations to
perform. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-8-15-"><td style="white-space:normal; text-align:left;" id="TBL-8-15-1"
class="td11"><!--l. 561--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">KRM_ITRACE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-15-2"
class="td11"><code class="lstinline"><!--l. 561--><p class="noindent" ><span style="color:#000000">integer</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-8-15-3"
class="td11"><!--l. 561--><p class="noindent" >Integer
<!--l. 561--><p class="noindent" ><span
class="cmsy-10x-x-109">&#x2265; </span>0 </td><td style="white-space:normal; text-align:left;" id="TBL-8-15-4"
class="td11"><!--l. 561--><p class="noindent" >-1 </td><td style="white-space:normal; text-align:left;" id="TBL-8-15-5"
class="td11"><!--l. 561--><p class="noindent" >If <span
class="cmmi-10x-x-109">&#x003E; </span>0 print out
an informational message about convergence
every <code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">KRM_ITRACE</span><span style="color:#000000">&#8217;</span></code> iterations. If = 0 print a
message in case of convergence failure. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-8-16-"><td style="white-space:normal; text-align:left;" id="TBL-8-16-1"
class="td11"><!--l. 565--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">KRM_FILLIN</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-8-16-2"
class="td11"><code class="lstinline"><!--l. 565--><p class="noindent" ><span style="color:#000000">integer</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-8-16-3"
class="td11"><!--l. 565--><p class="noindent" >Integer
<!--l. 565--><p class="noindent" ><span
class="cmsy-10x-x-109">&#x2265; </span>0 </td><td style="white-space:normal; text-align:left;" id="TBL-8-16-4"
class="td11"><!--l. 566--><p class="noindent" >0 </td><td style="white-space:normal; text-align:left;" id="TBL-8-16-5"
class="td11"><!--l. 567--><p class="noindent" >Fill-in level <span
class="cmmi-10x-x-109">p </span>of the ILU factorizations and
first fill-in for the approximate inverses. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-8-17-"><td style="white-space:normal; text-align:left;" id="TBL-8-17-1"
class="td11"> </td></tr></table> </div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;6: </span><span
class="content">Additional parameters defining the solver at the coarsest level.</span></div><!--tex4ht:label?: x8-18013r6 -->
</div><hr class="endfloat" />
</div>
<div class="table">
<!--l. 576--><p class="indent" > <a
id="x8-18014r7"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 576--><p class="noindent" >
<div class="tabular"> <table id="TBL-9" class="tabular"
><colgroup id="TBL-9-1g"><col
id="TBL-9-1"></colgroup><colgroup id="TBL-9-2g"><col
id="TBL-9-2"></colgroup><colgroup id="TBL-9-3g"><col
id="TBL-9-3"></colgroup><colgroup id="TBL-9-4g"><col
id="TBL-9-4"></colgroup><colgroup id="TBL-9-5g"><col
id="TBL-9-5"></colgroup><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-9-1-"><td style="white-space:normal; text-align:left;" id="TBL-9-1-1"
class="td11"><!--l. 580--><p class="noindent" ><code class="lstinline"><span style="color:#000000">what</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-1-2"
class="td11"><span
class="cmcsc-10"><span
class="small-caps">d</span><span
class="small-caps">a</span><span
class="small-caps">t</span><span
class="small-caps">a</span> <span
class="small-caps">t</span><span
class="small-caps">y</span><span
class="small-caps">p</span><span
class="small-caps">e</span> </span></td><td style="white-space:normal; text-align:left;" id="TBL-9-1-3"
class="td11"><!--l. 580--><p class="noindent" ><code class="lstinline"><span style="color:#000000">val</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-9-1-4"
class="td11"><!--l. 580--><p class="noindent" ><span
class="cmcsc-10"><span
class="small-caps">d</span><span
class="small-caps">e</span><span
class="small-caps">f</span><span
class="small-caps">a</span><span
class="small-caps">u</span><span
class="small-caps">l</span><span
class="small-caps">t</span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-9-1-5"
class="td11"><!--l. 581--><p class="noindent" ><span
class="cmcsc-10"><span
class="small-caps">c</span><span
class="small-caps">o</span><span
class="small-caps">m</span><span
class="small-caps">m</span><span
class="small-caps">e</span><span
class="small-caps">n</span><span
class="small-caps">t</span><span
class="small-caps">s</span></span> </td></tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-9-2-"><td style="white-space:normal; text-align:left;" id="TBL-9-2-1"
class="td11"><!--l. 583--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SMOOTHER_TYPE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-2-2"
class="td11"><code class="lstinline"><!--l. 583--><p class="noindent" ><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*) </span> </code></td><td style="white-space:normal; text-align:left;" id="TBL-9-2-3"
class="td11"><!--l. 584--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">JACOBI</span><span style="color:#000000">&#8217;</span></code>
<!--l. 584--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">GS</span><span style="color:#000000">&#8217;</span></code>
<!--l. 584--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">BGS</span><span style="color:#000000">&#8217;</span></code>
<!--l. 584--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">BJAC</span><span style="color:#000000">&#8217;</span></code>
<!--l. 585--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">AS</span><span style="color:#000000">&#8217;</span></code>
<!--l. 585--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">L1</span><span style="color:#000000">-</span><span style="color:#000000">JACOBI</span><span style="color:#000000">&#8217;</span></code>
<!--l. 585--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">L1</span><span style="color:#000000">-</span><span style="color:#000000">BJAC</span><span style="color:#000000">&#8217;</span></code>
<!--l. 585--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">L1</span><span style="color:#000000">-</span><span style="color:#000000">FBGS</span><span style="color:#000000">&#8217;</span></code>
<!--l. 585--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">POLY</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-9-2-4"
class="td11"><!--l. 586--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">FBGS</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-9-2-5"
class="td11"><!--l. 587--><p class="noindent" ><span
class="cmr-10">Type of smoother used in the multilevel</span>
<span
class="cmr-10">preconditioner: point-Jacobi, hybrid</span>
<span
class="cmr-10">(forward) Gauss-Seidel, hybrid backward</span>
<span
class="cmr-10">Gauss-Seidel, block-Jacobi, </span><span
class="cmmi-10">&#x2113;</span><sub><span
class="cmr-7">1</span></sub><span
class="cmr-10">-Jacobi,</span>
<span
class="cmmi-10">&#x2113;</span><sub><span
class="cmr-7">1</span></sub><span
class="cmr-10">&#8211;hybrid (forward)</span>
<span
class="cmr-10">Gauss-Seidel, </span><span
class="cmmi-10">&#x2113;</span><sub><span
class="cmr-7">1</span></sub><span
class="cmr-10">-point-Jacobi and Additive</span>
<span
class="cmr-10">Schwarz, polynomial accelerators; see</span><span
class="cmr-10">&#x00A0;</span><span class="cite"><span
class="cmr-10">[</span><a
href="userhtmlli3.html#XDDFMT2024"><span
class="cmr-10">15</span></a><span
class="cmr-10">]</span></span>
<span
class="cmr-10">and Remark</span><span
class="cmr-10">&#x00A0;3 (p.</span><span
class="cmr-10">&#x00A0;21).</span>
<!--l. 591--><p class="noindent" ><span
class="cmr-10">It is ignored by one-level preconditioners.</span> </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-9-3-"><td style="white-space:normal; text-align:left;" id="TBL-9-3-1"
class="td11"><!--l. 592--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SUB_SOLVE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-3-2"
class="td11"><code class="lstinline"><!--l. 592--><p class="noindent" ><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*)</span> </code></td><td style="white-space:normal; text-align:left;" id="TBL-9-3-3"
class="td11"><!--l. 593--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">JACOBI</span><span style="color:#000000">&#8217;</span></code>
<code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">GS</span><span style="color:#000000">&#8217;</span></code>
<!--l. 594--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">BGS</span><span style="color:#000000">&#8217;</span></code>
<!--l. 594--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">ILU</span><span style="color:#000000">&#8217;</span></code>
<!--l. 595--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">ILUT</span><span style="color:#000000">&#8217;</span></code>
<!--l. 595--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">MILU</span><span style="color:#000000">&#8217;</span></code>
<!--l. 596--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">MUMPS</span><span style="color:#000000">&#8217;</span></code>
<!--l. 597--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SLU</span><span style="color:#000000">&#8217;</span></code>
<!--l. 597--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">UMF</span><span style="color:#000000">&#8217;</span></code>
<!--l. 598--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">INVT</span><span style="color:#000000">&#8217;</span></code>
<!--l. 598--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">INVK</span><span style="color:#000000">&#8217;</span></code>
<!--l. 598--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">AINV</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-9-3-4"
class="td11"><!--l. 599--><p class="noindent" ><span
class="cmtt-10">GS </span><span
class="cmr-10">and </span><span
class="cmtt-10">BGS </span><span
class="cmr-10">for pre-</span>
<span
class="cmr-10">and post-smoothers of</span>
<span
class="cmr-10">multilevel</span>
<span
class="cmr-10">preconditioners,</span>
<span
class="cmr-10">respectively</span>
<!--l. 601--><p class="noindent" ><span
class="cmtt-10">ILU </span><span
class="cmr-10">for block-Jacobi</span>
<span
class="cmr-10">and Additive Schwarz</span>
<span
class="cmr-10">one-level</span>
<span
class="cmr-10">preconditioners</span> </td><td style="white-space:normal; text-align:left;" id="TBL-9-3-5"
class="td11"><!--l. 603--><p class="noindent" ><span
class="cmr-10">The local solver to be used with the</span>
<span
class="cmr-10">smoother or one-level preconditioner (see</span>
<span
class="cmr-10">Remark</span><span
class="cmr-10">&#x00A0;2, page</span><span
class="cmr-10">&#x00A0;24): point-Jacobi, hybrid</span>
<span
class="cmr-10">(forward) Gauss-Seidel, hybrid backward</span>
<span
class="cmr-10">Gauss-Seidel, ILU(</span><span
class="cmmi-10">p</span><span
class="cmr-10">), ILU(</span><span
class="cmmi-10">p,t</span><span
class="cmr-10">), MILU(</span><span
class="cmmi-10">p</span><span
class="cmr-10">),</span>
<span
class="cmr-10">LU from MUMPS,</span>
<span
class="cmr-10">SuperLU or UMFPACK (plus triangular</span>
<span
class="cmr-10">solve), Approximate Inverses INVK(</span><span
class="cmmi-10">p,q</span><span
class="cmr-10">),</span>
<span
class="cmr-10">INVT(</span><span
class="cmmi-10">p</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">,p</span><span
class="cmr-10">2</span><span
class="cmmi-10">,t</span><sub><span
class="cmr-7">1</span></sub><span
class="cmmi-10">,t</span><sub><span
class="cmr-7">2</span></sub><span
class="cmr-10">) and AINV(</span><span
class="cmmi-10">t</span><span
class="cmr-10">); note</span>
<span
class="cmr-10">that approximate inverses are specifically</span>
<span
class="cmr-10">suited for GPUs since they do not employ</span>
<span
class="cmr-10">triangular system solve kernels, see</span><span
class="cmr-10">&#x00A0;</span><span class="cite"><span
class="cmr-10">[</span><a
href="userhtmlli3.html#XBERTACCINIFILIPPONE"><span
class="cmr-10">3</span></a><span
class="cmr-10">]</span></span><span
class="cmr-10">. See</span>
<span
class="cmr-10">Note for details on hybrid Gauss-Seidel.</span> </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-9-4-"><td style="white-space:normal; text-align:left;" id="TBL-9-4-1"
class="td11"><!--l. 617--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SMOOTHER_SWEEPS</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-4-2"
class="td11"><code class="lstinline"><!--l. 617--><p class="noindent" ><span style="color:#000000">integer</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-9-4-3"
class="td11"><!--l. 618--><p class="noindent" ><span
class="cmr-10">Any integer</span>
<!--l. 618--><p class="noindent" ><span
class="cmr-10">number</span><span
class="cmr-10">&#x00A0;</span><span
class="cmsy-10">&#x2265; </span><span
class="cmr-10">0</span></td><td style="white-space:normal; text-align:left;" id="TBL-9-4-4"
class="td11"><!--l. 619--><p class="noindent" ><span
class="cmr-10">1</span> </td><td style="white-space:normal; text-align:left;" id="TBL-9-4-5"
class="td11"><!--l. 620--><p class="noindent" ><span
class="cmr-10">Number of sweeps of the smoother or</span>
<span
class="cmr-10">one-level preconditioner. In the multilevel</span>
<span
class="cmr-10">case, no pre-smother or post-smoother</span>
<span
class="cmr-10">is used if this parameter is set to 0</span>
<span
class="cmr-10">together with </span><code class="lstinline"><span style="color:#000000">pos</span><span style="color:#000000">=</span><span style="color:#000000">&#8217;</span><span style="color:#000000">PRE</span><span style="color:#000000">&#8217;</span></code> <span
class="cmr-10">or </span><code class="lstinline"><span style="color:#000000">pos</span><span style="color:#000000">=</span><span style="color:#000000">&#8217;</span><span style="color:#000000">POST</span><span style="color:#000000">&#8217;</span></code><span
class="cmr-10">,</span>
<span
class="cmr-10">respectively. Is ignored if the smoother is</span>
<code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">POLY</span><span style="color:#000000">&#8217;</span></code> </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-9-5-"><td style="white-space:normal; text-align:left;" id="TBL-9-5-1"
class="td11"><!--l. 625--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">POLY_DEGREE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-9-5-2"
class="td11"><code class="lstinline"><!--l. 625--><p class="noindent" ><span style="color:#000000">integer</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-9-5-3"
class="td11"><!--l. 626--><p class="noindent" ><span
class="cmr-10">Any integer</span>
<!--l. 626--><p class="noindent" ><span
class="cmr-10">number</span><span
class="cmr-10">&#x00A0;</span><span
class="cmsy-10">&#x2265; </span><span
class="cmr-10">1</span>
<span
class="cmr-10">and</span><span
class="cmr-10">&#x00A0;</span><span
class="cmsy-10">&#x2264; </span><span
class="cmr-10">30</span> </td><td style="white-space:normal; text-align:left;" id="TBL-9-5-4"
class="td11"><!--l. 627--><p class="noindent" ><span
class="cmr-10">1</span> </td><td style="white-space:normal; text-align:left;" id="TBL-9-5-5"
class="td11"><!--l. 628--><p class="noindent" ><span
class="cmr-10">Degree of the polynomial accelerator, is</span>
<span
class="cmr-10">equal to the number of matrix-vector</span>
<span
class="cmr-10">products performed by the smoother. Is</span>
<span
class="cmr-10">ignored if the smoother is not </span><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">POLY</span><span style="color:#000000">&#8217;</span></code> </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-9-6-"><td style="white-space:normal; text-align:left;" id="TBL-9-6-1"
class="td11"> </td></tr></table> </div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;7: </span><span
class="content">Parameters defining the smoother or the details of the one-level
preconditioner. </span></div><!--tex4ht:label?: x8-18014r7 -->
</div><hr class="endfloat" />
</div>
<div class="table">
<!--l. 636--><p class="indent" > <a
id="x8-18015r8"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 636--><p class="noindent" >
<div class="tabular"> <table id="TBL-10" class="tabular"
><colgroup id="TBL-10-1g"><col
id="TBL-10-1"></colgroup><colgroup id="TBL-10-2g"><col
id="TBL-10-2"></colgroup><colgroup id="TBL-10-3g"><col
id="TBL-10-3"></colgroup><colgroup id="TBL-10-4g"><col
id="TBL-10-4"></colgroup><colgroup id="TBL-10-5g"><col
id="TBL-10-5"></colgroup><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-10-1-"><td style="white-space:normal; text-align:left;" id="TBL-10-1-1"
class="td11"><!--l. 640--><p class="noindent" ><code class="lstinline"><span style="color:#000000">what</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-10-1-2"
class="td11"><span
class="cmcsc-10"><span
class="small-caps">d</span><span
class="small-caps">a</span><span
class="small-caps">t</span><span
class="small-caps">a</span> <span
class="small-caps">t</span><span
class="small-caps">y</span><span
class="small-caps">p</span><span
class="small-caps">e</span> </span></td><td style="white-space:normal; text-align:left;" id="TBL-10-1-3"
class="td11"><!--l. 640--><p class="noindent" ><code class="lstinline"><span style="color:#000000">val</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-10-1-4"
class="td11"><!--l. 640--><p class="noindent" ><span
class="cmcsc-10"><span
class="small-caps">d</span><span
class="small-caps">e</span><span
class="small-caps">f</span><span
class="small-caps">a</span><span
class="small-caps">u</span><span
class="small-caps">l</span><span
class="small-caps">t</span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-10-1-5"
class="td11"><!--l. 641--><p class="noindent" ><span
class="cmcsc-10"><span
class="small-caps">c</span><span
class="small-caps">o</span><span
class="small-caps">m</span><span
class="small-caps">m</span><span
class="small-caps">e</span><span
class="small-caps">n</span><span
class="small-caps">t</span><span
class="small-caps">s</span></span> </td></tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-10-2-"><td style="white-space:normal; text-align:left;" id="TBL-10-2-1"
class="td11"><!--l. 642--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SUB_OVR</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-10-2-2"
class="td11"><code class="lstinline"><!--l. 642--><p class="noindent" ><span style="color:#000000">integer </span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-10-2-3"
class="td11"><!--l. 643--><p class="noindent" ><span
class="cmr-10">Any integer</span>
<!--l. 643--><p class="noindent" ><span
class="cmr-10">number</span><span
class="cmr-10">&#x00A0;</span><span
class="cmsy-10">&#x2265; </span><span
class="cmr-10">0</span> </td><td style="white-space:normal; text-align:left;" id="TBL-10-2-4"
class="td11"><!--l. 644--><p class="noindent" ><span
class="cmr-10">1</span> </td><td style="white-space:normal; text-align:left;" id="TBL-10-2-5"
class="td11"><!--l. 645--><p class="noindent" ><span
class="cmr-10">Number of overlap layers, for Additive</span>
<span
class="cmr-10">Schwarz only.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-10-3-"><td style="white-space:normal; text-align:left;" id="TBL-10-3-1"
class="td11"><!--l. 646--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SUB_RESTR</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-10-3-2"
class="td11"><code class="lstinline"><!--l. 646--><p class="noindent" ><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*)</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-10-3-3"
class="td11"><!--l. 647--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">HALO</span><span style="color:#000000">&#8217;</span></code>
<!--l. 647--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">NONE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-10-3-4"
class="td11"><!--l. 648--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">HALO</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-10-3-5"
class="td11"><!--l. 649--><p class="noindent" ><span
class="cmr-10">Type of restriction operator, for Additive</span>
<span
class="cmr-10">Schwarz only: </span><span
class="cmtt-10">HALO </span><span
class="cmr-10">for taking into account</span>
<span
class="cmr-10">the overlap, </span><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">NONE</span><span style="color:#000000">&#8217;</span></code> <span
class="cmr-10">for neglecting it.</span>
<!--l. 652--><p class="noindent" ><span
class="cmr-10">Note that </span><span
class="cmtt-10">HALO </span><span
class="cmr-10">must be chosen for the</span>
<span
class="cmr-10">classical Addditive Schwarz smoother and</span>
<span
class="cmr-10">its RAS variant.</span> </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-10-4-"><td style="white-space:normal; text-align:left;" id="TBL-10-4-1"
class="td11"><!--l. 654--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SUB_PROL</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-10-4-2"
class="td11"><code class="lstinline"><!--l. 654--><p class="noindent" ><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*)</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-10-4-3"
class="td11"><!--l. 655--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SUM</span><span style="color:#000000">&#8217;</span></code>
<!--l. 655--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">NONE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-10-4-4"
class="td11"><!--l. 656--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">NONE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-10-4-5"
class="td11"><!--l. 657--><p class="noindent" ><span
class="cmr-10">Type of prolongation operator, for Additive</span>
<span
class="cmr-10">Schwarz only: </span><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SUM</span><span style="color:#000000">&#8217;</span></code> <span
class="cmr-10">for adding the</span>
<span
class="cmr-10">contributions from the overlap, </span><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">NONE</span><span style="color:#000000">&#8217;</span></code> <span
class="cmr-10">for</span>
<span
class="cmr-10">neglecting them.</span>
<!--l. 660--><p class="noindent" ><span
class="cmr-10">Note that </span><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SUM</span><span style="color:#000000">&#8217;</span></code> <span
class="cmr-10">must be chosen for the</span>
<span
class="cmr-10">classical Additive Schwarz smoother, and</span>
<code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">NONE</span><span style="color:#000000">&#8217;</span></code> <span
class="cmr-10">for its RAS variant.</span> </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-10-5-"><td style="white-space:normal; text-align:left;" id="TBL-10-5-1"
class="td11"><!--l. 662--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SUB_FILLIN</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-10-5-2"
class="td11"><code class="lstinline"><!--l. 662--><p class="noindent" ><span style="color:#000000">integer</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-10-5-3"
class="td11"><!--l. 663--><p class="noindent" ><span
class="cmr-10">Any integer</span>
<!--l. 663--><p class="noindent" ><span
class="cmr-10">number</span><span
class="cmr-10">&#x00A0;</span><span
class="cmsy-10">&#x2265; </span><span
class="cmr-10">0</span> </td><td style="white-space:normal; text-align:left;" id="TBL-10-5-4"
class="td11"><!--l. 664--><p class="noindent" ><span
class="cmr-10">0</span> </td><td style="white-space:normal; text-align:left;" id="TBL-10-5-5"
class="td11"><!--l. 665--><p class="noindent" ><span
class="cmr-10">Fill-in level </span><span
class="cmmi-10">p </span><span
class="cmr-10">of the incomplete LU</span>
<span
class="cmr-10">factorizations.</span> </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-10-6-"><td style="white-space:normal; text-align:left;" id="TBL-10-6-1"
class="td11"><!--l. 666--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SUB_ILUTHRS</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-10-6-2"
class="td11"><code class="lstinline"><!--l. 666--><p class="noindent" ><span style="color:#000000">real</span><span style="color:#000000">(</span><span style="color:#000000">kind_parameter</span><span style="color:#000000">)</span> </code></td><td style="white-space:normal; text-align:left;" id="TBL-10-6-3"
class="td11"><!--l. 667--><p class="noindent" ><span
class="cmr-10">Any real</span>
<span
class="cmr-10">number</span><span
class="cmr-10">&#x00A0;</span><span
class="cmsy-10">&#x2265; </span><span
class="cmr-10">0</span> </td><td style="white-space:normal; text-align:left;" id="TBL-10-6-4"
class="td11"><!--l. 668--><p class="noindent" ><span
class="cmr-10">0</span> </td><td style="white-space:normal; text-align:left;" id="TBL-10-6-5"
class="td11"><!--l. 669--><p class="noindent" ><span
class="cmr-10">Drop tolerance </span><span
class="cmmi-10">t </span><span
class="cmr-10">in the ILU(</span><span
class="cmmi-10">p,t</span><span
class="cmr-10">)</span>
<span
class="cmr-10">factorization.</span> </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-10-7-"><td style="white-space:normal; text-align:left;" id="TBL-10-7-1"
class="td11"><!--l. 670--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">MUMPS_LOC_GLOB</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-10-7-2"
class="td11"><code class="lstinline"><!--l. 670--><p class="noindent" ><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*)</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-10-7-3"
class="td11"><!--l. 671--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">LOCAL_SOLVER</span><span style="color:#000000">&#8217;</span></code>
<!--l. 671--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">GLOBAL_SOLVER</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-10-7-4"
class="td11"><!--l. 672--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">GLOBAL_SOLVER</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-10-7-5"
class="td11"><!--l. 673--><p class="noindent" ><span
class="cmr-10">Whether MUMPS should be used as a</span>
<span
class="cmr-10">distributed solver, or as a serial solver acting</span>
<span
class="cmr-10">only on the part of the matrix local to each</span>
<span
class="cmr-10">process.</span> </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-10-8-"><td style="white-space:normal; text-align:left;" id="TBL-10-8-1"
class="td11"><!--l. 677--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">MUMPS_IPAR_ENTRY</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-10-8-2"
class="td11"><code class="lstinline"><!--l. 677--><p class="noindent" ><span style="color:#000000">integer</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-10-8-3"
class="td11"><!--l. 678--><p class="noindent" ><span
class="cmr-10">Any integer</span>
<span
class="cmr-10">number</span> </td><td style="white-space:normal; text-align:left;" id="TBL-10-8-4"
class="td11"><!--l. 679--><p class="noindent" ><span
class="cmr-10">0</span> </td><td style="white-space:normal; text-align:left;" id="TBL-10-8-5"
class="td11"><!--l. 680--><p class="noindent" ><span
class="cmr-10">Set an entry in the MUMPS integer control</span>
<span
class="cmr-10">array, as chosen via the </span><code class="lstinline"><span style="color:#000000">idx</span></code> <span
class="cmr-10">optional</span>
<span
class="cmr-10">argument.</span> </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-10-9-"><td style="white-space:normal; text-align:left;" id="TBL-10-9-1"
class="td11"><!--l. 682--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">MUMPS_RPAR_ENTRY</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-10-9-2"
class="td11"><code class="lstinline"><!--l. 682--><p class="noindent" ><span style="color:#000000">real</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-10-9-3"
class="td11"><!--l. 683--><p class="noindent" ><span
class="cmr-10">Any real number</span> </td><td style="white-space:normal; text-align:left;" id="TBL-10-9-4"
class="td11"><!--l. 684--><p class="noindent" ><span
class="cmr-10">0</span> </td><td style="white-space:normal; text-align:left;" id="TBL-10-9-5"
class="td11"><!--l. 685--><p class="noindent" ><span
class="cmr-10">Set an entry in the MUMPS real control</span>
<span
class="cmr-10">array, as chosen via the </span><code class="lstinline"><span style="color:#000000">idx</span></code> <span
class="cmr-10">optional</span>
<span
class="cmr-10">argument.</span> </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-10-10-"><td style="white-space:normal; text-align:left;" id="TBL-10-10-1"
class="td11"> </td></tr></table> </div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;8: </span><span
class="content">Parameters defining the smoother or the details of the one-level preconditioner
(continued).</span></div><!--tex4ht:label?: x8-18015r8 -->
</div><hr class="endfloat" />
</div>
<div class="table">
<!--l. 695--><p class="indent" > <a
id="x8-18016r9"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 695--><p class="noindent" >
<div class="tabular"> <table id="TBL-11" class="tabular"
><colgroup id="TBL-11-1g"><col
id="TBL-11-1"></colgroup><colgroup id="TBL-11-2g"><col
id="TBL-11-2"></colgroup><colgroup id="TBL-11-3g"><col
id="TBL-11-3"></colgroup><colgroup id="TBL-11-4g"><col
id="TBL-11-4"></colgroup><colgroup id="TBL-11-5g"><col
id="TBL-11-5"></colgroup><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><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. 699--><p class="noindent" ><code class="lstinline"><span style="color:#000000">what</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-11-1-2"
class="td11"><span
class="cmcsc-10"><span
class="small-caps">d</span><span
class="small-caps">a</span><span
class="small-caps">t</span><span
class="small-caps">a</span> <span
class="small-caps">t</span><span
class="small-caps">y</span><span
class="small-caps">p</span><span
class="small-caps">e</span> </span></td><td style="white-space:normal; text-align:left;" id="TBL-11-1-3"
class="td11"><!--l. 699--><p class="noindent" ><code class="lstinline"><span style="color:#000000">val</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-11-1-4"
class="td11"><!--l. 699--><p class="noindent" ><span
class="cmcsc-10"><span
class="small-caps">d</span><span
class="small-caps">e</span><span
class="small-caps">f</span><span
class="small-caps">a</span><span
class="small-caps">u</span><span
class="small-caps">l</span><span
class="small-caps">t</span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-1-5"
class="td11"><!--l. 700--><p class="noindent" ><span
class="cmcsc-10"><span
class="small-caps">c</span><span
class="small-caps">o</span><span
class="small-caps">m</span><span
class="small-caps">m</span><span
class="small-caps">e</span><span
class="small-caps">n</span><span
class="small-caps">t</span><span
class="small-caps">s</span></span> </td></tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></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. 701--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">POLY_VARIANT</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-11-2-2"
class="td11"><code class="lstinline"><!--l. 701--><p class="noindent" ><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*) </span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-11-2-3"
class="td11"><!--l. 702--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">CHEB_4</span><span style="color:#000000">&#8217;</span></code>
<!--l. 702--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">CHEB_4_OPT</span><span style="color:#000000">&#8217;</span></code>
<!--l. 702--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">CHEB_1_OPT</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-11-2-4"
class="td11"><!--l. 703--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">CHEB_4</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-11-2-5"
class="td11"><!--l. 704--><p class="noindent" ><span
class="cmr-10">Select the type of</span>
<span
class="cmr-10">polynomial accelerator.</span>
<span
class="cmr-10">The </span><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">CHEB_4</span><span style="color:#000000">&#8217;</span></code> <span
class="cmr-10">and</span>
<code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">CHEB_4_OPT</span><span style="color:#000000">&#8217;</span></code> <span
class="cmr-10">types</span>
<span
class="cmr-10">are those based on the</span>
<span
class="cmr-10">Chebyshev</span>
<span
class="cmr-10">polynomials of</span>
<span
class="cmr-10">the 4</span><sup class="textsuperscript"><span
class="cmr-10">th</span></sup><span
class="cmr-10">-kind described</span>
<span
class="cmr-10">in</span><span
class="cmr-10">&#x00A0;</span><span class="cite"><span
class="cmr-10">[</span><a
href="userhtmlli3.html#XLOTTES"><span
class="cmr-10">27</span></a><span
class="cmr-10">]</span></span><span
class="cmr-10">. The</span>
<code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">CHEB_1_OPT</span><span style="color:#000000">&#8217;</span></code> <span
class="cmr-10">version</span>
<span
class="cmr-10">is the one described</span>
<span
class="cmr-10">in</span><span
class="cmr-10">&#x00A0;</span><span class="cite"><span
class="cmr-10">[</span><a
href="userhtmlli3.html#XDDFMT2024"><span
class="cmr-10">15</span></a><span
class="cmr-10">]</span></span> <span
class="cmr-10">and based on</span>
<span
class="cmr-10">the Chebyshev</span>
<span
class="cmr-10">polynomials of the</span>
<span
class="cmr-10">1</span><sup class="textsuperscript"><span
class="cmr-10">st</span></sup><span
class="cmr-10">-kind.</span> </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></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. 705--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">POLY_RHO_ESTIMATE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-11-3-2"
class="td11"><code class="lstinline"><!--l. 705--><p class="noindent" ><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*)</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-11-3-3"
class="td11"><!--l. 705--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">POLY_RHO_EST_POWER</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-11-3-4"
class="td11"><!--l. 705--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">POLY_RHO_EST_POWER</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-11-3-5"
class="td11"><!--l. 705--><p class="noindent" ><span
class="cmr-10">Algorithm for</span>
<span
class="cmr-10">estimating the spectral</span>
<span
class="cmr-10">radius of the smoother</span>
<span
class="cmr-10">to</span>
<span
class="cmr-10">which the polynomial</span>
<span
class="cmr-10">acceleration is applied.</span>
<span
class="cmr-10">The only implemented</span>
<span
class="cmr-10">algorithm is the power</span>
<span
class="cmr-10">method; see also the</span>
<span
class="cmr-10">two following options.</span> </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></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. 706--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">POLY_RHO_ESTIMATE_ITERATIONS</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-11-4-2"
class="td11"><code class="lstinline"><!--l. 706--><p class="noindent" ><span style="color:#000000">integer</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-11-4-3"
class="td11"><!--l. 706--><p class="noindent" ><span
class="cmr-10">Any integer</span>
<!--l. 706--><p class="noindent" ><span
class="cmr-10">number </span><span
class="cmsy-10">&#x2265; </span><span
class="cmr-10">1</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-4-4"
class="td11"><!--l. 706--><p class="noindent" ><span
class="cmr-10">20</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-4-5"
class="td11"><!--l. 706--><p class="noindent" ><span
class="cmr-10">Number of iterations</span>
<span
class="cmr-10">for the spectral radius</span>
<span
class="cmr-10">estimate.</span> </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></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. 707--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">POLY_RHO_BA</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-11-5-2"
class="td11"><code class="lstinline"><!--l. 707--><p class="noindent" ><span style="color:#000000">real</span><span style="color:#000000">(</span><span style="color:#000000">kind_parameter</span><span style="color:#000000">)</span> </code></td><td style="white-space:normal; text-align:left;" id="TBL-11-5-3"
class="td11"><!--l. 707--><p class="noindent" ><span
class="cmr-10">Any real</span>
<!--l. 707--><p class="noindent" ><span
class="cmr-10">number </span><span
class="cmsy-10">&#x2208; </span><span
class="cmr-10">(0</span><span
class="cmmi-10">,</span><span
class="cmr-10">1]</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-5-4"
class="td11"><!--l. 707--><p class="noindent" ><span
class="cmr-10">1</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-5-5"
class="td11"><!--l. 707--><p class="noindent" ><span
class="cmr-10">Sets an estimate of</span>
<span
class="cmr-10">the spectral radius of</span>
<span
class="cmr-10">the base smoother to</span>
<span
class="cmr-10">which the polynomial</span>
<span
class="cmr-10">accelerator is applied.</span> </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></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"> </td></tr></table> </div></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;9: </span><span
class="content">Parameters defining the smoother or the details of the one-level preconditioner
(continued).</span></div><!--tex4ht:label?: x8-18016r9 -->
</div><hr class="endfloat" />
</div>
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">5.3 </span></span> <a
id="x8-190005.3"></a><span
class="cmr-12">Method hierarchy</span><span
class="cmr-12">_build</span></h4>
<div class="center"
>
<!--l. 719--><p class="noindent" >
<!--l. 720--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">hierarchy_build</span><span style="color:#000000">(</span><span style="color:#000000">a</span><span style="color:#000000">,</span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">)</span></code><br />
</div>
<!--l. 723--><p class="noindent" ><span
class="cmr-12">This method builds the hierarchy of matrices and restriction/prolongation operators for</span>
<span
class="cmr-12">the multilevel preconditioner </span><code class="lstinline"><span style="color:#000000">p</span></code><span
class="cmr-12">, according to the requirements made by the user</span>
<span
class="cmr-12">through the methods </span><code class="lstinline"><span style="color:#000000">init</span></code> <span
class="cmr-12">and </span><code class="lstinline"><span style="color:#000000">set</span></code><span
class="cmr-12">.</span>
<!--l. 728--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-12" class="tabular"
><colgroup id="TBL-12-1g"><col
id="TBL-12-1"><col
id="TBL-12-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-12-1-"><td style="white-space:normal; text-align:left;" id="TBL-12-1-1"
class="td11"><!--l. 731--><p class="noindent" ><code class="lstinline"><span style="color:#000000">a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-12-1-2"
class="td11"><!--l. 731--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">spmat_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-2-"><td style="white-space:normal; text-align:left;" id="TBL-12-2-1"
class="td11"><!--l. 732--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-2-2"
class="td11"><!--l. 732--><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>
<code class="lstinline"><span style="color:#000000">real</span></code><span
class="cmr-12">/</span><code class="lstinline"><span style="color:#000000">complex</span></code><span
class="cmr-12">, single/double precision version of AMG4PSBLAS</span>
<span
class="cmr-12">under use. See the PSBLAS User&#8217;s Guide for details </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli3.html#XPSBLASGUIDE"><span
class="cmr-12">21</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-3-"><td style="white-space:normal; text-align:left;" id="TBL-12-3-1"
class="td11"><!--l. 737--><p class="noindent" ><code class="lstinline"><span style="color:#000000">desc_a</span></code></td><td style="white-space:normal; text-align:left;" id="TBL-12-3-2"
class="td11"><!--l. 737--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_desc_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-4-"><td style="white-space:normal; text-align:left;" id="TBL-12-4-1"
class="td11"><!--l. 738--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-4-2"
class="td11"><!--l. 738--><p class="noindent" ><span
class="cmr-12">The communication descriptor of </span><code class="lstinline"><span style="color:#000000">a</span></code><span
class="cmr-12">. See the PSBLAS User&#8217;s Guide</span>
<span
class="cmr-12">for details </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli3.html#XPSBLASGUIDE"><span
class="cmr-12">21</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-5-"><td style="white-space:normal; text-align:left;" id="TBL-12-5-1"
class="td11"><!--l. 740--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-12-5-2"
class="td11"><!--l. 740--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-6-"><td style="white-space:normal; text-align:left;" id="TBL-12-6-1"
class="td11"><!--l. 741--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-6-2"
class="td11"><!--l. 741--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x10-320007"><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-12-7-"><td style="white-space:normal; text-align:left;" id="TBL-12-7-1"
class="td11"> </td> </tr></table> </div>
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">5.4 </span></span> <a
id="x8-200005.4"></a><span
class="cmr-12">Method smoothers</span><span
class="cmr-12">_build</span></h4>
<div class="center"
>
<!--l. 750--><p class="noindent" >
<!--l. 751--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">smoothers_build</span><span style="color:#000000">(</span><span style="color:#000000">a</span><span style="color:#000000">,</span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000">p</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">[,</span><span style="color:#000000">amold</span><span style="color:#000000">,</span><span style="color:#000000">vmold</span><span style="color:#000000">,</span><span style="color:#000000">imold</span><span style="color:#000000">])</span></code><br />
</div>
<!--l. 754--><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><code class="lstinline"><span style="color:#000000">p</span></code><span
class="cmr-12">, according to the requirements made by the user through the methods</span>
<code class="lstinline"><span style="color:#000000">init</span></code> <span
class="cmr-12">and </span><code class="lstinline"><span style="color:#000000">set</span></code><span
class="cmr-12">, and based on the aggregation hierarchy produced by a previous call to</span>
<code class="lstinline"><span style="color:#000000">hierarchy_build</span></code> <span
class="cmr-12">(see Section</span><span
class="cmr-12">&#x00A0;</span><a
href="#x8-190005.3"><span
class="cmr-12">5.3</span><!--tex4ht:ref: sec:hier_bld --></a><span
class="cmr-12">).</span>
<!--l. 761--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-13" class="tabular"
><colgroup id="TBL-13-1g"><col
id="TBL-13-1"><col
id="TBL-13-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-13-1-"><td style="white-space:normal; text-align:left;" id="TBL-13-1-1"
class="td11"><!--l. 764--><p class="noindent" ><code class="lstinline"><span style="color:#000000">a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-1-2"
class="td11"><!--l. 764--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">spmat_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-2-"><td style="white-space:normal; text-align:left;" id="TBL-13-2-1"
class="td11"><!--l. 765--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-2-2"
class="td11"><!--l. 765--><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>
<code class="lstinline"><span style="color:#000000">real</span></code><span
class="cmr-12">/</span><code class="lstinline"><span style="color:#000000">complex</span></code><span
class="cmr-12">, single/double precision version of AMG4PSBLAS</span>
<span
class="cmr-12">under use. See the PSBLAS User&#8217;s Guide for details </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli3.html#XPSBLASGUIDE"><span
class="cmr-12">21</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-3-"><td style="white-space:normal; text-align:left;" id="TBL-13-3-1"
class="td11"><!--l. 769--><p class="noindent" ><code class="lstinline"><span style="color:#000000">desc_a</span></code></td><td style="white-space:normal; text-align:left;" id="TBL-13-3-2"
class="td11"><!--l. 769--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_desc_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-4-"><td style="white-space:normal; text-align:left;" id="TBL-13-4-1"
class="td11"><!--l. 770--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-4-2"
class="td11"><!--l. 770--><p class="noindent" ><span
class="cmr-12">The communication descriptor of </span><code class="lstinline"><span style="color:#000000">a</span></code><span
class="cmr-12">. See the PSBLAS User&#8217;s Guide</span>
<span
class="cmr-12">for details </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli3.html#XPSBLASGUIDE"><span
class="cmr-12">21</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-5-"><td style="white-space:normal; text-align:left;" id="TBL-13-5-1"
class="td11"><!--l. 772--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-5-2"
class="td11"><!--l. 772--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-6-"><td style="white-space:normal; text-align:left;" id="TBL-13-6-1"
class="td11"><!--l. 773--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-6-2"
class="td11"><!--l. 773--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x10-320007"><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-13-7-"><td style="white-space:normal; text-align:left;" id="TBL-13-7-1"
class="td11"><!--l. 774--><p class="noindent" ><code class="lstinline"><span style="color:#000000">amold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-7-2"
class="td11"><!--l. 774--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">_base_sparse_mat</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-8-"><td style="white-space:normal; text-align:left;" id="TBL-13-8-1"
class="td11"><!--l. 775--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-8-2"
class="td11"><!--l. 775--><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&#8217;s Guide for details </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli3.html#XPSBLASGUIDE"><span
class="cmr-12">21</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-9-"><td style="white-space:normal; text-align:left;" id="TBL-13-9-1"
class="td11"><!--l. 779--><p class="noindent" ><code class="lstinline"><span style="color:#000000">vmold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-9-2"
class="td11"><!--l. 779--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">_base_vect_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-10-"><td style="white-space:normal; text-align:left;" id="TBL-13-10-1"
class="td11"><!--l. 780--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-10-2"
class="td11"><!--l. 780--><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-13-11-"><td style="white-space:normal; text-align:left;" id="TBL-13-11-1"
class="td11"><!--l. 782--><p class="noindent" ><code class="lstinline"><span style="color:#000000">imold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-11-2"
class="td11"><!--l. 782--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_i_base_vect_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-12-"><td style="white-space:normal; text-align:left;" id="TBL-13-12-1"
class="td11"><!--l. 783--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-12-2"
class="td11"><!--l. 783--><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-13-13-"><td style="white-space:normal; text-align:left;" id="TBL-13-13-1"
class="td11"> </td> </tr></table> </div>
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">5.5 </span></span> <a
id="x8-210005.5"></a><span
class="cmr-12">Method build</span></h4>
<div class="center"
>
<!--l. 791--><p class="noindent" >
<!--l. 792--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">build</span><span style="color:#000000">(</span><span style="color:#000000">a</span><span style="color:#000000">,</span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">[,</span><span style="color:#000000">amold</span><span style="color:#000000">,</span><span style="color:#000000">vmold</span><span style="color:#000000">,</span><span style="color:#000000">imold</span><span style="color:#000000">])</span></code><br />
</div>
<!--l. 795--><p class="noindent" ><span
class="cmr-12">This method builds the preconditioner </span><code class="lstinline"><span style="color:#000000">p</span></code> <span
class="cmr-12">according to the requirements made by the</span>
<span
class="cmr-12">user through the methods </span><code class="lstinline"><span style="color:#000000">init</span></code> <span
class="cmr-12">and </span><code class="lstinline"><span style="color:#000000">set</span></code> <span
class="cmr-12">(see Sections</span><span
class="cmr-12">&#x00A0;</span><a
href="#x8-190005.3"><span
class="cmr-12">5.3</span><!--tex4ht:ref: sec:hier_bld --></a> <span
class="cmr-12">and</span><span
class="cmr-12">&#x00A0;</span><a
href="#x8-200005.4"><span
class="cmr-12">5.4</span><!--tex4ht:ref: sec:smooth_bld --></a> <span
class="cmr-12">for multilevel</span>
<span
class="cmr-12">preconditioners). It is mostly provided for backward compatibility; indeed, it is</span>
<span
class="cmr-12">internally implemented by invoking the two previous methods </span><code class="lstinline"><span style="color:#000000">hierarchy_build</span></code> <span
class="cmr-12">and</span>
<code class="lstinline"><span style="color:#000000">smoothers_build</span></code><span
class="cmr-12">, whose nomenclature would however be somewhat unnatural when</span>
<span
class="cmr-12">dealing with simple one-level preconditioners.</span>
<!--l. 805--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-14" class="tabular"
><colgroup id="TBL-14-1g"><col
id="TBL-14-1"><col
id="TBL-14-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-14-1-"><td style="white-space:normal; text-align:left;" id="TBL-14-1-1"
class="td11"><!--l. 808--><p class="noindent" ><code class="lstinline"><span style="color:#000000">a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-1-2"
class="td11"><!--l. 808--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">spmat_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-14-2-"><td style="white-space:normal; text-align:left;" id="TBL-14-2-1"
class="td11"><!--l. 809--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-2-2"
class="td11"><!--l. 809--><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>
<code class="lstinline"><span style="color:#000000">real</span></code><span
class="cmr-12">/</span><code class="lstinline"><span style="color:#000000">complex</span></code><span
class="cmr-12">, single/double precision version of AMG4PSBLAS</span>
<span
class="cmr-12">under use. See the PSBLAS User&#8217;s Guide for details </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli3.html#XPSBLASGUIDE"><span
class="cmr-12">21</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-14-3-"><td style="white-space:normal; text-align:left;" id="TBL-14-3-1"
class="td11"><!--l. 813--><p class="noindent" ><code class="lstinline"><span style="color:#000000">desc_a</span></code></td><td style="white-space:normal; text-align:left;" id="TBL-14-3-2"
class="td11"><!--l. 813--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_desc_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-14-4-"><td style="white-space:normal; text-align:left;" id="TBL-14-4-1"
class="td11"><!--l. 814--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-4-2"
class="td11"><!--l. 814--><p class="noindent" ><span
class="cmr-12">The communication descriptor of </span><code class="lstinline"><span style="color:#000000">a</span></code><span
class="cmr-12">. See the PSBLAS User&#8217;s Guide</span>
<span
class="cmr-12">for details </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli3.html#XPSBLASGUIDE"><span
class="cmr-12">21</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-14-5-"><td style="white-space:normal; text-align:left;" id="TBL-14-5-1"
class="td11"><!--l. 816--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-5-2"
class="td11"><!--l. 816--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-14-6-"><td style="white-space:normal; text-align:left;" id="TBL-14-6-1"
class="td11"><!--l. 817--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-6-2"
class="td11"><!--l. 817--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x10-320007"><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-14-7-"><td style="white-space:normal; text-align:left;" id="TBL-14-7-1"
class="td11"><!--l. 818--><p class="noindent" ><code class="lstinline"><span style="color:#000000">amold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-7-2"
class="td11"><!--l. 818--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">_base_sparse_mat</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-14-8-"><td style="white-space:normal; text-align:left;" id="TBL-14-8-1"
class="td11"><!--l. 819--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-8-2"
class="td11"><!--l. 819--><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&#8217;s Guide for details </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli3.html#XPSBLASGUIDE"><span
class="cmr-12">21</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-14-9-"><td style="white-space:normal; text-align:left;" id="TBL-14-9-1"
class="td11"><!--l. 823--><p class="noindent" ><code class="lstinline"><span style="color:#000000">vmold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-9-2"
class="td11"><!--l. 823--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">_base_vect_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-14-10-"><td style="white-space:normal; text-align:left;" id="TBL-14-10-1"
class="td11"><!--l. 824--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-10-2"
class="td11"><!--l. 824--><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-14-11-"><td style="white-space:normal; text-align:left;" id="TBL-14-11-1"
class="td11"><!--l. 826--><p class="noindent" ><code class="lstinline"><span style="color:#000000">imold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-11-2"
class="td11"><!--l. 826--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_i_base_vect_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-14-12-"><td style="white-space:normal; text-align:left;" id="TBL-14-12-1"
class="td11"><!--l. 827--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-12-2"
class="td11"><!--l. 827--><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-14-13-"><td style="white-space:normal; text-align:left;" id="TBL-14-13-1"
class="td11"> </td> </tr></table> </div>
<!--l. 832--><p class="noindent" ><span
class="cmr-12">The method can be used to build multilevel preconditioners too.</span>
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">5.6 </span></span> <a
id="x8-220005.6"></a><span
class="cmr-12">Method apply</span></h4>
<div class="center"
>
<!--l. 839--><p class="noindent" >
<!--l. 840--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">apply</span><span style="color:#000000">(</span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000">y</span><span style="color:#000000">,</span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000"> </span><span style="color:#000000">[,</span><span style="color:#000000">trans</span><span style="color:#000000">,</span><span style="color:#000000">work</span><span style="color:#000000">])</span></code><br />
</div>
<!--l. 843--><p class="noindent" ><span
class="cmr-12">This method computes </span><span
class="cmmi-12">y </span><span
class="cmr-12">= </span><span
class="cmmi-12">op</span><span
class="cmr-12">(</span><span
class="cmmi-12">B</span><sup><span
class="cmsy-8">-</span><span
class="cmr-8">1</span></sup><span
class="cmr-12">) </span><span
class="cmmi-12">x</span><span
class="cmr-12">, where </span><span
class="cmmi-12">B </span><span
class="cmr-12">is a previously built preconditioner,</span>
<span
class="cmr-12">stored into </span><code class="lstinline"><span style="color:#000000">p</span></code><span
class="cmr-12">, and </span><span
class="cmmi-12">op </span><span
class="cmr-12">denotes the preconditioner itself or its transpose, according to the</span>
<span
class="cmr-12">value of </span><code class="lstinline"><span style="color:#000000">trans</span></code><span
class="cmr-12">. Note that, when AMG4PSBLAS is used with a Krylov solver from</span>
<span
class="cmr-12">PSBLAS, </span><code class="lstinline"><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">apply</span></code> <span
class="cmr-12">is called within the PSBLAS method </span><code class="lstinline"><span style="color:#000000">psb_krylov</span></code> <span
class="cmr-12">and hence it is</span>
<span
class="cmr-12">completely transparent to the user.</span>
<!--l. 852--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-15" class="tabular"
><colgroup id="TBL-15-1g"><col
id="TBL-15-1"><col
id="TBL-15-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-15-1-"><td style="white-space:normal; text-align:left;" id="TBL-15-1-1"
class="td11"><!--l. 855--><p class="noindent" ><code class="lstinline"><span style="color:#000000">x</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-1-2"
class="td11"><!--l. 855--><p class="noindent" ><span
class="cmti-12">type</span><code class="lstinline"><span style="color:#000000">(</span><span style="color:#000000">kind_parameter</span><span style="color:#000000">)</span></code><span
class="cmr-12">, dimension(:), intent(in)&#8212;.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-15-2-"><td style="white-space:normal; text-align:left;" id="TBL-15-2-1"
class="td11"><!--l. 856--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-2-2"
class="td11"><!--l. 856--><p class="noindent" ><span
class="cmr-12">The local part of the vector </span><span
class="cmmi-12">x</span><span
class="cmr-12">. Note that </span><span
class="cmti-12">type </span><span
class="cmr-12">and </span><span
class="cmti-12">kind</span><span
class="cmti-12">_parameter</span>
<span
class="cmr-12">must be chosen according to the </span><code class="lstinline"><span style="color:#000000">real</span></code><span
class="cmr-12">/</span><code class="lstinline"><span style="color:#000000">complex</span></code><span
class="cmr-12">, single/double</span>
<span
class="cmr-12">precision version of AMG4PSBLAS under use.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-15-3-"><td style="white-space:normal; text-align:left;" id="TBL-15-3-1"
class="td11"><!--l. 859--><p class="noindent" ><code class="lstinline"><span style="color:#000000">y</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-3-2"
class="td11"><!--l. 859--><p class="noindent" ><span
class="cmti-12">type</span><code class="lstinline"><span style="color:#000000">(</span><span style="color:#000000">kind_parameter</span><span style="color:#000000">)</span></code><span
class="cmr-12">, dimension(:), intent(out)&#8212;.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-15-4-"><td style="white-space:normal; text-align:left;" id="TBL-15-4-1"
class="td11"><!--l. 860--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-4-2"
class="td11"><!--l. 860--><p class="noindent" ><span
class="cmr-12">The local part of the vector </span><span
class="cmmi-12">y</span><span
class="cmr-12">. Note that </span><span
class="cmti-12">type </span><span
class="cmr-12">and </span><span
class="cmti-12">kind</span><span
class="cmti-12">_parameter</span>
<span
class="cmr-12">must be chosen according to the </span><code class="lstinline"><span style="color:#000000">real</span></code><span
class="cmr-12">/</span><code class="lstinline"><span style="color:#000000">complex</span></code><span
class="cmr-12">, single/double</span>
<span
class="cmr-12">precision version of AMG4PSBLAS under use.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-15-5-"><td style="white-space:normal; text-align:left;" id="TBL-15-5-1"
class="td11"><!--l. 863--><p class="noindent" ><code class="lstinline"><span style="color:#000000">desc_a</span></code></td><td style="white-space:normal; text-align:left;" id="TBL-15-5-2"
class="td11"><!--l. 863--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_desc_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-15-6-"><td style="white-space:normal; text-align:left;" id="TBL-15-6-1"
class="td11"><!--l. 864--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-6-2"
class="td11"><!--l. 864--><p class="noindent" ><span
class="cmr-12">The communication descriptor associated to the matrix to be</span>
<span
class="cmr-12">preconditioned.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-15-7-"><td style="white-space:normal; text-align:left;" id="TBL-15-7-1"
class="td11"><!--l. 866--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-7-2"
class="td11"><!--l. 866--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-15-8-"><td style="white-space:normal; text-align:left;" id="TBL-15-8-1"
class="td11"><!--l. 867--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-8-2"
class="td11"><!--l. 867--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x10-320007"><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-15-9-"><td style="white-space:normal; text-align:left;" id="TBL-15-9-1"
class="td11"><!--l. 868--><p class="noindent" ><code class="lstinline"><span style="color:#000000">trans</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-9-2"
class="td11"><!--l. 868--><p class="noindent" ><code class="lstinline"><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=1),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">).</span></code> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-15-10-"><td style="white-space:normal; text-align:left;" id="TBL-15-10-1"
class="td11"><!--l. 869--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-10-2"
class="td11"><!--l. 869--><p class="noindent" ><span
class="cmr-12">If </span><code class="lstinline"><span style="color:#000000">trans</span></code> <span
class="cmr-12">= </span><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">N</span><span style="color:#000000">&#8217;</span><span style="color:#000000">,</span><span style="color:#000000">&#8217;</span><span style="color:#000000">n</span><span style="color:#000000">&#8217;</span></code> <span
class="cmr-12">then </span><span
class="cmmi-12">op</span><span
class="cmr-12">(</span><span
class="cmmi-12">B</span><sup><span
class="cmsy-8">-</span><span
class="cmr-8">1</span></sup><span
class="cmr-12">) = </span><span
class="cmmi-12">B</span><sup><span
class="cmsy-8">-</span><span
class="cmr-8">1</span></sup><span
class="cmr-12">; if </span><code class="lstinline"><span style="color:#000000">trans</span></code> <span
class="cmr-12">= </span><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">T</span><span style="color:#000000">&#8217;</span><span style="color:#000000">,</span><span style="color:#000000">&#8217;</span><span style="color:#000000">t</span><span style="color:#000000">&#8217;</span></code>
<span
class="cmr-12">then </span><span
class="cmmi-12">op</span><span
class="cmr-12">(</span><span
class="cmmi-12">B</span><sup><span
class="cmsy-8">-</span><span
class="cmr-8">1</span></sup><span
class="cmr-12">) = </span><span
class="cmmi-12">B</span><sup><span
class="cmsy-8">-</span><span
class="cmmi-8">T</span> </sup> <span
class="cmr-12">(transpose of </span><span
class="cmmi-12">B</span><sup><span
class="cmsy-8">-</span><span
class="cmr-8">1</span></sup><span
class="cmr-12">); if </span><code class="lstinline"><span style="color:#000000">trans</span></code> <span
class="cmr-12">= </span><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">C</span><span style="color:#000000">&#8217;</span><span style="color:#000000">,</span><span style="color:#000000">&#8217;</span><span style="color:#000000">c</span><span style="color:#000000">&#8217;</span></code> <span
class="cmr-12">then</span>
<span
class="cmmi-12">op</span><span
class="cmr-12">(</span><span
class="cmmi-12">B</span><sup><span
class="cmsy-8">-</span><span
class="cmr-8">1</span></sup><span
class="cmr-12">) = </span><span
class="cmmi-12">B</span><sup><span
class="cmsy-8">-</span><span
class="cmmi-8">C</span></sup> <span
class="cmr-12">(conjugate transpose of </span><span
class="cmmi-12">B</span><sup><span
class="cmsy-8">-</span><span
class="cmr-8">1</span></sup><span
class="cmr-12">).</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-15-11-"><td style="white-space:normal; text-align:left;" id="TBL-15-11-1"
class="td11"><!--l. 873--><p class="noindent" ><code class="lstinline"><span style="color:#000000">work</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-11-2"
class="td11"><!--l. 873--><p class="noindent" ><span
class="cmti-12">type</span><code class="lstinline"><span style="color:#000000">(</span><span style="color:#000000">kind_parameter</span><span style="color:#000000">)</span></code><span
class="cmr-12">, dimension(:), optional, target&#8212;.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-15-12-"><td style="white-space:normal; text-align:left;" id="TBL-15-12-1"
class="td11"><!--l. 874--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-12-2"
class="td11"><!--l. 874--><p class="noindent" ><span
class="cmr-12">Workspace. Its size should be at least </span><code class="lstinline"><span style="color:#000000">4</span><span style="color:#000000"> </span><span style="color:#000000">*</span><span style="color:#000000"> </span><span style="color:#000000">psb_cd_get_local_</span></code>
<code class="lstinline"><span style="color:#000000">cols</span><span style="color:#000000">(</span><span style="color:#000000">desc_a</span><span style="color:#000000">)</span></code> <span
class="cmr-12">(see the PSBLAS User&#8217;s Guide). Note that </span><span
class="cmti-12">type </span><span
class="cmr-12">and</span>
<span
class="cmti-12">kind</span><span
class="cmti-12">_parameter </span><span
class="cmr-12">must be chosen according to the </span><code class="lstinline"><span style="color:#000000">real</span></code><span
class="cmr-12">/</span><code class="lstinline"><span style="color:#000000">complex</span></code><span
class="cmr-12">,</span>
<span
class="cmr-12">single/double precision version of AMG4PSBLAS under use.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-15-13-"><td style="white-space:normal; text-align:left;" id="TBL-15-13-1"
class="td11"> </td> </tr></table> </div>
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">5.7 </span></span> <a
id="x8-230005.7"></a><span
class="cmr-12">Method free</span></h4>
<div class="center"
>
<!--l. 885--><p class="noindent" >
<!--l. 886--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">free</span><span style="color:#000000">(</span><span style="color:#000000">p</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">)</span></code><br />
</div>
<!--l. 889--><p class="noindent" ><span
class="cmr-12">This method deallocates the preconditioner data structure </span><code class="lstinline"><span style="color:#000000">p</span></code><span
class="cmr-12">.</span>
<!--l. 892--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-16" class="tabular"
><colgroup id="TBL-16-1g"><col
id="TBL-16-1"><col
id="TBL-16-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-16-1-"><td style="white-space:normal; text-align:left;" id="TBL-16-1-1"
class="td11"><!--l. 895--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-16-1-2"
class="td11"><!--l. 895--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-16-2-"><td style="white-space:normal; text-align:left;" id="TBL-16-2-1"
class="td11"><!--l. 896--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-2-2"
class="td11"><!--l. 896--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x10-320007"><span
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for</span>
<span
class="cmr-12">details.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-16-3-"><td style="white-space:normal; text-align:left;" id="TBL-16-3-1"
class="td11"> </td> </tr></table> </div>
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">5.8 </span></span> <a
id="x8-240005.8"></a><span
class="cmr-12">Method descr</span></h4>
<div class="center"
>
<!--l. 904--><p class="noindent" >
<!--l. 905--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">descr</span><span style="color:#000000">(</span><span style="color:#000000">info</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">[</span><span style="color:#000000">iout</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">root</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">verbosity</span><span style="color:#000000">])</span></code><br />
</div>
<!--l. 908--><p class="noindent" ><span
class="cmr-12">This method prints a description of the preconditioner </span><code class="lstinline"><span style="color:#000000">p</span></code> <span
class="cmr-12">to the standard output or to a</span>
<span
class="cmr-12">file. It must be called after </span><code class="lstinline"><span style="color:#000000">hierachy_build</span></code> <span
class="cmr-12">and </span><code class="lstinline"><span style="color:#000000">smoothers_build</span></code><span
class="cmr-12">, or </span><code class="lstinline"><span style="color:#000000">build</span></code><span
class="cmr-12">, have</span>
<span
class="cmr-12">been called.</span>
<!--l. 913--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-17" class="tabular"
><colgroup id="TBL-17-1g"><col
id="TBL-17-1"><col
id="TBL-17-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-17-1-"><td style="white-space:normal; text-align:left;" id="TBL-17-1-1"
class="td11"><!--l. 916--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-17-1-2"
class="td11"><!--l. 916--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-17-2-"><td style="white-space:normal; text-align:left;" id="TBL-17-2-1"
class="td11"><!--l. 917--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-2-2"
class="td11"><!--l. 917--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x10-320007"><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-17-3-"><td style="white-space:normal; text-align:left;" id="TBL-17-3-1"
class="td11"><!--l. 918--><p class="noindent" ><code class="lstinline"><span style="color:#000000">iout</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-17-3-2"
class="td11"><!--l. 918--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-17-4-"><td style="white-space:normal; text-align:left;" id="TBL-17-4-1"
class="td11"><!--l. 919--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-4-2"
class="td11"><!--l. 919--><p class="noindent" ><span
class="cmr-12">The id of the file where the preconditioner description will be</span>
<span
class="cmr-12">printed; the default is the standard output.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-17-5-"><td style="white-space:normal; text-align:left;" id="TBL-17-5-1"
class="td11"><!--l. 921--><p class="noindent" ><code class="lstinline"><span style="color:#000000">root</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-17-5-2"
class="td11"><!--l. 921--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-17-6-"><td style="white-space:normal; text-align:left;" id="TBL-17-6-1"
class="td11"><!--l. 922--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-6-2"
class="td11"><!--l. 922--><p class="noindent" ><span
class="cmr-12">The id of the process where the preconditioner description</span>
<span
class="cmr-12">will be printed; the default is </span><code class="lstinline"><span style="color:#000000">psb_root_</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-17-7-"><td style="white-space:normal; text-align:left;" id="TBL-17-7-1"
class="td11"><!--l. 924--><p class="noindent" ><code class="lstinline"><span style="color:#000000">verbosity</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-17-7-2"
class="td11"><!--l. 924--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-17-8-"><td style="white-space:normal; text-align:left;" id="TBL-17-8-1"
class="td11"><!--l. 925--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-8-2"
class="td11"><!--l. 925--><p class="noindent" ><span
class="cmr-12">The verbosity level of the description. Default value is 0. For</span>
<span
class="cmr-12">values higher than 0, it prints out further information, e.g., for</span>
<span
class="cmr-12">a distributed multilevel preconditioner the size of the coarse</span>
<span
class="cmr-12">matrices on every process.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-17-9-"><td style="white-space:normal; text-align:left;" id="TBL-17-9-1"
class="td11"> </td> </tr></table> </div>
<!--l. 932--><p class="noindent" >
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">5.9 </span></span> <a
id="x8-250005.9"></a><span
class="cmr-12">Auxiliary Methods</span></h4>
<!--l. 933--><p class="noindent" ><span
class="cmr-12">Various functionalities are implemented as additional methods of the preconditioner</span>
<span
class="cmr-12">object.</span>
<!--l. 936--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.1 </span></span> <a
id="x8-260005.9.1"></a><span
class="cmr-12">Method: dump</span></h5>
<div class="center"
>
<!--l. 938--><p class="noindent" >
<!--l. 939--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">dump</span><span style="color:#000000">(</span><span style="color:#000000">info</span><span style="color:#000000">[,</span><span style="color:#000000">istart</span><span style="color:#000000">,</span><span style="color:#000000">iend</span><span style="color:#000000">,</span><span style="color:#000000">prefix</span><span style="color:#000000">,</span><span style="color:#000000">head</span><span style="color:#000000">,</span><span style="color:#000000">ac</span><span style="color:#000000">,</span><span style="color:#000000">rp</span><span style="color:#000000">,</span><span style="color:#000000">smoother</span><span style="color:#000000">,</span><span style="color:#000000">solver</span><span style="color:#000000">,</span><span style="color:#000000">global_num</span><span style="color:#000000">])</span></code><br />
</div>
<!--l. 942--><p class="noindent" ><span
class="cmr-12">Dump on file.</span>
<!--l. 945--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-18" class="tabular"
><colgroup id="TBL-18-1g"><col
id="TBL-18-1"><col
id="TBL-18-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-18-1-"><td style="white-space:normal; text-align:left;" id="TBL-18-1-1"
class="td11"><!--l. 948--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-18-1-2"
class="td11"><!--l. 948--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-18-2-"><td style="white-space:normal; text-align:left;" id="TBL-18-2-1"
class="td11"><!--l. 949--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-2-2"
class="td11"><!--l. 949--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x10-320007"><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-18-3-"><td style="white-space:normal; text-align:left;" id="TBL-18-3-1"
class="td11"><!--l. 950--><p class="noindent" ><code class="lstinline"><span style="color:#000000">amold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-18-3-2"
class="td11"><!--l. 950--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">_base_sparse_mat</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-18-4-"><td style="white-space:normal; text-align:left;" id="TBL-18-4-1"
class="td11"><!--l. 951--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-4-2"
class="td11"><!--l. 951--><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&#8217;s Guide for details </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli3.html#XPSBLASGUIDE"><span
class="cmr-12">21</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-18-5-"><td style="white-space:normal; text-align:left;" id="TBL-18-5-1"
class="td11"> </td> </tr></table> </div>
<!--l. 958--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.2 </span></span> <a
id="x8-270005.9.2"></a><span
class="cmr-12">Method: clone</span></h5>
<div class="center"
>
<!--l. 960--><p class="noindent" >
<!--l. 961--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">clone</span><span style="color:#000000">(</span><span style="color:#000000">pout</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">)</span></code><br />
</div>
<!--l. 964--><p class="noindent" ><span
class="cmr-12">Create a (deep) copy of the preconditioner object.</span>
<!--l. 967--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-19" class="tabular"
><colgroup id="TBL-19-1g"><col
id="TBL-19-1"><col
id="TBL-19-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-19-1-"><td style="white-space:normal; text-align:left;" id="TBL-19-1-1"
class="td11"><!--l. 970--><p class="noindent" ><code class="lstinline"><span style="color:#000000">pout</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-19-1-2"
class="td11"><!--l. 970--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">amg_</span></code><span
class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">prec_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-19-2-"><td style="white-space:normal; text-align:left;" id="TBL-19-2-1"
class="td11"><!--l. 971--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-2-2"
class="td11"><!--l. 971--><p class="noindent" ><span
class="cmr-12">The copy of the preconditioner data structure. Note that </span><span
class="cmti-12">x </span><span
class="cmr-12">must</span>
<span
class="cmr-12">be chosen according to the </span><code class="lstinline"><span style="color:#000000">real</span></code><span
class="cmr-12">/</span><code class="lstinline"><span style="color:#000000">complex</span></code><span
class="cmr-12">, single/double precision</span>
<span
class="cmr-12">version of AMG4PSBLAS under use.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-19-3-"><td style="white-space:normal; text-align:left;" id="TBL-19-3-1"
class="td11"><!--l. 974--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-19-3-2"
class="td11"><!--l. 974--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-19-4-"><td style="white-space:normal; text-align:left;" id="TBL-19-4-1"
class="td11"><!--l. 975--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-4-2"
class="td11"><!--l. 975--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x10-320007"><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-19-5-"><td style="white-space:normal; text-align:left;" id="TBL-19-5-1"
class="td11"> </td> </tr></table> </div>
<!--l. 980--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.3 </span></span> <a
id="x8-280005.9.3"></a><span
class="cmr-12">Method: sizeof</span></h5>
<div class="center"
>
<!--l. 982--><p class="noindent" >
<!--l. 983--><p class="noindent" ><code class="lstinline"><span style="color:#000000">sz</span><span style="color:#000000"> </span><span style="color:#000000">=</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">sizeof</span><span style="color:#000000">([</span><span style="color:#000000">global</span><span style="color:#000000">])</span></code><br />
</div>
<div class="tabular"> <table id="TBL-20" class="tabular"
><colgroup id="TBL-20-1g"><col
id="TBL-20-1"><col
id="TBL-20-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-20-1-"><td style="white-space:normal; text-align:left;" id="TBL-20-1-1"
class="td11"><!--l. 987--><p class="noindent" ><code class="lstinline"><span style="color:#000000">global</span></code> </td> <td style="white-space:normal; text-align:left;" id="TBL-20-1-2"
class="td11"><!--l. 987--><p class="noindent" ><code class="lstinline"><span style="color:#000000">logical</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-20-2-"><td style="white-space:normal; text-align:left;" id="TBL-20-2-1"
class="td11"><!--l. 988--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-20-2-2"
class="td11"><!--l. 988--><p class="noindent" ><span
class="cmr-12">Whether the global or local preconditioner memory occupation is</span>
<span
class="cmr-12">desired. Default: </span><code class="lstinline"><span style="color:#000000">.</span><span style="color:#000000">false</span><span style="color:#000000">.</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-20-3-"><td style="white-space:normal; text-align:left;" id="TBL-20-3-1"
class="td11"> </td> </tr></table> </div>
<span
class="cmr-12">Return memory footprint in bytes.</span>
<!--l. 995--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.4 </span></span> <a
id="x8-290005.9.4"></a><span
class="cmr-12">Method: allocate</span><span
class="cmr-12">_wrk</span></h5>
<div class="center"
>
<!--l. 997--><p class="noindent" >
<!--l. 998--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">allocate_wrk</span><span style="color:#000000">(</span><span style="color:#000000">info</span><span style="color:#000000">[,</span><span style="color:#000000"> </span><span style="color:#000000">vmold</span><span style="color:#000000">])</span></code><br />
</div>
<!--l. 1001--><p class="noindent" ><span
class="cmr-12">Allocate internal work vectors. Each application of the preconditioner uses a number of</span>
<span
class="cmr-12">work vectors which are allocated internally as necessary; therefore allocation and</span>
<span
class="cmr-12">deallocation of memory occurs multiple times during the execution of a Krylov method.</span>
<span
class="cmr-12">In most cases this strategy is perfectly acceptable, but on some platforms, most</span>
<span
class="cmr-12">notably GPUs, memory allocation is a slow operation, and the default behaviour would</span>
<span
class="cmr-12">lead to a slowdown. This method allows to trade space for time by preallocating</span>
<span
class="cmr-12">the internal workspace outside of the invocation of a Krylov method. When</span>
<span
class="cmr-12">using GPUs or other specialized devices, the </span><code class="lstinline"><span style="color:#000000">vmold</span></code> <span
class="cmr-12">argument is also necessary</span>
<span
class="cmr-12">to ensure the internal work vectors are of the appropriate dynamic type to</span>
<span
class="cmr-12">exploit the accelerator hardware; when allocation occurs internally this is</span>
<span
class="cmr-12">taken care of based on the dynamic type of the </span><code class="lstinline"><span style="color:#000000">x</span></code> <span
class="cmr-12">argument to the </span><code class="lstinline"><span style="color:#000000">apply</span></code>
<span
class="cmr-12">method.</span>
<!--l. 1017--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-21" class="tabular"
><colgroup id="TBL-21-1g"><col
id="TBL-21-1"><col
id="TBL-21-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-21-1-"><td style="white-space:normal; text-align:left;" id="TBL-21-1-1"
class="td11"><!--l. 1020--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-21-1-2"
class="td11"><!--l. 1020--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-21-2-"><td style="white-space:normal; text-align:left;" id="TBL-21-2-1"
class="td11"><!--l. 1021--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-21-2-2"
class="td11"><!--l. 1021--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x10-320007"><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-21-3-"><td style="white-space:normal; text-align:left;" id="TBL-21-3-1"
class="td11"><!--l. 1022--><p class="noindent" ><code class="lstinline"><span style="color:#000000">vmold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-21-3-2"
class="td11"><!--l. 1022--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">_base_vect_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-21-4-"><td style="white-space:normal; text-align:left;" id="TBL-21-4-1"
class="td11"><!--l. 1023--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-21-4-2"
class="td11"><!--l. 1023--><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-21-5-"><td style="white-space:normal; text-align:left;" id="TBL-21-5-1"
class="td11"> </td> </tr></table> </div>
<!--l. 1029--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.5 </span></span> <a
id="x8-300005.9.5"></a><span
class="cmr-12">Method: free</span><span
class="cmr-12">_wrk</span></h5>
<div class="center"
>
<!--l. 1031--><p class="noindent" >
<!--l. 1032--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">free_wrk</span><span style="color:#000000">(</span><span style="color:#000000">info</span><span style="color:#000000">)</span></code><br />
</div>
<!--l. 1035--><p class="noindent" ><span
class="cmr-12">Deallocate internal work vectors.</span>
<!--l. 1038--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-22" class="tabular"
><colgroup id="TBL-22-1g"><col
id="TBL-22-1"><col
id="TBL-22-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-22-1-"><td style="white-space:normal; text-align:left;" id="TBL-22-1-1"
class="td11"><!--l. 1041--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-22-1-2"
class="td11"><!--l. 1041--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-22-2-"><td style="white-space:normal; text-align:left;" id="TBL-22-2-1"
class="td11"><!--l. 1042--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-22-2-2"
class="td11"><!--l. 1042--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x10-320007"><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-22-3-"><td style="white-space:normal; text-align:left;" id="TBL-22-3-1"
class="td11"> </td> </tr></table> </div>
<!--l. 4--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlse6.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse4.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse4.html#tailuserhtmlse4.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse5.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtml.html#userhtmlse5.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 4--><p class="indent" > <a
id="tailuserhtmlse5.html"></a>
</body></html>