Doc updates.

documentation
Salvatore Filippone 4 years ago
parent 44acd20726
commit eb6ba73525

Binary file not shown.

@ -32,15 +32,18 @@ class="cmr-12">4 </span></span> <a
id="x13-120004"></a><span
class="cmr-12">Getting Started</span></h3>
<!--l. 5--><p class="noindent" ><span
class="cmr-12">We describe the basics for building and applying AMG4PSBLAS one-level and</span>
class="cmr-12">This section describes the basics for building and applying AMG4PSBLAS one-level</span>
<span
class="cmr-12">multilevel (i.e., AMG) preconditioners with the Krylov solvers included in PSBLAS</span>
<span class="cite"><span
class="cmr-12">and multilevel (i.e., AMG) preconditioners with the Krylov solvers included in</span>
<span
class="cmr-12">PSBLAS </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XPSBLASGUIDE"><span
class="cmr-12">17</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">. The following steps are required:</span>
class="cmr-12">.</span>
<!--l. 9--><p class="indent" > <span
class="cmr-12">The following steps are required:</span>
<ol class="enumerate1" >
<li
class="enumerate" id="x13-12002x1"><span
@ -111,7 +114,7 @@ class="cmr-12">This is performed by the routine </span><span class="lstinline"><
class="cmtt-12">set</span><span
class="cmr-12">. This routine must be</span>
<span
class="cmr-12">called only if the user wants to modify the default values of the parameters</span>
class="cmr-12">called if the user wants to modify the default values of the parameters</span>
<span
class="cmr-12">associated with the selected preconditioner type, to obtain a variant of that</span>
<span
@ -144,14 +147,14 @@ class="cmti-12">Build the preconditioner for a given matrix</span><span
class="cmr-12">. If the selected preconditioner is</span>
<span
class="cmr-12">multilevel, then two steps must be performed, as specified next.</span>
<ol class="enumerate2" >
<li
class="enumerate" id="x13-12009x0"><span
class="cmti-12">Build the AMG hierarchy for a given matrix. </span><span
class="cmr-12">This is performed by the</span>
<span
class="cmr-12">routine </span><span class="lstinline"></span><span
class="cmtt-12">hierarchy_build</span><span
@ -165,7 +168,7 @@ class="cmr-12">This is performed by the</span>
class="cmr-12">routine </span><span class="lstinline"></span><span
class="cmtt-12">smoothers_build</span><span
class="cmr-12">.</span></li></ol>
<!--l. 41--><p class="noindent" ><span
<!--l. 48--><p class="noindent" ><span
class="cmr-12">If the selected preconditioner is one-level, it is built in a single step, performed by</span>
<span
class="cmr-12">the routine </span><span class="lstinline"></span><span
@ -199,7 +202,7 @@ class="cmr-12">.</span>
class="cmr-12">This step is complementary to step 1 and should be performed when the</span>
<span
class="cmr-12">preconditioner is no more used.</span></li></ol>
<!--l. 52--><p class="indent" > <span
<!--l. 59--><p class="indent" > <span
class="cmr-12">All the previous routines are available as methods of the preconditioner object. A</span>
<span
class="cmr-12">detailed description of them is given in Section</span><span
@ -217,7 +220,7 @@ class="cmr-12">.</span>
<!--l. 56--><p class="indent" > <a
<!--l. 63--><p class="indent" > <a
id="x13-12015r1"></a><hr class="float"><div class="float"
>
@ -225,7 +228,7 @@ class="cmr-12">.</span>
<div class="center"
>
<!--l. 57--><p class="noindent" >
<!--l. 64--><p class="noindent" >
<div class="tabular"> <table id="TBL-1" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-1-1g"><col
@ -240,7 +243,7 @@ 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-1-1-2"
class="td11"><!--l. 61--><p class="noindent" ><span
class="td11"><!--l. 68--><p class="noindent" ><span
class="cmcsc-10x-x-109"><span
class="small-caps">s</span><span
class="small-caps">t</span><span
@ -248,7 +251,7 @@ class="small-caps">r</span><span
class="small-caps">i</span><span
class="small-caps">n</span><span
class="small-caps">g</span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-1-3"
class="td11"><!--l. 61--><p class="noindent" ><span
class="td11"><!--l. 68--><p class="noindent" ><span
class="cmcsc-10x-x-109"><span
class="small-caps">d</span><span
class="small-caps">e</span><span
@ -274,17 +277,17 @@ class="small-caps">r</span></span> </td></tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-1-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-2-1"
class="td11">No preconditioner </td><td style="white-space:normal; text-align:left;" id="TBL-1-2-2"
class="td11"><!--l. 62--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 69--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-10x-x-109">&#8217;</span><span
class="cmtt-10x-x-109">NONE</span><span
class="cmtt-10x-x-109">&#8217;</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-2-3"
class="td11"><!--l. 62--><p class="noindent" >Considered to use the PSBLAS Krylov
class="td11"><!--l. 69--><p class="noindent" >Considered to use the PSBLAS Krylov
solvers with no preconditioner. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-1-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-3-1"
class="td11">Diagonal </td><td style="white-space:normal; text-align:left;" id="TBL-1-3-2"
class="td11"><!--l. 64--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 71--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-10x-x-109">&#8217;</span><span
class="cmtt-10x-x-109">DIAG</span><span
class="cmtt-10x-x-109">&#8217;</span>,
@ -298,7 +301,7 @@ class="cmtt-10x-x-109">L1</span><span
class="cmtt-10x-x-109">-</span><span
class="cmtt-10x-x-109">JACOBI</span><span
class="cmtt-10x-x-109">&#8217;</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-3-3"
class="td11"><!--l. 64--><p class="noindent" >Diagonal preconditioner. For any zero
class="td11"><!--l. 71--><p class="noindent" >Diagonal preconditioner. For any zero
diagonal entry of the matrix to be
preconditioned, the corresponding entry
of the preconditioner is set to&#x00A0;1. </td>
@ -306,7 +309,7 @@ of the preconditioner is set to&#x00A0;1. </td>
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-1-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-4-1"
class="td11">Gauss-Seidel </td><td style="white-space:normal; text-align:left;" id="TBL-1-4-2"
class="td11"><!--l. 67--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 74--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-10x-x-109">&#8217;</span><span
class="cmtt-10x-x-109">GS</span><span
class="cmtt-10x-x-109">&#8217;</span>,
@ -316,14 +319,14 @@ class="cmtt-10x-x-109">L1</span><span
class="cmtt-10x-x-109">-</span><span
class="cmtt-10x-x-109">GS</span><span
class="cmtt-10x-x-109">&#8217;</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-4-3"
class="td11"><!--l. 67--><p class="noindent" >Hybrid Gauss-Seidel (forward), that is,
class="td11"><!--l. 74--><p class="noindent" >Hybrid Gauss-Seidel (forward), that is,
global block Jacobi with Gauss-Seidel as
local solver. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-1-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-5-1"
class="td11">Symmetrized Gauss-Seidel</td><td style="white-space:normal; text-align:left;" id="TBL-1-5-2"
class="td11"><!--l. 70--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 77--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-10x-x-109">&#8217;</span><span
class="cmtt-10x-x-109">FBGS</span><span
class="cmtt-10x-x-109">&#8217;</span>,
@ -333,14 +336,14 @@ class="cmtt-10x-x-109">L1</span><span
class="cmtt-10x-x-109">-</span><span
class="cmtt-10x-x-109">FBGS</span><span
class="cmtt-10x-x-109">&#8217;</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-5-3"
class="td11"><!--l. 70--><p class="noindent" >Symmetrized hybrid Gauss-Seidel, that
class="td11"><!--l. 77--><p class="noindent" >Symmetrized hybrid Gauss-Seidel, that
is, forward Gauss-Seidel followed by
backward Gauss-Seidel. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-1-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-6-1"
class="td11">Block Jacobi </td><td style="white-space:normal; text-align:left;" id="TBL-1-6-2"
class="td11"><!--l. 73--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 80--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-10x-x-109">&#8217;</span><span
class="cmtt-10x-x-109">BJAC</span><span
class="cmtt-10x-x-109">&#8217;</span>,
@ -350,27 +353,27 @@ class="cmtt-10x-x-109">L1</span><span
class="cmtt-10x-x-109">-</span><span
class="cmtt-10x-x-109">BJAC</span><span
class="cmtt-10x-x-109">&#8217;</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-6-3"
class="td11"><!--l. 73--><p class="noindent" >Block-Jacobi with ILU(0) on the local
class="td11"><!--l. 80--><p class="noindent" >Block-Jacobi with ILU(0) on the local
blocks. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-1-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-7-1"
class="td11">Additive Schwarz </td><td style="white-space:normal; text-align:left;" id="TBL-1-7-2"
class="td11"><!--l. 74--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 81--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-10x-x-109">&#8217;</span><span
class="cmtt-10x-x-109">AS</span><span
class="cmtt-10x-x-109">&#8217;</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-7-3"
class="td11"><!--l. 74--><p class="noindent" >Additive Schwarz (AS), with overlap&#x00A0;1
class="td11"><!--l. 81--><p class="noindent" >Additive Schwarz (AS), with overlap&#x00A0;1
and ILU(0) on the local blocks. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-1-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-8-1"
class="td11">Multilevel </td><td style="white-space:normal; text-align:left;" id="TBL-1-8-2"
class="td11"><!--l. 76--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 83--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-10x-x-109">&#8217;</span><span
class="cmtt-10x-x-109">ML</span><span
class="cmtt-10x-x-109">&#8217;</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-8-3"
class="td11"><!--l. 76--><p class="noindent" >V-cycle with one hybrid
class="td11"><!--l. 83--><p class="noindent" >V-cycle with one hybrid
forward Gauss-Seidel (GS) sweep as
pre-smoother and one hybrid backward
GS sweep as post-smoother, decoupled
@ -394,7 +397,7 @@ class="content">Preconditioner types, corresponding strings and default choices.
</div><hr class="endfloat" />
</div>
<!--l. 91--><p class="indent" > <span
<!--l. 98--><p class="indent" > <span
class="cmr-12">Note that the module </span><span class="lstinline"></span><span
class="cmtt-12">amg_prec_mod</span><span
class="cmr-12">, containing the definition of the preconditioner</span>
@ -416,7 +419,7 @@ class="cmr-12">4.1</span><!--tex4ht:ref: sec:examples --></a><span
class="cmr-12">).</span>
<br
class="newline" />
<!--l. 98--><p class="indent" > <span
<!--l. 105--><p class="indent" > <span
class="cmbx-12">Remark 1. </span><span
class="cmr-12">Coarsest-level solvers based on the LU factorization, such as those</span>
<span

@ -61,9 +61,9 @@ class="cmr-12">setup by the user. For backward compatibility, methods are also a
<span
class="cmr-12">stand-alone subroutines.</span>
<!--l. 16--><p class="indent" > <span
class="cmr-12">For each method, the same user interface is overloaded with respect to the real/</span>
class="cmr-12">For each method, the same user interface is overloaded with respect to the</span>
<span
class="cmr-12">complex case and the single/double precision; arguments with appropriate data types</span>
class="cmr-12">real/complex and single/double precision data; arguments with appropriate data types</span>
<span
class="cmr-12">must be passed to the method, i.e.,</span>
<ul class="itemize1">
@ -154,7 +154,7 @@ class="cmr-12">&#x00A0;</span><a
href="userhtmlsu8.html#x17-160005.2"><span
class="cmr-12">5.2</span><!--tex4ht:ref: sec:precset --></a><span
class="cmr-12">).</span></li></ul>
<!--l. 39--><p class="noindent" ><span
<!--l. 38--><p class="noindent" ><span
class="cmr-12">A description of each method is given in the remainder of this section.</span>

