mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-06 22:55:12 +00:00
Merge branch 'documentation' of github.com:sfilippone/amg4psblas into documentation
# Conflicts: # docs/amg4psblas_1.0-guide.pdf # docs/html/userhtmlse1.html # docs/html/userhtmlse4.html # docs/html/userhtmlse6.html # docs/html/userhtmlsu10.html # docs/html/userhtmlsu11.html # docs/html/userhtmlsu12.html # docs/html/userhtmlsu13.html # docs/html/userhtmlsu14.html # docs/html/userhtmlsu15.html # docs/html/userhtmlsu3.html # docs/html/userhtmlsu4.html # docs/html/userhtmlsu5.html # docs/html/userhtmlsu6.html # docs/html/userhtmlsu7.html # docs/html/userhtmlsu8.html # docs/html/userhtmlsu9.html # docs/src/building.tex # docs/src/overview.tex
This commit is contained in:
+93
-61
@@ -38,7 +38,7 @@ class="cmr-12">multilevel (i.e., AMG) preconditioners with the Krylov solvers in
|
||||
<span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">16</span></a><span
|
||||
class="cmr-12">17</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">. The following steps are required:</span>
|
||||
<ol class="enumerate1" >
|
||||
@@ -84,18 +84,18 @@ class="cmti-12">Allocate and initialize the preconditioner data structure,
|
||||
<span
|
||||
class="cmti-12">preconditioner type chosen by the user</span><span
|
||||
class="cmr-12">. This is performed by the routine</span>
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">init</span></span></span><span
|
||||
<span class="lstinline"></span><span
|
||||
class="cmtt-12">init</span><span
|
||||
class="cmr-12">, which also sets defaults for each preconditioner type selected by</span>
|
||||
<span
|
||||
class="cmr-12">the user. The preconditioner types and the defaults associated with them</span>
|
||||
<span
|
||||
class="cmr-12">are given in Table</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="#x13-120151"><span
|
||||
href="#x13-12015r1"><span
|
||||
class="cmr-12">1</span><!--tex4ht:ref: tab:precinit --></a><span
|
||||
class="cmr-12">, where the strings used by </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">init</span></span></span> <span
|
||||
class="cmr-12">, where the strings used by </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">init</span> <span
|
||||
class="cmr-12">to identify the</span>
|
||||
<span
|
||||
class="cmr-12">preconditioner types are also given. Note that these strings are valid also if</span>
|
||||
@@ -107,16 +107,16 @@ class="cmr-12">uppercase letters are substituted by corresponding lowercase ones
|
||||
class="cmti-12">Modify the selected preconditioner type, by properly setting preconditioner</span>
|
||||
<span
|
||||
class="cmti-12">parameters. </span><span
|
||||
class="cmr-12">This is performed by the routine </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">set</span></span></span><span
|
||||
class="cmr-12">This is performed by the routine </span><span class="lstinline"></span><span
|
||||
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>
|
||||
<span
|
||||
class="cmr-12">associated with the selected preconditioner type, to obtain a variant of that</span>
|
||||
<span
|
||||
class="cmr-12">preconditioner. Examples of use of </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">set</span></span></span> <span
|
||||
class="cmr-12">preconditioner. Examples of use of </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">set</span> <span
|
||||
class="cmr-12">are given in Section</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlsu6.html#x14-130004.1"><span
|
||||
@@ -131,11 +131,11 @@ href="userhtmlse5.html#x15-140005"><span
|
||||
class="cmr-12">5</span><!--tex4ht:ref: sec:userinterface --></a><span
|
||||
class="cmr-12">, Tables</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlsu8.html#x17-160092"><span
|
||||
href="userhtmlsu8.html#x17-16009r2"><span
|
||||
class="cmr-12">2</span><!--tex4ht:ref: tab:p_cycle --></a><span
|
||||
class="cmr-12">-</span><a
|
||||
href="userhtmlsu8.html#x17-160158"><span
|
||||
class="cmr-12">8</span><!--tex4ht:ref: tab:p_smoother_1 --></a><span
|
||||
href="userhtmlsu8.html#x17-16014r7"><span
|
||||
class="cmr-12">7</span><!--tex4ht:ref: tab:p_smoother_1 --></a><span
|
||||
class="cmr-12">.</span>
|
||||
</li>
|
||||
<li
|
||||
@@ -153,8 +153,8 @@ class="cmr-12">This is performed by the</span>
|
||||
|
||||
|
||||
<span
|
||||
class="cmr-12">routine </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">hierarchy_build</span></span></span><span
|
||||
class="cmr-12">routine </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">hierarchy_build</span><span
|
||||
class="cmr-12">.</span>
|
||||
</li>
|
||||
<li
|
||||
@@ -162,14 +162,14 @@ class="cmr-12">.</span>
|
||||
class="cmti-12">Build the preconditioner for a given matrix. </span><span
|
||||
class="cmr-12">This is performed by the</span>
|
||||
<span
|
||||
class="cmr-12">routine </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">smoothers_build</span></span></span><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
|
||||
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="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">bld</span></span></span><span
|
||||
class="cmr-12">the routine </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">bld</span><span
|
||||
class="cmr-12">.</span>
|
||||
</li>
|
||||
<li
|
||||
@@ -177,23 +177,23 @@ class="cmr-12">.</span>
|
||||
class="cmti-12">Apply the preconditioner at each iteration of a Krylov solver. </span><span
|
||||
class="cmr-12">This is performed by</span>
|
||||
<span
|
||||
class="cmr-12">the method </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">apply</span></span></span><span
|
||||
class="cmr-12">the method </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">apply</span><span
|
||||
class="cmr-12">. When using the PSBLAS Krylov solvers, this step is</span>
|
||||
<span
|
||||
class="cmr-12">completely transparent to the user, since </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">apply</span></span></span> <span
|
||||
class="cmr-12">completely transparent to the user, since </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">apply</span> <span
|
||||
class="cmr-12">is called by the PSBLAS routine</span>
|
||||
<span
|
||||
class="cmr-12">implementing the Krylov solver (</span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">psb_krylov</span></span></span><span
|
||||
class="cmr-12">implementing the Krylov solver (</span><span class="lstinline"></span><span
|
||||
class="cmtt-12">psb_krylov</span><span
|
||||
class="cmr-12">).</span>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x13-12014x6"><span
|
||||
class="cmti-12">Free the preconditioner data structure</span><span
|
||||
class="cmr-12">. This is performed by the routine </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">free</span></span></span><span
|
||||
class="cmr-12">. This is performed by the routine </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">free</span><span
|
||||
class="cmr-12">.</span>
|
||||
<span
|
||||
class="cmr-12">This step is complementary to step 1 and should be performed when the</span>
|
||||
@@ -218,7 +218,7 @@ class="cmr-12">.</span>
|
||||
|
||||
|
||||
<!--l. 56--><p class="indent" > <a
|
||||
id="x13-120151"></a><hr class="float"><div class="float"
|
||||
id="x13-12015r1"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
@@ -274,20 +274,30 @@ 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="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10x-x-109">’NONE’</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-2-3"
|
||||
class="td11"><!--l. 62--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-10x-x-109">’</span><span
|
||||
class="cmtt-10x-x-109">NONE</span><span
|
||||
class="cmtt-10x-x-109">’</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
|
||||
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="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10x-x-109">’DIAG’</span></span></span>,
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10x-x-109">’JACOBI’</span></span></span>,
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10x-x-109">’L1-JACOBI’</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-3-3"
|
||||
class="td11"><!--l. 64--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-10x-x-109">’</span><span
|
||||
class="cmtt-10x-x-109">DIAG</span><span
|
||||
class="cmtt-10x-x-109">’</span>,
|
||||
<span class="lstinline"></span><span
|
||||
class="cmtt-10x-x-109">’</span><span
|
||||
class="cmtt-10x-x-109">JACOBI</span><span
|
||||
class="cmtt-10x-x-109">’</span>,
|
||||
<span class="lstinline"></span><span
|
||||
class="cmtt-10x-x-109">’</span><span
|
||||
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">’</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
|
||||
diagonal entry of the matrix to be
|
||||
preconditioned, the corresponding entry
|
||||
@@ -296,10 +306,16 @@ of the preconditioner is set to 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="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10x-x-109">’GS’</span></span></span>,
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10x-x-109">’L1-GS’</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-4-3"
|
||||
class="td11"><!--l. 67--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-10x-x-109">’</span><span
|
||||
class="cmtt-10x-x-109">GS</span><span
|
||||
class="cmtt-10x-x-109">’</span>,
|
||||
<span class="lstinline"></span><span
|
||||
class="cmtt-10x-x-109">’</span><span
|
||||
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">’</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,
|
||||
global block Jacobi with Gauss-Seidel as
|
||||
local solver. </td>
|
||||
@@ -307,10 +323,16 @@ local solver. </td>
|
||||
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="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10x-x-109">’FBGS’</span></span></span>,
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10x-x-109">’L1-FBGS’</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-5-3"
|
||||
class="td11"><!--l. 70--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-10x-x-109">’</span><span
|
||||
class="cmtt-10x-x-109">FBGS</span><span
|
||||
class="cmtt-10x-x-109">’</span>,
|
||||
<span class="lstinline"></span><span
|
||||
class="cmtt-10x-x-109">’</span><span
|
||||
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">’</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
|
||||
is, forward Gauss-Seidel followed by
|
||||
backward Gauss-Seidel. </td>
|
||||
@@ -318,26 +340,36 @@ backward Gauss-Seidel. </td>
|
||||
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="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10x-x-109">’BJAC’</span></span></span>,
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10x-x-109">’L1-BJAC’</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-6-3"
|
||||
class="td11"><!--l. 73--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-10x-x-109">’</span><span
|
||||
class="cmtt-10x-x-109">BJAC</span><span
|
||||
class="cmtt-10x-x-109">’</span>,
|
||||
<span class="lstinline"></span><span
|
||||
class="cmtt-10x-x-109">’</span><span
|
||||
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">’</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
|
||||
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="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10x-x-109">’AS’</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-7-3"
|
||||
class="td11"><!--l. 74--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-10x-x-109">’</span><span
|
||||
class="cmtt-10x-x-109">AS</span><span
|
||||
class="cmtt-10x-x-109">’</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 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="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-10x-x-109">’ML’</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-8-3"
|
||||
class="td11"><!--l. 76--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-10x-x-109">’</span><span
|
||||
class="cmtt-10x-x-109">ML</span><span
|
||||
class="cmtt-10x-x-109">’</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
|
||||
forward Gauss-Seidel (GS) sweep as
|
||||
pre-smoother and one hybrid backward
|
||||
@@ -346,8 +378,8 @@ smoothed aggregation as coarsening
|
||||
algorithm, and LU (plus triangular solve)
|
||||
as coarsest-level solver. See the default
|
||||
values in Tables <a
|
||||
href="userhtmlsu8.html#x17-160092">2<!--tex4ht:ref: tab:p_cycle --></a>-<a
|
||||
href="userhtmlsu8.html#x17-160158">8<!--tex4ht:ref: tab:p_smoother_1 --></a> for further details of
|
||||
href="userhtmlsu8.html#x17-16009r2">2<!--tex4ht:ref: tab:p_cycle --></a>-<a
|
||||
href="userhtmlsu8.html#x17-16014r7">7<!--tex4ht:ref: tab:p_smoother_1 --></a> for further details of
|
||||
the preconditioner. </td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
@@ -355,7 +387,7 @@ class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
class="td11"> </td></tr></table></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 1: </span><span
|
||||
class="content">Preconditioner types, corresponding strings and default choices. </span></div><!--tex4ht:label?: x13-120151 -->
|
||||
class="content">Preconditioner types, corresponding strings and default choices. </span></div><!--tex4ht:label?: x13-12015r1 -->
|
||||
</div>
|
||||
|
||||
|
||||
@@ -363,18 +395,18 @@ class="content">Preconditioner types, corresponding strings and default choices.
|
||||
</div><hr class="endfloat" />
|
||||
</div>
|
||||
<!--l. 91--><p class="indent" > <span
|
||||
class="cmr-12">Note that the module </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">amg_prec_mod</span></span></span><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>
|
||||
<span
|
||||
class="cmr-12">data type and the interfaces to the routines of AMG4PSBLAS, must be used</span>
|
||||
<span
|
||||
class="cmr-12">in any program calling such routines. The modules </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">psb_base_mod</span></span></span><span
|
||||
class="cmr-12">in any program calling such routines. The modules </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">psb_base_mod</span><span
|
||||
class="cmr-12">, for the</span>
|
||||
<span
|
||||
class="cmr-12">sparse matrix and communication descriptor data types, and </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">psb_krylov_mod</span></span></span><span
|
||||
class="cmr-12">sparse matrix and communication descriptor data types, and </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">psb_krylov_mod</span><span
|
||||
class="cmr-12">,</span>
|
||||
<span
|
||||
class="cmr-12">for interfacing with the Krylov solvers, must be also used (see Section</span><span
|
||||
|
||||
Reference in New Issue
Block a user