mirror of
https://github.com/sfilippone/psblas3.git
synced 2026-10-24 14:51:49 +00:00
Updates to user guide
This commit is contained in:
+123
-122
@@ -16,7 +16,7 @@ href="userhtmlse9.html#tailuserhtmlse9.html" >prev-tail</a>] [<a
|
||||
href="userhtmlse7.html#tailuserhtmlse10.html">tail</a>] [<a
|
||||
href="userhtml.html#userhtmlse13.html" >up</a>] </p></div>
|
||||
<h3 class="sectionHead"><span class="titlemark">10 </span> <a
|
||||
id="x15-13500010"></a>Preconditioner routines</h3>
|
||||
id="x16-13600010"></a>Preconditioner routines</h3>
|
||||
<!--l. 6--><p class="noindent" >The base PSBLAS library contains the implementation of some simple preconditioning
|
||||
techniques:
|
||||
<ul class="itemize1">
|
||||
@@ -38,7 +38,7 @@ for backward compatibility
|
||||
|
||||
|
||||
<h4 class="subsectionHead"><span class="titlemark">10.1 </span> <a
|
||||
id="x15-13600010.1"></a>init — Initialize a preconditioner</h4>
|
||||
id="x16-13700010.1"></a>init — Initialize a preconditioner</h4>
|
||||
|
||||
|
||||
|
||||
@@ -125,8 +125,8 @@ class="newline" />Error code: if no error, 0 is returned.</dd></dl>
|
||||
class="pplb7t-x-x-120">Notes </span>Legal inputs to this subroutine are interpreted depending on the <span
|
||||
class="zplmr7m-">ptype </span>string as
|
||||
follows<span class="footnote-mark"><a
|
||||
href="userhtml16.html#fn4x0"><sup class="textsuperscript">4</sup></a></span><a
|
||||
id="x15-136001f4"></a> :
|
||||
href="userhtml17.html#fn4x0"><sup class="textsuperscript">4</sup></a></span><a
|
||||
id="x16-137001f4"></a> :
|
||||
<dl class="description"><dt class="description">
|
||||
<!--l. 75--><p class="noindent" >
|
||||
<span
|
||||
@@ -152,12 +152,12 @@ class="description">
|
||||
class="zplmr7m-">A</span>, where block boundaries are determined
|
||||
by the data allocation boundaries for each process; requires no
|
||||
communication. See also Table-<a
|
||||
href="#x15-137001r21">21<!--tex4ht:ref: tab:p_subsolve_1 --></a>.</dd></dl>
|
||||
href="#x16-138001r21">21<!--tex4ht:ref: tab:p_subsolve_1 --></a>.</dd></dl>
|
||||
|
||||
|
||||
|
||||
<h4 class="subsectionHead"><span class="titlemark">10.2 </span> <a
|
||||
id="x15-13700010.2"></a>Set — set preconditioner parameters</h4>
|
||||
id="x16-13800010.2"></a>Set — set preconditioner parameters</h4>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 92--><p class="noindent" >
|
||||
@@ -181,7 +181,7 @@ class="td11"><!--l. 105--><p class="noindent" ><code class="lstinline"><span sty
|
||||
class="td11"><!--l. 106--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-23-2-2"
|
||||
class="td11"><!--l. 106--><p class="noindent" >The parameter to be set. It can be specified through its name; the string is
|
||||
case-insensitive. See Table <a
|
||||
href="#x15-137001r21">21<!--tex4ht:ref: tab:p_subsolve_1 --></a>. </td>
|
||||
href="#x16-138001r21">21<!--tex4ht:ref: tab:p_subsolve_1 --></a>. </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-23-3-"><td style="white-space:normal; text-align:left;" id="TBL-23-3-1"
|
||||
class="td11"><!--l. 109--><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-23-3-2"
|
||||
@@ -195,7 +195,7 @@ class="pplri7t-">or </span><code class="lstinline"><span style="color:#000000"
|
||||
class="td11"><!--l. 112--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-23-4-2"
|
||||
class="td11"><!--l. 112--><p class="noindent" >The value of the parameter to be set. The list of allowed values and the
|
||||
corresponding data types is given in Table <a
|
||||
href="#x15-137001r21">21<!--tex4ht:ref: tab:p_subsolve_1 --></a>. When the value is of type
|
||||
href="#x16-138001r21">21<!--tex4ht:ref: tab:p_subsolve_1 --></a>. When the value is of type
|
||||
<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>, it is also treated as case insensitive. </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-23-5-"><td style="white-space:normal; text-align:left;" id="TBL-23-5-1"
|
||||
@@ -205,18 +205,18 @@ class="td11"><!--l. 117--><p class="noindent" ><code class="lstinline"><span sty
|
||||
style="vertical-align:baseline;" id="TBL-23-6-"><td style="white-space:normal; text-align:left;" id="TBL-23-6-1"
|
||||
class="td11"><!--l. 118--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-23-6-2"
|
||||
class="td11"><!--l. 118--><p class="noindent" >Error code. If no error, 0 is returned. See Section <a
|
||||
href="userhtmlse8.html#x13-1230008">8<!--tex4ht:ref: sec:errors --></a> for details. </td> </tr></table></div>
|
||||
href="userhtmlse8.html#x14-1240008">8<!--tex4ht:ref: sec:errors --></a> for details. </td> </tr></table></div>
|
||||
<!--l. 123--><p class="noindent" >A number of subdomain solvers can be chosen with this method; a list of the
|
||||
parameters that can be set, along with their allowed and default values, is given in
|
||||
Table-<a
|
||||
href="#x15-137001r21">21<!--tex4ht:ref: tab:p_subsolve_1 --></a>.<br
|
||||
href="#x16-138001r21">21<!--tex4ht:ref: tab:p_subsolve_1 --></a>.<br
|
||||
class="newline" />
|
||||
<div class="table">
|
||||
|
||||
|
||||
|
||||
<!--l. 130--><p class="indent" > <a
|
||||
id="x15-137001r21"></a><hr class="float"><div class="float"
|
||||
id="x16-138001r21"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
@@ -315,7 +315,7 @@ class="pplr7t-x-x-90">suited for GPUs since they do not employ</sp
|
||||
class="pplr7t-x-x-90">triangular system solve kernels, see</span><span
|
||||
class="pplr7t-x-x-90"> </span><span class="cite"><span
|
||||
class="pplr7t-x-x-90">[</span><a
|
||||
href="userhtmlli2.html#XBERTACCINIFILIPPONE"><span
|
||||
href="userhtmlli3.html#XBERTACCINIFILIPPONE"><span
|
||||
class="pplr7t-x-x-90">2</span></a><span
|
||||
class="pplr7t-x-x-90">]</span></span><span
|
||||
class="pplr7t-x-x-90">.</span> </td>
|
||||
@@ -450,7 +450,7 @@ class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td><
|
||||
class="td11"> </td></tr></table> </div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 21: </span><span
|
||||
class="content">Parameters defining the solver of the BJAC preconditioner.</span></div><!--tex4ht:label?: x15-137001r21 -->
|
||||
class="content">Parameters defining the solver of the BJAC preconditioner.</span></div><!--tex4ht:label?: x16-138001r21 -->
|
||||
|
||||
|
||||
|
||||
@@ -460,7 +460,7 @@ class="content">Parameters defining the solver of the BJAC preconditioner.</span
|
||||
|
||||
|
||||
<h4 class="subsectionHead"><span class="titlemark">10.3 </span> <a
|
||||
id="x15-13800010.3"></a>build — Builds a preconditioner</h4>
|
||||
id="x16-13900010.3"></a>build — Builds a preconditioner</h4>
|
||||
|
||||
|
||||
|
||||
@@ -644,7 +644,7 @@ devices, such as GPUs and other accelerators.
|
||||
|
||||
|
||||
<h4 class="subsectionHead"><span class="titlemark">10.4 </span> <a
|
||||
id="x15-13900010.4"></a>apply — Preconditioner application routine</h4>
|
||||
id="x16-14000010.4"></a>apply — Preconditioner application routine</h4>
|
||||
|
||||
|
||||
|
||||
@@ -780,14 +780,15 @@ class="newline" />Intent: <span
|
||||
class="pplb7t-">out</span>.<br
|
||||
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
|
||||
<!--l. 315--><p class="noindent" ><span
|
||||
class="pplb7t-x-x-120">Notes </span>This method is almost always called by the iterative methods of Sec. <a
|
||||
href="userhtmlse11.html#x17-14500011">11<!--tex4ht:ref: sec:methods --></a>, and
|
||||
practically never directly by the user.
|
||||
class="pplb7t-x-x-120">Notes </span>This method is almost always called by the iterative methods of
|
||||
Sec. <a
|
||||
href="userhtmlse11.html#x18-14600011">11<!--tex4ht:ref: sec:methods --></a>; it is extremely unlikely to be needed directly by the application
|
||||
developer.
|
||||
|
||||
|
||||
|
||||
<h4 class="subsectionHead"><span class="titlemark">10.5 </span> <a
|
||||
id="x15-14000010.5"></a>descr — Prints a description of current preconditioner</h4>
|
||||
id="x16-14100010.5"></a>descr — Prints a description of current preconditioner</h4>
|
||||
|
||||
|
||||
|
||||
@@ -795,26 +796,26 @@ practically never directly by the user.
|
||||
call prec%descr(info)
|
||||
call prec%descr(info,iout, root)
|
||||
</pre>
|
||||
<!--l. 326--><p class="nopar" >
|
||||
<!--l. 328--><p class="indent" >
|
||||
<!--l. 327--><p class="nopar" >
|
||||
<!--l. 329--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<!--l. 329--><p class="noindent" >
|
||||
<!--l. 330--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">Type:</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 329--><p class="noindent" >Asynchronous.
|
||||
</dd><dt class="description">
|
||||
<!--l. 330--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 330--><p class="noindent" >
|
||||
<!--l. 330--><p class="noindent" >Asynchronous.
|
||||
</dd><dt class="description">
|
||||
<!--l. 331--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 331--><p class="noindent" >
|
||||
</dd><dt class="description">
|
||||
<!--l. 332--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">prec</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 331--><p class="noindent" >the preconditioner. Scope: <span
|
||||
<!--l. 332--><p class="noindent" >the preconditioner. Scope: <span
|
||||
class="pplb7t-">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="pplb7t-">required</span><br
|
||||
@@ -826,11 +827,11 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_Tprec</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<!--l. 336--><p class="noindent" >
|
||||
<!--l. 337--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">iout</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 336--><p class="noindent" >output unit. Scope: <span
|
||||
<!--l. 337--><p class="noindent" >output unit. Scope: <span
|
||||
class="pplb7t-">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="pplb7t-">optional</span><br
|
||||
@@ -838,11 +839,11 @@ class="newline" />Intent: <span
|
||||
class="pplb7t-">in</span>.<br
|
||||
class="newline" />Specified as: an integer number. Default: default output unit.
|
||||
</dd><dt class="description">
|
||||
<!--l. 341--><p class="noindent" >
|
||||
<!--l. 342--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">root</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 341--><p class="noindent" >Process from which to print Scope: <span
|
||||
<!--l. 342--><p class="noindent" >Process from which to print Scope: <span
|
||||
class="pplb7t-">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="pplb7t-">optional</span><br
|
||||
@@ -855,20 +856,20 @@ class="zplmr7y-">- </span>1, in which case
|
||||
class="zplmr7y-">-</span>1, in which case all
|
||||
processes will print. Default: 0.
|
||||
</dd><dt class="description">
|
||||
<!--l. 348--><p class="noindent" >
|
||||
<!--l. 349--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">On Return</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 348--><p class="noindent" >
|
||||
<!--l. 349--><p class="noindent" >
|
||||
|
||||
|
||||
|
||||
</dd><dt class="description">
|
||||
<!--l. 349--><p class="noindent" >
|
||||
<!--l. 350--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">info</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 349--><p class="noindent" >Error code.<br
|
||||
<!--l. 350--><p class="noindent" >Error code.<br
|
||||
class="newline" />Scope: <span
|
||||
class="pplb7t-">local </span><br
|
||||
class="newline" />Type: <span
|
||||
@@ -880,86 +881,86 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
|
||||
|
||||
|
||||
<h4 class="subsectionHead"><span class="titlemark">10.6 </span> <a
|
||||
id="x15-14100010.6"></a>clone — clone current preconditioner</h4>
|
||||
id="x16-14200010.6"></a>clone — clone current preconditioner</h4>
|
||||
|
||||
|
||||
|
||||
<pre class="verbatim" id="verbatim-101">
|
||||
call  prec%clone(precout,info)
|
||||
</pre>
|
||||
<!--l. 362--><p class="nopar" >
|
||||
<!--l. 364--><p class="indent" >
|
||||
<!--l. 363--><p class="nopar" >
|
||||
<!--l. 365--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<!--l. 365--><p class="noindent" >
|
||||
<!--l. 366--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">Type:</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 365--><p class="noindent" >Asynchronous.
|
||||
</dd><dt class="description">
|
||||
<!--l. 366--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 366--><p class="noindent" >
|
||||
<!--l. 366--><p class="noindent" >Asynchronous.
|
||||
</dd><dt class="description">
|
||||
<!--l. 367--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 367--><p class="noindent" >
|
||||
</dd><dt class="description">
|
||||
<!--l. 368--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">prec</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 367--><p class="noindent" >the preconditioner.<br
|
||||
<!--l. 368--><p class="noindent" >the preconditioner.<br
|
||||
class="newline" />Scope: <span
|
||||
class="pplb7t-">local</span>.<br
|
||||
class="newline" /></dd></dl>
|
||||
<!--l. 374--><p class="indent" >
|
||||
<!--l. 375--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<!--l. 375--><p class="noindent" >
|
||||
<!--l. 376--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">On Return</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 375--><p class="noindent" >
|
||||
</dd><dt class="description">
|
||||
<!--l. 376--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">precout</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 376--><p class="noindent" >A copy of the input object.
|
||||
</dd><dt class="description">
|
||||
<!--l. 377--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">precout</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 377--><p class="noindent" >A copy of the input object.
|
||||
</dd><dt class="description">
|
||||
<!--l. 378--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">info</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 377--><p class="noindent" >Return code.</dd></dl>
|
||||
<!--l. 378--><p class="noindent" >Return code.</dd></dl>
|
||||
|
||||
|
||||
|
||||
<h4 class="subsectionHead"><span class="titlemark">10.7 </span> <a
|
||||
id="x15-14200010.7"></a>free — Free a preconditioner</h4>
|
||||
id="x16-14300010.7"></a>free — Free a preconditioner</h4>
|
||||
|
||||
|
||||
|
||||
<pre class="verbatim" id="verbatim-102">
|
||||
call prec%free(info)
|
||||
</pre>
|
||||
<!--l. 385--><p class="nopar" >
|
||||
<!--l. 387--><p class="indent" >
|
||||
<!--l. 386--><p class="nopar" >
|
||||
<!--l. 388--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<!--l. 388--><p class="noindent" >
|
||||
<!--l. 389--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">Type:</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 388--><p class="noindent" >Asynchronous.
|
||||
</dd><dt class="description">
|
||||
<!--l. 389--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 389--><p class="noindent" >
|
||||
<!--l. 389--><p class="noindent" >Asynchronous.
|
||||
</dd><dt class="description">
|
||||
<!--l. 390--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 390--><p class="noindent" >
|
||||
</dd><dt class="description">
|
||||
<!--l. 391--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">prec</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 390--><p class="noindent" >the preconditioner.<br
|
||||
<!--l. 391--><p class="noindent" >the preconditioner.<br
|
||||
class="newline" />Scope: <span
|
||||
class="pplb7t-">local</span>.<br
|
||||
class="newline" />Type: <span
|
||||
@@ -972,17 +973,17 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_Tprec</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<!--l. 403--><p class="noindent" >
|
||||
<!--l. 404--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">On Exit</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 403--><p class="noindent" >
|
||||
<!--l. 404--><p class="noindent" >
|
||||
</dd><dt class="description">
|
||||
<!--l. 405--><p class="noindent" >
|
||||
<!--l. 406--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">prec</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 405--><p class="noindent" >Scope: <span
|
||||
<!--l. 406--><p class="noindent" >Scope: <span
|
||||
class="pplb7t-">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="pplb7t-">required</span><br
|
||||
@@ -994,50 +995,50 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_Tprec</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<!--l. 410--><p class="noindent" >
|
||||
<!--l. 411--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">info</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 410--><p class="noindent" >Scope: <span
|
||||
<!--l. 411--><p class="noindent" >Scope: <span
|
||||
class="pplb7t-">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="pplb7t-">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="pplb7t-">out</span>.<br
|
||||
class="newline" />Error code: if no error, 0 is returned.</dd></dl>
|
||||
<!--l. 416--><p class="noindent" ><span
|
||||
<!--l. 417--><p class="noindent" ><span
|
||||
class="pplb7t-x-x-120">Notes </span>Releases all internal storage.
|
||||
|
||||
|
||||
|
||||
<h4 class="subsectionHead"><span class="titlemark">10.8 </span> <a
|
||||
id="x15-14300010.8"></a>allocate_wrk — preconditioner</h4>
|
||||
id="x16-14400010.8"></a>allocate_wrk — preconditioner</h4>
|
||||
|
||||
|
||||
|
||||
<pre class="verbatim" id="verbatim-103">
|
||||
call prec%allocate_wrk(info[,vmold])
|
||||
</pre>
|
||||
<!--l. 428--><p class="nopar" >
|
||||
<!--l. 430--><p class="indent" >
|
||||
<!--l. 429--><p class="nopar" >
|
||||
<!--l. 431--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<!--l. 431--><p class="noindent" >
|
||||
<!--l. 432--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">Type:</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 431--><p class="noindent" >Synchronous.
|
||||
</dd><dt class="description">
|
||||
<!--l. 432--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 432--><p class="noindent" >
|
||||
<!--l. 432--><p class="noindent" >Synchronous.
|
||||
</dd><dt class="description">
|
||||
<!--l. 433--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 433--><p class="noindent" >
|
||||
</dd><dt class="description">
|
||||
<!--l. 434--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">prec</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 433--><p class="noindent" >the preconditioner.<br
|
||||
<!--l. 434--><p class="noindent" >the preconditioner.<br
|
||||
class="newline" />Scope: <span
|
||||
class="pplb7t-">local</span>.<br
|
||||
class="newline" />Type: <span
|
||||
@@ -1050,11 +1051,11 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_Tprec</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<!--l. 438--><p class="noindent" >
|
||||
<!--l. 439--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">vmold</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 438--><p class="noindent" >The desired dynamic type for the internal vector storage.<br
|
||||
<!--l. 439--><p class="noindent" >The desired dynamic type for the internal vector storage.<br
|
||||
class="newline" />Scope: <span
|
||||
class="pplb7t-">local</span>.<br
|
||||
class="newline" />Type: <span
|
||||
@@ -1069,17 +1070,17 @@ class="cmtt-10">_base</span><span
|
||||
class="cmtt-10">_vect</span><span
|
||||
class="cmtt-10">_type</span>.
|
||||
</dd><dt class="description">
|
||||
<!--l. 443--><p class="noindent" >
|
||||
<!--l. 444--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">On Exit</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 443--><p class="noindent" >
|
||||
<!--l. 444--><p class="noindent" >
|
||||
</dd><dt class="description">
|
||||
<!--l. 445--><p class="noindent" >
|
||||
<!--l. 446--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">prec</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 445--><p class="noindent" >Scope: <span
|
||||
<!--l. 446--><p class="noindent" >Scope: <span
|
||||
class="pplb7t-">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="pplb7t-">required</span><br
|
||||
@@ -1094,37 +1095,37 @@ class="cmtt-10">_type</span></a>.
|
||||
|
||||
|
||||
</dd><dt class="description">
|
||||
<!--l. 450--><p class="noindent" >
|
||||
<!--l. 451--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">info</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 450--><p class="noindent" >Scope: <span
|
||||
<!--l. 451--><p class="noindent" >Scope: <span
|
||||
class="pplb7t-">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="pplb7t-">required</span><br
|
||||
class="newline" />Intent: <span
|
||||
class="pplb7t-">out</span>.<br
|
||||
class="newline" />Error code: if no error, 0 is returned.</dd></dl>
|
||||
<!--l. 456--><p class="noindent" ><span
|
||||
<!--l. 457--><p class="noindent" ><span
|
||||
class="pplb7t-x-x-120">Notes </span>Preconditioners often need internal work storage during their application at
|
||||
each iteration of a linear solver method: in many situations this can be accomplished
|
||||
by allocating and releasing memory “on the fly”. However, when running on an
|
||||
accelerator through e.g. the CUDA enabled data strutures of Sec. <a
|
||||
href="userhtmlse12.html#x19-15600012.4">12.4<!--tex4ht:ref: sec:cudastruct --></a> and  <a
|
||||
href="userhtmlse13.html#x20-15700013">13<!--tex4ht:ref: sec:cudaenv --></a>,
|
||||
href="userhtmlse12.html#x20-15700012.4">12.4<!--tex4ht:ref: sec:cudastruct --></a> and  <a
|
||||
href="userhtmlse13.html#x21-15800013">13<!--tex4ht:ref: sec:cudaenv --></a>,
|
||||
memory allocation and deallocation usually have a much larger overhead,
|
||||
significantly affecting performance. To alleviate this problem we define this method
|
||||
that preallocates internal storage; it is intended to be invoked prior to the iterative
|
||||
solver method, so that the necessary internal work storage is available throughout
|
||||
the iterative method application.
|
||||
<!--l. 473--><p class="indent" > When using GPUs or other specialized devices, the <code class="lstinline"><span style="color:#000000">vmold</span></code> argument is also
|
||||
<!--l. 474--><p class="indent" > When using GPUs or other specialized devices, the <code class="lstinline"><span style="color:#000000">vmold</span></code> argument is also
|
||||
necessary to ensure the internal work vectors are of the appropriate dynamic type to
|
||||
exploit the accelerator hardware.
|
||||
|
||||
|
||||
|
||||
<h4 class="subsectionHead"><span class="titlemark">10.9 </span> <a
|
||||
id="x15-14400010.9"></a>deallocate_wrk — preconditioner</h4>
|
||||
id="x16-14500010.9"></a>deallocate_wrk — preconditioner</h4>
|
||||
|
||||
|
||||
|
||||
@@ -1132,26 +1133,26 @@ exploit the accelerator hardware.
|
||||
call prec%allocate_wrk(info)
|
||||
call prec%free_wrk(info)
|
||||
</pre>
|
||||
<!--l. 483--><p class="nopar" >
|
||||
<!--l. 485--><p class="indent" >
|
||||
<!--l. 484--><p class="nopar" >
|
||||
<!--l. 486--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<!--l. 486--><p class="noindent" >
|
||||
<!--l. 487--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">Type:</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 486--><p class="noindent" >Synchronous.
|
||||
</dd><dt class="description">
|
||||
<!--l. 487--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 487--><p class="noindent" >
|
||||
<!--l. 487--><p class="noindent" >Synchronous.
|
||||
</dd><dt class="description">
|
||||
<!--l. 488--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">On Entry</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 488--><p class="noindent" >
|
||||
</dd><dt class="description">
|
||||
<!--l. 489--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">prec</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 488--><p class="noindent" >the preconditioner.<br
|
||||
<!--l. 489--><p class="noindent" >the preconditioner.<br
|
||||
class="newline" />Scope: <span
|
||||
class="pplb7t-">local</span>.<br
|
||||
class="newline" />Type: <span
|
||||
@@ -1164,17 +1165,17 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_Tprec</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<!--l. 493--><p class="noindent" >
|
||||
<!--l. 494--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">On Exit</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 493--><p class="noindent" >
|
||||
<!--l. 494--><p class="noindent" >
|
||||
</dd><dt class="description">
|
||||
<!--l. 495--><p class="noindent" >
|
||||
<!--l. 496--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">prec</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 495--><p class="noindent" >Scope: <span
|
||||
<!--l. 496--><p class="noindent" >Scope: <span
|
||||
class="pplb7t-">local </span><br
|
||||
class="newline" />Type: <span
|
||||
class="pplb7t-">required</span><br
|
||||
@@ -1186,11 +1187,11 @@ class="cmtt-10">psb</span><span
|
||||
class="cmtt-10">_Tprec</span><span
|
||||
class="cmtt-10">_type</span></a>.
|
||||
</dd><dt class="description">
|
||||
<!--l. 500--><p class="noindent" >
|
||||
<!--l. 501--><p class="noindent" >
|
||||
<span
|
||||
class="pplb7t-">info</span> </dt><dd
|
||||
class="description">
|
||||
<!--l. 500--><p class="noindent" >Scope: <span
|
||||
<!--l. 501--><p class="noindent" >Scope: <span
|
||||
class="pplb7t-">global </span><br
|
||||
class="newline" />Type: <span
|
||||
class="pplb7t-">required</span><br
|
||||
@@ -1200,10 +1201,10 @@ class="newline" />Error code: if no error, 0 is returned.</dd></dl>
|
||||
|
||||
|
||||
|
||||
<!--l. 506--><p class="noindent" ><span
|
||||
<!--l. 507--><p class="noindent" ><span
|
||||
class="pplb7t-x-x-120">Notes </span>Deallocates preconditioner internal work storage; to be invoked after an
|
||||
iterative solver has completed execution, see the discussion in Sec. <a
|
||||
href="#x15-14300010.8">10.8<!--tex4ht:ref: sec:allocatewrk --></a>.
|
||||
href="#x16-14400010.8">10.8<!--tex4ht:ref: sec:allocatewrk --></a>.
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user