Doc fixes

openacc
Salvatore Filippone 3 months ago
parent 9c4f4c4d15
commit 7187575915

@ -1,7 +1,7 @@
all: guide all: guide
guide: guide:
cd src && $(MAKE) cd src && $(MAKE) clean all
doxy: doxy:
doxygen doxypsb doxygen doxypsb

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 52 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 58 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 61 KiB

@ -52,13 +52,13 @@ href="userhtmlse9.html#x14-1280009" id="QQ2-14-158">Utilities</a></span>
<br /> &#x00A0;<span class="sectionToc" >10 <a <br /> &#x00A0;<span class="sectionToc" >10 <a
href="userhtmlse10.html#x15-13500010" id="QQ2-15-165">Preconditioner routines</a></span> href="userhtmlse10.html#x15-13500010" id="QQ2-15-165">Preconditioner routines</a></span>
<br /> &#x00A0;<span class="sectionToc" >11 <a <br /> &#x00A0;<span class="sectionToc" >11 <a
href="userhtmlse11.html#x17-14300011" id="QQ2-17-175">Iterative Methods</a></span> href="userhtmlse11.html#x17-14300011" id="QQ2-17-174">Iterative Methods</a></span>
<br /> &#x00A0;<span class="sectionToc" >12 <a <br /> &#x00A0;<span class="sectionToc" >12 <a
href="userhtmlse12.html#x19-14600012" id="QQ2-19-178">Extensions</a></span> href="userhtmlse12.html#x19-14600012" id="QQ2-19-177">Extensions</a></span>
<br /> &#x00A0;<span class="sectionToc" >13 <a <br /> &#x00A0;<span class="sectionToc" >13 <a
href="userhtmlse13.html#x20-15500013" id="QQ2-20-193">CUDA Environment Routines</a></span> href="userhtmlse13.html#x20-15500013" id="QQ2-20-192">CUDA Environment Routines</a></span>
<br /> &#x00A0;<span class="likesectionToc" ><a <br /> &#x00A0;<span class="likesectionToc" ><a
href="userhtmlli2.html#x21-170000" id="QQ2-21-222">References</a></span> href="userhtmlli2.html#x21-170000" id="QQ2-21-221">References</a></span>
</div> </div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 90 KiB

@ -3,7 +3,6 @@
.pplb7t-x-x-172{font-size:172%;font-weight: bold;} .pplb7t-x-x-172{font-size:172%;font-weight: bold;}
.pplb7t-x-x-172{font-weight: bold;} .pplb7t-x-x-172{font-weight: bold;}
.pplb7t-x-x-172{font-weight: bold;} .pplb7t-x-x-172{font-weight: bold;}
.pplb7t-x-x-172{font-weight: bold;}
.pplri7t-{font-style: italic;} .pplri7t-{font-style: italic;}
.pplri7t-{font-style: italic;} .pplri7t-{font-style: italic;}
.pplri7t-x-x-120{font-size:120%;font-style: italic;} .pplri7t-x-x-120{font-size:120%;font-style: italic;}
@ -11,7 +10,6 @@
.pplb7t-{font-weight: bold;} .pplb7t-{font-weight: bold;}
.pplb7t-{font-weight: bold;} .pplb7t-{font-weight: bold;}
.pplb7t-{font-weight: bold;} .pplb7t-{font-weight: bold;}
.pplb7t-{font-weight: bold;}
.cmtt-10{font-family: monospace,monospace;} .cmtt-10{font-family: monospace,monospace;}
.cmtt-10{font-family: monospace,monospace;} .cmtt-10{font-family: monospace,monospace;}
.cmtt-10{font-family: monospace,monospace;} .cmtt-10{font-family: monospace,monospace;}
@ -38,7 +36,6 @@
.pplb7t-x-x-120{font-size:120%;font-weight: bold;} .pplb7t-x-x-120{font-size:120%;font-weight: bold;}
.pplb7t-x-x-120{font-weight: bold;} .pplb7t-x-x-120{font-weight: bold;}
.pplb7t-x-x-120{font-weight: bold;} .pplb7t-x-x-120{font-weight: bold;}
.pplb7t-x-x-120{font-weight: bold;}
.cmtt-8{font-size:80%;font-family: monospace,monospace;} .cmtt-8{font-size:80%;font-family: monospace,monospace;}
.cmtt-8{font-family: monospace,monospace;} .cmtt-8{font-family: monospace,monospace;}
.cmtt-8{font-family: monospace,monospace;} .cmtt-8{font-family: monospace,monospace;}
@ -59,10 +56,6 @@
.zplmr7m-x-x-80{font-style: italic;} .zplmr7m-x-x-80{font-style: italic;}
.zplmr7t-x-x-80{font-size:80%;} .zplmr7t-x-x-80{font-size:80%;}
.pplrc7t-x-x-90{font-size:90%;} .pplrc7t-x-x-90{font-size:90%;}
.pplb7t-x-x-90{font-size:90%;font-weight: bold;}
.pplb7t-x-x-90{font-weight: bold;}
.pplb7t-x-x-90{font-weight: bold;}
.pplb7t-x-x-90{font-weight: bold;}
.small-caps{font-variant: small-caps; } .small-caps{font-variant: small-caps; }
p{margin-top:0;margin-bottom:0} p{margin-top:0;margin-bottom:0}
p.indent{text-indent:0;} p.indent{text-indent:0;}
@ -200,11 +193,5 @@ pre.lstinputlisting{ font-family: monospace,monospace; white-space: pre-wrap; }
#TBL-24-3{border-right:1px solid black;} #TBL-24-3{border-right:1px solid black;}
#TBL-24-4{border-right:1px solid black;} #TBL-24-4{border-right:1px solid black;}
#TBL-24-5{border-right:1px solid black;} #TBL-24-5{border-right:1px solid black;}
#TBL-25-1{border-left: 1px solid black;}
#TBL-25-1{border-right:1px solid black;}
#TBL-25-2{border-right:1px solid black;}
#TBL-25-3{border-right:1px solid black;}
#TBL-25-4{border-right:1px solid black;}
#TBL-25-5{border-right:1px solid black;}
/* end css.sty */ /* end css.sty */

@ -52,13 +52,13 @@ href="userhtmlse9.html#x14-1280009" id="QQ2-14-158">Utilities</a></span>
<br /> &#x00A0;<span class="sectionToc" >10 <a <br /> &#x00A0;<span class="sectionToc" >10 <a
href="userhtmlse10.html#x15-13500010" id="QQ2-15-165">Preconditioner routines</a></span> href="userhtmlse10.html#x15-13500010" id="QQ2-15-165">Preconditioner routines</a></span>
<br /> &#x00A0;<span class="sectionToc" >11 <a <br /> &#x00A0;<span class="sectionToc" >11 <a
href="userhtmlse11.html#x17-14300011" id="QQ2-17-175">Iterative Methods</a></span> href="userhtmlse11.html#x17-14300011" id="QQ2-17-174">Iterative Methods</a></span>
<br /> &#x00A0;<span class="sectionToc" >12 <a <br /> &#x00A0;<span class="sectionToc" >12 <a
href="userhtmlse12.html#x19-14600012" id="QQ2-19-178">Extensions</a></span> href="userhtmlse12.html#x19-14600012" id="QQ2-19-177">Extensions</a></span>
<br /> &#x00A0;<span class="sectionToc" >13 <a <br /> &#x00A0;<span class="sectionToc" >13 <a
href="userhtmlse13.html#x20-15500013" id="QQ2-20-193">CUDA Environment Routines</a></span> href="userhtmlse13.html#x20-15500013" id="QQ2-20-192">CUDA Environment Routines</a></span>
<br /> &#x00A0;<span class="likesectionToc" ><a <br /> &#x00A0;<span class="likesectionToc" ><a
href="userhtmlli2.html#x21-170000" id="QQ2-21-222">References</a></span> href="userhtmlli2.html#x21-170000" id="QQ2-21-221">References</a></span>
</div> </div>

@ -299,61 +299,61 @@ href="userhtmlse10.html#x15-13600010.1" id="QQ2-15-166">init &#8212; Initialize
<br /> &#x00A0;&#x00A0;<span class="subsectionToc" >10.2 <a <br /> &#x00A0;&#x00A0;<span class="subsectionToc" >10.2 <a
href="userhtmlse10.html#x15-13700010.2" id="QQ2-15-167">Set &#8212; set preconditioner parameters</a></span> href="userhtmlse10.html#x15-13700010.2" id="QQ2-15-167">Set &#8212; set preconditioner parameters</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsectionToc" >10.3 <a <br /> &#x00A0;&#x00A0;<span class="subsectionToc" >10.3 <a
href="userhtmlse10.html#x15-13800010.3" id="QQ2-15-170">build &#8212; Builds a preconditioner</a></span> href="userhtmlse10.html#x15-13800010.3" id="QQ2-15-169">build &#8212; Builds a preconditioner</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsectionToc" >10.4 <a <br /> &#x00A0;&#x00A0;<span class="subsectionToc" >10.4 <a
href="userhtmlse10.html#x15-13900010.4" id="QQ2-15-171">apply &#8212; Preconditioner application routine</a></span> href="userhtmlse10.html#x15-13900010.4" id="QQ2-15-170">apply &#8212; Preconditioner application routine</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsectionToc" >10.5 <a <br /> &#x00A0;&#x00A0;<span class="subsectionToc" >10.5 <a
href="userhtmlse10.html#x15-14000010.5" id="QQ2-15-172">descr &#8212; Prints a description of current preconditioner</a></span> href="userhtmlse10.html#x15-14000010.5" id="QQ2-15-171">descr &#8212; Prints a description of current preconditioner</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsectionToc" >10.6 <a <br /> &#x00A0;&#x00A0;<span class="subsectionToc" >10.6 <a
href="userhtmlse10.html#x15-14100010.6" id="QQ2-15-173">clone &#8212; clone current preconditioner</a></span> href="userhtmlse10.html#x15-14100010.6" id="QQ2-15-172">clone &#8212; clone current preconditioner</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsectionToc" >10.7 <a <br /> &#x00A0;&#x00A0;<span class="subsectionToc" >10.7 <a
href="userhtmlse10.html#x15-14200010.7" id="QQ2-15-174">free &#8212; Free a preconditioner</a></span> href="userhtmlse10.html#x15-14200010.7" id="QQ2-15-173">free &#8212; Free a preconditioner</a></span>
<br /> &#x00A0;<span class="sectionToc" >11 <a <br /> &#x00A0;<span class="sectionToc" >11 <a
href="userhtmlse11.html#x17-14300011">Iterative Methods</a></span> href="userhtmlse11.html#x17-14300011">Iterative Methods</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsectionToc" >11.1 <a <br /> &#x00A0;&#x00A0;<span class="subsectionToc" >11.1 <a
href="userhtmlse11.html#x17-14400011.1" id="QQ2-17-176">psb_krylov &#8212; Krylov Methods Driver Routine</a></span> href="userhtmlse11.html#x17-14400011.1" id="QQ2-17-175">psb_krylov &#8212; Krylov Methods Driver Routine</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsectionToc" >11.2 <a <br /> &#x00A0;&#x00A0;<span class="subsectionToc" >11.2 <a
href="userhtmlse11.html#x17-14500011.2" id="QQ2-17-177">psb_richardson &#8212; Richardson Iteration Driver Routine</a></span> href="userhtmlse11.html#x17-14500011.2" id="QQ2-17-176">psb_richardson &#8212; Richardson Iteration Driver Routine</a></span>
<br /> &#x00A0;<span class="sectionToc" >12 <a <br /> &#x00A0;<span class="sectionToc" >12 <a
href="userhtmlse12.html#x19-14600012">Extensions</a></span> href="userhtmlse12.html#x19-14600012">Extensions</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsectionToc" >12.1 <a <br /> &#x00A0;&#x00A0;<span class="subsectionToc" >12.1 <a
href="userhtmlse12.html#x19-14700012.1" id="QQ2-19-179">Using the extensions</a></span> href="userhtmlse12.html#x19-14700012.1" id="QQ2-19-178">Using the extensions</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsectionToc" >12.2 <a <br /> &#x00A0;&#x00A0;<span class="subsectionToc" >12.2 <a
href="userhtmlse12.html#x19-14800012.2" id="QQ2-19-180">Extensions&#8217; Data Structures</a></span> href="userhtmlse12.html#x19-14800012.2" id="QQ2-19-179">Extensions&#8217; Data Structures</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsectionToc" >12.3 <a <br /> &#x00A0;&#x00A0;<span class="subsectionToc" >12.3 <a
href="userhtmlse12.html#x19-14900012.3" id="QQ2-19-183">CPU-class extensions</a></span> href="userhtmlse12.html#x19-14900012.3" id="QQ2-19-182">CPU-class extensions</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsectionToc" >12.4 <a <br /> &#x00A0;&#x00A0;<span class="subsectionToc" >12.4 <a
href="userhtmlse12.html#x19-15400012.4" id="QQ2-19-192">CUDA-class extensions</a></span> href="userhtmlse12.html#x19-15400012.4" id="QQ2-19-191">CUDA-class extensions</a></span>
<br /> &#x00A0;<span class="sectionToc" >13 <a <br /> &#x00A0;<span class="sectionToc" >13 <a
href="userhtmlse13.html#x20-15500013">CUDA Environment Routines</a></span> href="userhtmlse13.html#x20-15500013">CUDA Environment Routines</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a <br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a
href="userhtmlse13.html#Q1-20-195">psb_cuda_init</a></span> href="userhtmlse13.html#Q1-20-194">psb_cuda_init</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a <br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a
href="userhtmlse13.html#Q1-20-197">psb_cuda_exit</a></span> href="userhtmlse13.html#Q1-20-196">psb_cuda_exit</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a <br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a
href="userhtmlse13.html#Q1-20-199">psb_cuda_DeviceSync</a></span> href="userhtmlse13.html#Q1-20-198">psb_cuda_DeviceSync</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a <br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a
href="userhtmlse13.html#Q1-20-201">psb_cuda_getDeviceCount</a></span> href="userhtmlse13.html#Q1-20-200">psb_cuda_getDeviceCount</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a <br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a
href="userhtmlse13.html#Q1-20-203">psb_cuda_getDevice</a></span> href="userhtmlse13.html#Q1-20-202">psb_cuda_getDevice</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a <br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a
href="userhtmlse13.html#Q1-20-205">psb_cuda_setDevice</a></span> href="userhtmlse13.html#Q1-20-204">psb_cuda_setDevice</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a <br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a
href="userhtmlse13.html#Q1-20-207">psb_cuda_DeviceHasUVA</a></span> href="userhtmlse13.html#Q1-20-206">psb_cuda_DeviceHasUVA</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a <br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a
href="userhtmlse13.html#Q1-20-209">psb_cuda_WarpSize</a></span> href="userhtmlse13.html#Q1-20-208">psb_cuda_WarpSize</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a <br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a
href="userhtmlse13.html#Q1-20-211">psb_cuda_MultiProcessors</a></span> href="userhtmlse13.html#Q1-20-210">psb_cuda_MultiProcessors</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a <br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a
href="userhtmlse13.html#Q1-20-213">psb_cuda_MaxThreadsPerMP</a></span> href="userhtmlse13.html#Q1-20-212">psb_cuda_MaxThreadsPerMP</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a <br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a
href="userhtmlse13.html#Q1-20-215">psb_cuda_MaxRegisterPerBlock</a></span> href="userhtmlse13.html#Q1-20-214">psb_cuda_MaxRegisterPerBlock</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a <br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a
href="userhtmlse13.html#Q1-20-217">psb_cuda_MemoryClockRate</a></span> href="userhtmlse13.html#Q1-20-216">psb_cuda_MemoryClockRate</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a <br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a
href="userhtmlse13.html#Q1-20-219">psb_cuda_MemoryBusWidth</a></span> href="userhtmlse13.html#Q1-20-218">psb_cuda_MemoryBusWidth</a></span>
<br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a <br /> &#x00A0;&#x00A0;<span class="subsectionToc" ><a
href="userhtmlse13.html#Q1-20-221">psb_cuda_MemoryPeakBandwidth</a></span> href="userhtmlse13.html#Q1-20-220">psb_cuda_MemoryPeakBandwidth</a></span>
</div> </div>

