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.
3311 lines
251 KiB
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"> </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"> </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"> </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"> </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"> </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"> </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"> </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">’</span><span style="color:#000000">PRE</span><span style="color:#000000">’</span></code><span
|
|
class="cmr-12">) or to the post-smoother (</span><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">POST</span><span style="color:#000000">’</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"> </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">’</span><span style="color:#000000">SMOOTHER_TYPE</span><span style="color:#000000">’</span></code><span
|
|
class="cmr-12">) and a local solver (</span><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">SUB_SOLVE</span><span style="color:#000000">’</span></code><span
|
|
class="cmr-12">), as specified in</span>
|
|
<span
|
|
class="cmr-12">Tables</span><span
|
|
class="cmr-12"> </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"> </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">ℓ</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">’</span><span style="color:#000000">SMOOTHER_TYPE</span><span style="color:#000000">’</span></code> <span
|
|
class="cmr-12">to</span>
|
|
<span
|
|
class="cmr-12">certain specific values (see Tables</span><span
|
|
class="cmr-12"> </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">’</span><span style="color:#000000">SUB_SOLVE</span><span style="color:#000000">’</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"> </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"> </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"> </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">’</span><span style="color:#000000">SMOOTHER_SWEEPS</span><span style="color:#000000">’</span></code> <span
|
|
class="cmr-12">option is overridden by the </span><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">POLY_DEGREE</span><span style="color:#000000">’</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">ℓ</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"> </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"> </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">ℓ</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"> 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">’</span><span style="color:#000000">MUMPS_IPAR_ENTRY</span><span style="color:#000000">’</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"> </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">’</span><span style="color:#000000">ML_CYCLE</span><span style="color:#000000">’</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">’</span><span style="color:#000000">VCYCLE</span><span style="color:#000000">’</span></code>
|
|
<!--l. 239--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">WCYCLE</span><span style="color:#000000">’</span></code>
|
|
<!--l. 239--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">KCYCLE</span><span style="color:#000000">’</span></code>
|
|
<!--l. 239--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">ADD</span><span style="color:#000000">’</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">’</span><span style="color:#000000">VCYCLE</span><span style="color:#000000">’</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">’</span><span style="color:#000000">CYCLE_SWEEPS</span><span style="color:#000000">’</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">≥ </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 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">’</span><span style="color:#000000">MIN_COARSE_SIZE_PER_PROCESS</span><span style="color:#000000">’</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">> </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">’</span><span style="color:#000000">MIN_COARSE_SIZE</span><span style="color:#000000">’</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">> </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">’</span><span style="color:#000000">MIN_COARSE_SIZE_PER_PROCESS</span><span style="color:#000000">’</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">’</span><span style="color:#000000">MIN_CR_RATIO</span><span style="color:#000000">’</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">> </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">’</span><span style="color:#000000">MAX_LEVS</span><span style="color:#000000">’</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">> </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">’</span><span style="color:#000000">PAR_AGGR_ALG</span><span style="color:#000000">’</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">’DEC’</span>,
|
|
<span
|
|
class="cmtt-10x-x-109">’SYMDEC’</span>,
|
|
<span
|
|
class="cmtt-10x-x-109">’COUPLED’</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">’DEC’</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">’</span><span style="color:#000000">AGGR_TYPE</span><span style="color:#000000">’</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">’</span><span style="color:#000000">SOC1</span><span style="color:#000000">’</span></code>,
|
|
<code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">SOC2</span><span style="color:#000000">’</span></code>,
|
|
<code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">MATCHBOXP</span><span style="color:#000000">’</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">’</span><span style="color:#000000">SOC1</span><span style="color:#000000">’</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ěk, Mandel and Brezina <span class="cite">[<a
|
|
href="userhtmlli3.html#XVANEK_MANDEL_BREZINA">35</a>]</span>,
|
|
and the one by Gratton et al <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 <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">’</span><span style="color:#000000">AGGR_SIZE</span><span style="color:#000000">’</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">≥</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">’COUPLED’</span>
|
|
and <span
|
|
class="cmtt-10x-x-109">’MATCHBOXP’</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">’</span><span style="color:#000000">AGGR_PROL</span><span style="color:#000000">’</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">’</span><span style="color:#000000">SMOOTHED</span><span style="color:#000000">’</span></code>,
|
|
<code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">UNSMOOTHED</span><span style="color:#000000">’</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">’</span><span style="color:#000000">SMOOTHED</span><span style="color:#000000">’</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 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">’</span><span style="color:#000000">AGGR_ORD</span><span style="color:#000000">’</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">’NATURAL’</span>
|
|
<!--l. 363--><p class="noindent" ><span
|
|
class="cmtt-10x-x-109">’DEGREE’</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">’NATURAL’</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">’</span><span style="color:#000000">AGGR_THRESH</span><span style="color:#000000">’</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 real
|
|
<!--l. 373--><p class="noindent" >number <span
|
|
class="cmsy-10x-x-109">∈</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">θ </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">’</span><span style="color:#000000">AGGR_FILTER</span><span style="color:#000000">’</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">’FILTER’</span>
|
|
<!--l. 380--><p class="noindent" ><span
|
|
class="cmtt-10x-x-109">’NOFILTER’</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">’NOFILTER’</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 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 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">’</span><span style="color:#000000">COARSE_MAT</span><span style="color:#000000">’</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">’</span><span style="color:#000000">DIST</span><span style="color:#000000">’</span></code>
|
|
<!--l. 405--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">REPL</span><span style="color:#000000">’</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">’</span><span style="color:#000000">REPL</span><span style="color:#000000">’</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">’</span><span style="color:#000000">COARSE_SOLVE</span><span style="color:#000000">’</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">’</span><span style="color:#000000">MUMPS</span><span style="color:#000000">’</span></code>
|
|
<!--l. 410--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">UMF</span><span style="color:#000000">’</span></code>
|
|
<!--l. 411--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">SLU</span><span style="color:#000000">’</span></code>
|
|
<!--l. 411--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">SLUDIST</span><span style="color:#000000">’</span></code>
|
|
<!--l. 412--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">ILU</span><span style="color:#000000">’</span></code>
|
|
<!--l. 413--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">JACOBI</span><span style="color:#000000">’</span></code>
|
|
<!--l. 414--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">GS</span><span style="color:#000000">’</span></code>
|
|
<!--l. 415--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">BJAC</span><span style="color:#000000">’</span></code>
|
|
<!--l. 416--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">KRM</span><span style="color:#000000">’</span></code>
|
|
<!--l. 417--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">L1</span><span style="color:#000000">-</span><span style="color:#000000">JACOBI</span><span style="color:#000000">’</span></code>
|
|
<!--l. 418--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">L1</span><span style="color:#000000">-</span><span style="color:#000000">BJAC</span><span style="color:#000000">’</span></code>
|
|
<!--l. 419--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">L1</span><span style="color:#000000">-</span><span style="color:#000000">FBGS</span><span style="color:#000000">’</span></code></td><td style="white-space:normal; text-align:left;" id="TBL-7-3-4"
|
|
class="td11"><!--l. 420--><p class="noindent" >See 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">ℓ</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. 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">’</span><span style="color:#000000">COARSE_SUBSOLVE</span><span style="color:#000000">’</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">’</span><span style="color:#000000">ILU</span><span style="color:#000000">’</span></code>
|
|
<!--l. 452--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">ILUT</span><span style="color:#000000">’</span></code>
|
|
<!--l. 452--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">MILU</span><span style="color:#000000">’</span></code>
|
|
<!--l. 453--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">MUMPS</span><span style="color:#000000">’</span></code>
|
|
<!--l. 453--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">SLU</span><span style="color:#000000">’</span></code>
|
|
<!--l. 453--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">UMF</span><span style="color:#000000">’</span></code>
|
|
<!--l. 454--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">INVT</span><span style="color:#000000">’</span></code>
|
|
<!--l. 454--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">INVK</span><span style="color:#000000">’</span></code>
|
|
<!--l. 454--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">AINV</span><span style="color:#000000">’</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-7-4-4"
|
|
class="td11"><!--l. 455--><p class="noindent" >See 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 <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 – <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 – <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">’</span><span style="color:#000000">COARSE_SWEEPS</span><span style="color:#000000">’</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">></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">’</span><span style="color:#000000">COARSE_FILLIN</span><span style="color:#000000">’</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">≥</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">’</span><span style="color:#000000">COARSE_ILUTHRS</span><span style="color:#000000">’</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">≥</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 <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 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">’</span><span style="color:#000000">BJAC_STOP</span><span style="color:#000000">’</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">’</span><span style="color:#000000">FALSE</span><span style="color:#000000">’</span></code>
|
|
<!--l. 521--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">TRUE</span><span style="color:#000000">’</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">’</span><span style="color:#000000">FALSE</span><span style="color:#000000">’</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">’</span><span style="color:#000000">BJAC_TRACE</span><span style="color:#000000">’</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">’</span><span style="color:#000000">FALSE</span><span style="color:#000000">’</span></code>
|
|
<!--l. 522--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">TRUE</span><span style="color:#000000">’</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">’</span><span style="color:#000000">FALSE</span><span style="color:#000000">’</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">’</span><span style="color:#000000">BJAC_ITRACE</span><span style="color:#000000">’</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">> </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">’</span><span style="color:#000000">BJAC_RESCHECK</span><span style="color:#000000">’</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">> </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">’</span><span style="color:#000000">BJAC_STOPTOL</span><span style="color:#000000">’</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">< </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">’</span><span style="color:#000000">KRM_METHOD</span><span style="color:#000000">’</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">’</span><span style="color:#000000">CG</span><span style="color:#000000">’</span></code>
|
|
<!--l. 526--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">FCG</span><span style="color:#000000">’</span></code>
|
|
<!--l. 526--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">CGS</span><span style="color:#000000">’</span></code>
|
|
<!--l. 526--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">CGR</span><span style="color:#000000">’</span></code>
|
|
<!--l. 526--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">BICG</span><span style="color:#000000">’</span></code>
|
|
<!--l. 526--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">BICGSTAB</span><span style="color:#000000">’</span></code>
|
|
<!--l. 526--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">BICGSTABL</span><span style="color:#000000">’</span></code>
|
|
<!--l. 526--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">RGMRES</span><span style="color:#000000">’</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">’</span><span style="color:#000000">FCG</span><span style="color:#000000">’</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">’</span><span style="color:#000000">KRM</span><span style="color:#000000">’</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 <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">’</span><span style="color:#000000">KRM_KPREC</span><span style="color:#000000">’</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 <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">’</span><span style="color:#000000">BJAC</span><span style="color:#000000">’</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 <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">’</span><span style="color:#000000">KRM_SUB_SOLVE</span><span style="color:#000000">’</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 <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">’</span><span style="color:#000000">ILU</span><span style="color:#000000">’</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">’</span><span style="color:#000000">KRM_KPREC</span><span style="color:#000000">’</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 <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">’</span><span style="color:#000000">KRM_GLOBAL</span><span style="color:#000000">’</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">’</span><span style="color:#000000">TRUE</span><span style="color:#000000">’</span></code>,
|
|
<code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">FALSE</span><span style="color:#000000">’</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">’</span><span style="color:#000000">FALSE</span><span style="color:#000000">’</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">’</span><span style="color:#000000">KRM_EPS</span><span style="color:#000000">’</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">< </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">’</span><span style="color:#000000">KRM_IRST</span><span style="color:#000000">’</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">≥ </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">’</span><span style="color:#000000">KRM_ISTOPC</span><span style="color:#000000">’</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 <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">’</span><span style="color:#000000">KRM_ITMAX</span><span style="color:#000000">’</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">≥ </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">’</span><span style="color:#000000">KRM_ITRACE</span><span style="color:#000000">’</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">≥ </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">> </span>0 print out
|
|
an informational message about convergence
|
|
every <code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">KRM_ITRACE</span><span style="color:#000000">’</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">’</span><span style="color:#000000">KRM_FILLIN</span><span style="color:#000000">’</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">≥ </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 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">’</span><span style="color:#000000">SMOOTHER_TYPE</span><span style="color:#000000">’</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">’</span><span style="color:#000000">JACOBI</span><span style="color:#000000">’</span></code>
|
|
<!--l. 584--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">GS</span><span style="color:#000000">’</span></code>
|
|
<!--l. 584--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">BGS</span><span style="color:#000000">’</span></code>
|
|
<!--l. 584--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">BJAC</span><span style="color:#000000">’</span></code>
|
|
<!--l. 585--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">AS</span><span style="color:#000000">’</span></code>
|
|
<!--l. 585--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">L1</span><span style="color:#000000">-</span><span style="color:#000000">JACOBI</span><span style="color:#000000">’</span></code>
|
|
<!--l. 585--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">L1</span><span style="color:#000000">-</span><span style="color:#000000">BJAC</span><span style="color:#000000">’</span></code>
|
|
<!--l. 585--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">L1</span><span style="color:#000000">-</span><span style="color:#000000">FBGS</span><span style="color:#000000">’</span></code>
|
|
<!--l. 585--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">POLY</span><span style="color:#000000">’</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">’</span><span style="color:#000000">FBGS</span><span style="color:#000000">’</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">ℓ</span><sub><span
|
|
class="cmr-7">1</span></sub><span
|
|
class="cmr-10">-Jacobi,</span>
|
|
<span
|
|
class="cmmi-10">ℓ</span><sub><span
|
|
class="cmr-7">1</span></sub><span
|
|
class="cmr-10">–hybrid (forward)</span>
|
|
<span
|
|
class="cmr-10">Gauss-Seidel, </span><span
|
|
class="cmmi-10">ℓ</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"> </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"> 3 (p.</span><span
|
|
class="cmr-10"> 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">’</span><span style="color:#000000">SUB_SOLVE</span><span style="color:#000000">’</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">’</span><span style="color:#000000">JACOBI</span><span style="color:#000000">’</span></code>
|
|
<code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">GS</span><span style="color:#000000">’</span></code>
|
|
<!--l. 594--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">BGS</span><span style="color:#000000">’</span></code>
|
|
<!--l. 594--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">ILU</span><span style="color:#000000">’</span></code>
|
|
<!--l. 595--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">ILUT</span><span style="color:#000000">’</span></code>
|
|
<!--l. 595--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">MILU</span><span style="color:#000000">’</span></code>
|
|
<!--l. 596--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">MUMPS</span><span style="color:#000000">’</span></code>
|
|
<!--l. 597--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">SLU</span><span style="color:#000000">’</span></code>
|
|
<!--l. 597--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">UMF</span><span style="color:#000000">’</span></code>
|
|
<!--l. 598--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">INVT</span><span style="color:#000000">’</span></code>
|
|
<!--l. 598--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">INVK</span><span style="color:#000000">’</span></code>
|
|
<!--l. 598--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">AINV</span><span style="color:#000000">’</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"> 2, page</span><span
|
|
class="cmr-10"> 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"> </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">’</span><span style="color:#000000">SMOOTHER_SWEEPS</span><span style="color:#000000">’</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"> </span><span
|
|
class="cmsy-10">≥ </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">’</span><span style="color:#000000">PRE</span><span style="color:#000000">’</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">’</span><span style="color:#000000">POST</span><span style="color:#000000">’</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">’</span><span style="color:#000000">POLY</span><span style="color:#000000">’</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">’</span><span style="color:#000000">POLY_DEGREE</span><span style="color:#000000">’</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"> </span><span
|
|
class="cmsy-10">≥ </span><span
|
|
class="cmr-10">1</span>
|
|
<span
|
|
class="cmr-10">and</span><span
|
|
class="cmr-10"> </span><span
|
|
class="cmsy-10">≤ </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">’</span><span style="color:#000000">POLY</span><span style="color:#000000">’</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 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">’</span><span style="color:#000000">SUB_OVR</span><span style="color:#000000">’</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"> </span><span
|
|
class="cmsy-10">≥ </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">’</span><span style="color:#000000">SUB_RESTR</span><span style="color:#000000">’</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">’</span><span style="color:#000000">HALO</span><span style="color:#000000">’</span></code>
|
|
<!--l. 647--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">NONE</span><span style="color:#000000">’</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">’</span><span style="color:#000000">HALO</span><span style="color:#000000">’</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">’</span><span style="color:#000000">NONE</span><span style="color:#000000">’</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">’</span><span style="color:#000000">SUB_PROL</span><span style="color:#000000">’</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">’</span><span style="color:#000000">SUM</span><span style="color:#000000">’</span></code>
|
|
<!--l. 655--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">NONE</span><span style="color:#000000">’</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">’</span><span style="color:#000000">NONE</span><span style="color:#000000">’</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">’</span><span style="color:#000000">SUM</span><span style="color:#000000">’</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">’</span><span style="color:#000000">NONE</span><span style="color:#000000">’</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">’</span><span style="color:#000000">SUM</span><span style="color:#000000">’</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">’</span><span style="color:#000000">NONE</span><span style="color:#000000">’</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">’</span><span style="color:#000000">SUB_FILLIN</span><span style="color:#000000">’</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"> </span><span
|
|
class="cmsy-10">≥ </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">’</span><span style="color:#000000">SUB_ILUTHRS</span><span style="color:#000000">’</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"> </span><span
|
|
class="cmsy-10">≥ </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">’</span><span style="color:#000000">MUMPS_LOC_GLOB</span><span style="color:#000000">’</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">’</span><span style="color:#000000">LOCAL_SOLVER</span><span style="color:#000000">’</span></code>
|
|
<!--l. 671--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">GLOBAL_SOLVER</span><span style="color:#000000">’</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">’</span><span style="color:#000000">GLOBAL_SOLVER</span><span style="color:#000000">’</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">’</span><span style="color:#000000">MUMPS_IPAR_ENTRY</span><span style="color:#000000">’</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">’</span><span style="color:#000000">MUMPS_RPAR_ENTRY</span><span style="color:#000000">’</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 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">’</span><span style="color:#000000">POLY_VARIANT</span><span style="color:#000000">’</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">’</span><span style="color:#000000">CHEB_4</span><span style="color:#000000">’</span></code>
|
|
<!--l. 702--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">CHEB_4_OPT</span><span style="color:#000000">’</span></code>
|
|
<!--l. 702--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">CHEB_1_OPT</span><span style="color:#000000">’</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">’</span><span style="color:#000000">CHEB_4</span><span style="color:#000000">’</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">’</span><span style="color:#000000">CHEB_4</span><span style="color:#000000">’</span></code> <span
|
|
class="cmr-10">and</span>
|
|
<code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">CHEB_4_OPT</span><span style="color:#000000">’</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"> </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">’</span><span style="color:#000000">CHEB_1_OPT</span><span style="color:#000000">’</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"> </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">’</span><span style="color:#000000">POLY_RHO_ESTIMATE</span><span style="color:#000000">’</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">’</span><span style="color:#000000">POLY_RHO_EST_POWER</span><span style="color:#000000">’</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">’</span><span style="color:#000000">POLY_RHO_EST_POWER</span><span style="color:#000000">’</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">’</span><span style="color:#000000">POLY_RHO_ESTIMATE_ITERATIONS</span><span style="color:#000000">’</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">≥ </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">’</span><span style="color:#000000">POLY_RHO_BA</span><span style="color:#000000">’</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">∈ </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 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’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’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"> </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"> </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’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’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"> </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’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"> </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"> </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’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’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"> </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’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)—.</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)—.</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"> </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">’</span><span style="color:#000000">N</span><span style="color:#000000">’</span><span style="color:#000000">,</span><span style="color:#000000">’</span><span style="color:#000000">n</span><span style="color:#000000">’</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">’</span><span style="color:#000000">T</span><span style="color:#000000">’</span><span style="color:#000000">,</span><span style="color:#000000">’</span><span style="color:#000000">t</span><span style="color:#000000">’</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">’</span><span style="color:#000000">C</span><span style="color:#000000">’</span><span style="color:#000000">,</span><span style="color:#000000">’</span><span style="color:#000000">c</span><span style="color:#000000">’</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—.</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’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"> </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"> </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"> </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’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"> </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"> </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"> </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>
|