@ -165,38 +165,38 @@ class="cmr-12">The interfaces for the calls shown above are defined using</span>
<div class="center"
>
<!--l. 56--><p class="noindent" >
<div class="tabular"> <table id="TBL-20" class="tabular"
<div class="tabular"> <table id="TBL-21" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-20-1g"><col
id="TBL-20-1"><col
id="TBL-20-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-20-1-"><td style="white-space:normal; text-align:left;" id="TBL-20-1-1"
><colgroup id="TBL-21-1g"><col
id="TBL-21-1"><col
id="TBL-21-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-21-1-"><td style="white-space:normal; text-align:left;" id="TBL-21-1-1"
class="td11"><!--l. 58--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">smoother</span> </td><td style="white-space:normal; text-align:left;" id="TBL-20-1-2"
class="cmtt-12">smoother</span> </td><td style="white-space:normal; text-align:left;" id="TBL-21-1-2"
class="td11"><!--l. 58--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span
class="cmtt-12">(</span><span
class="cmtt-12">amg_x_base_smoother_type</span><span
class="cmtt-12">)</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-20-2-"><td style="white-space:normal; text-align:left;" id="TBL-20-2-1"
class="td11"><!--l. 59--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-20-2-2"
style="vertical-align:baseline;" id="TBL-21-2-"><td style="white-space:normal; text-align:left;" id="TBL-21-2-1"
class="td11"><!--l. 59--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-21-2-2"
class="td11"><!--l. 59--><p class="noindent" ><span
class="cmr-12">The user-defined new smoother to be employed in the</span>
<span
class="cmr-12">preconditioner.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-20-3-"><td style="white-space:normal; text-align:left;" id="TBL-20-3-1"
style="vertical-align:baseline;" id="TBL-21-3-"><td style="white-space:normal; text-align:left;" id="TBL-21-3-1"
class="td11"><!--l. 61--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">solver</span> </td><td style="white-space:normal; text-align:left;" id="TBL-20-3-2"
class="cmtt-12">solver</span> </td><td style="white-space:normal; text-align:left;" id="TBL-21-3-2"
class="td11"><!--l. 61--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span
class="cmtt-12">(</span><span
class="cmtt-12">amg_x_base_solver_type</span><span
class="cmtt-12">)</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-20-4-"><td style="white-space:normal; text-align:left;" id="TBL-20-4-1"
class="td11"><!--l. 62--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-20-4-2"
style="vertical-align:baseline;" id="TBL-21-4-"><td style="white-space:normal; text-align:left;" id="TBL-21-4-1"
class="td11"><!--l. 62--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-21-4-2"
class="td11"><!--l. 62--><p class="noindent" ><span
class="cmr-12">The user-defined new solver to be employed in the preconditioner.</span></td></tr></table></div></div>
<!--l. 66--><p class="noindent" ><span