@ -31,44 +31,52 @@ class="pplri7t-">for Forest Fires</span>, in J.&#x00A0;Dongarra, K.&#x
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
[2]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a [2]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a
id="XBERTACCINIFILIPPONE"></a>D. Bertaccini&#x00A0;and&#x00A0;S. Filippone, <span
class="pplri7t-">Sparse approximate</span>
<span
class="pplri7t-">inverse preconditioners on high performance GPU platforms</span>, Comput. Math.
Appl., 71, (2016), no.&#x00A0;3, 693&#8211;711.
</p>
<p class="bibitem" ><span class="biblabel">
[3]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a
id="X2007d"></a>A. Buttari, D. di Serafino, P. D&#8217;Ambra, S. Filippone, 2LEV-D2P4: id="X2007d"></a>A. Buttari, D. di Serafino, P. D&#8217;Ambra, S. Filippone, 2LEV-D2P4:
a package of high-performance preconditioners, Applicable Algebra in a package of high-performance preconditioners, Applicable Algebra in
Engineering, Communications and Computing, Volume 18, Number 3, Engineering, Communications and Computing, Volume 18, Number 3,
May, 2007, pp. 223-239 May, 2007, pp. 223-239
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
[3]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a [4]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a
id="X2007c"></a>P. D&#8217;Ambra, S. Filippone, D. Di Serafino On the Development of id="X2007c"></a>P. D&#8217;Ambra, S. Filippone, D. Di Serafino On the Development of
PSBLAS-based Parallel Two-level Schwarz Preconditioners Applied PSBLAS-based Parallel Two-level Schwarz Preconditioners Applied
Numerical Mathematics, Elsevier Science, Volume 57, Issues 11-12, Numerical Mathematics, Elsevier Science, Volume 57, Issues 11-12,
November-December 2007, Pages 1181-1196. November-December 2007, Pages 1181-1196.
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
[4]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a [5]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a
id="XBLAS2"></a>Dongarra, J. J., DuCroz, J., Hammarling, S. and Hanson, R., An id="XBLAS2"></a>Dongarra, J. J., DuCroz, J., Hammarling, S. and Hanson, R., An
Extended Set of Fortran Basic Linear Algebra Subprograms, ACM Trans. Extended Set of Fortran Basic Linear Algebra Subprograms, ACM Trans.
Math. Softw. vol.&#x00A0;14, 1&#8211;17, 1988. Math. Softw. vol.&#x00A0;14, 1&#8211;17, 1988.
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
[5]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a [6]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a
id="XBLAS3"></a>Dongarra, J., DuCroz, J., Hammarling, S. and Duff, I., A Set of level id="XBLAS3"></a>Dongarra, J., DuCroz, J., Hammarling, S. and Duff, I., A Set of level
3 Basic Linear Algebra Subprograms, ACM Trans. Math. Softw. vol.&#x00A0;16, 3 Basic Linear Algebra Subprograms, ACM Trans. Math. Softw. vol.&#x00A0;16,
1&#8211;17, 1990. 1&#8211;17, 1990.
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
[6]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a [7]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a
id="XBLACS"></a>J.&#x00A0;J.&#x00A0;Dongarra and R.&#x00A0;C.&#x00A0;Whaley, <span id="XBLACS"></a>J.&#x00A0;J.&#x00A0;Dongarra and R.&#x00A0;C.&#x00A0;Whaley, <span
class="pplri7t-">A User&#8217;s Guide to the BLACS</span> class="pplri7t-">A User&#8217;s Guide to the BLACS</span>
<span <span
class="pplri7t-">v.</span><span class="pplri7t-">v.</span><span
class="pplri7t-">&#x00A0;1.1</span>, Lapack Working Note 94, Tech.&#x00A0;Rep.&#x00A0;UT-CS-95-281, University of class="pplri7t-">&#x00A0;1.1</span>, Lapack Working Note 94, Tech.&#x00A0;Rep.&#x00A0;UT-CS-95-281, University of
Tennessee, March 1995 (updated May 1997). Tennessee, March 1995 (updated May 1997).
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
[7]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a [8]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a
id="Xsblas97"></a>I.&#x00A0;Duff, M.&#x00A0;Marrone, G.&#x00A0;Radicati and C.&#x00A0;Vittoli, <span id="Xsblas97"></a>I.&#x00A0;Duff, M.&#x00A0;Marrone, G.&#x00A0;Radicati and C.&#x00A0;Vittoli, <span
class="pplri7t-">Level 3 Basic Linear</span> class="pplri7t-">Level 3 Basic Linear</span>
<span <span
@ -76,7 +84,7 @@ class="pplri7t-">Algebra Subprograms for Sparse Matrices: a User Level I
Transactions on Mathematical Software, 23(3), pp.&#x00A0;379&#8211;401, 1997. Transactions on Mathematical Software, 23(3), pp.&#x00A0;379&#8211;401, 1997.
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
[8]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a [9]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a
id="Xsblas02"></a>I.&#x00A0;Duff, M.&#x00A0;Heroux and R.&#x00A0;Pozo, <span id="Xsblas02"></a>I.&#x00A0;Duff, M.&#x00A0;Heroux and R.&#x00A0;Pozo, <span
class="pplri7t-">An Overview of the Sparse Basic Linear</span> class="pplri7t-">An Overview of the Sparse Basic Linear</span>
<span <span
@ -84,7 +92,7 @@ class="pplri7t-">Algebra Subprograms: the New Standard from the BLAS Technical F
Transactions on Mathematical Software, 28(2), pp.&#x00A0;239&#8211;267, 2002. Transactions on Mathematical Software, 28(2), pp.&#x00A0;239&#8211;267, 2002.
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
[9]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a [10]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a
id="XPSBLAS"></a>S.&#x00A0;Filippone and M.&#x00A0;Colajanni, <span id="XPSBLAS"></a>S.&#x00A0;Filippone and M.&#x00A0;Colajanni, <span
class="pplri7t-">PSBLAS: A Library for Parallel</span> class="pplri7t-">PSBLAS: A Library for Parallel</span>
<span <span
@ -92,7 +100,7 @@ class="pplri7t-">Linear Algebra Computation on Sparse Matrices</span>,
Mathematical Software, 26(4), pp.&#x00A0;527&#8211;550, 2000. Mathematical Software, 26(4), pp.&#x00A0;527&#8211;550, 2000.
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
[10]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a [11]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a
id="XSparse03"></a>S.&#x00A0;Filippone and A.&#x00A0;Buttari, <span id="XSparse03"></a>S.&#x00A0;Filippone and A.&#x00A0;Buttari, <span
class="pplri7t-">Object-Oriented Techniques for Sparse</span> class="pplri7t-">Object-Oriented Techniques for Sparse</span>
<span <span
@ -100,7 +108,7 @@ class="pplri7t-">Matrix Computations in Fortran 2003</span>, ACM Transactions o
Software, 38(4), 2012. Software, 38(4), 2012.
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
[11]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a [12]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a
id="XKIVA3PSBLAS"></a>S.&#x00A0;Filippone, P.&#x00A0;D&#8217;Ambra, M.&#x00A0;Colajanni, <span id="XKIVA3PSBLAS"></a>S.&#x00A0;Filippone, P.&#x00A0;D&#8217;Ambra, M.&#x00A0;Colajanni, <span
class="pplri7t-">Using a Parallel Library of</span> class="pplri7t-">Using a Parallel Library of</span>
<span <span
@ -111,14 +119,14 @@ class="pplri7t-">Clusters</span>, in G.&#x00A0;Joubert, A.&#x00A0;Murli,
College Press, 2002. College Press, 2002.
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
[12]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a [13]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a
id="XDesignPatterns"></a> Gamma, E., Helm, R., Johnson, R., and Vlissides, J. 1995. <span id="XDesignPatterns"></a> Gamma, E., Helm, R., Johnson, R., and Vlissides, J. 1995. <span
class="pplri7t-">Design</span> class="pplri7t-">Design</span>
<span <span
class="pplri7t-">Patterns: Elements of Reusable Object-Oriented Software</span>. Addison-Wesley. class="pplri7t-">Patterns: Elements of Reusable Object-Oriented Software</span>. Addison-Wesley.
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
[13]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a [14]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a
id="XMETIS"></a>Karypis, G. and Kumar, V., <span id="XMETIS"></a>Karypis, G. and Kumar, V., <span
class="pplri7t-">METIS: Unstructured Graph Partitioning</span> class="pplri7t-">METIS: Unstructured Graph Partitioning</span>
<span <span
@ -126,18 +134,18 @@ class="pplri7t-">and Sparse Matrix Ordering System</span>. Minneapolis, MN
of Minnesota, Department of Computer Science, 1995. Internet Address: of Minnesota, Department of Computer Science, 1995. Internet Address:
<span class="obeylines-h"><span class="verb"><span <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">http://www.cs.umn.edu/~karypis</span></span></span>. class="cmtt-10">http://www.cs.umn.edu/~karypis</span></span></span>.
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
[14]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a [15]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a
id="XBLAS1"></a>Lawson, C., Hanson, R., Kincaid, D. and Krogh, F., Basic Linear id="XBLAS1"></a>Lawson, C., Hanson, R., Kincaid, D. and Krogh, F., Basic Linear
Algebra Subprograms for Fortran usage, ACM Trans. Math. Softw. vol.&#x00A0;5, Algebra Subprograms for Fortran usage, ACM Trans. Math. Softw. vol.&#x00A0;5,
38&#8211;329, 1979. 38&#8211;329, 1979.
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
[15]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a [16]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a
id="Xmachiels"></a>Machiels, L. and Deville, M. <span id="Xmachiels"></a>Machiels, L. and Deville, M. <span
class="pplri7t-">Fortran 90: An entry to object-oriented</span> class="pplri7t-">Fortran 90: An entry to object-oriented</span>
<span <span
@ -145,31 +153,31 @@ class="pplri7t-">programming for the solution of partial differential equ
Math. Softw. vol.&#x00A0;23, 32&#8211;49. Math. Softw. vol.&#x00A0;23, 32&#8211;49.
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
[16]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a [17]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a
id="Xmetcalf"></a>Metcalf, M., Reid, J. and Cohen, M. <span id="Xmetcalf"></a>Metcalf, M., Reid, J. and Cohen, M. <span
class="pplri7t-">Fortran 95/2003 explained. </span>Oxford class="pplri7t-">Fortran 95/2003 explained. </span>Oxford
University Press, 2004. University Press, 2004.
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
[17]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a [18]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a
id="XMRC:11"></a>Metcalf, M., Reid, J. and Cohen, M. <span id="XMRC:11"></a>Metcalf, M., Reid, J. and Cohen, M. <span
class="pplri7t-">Modern Fortran explained. </span>Oxford class="pplri7t-">Modern Fortran explained. </span>Oxford
University Press, 2011. University Press, 2011.
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
[18]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a [19]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a
id="XRouXiaXu:11"></a>Rouson, D.W.I., Xia, J., Xu, X.: Scientific Software Design: The id="XRouXiaXu:11"></a>Rouson, D.W.I., Xia, J., Xu, X.: Scientific Software Design: The
Object-Oriented Way. Cambridge University Press (2011) Object-Oriented Way. Cambridge University Press (2011)
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
[19]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a [20]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a
id="XMPI1"></a>M.&#x00A0;Snir, S.&#x00A0;Otto, S.&#x00A0;Huss-Lederman, D.&#x00A0;Walker and J.&#x00A0;Dongarra, id="XMPI1"></a>M.&#x00A0;Snir, S.&#x00A0;Otto, S.&#x00A0;Huss-Lederman, D.&#x00A0;Walker and J.&#x00A0;Dongarra,
<span <span
class="pplri7t-">MPI: The Complete Reference. Volume 1 - The MPI Core</span>, second edition, MIT class="pplri7t-">MPI: The Complete Reference. Volume 1 - The MPI Core</span>, second edition, MIT
Press, 1998. Press, 1998.
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
[20]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a [21]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a
id="XDesPat:11"></a>D.&#x00A0;Barbieri, V.&#x00A0;Cardellini, id="XDesPat:11"></a>D.&#x00A0;Barbieri, V.&#x00A0;Cardellini,
S.&#x00A0;Filippone and D.&#x00A0;Rouson <span S.&#x00A0;Filippone and D.&#x00A0;Rouson <span
class="pplri7t-">Design Patterns for Scientific Computations</span> class="pplri7t-">Design Patterns for Scientific Computations</span>
@ -179,7 +187,7 @@ class="pplri7t-">on Sparse Matrices</span>, HPSS 2011, Algorithms and Pro
2011 2011
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
[21]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a [22]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a
id="XCaFiRo:2014"></a> Cardellini, V., Filippone, S., and Rouson, D. 2014, Design patterns id="XCaFiRo:2014"></a> Cardellini, V., Filippone, S., and Rouson, D. 2014, Design patterns
for sparse-matrix computations on hybrid CPU/GPU platforms, <span for sparse-matrix computations on hybrid CPU/GPU platforms, <span
class="pplri7t-">Scientific</span> class="pplri7t-">Scientific</span>
@ -187,11 +195,21 @@ class="pplri7t-">Scientific</span>
class="pplri7t-">Programming</span>&#x00A0;<span class="pplri7t-">Programming</span>&#x00A0;<span
class="pplri7t-">22,</span>&#x00A0;1, 1&#8211;19. class="pplri7t-">22,</span>&#x00A0;1, 1&#8211;19.
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
[22]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a [23]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a
id="XOurTechRep"></a>D.&#x00A0;Barbieri, V.&#x00A0;Cardellini, A.&#x00A0;Fanfarillo, S.&#x00A0;Filippone, Three storage id="XOurTechRep"></a>D.&#x00A0;Barbieri, V.&#x00A0;Cardellini, A.&#x00A0;Fanfarillo, S.&#x00A0;Filippone, Three storage
formats for sparse matrices on GPGPUs, Tech. Rep. DICII RR-15.6, formats for sparse matrices on GPGPUs, Tech. Rep. DICII RR-15.6,
Università di Roma Tor Vergata (February 2015). Università di Roma Tor Vergata (February 2015).
</p>
<p class="bibitem" ><span class="biblabel">
[24]<span class="bibsp">&#x00A0;&#x00A0;&#x00A0;</span></span><a
id="XFilippone:2017:SMM:3034774.3017994"></a>S.&#x00A0;Filippone, V.&#x00A0;Cardellini, D.&#x00A0;Barbieri, and A.&#x00A0;Fanfarillo. Sparse
matrix-vector multiplication on GPGPUs. <span
class="pplri7t-">ACM Trans. Math. Softw.</span>,
43(4):30:1&#8211;30:49, 2017.
</p> </p>
</div> </div>

@ -28,35 +28,35 @@ routines for dense matrix operations. The current implementation of PSBLAS
addresses a distributed memory execution model operating with message addresses a distributed memory execution model operating with message
passing. passing.
<!--l. 14--><p class="indent" > The PSBLAS library version 3 is implemented in the Fortran&#x00A0;2003&#x00A0;<span class="cite">[<a <!--l. 14--><p class="indent" > The PSBLAS library version 3 is implemented in the Fortran&#x00A0;2003&#x00A0;<span class="cite">[<a
href="userhtmlli2.html#Xmetcalf">16</a>]</span> href="userhtmlli2.html#Xmetcalf">17</a>]</span>
programming language, with reuse and/or adaptation of existing Fortran&#x00A0;77 and programming language, with reuse and/or adaptation of existing Fortran&#x00A0;77 and
Fortran&#x00A0;95 software, plus a handful of C routines. Fortran&#x00A0;95 software, plus a handful of C routines.
<!--l. 19--><p class="indent" > The use of Fortran&#x00A0;2003 offers a number of advantages over Fortran&#x00A0;95, mostly <!--l. 19--><p class="indent" > The use of Fortran&#x00A0;2003 offers a number of advantages over Fortran&#x00A0;95, mostly
in the handling of requirements for evolution and adaptation of the library to new in the handling of requirements for evolution and adaptation of the library to new
computing architectures and integration of new algorithms. For a detailed computing architectures and integration of new algorithms. For a detailed
discussion of our design see&#x00A0;<span class="cite">[<a discussion of our design see&#x00A0;<span class="cite">[<a
href="userhtmlli2.html#XSparse03">10</a>]</span>; other works discussing advanced programming in href="userhtmlli2.html#XSparse03">11</a>]</span>; other works discussing advanced programming in
Fortran&#x00A0;2003 include&#x00A0;<span class="cite">[<a Fortran&#x00A0;2003 include&#x00A0;<span class="cite">[<a
href="userhtmlli2.html#XDesPat:11">20</a>,&#x00A0;<a href="userhtmlli2.html#XDesPat:11">21</a>,&#x00A0;<a
href="userhtmlli2.html#XRouXiaXu:11">18</a>]</span>; sufficient support for Fortran&#x00A0;2003 is now available href="userhtmlli2.html#XRouXiaXu:11">19</a>]</span>; sufficient support for Fortran&#x00A0;2003 is now available
from many compilers, including the GNU Fortran compiler from the Free Software from many compilers, including the GNU Fortran compiler from the Free Software
Foundation (as of version 4.8). Foundation (as of version 4.8).
<!--l. 30--><p class="indent" > Previous approaches have been based on mixing Fortran&#x00A0;95, with its support for <!--l. 30--><p class="indent" > Previous approaches have been based on mixing Fortran&#x00A0;95, with its support for
object-based design, with other languages; these have been advocated by a number object-based design, with other languages; these have been advocated by a number
of authors, e.g.&#x00A0;<span class="cite">[<a of authors, e.g.&#x00A0;<span class="cite">[<a
href="userhtmlli2.html#Xmachiels">15</a>]</span>. Moreover, the Fortran&#x00A0;95 facilities for dynamic memory href="userhtmlli2.html#Xmachiels">16</a>]</span>. Moreover, the Fortran&#x00A0;95 facilities for dynamic memory
management and interface overloading greatly enhance the usability of the PSBLAS management and interface overloading greatly enhance the usability of the PSBLAS
subroutines. In this way, the library can take care of runtime memory requirements subroutines. In this way, the library can take care of runtime memory requirements
that are quite difficult or even impossible to predict at implementation or that are quite difficult or even impossible to predict at implementation or
compilation time. compilation time.
<!--l. 40--><p class="indent" > The presentation of the PSBLAS library follows the general structure of the <!--l. 40--><p class="indent" > The presentation of the PSBLAS library follows the general structure of the
proposal for serial Sparse BLAS&#x00A0;<span class="cite">[<a proposal for serial Sparse BLAS&#x00A0;<span class="cite">[<a
href="userhtmlli2.html#Xsblas97">7</a>,&#x00A0;<a href="userhtmlli2.html#Xsblas97">8</a>,&#x00A0;<a
href="userhtmlli2.html#Xsblas02">8</a>]</span>, which in its turn is based on the proposal for href="userhtmlli2.html#Xsblas02">9</a>]</span>, which in its turn is based on the proposal for
BLAS on dense matrices&#x00A0;<span class="cite">[<a BLAS on dense matrices&#x00A0;<span class="cite">[<a
href="userhtmlli2.html#XBLAS1">14</a>,&#x00A0;<a href="userhtmlli2.html#XBLAS1">15</a>,&#x00A0;<a
href="userhtmlli2.html#XBLAS2">4</a>,&#x00A0;<a href="userhtmlli2.html#XBLAS2">5</a>,&#x00A0;<a
href="userhtmlli2.html#XBLAS3">5</a>]</span>. href="userhtmlli2.html#XBLAS3">6</a>]</span>.
<!--l. 45--><p class="indent" > The applicability of sparse iterative solvers to many different areas causes <!--l. 45--><p class="indent" > The applicability of sparse iterative solvers to many different areas causes
some terminology problems because the same concept may be denoted some terminology problems because the same concept may be denoted
through different names depending on the application area. The PSBLAS through different names depending on the application area. The PSBLAS