@ -62,39 +62,28 @@ class="cmr-12">) are meant to define the standard behaviour of</span>
<span
class="cmr-12">the BLAS interface, so they are not optimized for any particular platform,</span>
<span
class="cmr-12">and should only be used as a last resort. Note that BLAS computations</span>
class="cmr-12">and should only be used as a last resort. Note that BLAS computations form</span>
<span
class="cmr-12">form a relatively small part of ¡¡¡¡¡¡¡ HEAD the AMG4PSBLAS/PSBLAS;</span>
class="cmr-12">a relatively small part of the AMG4PSBLAS/PSBLAS; however they are</span>
<span
class="cmr-12">however they are critical when using preconditioners based on the MUMPS,</span>
class="cmr-12">critical when using preconditioners based on the MUMPS, UMFPACK or</span>
<span
class="cmr-12">UMFPACK or SuperLU third party libraries. UMFPACK requires a</span>
class="cmr-12">SuperLU third party libraries. UMFPACK requires a full LAPACK library;</span>
<span
class="cmr-12">full LAPACK library; our experience is that configuring ATLAS for</span>
class="cmr-12">our experience is that configuring ATLAS for building full LAPACK does</span>
<span
class="cmr-12">building full LAPACK does not always work in the expected way. Our</span>
class="cmr-12">not always work in the expected way. Our advice is first to download the</span>
<span
class="cmr-12">advice is first to download the LAPACK tarfile from ======= the</span>
<span
class="cmr-12">AMG4PSBLAS/PSBLAS computations; they are however critical when</span>
<span
class="cmr-12">using preconditioners based on MUMPS, UMFPACK or SuperLU third</span>
<span
class="cmr-12">party libraries. Note that UMFPACK requires a full LAPACK library;</span>
<span
class="cmr-12">our experience is that configuring ATLAS for building full LAPACK</span>
<span
class="cmr-12">does not work in the correct way. Our advice is first to download the</span>
<span
class="cmr-12">LAPACK tarfile from ¿¿¿¿¿¿¿ ea6411c730befe4e0e4091caa6f03379ad3712cc</span>
<a
class="cmr-12">LAPACK tarfile from </span><a
href="http://www.netlib.org/lapack" ><span
class="cmr-12">www.netlib.org/lapack</span></a> <span
class="cmr-12">and install it independently of ATLAS. In this case,</span>
class="cmr-12">and install it independently of</span>
<span
class="cmr-12">ATLAS. In this case, you need to modify the OPTS and NOOPT definitions</span>
<span
class="cmr-12">you need to modify the OPTS and NOOPT definitions for including -fPIC</span>
class="cmr-12">for including -fPIC compilation option in the make.inc file of the LAPACK</span>
<span
class="cmr-12">compilation option in the make.inc file of the LAPACK library.</span>
class="cmr-12">library.</span>
</dd><dt class="description">
<span
class="cmbx-12">MPI</span> </dt><dd
@ -129,7 +118,7 @@ class="cmr-12">psctoolkit.github.io/ products/psblas/</span></a><span
class="cmr-12">; version 3.7.0 (or later) is required.</span>
<span
class="cmr-12">Indeed, all the prerequisites listed so far are also prerequisites of PSBLAS.</span></dd></dl>
<!--l. 68--><p class="noindent" ><span
<!--l. 60--><p class="noindent" ><span
class="cmr-12">Please note that the four previous libraries must have Fortran interfaces compatible with</span>
<span
class="cmr-12">AMG4PSBLAS; usually this means that they should all be built with the same</span>
@ -138,7 +127,7 @@ class="cmr-12">compiler being used for AMG4PSBLAS.</span>
<!--l. 72--><div class="crosslinks"><p class="noindent"><span
<!--l. 64--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu2.html" ><span
class="cmr-12">next</span></a><span
@ -149,6 +138,6 @@ class="cmr-12">] [</span><a
href="userhtmlse3.html#userhtmlsu1.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 72--><p class="indent" > <a
<!--l. 64--><p class="indent" > <a
id="tailuserhtmlsu1.html"></a>
</body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 624--><div class="crosslinks"><p class="noindent"><span
<!--l. 622--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu11.html" ><span
class="cmr-12">next</span></a><span
@ -34,8 +34,8 @@ class="cmr-12">Method smoothers</span><span
class="cmr-12">_build</span></h4>
<div class="center"
>
<!--l. 627--><p class="noindent" >
<!--l. 628--><p class="noindent" ><span class="lstinline"></span><span
<!--l. 625--><p class="noindent" >
<!--l. 626--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
@ -57,7 +57,7 @@ class="cmtt-12">,</span><span
class="cmtt-12">imold</span><span
class="cmtt-12">])</span><br />
</div>
<!--l. 631--><p class="noindent" ><span
<!--l. 629--><p class="noindent" ><span
class="cmr-12">This method builds the smoothers and the coarsest-level solvers for the multilevel</span>
<span
class="cmr-12">preconditioner </span><span class="lstinline"></span><span
@ -75,7 +75,7 @@ class="cmr-12">&#x00A0;</span><a
href="userhtmlsu9.html#x18-170005.3"><span
class="cmr-12">5.3</span><!--tex4ht:ref: sec:hier_bld --></a><span
class="cmr-12">).</span>
<!--l. 638--><p class="noindent" ><span
<!--l. 636--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-11" class="tabular"
cellspacing="0" cellpadding="0"
@ -83,9 +83,9 @@ cellspacing="0" cellpadding="0"
id="TBL-11-1"><col
id="TBL-11-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-11-1-"><td style="white-space:normal; text-align:left;" id="TBL-11-1-1"
class="td11"><!--l. 641--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 639--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">a</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-1-2"
class="td11"><!--l. 641--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 639--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">type</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span
@ -100,8 +100,8 @@ class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-11-2-"><td style="white-space:normal; text-align:left;" id="TBL-11-2-1"
class="td11"><!--l. 642--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-2-2"
class="td11"><!--l. 642--><p class="noindent" ><span
class="td11"><!--l. 640--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-2-2"
class="td11"><!--l. 640--><p class="noindent" ><span
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
<span
class="cmr-12">to be preconditioned. Note that </span><span
@ -121,9 +121,9 @@ class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-11-3-"><td style="white-space:normal; text-align:left;" id="TBL-11-3-1"
class="td11"><!--l. 646--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 644--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-11-3-2"
class="td11"><!--l. 646--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 644--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">type</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_desc_type</span><span
@ -136,8 +136,8 @@ class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-11-4-"><td style="white-space:normal; text-align:left;" id="TBL-11-4-1"
class="td11"><!--l. 647--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-4-2"
class="td11"><!--l. 647--><p class="noindent" ><span
class="td11"><!--l. 645--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-4-2"
class="td11"><!--l. 645--><p class="noindent" ><span
class="cmr-12">The communication descriptor of </span><span class="lstinline"></span><span
class="cmtt-12">a</span><span
class="cmr-12">. See the PSBLAS User&#8217;s Guide</span>
@ -150,9 +150,9 @@ class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-11-5-"><td style="white-space:normal; text-align:left;" id="TBL-11-5-1"
class="td11"><!--l. 649--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 647--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-5-2"
class="td11"><!--l. 649--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 647--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
@ -163,8 +163,8 @@ class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-11-6-"><td style="white-space:normal; text-align:left;" id="TBL-11-6-1"
class="td11"><!--l. 650--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-6-2"
class="td11"><!--l. 650--><p class="noindent" ><span
class="td11"><!--l. 648--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-6-2"
class="td11"><!--l. 648--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x26-300007"><span
@ -172,9 +172,9 @@ class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-11-7-"><td style="white-space:normal; text-align:left;" id="TBL-11-7-1"
class="td11"><!--l. 651--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 649--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">amold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-7-2"
class="td11"><!--l. 651--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 649--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span
@ -191,8 +191,8 @@ class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-11-8-"><td style="white-space:normal; text-align:left;" id="TBL-11-8-1"
class="td11"><!--l. 652--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-8-2"
class="td11"><!--l. 652--><p class="noindent" ><span
class="td11"><!--l. 650--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-8-2"
class="td11"><!--l. 650--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal matrix components; this</span>
<span
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
@ -205,9 +205,9 @@ class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-11-9-"><td style="white-space:normal; text-align:left;" id="TBL-11-9-1"
class="td11"><!--l. 656--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 654--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">vmold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-9-2"
class="td11"><!--l. 656--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 654--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span
@ -224,16 +224,16 @@ class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-11-10-"><td style="white-space:normal; text-align:left;" id="TBL-11-10-1"
class="td11"><!--l. 657--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-10-2"
class="td11"><!--l. 657--><p class="noindent" ><span
class="td11"><!--l. 655--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-10-2"
class="td11"><!--l. 655--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal vector components; this</span>
<span
class="cmr-12">allows e.g. running on GPUs.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-11-11-"><td style="white-space:normal; text-align:left;" id="TBL-11-11-1"
class="td11"><!--l. 659--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 657--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">imold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-11-2"
class="td11"><!--l. 659--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 657--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_i_base_vect_type</span><span
@ -248,8 +248,8 @@ class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-11-12-"><td style="white-space:normal; text-align:left;" id="TBL-11-12-1"
class="td11"><!--l. 660--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-12-2"
class="td11"><!--l. 660--><p class="noindent" ><span
class="td11"><!--l. 658--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-12-2"
class="td11"><!--l. 658--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal integer vector components;</span>
<span
class="cmr-12">this allows e.g. running on GPUs.</span> </td>
@ -262,7 +262,7 @@ class="td11"> </td> </tr></table></div>
<!--l. 666--><div class="crosslinks"><p class="noindent"><span
<!--l. 664--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu11.html" ><span
class="cmr-12">next</span></a><span
@ -279,6 +279,6 @@ class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu10.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 666--><p class="indent" > <a
<!--l. 664--><p class="indent" > <a
id="tailuserhtmlsu10.html"></a>
</body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 666--><div class="crosslinks"><p class="noindent"><span
<!--l. 664--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu12.html" ><span
class="cmr-12">next</span></a><span
@ -33,8 +33,8 @@ class="cmr-12">5.5 </span></span> <a
class="cmr-12">Method build</span></h4>
<div class="center"
>
<!--l. 668--><p class="noindent" >
<!--l. 669--><p class="noindent" ><span class="lstinline"></span><span
<!--l. 666--><p class="noindent" >
<!--l. 667--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
@ -54,7 +54,7 @@ class="cmtt-12">,</span><span
class="cmtt-12">imold</span><span
class="cmtt-12">])</span><br />
</div>
<!--l. 672--><p class="noindent" ><span
<!--l. 670--><p class="noindent" ><span
class="cmr-12">This method builds the preconditioner </span><span class="lstinline"></span><span
class="cmtt-12">p</span> <span
class="cmr-12">according to the requirements made by the</span>
@ -83,7 +83,7 @@ class="cmtt-12">smoothers_build</span><span
class="cmr-12">, whose nomenclature would however be somewhat unnatural when</span>
<span
class="cmr-12">dealing with simple one-level preconditioners.</span>
<!--l. 682--><p class="noindent" ><span
<!--l. 680--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-12" class="tabular"
cellspacing="0" cellpadding="0"
@ -91,9 +91,9 @@ cellspacing="0" cellpadding="0"
id="TBL-12-1"><col
id="TBL-12-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-12-1-"><td style="white-space:normal; text-align:left;" id="TBL-12-1-1"
class="td11"><!--l. 685--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 683--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">a</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-1-2"
class="td11"><!--l. 685--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 683--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">type</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span
@ -108,8 +108,8 @@ class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-2-"><td style="white-space:normal; text-align:left;" id="TBL-12-2-1"
class="td11"><!--l. 686--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-2-2"
class="td11"><!--l. 686--><p class="noindent" ><span
class="td11"><!--l. 684--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-2-2"
class="td11"><!--l. 684--><p class="noindent" ><span
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
<span
class="cmr-12">to be preconditioned. Note that </span><span
@ -129,9 +129,9 @@ class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-3-"><td style="white-space:normal; text-align:left;" id="TBL-12-3-1"
class="td11"><!--l. 690--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 688--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-12-3-2"
class="td11"><!--l. 690--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 688--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">type</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_desc_type</span><span
@ -144,8 +144,8 @@ class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-4-"><td style="white-space:normal; text-align:left;" id="TBL-12-4-1"
class="td11"><!--l. 691--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-4-2"
class="td11"><!--l. 691--><p class="noindent" ><span
class="td11"><!--l. 689--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-4-2"
class="td11"><!--l. 689--><p class="noindent" ><span
class="cmr-12">The communication descriptor of </span><span class="lstinline"></span><span
class="cmtt-12">a</span><span
class="cmr-12">. See the PSBLAS User&#8217;s Guide</span>
@ -158,9 +158,9 @@ class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-5-"><td style="white-space:normal; text-align:left;" id="TBL-12-5-1"
class="td11"><!--l. 693--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 691--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-5-2"
class="td11"><!--l. 693--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 691--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
@ -171,8 +171,8 @@ class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-6-"><td style="white-space:normal; text-align:left;" id="TBL-12-6-1"
class="td11"><!--l. 694--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-6-2"
class="td11"><!--l. 694--><p class="noindent" ><span
class="td11"><!--l. 692--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-6-2"
class="td11"><!--l. 692--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x26-300007"><span
@ -180,9 +180,9 @@ class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-7-"><td style="white-space:normal; text-align:left;" id="TBL-12-7-1"
class="td11"><!--l. 695--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 693--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">amold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-7-2"
class="td11"><!--l. 695--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 693--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span
@ -199,8 +199,8 @@ class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-8-"><td style="white-space:normal; text-align:left;" id="TBL-12-8-1"
class="td11"><!--l. 696--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-8-2"
class="td11"><!--l. 696--><p class="noindent" ><span
class="td11"><!--l. 694--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-8-2"
class="td11"><!--l. 694--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal matrix components; this</span>
<span
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
@ -213,9 +213,9 @@ class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-9-"><td style="white-space:normal; text-align:left;" id="TBL-12-9-1"
class="td11"><!--l. 700--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 698--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">vmold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-9-2"
class="td11"><!--l. 700--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 698--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span
@ -232,16 +232,16 @@ class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-10-"><td style="white-space:normal; text-align:left;" id="TBL-12-10-1"
class="td11"><!--l. 701--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-10-2"
class="td11"><!--l. 701--><p class="noindent" ><span
class="td11"><!--l. 699--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-10-2"
class="td11"><!--l. 699--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal vector components; this</span>
<span
class="cmr-12">allows e.g. running on GPUs.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-11-"><td style="white-space:normal; text-align:left;" id="TBL-12-11-1"
class="td11"><!--l. 703--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 701--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">imold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-11-2"
class="td11"><!--l. 703--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 701--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_i_base_vect_type</span><span
@ -256,15 +256,15 @@ class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-12-"><td style="white-space:normal; text-align:left;" id="TBL-12-12-1"
class="td11"><!--l. 704--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-12-2"
class="td11"><!--l. 704--><p class="noindent" ><span
class="td11"><!--l. 702--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-12-2"
class="td11"><!--l. 702--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal integer vector components;</span>
<span
class="cmr-12">this allows e.g. running on GPUs.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-13-"><td style="white-space:normal; text-align:left;" id="TBL-12-13-1"
class="td11"> </td> </tr></table></div>
<!--l. 709--><p class="noindent" ><span
<!--l. 707--><p class="noindent" ><span
class="cmr-12">The method can be used to build multilevel preconditioners too.</span>
@ -272,7 +272,7 @@ class="cmr-12">The method can be used to build multilevel preconditioners too.</
<!--l. 714--><div class="crosslinks"><p class="noindent"><span
<!--l. 712--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu12.html" ><span
class="cmr-12">next</span></a><span
@ -289,6 +289,6 @@ class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu11.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 714--><p class="indent" > <a
<!--l. 712--><p class="indent" > <a
id="tailuserhtmlsu11.html"></a>
</body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 714--><div class="crosslinks"><p class="noindent"><span
<!--l. 712--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu13.html" ><span
class="cmr-12">next</span></a><span
@ -33,8 +33,8 @@ class="cmr-12">5.6 </span></span> <a
class="cmr-12">Method apply</span></h4>
<div class="center"
>
<!--l. 716--><p class="noindent" >
<!--l. 717--><p class="noindent" ><span class="lstinline"></span><span
<!--l. 714--><p class="noindent" >
<!--l. 715--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
@ -55,7 +55,7 @@ class="cmtt-12">,</span><span
class="cmtt-12">work</span><span
class="cmtt-12">])</span><br />
</div>
<!--l. 720--><p class="noindent" ><span
<!--l. 718--><p class="noindent" ><span
class="cmr-12">This method computes </span><span
class="cmmi-12">y </span><span
class="cmr-12">= </span><span
@ -89,7 +89,7 @@ class="cmtt-12">psb_krylov</span> <span
class="cmr-12">and hence it is</span>
<span
class="cmr-12">completely transparent to the user.</span>
<!--l. 729--><p class="noindent" ><span
<!--l. 727--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-13" class="tabular"
cellspacing="0" cellpadding="0"
@ -97,9 +97,9 @@ cellspacing="0" cellpadding="0"
id="TBL-13-1"><col
id="TBL-13-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-13-1-"><td style="white-space:normal; text-align:left;" id="TBL-13-1-1"
class="td11"><!--l. 732--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 730--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">x</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-1-2"
class="td11"><!--l. 732--><p class="noindent" ><span
class="td11"><!--l. 730--><p class="noindent" ><span
class="cmti-12">type</span><span class="lstinline"></span><span
class="cmtt-12">(</span><span
class="cmti-12">kind</span><span
@ -116,8 +116,8 @@ class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-2-"><td style="white-space:normal; text-align:left;" id="TBL-13-2-1"
class="td11"><!--l. 733--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-2-2"
class="td11"><!--l. 733--><p class="noindent" ><span
class="td11"><!--l. 731--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-2-2"
class="td11"><!--l. 731--><p class="noindent" ><span
class="cmr-12">The local part of the vector </span><span
class="cmmi-12">x</span><span
class="cmr-12">. Note that </span><span
@ -135,9 +135,9 @@ class="cmr-12">, single/double</span>
class="cmr-12">precision version of AMG4PSBLAS under use.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-3-"><td style="white-space:normal; text-align:left;" id="TBL-13-3-1"
class="td11"><!--l. 736--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 734--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">y</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-3-2"
class="td11"><!--l. 736--><p class="noindent" ><span
class="td11"><!--l. 734--><p class="noindent" ><span
class="cmti-12">type</span><span class="lstinline"></span><span
class="cmtt-12">(</span><span
class="cmti-12">kind</span><span
@ -154,8 +154,8 @@ class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-4-"><td style="white-space:normal; text-align:left;" id="TBL-13-4-1"
class="td11"><!--l. 737--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-4-2"
class="td11"><!--l. 737--><p class="noindent" ><span
class="td11"><!--l. 735--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-4-2"
class="td11"><!--l. 735--><p class="noindent" ><span
class="cmr-12">The local part of the vector </span><span
class="cmmi-12">y</span><span
class="cmr-12">. Note that </span><span
@ -173,9 +173,9 @@ class="cmr-12">, single/double</span>
class="cmr-12">precision version of AMG4PSBLAS under use.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-5-"><td style="white-space:normal; text-align:left;" id="TBL-13-5-1"
class="td11"><!--l. 740--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 738--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-13-5-2"
class="td11"><!--l. 740--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 738--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">type</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_desc_type</span><span
@ -188,16 +188,16 @@ class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-6-"><td style="white-space:normal; text-align:left;" id="TBL-13-6-1"
class="td11"><!--l. 741--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-6-2"
class="td11"><!--l. 741--><p class="noindent" ><span
class="td11"><!--l. 739--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-6-2"
class="td11"><!--l. 739--><p class="noindent" ><span
class="cmr-12">The communication descriptor associated to the matrix to be</span>
<span
class="cmr-12">preconditioned.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-7-"><td style="white-space:normal; text-align:left;" id="TBL-13-7-1"
class="td11"><!--l. 743--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 741--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-7-2"
class="td11"><!--l. 743--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 741--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
@ -208,8 +208,8 @@ class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-8-"><td style="white-space:normal; text-align:left;" id="TBL-13-8-1"
class="td11"><!--l. 744--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-8-2"
class="td11"><!--l. 744--><p class="noindent" ><span
class="td11"><!--l. 742--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-8-2"
class="td11"><!--l. 742--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x26-300007"><span
@ -217,9 +217,9 @@ class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-9-"><td style="white-space:normal; text-align:left;" id="TBL-13-9-1"
class="td11"><!--l. 745--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 743--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">trans</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-9-2"
class="td11"><!--l. 745--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 743--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">character</span><span
class="cmtt-12">(</span><span
class="cmtt-12">len</span><span
@ -234,8 +234,8 @@ class="cmtt-12">in</span><span
class="cmtt-12">).</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-10-"><td style="white-space:normal; text-align:left;" id="TBL-13-10-1"
class="td11"><!--l. 746--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-10-2"
class="td11"><!--l. 746--><p class="noindent" ><span
class="td11"><!--l. 744--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-10-2"
class="td11"><!--l. 744--><p class="noindent" ><span
class="cmr-12">If </span><span class="lstinline"></span><span
class="cmtt-12">trans</span> <span
class="cmr-12">= </span><span class="lstinline"></span><span
@ -309,9 +309,9 @@ class="cmr-8">1</span></sup><span
class="cmr-12">).</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-11-"><td style="white-space:normal; text-align:left;" id="TBL-13-11-1"
class="td11"><!--l. 750--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 748--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">work</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-11-2"
class="td11"><!--l. 750--><p class="noindent" ><span
class="td11"><!--l. 748--><p class="noindent" ><span
class="cmti-12">type</span><span class="lstinline"></span><span
class="cmtt-12">(</span><span
class="cmti-12">kind</span><span
@ -328,8 +328,8 @@ class="cmtt-12">target</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-12-"><td style="white-space:normal; text-align:left;" id="TBL-13-12-1"
class="td11"><!--l. 751--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-12-2"
class="td11"><!--l. 751--><p class="noindent" ><span
class="td11"><!--l. 749--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-12-2"
class="td11"><!--l. 749--><p class="noindent" ><span
class="cmr-12">Workspace. Its size should be at least </span><span class="lstinline"></span><span
class="cmtt-12">4</span><span
class="cmtt-12">&#x00A0;</span><span
@ -363,7 +363,7 @@ class="td11"> </td> </tr></table></div>
<!--l. 760--><div class="crosslinks"><p class="noindent"><span
<!--l. 758--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu13.html" ><span
class="cmr-12">next</span></a><span
@ -380,6 +380,6 @@ class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu12.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 760--><p class="indent" > <a
<!--l. 758--><p class="indent" > <a
id="tailuserhtmlsu12.html"></a>
</body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 760--><div class="crosslinks"><p class="noindent"><span
<!--l. 758--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu14.html" ><span
class="cmr-12">next</span></a><span
@ -33,8 +33,8 @@ class="cmr-12">5.7 </span></span> <a
class="cmr-12">Method free</span></h4>
<div class="center"
>
<!--l. 762--><p class="noindent" >
<!--l. 763--><p class="noindent" ><span class="lstinline"></span><span
<!--l. 760--><p class="noindent" >
<!--l. 761--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
@ -46,11 +46,11 @@ class="cmtt-12">,</span><span
class="cmtt-12">info</span><span
class="cmtt-12">)</span><br />
</div>
<!--l. 766--><p class="noindent" ><span
<!--l. 764--><p class="noindent" ><span
class="cmr-12">This method deallocates the preconditioner data structure </span><span class="lstinline"></span><span
class="cmtt-12">p</span><span
class="cmr-12">.</span>
<!--l. 769--><p class="noindent" ><span
<!--l. 767--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-14" class="tabular"
cellspacing="0" cellpadding="0"
@ -58,9 +58,9 @@ cellspacing="0" cellpadding="0"
id="TBL-14-1"><col
id="TBL-14-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-14-1-"><td style="white-space:normal; text-align:left;" id="TBL-14-1-1"
class="td11"><!--l. 772--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 770--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-1-2"
class="td11"><!--l. 772--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 770--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
@ -71,8 +71,8 @@ class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-14-2-"><td style="white-space:normal; text-align:left;" id="TBL-14-2-1"
class="td11"><!--l. 773--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-2-2"
class="td11"><!--l. 773--><p class="noindent" ><span
class="td11"><!--l. 771--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-2-2"
class="td11"><!--l. 771--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x26-300007"><span
@ -89,7 +89,7 @@ class="td11"> </td> </tr></table></div>
<!--l. 779--><div class="crosslinks"><p class="noindent"><span
<!--l. 777--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu14.html" ><span
class="cmr-12">next</span></a><span
@ -106,6 +106,6 @@ class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu13.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 779--><p class="indent" > <a
<!--l. 777--><p class="indent" > <a
id="tailuserhtmlsu13.html"></a>
</body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 779--><div class="crosslinks"><p class="noindent"><span
<!--l. 777--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu15.html" ><span
class="cmr-12">next</span></a><span
@ -33,8 +33,8 @@ class="cmr-12">5.8 </span></span> <a
class="cmr-12">Method descr</span></h4>
<div class="center"
>
<!--l. 781--><p class="noindent" >
<!--l. 782--><p class="noindent" ><span class="lstinline"></span><span
<!--l. 779--><p class="noindent" >
<!--l. 780--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
@ -54,7 +54,7 @@ class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">verbosity</span><span
class="cmtt-12">])</span><br />
</div>
<!--l. 785--><p class="noindent" ><span
<!--l. 783--><p class="noindent" ><span
class="cmr-12">This method prints a description of the preconditioner </span><span class="lstinline"></span><span
class="cmtt-12">p</span> <span
class="cmr-12">to the standard output or to a</span>
@ -68,7 +68,7 @@ class="cmtt-12">build</span><span
class="cmr-12">, have</span>
<span
class="cmr-12">been called.</span>
<!--l. 790--><p class="noindent" ><span
<!--l. 788--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-15" class="tabular"
cellspacing="0" cellpadding="0"
@ -76,9 +76,9 @@ cellspacing="0" cellpadding="0"
id="TBL-15-1"><col
id="TBL-15-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-15-1-"><td style="white-space:normal; text-align:left;" id="TBL-15-1-1"
class="td11"><!--l. 793--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 791--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-15-1-2"
class="td11"><!--l. 793--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 791--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
@ -89,8 +89,8 @@ class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-15-2-"><td style="white-space:normal; text-align:left;" id="TBL-15-2-1"
class="td11"><!--l. 794--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-2-2"
class="td11"><!--l. 794--><p class="noindent" ><span
class="td11"><!--l. 792--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-2-2"
class="td11"><!--l. 792--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x26-300007"><span
@ -98,9 +98,9 @@ class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-15-3-"><td style="white-space:normal; text-align:left;" id="TBL-15-3-1"
class="td11"><!--l. 795--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 793--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">iout</span> </td><td style="white-space:normal; text-align:left;" id="TBL-15-3-2"
class="td11"><!--l. 795--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 793--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
@ -113,16 +113,16 @@ class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-15-4-"><td style="white-space:normal; text-align:left;" id="TBL-15-4-1"
class="td11"><!--l. 796--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-4-2"
class="td11"><!--l. 796--><p class="noindent" ><span
class="td11"><!--l. 794--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-4-2"
class="td11"><!--l. 794--><p class="noindent" ><span
class="cmr-12">The id of the file where the preconditioner description will be</span>
<span
class="cmr-12">printed; the default is the standard output.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-15-5-"><td style="white-space:normal; text-align:left;" id="TBL-15-5-1"
class="td11"><!--l. 798--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 796--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">root</span> </td><td style="white-space:normal; text-align:left;" id="TBL-15-5-2"
class="td11"><!--l. 798--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 796--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
@ -135,8 +135,8 @@ class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-15-6-"><td style="white-space:normal; text-align:left;" id="TBL-15-6-1"
class="td11"><!--l. 799--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-6-2"
class="td11"><!--l. 799--><p class="noindent" ><span
class="td11"><!--l. 797--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-6-2"
class="td11"><!--l. 797--><p class="noindent" ><span
class="cmr-12">The id of the process where the preconditioner description</span>
<span
class="cmr-12">will be printed; the default is </span><span class="lstinline"></span><span
@ -144,9 +144,9 @@ class="cmtt-12">psb_root_</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-15-7-"><td style="white-space:normal; text-align:left;" id="TBL-15-7-1"
class="td11"><!--l. 801--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 799--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">verbosity</span> </td><td style="white-space:normal; text-align:left;" id="TBL-15-7-2"
class="td11"><!--l. 801--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 799--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
@ -159,8 +159,8 @@ class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-15-8-"><td style="white-space:normal; text-align:left;" id="TBL-15-8-1"
class="td11"><!--l. 802--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-8-2"
class="td11"><!--l. 802--><p class="noindent" ><span
class="td11"><!--l. 800--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-8-2"
class="td11"><!--l. 800--><p class="noindent" ><span
class="cmr-12">The verbosity level of the description. Default value is 0. For</span>
<span
class="cmr-12">values higher than 0, it prints out further information, e.g., for</span>
@ -174,7 +174,7 @@ class="td11"> </td> </tr></table></div>
<!--l. 809--><div class="crosslinks"><p class="noindent"><span
<!--l. 807--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu15.html" ><span
class="cmr-12">next</span></a><span
@ -191,6 +191,6 @@ class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu14.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 809--><p class="indent" > <a
<!--l. 807--><p class="indent" > <a
id="tailuserhtmlsu14.html"></a>
</body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 809--><div class="crosslinks"><p class="noindent"><span
<!--l. 807--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu14.html" ><span
class="cmr-12">prev</span></a><span
@ -28,19 +28,19 @@ class="cmr-12">] </span></p></div>
class="cmr-12">5.9 </span></span> <a
id="x24-230005.9"></a><span
class="cmr-12">Auxiliary Methods</span></h4>
<!--l. 810--><p class="noindent" ><span
<!--l. 808--><p class="noindent" ><span
class="cmr-12">Various functionalities are implemented as additional methods of the preconditioner</span>
<span
class="cmr-12">object.</span>
<!--l. 813--><p class="noindent" >
<!--l. 811--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.1 </span></span> <a
id="x24-240005.9.1"></a><span
class="cmr-12">Method: dump</span></h5>
<div class="center"
>
<!--l. 815--><p class="noindent" >
<!--l. 816--><p class="noindent" ><span class="lstinline"></span><span
<!--l. 813--><p class="noindent" >
<!--l. 814--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
@ -68,9 +68,9 @@ class="cmtt-12">,</span><span
class="cmtt-12">global_num</span><span
class="cmtt-12">])</span><br />
</div>
<!--l. 819--><p class="noindent" ><span
<!--l. 817--><p class="noindent" ><span
class="cmr-12">Dump on file.</span>
<!--l. 822--><p class="noindent" ><span
<!--l. 820--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-16" class="tabular"
cellspacing="0" cellpadding="0"
@ -78,9 +78,9 @@ cellspacing="0" cellpadding="0"
id="TBL-16-1"><col
id="TBL-16-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-16-1-"><td style="white-space:normal; text-align:left;" id="TBL-16-1-1"
class="td11"><!--l. 825--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 823--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-1-2"
class="td11"><!--l. 825--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 823--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
@ -91,8 +91,8 @@ class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-16-2-"><td style="white-space:normal; text-align:left;" id="TBL-16-2-1"
class="td11"><!--l. 826--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-2-2"
class="td11"><!--l. 826--><p class="noindent" ><span
class="td11"><!--l. 824--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-2-2"
class="td11"><!--l. 824--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x26-300007"><span
@ -100,9 +100,9 @@ class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-16-3-"><td style="white-space:normal; text-align:left;" id="TBL-16-3-1"
class="td11"><!--l. 827--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 825--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">amold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-3-2"
class="td11"><!--l. 827--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 825--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span
@ -119,8 +119,8 @@ class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-16-4-"><td style="white-space:normal; text-align:left;" id="TBL-16-4-1"
class="td11"><!--l. 828--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-4-2"
class="td11"><!--l. 828--><p class="noindent" ><span
class="td11"><!--l. 826--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-4-2"
class="td11"><!--l. 826--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal matrix components; this</span>
<span
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
@ -134,15 +134,15 @@ class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-16-5-"><td style="white-space:normal; text-align:left;" id="TBL-16-5-1"
class="td11"> </td> </tr></table></div>
<!--l. 835--><p class="noindent" >
<!--l. 833--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.2 </span></span> <a
id="x24-250005.9.2"></a><span
class="cmr-12">Method: clone</span></h5>
<div class="center"
>
<!--l. 837--><p class="noindent" >
<!--l. 838--><p class="noindent" ><span class="lstinline"></span><span
<!--l. 835--><p class="noindent" >
<!--l. 836--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
@ -157,9 +157,9 @@ class="cmtt-12">)</span><br />
<!--l. 841--><p class="noindent" ><span
<!--l. 839--><p class="noindent" ><span
class="cmr-12">Create a (deep) copy of the preconditioner object.</span>
<!--l. 844--><p class="noindent" ><span
<!--l. 842--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-17" class="tabular"
cellspacing="0" cellpadding="0"
@ -167,9 +167,9 @@ cellspacing="0" cellpadding="0"
id="TBL-17-1"><col
id="TBL-17-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-17-1-"><td style="white-space:normal; text-align:left;" id="TBL-17-1-1"
class="td11"><!--l. 847--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 845--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">pout</span> </td><td style="white-space:normal; text-align:left;" id="TBL-17-1-2"
class="td11"><!--l. 847--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 845--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">type</span><span
class="cmtt-12">(</span><span
class="cmtt-12">amg_</span><span
@ -184,8 +184,8 @@ class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-17-2-"><td style="white-space:normal; text-align:left;" id="TBL-17-2-1"
class="td11"><!--l. 848--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-2-2"
class="td11"><!--l. 848--><p class="noindent" ><span
class="td11"><!--l. 846--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-2-2"
class="td11"><!--l. 846--><p class="noindent" ><span
class="cmr-12">The copy of the preconditioner data structure. Note that </span><span
class="cmti-12">x </span><span
class="cmr-12">must</span>
@ -199,9 +199,9 @@ class="cmr-12">, single/double precision</span>
class="cmr-12">version of AMG4PSBLAS under use.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-17-3-"><td style="white-space:normal; text-align:left;" id="TBL-17-3-1"
class="td11"><!--l. 851--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 849--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-17-3-2"
class="td11"><!--l. 851--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 849--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
@ -212,8 +212,8 @@ class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-17-4-"><td style="white-space:normal; text-align:left;" id="TBL-17-4-1"
class="td11"><!--l. 852--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-4-2"
class="td11"><!--l. 852--><p class="noindent" ><span
class="td11"><!--l. 850--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-4-2"
class="td11"><!--l. 850--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x26-300007"><span
@ -222,15 +222,15 @@ class="cmr-12">for details.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-17-5-"><td style="white-space:normal; text-align:left;" id="TBL-17-5-1"
class="td11"> </td> </tr></table></div>
<!--l. 857--><p class="noindent" >
<!--l. 855--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.3 </span></span> <a
id="x24-260005.9.3"></a><span
class="cmr-12">Method: sizeof</span></h5>
<div class="center"
>
<!--l. 859--><p class="noindent" >
<!--l. 860--><p class="noindent" ><span class="lstinline"></span><span
<!--l. 857--><p class="noindent" >
<!--l. 858--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">sz</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">=</span><span
@ -238,11 +238,40 @@ class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
class="cmtt-12">%</span><span
class="cmtt-12">sizeof</span><span
class="cmtt-12">()</span><br />
class="cmtt-12">([</span><span
class="cmtt-12">global</span><span
class="cmtt-12">])</span><br />
</div>
<!--l. 863--><p class="noindent" ><span
<div class="tabular"> <table id="TBL-18" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-18-1g"><col
id="TBL-18-1"><col
id="TBL-18-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-18-1-"><td style="white-space:normal; text-align:left;" id="TBL-18-1-1"
class="td11"><!--l. 862--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">global</span> </td> <td style="white-space:normal; text-align:left;" id="TBL-18-1-2"
class="td11"><!--l. 862--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">logical</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-18-2-"><td style="white-space:normal; text-align:left;" id="TBL-18-2-1"
class="td11"><!--l. 863--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-2-2"
class="td11"><!--l. 863--><p class="noindent" ><span
class="cmr-12">Whether the global or local preconditioner size is desired. Default:</span>
<span class="lstinline"></span><span
class="cmtt-12">.</span><span
class="cmtt-12">false</span><span
class="cmtt-12">.</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-18-3-"><td style="white-space:normal; text-align:left;" id="TBL-18-3-1"
class="td11"> </td> </tr></table>
</div> <span
class="cmr-12">Return memory footprint in bytes.</span>
<!--l. 866--><p class="noindent" >
<!--l. 869--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.4 </span></span> <a
id="x24-270005.9.4"></a><span
@ -250,8 +279,8 @@ class="cmr-12">Method: allocate</span><span
class="cmr-12">_wrk</span></h5>
<div class="center"
>
<!--l. 868--><p class="noindent" >
<!--l. 869--><p class="noindent" ><span class="lstinline"></span><span
<!--l. 871--><p class="noindent" >
<!--l. 872--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
@ -264,7 +293,7 @@ class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">vmold</span><span
class="cmtt-12">])</span><br />
</div>
<!--l. 872--><p class="noindent" ><span
<!--l. 875--><p class="noindent" ><span
class="cmr-12">Allocate internal work vectors. Each application of the preconditioner uses a number of</span>
<span
class="cmr-12">work vectors which are allocated internally as necessary; therefore allocation and</span>
@ -278,15 +307,15 @@ class="cmr-12">notably GPUs, memory allocation is a slow operation, and the defa
class="cmr-12">lead to a slowdown. This method allows to trade space for time by preallocating</span>
<span
class="cmr-12">the internal workspace outside of the invocation of a Krylov method. When</span>
<span
class="cmr-12">using GPUs or other specialized devices, the </span><span class="lstinline"></span><span
class="cmtt-12">vmold</span> <span
class="cmr-12">argument is also necessary</span>
<span
class="cmr-12">to ensure the internal work vectors are of the appropriate dynamic type to</span>
<span
class="cmr-12">exploit the accelerator hardware; when allocation occurs internally this is</span>
<span
@ -296,17 +325,17 @@ class="cmr-12">argument to the </span><span class="lstinline"></span><span
class="cmtt-12">apply</span>
<span
class="cmr-12">method.</span>
<!--l. 888--><p class="noindent" ><span
<!--l. 891--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-18" class="tabular"
<div class="tabular"> <table id="TBL-19" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-18-1g"><col
id="TBL-18-1"><col
id="TBL-18-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-18-1-"><td style="white-space:normal; text-align:left;" id="TBL-18-1-1"
class="td11"><!--l. 891--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-18-1-2"
class="td11"><!--l. 891--><p class="noindent" ><span class="lstinline"></span><span
><colgroup id="TBL-19-1g"><col
id="TBL-19-1"><col
id="TBL-19-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-19-1-"><td style="white-space:normal; text-align:left;" id="TBL-19-1-1"
class="td11"><!--l. 894--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-19-1-2"
class="td11"><!--l. 894--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
@ -316,19 +345,19 @@ class="cmtt-12">out</span><span
class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-18-2-"><td style="white-space:normal; text-align:left;" id="TBL-18-2-1"
class="td11"><!--l. 892--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-2-2"
class="td11"><!--l. 892--><p class="noindent" ><span
style="vertical-align:baseline;" id="TBL-19-2-"><td style="white-space:normal; text-align:left;" id="TBL-19-2-1"
class="td11"><!--l. 895--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-2-2"
class="td11"><!--l. 895--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x26-300007"><span
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-18-3-"><td style="white-space:normal; text-align:left;" id="TBL-18-3-1"
class="td11"><!--l. 893--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">vmold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-18-3-2"
class="td11"><!--l. 893--><p class="noindent" ><span class="lstinline"></span><span
style="vertical-align:baseline;" id="TBL-19-3-"><td style="white-space:normal; text-align:left;" id="TBL-19-3-1"
class="td11"><!--l. 896--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">vmold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-19-3-2"
class="td11"><!--l. 896--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span
@ -344,16 +373,16 @@ class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-18-4-"><td style="white-space:normal; text-align:left;" id="TBL-18-4-1"
class="td11"><!--l. 894--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-4-2"
class="td11"><!--l. 894--><p class="noindent" ><span
style="vertical-align:baseline;" id="TBL-19-4-"><td style="white-space:normal; text-align:left;" id="TBL-19-4-1"
class="td11"><!--l. 897--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-4-2"
class="td11"><!--l. 897--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal vector components; this</span>
<span
class="cmr-12">allows e.g. running on GPUs.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-18-5-"><td style="white-space:normal; text-align:left;" id="TBL-18-5-1"
style="vertical-align:baseline;" id="TBL-19-5-"><td style="white-space:normal; text-align:left;" id="TBL-19-5-1"
class="td11"> </td> </tr></table></div>
<!--l. 900--><p class="noindent" >
<!--l. 903--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.5 </span></span> <a
id="x24-280005.9.5"></a><span
@ -361,8 +390,8 @@ class="cmr-12">Method: free</span><span
class="cmr-12">_wrk</span></h5>
<div class="center"
>
<!--l. 902--><p class="noindent" >
<!--l. 903--><p class="noindent" ><span class="lstinline"></span><span
<!--l. 905--><p class="noindent" >
<!--l. 906--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
@ -372,19 +401,19 @@ class="cmtt-12">(</span><span
class="cmtt-12">info</span><span
class="cmtt-12">)</span><br />
</div>
<!--l. 906--><p class="noindent" ><span
class="cmr-12">Deallocate internal work vectors.</span>
<!--l. 909--><p class="noindent" ><span
class="cmr-12">Deallocate internal work vectors.</span>
<!--l. 912--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-19" class="tabular"
<div class="tabular"> <table id="TBL-20" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-19-1g"><col
id="TBL-19-1"><col
id="TBL-19-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-19-1-"><td style="white-space:normal; text-align:left;" id="TBL-19-1-1"
class="td11"><!--l. 912--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-19-1-2"
class="td11"><!--l. 912--><p class="noindent" ><span class="lstinline"></span><span
><colgroup id="TBL-20-1g"><col
id="TBL-20-1"><col
id="TBL-20-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-20-1-"><td style="white-space:normal; text-align:left;" id="TBL-20-1-1"
class="td11"><!--l. 915--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-20-1-2"
class="td11"><!--l. 915--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
@ -394,16 +423,16 @@ class="cmtt-12">out</span><span
class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-19-2-"><td style="white-space:normal; text-align:left;" id="TBL-19-2-1"
class="td11"><!--l. 913--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-2-2"
class="td11"><!--l. 913--><p class="noindent" ><span
style="vertical-align:baseline;" id="TBL-20-2-"><td style="white-space:normal; text-align:left;" id="TBL-20-2-1"
class="td11"><!--l. 916--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-20-2-2"
class="td11"><!--l. 916--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x26-300007"><span
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-19-3-"><td style="white-space:normal; text-align:left;" id="TBL-19-3-1"
style="vertical-align:baseline;" id="TBL-20-3-"><td style="white-space:normal; text-align:left;" id="TBL-20-3-1"
class="td11"> </td> </tr></table></div>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 72--><div class="crosslinks"><p class="noindent"><span
<!--l. 64--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu3.html" ><span
class="cmr-12">next</span></a><span
@ -31,13 +31,13 @@ class="cmr-12">] </span></p></div>
class="cmr-12">3.2 </span></span> <a
id="x9-80003.2"></a><span
class="cmr-12">Optional third party libraries</span></h4>
<!--l. 74--><p class="noindent" ><span
<!--l. 66--><p class="noindent" ><span
class="cmr-12">We provide interfaces to the following third-party software libraries; note that these are</span>
<span
class="cmr-12">optional, but if you enable them some defaults for multilevel preconditioners may</span>
<span
class="cmr-12">change to reflect their presence.</span>
<!--l. 78--><p class="indent" >
<!--l. 70--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-12">UMFPACK</span> </dt><dd
@ -133,7 +133,7 @@ class="cmr-12">.</span></dd></dl>
<!--l. 109--><div class="crosslinks"><p class="noindent"><span
<!--l. 101--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu3.html" ><span
class="cmr-12">next</span></a><span
@ -150,6 +150,6 @@ class="cmr-12">] [</span><a
href="userhtmlse3.html#userhtmlsu2.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 109--><p class="indent" > <a
<!--l. 101--><p class="indent" > <a
id="tailuserhtmlsu2.html"></a>
</body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 109--><div class="crosslinks"><p class="noindent"><span
<!--l. 101--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu4.html" ><span
class="cmr-12">next</span></a><span
@ -31,15 +31,15 @@ class="cmr-12">] </span></p></div>
class="cmr-12">3.3 </span></span> <a
id="x10-90003.3"></a><span
class="cmr-12">Configuration options</span></h4>
<!--l. 111--><p class="noindent" ><span
<!--l. 103--><p class="noindent" ><span
class="cmr-12">In order to build AMG4PSBLAS, the first step is to use the </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">configure</span></span></span> <span
class="cmr-12">script in the</span>
<span
class="cmr-12">main directory to generate the necessary makefile.</span>
<!--l. 116--><p class="indent" > <span
<!--l. 108--><p class="indent" > <span
class="cmbx-12">DA RISCRIVERE</span>
<!--l. 118--><p class="indent" > <span
<!--l. 110--><p class="indent" > <span
class="cmr-12">As a minimal example consider the following:</span>
@ -47,7 +47,7 @@ class="cmr-12">As a minimal example consider the following:</span>
<pre class="verbatim" id="verbatim-1">
./configure&#x00A0;--with-psblas=PSB-INSTALL-DIR
</pre>
<!--l. 126--><p class="nopar" > <span
<!--l. 118--><p class="nopar" > <span
class="cmr-12">which assumes that the various MPI compilers and support libraries are available in</span>
<span
class="cmr-12">the standard directories on the system, and specifies only the PSBLAS install directory</span>
@ -61,7 +61,7 @@ class="cmtt-12">./configure</span><span
class="cmtt-12">&#x00A0;--help</span></span></span><span
class="cmr-12">, which</span>
<span
class="cmr-12">produces: </span><!--l. 137--><div class="lstinputlisting">
class="cmr-12">produces: </span><!--l. 129--><div class="lstinputlisting">
<a
id="x10-9001"></a>
<span
@ -4238,7 +4238,7 @@ class="cmtt-12">issues</span><span
class="cmtt-12">&#x003E;.</span>
</div>
<!--l. 139--><p class="noindent" ><span
<!--l. 131--><p class="noindent" ><span
class="cmr-12">For instance, if a user has built and installed PSBLAS 3.7 under the </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">/opt</span></span></span> <span
class="cmr-12">directory and is</span>
@ -4253,7 +4253,7 @@ class="cmr-12">might be configured with:</span>
./configure&#x00A0;--with-psblas=/opt/psblas-3.5/&#x00A0;\
--with-umfpackincdir=/usr/include/suitesparse/
</pre>
<!--l. 151--><p class="nopar" > <span
<!--l. 143--><p class="nopar" > <span
class="cmr-12">Once the configure script has completed execution, it will have generated the file</span>
<span class="obeylines-h"><span class="verb"><span
class="cmtt-12">Make.inc</span></span></span> <span
@ -4262,7 +4262,7 @@ class="cmr-12">which will then be used by all Makefiles in the directory tree; t
class="cmr-12">copied in the install directory under the name </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">Make.inc.AMG4PSBLAS</span></span></span><span
class="cmr-12">.</span>
<!--l. 158--><p class="indent" > <span
<!--l. 150--><p class="indent" > <span
class="cmr-12">To use the MUMPS solver package, the user has to add the appropriate options to</span>
<span
class="cmr-12">the configure script; by default we are looking for the libraries </span><span class="obeylines-h"><span class="verb"><span
@ -4282,7 +4282,7 @@ class="cmtt-12">--with-extra-libs</span></span></span> <span
class="cmr-12">configure</span>
<span
class="cmr-12">option.</span>
<!--l. 166--><p class="indent" > <span
<!--l. 158--><p class="indent" > <span
class="cmr-12">To build the library the user will now enter</span>
@ -4290,7 +4290,7 @@ class="cmr-12">To build the library the user will now enter</span>
<pre class="verbatim" id="verbatim-3">
make
</pre>
<!--l. 174--><p class="nopar" > <span
<!--l. 166--><p class="nopar" > <span
class="cmr-12">followed (optionally) by</span>
@ -4298,11 +4298,11 @@ class="cmr-12">followed (optionally) by</span>
<pre class="verbatim" id="verbatim-4">
make&#x00A0;install
</pre>
<!--l. 184--><p class="nopar" >
<!--l. 176--><p class="nopar" >
<!--l. 186--><div class="crosslinks"><p class="noindent"><span
<!--l. 178--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu4.html" ><span
class="cmr-12">next</span></a><span
@ -4319,6 +4319,6 @@ class="cmr-12">] [</span><a
href="userhtmlse3.html#userhtmlsu3.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 186--><p class="indent" > <a
<!--l. 178--><p class="indent" > <a
id="tailuserhtmlsu3.html"></a>
</body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 186--><div class="crosslinks"><p class="noindent"><span
<!--l. 178--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu5.html" ><span
class="cmr-12">next</span></a><span
@ -31,7 +31,7 @@ class="cmr-12">] </span></p></div>
class="cmr-12">3.4 </span></span> <a
id="x11-100003.4"></a><span
class="cmr-12">Bug reporting</span></h4>
<!--l. 187--><p class="noindent" ><span
<!--l. 179--><p class="noindent" ><span
class="cmr-12">If you find any bugs in our codes, please report them through our issues page</span>
<span
class="cmr-12">on</span><br
@ -39,7 +39,7 @@ class="newline" /> <a
href="https://github.com/psctoolkit/amg4psblas/issues" class="url" ><span
class="cmtt-12">https://github.com/psctoolkit/amg4psblas/issues</span></a><br
class="newline" />
<!--l. 191--><p class="indent" > <span
<!--l. 183--><p class="indent" > <span
class="cmr-12">To enable us to track the bug, please provide a log from the failing application, the</span>
<span
class="cmr-12">test conditions, and ideally a self-contained test program reproducing the</span>
@ -48,7 +48,7 @@ class="cmr-12">issue.</span>
<!--l. 195--><div class="crosslinks"><p class="noindent"><span
<!--l. 187--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu5.html" ><span
class="cmr-12">next</span></a><span
@ -65,6 +65,6 @@ class="cmr-12">] [</span><a
href="userhtmlse3.html#userhtmlsu4.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 195--><p class="indent" > <a
<!--l. 187--><p class="indent" > <a
id="tailuserhtmlsu4.html"></a>
</body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 195--><div class="crosslinks"><p class="noindent"><span
<!--l. 187--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu4.html" ><span
class="cmr-12">prev</span></a><span
@ -28,7 +28,7 @@ class="cmr-12">] </span></p></div>
class="cmr-12">3.5 </span></span> <a
id="x12-110003.5"></a><span
class="cmr-12">Example and test programs</span></h4>
<!--l. 196--><p class="noindent" ><span
<!--l. 188--><p class="noindent" ><span
class="cmr-12">The package contains the </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">examples</span></span></span> <span
class="cmr-12">and </span><span class="obeylines-h"><span class="verb"><span
@ -62,7 +62,7 @@ class="cmtt-12">runs</span></span></span> <span
class="cmr-12">subdirectories, to experiment with the full range</span>
<span
class="cmr-12">of preconditioners implemented in the package.</span></dd></dl>
<!--l. 209--><p class="noindent" ><span
<!--l. 201--><p class="noindent" ><span
class="cmr-12">The </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">fileread</span></span></span> <span
class="cmr-12">directories contain sample programs that read sparse matrices from files,</span>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 107--><div class="crosslinks"><p class="noindent"><span
<!--l. 114--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="#tailuserhtmlsu6.html"><span
class="cmr-12">tail</span></a><span
@ -22,7 +22,7 @@ class="cmr-12">] </span></p></div>
class="cmr-12">4.1 </span></span> <a
id="x14-130004.1"></a><span
class="cmr-12">Examples</span></h4>
<!--l. 109--><p class="noindent" ><span
<!--l. 116--><p class="noindent" ><span
class="cmr-12">The code reported in Figure</span><span
class="cmr-12">&#x00A0;</span><a
href="#x14-13001r1"><span
@ -63,46 +63,45 @@ class="cmtt-12">psb_krylov_mod</span> <span
class="cmr-12">must be used by the example</span>
<span
class="cmr-12">program.</span>
<!--l. 119--><p class="indent" > <span
class="cmr-12">The part of the code concerning the reading and assembling of the sparse matrix</span>
<!--l. 126--><p class="indent" > <span
class="cmr-12">The part of the code dealing with reading and assembling the sparse matrix and the</span>
<span
class="cmr-12">and the right-hand side vector, performed through the PSBLAS routines for sparse</span>
class="cmr-12">right-hand side vector and the deallocation of the relevant data structured, performed</span>
<span
class="cmr-12">matrix and vector management, is not reported here for brevity; the statements</span>
class="cmr-12">through the PSBLAS routines for sparse matrix and vector management, is not</span>
<span
class="cmr-12">concerning the deallocation of the PSBLAS data structure are neglected too. The</span>
class="cmr-12">reported here for the sake of conciseness. The complete code can be found in the</span>
<span
class="cmr-12">complete code can be found in the example program file </span><span class="obeylines-h"><span class="verb"><span
class="cmr-12">example program file </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">amg_dexample_ml.f90</span></span></span><span
class="cmr-12">, in the</span>
<span
class="cmr-12">directory </span><span class="obeylines-h"><span class="verb"><span
class="cmr-12">, in the directory </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">examples/fileread</span></span></span> <span
class="cmr-12">of the AMG4PSBLAS implementation (see</span>
class="cmr-12">of</span>
<span
class="cmr-12">Section</span><span
class="cmr-12">the AMG4PSBLAS implementation (see Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlsu5.html#x12-110003.5"><span
class="cmr-12">3.5</span><!--tex4ht:ref: sec:ex_and_test --></a><span
class="cmr-12">). A sample test problem along with the relevant input data is available in</span>
<span class="obeylines-h"><span class="verb"><span
class="cmr-12">). A sample test problem along</span>
<span
class="cmr-12">with the relevant input data is available in </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">examples/fileread/runs</span></span></span><span
class="cmr-12">. For details on the use of the PSBLAS routines, see the</span>
class="cmr-12">. For details on</span>
<span
class="cmr-12">PSBLAS User&#8217;s Guide</span><span
class="cmr-12">the use of the PSBLAS routines, see the PSBLAS User&#8217;s Guide</span><span
class="cmr-12">&#x00A0;</span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XPSBLASGUIDE"><span
class="cmr-12">17</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span>
<!--l. 131--><p class="indent" > <span
<!--l. 138--><p class="indent" > <span
class="cmr-12">The setup and application of the default multilevel preconditioner for the real single</span>
<span
class="cmr-12">precision and the complex, single and double precision, versions are obtained</span>
<span
class="cmr-12">precision and the complex, single and double precision, versions are obtained</span>
<span
class="cmr-12">with straightforward modifications of the previous example (see Section</span><span
class="cmr-12">&#x00A0;</span><a
@ -117,7 +116,7 @@ class="cmr-12">.</span>
<!--l. 137--><p class="indent" > <a
<!--l. 144--><p class="indent" > <a
id="x14-13001r1"></a><hr class="float"><div class="float"
>
@ -125,7 +124,7 @@ class="cmr-12">.</span>
<div class="center"
>
<!--l. 138--><p class="noindent" >
<!--l. 145--><p class="noindent" >
@ -181,7 +180,7 @@ class="cmr-12">.</span>
&#x00A0;&#x00A0;call&#x00A0;psb_exit(ctxt)
&#x00A0;&#x00A0;stop
</pre>
<!--l. 248--><p class="nopar" >
<!--l. 255--><p class="nopar" >
</div>
@ -194,7 +193,7 @@ class="content">setup and application of the default multilevel preconditioner (
</div><hr class="endfloat" />
<!--l. 257--><p class="indent" > <span
<!--l. 264--><p class="indent" > <span
class="cmr-12">Different versions of the multilevel preconditioner can be obtained by changing the</span>
<span
class="cmr-12">default values of the preconditioner parameters. The code reported in Figure</span><span
@ -250,7 +249,7 @@ class="cmr-12">too. </span><span
class="cmbx-12">DA CORREGGERE NEL CODICE ESEMPIO</span>
<span
class="cmbx-12">3</span>
<!--l. 281--><p class="indent" > <span
<!--l. 288--><p class="indent" > <span
class="cmr-12">Finally, Figure</span><span
class="cmr-12">&#x00A0;</span><a
href="#x14-13004r4"><span
@ -265,7 +264,7 @@ class="cmr-12">nonsymmetric. The corresponding example program is available in t
<span class="obeylines-h"><span class="verb"><span
class="cmtt-12">amg_dexample_1lev.f90</span></span></span><span
class="cmr-12">.</span>
<!--l. 288--><p class="indent" > <span
<!--l. 295--><p class="indent" > <span
class="cmr-12">For all the previous preconditioners, example programs where the sparse matrix</span>
<span
class="cmr-12">and the right-hand side are generated by discretizing a PDE with Dirichlet</span>
@ -276,7 +275,7 @@ class="cmr-12">.</span>
<!--l. 291--><p class="indent" > <a
<!--l. 298--><p class="indent" > <a
id="x14-13002r2"></a><hr class="float"><div class="float"
>
@ -284,7 +283,7 @@ class="cmr-12">.</span>
<div class="center"
>
<!--l. 305--><p class="noindent" >
<!--l. 312--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-6">
...&#x00A0;...
!&#x00A0;build&#x00A0;a&#x00A0;V-cycle&#x00A0;preconditioner&#x00A0;with&#x00A0;1&#x00A0;block-Jacobi&#x00A0;sweep&#x00A0;(with
@ -298,7 +297,7 @@ class="cmr-12">.</span>
&#x00A0;&#x00A0;call&#x00A0;P%smoothers_build(A,desc_A,info)
...&#x00A0;...
</pre>
<!--l. 320--><p class="nopar" ></div></div>
<!--l. 327--><p class="nopar" ></div></div>
<br /><div class="caption"
><span class="id">Listing 2: </span><span
class="content">setup of a multilevel preconditioner based on the default decoupled coarsening</span></div><!--tex4ht:label?: x14-13002r2 -->
@ -309,7 +308,7 @@ class="content">setup of a multilevel preconditioner based on the default decoup
<!--l. 327--><p class="indent" > <a
<!--l. 334--><p class="indent" > <a
id="x14-13003r3"></a><hr class="float"><div class="float"
>
@ -317,7 +316,7 @@ class="content">setup of a multilevel preconditioner based on the default decoup
<div class="center"
>
<!--l. 344--><p class="noindent" >
<!--l. 351--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-7">
...&#x00A0;...
!&#x00A0;build&#x00A0;a&#x00A0;W-cycle&#x00A0;preconditioner&#x00A0;with&#x00A0;2&#x00A0;hybrid&#x00A0;Gauss-Seidel&#x00A0;sweeps
@ -334,7 +333,7 @@ class="content">setup of a multilevel preconditioner based on the default decoup
&#x00A0;&#x00A0;call&#x00A0;P%smoothers_build(A,desc_A,info)
...&#x00A0;...
</pre>
<!--l. 362--><p class="nopar" ></div></div>
<!--l. 369--><p class="nopar" ></div></div>
<br /> <div class="caption"
><span class="id">Listing 3: </span><span
class="content">setup of a multilevel preconditioner based on the coupled coarsening based
@ -346,7 +345,7 @@ on weighted matching</span></div><!--tex4ht:label?: x14-13003r3 -->
<!--l. 369--><p class="indent" > <a
<!--l. 376--><p class="indent" > <a
id="x14-13004r4"></a><hr class="float"><div class="float"
>
@ -354,7 +353,7 @@ on weighted matching</span></div><!--tex4ht:label?: x14-13003r3 -->
<div class="center"
>
<!--l. 386--><p class="noindent" >
<!--l. 393--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-8">
...&#x00A0;...
!&#x00A0;set&#x00A0;RAS&#x00A0;with&#x00A0;overlap&#x00A0;2&#x00A0;and&#x00A0;ILU(0)&#x00A0;on&#x00A0;the&#x00A0;local&#x00A0;blocks
@ -365,7 +364,7 @@ on weighted matching</span></div><!--tex4ht:label?: x14-13003r3 -->
!&#x00A0;solve&#x00A0;Ax=b&#x00A0;with&#x00A0;preconditioned&#x00A0;BiCGSTAB
&#x00A0;&#x00A0;call&#x00A0;psb_krylov(&#8217;BICGSTAB&#8217;,A,P,b,x,tol,desc_A,info)
</pre>
<!--l. 398--><p class="nopar" ></div></div>
<!--l. 405--><p class="nopar" ></div></div>
<br /> <div class="caption"
><span class="id">Listing 4: </span><span
class="content">setup of a one-level Schwarz preconditioner.</span></div><!--tex4ht:label?: x14-13004r4 -->

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 43--><div class="crosslinks"><p class="noindent"><span
<!--l. 42--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu8.html" ><span
class="cmr-12">next</span></a><span
@ -27,8 +27,8 @@ class="cmr-12">5.1 </span></span> <a
class="cmr-12">Method init</span></h4>
<div class="center"
>
<!--l. 45--><p class="noindent" >
<!--l. 46--><p class="noindent" ><span class="lstinline"></span><span
<!--l. 44--><p class="noindent" >
<!--l. 45--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
@ -41,13 +41,13 @@ class="cmtt-12">ptype</span><span
class="cmtt-12">,</span><span
class="cmtt-12">info</span><span
class="cmtt-12">)</span></div>
<!--l. 49--><p class="noindent" ><span
<!--l. 48--><p class="noindent" ><span
class="cmr-12">This method allocates and initializes the preconditioner </span><span class="lstinline"></span><span
class="cmtt-12">p</span><span
class="cmr-12">, according to the</span>
<span
class="cmr-12">preconditioner type chosen by the user.</span>
<!--l. 53--><p class="noindent" ><span
<!--l. 52--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-2" class="tabular"
cellspacing="0" cellpadding="0"
@ -55,9 +55,9 @@ cellspacing="0" cellpadding="0"
id="TBL-2-1"><col
id="TBL-2-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-2-1-"><td style="white-space:normal; text-align:left;" id="TBL-2-1-1"
class="td11"><!--l. 57--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 56--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">contxt</span> </td> <td style="white-space:normal; text-align:left;" id="TBL-2-1-2"
class="td11"><!--l. 57--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 56--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">type</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_ctxt_type</span><span
@ -70,13 +70,13 @@ class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-2-"><td style="white-space:normal; text-align:left;" id="TBL-2-2-1"
class="td11"><!--l. 58--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-2-2-2"
class="td11"><!--l. 58--><p class="noindent" ><span
class="td11"><!--l. 57--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-2-2-2"
class="td11"><!--l. 57--><p class="noindent" ><span
class="cmr-12">The communication context.</span> </td></tr><tr
style="vertical-align:baseline;" id="TBL-2-3-"><td style="white-space:normal; text-align:left;" id="TBL-2-3-1"
class="td11"><!--l. 59--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 58--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">ptype</span> </td> <td style="white-space:normal; text-align:left;" id="TBL-2-3-2"
class="td11"><!--l. 59--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 58--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">character</span><span
class="cmtt-12">(</span><span
class="cmtt-12">len</span><span
@ -89,8 +89,8 @@ class="cmtt-12">)</span> <span
class="cmr-12">.</span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-4-"><td style="white-space:normal; text-align:left;" id="TBL-2-4-1"
class="td11"><!--l. 60--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-2-4-2"
class="td11"><!--l. 60--><p class="noindent" ><span
class="td11"><!--l. 59--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-2-4-2"
class="td11"><!--l. 59--><p class="noindent" ><span
class="cmr-12">The type of preconditioner. Its values are specified in Table</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse4.html#x13-12015r1"><span
@ -98,14 +98,14 @@ class="cmr-12">1</span><!--tex4ht:ref: tab:precinit --></a><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-5-"><td style="white-space:normal; text-align:left;" id="TBL-2-5-1"
class="td11"><!--l. 62--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-2-5-2"
class="td11"><!--l. 62--><p class="noindent" ><span
class="cmr-12">Note that the strings are case insensitive.</span> </td>
class="td11"><!--l. 61--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-2-5-2"
class="td11"><!--l. 61--><p class="noindent" ><span
class="cmr-12">Note that strings are case insensitive.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-6-"><td style="white-space:normal; text-align:left;" id="TBL-2-6-1"
class="td11"><!--l. 63--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 62--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-2-6-2"
class="td11"><!--l. 63--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 62--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
@ -116,8 +116,8 @@ class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-7-"><td style="white-space:normal; text-align:left;" id="TBL-2-7-1"
class="td11"><!--l. 64--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-2-7-2"
class="td11"><!--l. 64--><p class="noindent" ><span
class="td11"><!--l. 63--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-2-7-2"
class="td11"><!--l. 63--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x26-300007"><span
@ -132,7 +132,7 @@ class="td11"> </td> </tr></table></div>
<!--l. 73--><div class="crosslinks"><p class="noindent"><span
<!--l. 72--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu8.html" ><span
class="cmr-12">next</span></a><span
@ -143,6 +143,6 @@ class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu7.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 73--><p class="indent" > <a
<!--l. 72--><p class="indent" > <a
id="tailuserhtmlsu7.html"></a>
</body></html>

File diff suppressed because it is too large Load Diff

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 594--><div class="crosslinks"><p class="noindent"><span
<!--l. 592--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu10.html" ><span
class="cmr-12">next</span></a><span
@ -34,8 +34,8 @@ class="cmr-12">Method hierarchy</span><span
class="cmr-12">_build</span></h4>
<div class="center"
>
<!--l. 596--><p class="noindent" >
<!--l. 597--><p class="noindent" ><span class="lstinline"></span><span
<!--l. 594--><p class="noindent" >
<!--l. 595--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
@ -49,7 +49,7 @@ class="cmtt-12">,</span><span
class="cmtt-12">info</span><span
class="cmtt-12">)</span><br />
</div>
<!--l. 600--><p class="noindent" ><span
<!--l. 598--><p class="noindent" ><span
class="cmr-12">This method builds the hierarchy of matrices and restriction/prolongation operators for</span>
<span
class="cmr-12">the multilevel preconditioner </span><span class="lstinline"></span><span
@ -61,7 +61,7 @@ class="cmtt-12">init</span> <span
class="cmr-12">and </span><span class="lstinline"></span><span
class="cmtt-12">set</span><span
class="cmr-12">.</span>
<!--l. 605--><p class="noindent" ><span
<!--l. 603--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-10" class="tabular"
cellspacing="0" cellpadding="0"
@ -69,9 +69,9 @@ cellspacing="0" cellpadding="0"
id="TBL-10-1"><col
id="TBL-10-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-10-1-"><td style="white-space:normal; text-align:left;" id="TBL-10-1-1"
class="td11"><!--l. 608--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 606--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">a</span> </td><td style="white-space:normal; text-align:left;" id="TBL-10-1-2"
class="td11"><!--l. 608--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 606--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">type</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span
@ -86,8 +86,8 @@ class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-10-2-"><td style="white-space:normal; text-align:left;" id="TBL-10-2-1"
class="td11"><!--l. 609--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-10-2-2"
class="td11"><!--l. 609--><p class="noindent" ><span
class="td11"><!--l. 607--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-10-2-2"
class="td11"><!--l. 607--><p class="noindent" ><span
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
<span
class="cmr-12">to be preconditioned. Note that </span><span
@ -107,9 +107,9 @@ class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-10-3-"><td style="white-space:normal; text-align:left;" id="TBL-10-3-1"
class="td11"><!--l. 614--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 612--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-10-3-2"
class="td11"><!--l. 614--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 612--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">type</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_desc_type</span><span
@ -122,8 +122,8 @@ class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-10-4-"><td style="white-space:normal; text-align:left;" id="TBL-10-4-1"
class="td11"><!--l. 615--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-10-4-2"
class="td11"><!--l. 615--><p class="noindent" ><span
class="td11"><!--l. 613--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-10-4-2"
class="td11"><!--l. 613--><p class="noindent" ><span
class="cmr-12">The communication descriptor of </span><span class="lstinline"></span><span
class="cmtt-12">a</span><span
class="cmr-12">. See the PSBLAS User&#8217;s Guide</span>
@ -136,9 +136,9 @@ class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-10-5-"><td style="white-space:normal; text-align:left;" id="TBL-10-5-1"
class="td11"><!--l. 617--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 615--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-10-5-2"
class="td11"><!--l. 617--><p class="noindent" ><span class="lstinline"></span><span
class="td11"><!--l. 615--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
@ -149,8 +149,8 @@ class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-10-6-"><td style="white-space:normal; text-align:left;" id="TBL-10-6-1"
class="td11"><!--l. 618--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-10-6-2"
class="td11"><!--l. 618--><p class="noindent" ><span
class="td11"><!--l. 616--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-10-6-2"
class="td11"><!--l. 616--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x26-300007"><span
@ -165,7 +165,7 @@ class="td11"> </td> </tr></table></div>
<!--l. 624--><div class="crosslinks"><p class="noindent"><span
<!--l. 622--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu10.html" ><span
class="cmr-12">next</span></a><span
@ -182,6 +182,6 @@ class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu9.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 624--><p class="indent" > <a
<!--l. 622--><p class="indent" > <a
id="tailuserhtmlsu9.html"></a>
</body></html>