@ -101,7 +101,7 @@ class="pplb7t-">inout</span>.<br
class="newline" />Specified as: a preconditioner data structure <a class="newline" />Specified as: a preconditioner data structure <a
href="userhtmlse3.html#precdata"><span href="userhtmlse3.html#precdata"><span
class="cmtt-10">psb</span><span class="cmtt-10">psb</span><span
class="cmtt-10">_prec</span><span class="cmtt-10">_Tprec</span><span
class="cmtt-10">_type</span></a>. class="cmtt-10">_type</span></a>.
@ -144,14 +144,12 @@ class="zplmr7m-">A</span>;
<span <span
class="pplb7t-">BJAC</span> </dt><dd class="pplb7t-">BJAC</span> </dt><dd
class="description"> class="description">
<!--l. 79--><p class="noindent" >Precondition by a factorization of the block-diagonal of matrix <span <!--l. 79--><p class="noindent" >Precondition by a factorization or an approximante inverse of the
class="zplmr7m-">A</span>, where block-diagonal of matrix <span
block boundaries are determined by the data allocation boundaries class="zplmr7m-">A</span>, where block boundaries are determined
for each process; requires no communication. Only the incomplete by the data allocation boundaries for each process; requires no
factorization <span communication. See also Table-<a
class="zplmr7m-">ILU</span><span href="#x15-137001r21">21<!--tex4ht:ref: tab:p_subsolve_1 --></a>.</dd></dl>
class="zplmr7t-">(</span>0<span
class="zplmr7t-">) </span>is currently implemented.</dd></dl>
@ -159,13 +157,13 @@ class="zplmr7t-">) </span>is currently implemented.</dd></dl>
id="x15-13700010.2"></a>Set &#8212; set preconditioner parameters</h4> id="x15-13700010.2"></a>Set &#8212; set preconditioner parameters</h4>
<div class="center" <div class="center"
> >
<!--l. 92--><p class="noindent" > <!--l. 91--><p class="noindent" >
<!--l. 93--><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></code></div> <!--l. 92--><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></code></div>
<!--l. 96--><p class="noindent" >This method sets the parameters defining the subdomain solver when the <!--l. 95--><p class="noindent" >This method sets the parameters defining the subdomain solver when the
preconditioner type is <span class="obeylines-h"><span class="verb"><span preconditioner type is <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">BJAC</span></span></span>. More precisely, the parameter identified by <code class="lstinline"><span style="color:#000000">what</span></code> is class="cmtt-10">BJAC</span></span></span>. More precisely, the parameter identified by <code class="lstinline"><span style="color:#000000">what</span></code> is
assigned the value contained in <code class="lstinline"><span style="color:#000000">val</span></code>. assigned the value contained in <code class="lstinline"><span style="color:#000000">val</span></code>.
<!--l. 102--><p class="noindent" ><span <!--l. 101--><p class="noindent" ><span
class="pplb7t-x-x-120">Arguments</span> class="pplb7t-x-x-120">Arguments</span>
<div class="tabular"> <table id="TBL-23" class="tabular" <div class="tabular"> <table id="TBL-23" class="tabular"
@ -173,51 +171,48 @@ class="pplb7t-x-x-120">Arguments</span>
id="TBL-23-1"><col id="TBL-23-1"><col
id="TBL-23-2"></colgroup><tr id="TBL-23-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-23-1-"><td style="white-space:normal; text-align:left;" id="TBL-23-1-1" style="vertical-align:baseline;" id="TBL-23-1-"><td style="white-space:normal; text-align:left;" id="TBL-23-1-1"
class="td11"><!--l. 105--><p class="noindent" ><code class="lstinline"><span style="color:#000000">what</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-23-1-2" class="td11"><!--l. 104--><p class="noindent" ><code class="lstinline"><span style="color:#000000">what</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-23-1-2"
class="td11"><!--l. 105--><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>. </td> class="td11"><!--l. 104--><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>. </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-23-2-"><td style="white-space:normal; text-align:left;" id="TBL-23-2-1" style="vertical-align:baseline;" id="TBL-23-2-"><td style="white-space:normal; text-align:left;" id="TBL-23-2-1"
class="td11"><!--l. 106--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-23-2-2" class="td11"><!--l. 105--><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 class="td11"><!--l. 105--><p class="noindent" >The parameter to be set. It can be specified through its name; the string is
case-insensitive. See Tables&#x00A0;<span case-insensitive. See Table&#x00A0;<a
class="pplb7t-">??</span>-<a href="#x15-137001r21">21<!--tex4ht:ref: tab:p_subsolve_1 --></a>. </td>
href="#x15-137002r22">22<!--tex4ht:ref: tab:p_smoother_1 --></a>. </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-23-3-"><td style="white-space:normal; text-align:left;" id="TBL-23-3-1" 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" class="td11"><!--l. 108--><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"
class="td11"><!--l. 109--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span></code> <span class="td11"><!--l. 108--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span></code> <span
class="pplri7t-">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="pplri7t-">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="pplri7t-">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="pplri7t-">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="pplri7t-">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>, class="pplri7t-">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>,
<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>. </td> <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>. </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-23-4-"><td style="white-space:normal; text-align:left;" id="TBL-23-4-1" style="vertical-align:baseline;" id="TBL-23-4-"><td style="white-space:normal; text-align:left;" id="TBL-23-4-1"
class="td11"><!--l. 112--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-23-4-2" class="td11"><!--l. 111--><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 class="td11"><!--l. 111--><p class="noindent" >The value of the parameter to be set. The list of allowed values and the
corresponding data types is given in Tables&#x00A0;<span corresponding data types is given in Table&#x00A0;<a
class="pplb7t-">??</span>-<a href="#x15-137001r21">21<!--tex4ht:ref: tab:p_subsolve_1 --></a>. When the value is of type
href="#x15-137002r22">22<!--tex4ht:ref: tab:p_smoother_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> <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 </tr><tr
style="vertical-align:baseline;" id="TBL-23-5-"><td style="white-space:normal; text-align:left;" id="TBL-23-5-1" style="vertical-align:baseline;" id="TBL-23-5-"><td style="white-space:normal; text-align:left;" id="TBL-23-5-1"
class="td11"><!--l. 117--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-23-5-2" class="td11"><!--l. 116--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-23-5-2"
class="td11"><!--l. 117--><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>. </td> class="td11"><!--l. 116--><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>. </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-23-6-"><td style="white-space:normal; text-align:left;" id="TBL-23-6-1" 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. 117--><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&#x00A0;<span class="td11"><!--l. 117--><p class="noindent" >Error code. If no error, 0 is returned. See Section&#x00A0;<a
class="pplb7t-">??</span> for details. </td> </tr></table></div> href="userhtmlse8.html#x13-1230008">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 <!--l. 122--><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 parameters that can be set, along with their allowed and default values, is given in
Tables&#x00A0;<span Table-<a
class="pplb7t-">??</span>-<a href="#x15-137001r21">21<!--tex4ht:ref: tab:p_subsolve_1 --></a>.<br
href="#x15-137002r22">22<!--tex4ht:ref: tab:p_smoother_1 --></a>.<br
class="newline" /> class="newline" />
<div class="table"> <div class="table">
<!--l. 130--><p class="indent" > <a <!--l. 129--><p class="indent" > <a
id="x15-137001r21"></a><hr class="float"><div class="float" id="x15-137001r21"></a><hr class="float"><div class="float"
> >
@ -225,7 +220,7 @@ class="newline" />
<div class="center" <div class="center"
> >
<!--l. 130--><p class="noindent" > <!--l. 129--><p class="noindent" >
<div class="tabular"> <table id="TBL-24" class="tabular" <div class="tabular"> <table id="TBL-24" class="tabular"
><colgroup id="TBL-24-1g"><col ><colgroup id="TBL-24-1g"><col
@ -236,7 +231,7 @@ id="TBL-24-4"></colgroup><colgroup id="TBL-24-5g"><col
id="TBL-24-5"></colgroup><tr id="TBL-24-5"></colgroup><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></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-24-1-"><td style="white-space:normal; text-align:left;" id="TBL-24-1-1" style="vertical-align:baseline;" id="TBL-24-1-"><td style="white-space:normal; text-align:left;" id="TBL-24-1-1"
class="td11"><!--l. 134--><p class="noindent" ><code class="lstinline"><span style="color:#000000">what</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-24-1-2" class="td11"><!--l. 134--><p class="noindent" ><code class="lstinline"><span style="color:#000000">what</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-24-1-2"
class="td11"><span class="td11"><span
class="pplrc7t-x-x-90"><span class="pplrc7t-x-x-90"><span
class="small-caps">d</span><span class="small-caps">d</span><span
@ -246,8 +241,8 @@ class="small-caps">a</span> <span
class="small-caps">t</span><span class="small-caps">t</span><span
class="small-caps">y</span><span class="small-caps">y</span><span
class="small-caps">p</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-24-1-3" class="small-caps">e</span> </span></td><td style="white-space:normal; text-align:left;" id="TBL-24-1-3"
class="td11"><!--l. 134--><p class="noindent" ><code class="lstinline"><span style="color:#000000">val</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-24-1-4" class="td11"><!--l. 134--><p class="noindent" ><code class="lstinline"><span style="color:#000000">val</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-24-1-4"
class="td11"><!--l. 134--><p class="noindent" ><span class="td11"><!--l. 134--><p class="noindent" ><span
class="pplrc7t-x-x-90"><span class="pplrc7t-x-x-90"><span
class="small-caps">d</span><span class="small-caps">d</span><span
@ -256,7 +251,7 @@ class="small-caps">f</span><span
class="small-caps">a</span><span class="small-caps">a</span><span
class="small-caps">u</span><span class="small-caps">u</span><span
class="small-caps">l</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-24-1-5" class="small-caps">t</span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-24-1-5"
class="td11"><!--l. 135--><p class="noindent" ><span class="td11"><!--l. 135--><p class="noindent" ><span
class="pplrc7t-x-x-90"><span class="pplrc7t-x-x-90"><span
class="small-caps">c</span><span class="small-caps">c</span><span
@ -266,20 +261,20 @@ class="small-caps">m</span><span
class="small-caps">e</span><span class="small-caps">e</span><span
class="small-caps">n</span><span class="small-caps">n</span><span
class="small-caps">t</span><span class="small-caps">t</span><span
class="small-caps">s</span></span> </td></tr><tr 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 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-24-2-"><td style="white-space:normal; text-align:left;" id="TBL-24-2-1" style="vertical-align:baseline;" id="TBL-24-2-"><td style="white-space:normal; text-align:left;" id="TBL-24-2-1"
class="td class="td
11"><!--l. 137--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SUB_SOLVE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-24-2-2" 11"><!--l. 137--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SUB_SOLVE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-24-2-2"
class="td11"><code class="lstinline"><!--l. 137--><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-24-2-3" class="td11"><code class="lstinline"><!--l. 137--><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-24-2-3"
class="td11"><!--l. 138--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">ILU</span><span style="color:#000000">&#8217;</span></code> class="td11"><!--l. 138--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">ILU</span><span style="color:#000000">&#8217;</span></code>
<!--l. 139--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">ILUT</span><span style="color:#000000">&#8217;</span></code> <!--l. 139--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">ILUT</span><span style="color:#000000">&#8217;</span></code>
<!--l. 140--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">INVT</span><span style="color:#000000">&#8217;</span></code> <!--l. 140--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">INVT</span><span style="color:#000000">&#8217;</span></code>
<!--l. 140--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">INVK</span><span style="color:#000000">&#8217;</span></code> <!--l. 140--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">INVK</span><span style="color:#000000">&#8217;</span></code>
<!--l. 140--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">AINV</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-24-2-4" <!--l. 140--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">AINV</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-24-2-4"
class="td11"><!--l. 142--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-24-2-5" class="td11"><!--l. 142--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-24-2-5"
class="td11"><!--l. 142--><p class="noindent" ><span class="td11"><!--l. 142--><p class="noindent" ><span
class="pplr7t-x-x-90">The local solver to be used with the smoother</span> class="pplr7t-x-x-90">The local solver to be used with the smoother</span>
<span <span
class="pplr7t-x-x-90">or one-level preconditioner ILU(</span><span class="pplr7t-x-x-90">or one-level preconditioner ILU(</span><span
class="zplmr7m-x-x-90">p</span><span class="zplmr7m-x-x-90">p</span><span
@ -289,13 +284,13 @@ class="pplr7t-x-x-90">, </span><span
class="zplmr7m-x-x-90">t</span><span class="zplmr7m-x-x-90">t</span><span
class="pplr7t-x-x-90">),</span> class="pplr7t-x-x-90">),</span>
<span <span
class="pplr7t-x-x-90">Approximate Inverses</span> class="pplr7t-x-x-90">Approximate Inverses</span>
<span <span
class="pplr7t-x-x-90">INVK(</span><span class="pplr7t-x-x-90">INVK(</span><span
class="zplmr7m-x-x-90">p</span><span class="zplmr7m-x-x-90">p</span><span
class="pplr7t-x-x-90">, </span><span class="pplr7t-x-x-90">, </span><span
class="zplmr7m-x-x-90">q</span><span class="zplmr7m-x-x-90">q</span><span
class="pplr7t-x-x-90">), INVT(</span><span class="pplr7t-x-x-90">), INVT(</span><span
class="zplmr7m-x-x-90">p</span><sub><span class="zplmr7m-x-x-90">p</span><sub><span
class="pplr7t-x-x-70">1</span></sub><span class="pplr7t-x-x-70">1</span></sub><span
class="pplr7t-x-x-90">, </span><span class="pplr7t-x-x-90">, </span><span
@ -306,103 +301,36 @@ class="pplr7t-x-x-70">1</span></sub><span
class="pplr7t-x-x-90">, </span><span class="pplr7t-x-x-90">, </span><span
class="zplmr7m-x-x-90">t</span><sub><span class="zplmr7m-x-x-90">t</span><sub><span
class="pplr7t-x-x-70">2</span></sub><span class="pplr7t-x-x-70">2</span></sub><span
class="pplr7t-x-x-90">) and AINV(</span><span class="pplr7t-x-x-90">) and AINV(</span><span
class="zplmr7m-x-x-90">t</span><span class="zplmr7m-x-x-90">t</span><span
class="pplr7t-x-x-90">);</span> class="pplr7t-x-x-90">);</span>
<span <span
class="pplr7t-x-x-90">note that approximate inverses are specifically</span> class="pplr7t-x-x-90">note that approximate inverses are specifically</span>
<span <span
class="pplr7t-x-x-90">suited for GPUs since they do not employ</span> class="pplr7t-x-x-90">suited for GPUs since they do not employ</span>
<span <span
class="pplr7t-x-x-90">triangular system solve kernels, see</span><span class="pplr7t-x-x-90">triangular system solve kernels, see</span><span
class="pplr7t-x-x-90">&#x00A0;</span><span class="cite"><span class="pplr7t-x-x-90">&#x00A0;</span><span class="cite"><span
class="pplr7t-x-x-90">[</span><span class="pplr7t-x-x-90">[</span><a
class="pplb7t-x-x-90">?</span><span href="userhtmlli2.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></span><span
class="pplr7t-x-x-90">.</span> </td> class="pplr7t-x-x-90">.</span> </td>
</tr><tr </tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></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-24-3-"><td style="white-space:normal; text-align:left;" id="TBL-24-3-1" style="vertical-align:baseline;" id="TBL-24-3-"><td style="white-space:normal; text-align:left;" id="TBL-24-3-1"
class="td11"> </td></tr></table> </div></div> class="td11"><!--l. 151--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SUB_FILLIN</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-24-3-2"
<br /> <div class="caption" class="td11"><code class="lstinline"><!--l. 151--><p class="noindent" ><span style="color:#000000">integer</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-24-3-3"
><span class="id">Table&#x00A0;21: </span><span class="td11"><!--l. 152--><p class="noindent" ><span
class="content">Parameters defining the solver or the details of the one-level
preconditioner. </span></div><!--tex4ht:label?: x15-137001r21 -->
</div><hr class="endfloat" />
</div>
<div class="table">
<!--l. 159--><p class="indent" > <a
id="x15-137002r22"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 159--><p class="noindent" >
<div class="tabular"> <table id="TBL-25" class="tabular"
><colgroup id="TBL-25-1g"><col
id="TBL-25-1"></colgroup><colgroup id="TBL-25-2g"><col
id="TBL-25-2"></colgroup><colgroup id="TBL-25-3g"><col
id="TBL-25-3"></colgroup><colgroup id="TBL-25-4g"><col
id="TBL-25-4"></colgroup><colgroup id="TBL-25-5g"><col
id="TBL-25-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-25-1-"><td style="white-space:normal; text-align:left;" id="TBL-25-1-1"
class="td11"><!--l. 163--><p class="noindent" ><code class="lstinline"><span style="color:#000000">what</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-25-1-2"
class="td11"><span
class="pplrc7t-x-x-90"><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-25-1-3"
class="td11"><!--l. 163--><p class="noindent" ><code class="lstinline"><span style="color:#000000">val</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-25-1-4"
class="td11"><!--l. 163--><p class="noindent" ><span
class="pplrc7t-x-x-90"><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-25-1-5"
class="td11"><!--l. 164--><p class="noindent" ><span
class="pplrc7t-x-x-90"><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-25-2-"><td style="white-space:normal; text-align:left;" id="TBL-25-2-1"
class="td
11"><!--l. 165--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SUB_FILLIN</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-25-2-2"
class="td11"><code class="lstinline"><!--l. 165--><p class="noindent" ><span style="color:#000000">integer</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-25-2-3"
class="td11"><!--l. 166--><p class="noindent" ><span
class="pplr7t-x-x-90">Any integer</span> class="pplr7t-x-x-90">Any integer</span>
<!--l. 166--><p class="noindent" ><span <!--l. 152--><p class="noindent" ><span
class="pplr7t-x-x-90">number</span><span class="pplr7t-x-x-90">number</span><span
class="pplr7t-x-x-90">&#x00A0;</span><span class="pplr7t-x-x-90">&#x00A0;</span><span
class="zplmr7y-x-x-90">&#x2265; </span><span class="zplmr7y-x-x-90">&#x2265; </span><span
class="pplr7t-x-x-90">0</span> </td><td style="white-space:normal; text-align:left;" id="TBL-25-2-4" class="pplr7t-x-x-90">0</span> </td><td style="white-space:normal; text-align:left;" id="TBL-24-3-4"
class="td11"><!--l. 167--><p class="noindent" ><span class="td11"><!--l. 153--><p class="noindent" ><span
class="pplr7t-x-x-90">0</span> </td><td style="white-space:normal; text-align:left;" id="TBL-25-2-5" class="pplr7t-x-x-90">0</span> </td><td style="white-space:normal; text-align:left;" id="TBL-24-3-5"
class="td11"><!--l. 168--><p class="noindent" ><span class="td11"><!--l. 154--><p class="noindent" ><span
class="pplr7t-x-x-90">Fill-in level </span><span class="pplr7t-x-x-90">Fill-in level </span><span
class="zplmr7m-x-x-90">p </span><span class="zplmr7m-x-x-90">p </span><span
class="pplr7t-x-x-90">of the incomplete LU</span> class="pplr7t-x-x-90">of the incomplete LU</span>
@ -410,19 +338,19 @@ class="pplr7t-x-x-90">of the incomplete LU</span>
class="pplr7t-x-x-90">factorizations.</span> </td> class="pplr7t-x-x-90">factorizations.</span> </td>
</tr><tr </tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></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-25-3-"><td style="white-space:normal; text-align:left;" id="TBL-25-3-1" style="vertical-align:baseline;" id="TBL-24-4-"><td style="white-space:normal; text-align:left;" id="TBL-24-4-1"
class="td11"><!--l. 169--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SUB_ILUTHRS</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-25-3-2" class="td11"><!--l. 155--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SUB_ILUTHRS</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-24-4-2"
class="td11"><code class="lstinline"><!--l. 169--><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-25-3-3" class="td11"><code class="lstinline"><!--l. 155--><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-24-4-3"
class="td11"><!--l. 170--><p class="noindent" ><span class="td11"><!--l. 156--><p class="noindent" ><span
class="pplr7t-x-x-90">Any real</span> class="pplr7t-x-x-90">Any real</span>
<span <span
class="pplr7t-x-x-90">number</span><span class="pplr7t-x-x-90">number</span><span
class="pplr7t-x-x-90">&#x00A0;</span><span class="pplr7t-x-x-90">&#x00A0;</span><span
class="zplmr7y-x-x-90">&#x2265; </span><span class="zplmr7y-x-x-90">&#x2265; </span><span
class="pplr7t-x-x-90">0</span> </td><td style="white-space:normal; text-align:left;" id="TBL-25-3-4" class="pplr7t-x-x-90">0</span> </td><td style="white-space:normal; text-align:left;" id="TBL-24-4-4"
class="td11"><!--l. 171--><p class="noindent" ><span class="td11"><!--l. 157--><p class="noindent" ><span
class="pplr7t-x-x-90">0</span> </td><td style="white-space:normal; text-align:left;" id="TBL-25-3-5" class="pplr7t-x-x-90">0</span> </td><td style="white-space:normal; text-align:left;" id="TBL-24-4-5"
class="td11"><!--l. 172--><p class="noindent" ><span class="td11"><!--l. 158--><p class="noindent" ><span
class="pplr7t-x-x-90">Drop tolerance </span><span class="pplr7t-x-x-90">Drop tolerance </span><span
class="zplmr7m-x-x-90">t </span><span class="zplmr7m-x-x-90">t </span><span
class="pplr7t-x-x-90">in the ILU(</span><span class="pplr7t-x-x-90">in the ILU(</span><span
@ -431,14 +359,95 @@ class="pplr7t-x-x-90">, </span><span
class="zplmr7m-x-x-90">t</span><span class="zplmr7m-x-x-90">t</span><span
class="pplr7t-x-x-90">) factorization.</span> </td> class="pplr7t-x-x-90">) factorization.</span> </td>
</tr><tr </tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></td></tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td><td><hr></td><td><hr></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-25-4-"><td style="white-space:normal; text-align:left;" id="TBL-25-4-1" style="vertical-align:baseline;" id="TBL-24-5-"><td style="white-space:normal; text-align:left;" id="TBL-24-5-1"
class="td11"><!--l. 159--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">ILU_ALG</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-24-5-2"
class="td11"><code class="lstinline"><!--l. 159--><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-24-5-3"
class="td11"><!--l. 160--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">MILU</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-24-5-4"
class="td11"><!--l. 161--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">NONE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-24-5-5"
class="td11"><!--l. 162--><p class="noindent" ><span
class="pplr7t-x-x-90">ILU algorithmic 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-24-6-"><td style="white-space:normal; text-align:left;" id="TBL-24-6-1"
class="td11"><!--l. 163--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">ILUT_SCALE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-24-6-2"
class="td11"><code class="lstinline"><!--l. 163--><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-24-6-3"
class="td11"><!--l. 164--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">MAXVAL</span><span style="color:#000000">&#8217;</span></code>
<!--l. 165--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">DIAG</span><span style="color:#000000">&#8217;</span></code>
<!--l. 166--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">ARSWUM</span><span style="color:#000000">&#8217;</span></code>
<!--l. 167--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">ARCSUM</span><span style="color:#000000">&#8217;</span></code>
<!--l. 168--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">ACLSUM</span><span style="color:#000000">&#8217;</span></code>
<!--l. 169--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">NONE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-24-6-4"
class="td11"><!--l. 170--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">NONE</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-24-6-5"
class="td11"><!--l. 171--><p class="noindent" ><span
class="pplr7t-x-x-90">ILU scaling strategy</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-24-7-"><td style="white-space:normal; text-align:left;" id="TBL-24-7-1"
class="td11"><!--l. 172--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">INV_FILLIN</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-24-7-2"
class="td11"><code class="lstinline"><!--l. 172--><p class="noindent" ><span style="color:#000000">integer</span> </code> </td><td style="white-space:normal; text-align:left;" id="TBL-24-7-3"
class="td11"><!--l. 173--><p class="noindent" ><span
class="pplr7t-x-x-90">Any integer</span>
<!--l. 173--><p class="noindent" ><span
class="pplr7t-x-x-90">number</span><span
class="pplr7t-x-x-90">&#x00A0;</span><span
class="zplmr7y-x-x-90">&#x2265; </span><span
class="pplr7t-x-x-90">0</span> </td><td style="white-space:normal; text-align:left;" id="TBL-24-7-4"
class="td11"><!--l. 174--><p class="noindent" ><span
class="pplr7t-x-x-90">0</span> </td><td style="white-space:normal; text-align:left;" id="TBL-24-7-5"
class="td11"><!--l. 175--><p class="noindent" ><span
class="pplr7t-x-x-90">Second fill-in level </span><span
class="zplmr7m-x-x-90">q </span><span
class="pplr7t-x-x-90">of the INVK(</span><span
class="zplmr7m-x-x-90">p</span><span
class="pplr7t-x-x-90">, </span><span
class="zplmr7m-x-x-90">q</span><span
class="pplr7t-x-x-90">)</span>
<span
class="pplr7t-x-x-90">approximate inverse.</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-24-8-"><td style="white-space:normal; text-align:left;" id="TBL-24-8-1"
class="td11"><!--l. 177--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">INV_ILUTHRS</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-24-8-2"
class="td11"><code class="lstinline"><!--l. 177--><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-24-8-3"
class="td11"><!--l. 178--><p class="noindent" ><span
class="pplr7t-x-x-90">Any real</span>
<span
class="pplr7t-x-x-90">number</span><span
class="pplr7t-x-x-90">&#x00A0;</span><span
class="zplmr7y-x-x-90">&#x2265; </span><span
class="pplr7t-x-x-90">0</span> </td><td style="white-space:normal; text-align:left;" id="TBL-24-8-4"
class="td11"><!--l. 179--><p class="noindent" ><span
class="pplr7t-x-x-90">0</span> </td><td style="white-space:normal; text-align:left;" id="TBL-24-8-5"
class="td11"><!--l. 180--><p class="noindent" ><span
class="pplr7t-x-x-90">Second drop tolerance </span><span
class="zplmr7m-x-x-90">s </span><span
class="pplr7t-x-x-90">in the INVT(</span><span
class="zplmr7m-x-x-90">t</span><span
class="pplr7t-x-x-90">, </span><span
class="zplmr7m-x-x-90">s</span><span
class="pplr7t-x-x-90">)</span>
<span
class="pplr7t-x-x-90">approximate inverse.</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-24-9-"><td style="white-space:normal; text-align:left;" id="TBL-24-9-1"
class="td11"><!--l. 182--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">AINV_ALG</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:nowrap; text-align:left;" id="TBL-24-9-2"
class="td11"><code class="lstinline"><!--l. 182--><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-24-9-3"
class="td11"><!--l. 183--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">LLK</span><span style="color:#000000">&#8217;</span></code>
<!--l. 184--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">SYM</span><span style="color:#000000">-</span><span style="color:#000000">LLK</span><span style="color:#000000">&#8217;</span></code>
<!--l. 185--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">STAB</span><span style="color:#000000">-</span><span style="color:#000000">LLK</span><span style="color:#000000">&#8217;</span></code>
<!--l. 186--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">MLK</span><span style="color:#000000">,</span><span style="color:#000000">LMX</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-24-9-4"
class="td11"><!--l. 187--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">LLK</span><span style="color:#000000">&#8217;</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-24-9-5"
class="td11"><!--l. 188--><p class="noindent" ><span
class="pplr7t-x-x-90">AINV algorithmic strategy.</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-24-10-"><td style="white-space:normal; text-align:left;" id="TBL-24-10-1"
class="td11"> </td></tr></table> </div></div> class="td11"> </td></tr></table> </div></div>
<br /> <div class="caption" <br /> <div class="caption"
><span class="id">Table&#x00A0;22: </span><span ><span class="id">Table&#x00A0;21: </span><span
class="content">Parameters defining the smoother or the details of the one-level class="content">Parameters defining the solver of the BJAC preconditioner.</span></div><!--tex4ht:label?: x15-137001r21 -->
preconditioner (continued).</span></div><!--tex4ht:label?: x15-137002r22 -->
@ -455,26 +464,26 @@ preconditioner (continued).</span></div><!--tex4ht:label?: x15-137002r22 -->
<pre class="verbatim" id="verbatim-98"> <pre class="verbatim" id="verbatim-98">
call&#x00A0;prec%build(a,&#x00A0;desc_a,&#x00A0;info[,amold,vmold,imold]) call&#x00A0;prec%build(a,&#x00A0;desc_a,&#x00A0;info[,amold,vmold,imold])
</pre> </pre>
<!--l. 187--><p class="nopar" > <!--l. 202--><p class="nopar" >
<!--l. 189--><p class="indent" > <!--l. 204--><p class="indent" >
<dl class="description"><dt class="description"> <dl class="description"><dt class="description">
<!--l. 190--><p class="noindent" > <!--l. 205--><p class="noindent" >
<span <span
class="pplb7t-">Type:</span> </dt><dd class="pplb7t-">Type:</span> </dt><dd
class="description"> class="description">
<!--l. 190--><p class="noindent" >Synchronous. <!--l. 205--><p class="noindent" >Synchronous.
</dd><dt class="description"> </dd><dt class="description">
<!--l. 191--><p class="noindent" > <!--l. 206--><p class="noindent" >
<span <span
class="pplb7t-">On Entry</span> </dt><dd class="pplb7t-">On Entry</span> </dt><dd
class="description"> class="description">
<!--l. 191--><p class="noindent" > <!--l. 206--><p class="noindent" >
</dd><dt class="description"> </dd><dt class="description">
<!--l. 192--><p class="noindent" > <!--l. 207--><p class="noindent" >
<span <span
class="pplb7t-">a</span> </dt><dd class="pplb7t-">a</span> </dt><dd
class="description"> class="description">
<!--l. 192--><p class="noindent" >the system sparse matrix. Scope: <span <!--l. 207--><p class="noindent" >the system sparse matrix. Scope: <span
class="pplb7t-">local </span><br class="pplb7t-">local </span><br
class="newline" />Type: <span class="newline" />Type: <span
class="pplb7t-">required</span><br class="pplb7t-">required</span><br
@ -486,11 +495,11 @@ class="cmtt-10">psb</span><span
class="cmtt-10">_Tspmat</span><span class="cmtt-10">_Tspmat</span><span
class="cmtt-10">_type</span></a>. class="cmtt-10">_type</span></a>.
</dd><dt class="description"> </dd><dt class="description">
<!--l. 197--><p class="noindent" > <!--l. 212--><p class="noindent" >
<span <span
class="pplb7t-">prec</span> </dt><dd class="pplb7t-">prec</span> </dt><dd
class="description"> class="description">
<!--l. 197--><p class="noindent" >the preconditioner.<br <!--l. 212--><p class="noindent" >the preconditioner.<br
class="newline" />Scope: <span class="newline" />Scope: <span
class="pplb7t-">local </span><br class="pplb7t-">local </span><br
class="newline" />Type: <span class="newline" />Type: <span
@ -501,16 +510,16 @@ class="newline" />Specified as: an already initialized precondtioner
<a <a
href="userhtmlse3.html#precdata"><span href="userhtmlse3.html#precdata"><span
class="cmtt-10">psb</span><span class="cmtt-10">psb</span><span
class="cmtt-10">_prec</span><span class="cmtt-10">_Tprec</span><span
class="cmtt-10">_type</span></a><br class="cmtt-10">_type</span></a><br
class="newline" /> class="newline" />
</dd><dt class="description"> </dd><dt class="description">
<!--l. 202--><p class="noindent" > <!--l. 217--><p class="noindent" >
<span <span
class="pplb7t-">desc</span><span class="pplb7t-">desc</span><span
class="pplb7t-">_a</span> </dt><dd class="pplb7t-">_a</span> </dt><dd
class="description"> class="description">
<!--l. 202--><p class="noindent" >the problem communication descriptor. Scope: <span <!--l. 217--><p class="noindent" >the problem communication descriptor. Scope: <span
class="pplb7t-">local </span><br class="pplb7t-">local </span><br
class="newline" />Type: <span class="newline" />Type: <span
class="pplb7t-">required</span><br class="pplb7t-">required</span><br
@ -522,14 +531,14 @@ class="cmtt-10">psb</span><span
class="cmtt-10">_desc</span><span class="cmtt-10">_desc</span><span
class="cmtt-10">_type</span></a>. class="cmtt-10">_type</span></a>.
</dd><dt class="description"> </dd><dt class="description">
<!--l. 212--><p class="noindent" > <!--l. 227--><p class="noindent" >
<span <span
class="pplb7t-">amold</span> </dt><dd class="pplb7t-">amold</span> </dt><dd
class="description"> class="description">
<!--l. 212--><p class="noindent" >The desired dynamic type for the internal matrix storage.<br <!--l. 227--><p class="noindent" >The desired dynamic type for the internal matrix storage.<br
class="newline" />Scope: <span class="newline" />Scope: <span
class="pplb7t-">local</span>.<br class="pplb7t-">local</span>.<br
class="newline" />Type: <span class="newline" />Type: <span
@ -544,11 +553,11 @@ class="cmtt-10">_base</span><span
class="cmtt-10">_sparse</span><span class="cmtt-10">_sparse</span><span
class="cmtt-10">_mat</span>. class="cmtt-10">_mat</span>.
</dd><dt class="description"> </dd><dt class="description">
<!--l. 217--><p class="noindent" > <!--l. 232--><p class="noindent" >
<span <span
class="pplb7t-">vmold</span> </dt><dd class="pplb7t-">vmold</span> </dt><dd
class="description"> class="description">
<!--l. 217--><p class="noindent" >The desired dynamic type for the internal vector storage.<br <!--l. 232--><p class="noindent" >The desired dynamic type for the internal vector storage.<br
class="newline" />Scope: <span class="newline" />Scope: <span
class="pplb7t-">local</span>.<br class="pplb7t-">local</span>.<br
class="newline" />Type: <span class="newline" />Type: <span
@ -563,11 +572,11 @@ class="cmtt-10">_base</span><span
class="cmtt-10">_vect</span><span class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span>. class="cmtt-10">_type</span>.
</dd><dt class="description"> </dd><dt class="description">
<!--l. 222--><p class="noindent" > <!--l. 237--><p class="noindent" >
<span <span
class="pplb7t-">imold</span> </dt><dd class="pplb7t-">imold</span> </dt><dd
class="description"> class="description">
<!--l. 222--><p class="noindent" >The desired dynamic type for the internal integer vector storage.<br <!--l. 237--><p class="noindent" >The desired dynamic type for the internal integer vector storage.<br
class="newline" />Scope: <span class="newline" />Scope: <span
class="pplb7t-">local</span>.<br class="pplb7t-">local</span>.<br
class="newline" />Type: <span class="newline" />Type: <span
@ -582,19 +591,19 @@ class="cmtt-10">_T</span><span
class="cmtt-10">_base</span><span class="cmtt-10">_base</span><span
class="cmtt-10">_vect</span><span class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span>.</dd></dl> class="cmtt-10">_type</span>.</dd></dl>
<!--l. 229--><p class="indent" > <!--l. 244--><p class="indent" >
<dl class="description"><dt class="description"> <dl class="description"><dt class="description">
<!--l. 230--><p class="noindent" > <!--l. 245--><p class="noindent" >
<span <span
class="pplb7t-">On Return</span> </dt><dd class="pplb7t-">On Return</span> </dt><dd
class="description"> class="description">
<!--l. 230--><p class="noindent" > <!--l. 245--><p class="noindent" >
</dd><dt class="description"> </dd><dt class="description">
<!--l. 231--><p class="noindent" > <!--l. 246--><p class="noindent" >
<span <span
class="pplb7t-">prec</span> </dt><dd class="pplb7t-">prec</span> </dt><dd
class="description"> class="description">
<!--l. 231--><p class="noindent" >the preconditioner.<br <!--l. 246--><p class="noindent" >the preconditioner.<br
class="newline" />Scope: <span class="newline" />Scope: <span
class="pplb7t-">local </span><br class="pplb7t-">local </span><br
class="newline" />Type: <span class="newline" />Type: <span
@ -604,15 +613,15 @@ class="pplb7t-">inout</span>.<br
class="newline" />Specified as: a precondtioner data structure <a class="newline" />Specified as: a precondtioner data structure <a
href="userhtmlse3.html#precdata"><span href="userhtmlse3.html#precdata"><span
class="cmtt-10">psb</span><span class="cmtt-10">psb</span><span
class="cmtt-10">_prec</span><span class="cmtt-10">_Tprec</span><span
class="cmtt-10">_type</span></a><br class="cmtt-10">_type</span></a><br
class="newline" /> class="newline" />
</dd><dt class="description"> </dd><dt class="description">
<!--l. 236--><p class="noindent" > <!--l. 251--><p class="noindent" >
<span <span
class="pplb7t-">info</span> </dt><dd class="pplb7t-">info</span> </dt><dd
class="description"> class="description">
<!--l. 236--><p class="noindent" >Error code.<br <!--l. 251--><p class="noindent" >Error code.<br
class="newline" />Scope: <span class="newline" />Scope: <span
class="pplb7t-">local </span><br class="pplb7t-">local </span><br
class="newline" />Type: <span class="newline" />Type: <span
@ -623,7 +632,7 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
<!--l. 242--><p class="noindent" >The <span class="obeylines-h"><span class="verb"><span <!--l. 257--><p class="noindent" >The <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">amold</span></span></span>, <span class="obeylines-h"><span class="verb"><span class="cmtt-10">amold</span></span></span>, <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">vmold</span></span></span> and <span class="obeylines-h"><span class="verb"><span class="cmtt-10">vmold</span></span></span> and <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">imold</span></span></span> arguments may be employed to interface with special class="cmtt-10">imold</span></span></span> arguments may be employed to interface with special
@ -640,26 +649,26 @@ devices, such as GPUs and other accelerators.
call&#x00A0;prec%apply(x,y,desc_a,info,trans,work) call&#x00A0;prec%apply(x,y,desc_a,info,trans,work)
call&#x00A0;prec%apply(x,desc_a,info,trans) call&#x00A0;prec%apply(x,desc_a,info,trans)
</pre> </pre>
<!--l. 254--><p class="nopar" > <!--l. 269--><p class="nopar" >
<!--l. 256--><p class="indent" > <!--l. 271--><p class="indent" >
<dl class="description"><dt class="description"> <dl class="description"><dt class="description">
<!--l. 257--><p class="noindent" > <!--l. 272--><p class="noindent" >
<span <span
class="pplb7t-">Type:</span> </dt><dd class="pplb7t-">Type:</span> </dt><dd
class="description"> class="description">
<!--l. 257--><p class="noindent" >Synchronous. <!--l. 272--><p class="noindent" >Synchronous.
</dd><dt class="description"> </dd><dt class="description">
<!--l. 258--><p class="noindent" > <!--l. 273--><p class="noindent" >
<span <span
class="pplb7t-">On Entry</span> </dt><dd class="pplb7t-">On Entry</span> </dt><dd
class="description"> class="description">
<!--l. 258--><p class="noindent" > <!--l. 273--><p class="noindent" >
</dd><dt class="description"> </dd><dt class="description">
<!--l. 259--><p class="noindent" > <!--l. 274--><p class="noindent" >
<span <span
class="pplb7t-">prec</span> </dt><dd class="pplb7t-">prec</span> </dt><dd
class="description"> class="description">
<!--l. 259--><p class="noindent" >the preconditioner. Scope: <span <!--l. 274--><p class="noindent" >the preconditioner. Scope: <span
class="pplb7t-">local </span><br class="pplb7t-">local </span><br
class="newline" />Type: <span class="newline" />Type: <span
class="pplb7t-">required</span><br class="pplb7t-">required</span><br
@ -668,14 +677,14 @@ class="pplb7t-">in</span>.<br
class="newline" />Specified as: a preconditioner data structure <a class="newline" />Specified as: a preconditioner data structure <a
href="userhtmlse3.html#precdata"><span href="userhtmlse3.html#precdata"><span
class="cmtt-10">psb</span><span class="cmtt-10">psb</span><span
class="cmtt-10">_prec</span><span class="cmtt-10">_Tprec</span><span
class="cmtt-10">_type</span></a>. class="cmtt-10">_type</span></a>.
</dd><dt class="description"> </dd><dt class="description">
<!--l. 264--><p class="noindent" > <!--l. 279--><p class="noindent" >
<span <span
class="pplb7t-">x</span> </dt><dd class="pplb7t-">x</span> </dt><dd
class="description"> class="description">
<!--l. 264--><p class="noindent" >the source vector. Scope: <span <!--l. 279--><p class="noindent" >the source vector. Scope: <span
class="pplb7t-">local </span><br class="pplb7t-">local </span><br
class="newline" />Type: <span class="newline" />Type: <span
class="pplb7t-">required</span><br class="pplb7t-">required</span><br
@ -688,12 +697,12 @@ class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>. class="cmtt-10">_type</span></a>.
</dd><dt class="description"> </dd><dt class="description">
<!--l. 269--><p class="noindent" > <!--l. 284--><p class="noindent" >
<span <span
class="pplb7t-">desc</span><span class="pplb7t-">desc</span><span
class="pplb7t-">_a</span> </dt><dd class="pplb7t-">_a</span> </dt><dd
class="description"> class="description">
<!--l. 269--><p class="noindent" >the problem communication descriptor. Scope: <span <!--l. 284--><p class="noindent" >the problem communication descriptor. Scope: <span
class="pplb7t-">local </span><br class="pplb7t-">local </span><br
class="newline" />Type: <span class="newline" />Type: <span
class="pplb7t-">required</span><br class="pplb7t-">required</span><br
@ -705,11 +714,11 @@ class="cmtt-10">psb</span><span
class="cmtt-10">_desc</span><span class="cmtt-10">_desc</span><span
class="cmtt-10">_type</span></a>. class="cmtt-10">_type</span></a>.
</dd><dt class="description"> </dd><dt class="description">
<!--l. 274--><p class="noindent" > <!--l. 289--><p class="noindent" >
<span <span
class="pplb7t-">trans</span> </dt><dd class="pplb7t-">trans</span> </dt><dd
class="description"> class="description">
<!--l. 274--><p class="noindent" >Scope: <br <!--l. 289--><p class="noindent" >Scope: <br
class="newline" />Type: <span class="newline" />Type: <span
class="pplb7t-">optional</span><br class="pplb7t-">optional</span><br
class="newline" />Intent: <span class="newline" />Intent: <span
@ -719,30 +728,30 @@ class="newline" />Specified as: a character.
</dd><dt class="description"> </dd><dt class="description">
<!--l. 279--><p class="noindent" > <!--l. 294--><p class="noindent" >
<span <span
class="pplb7t-">work</span> </dt><dd class="pplb7t-">work</span> </dt><dd
class="description"> class="description">
<!--l. 279--><p class="noindent" >an optional work space Scope: <span <!--l. 294--><p class="noindent" >an optional work space Scope: <span
class="pplb7t-">local </span><br class="pplb7t-">local </span><br
class="newline" />Type: <span class="newline" />Type: <span
class="pplb7t-">optional</span><br class="pplb7t-">optional</span><br
class="newline" />Intent: <span class="newline" />Intent: <span
class="pplb7t-">inout</span>.<br class="pplb7t-">inout</span>.<br
class="newline" />Specified as: a double precision array.</dd></dl> class="newline" />Specified as: a double precision array.</dd></dl>
<!--l. 286--><p class="indent" > <!--l. 301--><p class="indent" >
<dl class="description"><dt class="description"> <dl class="description"><dt class="description">
<!--l. 287--><p class="noindent" > <!--l. 302--><p class="noindent" >
<span <span
class="pplb7t-">On Return</span> </dt><dd class="pplb7t-">On Return</span> </dt><dd
class="description"> class="description">
<!--l. 287--><p class="noindent" > <!--l. 302--><p class="noindent" >
</dd><dt class="description"> </dd><dt class="description">
<!--l. 288--><p class="noindent" > <!--l. 303--><p class="noindent" >
<span <span
class="pplb7t-">y</span> </dt><dd class="pplb7t-">y</span> </dt><dd
class="description"> class="description">
<!--l. 288--><p class="noindent" >the destination vector. Scope: <span <!--l. 303--><p class="noindent" >the destination vector. Scope: <span
class="pplb7t-">local </span><br class="pplb7t-">local </span><br
class="newline" />Type: <span class="newline" />Type: <span
class="pplb7t-">required</span><br class="pplb7t-">required</span><br
@ -755,11 +764,11 @@ class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>. class="cmtt-10">_type</span></a>.
</dd><dt class="description"> </dd><dt class="description">
<!--l. 293--><p class="noindent" > <!--l. 308--><p class="noindent" >
<span <span
class="pplb7t-">info</span> </dt><dd class="pplb7t-">info</span> </dt><dd
class="description"> class="description">
<!--l. 293--><p class="noindent" >Error code.<br <!--l. 308--><p class="noindent" >Error code.<br
class="newline" />Scope: <span class="newline" />Scope: <span
class="pplb7t-">local </span><br class="pplb7t-">local </span><br
class="newline" />Type: <span class="newline" />Type: <span
@ -779,26 +788,26 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
call&#x00A0;prec%descr(info) call&#x00A0;prec%descr(info)
call&#x00A0;prec%descr(info,iout,&#x00A0;root) call&#x00A0;prec%descr(info,iout,&#x00A0;root)
</pre> </pre>
<!--l. 308--><p class="nopar" > <!--l. 323--><p class="nopar" >
<!--l. 310--><p class="indent" > <!--l. 325--><p class="indent" >
<dl class="description"><dt class="description"> <dl class="description"><dt class="description">
<!--l. 311--><p class="noindent" > <!--l. 326--><p class="noindent" >
<span <span
class="pplb7t-">Type:</span> </dt><dd class="pplb7t-">Type:</span> </dt><dd
class="description"> class="description">
<!--l. 311--><p class="noindent" >Asynchronous. <!--l. 326--><p class="noindent" >Asynchronous.
</dd><dt class="description"> </dd><dt class="description">
<!--l. 312--><p class="noindent" > <!--l. 327--><p class="noindent" >
<span <span
class="pplb7t-">On Entry</span> </dt><dd class="pplb7t-">On Entry</span> </dt><dd
class="description"> class="description">
<!--l. 312--><p class="noindent" > <!--l. 327--><p class="noindent" >
</dd><dt class="description"> </dd><dt class="description">
<!--l. 313--><p class="noindent" > <!--l. 328--><p class="noindent" >
<span <span
class="pplb7t-">prec</span> </dt><dd class="pplb7t-">prec</span> </dt><dd
class="description"> class="description">
<!--l. 313--><p class="noindent" >the preconditioner. Scope: <span <!--l. 328--><p class="noindent" >the preconditioner. Scope: <span
class="pplb7t-">local </span><br class="pplb7t-">local </span><br
class="newline" />Type: <span class="newline" />Type: <span
class="pplb7t-">required</span><br class="pplb7t-">required</span><br
@ -807,14 +816,14 @@ class="pplb7t-">in</span>.<br
class="newline" />Specified as: a preconditioner data structure <a class="newline" />Specified as: a preconditioner data structure <a
href="userhtmlse3.html#precdata"><span href="userhtmlse3.html#precdata"><span
class="cmtt-10">psb</span><span class="cmtt-10">psb</span><span
class="cmtt-10">_prec</span><span class="cmtt-10">_Tprec</span><span
class="cmtt-10">_type</span></a>. class="cmtt-10">_type</span></a>.
</dd><dt class="description"> </dd><dt class="description">
<!--l. 318--><p class="noindent" > <!--l. 333--><p class="noindent" >
<span <span
class="pplb7t-">iout</span> </dt><dd class="pplb7t-">iout</span> </dt><dd
class="description"> class="description">
<!--l. 318--><p class="noindent" >output unit. Scope: <span <!--l. 333--><p class="noindent" >output unit. Scope: <span
class="pplb7t-">local </span><br class="pplb7t-">local </span><br
class="newline" />Type: <span class="newline" />Type: <span
class="pplb7t-">optional</span><br class="pplb7t-">optional</span><br
@ -822,11 +831,11 @@ class="newline" />Intent: <span
class="pplb7t-">in</span>.<br class="pplb7t-">in</span>.<br
class="newline" />Specified as: an integer number. Default: default output unit. class="newline" />Specified as: an integer number. Default: default output unit.
</dd><dt class="description"> </dd><dt class="description">
<!--l. 323--><p class="noindent" > <!--l. 338--><p class="noindent" >
<span <span
class="pplb7t-">root</span> </dt><dd class="pplb7t-">root</span> </dt><dd
class="description"> class="description">
<!--l. 323--><p class="noindent" >Process from which to print Scope: <span <!--l. 338--><p class="noindent" >Process from which to print Scope: <span
class="pplb7t-">local </span><br class="pplb7t-">local </span><br
class="newline" />Type: <span class="newline" />Type: <span
class="pplb7t-">optional</span><br class="pplb7t-">optional</span><br
@ -839,20 +848,20 @@ class="zplmr7y-">- </span>1, in which case
class="zplmr7y-">-</span>1, in which case all class="zplmr7y-">-</span>1, in which case all
processes will print. Default: 0. processes will print. Default: 0.
</dd><dt class="description"> </dd><dt class="description">
<!--l. 330--><p class="noindent" > <!--l. 345--><p class="noindent" >
<span <span
class="pplb7t-">On Return</span> </dt><dd class="pplb7t-">On Return</span> </dt><dd
class="description"> class="description">
<!--l. 330--><p class="noindent" > <!--l. 345--><p class="noindent" >
</dd><dt class="description"> </dd><dt class="description">
<!--l. 331--><p class="noindent" > <!--l. 346--><p class="noindent" >
<span <span
class="pplb7t-">info</span> </dt><dd class="pplb7t-">info</span> </dt><dd
class="description"> class="description">
<!--l. 331--><p class="noindent" >Error code.<br <!--l. 346--><p class="noindent" >Error code.<br
class="newline" />Scope: <span class="newline" />Scope: <span
class="pplb7t-">local </span><br class="pplb7t-">local </span><br
class="newline" />Type: <span class="newline" />Type: <span
@ -871,48 +880,48 @@ class="newline" />An integer value; 0 means no error has been detected.</dd></dl
<pre class="verbatim" id="verbatim-101"> <pre class="verbatim" id="verbatim-101">
call&#x00A0;&#x00A0;prec%clone(precout,info) call&#x00A0;&#x00A0;prec%clone(precout,info)
</pre> </pre>
<!--l. 344--><p class="nopar" > <!--l. 359--><p class="nopar" >
<!--l. 346--><p class="indent" > <!--l. 361--><p class="indent" >
<dl class="description"><dt class="description"> <dl class="description"><dt class="description">
<!--l. 347--><p class="noindent" > <!--l. 362--><p class="noindent" >
<span <span
class="pplb7t-">Type:</span> </dt><dd class="pplb7t-">Type:</span> </dt><dd
class="description"> class="description">
<!--l. 347--><p class="noindent" >Asynchronous. <!--l. 362--><p class="noindent" >Asynchronous.
</dd><dt class="description"> </dd><dt class="description">
<!--l. 348--><p class="noindent" > <!--l. 363--><p class="noindent" >
<span <span
class="pplb7t-">On Entry</span> </dt><dd class="pplb7t-">On Entry</span> </dt><dd
class="description"> class="description">
<!--l. 348--><p class="noindent" > <!--l. 363--><p class="noindent" >
</dd><dt class="description"> </dd><dt class="description">
<!--l. 349--><p class="noindent" > <!--l. 364--><p class="noindent" >
<span <span
class="pplb7t-">prec</span> </dt><dd class="pplb7t-">prec</span> </dt><dd
class="description"> class="description">
<!--l. 349--><p class="noindent" >the preconditioner.<br <!--l. 364--><p class="noindent" >the preconditioner.<br
class="newline" />Scope: <span class="newline" />Scope: <span
class="pplb7t-">local</span>.<br class="pplb7t-">local</span>.<br
class="newline" /></dd></dl> class="newline" /></dd></dl>
<!--l. 356--><p class="indent" > <!--l. 371--><p class="indent" >
<dl class="description"><dt class="description"> <dl class="description"><dt class="description">
<!--l. 357--><p class="noindent" > <!--l. 372--><p class="noindent" >
<span <span
class="pplb7t-">On Return</span> </dt><dd class="pplb7t-">On Return</span> </dt><dd
class="description"> class="description">
<!--l. 357--><p class="noindent" > <!--l. 372--><p class="noindent" >
</dd><dt class="description"> </dd><dt class="description">
<!--l. 358--><p class="noindent" > <!--l. 373--><p class="noindent" >
<span <span
class="pplb7t-">precout</span> </dt><dd class="pplb7t-">precout</span> </dt><dd
class="description"> class="description">
<!--l. 358--><p class="noindent" >A copy of the input object. <!--l. 373--><p class="noindent" >A copy of the input object.
</dd><dt class="description"> </dd><dt class="description">
<!--l. 359--><p class="noindent" > <!--l. 374--><p class="noindent" >
<span <span
class="pplb7t-">info</span> </dt><dd class="pplb7t-">info</span> </dt><dd
class="description"> class="description">
<!--l. 359--><p class="noindent" >Return code.</dd></dl> <!--l. 374--><p class="noindent" >Return code.</dd></dl>
@ -924,26 +933,26 @@ class="description">
<pre class="verbatim" id="verbatim-102"> <pre class="verbatim" id="verbatim-102">
call&#x00A0;prec%free(info) call&#x00A0;prec%free(info)
</pre> </pre>
<!--l. 367--><p class="nopar" > <!--l. 382--><p class="nopar" >
<!--l. 369--><p class="indent" > <!--l. 384--><p class="indent" >
<dl class="description"><dt class="description"> <dl class="description"><dt class="description">
<!--l. 370--><p class="noindent" > <!--l. 385--><p class="noindent" >
<span <span
class="pplb7t-">Type:</span> </dt><dd class="pplb7t-">Type:</span> </dt><dd
class="description"> class="description">
<!--l. 370--><p class="noindent" >Asynchronous. <!--l. 385--><p class="noindent" >Asynchronous.
</dd><dt class="description"> </dd><dt class="description">
<!--l. 371--><p class="noindent" > <!--l. 386--><p class="noindent" >
<span <span
class="pplb7t-">On Entry</span> </dt><dd class="pplb7t-">On Entry</span> </dt><dd
class="description"> class="description">
<!--l. 371--><p class="noindent" > <!--l. 386--><p class="noindent" >
</dd><dt class="description"> </dd><dt class="description">
<!--l. 372--><p class="noindent" > <!--l. 387--><p class="noindent" >
<span <span
class="pplb7t-">prec</span> </dt><dd class="pplb7t-">prec</span> </dt><dd
class="description"> class="description">
<!--l. 372--><p class="noindent" >the preconditioner.<br <!--l. 387--><p class="noindent" >the preconditioner.<br
class="newline" />Scope: <span class="newline" />Scope: <span
class="pplb7t-">local</span>.<br class="pplb7t-">local</span>.<br
class="newline" />Type: <span class="newline" />Type: <span
@ -953,20 +962,20 @@ class="pplb7t-">inout</span>.<br
class="newline" />Specified as: a preconditioner data structure <a class="newline" />Specified as: a preconditioner data structure <a
href="userhtmlse3.html#precdata"><span href="userhtmlse3.html#precdata"><span
class="cmtt-10">psb</span><span class="cmtt-10">psb</span><span
class="cmtt-10">_prec</span><span class="cmtt-10">_Tprec</span><span
class="cmtt-10">_type</span></a>. class="cmtt-10">_type</span></a>.
</dd><dt class="description"> </dd><dt class="description">
<!--l. 385--><p class="noindent" > <!--l. 400--><p class="noindent" >
<span <span
class="pplb7t-">On Exit</span> </dt><dd class="pplb7t-">On Exit</span> </dt><dd
class="description"> class="description">
<!--l. 385--><p class="noindent" > <!--l. 400--><p class="noindent" >
</dd><dt class="description"> </dd><dt class="description">
<!--l. 387--><p class="noindent" > <!--l. 402--><p class="noindent" >
<span <span
class="pplb7t-">prec</span> </dt><dd class="pplb7t-">prec</span> </dt><dd
class="description"> class="description">
<!--l. 387--><p class="noindent" >Scope: <span <!--l. 402--><p class="noindent" >Scope: <span
class="pplb7t-">local </span><br class="pplb7t-">local </span><br
class="newline" />Type: <span class="newline" />Type: <span
class="pplb7t-">required</span><br class="pplb7t-">required</span><br
@ -975,21 +984,21 @@ class="pplb7t-">inout</span>.<br
class="newline" />Specified as: a preconditioner data structure <a class="newline" />Specified as: a preconditioner data structure <a
href="userhtmlse3.html#precdata"><span href="userhtmlse3.html#precdata"><span
class="cmtt-10">psb</span><span class="cmtt-10">psb</span><span
class="cmtt-10">_prec</span><span class="cmtt-10">_Tprec</span><span
class="cmtt-10">_type</span></a>. class="cmtt-10">_type</span></a>.
</dd><dt class="description"> </dd><dt class="description">
<!--l. 392--><p class="noindent" > <!--l. 407--><p class="noindent" >
<span <span
class="pplb7t-">info</span> </dt><dd class="pplb7t-">info</span> </dt><dd
class="description"> class="description">
<!--l. 392--><p class="noindent" >Scope: <span <!--l. 407--><p class="noindent" >Scope: <span
class="pplb7t-">global </span><br class="pplb7t-">global </span><br
class="newline" />Type: <span class="newline" />Type: <span
class="pplb7t-">required</span><br class="pplb7t-">required</span><br
class="newline" />Intent: <span class="newline" />Intent: <span
class="pplb7t-">out</span>.<br class="pplb7t-">out</span>.<br
class="newline" />Error code: if no error, 0 is returned.</dd></dl> class="newline" />Error code: if no error, 0 is returned.</dd></dl>
<!--l. 398--><p class="noindent" ><span <!--l. 413--><p class="noindent" ><span
class="pplb7t-x-x-120">Notes </span>Releases all internal storage. class="pplb7t-x-x-120">Notes </span>Releases all internal storage.

@ -82,7 +82,7 @@ iteration.
<pre class="lstlisting" id="listing-196"><span class="label"><a <pre class="lstlisting" id="listing-218"><span class="label"><a
id="x17-144001r1"></a></span><span style="color:#000000"><span id="x17-144001r1"></a></span><span style="color:#000000"><span
class="cmtt-10">call</span></span><span style="color:#000000"> </span><span style="color:#000000"><span class="cmtt-10">call</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">psb_krylov</span></span><span style="color:#000000"><span class="cmtt-10">psb_krylov</span></span><span style="color:#000000"><span
@ -231,7 +231,7 @@ class="pplb7t-">in</span>.<br
class="newline" />Specified as: a structured data of type <a class="newline" />Specified as: a structured data of type <a
href="userhtmlse3.html#precdata"><span href="userhtmlse3.html#precdata"><span
class="cmtt-10">psb</span><span class="cmtt-10">psb</span><span
class="cmtt-10">_prec</span><span class="cmtt-10">_Tprec</span><span
class="cmtt-10">_type</span></a>. class="cmtt-10">_type</span></a>.
</dd><dt class="description"> </dd><dt class="description">
<!--l. 71--><p class="noindent" > <!--l. 71--><p class="noindent" >
@ -524,7 +524,7 @@ class="zplmr7m-x-x-76">i</span></sub> the corresponding residual at the <span
class="zplmr7m-">i</span>-th class="zplmr7m-">i</span>-th
iteration. iteration.
<!--l. 179--> <!--l. 179-->
<pre class="lstlisting" id="listing-197"><span class="label"><a <pre class="lstlisting" id="listing-219"><span class="label"><a
id="x17-145001r1"></a></span><span style="color:#000000"><span id="x17-145001r1"></a></span><span style="color:#000000"><span
class="cmtt-10">call</span></span><span style="color:#000000"> </span><span style="color:#000000"><span class="cmtt-10">call</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">psb_richardson</span></span><span style="color:#000000"><span class="cmtt-10">psb_richardson</span></span><span style="color:#000000"><span
@ -607,7 +607,7 @@ class="pplb7t-">in</span>.<br
class="newline" />Specified as: a structured data of type <a class="newline" />Specified as: a structured data of type <a
href="userhtmlse3.html#precdata"><span href="userhtmlse3.html#precdata"><span
class="cmtt-10">psb</span><span class="cmtt-10">psb</span><span
class="cmtt-10">_prec</span><span class="cmtt-10">_Tprec</span><span
class="cmtt-10">_type</span></a>. class="cmtt-10">_type</span></a>.
</dd><dt class="description"> </dd><dt class="description">
<!--l. 198--><p class="noindent" > <!--l. 198--><p class="noindent" >

@ -42,11 +42,11 @@ class="cmtt-10">http://sourceforge.net/projects/librsb/</span></a>, for comput
multicore parallel machines.</dd></dl> multicore parallel machines.</dd></dl>
<!--l. 14--><p class="noindent" >The infrastructure laid out in the base library to allow for these extensions is detailed in <!--l. 14--><p class="noindent" >The infrastructure laid out in the base library to allow for these extensions is detailed in
the references&#x00A0;<span class="cite">[<a the references&#x00A0;<span class="cite">[<a
href="userhtmlli2.html#XDesPat:11">20</a>,&#x00A0;<a href="userhtmlli2.html#XDesPat:11">21</a>,&#x00A0;<a
href="userhtmlli2.html#XCaFiRo:2014">21</a>,&#x00A0;<a href="userhtmlli2.html#XCaFiRo:2014">22</a>,&#x00A0;<a
href="userhtmlli2.html#XSparse03">10</a>]</span>; the CUDA-specific data formats are described href="userhtmlli2.html#XSparse03">11</a>]</span>; the CUDA-specific data formats are described
in&#x00A0;<span class="cite">[<a in&#x00A0;<span class="cite">[<a
href="userhtmlli2.html#XOurTechRep">22</a>]</span>. href="userhtmlli2.html#XOurTechRep">23</a>]</span>.
<!--l. 19--><p class="noindent" > <!--l. 19--><p class="noindent" >
<h4 class="subsectionHead"><span class="titlemark">12.1 </span> <a <h4 class="subsectionHead"><span class="titlemark">12.1 </span> <a
id="x19-14700012.1"></a>Using the extensions</h4> id="x19-14700012.1"></a>Using the extensions</h4>
@ -149,120 +149,120 @@ the base classes in PSBLAS, through the Fortran&#x00A0;2003 mechanism of <span
class="pplri7t-">type</span> class="pplri7t-">type</span>
<span <span
class="pplri7t-">extension</span>&#x00A0;<span class="cite">[<a class="pplri7t-">extension</span>&#x00A0;<span class="cite">[<a
href="userhtmlli2.html#XMRC:11">17</a>]</span>. href="userhtmlli2.html#XMRC:11">18</a>]</span>.
<!--l. 155--><p class="indent" > The data classes are divided between the general purpose CPU extensions, the <!--l. 155--><p class="indent" > The data classes are divided between the general purpose CPU extensions, the
GPU interfaces and the RSB interfaces. In the description we will make use of the GPU interfaces and the RSB interfaces. In the description we will make use of the
notation introduced in Table&#x00A0;<a notation introduced in Table&#x00A0;<a
href="#x19-148001r23">23<!--tex4ht:ref: tab:notation --></a>. href="#x19-148001r22">22<!--tex4ht:ref: tab:notation --></a>.
<div class="table"> <div class="table">
<!--l. 160--><p class="indent" > <a <!--l. 160--><p class="indent" > <a
id="x19-148001r23"></a><hr class="float"><div class="float" id="x19-148001r22"></a><hr class="float"><div class="float"
> >
<div class="caption" <div class="caption"
><span class="id">Table&#x00A0;23: </span><span ><span class="id">Table&#x00A0;22: </span><span
class="content">Notation for parameters describing a sparse matrix</span></div><!--tex4ht:label?: x19-148001r23 --> class="content">Notation for parameters describing a sparse matrix</span></div><!--tex4ht:label?: x19-148001r22 -->
<div class="center" <div class="center"
> >
<!--l. 162--><p class="noindent" > <!--l. 162--><p class="noindent" >
<div class="tabular"> <table id="TBL-26" class="tabular" <div class="tabular"> <table id="TBL-25" class="tabular"
><colgroup id="TBL-26-1g"><col ><colgroup id="TBL-25-1g"><col
id="TBL-26-1"><col id="TBL-25-1"><col
id="TBL-26-2"></colgroup><tr id="TBL-25-2"></colgroup><tr
class="hline"><td><hr></td><td><hr></td></tr><tr class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-26-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-1-1" style="vertical-align:baseline;" id="TBL-25-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-1-1"
class="td11"><span class="td11"><span
class="pplr7t-x-x-80">Name </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-26-1-2" class="pplr7t-x-x-80">Name </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-25-1-2"
class="td11"><span class="td11"><span
class="pplr7t-x-x-80">Description </span></td> class="pplr7t-x-x-80">Description </span></td>
</tr><tr </tr><tr
class="hline"><td><hr></td><td><hr></td></tr><tr class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-26-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-2-1" style="vertical-align:baseline;" id="TBL-25-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-2-1"
class="td11"><span class="td11"><span
class="pplr7t-x-x-80">M </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-26-2-2" class="pplr7t-x-x-80">M </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-25-2-2"
class="td11"><span class="td11"><span
class="pplr7t-x-x-80">Number of rows in matrix </span></td></tr><tr class="pplr7t-x-x-80">Number of rows in matrix </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-26-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-3-1" style="vertical-align:baseline;" id="TBL-25-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-3-1"
class="td class="td
11"><span 11"><span
class="pplr7t-x-x-80">N </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-26-3-2" class="pplr7t-x-x-80">N </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-25-3-2"
class="td11"><span class="td11"><span
class="pplr7t-x-x-80">Number of columns in matrix </span></td></tr><tr class="pplr7t-x-x-80">Number of columns in matrix </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-26-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-4-1" style="vertical-align:baseline;" id="TBL-25-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-4-1"
class="td class="td
11"><span 11"><span
class="pplr7t-x-x-80">NZ </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-26-4-2" class="pplr7t-x-x-80">NZ </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-25-4-2"
class="td11"><span class="td11"><span
class="pplr7t-x-x-80">Number of nonzeros in matrix </span></td></tr><tr class="pplr7t-x-x-80">Number of nonzeros in matrix </span></td></tr><tr
style="vertical-align:baseline;" id="TBL-26-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-5-1" style="vertical-align:baseline;" id="TBL-25-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-5-1"
class="td class="td
11"><span 11"><span
class="pplr7t-x-x-80">AVGNZR </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-26-5-2" class="pplr7t-x-x-80">AVGNZR </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-25-5-2"
class="td11"><span class="td11"><span
class="pplr7t-x-x-80">Average number of nonzeros per row </span></td> class="pplr7t-x-x-80">Average number of nonzeros per row </span></td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-26-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-6-1" style="vertical-align:baseline;" id="TBL-25-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-6-1"
class="td11"><span class="td11"><span
class="pplr7t-x-x-80">MAXNZR</span></td><td style="white-space:nowrap; text-align:left;" id="TBL-26-6-2" class="pplr7t-x-x-80">MAXNZR</span></td><td style="white-space:nowrap; text-align:left;" id="TBL-25-6-2"
class="td11"><span class="td11"><span
class="pplr7t-x-x-80">Maximum number of nonzeros per row</span></td> class="pplr7t-x-x-80">Maximum number of nonzeros per row</span></td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-26-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-7-1" style="vertical-align:baseline;" id="TBL-25-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-7-1"
class="td11"><span class="td11"><span
class="pplr7t-x-x-80">NDIAG </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-26-7-2" class="pplr7t-x-x-80">NDIAG </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-25-7-2"
class="td11"><span class="td11"><span
class="pplr7t-x-x-80">Numero of nonzero diagonals </span></td> class="pplr7t-x-x-80">Numero of nonzero diagonals </span></td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-26-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-8-1" style="vertical-align:baseline;" id="TBL-25-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-8-1"
class="td11"><span class="td11"><span
class="pplr7t-x-x-80">AS </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-26-8-2" class="pplr7t-x-x-80">AS </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-25-8-2"
class="td11"><span class="td11"><span
class="pplr7t-x-x-80">Coefficients array </span></td> class="pplr7t-x-x-80">Coefficients array </span></td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-26-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-9-1" style="vertical-align:baseline;" id="TBL-25-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-9-1"
class="td11"><span class="td11"><span
class="pplr7t-x-x-80">IA </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-26-9-2" class="pplr7t-x-x-80">IA </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-25-9-2"
class="td11"><span class="td11"><span
class="pplr7t-x-x-80">Row indices array </span></td> class="pplr7t-x-x-80">Row indices array </span></td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-26-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-10-1" style="vertical-align:baseline;" id="TBL-25-10-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-10-1"
class="td11"><span class="td11"><span
class="pplr7t-x-x-80">JA </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-26-10-2" class="pplr7t-x-x-80">JA </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-25-10-2"
class="td11"><span class="td11"><span
class="pplr7t-x-x-80">Column indices array </span></td> class="pplr7t-x-x-80">Column indices array </span></td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-26-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-11-1" style="vertical-align:baseline;" id="TBL-25-11-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-11-1"
class="td11"><span class="td11"><span
class="pplr7t-x-x-80">IRP </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-26-11-2" class="pplr7t-x-x-80">IRP </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-25-11-2"
class="td11"><span class="td11"><span
class="pplr7t-x-x-80">Row start pointers array </span></td> class="pplr7t-x-x-80">Row start pointers array </span></td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-26-12-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-12-1" style="vertical-align:baseline;" id="TBL-25-12-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-12-1"
class="td11"><span class="td11"><span
class="pplr7t-x-x-80">JCP </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-26-12-2" class="pplr7t-x-x-80">JCP </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-25-12-2"
class="td11"><span class="td11"><span
class="pplr7t-x-x-80">Column start pointers array </span></td> class="pplr7t-x-x-80">Column start pointers array </span></td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-26-13-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-13-1" style="vertical-align:baseline;" id="TBL-25-13-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-13-1"
class="td11"><span class="td11"><span
class="pplr7t-x-x-80">NZR </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-26-13-2" class="pplr7t-x-x-80">NZR </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-25-13-2"
class="td11"><span class="td11"><span
class="pplr7t-x-x-80">Number of nonzeros per row array </span></td> class="pplr7t-x-x-80">Number of nonzeros per row array </span></td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-26-14-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-14-1" style="vertical-align:baseline;" id="TBL-25-14-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-14-1"
class="td11"><span class="td11"><span
class="pplr7t-x-x-80">OFFSET </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-26-14-2" class="pplr7t-x-x-80">OFFSET </span></td><td style="white-space:nowrap; text-align:left;" id="TBL-25-14-2"
class="td11"><span class="td11"><span
class="pplr7t-x-x-80">Offset for diagonals </span></td> class="pplr7t-x-x-80">Offset for diagonals </span></td>
</tr><tr </tr><tr
class="hline"><td><hr></td><td><hr></td></tr><tr class="hline"><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-26-15-"><td style="white-space:nowrap; text-align:left;" id="TBL-26-15-1" style="vertical-align:baseline;" id="TBL-25-15-"><td style="white-space:nowrap; text-align:left;" id="TBL-25-15-1"
class="td11"> </td></tr></table> </div> class="td11"> </td></tr></table> </div>
</div> </div>
@ -343,7 +343,7 @@ href="#x19-148002r5">5<!--tex4ht:ref: fig:dense --></a></span></div><!--tex4ht:l
<!--l. 231--> <!--l. 231-->
<pre class="lstlisting" id="listing-198"><span class="label"><a <pre class="lstlisting" id="listing-220"><span class="label"><a
id="x19-150003r1"></a></span><span id="x19-150003r1"></a></span><span
class="cmtt-9">&#x00A0;</span><span class="cmtt-9">&#x00A0;</span><span
class="cmtt-9">&#x00A0;</span><span class="cmtt-9">&#x00A0;</span><span

@ -21,7 +21,7 @@ href="userhtml.html# " >up</a>] </p></div>
<h4 class="likesubsectionHead"><a <h4 class="likesubsectionHead"><a
id="x20-156000"></a>psb_cuda_init &#8212; Initializes PSBLAS-CUDA environment</h4> id="x20-156000"></a>psb_cuda_init &#8212; Initializes PSBLAS-CUDA environment</h4>
<a <a
id="Q1-20-195"></a> id="Q1-20-194"></a>
<div class="center" <div class="center"
> >
<!--l. 99--><p class="noindent" > <!--l. 99--><p class="noindent" >
@ -70,7 +70,7 @@ class="pplb7t-x-x-120">Notes</span>
<h4 class="likesubsectionHead"><a <h4 class="likesubsectionHead"><a
id="x20-157000"></a>psb_cuda_exit &#8212; Exit from PSBLAS-CUDA environment</h4> id="x20-157000"></a>psb_cuda_exit &#8212; Exit from PSBLAS-CUDA environment</h4>
<a <a
id="Q1-20-197"></a> id="Q1-20-196"></a>
<div class="center" <div class="center"
> >
<!--l. 137--><p class="noindent" > <!--l. 137--><p class="noindent" >
@ -108,7 +108,7 @@ class="newline" />Specified as: an integer variable.</dd></dl>
<h4 class="likesubsectionHead"><a <h4 class="likesubsectionHead"><a
id="x20-158000"></a>psb_cuda_DeviceSync &#8212; Synchronize CUDA device</h4> id="x20-158000"></a>psb_cuda_DeviceSync &#8212; Synchronize CUDA device</h4>
<a <a
id="Q1-20-199"></a> id="Q1-20-198"></a>
@ -125,7 +125,7 @@ CUDA-side code, have completed.
<h4 class="likesubsectionHead"><a <h4 class="likesubsectionHead"><a
id="x20-159000"></a>psb_cuda_getDeviceCount </h4> id="x20-159000"></a>psb_cuda_getDeviceCount </h4>
<a <a
id="Q1-20-201"></a> id="Q1-20-200"></a>
<div class="center" <div class="center"
> >
<!--l. 190--><p class="noindent" > <!--l. 190--><p class="noindent" >
@ -138,7 +138,7 @@ ngpus&#x00A0;=&#x00A0;&#x00A0;psb_cuda_getDeviceCount()
<h4 class="likesubsectionHead"><a <h4 class="likesubsectionHead"><a
id="x20-160000"></a>psb_cuda_getDevice </h4> id="x20-160000"></a>psb_cuda_getDevice </h4>
<a <a
id="Q1-20-203"></a> id="Q1-20-202"></a>
<div class="center" <div class="center"
> >
<!--l. 209--><p class="noindent" > <!--l. 209--><p class="noindent" >
@ -154,7 +154,7 @@ ngpus&#x00A0;=&#x00A0;&#x00A0;psb_cuda_getDevice()
<h4 class="likesubsectionHead"><a <h4 class="likesubsectionHead"><a
id="x20-161000"></a>psb_cuda_setDevice </h4> id="x20-161000"></a>psb_cuda_setDevice </h4>
<a <a
id="Q1-20-205"></a> id="Q1-20-204"></a>
<div class="center" <div class="center"
> >
<!--l. 228--><p class="noindent" > <!--l. 228--><p class="noindent" >
@ -167,7 +167,7 @@ info&#x00A0;=&#x00A0;psb_cuda_setDevice(dev)
<h4 class="likesubsectionHead"><a <h4 class="likesubsectionHead"><a
id="x20-162000"></a>psb_cuda_DeviceHasUVA </h4> id="x20-162000"></a>psb_cuda_DeviceHasUVA </h4>
<a <a
id="Q1-20-207"></a> id="Q1-20-206"></a>
<div class="center" <div class="center"
> >
<!--l. 247--><p class="noindent" > <!--l. 247--><p class="noindent" >
@ -180,7 +180,7 @@ hasUva&#x00A0;=&#x00A0;psb_cuda_DeviceHasUVA()
<h4 class="likesubsectionHead"><a <h4 class="likesubsectionHead"><a
id="x20-163000"></a>psb_cuda_WarpSize </h4> id="x20-163000"></a>psb_cuda_WarpSize </h4>
<a <a
id="Q1-20-209"></a> id="Q1-20-208"></a>
<div class="center" <div class="center"
> >
<!--l. 267--><p class="noindent" > <!--l. 267--><p class="noindent" >
@ -196,7 +196,7 @@ nw&#x00A0;=&#x00A0;psb_cuda_WarpSize()
<h4 class="likesubsectionHead"><a <h4 class="likesubsectionHead"><a
id="x20-164000"></a>psb_cuda_MultiProcessors </h4> id="x20-164000"></a>psb_cuda_MultiProcessors </h4>
<a <a
id="Q1-20-211"></a> id="Q1-20-210"></a>
<div class="center" <div class="center"
> >
<!--l. 287--><p class="noindent" > <!--l. 287--><p class="noindent" >
@ -209,7 +209,7 @@ nmp&#x00A0;=&#x00A0;psb_cuda_MultiProcessors()
<h4 class="likesubsectionHead"><a <h4 class="likesubsectionHead"><a
id="x20-165000"></a>psb_cuda_MaxThreadsPerMP </h4> id="x20-165000"></a>psb_cuda_MaxThreadsPerMP </h4>
<a <a
id="Q1-20-213"></a> id="Q1-20-212"></a>
<div class="center" <div class="center"
> >
<!--l. 306--><p class="noindent" > <!--l. 306--><p class="noindent" >
@ -222,7 +222,7 @@ nt&#x00A0;=&#x00A0;psb_cuda_MaxThreadsPerMP()
<h4 class="likesubsectionHead"><a <h4 class="likesubsectionHead"><a
id="x20-166000"></a>psb_cuda_MaxRegistersPerBlock </h4> id="x20-166000"></a>psb_cuda_MaxRegistersPerBlock </h4>
<a <a
id="Q1-20-215"></a> id="Q1-20-214"></a>
<div class="center" <div class="center"
> >
<!--l. 326--><p class="noindent" > <!--l. 326--><p class="noindent" >
@ -238,7 +238,7 @@ nr&#x00A0;=&#x00A0;psb_cuda_MaxRegistersPerBlock()
<h4 class="likesubsectionHead"><a <h4 class="likesubsectionHead"><a
id="x20-167000"></a>psb_cuda_MemoryClockRate </h4> id="x20-167000"></a>psb_cuda_MemoryClockRate </h4>
<a <a
id="Q1-20-217"></a> id="Q1-20-216"></a>
<div class="center" <div class="center"
> >
<!--l. 346--><p class="noindent" > <!--l. 346--><p class="noindent" >
@ -251,7 +251,7 @@ cl&#x00A0;=&#x00A0;psb_cuda_MemoryClockRate()
<h4 class="likesubsectionHead"><a <h4 class="likesubsectionHead"><a
id="x20-168000"></a>psb_cuda_MemoryBusWidth </h4> id="x20-168000"></a>psb_cuda_MemoryBusWidth </h4>
<a <a
id="Q1-20-219"></a> id="Q1-20-218"></a>
<div class="center" <div class="center"
> >
<!--l. 365--><p class="noindent" > <!--l. 365--><p class="noindent" >
@ -264,7 +264,7 @@ nb&#x00A0;=&#x00A0;psb_cuda_MemoryBusWidth()
<h4 class="likesubsectionHead"><a <h4 class="likesubsectionHead"><a
id="x20-169000"></a>psb_cuda_MemoryPeakBandwidth </h4> id="x20-169000"></a>psb_cuda_MemoryPeakBandwidth </h4>
<a <a
id="Q1-20-221"></a> id="Q1-20-220"></a>
<div class="center" <div class="center"
> >
<!--l. 384--><p class="noindent" > <!--l. 384--><p class="noindent" >
@ -282,6 +282,10 @@ bw&#x00A0;=&#x00A0;psb_cuda_MemoryPeakBandwidth()
<!--l. 134--><p class="indent" >