@ -2,34 +2,41 @@
\markboth{\textsc{AMG4PSBLAS User's and Reference Guide}}
{\textsc{\ref{sec:started} Getting Started}}
We describe the basics for building and applying AMG4PSBLAS one-level and multilevel
(i.e., AMG) preconditioners with the Krylov solvers included in PSBLAS \cite{PSBLASGUIDE}.
This section describes the basics for building and applying
AMG4PSBLAS one-level and multilevel (i.e., AMG) preconditioners with
the Krylov solvers included in PSBLAS \cite{PSBLASGUIDE}.
The following steps are required:
\begin{enumerate}
\item \emph{Declare the preconditioner data structure}. It is a derived data type,
\verb|amg_|\-\emph{x}\verb|prec_| \verb|type|, where \emph{x} may be \verb|s|, \verb|d|, \verb|c|
or \verb|z|, according to the basic data type of the sparse matrix
(\verb|s| = real single precision; \verb|d| = real double precision;
\verb|c| = complex single precision; \verb|z| = complex double precision).
This data structure is accessed by the user only through the AMG4PSBLAS routines,
following an object-oriented approach.
\item \emph{Allocate and initialize the preconditioner data structure, according to
a preconditioner type chosen by the user}. This is performed by the routine
\fortinline|init|, which also sets defaults for each preconditioner
type selected by the user. The preconditioner types and the defaults associated
with them are given in Table~\ref{tab:precinit}, where the strings used by
\fortinline|init| to identify the preconditioner types are also given.
Note that these strings are valid also if uppercase letters are substituted by
corresponding lowercase ones.
\verb|amg_|\-\emph{x}\verb|prec_| \verb|type|, where \emph{x} may be
\verb|s|, \verb|d|, \verb|c| or \verb|z|, according to the basic
data type of the sparse matrix (\verb|s| = real single precision;
\verb|d| = real double precision; \verb|c| = complex single
precision; \verb|z| = complex double precision). This data
structure is accessed by the user only through the AMG4PSBLAS
routines, following an object-oriented approach.
\item \emph{Allocate and initialize the preconditioner data structure,
according to a preconditioner type chosen by the user}. This is
performed by the routine \fortinline|init|, which also sets
defaults for each preconditioner type selected by the user. The
preconditioner types and the defaults associated with them are
given in Table~\ref{tab:precinit}, where the strings used by
\fortinline|init| to identify the preconditioner types are also
given. Note that these strings are valid also if uppercase
letters are substituted by corresponding lowercase ones.
\item \emph{Modify the selected preconditioner type, by properly setting
preconditioner parameters.} This is performed by the routine \fortinline|set|.
This routine must be called only if the user wants to modify the default values
of the parameters associated with the selected preconditioner type, to obtain a variant
of that preconditioner. Examples of use of \fortinline|set| are given in
Section~\ref{sec:examples}; a complete list of all the
preconditioner parameters and their allowed and default values is provided in
Section~\ref{sec:userinterface}, Tables~\ref{tab:p_cycle}-\ref{tab:p_smoother_1}.
\item \emph{Modify the selected preconditioner type, by properly
setting preconditioner parameters.} This is performed by the
routine \fortinline|set|. This routine must be called if the
user wants to modify the default values of the parameters
associated with the selected preconditioner type, to obtain a
variant of that preconditioner. Examples of use of
\fortinline|set| are given in Section~\ref{sec:examples}; a
complete list of all the preconditioner parameters and their
allowed and default values is provided in
Section~\ref{sec:userinterface},
Tables~\ref{tab:p_cycle}-\ref{tab:p_smoother_1}.
\item \emph{Build the preconditioner for a given matrix}. If the selected preconditioner
is multilevel, then two steps must be performed, as specified next.
\begin{enumerate}
@ -116,11 +123,11 @@ assumed to be positive definite). As previously observed, the modules
\fortinline|psb_base_mod|, \fortinline|amg_prec_mod| and \fortinline|psb_krylov_mod|
must be used by the example program.
The part of the code concerning the
reading and assembling of the sparse matrix and the right-hand side vector, performed
The part of the code dealing with reading and assembling the sparse
matrix and the right-hand side vector and the deallocation of the
relevant data structured, performed
through the PSBLAS routines for sparse matrix and vector management, is not reported
here for brevity; the statements concerning the deallocation of the PSBLAS
data structure are neglected too.
here for the sake of conciseness.
The complete code can be found in the example program file \verb|amg_dexample_ml.f90|,
in the directory \verb|examples/fileread| of the AMG4PSBLAS implementation (see
Section~\ref{sec:ex_and_test}). A sample test problem along with the relevant

@ -14,15 +14,14 @@ For backward compatibility, methods are also accessible as
stand-alone subroutines.
For each method, the same user interface is overloaded with
respect to the real/ complex case and the single/double precision;
arguments with appropriate data types must be passed to the method,
i.e.,
respect to the real/complex and single/double precision data;
arguments with appropriate data types must be passed to the method, i.e.,
\begin{itemize}
\item the sparse matrix data structure, containing the matrix to be
preconditioned, must be of type \verb|psb_|\emph{x}\verb|spmat_type|
with \emph{x} = \verb|s| for real single precision, \emph{x} = \verb|d|
for real double precision, \emph{x} = \verb|c| for complex single precision,
\emph{x} = \verb|z| for complex double precision;
preconditioned, must be of type \verb|psb_|\emph{x}\verb|spmat_type|
with \emph{x} = \verb|s| for real single precision, \emph{x} =
\verb|d| for real double precision, \emph{x} = \verb|c| for complex
single precision, \emph{x} = \verb|z| for complex double precision;
\item the preconditioner data structure must be of type
\verb|amg_|\emph{x}\verb|prec_type|, with \emph{x} =
\verb|s|, \verb|d|, \verb|c|, \verb|z|, according to the sparse
@ -59,7 +58,7 @@ This method allocates and initializes the preconditioner
\fortinline|ptype| & \fortinline|character(len=*), intent(in)|.\\
& The type of preconditioner. Its values are specified
in Table~\ref{tab:precinit}.\\
& Note that the strings are case insensitive.\\
& Note that strings are case insensitive.\\
\fortinline|info| & \fortinline|integer, intent(out)|.\\
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
@ -105,7 +104,7 @@ contained in \fortinline|val|.
The levels are numbered in increasing
order starting from the finest one, i.e., level 1 is the finest level.
If \fortinline|ilev| is not present, the parameter identified by \fortinline|what|
is set at all the appropriate levels (see
is set at all levels that are appropriate (see
Tables~\ref{tab:p_cycle}-\ref{tab:p_smoother_1}).\\
\fortinline|ilmax| & \fortinline|integer, optional, intent(in)|.\\
& For the multilevel preconditioner, when both
@ -128,21 +127,20 @@ contained in \fortinline|val|.
\noindent
However, in this case the optional arguments \fortinline|ilev|,
\fortinline|ilmax|, \fortinline|pos| and \fortinline|idx|
cannot be used. \\
%However, in this case the optional arguments \fortinline|ilev|,
%\fortinline|ilmax|, \fortinline|pos| and \fortinline|idx|
%cannot be used. \\
A variety of preconditioners can be obtained
by a suitable setting of the preconditioner parameters. These parameters
can be logically divided into four groups, i.e., parameters defining
A variety of preconditioners can be obtained by setting the
appropriate preconditioner parameters. These parameters can be
logically divided into four groups, i.e., parameters defining
\begin{enumerate}
\item the type of multilevel cycle and how many cycles must be applied;
\item the coarsening algorithm;
\item the coarse-space correction at the coarsest level (for multilevel
preconditioners only);
\item the smoother of the multilevel preconditioners, or the one-level
preconditioner.
preconditioner.
\end{enumerate}
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}.\\
@ -160,9 +158,9 @@ result of combining the block-Jacobi smoother object with a single sweep
of the point-Jacobi solver object. However, for simplicity, shortcuts are
provided to set point-Jacobi, hybrid (forward) Gauss-Seidel, and
hybrid backward Gauss-Seidel, i.e., the previous smoothers can be defined
by setting only \fortinline|'SMOOTHER_TYPE'| to appropriate values (see
Tables~\ref{tab:p_smoother}), i.e., without setting
\fortinline|'SUB_SOLVE'| too.
just by setting \fortinline|'SMOOTHER_TYPE'| to certain specific
values (see Tables~\ref{tab:p_smoother}), without the need to set
\fortinline|'SUB_SOLVE'| as well.
The smoother and solver objects are arranged in a
hierarchical manner. When specifying a smoother object, its parameters,
@ -177,8 +175,8 @@ Similar considerations apply to the point-Jacobi, Gauss-Seidel and block-Jacobi
coarsest-level solvers, and shortcuts are available
in this case too (see Table~\ref{tab:p_coarse}). \\
\textbf{Remark 3.} In general, a coarsest-level solver cannot be used with
both the replicated and distributed coarsest-matrix layout;
\textbf{Remark 3.} Many of the coarsest-level solvers cannot be used
with both the replicated and distributed coarsest-matrix layout;
therefore, setting the solver after the layout may change the layout.
Similarly, setting the layout after the solver may change the solver.
@ -857,9 +855,14 @@ Create a (deep) copy of the preconditioner object.
\subsubsection{Method: sizeof}
\begin{center}
\fortinline|sz = p%sizeof()|\\
\fortinline|sz = p%sizeof([global])|\\
\end{center}
\begin{tabular}{p{1.2cm}p{12cm}}
\fortinline|global| & \fortinline|logical, optional|.\\
& Whether the global or local preconditioner size is
desired. Default: \fortinline|.false.|.\\
\end{tabular}
\noindent
Return memory footprint in bytes.

Loading…
Cancel
Save