@ -35,7 +35,7 @@ process are executed through calls to the serial sparse BLAS subroutines. In a
similar way, the inter-process message exchanges are encapsulated in an similar way, the inter-process message exchanges are encapsulated in an
applicaiton layer that has been strongly inspired by the Basic Linear Algebra applicaiton layer that has been strongly inspired by the Basic Linear Algebra
Communication Subroutines (BLACS) library&#x00A0;<span class="cite">[<a Communication Subroutines (BLACS) library&#x00A0;<span class="cite">[<a
href="userhtmlli2.html#XBLACS">6</a>]</span>. Usually there is no need to deal href="userhtmlli2.html#XBLACS">7</a>]</span>. Usually there is no need to deal
directly with MPI; however, in some cases, MPI routines are used directly directly with MPI; however, in some cases, MPI routines are used directly
to improve efficiency. For further details on our communication layer see to improve efficiency. For further details on our communication layer see
Sec.&#x00A0;<a Sec.&#x00A0;<a
@ -85,7 +85,7 @@ class="cmtt-10">BLOCK</span></span></span>, as well as completely
arbitrary assignments of equation indices to processes. In particular it is arbitrary assignments of equation indices to processes. In particular it is
consistent with the usage of graph partitioning tools commonly available in consistent with the usage of graph partitioning tools commonly available in
the literature, e.g. METIS&#x00A0;<span class="cite">[<a the literature, e.g. METIS&#x00A0;<span class="cite">[<a
href="userhtmlli2.html#XMETIS">13</a>]</span>. Dense vectors conform to sparse matrices, href="userhtmlli2.html#XMETIS">14</a>]</span>. Dense vectors conform to sparse matrices,
that is, the entries of a vector follow the same distribution of the matrix that is, the entries of a vector follow the same distribution of the matrix
rows. rows.
<!--l. 146--><p class="indent" > We assume that the sparse matrix is built in parallel, where each process generates <!--l. 146--><p class="indent" > We assume that the sparse matrix is built in parallel, where each process generates
@ -164,8 +164,8 @@ class="description">
<!--l. 202--><p class="noindent" >Overlap points do not usually exist in the basic data distributions; however they are a <!--l. 202--><p class="noindent" >Overlap points do not usually exist in the basic data distributions; however they are a
feature of Domain Decomposition Schwarz preconditioners which are the subject of feature of Domain Decomposition Schwarz preconditioners which are the subject of
related research work&#x00A0;<span class="cite">[<a related research work&#x00A0;<span class="cite">[<a
href="userhtmlli2.html#X2007c">3</a>,&#x00A0;<a href="userhtmlli2.html#X2007c">4</a>,&#x00A0;<a
href="userhtmlli2.html#X2007d">2</a>]</span>. href="userhtmlli2.html#X2007d">3</a>]</span>.
<!--l. 207--><p class="indent" > We denote the sets of internal, boundary and halo points for a given subdomain <!--l. 207--><p class="indent" > We denote the sets of internal, boundary and halo points for a given subdomain
by <span by <span
class="zplmr7y-"><img class="zplmr7y-"><img

@ -1055,8 +1055,8 @@ class="cmtt-10">_Tspmat</span><span
class="cmtt-10">_type </span>class contains all information about the local portion of the class="cmtt-10">_type </span>class contains all information about the local portion of the
sparse matrix and its storage mode. Its design is based on the STATE design sparse matrix and its storage mode. Its design is based on the STATE design
pattern&#x00A0;<span class="cite">[<a pattern&#x00A0;<span class="cite">[<a
href="userhtmlli2.html#XDesignPatterns">12</a>]</span> as detailed in&#x00A0;<span class="cite">[<a href="userhtmlli2.html#XDesignPatterns">13</a>]</span> as detailed in&#x00A0;<span class="cite">[<a
href="userhtmlli2.html#XSparse03">10</a>]</span>; the type declaration is shown in figure&#x00A0;<a href="userhtmlli2.html#XSparse03">11</a>]</span>; the type declaration is shown in figure&#x00A0;<a
href="#x8-26001r2">2<!--tex4ht:ref: fig:spmattype --></a> where <code class="lstinline"><span style="color:#000000">T</span></code> is href="#x8-26001r2">2<!--tex4ht:ref: fig:spmattype --></a> where <code class="lstinline"><span style="color:#000000">T</span></code> is
a placeholder for the data type and precision variants a placeholder for the data type and precision variants
<dl class="description"><dt class="description"> <dl class="description"><dt class="description">

@ -3843,7 +3843,7 @@ class="pplb7t-">in</span>.<br
class="newline" />Specified as: a preconditioner data structure <a class="newline" />Specified as: a preconditioner data structure <a
href="userhtmlse3.html#precdata"><span href="userhtmlse3.html#precdata"><span
class="cmtt-10">psb</span><span class="cmtt-10">psb</span><span
class="cmtt-10">_prec</span><span class="cmtt-10">_Tprec</span><span
class="cmtt-10">_type</span></a>. class="cmtt-10">_type</span></a>.

Binary file not shown.

After

Width:  |  Height:  |  Size: 325 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 378 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 290 B

File diff suppressed because it is too large Load Diff

@ -8,6 +8,11 @@ in J.~Dongarra, K.~Madsen, J.~Wasniewski, editors,
Proceedings of PARA~04 Workshop on State of the Art Proceedings of PARA~04 Workshop on State of the Art
in Scientific Computing, pp.~546--553, Lecture Notes in Computer Science, in Scientific Computing, pp.~546--553, Lecture Notes in Computer Science,
Springer, 2005. Springer, 2005.
\bibitem{BERTACCINIFILIPPONE}
D. Bertaccini\ and\ S. Filippone,
{\em Sparse approximate inverse preconditioners on high performance GPU platforms},
Comput. Math. Appl., 71, (2016), no.~3, 693--711.
%
\bibitem{2007d} A. Buttari, D. di Serafino, P. D'Ambra, S. Filippone,\newblock \bibitem{2007d} A. Buttari, D. di Serafino, P. D'Ambra, S. Filippone,\newblock
2LEV-D2P4: a package of high-performance preconditioners,\newblock 2LEV-D2P4: a package of high-performance preconditioners,\newblock
Applicable Algebra in Engineering, Communications and Computing, Applicable Algebra in Engineering, Communications and Computing,
@ -183,7 +188,14 @@ MIT Press, 1998.
{\em Scientific Programming\/}~{\em 22,\/}~1, 1--19. {\em Scientific Programming\/}~{\em 22,\/}~1, 1--19.
\bibitem{OurTechRep} \bibitem{OurTechRep}
D.~Barbieri, V.~Cardellini, A.~Fanfarillo, S.~Filippone, Three storage formats D.~Barbieri, V.~Cardellini, A.~Fanfarillo, S.~Filippone, Three storage formats
for sparse matrices on {GPGPUs}, Tech. Rep. DICII RR-15.6, Universit\`a di for sparse matrices on {GPGPUs}, Tech. Rep. DICII RR-15.6,
Universit\`a di
Roma Tor Vergata (February 2015). Roma Tor Vergata (February 2015).
\bibitem{Filippone:2017:SMM:3034774.3017994}
S.~Filippone, V.~Cardellini, D.~Barbieri, and A.~Fanfarillo.
Sparse matrix-vector multiplication on {GPGPUs}.
{\em ACM Trans. Math. Softw.}, 43(4):30:1--30:49, 2017.
\end{thebibliography} \end{thebibliography}

@ -1,6 +1,6 @@
\section{Error handling} \section{Error handling\label{sec:errors}}
The PSBLAS library error handling policy has been completely rewritten The PSBLAS library error handling policy has been completely rewritten
in version 2.0. The idea behind the design of this new error handling in version 2.0. The idea behind the design of this new error handling

@ -76,11 +76,10 @@ $ptype$ string as follows\footnote{The string is case-insensitive}:
\item[DIAG] Diagonal scaling; each entry of the input vector is \item[DIAG] Diagonal scaling; each entry of the input vector is
multiplied by the reciprocal of the sum of the absolute values of multiplied by the reciprocal of the sum of the absolute values of
the coefficients in the corresponding row of matrix $A$; the coefficients in the corresponding row of matrix $A$;
\item[BJAC] Precondition by a factorization of the \item[BJAC] Precondition by a factorization or an approximante inverse
block-diagonal of matrix $A$, where block boundaries are determined of the block-diagonal of matrix $A$, where block boundaries are
by the data allocation boundaries for each process; requires no determined by the data allocation boundaries for each process;
communication. Only the incomplete factorization $ILU(0)$ is requires no communication. See also Table-\ref{tab:p_subsolve_1}.
currently implemented.
\end{description} \end{description}
@ -105,13 +104,13 @@ contained in \fortinline|val|.
\fortinline|what| & \fortinline|character(len=*)|. \\ \fortinline|what| & \fortinline|character(len=*)|. \\
& The parameter to be set. It can be specified through its name; & The parameter to be set. It can be specified through its name;
the string is case-insensitive. See the string is case-insensitive. See
Tables~\ref{tab:p_cycle}-\ref{tab:p_smoother_1}.\\ Table~\ref{tab:p_subsolve_1}.\\
\fortinline|val | & \fortinline|integer| \emph{or} \fortinline|character(len=*)| \emph{or} \fortinline|val | & \fortinline|integer| \emph{or} \fortinline|character(len=*)| \emph{or}
\fortinline|real(psb_spk_)| \emph{or} \fortinline|real(psb_dpk_)|, \fortinline|real(psb_spk_)| \emph{or} \fortinline|real(psb_dpk_)|,
\fortinline|intent(in)|.\\ \fortinline|intent(in)|.\\
& The value of the parameter to be set. The list of allowed & The value of the parameter to be set. The list of allowed
values and the corresponding data types is given in values and the corresponding data types is given in
Tables~\ref{tab:p_cycle}-\ref{tab:p_smoother_1}. Table~\ref{tab:p_subsolve_1}.
When the value is of type \fortinline|character(len=*)|, When the value is of type \fortinline|character(len=*)|,
it is also treated as case insensitive.\\ it is also treated as case insensitive.\\
\fortinline|info| & \fortinline|integer, intent(out)|.\\ \fortinline|info| & \fortinline|integer, intent(out)|.\\
@ -123,13 +122,14 @@ contained in \fortinline|val|.
\noindent \noindent
A number of subdomain solvers can be chosen with this method; 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 a list of the parameters that can be set, along with their allowed and
default values, is given in Tables~\ref{tab:p_cycle}-\ref{tab:p_smoother_1}.\\ default values, is given in Table-\ref{tab:p_subsolve_1}.\\
\bsideways \bsideways
\begin{center} \begin{center}
\small \small
\begin{tabular}{|p{3.6cm}|l|p{1.9cm}|p{3.6cm}|p{6.5cm}|} % \begin{tabular}{|p{3.6cm}|l|p{1.9cm}|p{3.6cm}|p{6.5cm}|}
\begin{tabular}{|p{3.2cm}|l|p{2.6cm}|p{2.6cm}|p{6.7cm}|}
\hline \hline
\fortinline|what| & \textsc{data type} & \fortinline|val| & \textsc{default} & \fortinline|what| & \textsc{data type} & \fortinline|val| & \textsc{default} &
\textsc{comments} \\ \hline \textsc{comments} \\ \hline
@ -148,20 +148,6 @@ default values, is given in Tables~\ref{tab:p_cycle}-\ref{tab:p_smoother_1}.\\
do not employ triangular system solve do not employ triangular system solve
kernels, kernels,
see~\cite{BERTACCINIFILIPPONE}.\\ \hline see~\cite{BERTACCINIFILIPPONE}.\\ \hline
\hline
\end{tabular}
\end{center}
\caption{Parameters defining the solver or the details of the one-level preconditioner.
\label{tab:p_smoother}}
\esideways
\bsideways
\begin{center}
\small
\begin{tabular}{|p{3.2cm}|l|p{2.6cm}|p{2.6cm}|p{6.7cm}|}
\hline
\fortinline|what| & \textsc{data type} & \fortinline|val| & \textsc{default} &
\textsc{comments} \\ \hline
\fortinline|'SUB_FILLIN'| & \fortinline|integer| \fortinline|'SUB_FILLIN'| & \fortinline|integer|
& Any integer \par number~$\ge 0$ & Any integer \par number~$\ge 0$
& 0 & 0
@ -170,12 +156,41 @@ default values, is given in Tables~\ref{tab:p_cycle}-\ref{tab:p_smoother_1}.\\
& Any real number~$\ge 0$ & Any real number~$\ge 0$
& 0 & 0
& Drop tolerance $t$ in the ILU($p,t$) factorization. \\ \hline & Drop tolerance $t$ in the ILU($p,t$) factorization. \\ \hline
\hline \fortinline|'ILU_ALG'| & \fortinline|character(len=*)|
& \fortinline|'MILU'|
& \fortinline|'NONE'|
& ILU algorithmic variant \\ \hline
\fortinline|'ILUT_SCALE'| & \fortinline|character(len=*)|
& \fortinline|'MAXVAL'| \par
\fortinline|'DIAG'| \par
\fortinline|'ARSWUM'| \par
\fortinline|'ARCSUM'| \par
\fortinline|'ACLSUM'| \par
\fortinline|'NONE'|
& \fortinline|'NONE'|
& ILU scaling strategy \\ \hline
\fortinline|'INV_FILLIN'| & \fortinline|integer|
& Any integer \par number~$\ge 0$
& 0
& Second fill-in level $q$ of the INVK($p,q$)
approximate inverse. \\ \hline
\fortinline|'INV_ILUTHRS'| & \fortinline|real(kind_parameter)|
& Any real number~$\ge 0$
& 0
& Second drop tolerance $s$ in the
INVT($t,s$) approximate inverse. \\ \hline
\fortinline|'AINV_ALG'| & \fortinline|character(len=*)|
& \fortinline|'LLK'| \par
\fortinline|'SYM-LLK'| \par
\fortinline|'STAB-LLK'| \par
\fortinline|'MLK,LMX'|
& \fortinline|'LLK'|
& AINV algorithmic strategy. \\ \hline
\end{tabular} \end{tabular}
\end{center} \end{center}
\caption{Parameters defining the smoother or the details of the one-level preconditioner \caption{Parameters defining the solver of the BJAC
(continued).\label{tab:p_smoother_1}} preconditioner.\label{tab:p_subsolve_1}}
\esideways \esideways

@ -93,7 +93,7 @@
\newcommand{\example}{\stepcounter{example}% \newcommand{\example}{\stepcounter{example}%
\section*{\examplename~\theexample}} \section*{\examplename~\theexample}}
\newcommand{\precdata}{\hyperlink{precdata}{{\tt psb\_prec\_type}}} \newcommand{\precdata}{\hyperlink{precdata}{{\tt psb\_Tprec\_type}}}
\newcommand{\descdata}{\hyperlink{descdata}{{\tt psb\_desc\_type}}} \newcommand{\descdata}{\hyperlink{descdata}{{\tt psb\_desc\_type}}}
\newcommand{\spdata}{\hyperlink{spdata}{{\tt psb\_Tspmat\_type}}} \newcommand{\spdata}{\hyperlink{spdata}{{\tt psb\_Tspmat\_type}}}
\newcommand{\vdata}{\hyperlink{vdata}{{\tt psb\_T\_vect\_type}}} \newcommand{\vdata}{\hyperlink{vdata}{{\tt psb\_T\_vect\_type}}}

@ -84,7 +84,7 @@
\newcommand{\example}{\stepcounter{example}% \newcommand{\example}{\stepcounter{example}%
\section*{\examplename~\theexample}} \section*{\examplename~\theexample}}
\newcommand{\precdata}{\hyperlink{precdata}{{\tt psb\_prec\_type}}} \newcommand{\precdata}{\hyperlink{precdata}{{\tt psb\_Tprec\_type}}}
\newcommand{\descdata}{\hyperlink{descdata}{{\tt psb\_desc\_type}}} \newcommand{\descdata}{\hyperlink{descdata}{{\tt psb\_desc\_type}}}
\newcommand{\spdata}{\hyperlink{spdata}{{\tt psb\_Tspmat\_type}}} \newcommand{\spdata}{\hyperlink{spdata}{{\tt psb\_Tspmat\_type}}}
\newcommand{\vdata}{\hyperlink{vdata}{{\tt psb\_T\_vect\_type}}} \newcommand{\vdata}{\hyperlink{vdata}{{\tt psb\_T\_vect\_type}}}

Loading…
Cancel
Save