mergeparmatch
pasquadambra 4 years ago
parent 019394c420
commit 9bb18b11ba

Binary file not shown.

@ -13,32 +13,34 @@
.cmbx-12{font-size:109%; font-weight: bold;} .cmbx-12{font-size:109%; font-weight: bold;}
.cmbx-12{ font-weight: bold;} .cmbx-12{ font-weight: bold;}
.cmbx-12{ font-weight: bold;} .cmbx-12{ font-weight: bold;}
.cmtt-12{font-size:109%;font-family: monospace;} .cmtt-12{font-size:109%;font-family: monospace,monospace;}
.cmtt-12{font-family: monospace;} .cmtt-12{font-family: monospace,monospace;}
.cmtt-12{font-family: monospace;} .cmtt-12{font-family: monospace,monospace;}
.cmcsc-10x-x-120{font-size:109%;} .cmcsc-10x-x-120{font-size:109%;}
.cmr-8{font-size:72%;} .cmr-8{font-size:72%;}
.cmmi-12{font-size:109%;font-style: italic;} .cmmi-12{font-size:109%;font-style: italic;}
.cmmi-8{font-size:72%;font-style: italic;} .cmmi-8{font-size:72%;font-style: italic;}
.cmsy-8{font-size:72%;} .cmsy-8{font-size:72%;}
.tctt-1200{font-size:109%;font-family: monospace,monospace;}
.cmmi-10x-x-109{font-style: italic;} .cmmi-10x-x-109{font-style: italic;}
.cmsy-10x-x-109{} .cmsy-10x-x-109{}
.cmtt-10x-x-109{font-family: monospace;} .cmtt-10x-x-109{font-family: monospace,monospace;}
.cmtt-10x-x-109{font-family: monospace;} .cmtt-10x-x-109{font-family: monospace,monospace;}
.cmtt-10x-x-109{font-family: monospace;} .cmtt-10x-x-109{font-family: monospace,monospace;}
.cmcsc-10x-x-109{} .cmcsc-10x-x-109{}
.cmtt-10{font-size:90%;font-family: monospace;} .cmtt-10{font-size:90%;font-family: monospace,monospace;}
.cmtt-10{font-family: monospace;} .cmtt-10{font-family: monospace,monospace;}
.cmtt-10{font-family: monospace;} .cmtt-10{font-family: monospace,monospace;}
.cmbx-10x-x-109{ font-weight: bold;} .cmbx-10x-x-109{ font-weight: bold;}
.cmbx-10x-x-109{ font-weight: bold;} .cmbx-10x-x-109{ font-weight: bold;}
.cmbx-10x-x-109{ font-weight: bold;} .cmbx-10x-x-109{ font-weight: bold;}
.cmcsc-10{font-size:90%;} .cmcsc-10{font-size:90%;}
.small-caps{font-variant: small-caps; } .small-caps{font-variant: small-caps; }
p.noindent { text-indent: 0em } p{margin-top:0;margin-bottom:0}
td p.noindent { text-indent: 0em; margin-top:0em; } p.indent{text-indent:0;}
p.nopar { text-indent: 0em; } p + p{margin-top:1em;}
p.indent{ text-indent: 1.5em } p + div, p + pre {margin-top:1em;}
div + p, pre + p {margin-top:1em;}
@media print {div.crosslinks {visibility:hidden;}} @media print {div.crosslinks {visibility:hidden;}}
a img { border-top: 0; border-left: 0; border-right: 0; } a img { border-top: 0; border-left: 0; border-right: 0; }
center { margin-top:1em; margin-bottom:1em; } center { margin-top:1em; margin-bottom:1em; }
@ -61,7 +63,7 @@ div.obeylines-v p { margin-top:0; margin-bottom:0; }
td.displaylines {text-align:center; white-space:nowrap;} td.displaylines {text-align:center; white-space:nowrap;}
.centerline {text-align:center;} .centerline {text-align:center;}
.rightline {text-align:right;} .rightline {text-align:right;}
div.verbatim {font-family: monospace; white-space: nowrap; text-align:left; clear:both; } div.verbatim {font-family: monospace,monospace; white-space: nowrap; text-align:left; clear:both; }
.fbox {padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } .fbox {padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; }
div.fbox {display:table} div.fbox {display:table}
div.center div.fbox {text-align:center; clear:both; padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; } div.center div.fbox {text-align:center; clear:both; padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; }
@ -94,18 +96,16 @@ td.td01{ padding-left:0pt; padding-right:5pt; }
td.td10{ padding-left:5pt; padding-right:0pt; } td.td10{ padding-left:5pt; padding-right:0pt; }
td.td11{ padding-left:5pt; padding-right:5pt; } td.td11{ padding-left:5pt; padding-right:5pt; }
table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; } table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
.hline hr, .cline hr{ height : 1px; margin:0px; } .hline hr, .cline hr{ height : 0px; margin:0px; }
.hline td, .cline td{ padding: 0; }
.hline hr, .cline hr{border:none;border-top:1px solid black;}
.tabbing-right {text-align:right;} .tabbing-right {text-align:right;}
span.TEX {letter-spacing: -0.125em; }
span.TEX span.E{ position:relative;top:0.5ex;left:-0.0417em;}
a span.TEX span.E {text-decoration: none; }
span.LATEX span.A{ position:relative; top:-0.5ex; left:-0.4em; font-size:85%;}
span.LATEX span.TEX{ position:relative; left: -0.4em; }
div.float, div.figure {margin-left: auto; margin-right: auto;} div.float, div.figure {margin-left: auto; margin-right: auto;}
div.float img {text-align:center;} div.float img {text-align:center;}
div.figure img {text-align:center;} div.figure img {text-align:center;}
.marginpar {width:20%; float:right; text-align:left; margin-left:auto; margin-top:0.5em; font-size:85%; text-decoration:underline;} .marginpar,.reversemarginpar {width:20%; float:right; text-align:left; margin-left:auto; margin-top:0.5em; font-size:85%; text-decoration:underline;}
.marginpar p{margin-top:0.4em; margin-bottom:0.4em;} .marginpar p,.reversemarginpar p{margin-top:0.4em; margin-bottom:0.4em;}
.reversemarginpar{float:left;}
table.equation {width:100%;} table.equation {width:100%;}
.equation td{text-align:center; } .equation td{text-align:center; }
td.equation { margin-top:1em; margin-bottom:1em; } td.equation { margin-top:1em; margin-bottom:1em; }
@ -148,10 +148,11 @@ div.abstract {width:100%;}
.Ovalbox-thick { padding-left:3pt; padding-right:3pt; border:solid thick; } .Ovalbox-thick { padding-left:3pt; padding-right:3pt; border:solid thick; }
.shadowbox { padding-left:3pt; padding-right:3pt; border:solid thin; border-right:solid thick; border-bottom:solid thick; } .shadowbox { padding-left:3pt; padding-right:3pt; border:solid thin; border-right:solid thick; border-bottom:solid thick; }
.doublebox { padding-left:3pt; padding-right:3pt; border-style:double; border:solid thick; } .doublebox { padding-left:3pt; padding-right:3pt; border-style:double; border:solid thick; }
.rotatebox{display: inline-block;}
.figure img.graphics {margin-left:10%;} .figure img.graphics {margin-left:10%;}
.lstlisting .label{margin-right:0.5em; } .lstlisting .label{margin-right:0.5em; }
div.lstlisting{font-family: monospace; white-space: nowrap; margin-top:0.5em; margin-bottom:0.5em; } div.lstlisting{font-family: monospace,monospace; white-space: nowrap; margin-top:0.5em; margin-bottom:0.5em; }
div.lstinputlisting{ font-family: monospace; white-space: nowrap; } div.lstinputlisting{ font-family: monospace,monospace; white-space: nowrap; }
.lstinputlisting .label{margin-right:0.5em;} .lstinputlisting .label{margin-right:0.5em;}
#TBL-1 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-1 colgroup{border-left: 1px solid black;border-right:1px solid black;}
#TBL-1{border-collapse:collapse;} #TBL-1{border-collapse:collapse;}
@ -185,9 +186,9 @@ div.lstinputlisting{ font-family: monospace; white-space: nowrap; }
#TBL-5{border-collapse:collapse;} #TBL-5{border-collapse:collapse;}
#TBL-5 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-5 colgroup{border-left: 1px solid black;border-right:1px solid black;}
#TBL-5{border-collapse:collapse;} #TBL-5{border-collapse:collapse;}
td#TBL-5-10-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} td#TBL-5-10-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
td#TBL-5-11-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} td#TBL-5-11-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
td#TBL-5-12-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} td#TBL-5-12-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
#TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;}
#TBL-6{border-collapse:collapse;} #TBL-6{border-collapse:collapse;}
#TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;}
@ -200,8 +201,8 @@ td#TBL-5-12-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
#TBL-6{border-collapse:collapse;} #TBL-6{border-collapse:collapse;}
#TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;}
#TBL-6{border-collapse:collapse;} #TBL-6{border-collapse:collapse;}
td#TBL-6-5-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} td#TBL-6-5-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
td#TBL-6-6-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} td#TBL-6-6-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
#TBL-7 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-7 colgroup{border-left: 1px solid black;border-right:1px solid black;}
#TBL-7{border-collapse:collapse;} #TBL-7{border-collapse:collapse;}
#TBL-7 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-7 colgroup{border-left: 1px solid black;border-right:1px solid black;}
@ -214,11 +215,11 @@ td#TBL-6-6-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
#TBL-7{border-collapse:collapse;} #TBL-7{border-collapse:collapse;}
#TBL-7 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-7 colgroup{border-left: 1px solid black;border-right:1px solid black;}
#TBL-7{border-collapse:collapse;} #TBL-7{border-collapse:collapse;}
td#TBL-7-5-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} td#TBL-7-5-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
td#TBL-7-6-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} td#TBL-7-6-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
td#TBL-7-7-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} td#TBL-7-7-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
td#TBL-7-12-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} td#TBL-7-12-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
td#TBL-7-13-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;} td#TBL-7-13-1{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
#TBL-8 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-8 colgroup{border-left: 1px solid black;border-right:1px solid black;}
#TBL-8{border-collapse:collapse;} #TBL-8{border-collapse:collapse;}
#TBL-8 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-8 colgroup{border-left: 1px solid black;border-right:1px solid black;}

Binary file not shown.

Before

Width:  |  Height:  |  Size: 905 B

After

Width:  |  Height:  |  Size: 892 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

@ -78,7 +78,7 @@ class="cmr-12">of a software development project started in 2007, named MLD2P4,
<span <span
class="cmr-12">implemented a multilevel version of some domain decomposition preconditioners of</span> class="cmr-12">implemented a multilevel version of some domain decomposition preconditioners of</span>
<span <span
class="cmr-12">additive-Schwarz type and was based on a parallel decoupled version of the well known</span> class="cmr-12">additive-Schwarz type, and was based on a parallel decoupled version of the well known</span>
@ -93,7 +93,7 @@ class="cmr-12">new algorithms and functionalities for the setup and application
<span <span
class="cmr-12">preconditioners with the final aims of improving efficiency and scalability when tens of</span> class="cmr-12">preconditioners with the final aims of improving efficiency and scalability when tens of</span>
<span <span
class="cmr-12">thousands cores are used and of boosting reliability in dealing with general</span> class="cmr-12">thousands cores are used, and of boosting reliability in dealing with general</span>
<span <span
class="cmr-12">symmetric positive definite linear systems. Due to the significant number</span> class="cmr-12">symmetric positive definite linear systems. Due to the significant number</span>
<span <span

@ -198,7 +198,7 @@ class="cmr-12">&#x00A0;Pothen, </span><span
class="cmti-12">Distributed-memory parallel algorithms for matching and</span> class="cmti-12">Distributed-memory parallel algorithms for matching and</span>
<span <span
class="cmti-12">coloring</span><span class="cmti-12">coloring</span><span
class="cmr-12">, in PCO11 New Trends in Parallel Computing and Optimization,</span> class="cmr-12">, in PCO&#8217;11 New Trends in Parallel Computing and Optimization,</span>
<span <span
class="cmr-12">IEEE International Symposium on Parallel and Distributed Processing</span> class="cmr-12">IEEE International Symposium on Parallel and Distributed Processing</span>
<span <span
@ -250,24 +250,43 @@ class="cmr-12">[11]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a class="cmr-12">&#x00A0;</span></span></span><a
id="XBDDF2007"></a><span id="XDV2013"></a><span
class="cmr-12">A.</span><span class="cmr-12">P.</span><span
class="cmr-12">&#x00A0;Buttari, P.</span><span class="cmr-12">&#x00A0;D&#8217;Ambra and P. S.</span><span
class="cmr-12">&#x00A0;D&#8217;Ambra, D.</span><span class="cmr-12">&#x00A0;Vassilevski, </span><span
class="cmr-12">&#x00A0;di Serafino, S.</span><span class="cmti-12">Adaptive AMG with coarsening based</span>
class="cmr-12">&#x00A0;Filippone, </span><span
class="cmti-12">2LEV-D2P4: a</span>
<span <span
class="cmti-12">Package of High-Performance Preconditioners for Scientific and Engineering</span> class="cmti-12">on compatible weighted matching</span><span
class="cmr-12">, Computing and Visualization in Science,</span>
<span <span
class="cmti-12">Applications</span><span class="cmr-12">16, (2013) 59&#8211;76.</span>
class="cmr-12">, Appl. Algebra Engrg. Comm. Comput., 18(3), 2007, 223&#8211;239.</span>
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
<span <span
class="cmr-12">[12]</span><span class="bibsp"><span class="cmr-12">[12]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="XDFV2018"></a><span
class="cmr-12">P.</span><span
class="cmr-12">&#x00A0;D&#8217;Ambra, S.</span><span
class="cmr-12">&#x00A0;Filippone and P. S.</span><span
class="cmr-12">&#x00A0;Vassilevski, </span><span
class="cmti-12">BootCMatch: a software</span>
<span
class="cmti-12">package for bootstrap AMG based on graph weighted matching</span><span
class="cmr-12">, ACM</span>
<span
class="cmr-12">Transactions on Mathematical Software, 44, (2018) 39:1&#8211;39:25.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[13]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a class="cmr-12">&#x00A0;</span></span></span><a
id="XDDF2020"></a><span id="XDDF2020"></a><span
class="cmr-12">P.</span><span class="cmr-12">P.</span><span
@ -281,13 +300,10 @@ class="cmr-12">, 2020, </span><a
href="https://arxiv.org/abs/2006.16147v3arXiv:2006.16147v2" ><span href="https://arxiv.org/abs/2006.16147v3arXiv:2006.16147v2" ><span
class="cmr-12">arXiv:2006.16147v3</span></a><span class="cmr-12">arXiv:2006.16147v3</span></a><span
class="cmr-12">.</span> class="cmr-12">.</span>
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
<span <span
class="cmr-12">[13]</span><span class="bibsp"><span class="cmr-12">[14]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a class="cmr-12">&#x00A0;</span></span></span><a
@ -308,7 +324,7 @@ class="cmr-12">)</span>
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
<span <span
class="cmr-12">[14]</span><span class="bibsp"><span class="cmr-12">[15]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a class="cmr-12">&#x00A0;</span></span></span><a
@ -334,7 +350,7 @@ class="cmr-12">SIAM Journal on Matrix Analysis and Applications, 20 (3), 1999, 7
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
<span <span
class="cmr-12">[15]</span><span class="bibsp"><span class="cmr-12">[16]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a class="cmr-12">&#x00A0;</span></span></span><a
@ -355,7 +371,7 @@ class="cmr-12">Software, 16 (1) 1990, 1&#8211;17.</span>
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
<span <span
class="cmr-12">[16]</span><span class="bibsp"><span class="cmr-12">[17]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a class="cmr-12">&#x00A0;</span></span></span><a
@ -376,7 +392,7 @@ class="cmr-12">Transactions on Mathematical Software, 14 (1) 1988, 1&#8211;17.</
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
<span <span
class="cmr-12">[17]</span><span class="bibsp"><span class="cmr-12">[18]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a class="cmr-12">&#x00A0;</span></span></span><a
@ -394,7 +410,7 @@ class="cmr-12">.</span>
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
<span <span
class="cmr-12">[18]</span><span class="bibsp"><span class="cmr-12">[19]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a class="cmr-12">&#x00A0;</span></span></span><a
@ -409,10 +425,13 @@ class="cmr-12">. ACM Transactions on on Mathematical</span>
<span <span
class="cmr-12">Software, 38 (4), 2012, art.</span><span class="cmr-12">Software, 38 (4), 2012, art.</span><span
class="cmr-12">&#x00A0;23.</span> class="cmr-12">&#x00A0;23.</span>
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
<span <span
class="cmr-12">[19]</span><span class="bibsp"><span class="cmr-12">[20]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a class="cmr-12">&#x00A0;</span></span></span><a
@ -426,13 +445,10 @@ class="cmti-12">Library for Parallel Linear Algebra Computation on Sparse Matric
class="cmr-12">, ACM</span> class="cmr-12">, ACM</span>
<span <span
class="cmr-12">Transactions on Mathematical Software, 26 (4), 2000, 527&#8211;550.</span> class="cmr-12">Transactions on Mathematical Software, 26 (4), 2000, 527&#8211;550.</span>
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
<span <span
class="cmr-12">[20]</span><span class="bibsp"><span class="cmr-12">[21]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a class="cmr-12">&#x00A0;</span></span></span><a
@ -447,7 +463,7 @@ class="cmr-12">2016, 23:501-518</span>
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
<span <span
class="cmr-12">[21]</span><span class="bibsp"><span class="cmr-12">[22]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a class="cmr-12">&#x00A0;</span></span></span><a
@ -469,7 +485,7 @@ class="cmr-12">, MIT Press, 1998.</span>
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
<span <span
class="cmr-12">[22]</span><span class="bibsp"><span class="cmr-12">[23]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a class="cmr-12">&#x00A0;</span></span></span><a
@ -491,7 +507,7 @@ class="cmr-12">Mathematical Software, 5 (3), 1979, 308&#8211;323.</span>
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
<span <span
class="cmr-12">[23]</span><span class="bibsp"><span class="cmr-12">[24]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a class="cmr-12">&#x00A0;</span></span></span><a
@ -511,7 +527,7 @@ class="cmr-12">ACM Transactions on Mathematical Software, 29 (2), 2003, 110&#821
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
<span <span
class="cmr-12">[24]</span><span class="bibsp"><span class="cmr-12">[25]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a class="cmr-12">&#x00A0;</span></span></span><a
@ -527,7 +543,7 @@ class="cmr-12">Numerical Linear Algebra with Applications, 15 (5), 2008, 473&#82
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
<span <span
class="cmr-12">[25]</span><span class="bibsp"><span class="cmr-12">[26]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a class="cmr-12">&#x00A0;</span></span></span><a
@ -539,9 +555,12 @@ class="cmr-12">, 2nd edition, SIAM,</span>
<span <span
class="cmr-12">2003.</span> class="cmr-12">2003.</span>
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
<span <span
class="cmr-12">[26]</span><span class="bibsp"><span class="cmr-12">[27]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a class="cmr-12">&#x00A0;</span></span></span><a
@ -557,12 +576,9 @@ class="cmr-12">, Cambridge</span>
<span <span
class="cmr-12">University Press, 1996.</span> class="cmr-12">University Press, 1996.</span>
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
<span <span
class="cmr-12">[27]</span><span class="bibsp"><span class="cmr-12">[28]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a class="cmr-12">&#x00A0;</span></span></span><a
@ -582,7 +598,7 @@ class="cmr-12">Press, 1998.</span>
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
<span <span
class="cmr-12">[28]</span><span class="bibsp"><span class="cmr-12">[29]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a class="cmr-12">&#x00A0;</span></span></span><a
@ -601,7 +617,7 @@ class="cmr-12">&#x00A0;Oosterlee, Multigrid, Academic Press, 2001.</span>
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
<span <span
class="cmr-12">[29]</span><span class="bibsp"><span class="cmr-12">[30]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a class="cmr-12">&#x00A0;</span></span></span><a
@ -619,7 +635,7 @@ class="cmr-12">editor, Proceedings of SuperComputing 2000, Dallas, 2000.</span>
</p> </p>
<p class="bibitem" ><span class="biblabel"> <p class="bibitem" ><span class="biblabel">
<span <span
class="cmr-12">[30]</span><span class="bibsp"><span class="cmr-12">[31]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a class="cmr-12">&#x00A0;</span></span></span><a
@ -634,42 +650,7 @@ class="cmti-12">Algebraic Multigrid by Smoothed</span>
class="cmti-12">Aggregation for Second and Fourth Order Elliptic Problems</span><span class="cmti-12">Aggregation for Second and Fourth Order Elliptic Problems</span><span
class="cmr-12">, Computing, 56</span> class="cmr-12">, Computing, 56</span>
<span <span
class="cmr-12">(3) 1996, 179&#8211;196.</span> class="cmr-12">(3) 1996, 179&#8211;196.</span></p></div>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[31]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="XDV2013"></a><span
class="cmr-12">P.</span><span
class="cmr-12">&#x00A0;D&#8217;Ambra and P. S.</span><span
class="cmr-12">&#x00A0;Vassilevski, </span><span
class="cmti-12">Adaptive AMG with coarsening based</span>
<span
class="cmti-12">on compatible weighted matching</span><span
class="cmr-12">, Computing and Visualization in Science,</span>
<span
class="cmr-12">16, (2013) 59&#8211;76.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[32]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="XDFV2018"></a><span
class="cmr-12">P.</span><span
class="cmr-12">&#x00A0;D&#8217;Ambra, S.</span><span
class="cmr-12">&#x00A0;Filippone and P. S.</span><span
class="cmr-12">&#x00A0;Vassilevski, </span><span
class="cmti-12">BootCMatch: a software</span>
<span
class="cmti-12">package for bootstrap AMG based on graph weighted matching</span><span
class="cmr-12">, ACM</span>
<span
class="cmr-12">Transactions on Mathematical Software, 44, (2018) 39:1&#8211;39:25.</span></p></div>

@ -88,7 +88,7 @@ class="cmr-12">4</span></a><span
class="cmr-12">,</span><span class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlli5.html#XStuben_01"><span href="userhtmlli5.html#XStuben_01"><span
class="cmr-12">28</span></a><span class="cmr-12">29</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">), to be used in the iterative solution of linear systems,</span> class="cmr-12">), to be used in the iterative solution of linear systems,</span>
<table <table
@ -121,17 +121,26 @@ class="cmr-12">4</span></a><span
class="cmr-12">,</span><span class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlli5.html#XNotay2008"><span href="userhtmlli5.html#XNotay2008"><span
class="cmr-12">24</span></a><span class="cmr-12">25</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">; they can be combined with Jacobi hybrid forward/backward</span> class="cmr-12">; they can be combined with Jacobi, hybrid forward/backward</span>
<span <span
class="cmr-12">Gauss-Seidel, block-Jacobi, and additive Schwarz smoothers. The Jacobi, block-Jacobi</span> class="cmr-12">Gauss-Seidel, block-Jacobi and additive Schwarz smoothers with various versions of</span>
<span <span
class="cmr-12">and Gauss-Seidel smoothers are also available in the </span><span class="cmr-12">local incomplete factorizations and approximate inverses on the blocks. The</span>
<span
class="cmr-12">Jacobi, block-Jacobi and Gauss-Seidel smoothers are also available in the </span><span
class="cmmi-12">&#x2113;</span><sub><span class="cmmi-12">&#x2113;</span><sub><span
class="cmr-8">1</span></sub> <span class="cmr-8">1</span></sub>
class="cmr-12">version.</span> <span
<!--l. 29--><p class="indent" > <span class="cmr-12">version</span><span
class="cmr-12">&#x00A0;</span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli5.html#XDDF2020"><span
class="cmr-12">13</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span>
<!--l. 30--><p class="indent" > <span
class="cmr-12">An algebraic approach is used to generate a hierarchy of coarse-level matrices and</span> class="cmr-12">An algebraic approach is used to generate a hierarchy of coarse-level matrices and</span>
<span <span
class="cmr-12">operators, without explicitly using any information on the geometry of the original</span> class="cmr-12">operators, without explicitly using any information on the geometry of the original</span>
@ -150,19 +159,22 @@ class="cmr-12">,</span>
<span <span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlli5.html#XVANEK_MANDEL_BREZINA"><span href="userhtmlli5.html#XVANEK_MANDEL_BREZINA"><span
class="cmr-12">30</span></a><span class="cmr-12">31</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">, and already included in the previous versions of the package</span><span class="cmr-12">, and already included in the previous versions of the package</span><span
class="cmr-12">&#x00A0;</span><span class="cite"><span class="cmr-12">&#x00A0;</span><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#XBDDF2007"><span href="userhtmlli5.html#Xaaecc_07"><span
class="cmr-12">11</span></a><span class="cmr-12">6</span></a><span
class="cmr-12">,</span><span class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlli5.html#XMLD2P4_TOMS"><span href="userhtmlli5.html#XMLD2P4_TOMS"><span
class="cmr-12">10</span></a><span class="cmr-12">10</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">;</span> class="cmr-12">;</span>
</li> </li>
<li class="itemize"><span <li class="itemize"><span
class="cmr-12">a coupled, parallel implementation of the Coarsening based on Compatible</span> class="cmr-12">a coupled, parallel implementation of the Coarsening based on Compatible</span>
@ -171,33 +183,32 @@ class="cmr-12">Weighted Matching introduced in</span><span
class="cmr-12">&#x00A0;</span><span class="cite"><span class="cmr-12">&#x00A0;</span><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#XDV2013"><span href="userhtmlli5.html#XDV2013"><span
class="cmr-12">31</span></a><span class="cmr-12">11</span></a><span
class="cmr-12">,</span><span class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlli5.html#XDFV2018"><span href="userhtmlli5.html#XDFV2018"><span
class="cmr-12">32</span></a><span class="cmr-12">12</span></a><span
class="cmr-12">]</span></span> <span class="cmr-12">]</span></span> <span
class="cmr-12">and described in detail in</span><span class="cmr-12">and described in detail in</span><span
class="cmr-12">&#x00A0;</span><span class="cite"><span class="cmr-12">&#x00A0;</span><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#XDDF2020"><span href="userhtmlli5.html#XDDF2020"><span
class="cmr-12">12</span></a><span class="cmr-12">13</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">;</span></li></ul> class="cmr-12">;</span></li></ul>
<!--l. 43--><p class="noindent" ><span
<!--l. 42--><p class="noindent" ><span
class="cmr-12">Either exact or approximate solvers can be used on the coarsest-level system. We provide</span> class="cmr-12">Either exact or approximate solvers can be used on the coarsest-level system. We provide</span>
<span <span
class="cmr-12">interfaces to various sparse LU factorizations from external packages, native incomplete</span> class="cmr-12">interfaces to various parallel and sequential sparse LU factorizations from external</span>
<span
class="cmr-12">packages, sequential native incomplete LU and approximate inverse factorizations,</span>
<span <span
class="cmr-12">LU and approximate inverse factorizations, weighted Jacobi, hybrid Gauss-Seidel,</span> class="cmr-12">parallel weighted Jacobi, hybrid Gauss-Seidel, block-Jacobi solvers and calls to</span>
<span <span
class="cmr-12">block-Jacobi solvers and a recursive call to preconditioned Krylov methods; all</span> class="cmr-12">preconditioned Krylov methods; all smoothers can be also exploited as one-level</span>
<span <span
class="cmr-12">smoothers can be also exploited as one-level preconditioners.</span> class="cmr-12">preconditioners.</span>
<!--l. 49--><p class="indent" > <span <!--l. 50--><p class="indent" > <span
class="cmr-12">AMG4PSBLAS is written in Fortran</span><span class="cmr-12">AMG4PSBLAS is written in Fortran</span><span
class="cmr-12">&#x00A0;2003, following an object-oriented design</span> class="cmr-12">&#x00A0;2003, following an object-oriented design</span>
<span <span
@ -212,7 +223,7 @@ class="cmr-12">Single and double precision implementations of AMG4PSBLAS are ava
class="cmr-12">for both the real and the complex case, which can be used through a single</span> class="cmr-12">for both the real and the complex case, which can be used through a single</span>
<span <span
class="cmr-12">interface.</span> class="cmr-12">interface.</span>
<!--l. 59--><p class="indent" > <span <!--l. 60--><p class="indent" > <span
class="cmr-12">AMG4PSBLAS has been designed to implement scalable and easy-to-use</span> class="cmr-12">AMG4PSBLAS has been designed to implement scalable and easy-to-use</span>
<span <span
class="cmr-12">multilevel preconditioners in the context of the PSBLAS (Parallel Sparse BLAS)</span> class="cmr-12">multilevel preconditioners in the context of the PSBLAS (Parallel Sparse BLAS)</span>
@ -221,11 +232,11 @@ class="cmr-12">computational framework</span><span
class="cmr-12">&#x00A0;</span><span class="cite"><span class="cmr-12">&#x00A0;</span><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#Xpsblas_00"><span href="userhtmlli5.html#Xpsblas_00"><span
class="cmr-12">19</span></a><span class="cmr-12">20</span></a><span
class="cmr-12">,</span><span class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlli5.html#XPSBLAS3"><span href="userhtmlli5.html#XPSBLAS3"><span
class="cmr-12">18</span></a><span class="cmr-12">19</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">. PSBLAS provides basic linear algebra operators</span> class="cmr-12">. PSBLAS provides basic linear algebra operators</span>
<span <span
@ -259,14 +270,14 @@ class="cmr-12">In the most recent version of PSBLAS (release 3.7), a plug-in for
<span <span
class="cmr-12">included; it includes CUDA versions of main vector operations and of sparse</span> class="cmr-12">included; it includes CUDA versions of main vector operations and of sparse</span>
<span <span
class="cmr-12">matrix-vector multiplication, so that Krylov methods coupled with AMG4PBLAS</span> class="cmr-12">matrix-vector multiplication, so that Krylov methods coupled with AMG4PSBLAS</span>
<span <span
class="cmr-12">preconditioners relying on Jacobi and block-Jacobi smoothers with sparse</span> class="cmr-12">preconditioners relying on Jacobi and block-Jacobi smoothers with sparse</span>
<span <span
class="cmr-12">approximate inverses on the blocks can be efficiently executed on cluster of</span> class="cmr-12">approximate inverses on the blocks can be efficiently executed on cluster of</span>
<span <span
class="cmr-12">GPUs.</span> class="cmr-12">GPUs.</span>
<!--l. 84--><p class="indent" > <span <!--l. 85--><p class="indent" > <span
class="cmr-12">AMG4PSBLAS has a layered and modular software architecture where three main</span> class="cmr-12">AMG4PSBLAS has a layered and modular software architecture where three main</span>
<span <span
class="cmr-12">layers can be identified. The lower layer consists of the PSBLAS kernels, the middle</span> class="cmr-12">layers can be identified. The lower layer consists of the PSBLAS kernels, the middle</span>
@ -274,6 +285,9 @@ class="cmr-12">layers can be identified. The lower layer consists of the PSBLAS
class="cmr-12">one implements the construction and application phases of the preconditioners, and the</span> class="cmr-12">one implements the construction and application phases of the preconditioners, and the</span>
<span <span
class="cmr-12">upper one provides a uniform interface to all the preconditioners. This architecture</span> class="cmr-12">upper one provides a uniform interface to all the preconditioners. This architecture</span>
<span <span
class="cmr-12">allows for different levels of use of the package: few black-box routines at the upper</span> class="cmr-12">allows for different levels of use of the package: few black-box routines at the upper</span>
<span <span
@ -282,16 +296,13 @@ class="cmr-12">layer allow all users to easily build and apply any preconditione
class="cmr-12">AMG4PSBLAS; facilities are also available allowing expert users to extend the set of</span> class="cmr-12">AMG4PSBLAS; facilities are also available allowing expert users to extend the set of</span>
<span <span
class="cmr-12">smoothers and solvers for building new versions of the preconditioners (see</span> class="cmr-12">smoothers and solvers for building new versions of the preconditioners (see</span>
<span <span
class="cmr-12">Section</span><span class="cmr-12">Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse6.html#x26-300006"><span href="userhtmlse6.html#x26-300006"><span
class="cmr-12">6</span><!--tex4ht:ref: sec:adding --></a><span class="cmr-12">6</span><!--tex4ht:ref: sec:adding --></a><span
class="cmr-12">).</span> class="cmr-12">).</span>
<!--l. 95--><p class="indent" > <span <!--l. 96--><p class="indent" > <span
class="cmr-12">This guide is organized as follows. General information on the distribution of the</span> class="cmr-12">This guide is organized as follows. General information on the distribution of the</span>
<span <span
class="cmr-12">source code is reported in Section</span><span class="cmr-12">source code is reported in Section</span><span

@ -39,7 +39,7 @@ class="cmr-12">and multilevel (i.e., AMG) preconditioners with the Krylov solver
class="cmr-12">PSBLAS </span><span class="cite"><span class="cmr-12">PSBLAS </span><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#XPSBLASGUIDE"><span href="userhtmlli5.html#XPSBLASGUIDE"><span
class="cmr-12">17</span></a><span class="cmr-12">18</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">.</span> class="cmr-12">.</span>
<!--l. 9--><p class="indent" > <span <!--l. 9--><p class="indent" > <span
@ -242,7 +242,7 @@ class="cmcsc-10x-x-109"><span
class="small-caps">t</span><span class="small-caps">t</span><span
class="small-caps">y</span><span class="small-caps">y</span><span
class="small-caps">p</span><span class="small-caps">p</span><span
class="small-caps">e</span> </span></td><td style="white-space:wrap; text-align:left;" id="TBL-1-1-2" class="small-caps">e</span> </span></td><td style="white-space:normal; text-align:left;" id="TBL-1-1-2"
class="td11"><!--l. 68--><p class="noindent" ><span class="td11"><!--l. 68--><p class="noindent" ><span
class="cmcsc-10x-x-109"><span class="cmcsc-10x-x-109"><span
class="small-caps">s</span><span class="small-caps">s</span><span
@ -250,7 +250,7 @@ class="small-caps">t</span><span
class="small-caps">r</span><span class="small-caps">r</span><span
class="small-caps">i</span><span class="small-caps">i</span><span
class="small-caps">n</span><span class="small-caps">n</span><span
class="small-caps">g</span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-1-1-3" class="small-caps">g</span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-1-3"
class="td11"><!--l. 68--><p class="noindent" ><span class="td11"><!--l. 68--><p class="noindent" ><span
class="cmcsc-10x-x-109"><span class="cmcsc-10x-x-109"><span
class="small-caps">d</span><span class="small-caps">d</span><span
@ -276,17 +276,17 @@ class="small-caps">e</span><span
class="small-caps">r</span></span> </td></tr><tr class="small-caps">r</span></span> </td></tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></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" 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:wrap; text-align:left;" id="TBL-1-2-2" class="td11">No preconditioner </td><td style="white-space:normal; text-align:left;" id="TBL-1-2-2"
class="td11"><!--l. 69--><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">&#8217;</span><span
class="cmtt-10x-x-109">NONE</span><span class="cmtt-10x-x-109">NONE</span><span
class="cmtt-10x-x-109">&#8217;</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-1-2-3" class="cmtt-10x-x-109">&#8217;</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-2-3"
class="td11"><!--l. 69--><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> solvers with no preconditioner. </td>
</tr><tr </tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></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" 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:wrap; text-align:left;" id="TBL-1-3-2" class="td11">Diagonal </td><td style="white-space:normal; text-align:left;" id="TBL-1-3-2"
class="td11"><!--l. 71--><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">&#8217;</span><span
class="cmtt-10x-x-109">DIAG</span><span class="cmtt-10x-x-109">DIAG</span><span
@ -300,7 +300,7 @@ class="cmtt-10x-x-109">&#8217;</span><span
class="cmtt-10x-x-109">L1</span><span class="cmtt-10x-x-109">L1</span><span
class="cmtt-10x-x-109">-</span><span class="cmtt-10x-x-109">-</span><span
class="cmtt-10x-x-109">JACOBI</span><span class="cmtt-10x-x-109">JACOBI</span><span
class="cmtt-10x-x-109">&#8217;</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-1-3-3" class="cmtt-10x-x-109">&#8217;</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-3-3"
class="td11"><!--l. 71--><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 diagonal entry of the matrix to be
preconditioned, the corresponding entry preconditioned, the corresponding entry
@ -308,7 +308,7 @@ of the preconditioner is set to&#x00A0;1. </td>
</tr><tr </tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr 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" 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:wrap; text-align:left;" id="TBL-1-4-2" class="td11">Gauss-Seidel </td><td style="white-space:normal; text-align:left;" id="TBL-1-4-2"
class="td11"><!--l. 74--><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">&#8217;</span><span
class="cmtt-10x-x-109">GS</span><span class="cmtt-10x-x-109">GS</span><span
@ -318,14 +318,14 @@ class="cmtt-10x-x-109">&#8217;</span><span
class="cmtt-10x-x-109">L1</span><span class="cmtt-10x-x-109">L1</span><span
class="cmtt-10x-x-109">-</span><span class="cmtt-10x-x-109">-</span><span
class="cmtt-10x-x-109">GS</span><span class="cmtt-10x-x-109">GS</span><span
class="cmtt-10x-x-109">&#8217;</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-1-4-3" class="cmtt-10x-x-109">&#8217;</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-4-3"
class="td11"><!--l. 74--><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 global block Jacobi with Gauss-Seidel as
local solver. </td> local solver. </td>
</tr><tr </tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></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" 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:wrap; text-align:left;" id="TBL-1-5-2" class="td11">Symmetrized Gauss-Seidel</td><td style="white-space:normal; text-align:left;" id="TBL-1-5-2"
class="td11"><!--l. 77--><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">&#8217;</span><span
class="cmtt-10x-x-109">FBGS</span><span class="cmtt-10x-x-109">FBGS</span><span
@ -335,14 +335,14 @@ class="cmtt-10x-x-109">&#8217;</span><span
class="cmtt-10x-x-109">L1</span><span class="cmtt-10x-x-109">L1</span><span
class="cmtt-10x-x-109">-</span><span class="cmtt-10x-x-109">-</span><span
class="cmtt-10x-x-109">FBGS</span><span class="cmtt-10x-x-109">FBGS</span><span
class="cmtt-10x-x-109">&#8217;</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-1-5-3" class="cmtt-10x-x-109">&#8217;</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-5-3"
class="td11"><!--l. 77--><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 is, forward Gauss-Seidel followed by
backward Gauss-Seidel. </td> backward Gauss-Seidel. </td>
</tr><tr </tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></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" 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:wrap; text-align:left;" id="TBL-1-6-2" class="td11">Block Jacobi </td><td style="white-space:normal; text-align:left;" id="TBL-1-6-2"
class="td11"><!--l. 80--><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">&#8217;</span><span
class="cmtt-10x-x-109">BJAC</span><span class="cmtt-10x-x-109">BJAC</span><span
@ -352,27 +352,27 @@ class="cmtt-10x-x-109">&#8217;</span><span
class="cmtt-10x-x-109">L1</span><span class="cmtt-10x-x-109">L1</span><span
class="cmtt-10x-x-109">-</span><span class="cmtt-10x-x-109">-</span><span
class="cmtt-10x-x-109">BJAC</span><span class="cmtt-10x-x-109">BJAC</span><span
class="cmtt-10x-x-109">&#8217;</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-1-6-3" class="cmtt-10x-x-109">&#8217;</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-6-3"
class="td11"><!--l. 80--><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> blocks. </td>
</tr><tr </tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></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" 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:wrap; text-align:left;" id="TBL-1-7-2" class="td11">Additive Schwarz </td><td style="white-space:normal; text-align:left;" id="TBL-1-7-2"
class="td11"><!--l. 81--><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">&#8217;</span><span
class="cmtt-10x-x-109">AS</span><span class="cmtt-10x-x-109">AS</span><span
class="cmtt-10x-x-109">&#8217;</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-1-7-3" class="cmtt-10x-x-109">&#8217;</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-7-3"
class="td11"><!--l. 81--><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> and ILU(0) on the local blocks. </td>
</tr><tr </tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></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" 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:wrap; text-align:left;" id="TBL-1-8-2" class="td11">Multilevel </td><td style="white-space:normal; text-align:left;" id="TBL-1-8-2"
class="td11"><!--l. 83--><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">&#8217;</span><span
class="cmtt-10x-x-109">ML</span><span class="cmtt-10x-x-109">ML</span><span
class="cmtt-10x-x-109">&#8217;</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-1-8-3" class="cmtt-10x-x-109">&#8217;</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-8-3"
class="td11"><!--l. 83--><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 forward Gauss-Seidel (GS) sweep as
pre-smoother and one hybrid backward pre-smoother and one hybrid backward

@ -170,33 +170,33 @@ cellspacing="0" cellpadding="0"
><colgroup id="TBL-22-1g"><col ><colgroup id="TBL-22-1g"><col
id="TBL-22-1"><col id="TBL-22-1"><col
id="TBL-22-2"></colgroup><tr id="TBL-22-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-22-1-"><td style="white-space:wrap; text-align:left;" id="TBL-22-1-1" style="vertical-align:baseline;" id="TBL-22-1-"><td style="white-space:normal; text-align:left;" id="TBL-22-1-1"
class="td11"><!--l. 58--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 58--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">smoother</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-22-1-2" class="cmtt-12">smoother</span> </td><td style="white-space:normal; text-align:left;" id="TBL-22-1-2"
class="td11"><!--l. 58--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 58--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span class="cmtt-12">class</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
class="cmtt-12">amg_x_base_smoother_type</span><span class="cmtt-12">amg_x_base_smoother_type</span><span
class="cmtt-12">)</span> </td> class="cmtt-12">)</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-22-2-"><td style="white-space:wrap; text-align:left;" id="TBL-22-2-1" style="vertical-align:baseline;" id="TBL-22-2-"><td style="white-space:normal; text-align:left;" id="TBL-22-2-1"
class="td11"><!--l. 59--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-22-2-2" class="td11"><!--l. 59--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-22-2-2"
class="td11"><!--l. 59--><p class="noindent" ><span class="td11"><!--l. 59--><p class="noindent" ><span
class="cmr-12">The user-defined new smoother to be employed in the</span> class="cmr-12">The user-defined new smoother to be employed in the</span>
<span <span
class="cmr-12">preconditioner.</span> </td> class="cmr-12">preconditioner.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-22-3-"><td style="white-space:wrap; text-align:left;" id="TBL-22-3-1" style="vertical-align:baseline;" id="TBL-22-3-"><td style="white-space:normal; text-align:left;" id="TBL-22-3-1"
class="td11"><!--l. 61--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 61--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">solver</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-22-3-2" class="cmtt-12">solver</span> </td><td style="white-space:normal; text-align:left;" id="TBL-22-3-2"
class="td11"><!--l. 61--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 61--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span class="cmtt-12">class</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
class="cmtt-12">amg_x_base_solver_type</span><span class="cmtt-12">amg_x_base_solver_type</span><span
class="cmtt-12">)</span> </td> class="cmtt-12">)</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-22-4-"><td style="white-space:wrap; text-align:left;" id="TBL-22-4-1" style="vertical-align:baseline;" id="TBL-22-4-"><td style="white-space:normal; text-align:left;" id="TBL-22-4-1"
class="td11"><!--l. 62--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-22-4-2" class="td11"><!--l. 62--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-22-4-2"
class="td11"><!--l. 62--><p class="noindent" ><span 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> 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 <!--l. 66--><p class="noindent" ><span

@ -52,7 +52,7 @@ class="cmr-12">PSBLAS error handling routines; for further details see the PSBLA
<span class="cite"><span <span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#XPSBLASGUIDE"><span href="userhtmlli5.html#XPSBLASGUIDE"><span
class="cmr-12">17</span></a><span class="cmr-12">18</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">.</span> class="cmr-12">.</span>

@ -91,7 +91,7 @@ class="cmr-12">Trolling, insulting or derogatory comments, and personal or polit
class="cmr-12">Public or private harassment</span> class="cmr-12">Public or private harassment</span>
</li> </li>
<li class="itemize"><span <li class="itemize"><span
class="cmr-12">Publishing others private information, such as a physical or email address,</span> class="cmr-12">Publishing others&#8217; private information, such as a physical or email address,</span>
<span <span
class="cmr-12">without their explicit permission</span> class="cmr-12">without their explicit permission</span>
</li> </li>
@ -234,7 +234,7 @@ class="cmr-12">_of</span><span
class="cmr-12">_conduct</span> class="cmr-12">_conduct</span>
<span <span
class="cmr-12">.html</span></a><span class="cmr-12">.html</span></a><span
class="cmr-12">. Community Impact Guidelines were inspired by Mozillas code of conduct</span> class="cmr-12">. Community Impact Guidelines were inspired by Mozilla&#8217;s code of conduct</span>
<span <span
class="cmr-12">enforcement ladder. For answers to common questions about this code of conduct, see</span> class="cmr-12">enforcement ladder. For answers to common questions about this code of conduct, see</span>
<span <span

@ -36,15 +36,15 @@ class="cmbx-12">BLAS</span> </dt><dd
class="description"><span class="cite"><span class="description"><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#Xblas3"><span href="userhtmlli5.html#Xblas3"><span
class="cmr-12">15</span></a><span class="cmr-12">16</span></a><span
class="cmr-12">,</span><span class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlli5.html#Xblas2"><span href="userhtmlli5.html#Xblas2"><span
class="cmr-12">16</span></a><span class="cmr-12">17</span></a><span
class="cmr-12">,</span><span class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlli5.html#Xblas1"><span href="userhtmlli5.html#Xblas1"><span
class="cmr-12">22</span></a><span class="cmr-12">23</span></a><span
class="cmr-12">]</span></span> <span class="cmr-12">]</span></span> <span
class="cmr-12">Many vendors provide optimized versions of BLAS; if no</span> class="cmr-12">Many vendors provide optimized versions of BLAS; if no</span>
<span <span
@ -90,11 +90,11 @@ class="cmbx-12">MPI</span> </dt><dd
class="description"><span class="cite"><span class="description"><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#XMPI2"><span href="userhtmlli5.html#XMPI2"><span
class="cmr-12">21</span></a><span class="cmr-12">22</span></a><span
class="cmr-12">,</span><span class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlli5.html#XMPI1"><span href="userhtmlli5.html#XMPI1"><span
class="cmr-12">27</span></a><span class="cmr-12">28</span></a><span
class="cmr-12">]</span></span> <span class="cmr-12">]</span></span> <span
class="cmr-12">A version of MPI is available on most high-performance computing</span> class="cmr-12">A version of MPI is available on most high-performance computing</span>
<span <span
@ -105,11 +105,11 @@ class="cmbx-12">PSBLAS</span> </dt><dd
class="description"><span class="cite"><span class="description"><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#XPSBLASGUIDE"><span href="userhtmlli5.html#XPSBLASGUIDE"><span
class="cmr-12">17</span></a><span class="cmr-12">18</span></a><span
class="cmr-12">,</span><span class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlli5.html#Xpsblas_00"><span href="userhtmlli5.html#Xpsblas_00"><span
class="cmr-12">19</span></a><span class="cmr-12">20</span></a><span
class="cmr-12">]</span></span> <span class="cmr-12">]</span></span> <span
class="cmr-12">Parallel Sparse BLAS (PSBLAS) is available from</span> class="cmr-12">Parallel Sparse BLAS (PSBLAS) is available from</span>
<a <a

@ -82,9 +82,9 @@ cellspacing="0" cellpadding="0"
><colgroup id="TBL-12-1g"><col ><colgroup id="TBL-12-1g"><col
id="TBL-12-1"><col id="TBL-12-1"><col
id="TBL-12-2"></colgroup><tr id="TBL-12-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-12-1-"><td style="white-space:wrap; text-align:left;" id="TBL-12-1-1" style="vertical-align:baseline;" id="TBL-12-1-"><td style="white-space:normal; text-align:left;" id="TBL-12-1-1"
class="td11"><!--l. 678--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 678--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">a</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-12-1-2" class="cmtt-12">a</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-1-2"
class="td11"><!--l. 678--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 678--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">type</span><span class="cmtt-12">type</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
@ -99,8 +99,8 @@ class="cmtt-12">in</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-12-2-"><td style="white-space:wrap; text-align:left;" id="TBL-12-2-1" style="vertical-align:baseline;" id="TBL-12-2-"><td style="white-space:normal; text-align:left;" id="TBL-12-2-1"
class="td11"><!--l. 679--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-12-2-2" class="td11"><!--l. 679--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-2-2"
class="td11"><!--l. 679--><p class="noindent" ><span class="td11"><!--l. 679--><p class="noindent" ><span
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span> class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
<span <span
@ -116,13 +116,13 @@ class="cmr-12">, single/double precision version of AMG4PSBLAS</span>
class="cmr-12">under use. See the PSBLAS User&#8217;s Guide for details </span><span class="cite"><span class="cmr-12">under use. See the PSBLAS User&#8217;s Guide for details </span><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#XPSBLASGUIDE"><span href="userhtmlli5.html#XPSBLASGUIDE"><span
class="cmr-12">17</span></a><span class="cmr-12">18</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-12-3-"><td style="white-space:wrap; text-align:left;" id="TBL-12-3-1" style="vertical-align:baseline;" id="TBL-12-3-"><td style="white-space:normal; text-align:left;" id="TBL-12-3-1"
class="td11"><!--l. 683--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 683--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">desc_a</span></td><td style="white-space:wrap; text-align:left;" id="TBL-12-3-2" class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-12-3-2"
class="td11"><!--l. 683--><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">type</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
@ -135,8 +135,8 @@ class="cmtt-12">in</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-12-4-"><td style="white-space:wrap; text-align:left;" id="TBL-12-4-1" style="vertical-align:baseline;" id="TBL-12-4-"><td style="white-space:normal; text-align:left;" id="TBL-12-4-1"
class="td11"><!--l. 684--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-12-4-2" class="td11"><!--l. 684--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-4-2"
class="td11"><!--l. 684--><p class="noindent" ><span class="td11"><!--l. 684--><p class="noindent" ><span
class="cmr-12">The communication descriptor of </span><span class="lstinline"></span><span class="cmr-12">The communication descriptor of </span><span class="lstinline"></span><span
class="cmtt-12">a</span><span class="cmtt-12">a</span><span
@ -145,13 +145,13 @@ class="cmr-12">. See the PSBLAS User&#8217;s Guide</span>
class="cmr-12">for details </span><span class="cite"><span class="cmr-12">for details </span><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#XPSBLASGUIDE"><span href="userhtmlli5.html#XPSBLASGUIDE"><span
class="cmr-12">17</span></a><span class="cmr-12">18</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-12-5-"><td style="white-space:wrap; text-align:left;" id="TBL-12-5-1" style="vertical-align:baseline;" id="TBL-12-5-"><td style="white-space:normal; text-align:left;" id="TBL-12-5-1"
class="td11"><!--l. 686--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 686--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-12-5-2" class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-5-2"
class="td11"><!--l. 686--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 686--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
@ -162,8 +162,8 @@ class="cmtt-12">out</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-12-6-"><td style="white-space:wrap; text-align:left;" id="TBL-12-6-1" style="vertical-align:baseline;" id="TBL-12-6-"><td style="white-space:normal; text-align:left;" id="TBL-12-6-1"
class="td11"><!--l. 687--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-12-6-2" class="td11"><!--l. 687--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-6-2"
class="td11"><!--l. 687--><p class="noindent" ><span class="td11"><!--l. 687--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
@ -171,9 +171,9 @@ href="userhtmlse7.html#x27-310007"><span
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td> class="cmr-12">for details.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-12-7-"><td style="white-space:wrap; text-align:left;" id="TBL-12-7-1" style="vertical-align:baseline;" id="TBL-12-7-"><td style="white-space:normal; text-align:left;" id="TBL-12-7-1"
class="td11"><!--l. 688--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 688--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">amold</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-12-7-2" class="cmtt-12">amold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-7-2"
class="td11"><!--l. 688--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 688--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span class="cmtt-12">class</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
@ -190,8 +190,8 @@ class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-12-8-"><td style="white-space:wrap; text-align:left;" id="TBL-12-8-1" style="vertical-align:baseline;" id="TBL-12-8-"><td style="white-space:normal; text-align:left;" id="TBL-12-8-1"
class="td11"><!--l. 689--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-12-8-2" class="td11"><!--l. 689--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-8-2"
class="td11"><!--l. 689--><p class="noindent" ><span class="td11"><!--l. 689--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal matrix components; this</span> class="cmr-12">The desired dynamic type for internal matrix components; this</span>
<span <span
@ -200,13 +200,13 @@ class="cmr-12">allows e.g. running on GPUs; it needs not be the same
class="cmr-12">processes. See the PSBLAS User&#8217;s Guide for details </span><span class="cite"><span class="cmr-12">processes. See the PSBLAS User&#8217;s Guide for details </span><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#XPSBLASGUIDE"><span href="userhtmlli5.html#XPSBLASGUIDE"><span
class="cmr-12">17</span></a><span class="cmr-12">18</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-12-9-"><td style="white-space:wrap; text-align:left;" id="TBL-12-9-1" style="vertical-align:baseline;" id="TBL-12-9-"><td style="white-space:normal; text-align:left;" id="TBL-12-9-1"
class="td11"><!--l. 693--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 693--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">vmold</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-12-9-2" class="cmtt-12">vmold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-9-2"
class="td11"><!--l. 693--><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">class</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
@ -223,16 +223,16 @@ class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-12-10-"><td style="white-space:wrap; text-align:left;" id="TBL-12-10-1" style="vertical-align:baseline;" id="TBL-12-10-"><td style="white-space:normal; text-align:left;" id="TBL-12-10-1"
class="td11"><!--l. 694--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-12-10-2" class="td11"><!--l. 694--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-10-2"
class="td11"><!--l. 694--><p class="noindent" ><span class="td11"><!--l. 694--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal vector components; this</span> class="cmr-12">The desired dynamic type for internal vector components; this</span>
<span <span
class="cmr-12">allows e.g. running on GPUs.</span> </td> class="cmr-12">allows e.g. running on GPUs.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-12-11-"><td style="white-space:wrap; text-align:left;" id="TBL-12-11-1" style="vertical-align:baseline;" id="TBL-12-11-"><td style="white-space:normal; text-align:left;" id="TBL-12-11-1"
class="td11"><!--l. 696--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 696--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">imold</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-12-11-2" class="cmtt-12">imold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-11-2"
class="td11"><!--l. 696--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 696--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span class="cmtt-12">class</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
@ -247,14 +247,14 @@ class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-12-12-"><td style="white-space:wrap; text-align:left;" id="TBL-12-12-1" style="vertical-align:baseline;" id="TBL-12-12-"><td style="white-space:normal; text-align:left;" id="TBL-12-12-1"
class="td11"><!--l. 697--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-12-12-2" class="td11"><!--l. 697--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-12-2"
class="td11"><!--l. 697--><p class="noindent" ><span class="td11"><!--l. 697--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal integer vector components;</span> class="cmr-12">The desired dynamic type for internal integer vector components;</span>
<span <span
class="cmr-12">this allows e.g. running on GPUs.</span> </td> class="cmr-12">this allows e.g. running on GPUs.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-12-13-"><td style="white-space:wrap; text-align:left;" id="TBL-12-13-1" 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> class="td11"> </td> </tr></table></div>

@ -90,9 +90,9 @@ cellspacing="0" cellpadding="0"
><colgroup id="TBL-13-1g"><col ><colgroup id="TBL-13-1g"><col
id="TBL-13-1"><col id="TBL-13-1"><col
id="TBL-13-2"></colgroup><tr id="TBL-13-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-13-1-"><td style="white-space:wrap; text-align:left;" id="TBL-13-1-1" style="vertical-align:baseline;" id="TBL-13-1-"><td style="white-space:normal; text-align:left;" id="TBL-13-1-1"
class="td11"><!--l. 722--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 722--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">a</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-13-1-2" class="cmtt-12">a</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-1-2"
class="td11"><!--l. 722--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 722--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">type</span><span class="cmtt-12">type</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
@ -107,8 +107,8 @@ class="cmtt-12">in</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-2-"><td style="white-space:wrap; text-align:left;" id="TBL-13-2-1" style="vertical-align:baseline;" id="TBL-13-2-"><td style="white-space:normal; text-align:left;" id="TBL-13-2-1"
class="td11"><!--l. 723--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-13-2-2" class="td11"><!--l. 723--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-2-2"
class="td11"><!--l. 723--><p class="noindent" ><span class="td11"><!--l. 723--><p class="noindent" ><span
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span> class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
<span <span
@ -124,13 +124,13 @@ class="cmr-12">, single/double precision version of AMG4PSBLAS</span>
class="cmr-12">under use. See the PSBLAS User&#8217;s Guide for details </span><span class="cite"><span class="cmr-12">under use. See the PSBLAS User&#8217;s Guide for details </span><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#XPSBLASGUIDE"><span href="userhtmlli5.html#XPSBLASGUIDE"><span
class="cmr-12">17</span></a><span class="cmr-12">18</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-3-"><td style="white-space:wrap; text-align:left;" id="TBL-13-3-1" style="vertical-align:baseline;" id="TBL-13-3-"><td style="white-space:normal; text-align:left;" id="TBL-13-3-1"
class="td11"><!--l. 727--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 727--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">desc_a</span></td><td style="white-space:wrap; text-align:left;" id="TBL-13-3-2" class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-13-3-2"
class="td11"><!--l. 727--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 727--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">type</span><span class="cmtt-12">type</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
@ -143,8 +143,8 @@ class="cmtt-12">in</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-4-"><td style="white-space:wrap; text-align:left;" id="TBL-13-4-1" style="vertical-align:baseline;" id="TBL-13-4-"><td style="white-space:normal; text-align:left;" id="TBL-13-4-1"
class="td11"><!--l. 728--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-13-4-2" class="td11"><!--l. 728--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-4-2"
class="td11"><!--l. 728--><p class="noindent" ><span class="td11"><!--l. 728--><p class="noindent" ><span
class="cmr-12">The communication descriptor of </span><span class="lstinline"></span><span class="cmr-12">The communication descriptor of </span><span class="lstinline"></span><span
class="cmtt-12">a</span><span class="cmtt-12">a</span><span
@ -153,13 +153,13 @@ class="cmr-12">. See the PSBLAS User&#8217;s Guide</span>
class="cmr-12">for details </span><span class="cite"><span class="cmr-12">for details </span><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#XPSBLASGUIDE"><span href="userhtmlli5.html#XPSBLASGUIDE"><span
class="cmr-12">17</span></a><span class="cmr-12">18</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-5-"><td style="white-space:wrap; text-align:left;" id="TBL-13-5-1" style="vertical-align:baseline;" id="TBL-13-5-"><td style="white-space:normal; text-align:left;" id="TBL-13-5-1"
class="td11"><!--l. 730--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 730--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-13-5-2" class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-5-2"
class="td11"><!--l. 730--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 730--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
@ -170,8 +170,8 @@ class="cmtt-12">out</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-6-"><td style="white-space:wrap; text-align:left;" id="TBL-13-6-1" style="vertical-align:baseline;" id="TBL-13-6-"><td style="white-space:normal; text-align:left;" id="TBL-13-6-1"
class="td11"><!--l. 731--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-13-6-2" class="td11"><!--l. 731--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-6-2"
class="td11"><!--l. 731--><p class="noindent" ><span class="td11"><!--l. 731--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
@ -179,9 +179,9 @@ href="userhtmlse7.html#x27-310007"><span
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td> class="cmr-12">for details.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-7-"><td style="white-space:wrap; text-align:left;" id="TBL-13-7-1" style="vertical-align:baseline;" id="TBL-13-7-"><td style="white-space:normal; text-align:left;" id="TBL-13-7-1"
class="td11"><!--l. 732--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 732--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">amold</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-13-7-2" class="cmtt-12">amold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-7-2"
class="td11"><!--l. 732--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 732--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span class="cmtt-12">class</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
@ -198,8 +198,8 @@ class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-8-"><td style="white-space:wrap; text-align:left;" id="TBL-13-8-1" style="vertical-align:baseline;" id="TBL-13-8-"><td style="white-space:normal; text-align:left;" id="TBL-13-8-1"
class="td11"><!--l. 733--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-13-8-2" class="td11"><!--l. 733--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-8-2"
class="td11"><!--l. 733--><p class="noindent" ><span class="td11"><!--l. 733--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal matrix components; this</span> class="cmr-12">The desired dynamic type for internal matrix components; this</span>
<span <span
@ -208,13 +208,13 @@ class="cmr-12">allows e.g. running on GPUs; it needs not be the same
class="cmr-12">processes. See the PSBLAS User&#8217;s Guide for details </span><span class="cite"><span class="cmr-12">processes. See the PSBLAS User&#8217;s Guide for details </span><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#XPSBLASGUIDE"><span href="userhtmlli5.html#XPSBLASGUIDE"><span
class="cmr-12">17</span></a><span class="cmr-12">18</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-9-"><td style="white-space:wrap; text-align:left;" id="TBL-13-9-1" style="vertical-align:baseline;" id="TBL-13-9-"><td style="white-space:normal; text-align:left;" id="TBL-13-9-1"
class="td11"><!--l. 737--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 737--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">vmold</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-13-9-2" class="cmtt-12">vmold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-9-2"
class="td11"><!--l. 737--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 737--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span class="cmtt-12">class</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
@ -231,16 +231,16 @@ class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-10-"><td style="white-space:wrap; text-align:left;" id="TBL-13-10-1" style="vertical-align:baseline;" id="TBL-13-10-"><td style="white-space:normal; text-align:left;" id="TBL-13-10-1"
class="td11"><!--l. 738--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-13-10-2" class="td11"><!--l. 738--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-10-2"
class="td11"><!--l. 738--><p class="noindent" ><span class="td11"><!--l. 738--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal vector components; this</span> class="cmr-12">The desired dynamic type for internal vector components; this</span>
<span <span
class="cmr-12">allows e.g. running on GPUs.</span> </td> class="cmr-12">allows e.g. running on GPUs.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-11-"><td style="white-space:wrap; text-align:left;" id="TBL-13-11-1" style="vertical-align:baseline;" id="TBL-13-11-"><td style="white-space:normal; text-align:left;" id="TBL-13-11-1"
class="td11"><!--l. 740--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 740--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">imold</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-13-11-2" class="cmtt-12">imold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-11-2"
class="td11"><!--l. 740--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 740--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span class="cmtt-12">class</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
@ -255,14 +255,14 @@ class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-12-"><td style="white-space:wrap; text-align:left;" id="TBL-13-12-1" style="vertical-align:baseline;" id="TBL-13-12-"><td style="white-space:normal; text-align:left;" id="TBL-13-12-1"
class="td11"><!--l. 741--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-13-12-2" class="td11"><!--l. 741--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-12-2"
class="td11"><!--l. 741--><p class="noindent" ><span class="td11"><!--l. 741--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal integer vector components;</span> class="cmr-12">The desired dynamic type for internal integer vector components;</span>
<span <span
class="cmr-12">this allows e.g. running on GPUs.</span> </td> class="cmr-12">this allows e.g. running on GPUs.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-13-"><td style="white-space:wrap; text-align:left;" id="TBL-13-13-1" style="vertical-align:baseline;" id="TBL-13-13-"><td style="white-space:normal; text-align:left;" id="TBL-13-13-1"
class="td11"> </td> </tr></table></div> class="td11"> </td> </tr></table></div>
<!--l. 746--><p class="noindent" ><span <!--l. 746--><p class="noindent" ><span
class="cmr-12">The method can be used to build multilevel preconditioners too.</span> class="cmr-12">The method can be used to build multilevel preconditioners too.</span>

@ -96,9 +96,9 @@ cellspacing="0" cellpadding="0"
><colgroup id="TBL-14-1g"><col ><colgroup id="TBL-14-1g"><col
id="TBL-14-1"><col id="TBL-14-1"><col
id="TBL-14-2"></colgroup><tr id="TBL-14-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-14-1-"><td style="white-space:wrap; text-align:left;" id="TBL-14-1-1" style="vertical-align:baseline;" id="TBL-14-1-"><td style="white-space:normal; text-align:left;" id="TBL-14-1-1"
class="td11"><!--l. 769--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 769--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">x</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-14-1-2" class="cmtt-12">x</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-1-2"
class="td11"><!--l. 769--><p class="noindent" ><span class="td11"><!--l. 769--><p class="noindent" ><span
class="cmti-12">type</span><span class="lstinline"></span><span class="cmti-12">type</span><span class="lstinline"></span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
@ -106,8 +106,8 @@ class="cmtt-12">kind_parameter</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">, dimension(:), intent(in)&#8212;.</span> </td> class="cmr-12">, dimension(:), intent(in)&#8212;.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-2-"><td style="white-space:wrap; text-align:left;" id="TBL-14-2-1" style="vertical-align:baseline;" id="TBL-14-2-"><td style="white-space:normal; text-align:left;" id="TBL-14-2-1"
class="td11"><!--l. 770--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-14-2-2" class="td11"><!--l. 770--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-2-2"
class="td11"><!--l. 770--><p class="noindent" ><span class="td11"><!--l. 770--><p class="noindent" ><span
class="cmr-12">The local part of the vector </span><span class="cmr-12">The local part of the vector </span><span
class="cmmi-12">x</span><span class="cmmi-12">x</span><span
@ -125,9 +125,9 @@ class="cmr-12">, single/double</span>
<span <span
class="cmr-12">precision version of AMG4PSBLAS under use.</span> </td> class="cmr-12">precision version of AMG4PSBLAS under use.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-3-"><td style="white-space:wrap; text-align:left;" id="TBL-14-3-1" style="vertical-align:baseline;" id="TBL-14-3-"><td style="white-space:normal; text-align:left;" id="TBL-14-3-1"
class="td11"><!--l. 773--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 773--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">y</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-14-3-2" class="cmtt-12">y</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-3-2"
class="td11"><!--l. 773--><p class="noindent" ><span class="td11"><!--l. 773--><p class="noindent" ><span
class="cmti-12">type</span><span class="lstinline"></span><span class="cmti-12">type</span><span class="lstinline"></span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
@ -135,8 +135,8 @@ class="cmtt-12">kind_parameter</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">, dimension(:), intent(out)&#8212;.</span> </td> class="cmr-12">, dimension(:), intent(out)&#8212;.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-4-"><td style="white-space:wrap; text-align:left;" id="TBL-14-4-1" style="vertical-align:baseline;" id="TBL-14-4-"><td style="white-space:normal; text-align:left;" id="TBL-14-4-1"
class="td11"><!--l. 774--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-14-4-2" class="td11"><!--l. 774--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-4-2"
class="td11"><!--l. 774--><p class="noindent" ><span class="td11"><!--l. 774--><p class="noindent" ><span
class="cmr-12">The local part of the vector </span><span class="cmr-12">The local part of the vector </span><span
class="cmmi-12">y</span><span class="cmmi-12">y</span><span
@ -154,9 +154,9 @@ class="cmr-12">, single/double</span>
<span <span
class="cmr-12">precision version of AMG4PSBLAS under use.</span> </td> class="cmr-12">precision version of AMG4PSBLAS under use.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-5-"><td style="white-space:wrap; text-align:left;" id="TBL-14-5-1" style="vertical-align:baseline;" id="TBL-14-5-"><td style="white-space:normal; text-align:left;" id="TBL-14-5-1"
class="td11"><!--l. 777--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 777--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">desc_a</span></td><td style="white-space:wrap; text-align:left;" id="TBL-14-5-2" class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-14-5-2"
class="td11"><!--l. 777--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 777--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">type</span><span class="cmtt-12">type</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
@ -169,16 +169,16 @@ class="cmtt-12">in</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-6-"><td style="white-space:wrap; text-align:left;" id="TBL-14-6-1" style="vertical-align:baseline;" id="TBL-14-6-"><td style="white-space:normal; text-align:left;" id="TBL-14-6-1"
class="td11"><!--l. 778--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-14-6-2" class="td11"><!--l. 778--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-6-2"
class="td11"><!--l. 778--><p class="noindent" ><span class="td11"><!--l. 778--><p class="noindent" ><span
class="cmr-12">The communication descriptor associated to the matrix to be</span> class="cmr-12">The communication descriptor associated to the matrix to be</span>
<span <span
class="cmr-12">preconditioned.</span> </td> class="cmr-12">preconditioned.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-7-"><td style="white-space:wrap; text-align:left;" id="TBL-14-7-1" style="vertical-align:baseline;" id="TBL-14-7-"><td style="white-space:normal; text-align:left;" id="TBL-14-7-1"
class="td11"><!--l. 780--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 780--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-14-7-2" class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-7-2"
class="td11"><!--l. 780--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 780--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
@ -189,8 +189,8 @@ class="cmtt-12">out</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-8-"><td style="white-space:wrap; text-align:left;" id="TBL-14-8-1" style="vertical-align:baseline;" id="TBL-14-8-"><td style="white-space:normal; text-align:left;" id="TBL-14-8-1"
class="td11"><!--l. 781--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-14-8-2" class="td11"><!--l. 781--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-8-2"
class="td11"><!--l. 781--><p class="noindent" ><span class="td11"><!--l. 781--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
@ -198,9 +198,9 @@ href="userhtmlse7.html#x27-310007"><span
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td> class="cmr-12">for details.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-9-"><td style="white-space:wrap; text-align:left;" id="TBL-14-9-1" style="vertical-align:baseline;" id="TBL-14-9-"><td style="white-space:normal; text-align:left;" id="TBL-14-9-1"
class="td11"><!--l. 782--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 782--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">trans</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-14-9-2" class="cmtt-12">trans</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-9-2"
class="td11"><!--l. 782--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 782--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">character</span><span class="cmtt-12">character</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
@ -215,8 +215,8 @@ class="cmtt-12">(</span><span
class="cmtt-12">in</span><span class="cmtt-12">in</span><span
class="cmtt-12">).</span> </td> class="cmtt-12">).</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-10-"><td style="white-space:wrap; text-align:left;" id="TBL-14-10-1" style="vertical-align:baseline;" id="TBL-14-10-"><td style="white-space:normal; text-align:left;" id="TBL-14-10-1"
class="td11"><!--l. 783--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-14-10-2" class="td11"><!--l. 783--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-10-2"
class="td11"><!--l. 783--><p class="noindent" ><span class="td11"><!--l. 783--><p class="noindent" ><span
class="cmr-12">If </span><span class="lstinline"></span><span class="cmr-12">If </span><span class="lstinline"></span><span
class="cmtt-12">trans</span> <span class="cmtt-12">trans</span> <span
@ -290,9 +290,9 @@ class="cmsy-8">-</span><span
class="cmr-8">1</span></sup><span class="cmr-8">1</span></sup><span
class="cmr-12">).</span> </td> class="cmr-12">).</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-11-"><td style="white-space:wrap; text-align:left;" id="TBL-14-11-1" style="vertical-align:baseline;" id="TBL-14-11-"><td style="white-space:normal; text-align:left;" id="TBL-14-11-1"
class="td11"><!--l. 787--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 787--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">work</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-14-11-2" class="cmtt-12">work</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-11-2"
class="td11"><!--l. 787--><p class="noindent" ><span class="td11"><!--l. 787--><p class="noindent" ><span
class="cmti-12">type</span><span class="lstinline"></span><span class="cmti-12">type</span><span class="lstinline"></span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
@ -300,8 +300,8 @@ class="cmtt-12">kind_parameter</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">, dimension(:), optional, target&#8212;.</span> </td> class="cmr-12">, dimension(:), optional, target&#8212;.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-12-"><td style="white-space:wrap; text-align:left;" id="TBL-14-12-1" style="vertical-align:baseline;" id="TBL-14-12-"><td style="white-space:normal; text-align:left;" id="TBL-14-12-1"
class="td11"><!--l. 788--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-14-12-2" class="td11"><!--l. 788--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-12-2"
class="td11"><!--l. 788--><p class="noindent" ><span class="td11"><!--l. 788--><p class="noindent" ><span
class="cmr-12">Workspace. Its size should be at least </span><span class="lstinline"></span><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">4</span><span
@ -328,7 +328,7 @@ class="cmr-12">,</span>
<span <span
class="cmr-12">single/double precision version of AMG4PSBLAS under use.</span> </td> class="cmr-12">single/double precision version of AMG4PSBLAS under use.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-13-"><td style="white-space:wrap; text-align:left;" id="TBL-14-13-1" style="vertical-align:baseline;" id="TBL-14-13-"><td style="white-space:normal; text-align:left;" id="TBL-14-13-1"
class="td11"> </td> </tr></table></div> class="td11"> </td> </tr></table></div>

@ -57,9 +57,9 @@ cellspacing="0" cellpadding="0"
><colgroup id="TBL-15-1g"><col ><colgroup id="TBL-15-1g"><col
id="TBL-15-1"><col id="TBL-15-1"><col
id="TBL-15-2"></colgroup><tr id="TBL-15-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-15-1-"><td style="white-space:wrap; text-align:left;" id="TBL-15-1-1" style="vertical-align:baseline;" id="TBL-15-1-"><td style="white-space:normal; text-align:left;" id="TBL-15-1-1"
class="td11"><!--l. 809--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 809--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-15-1-2" class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-15-1-2"
class="td11"><!--l. 809--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 809--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
@ -70,8 +70,8 @@ class="cmtt-12">out</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-15-2-"><td style="white-space:wrap; text-align:left;" id="TBL-15-2-1" style="vertical-align:baseline;" id="TBL-15-2-"><td style="white-space:normal; text-align:left;" id="TBL-15-2-1"
class="td11"><!--l. 810--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-15-2-2" class="td11"><!--l. 810--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-2-2"
class="td11"><!--l. 810--><p class="noindent" ><span class="td11"><!--l. 810--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
@ -81,7 +81,7 @@ class="cmr-12">for</span>
<span <span
class="cmr-12">details.</span> </td> class="cmr-12">details.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-15-3-"><td style="white-space:wrap; text-align:left;" id="TBL-15-3-1" style="vertical-align:baseline;" id="TBL-15-3-"><td style="white-space:normal; text-align:left;" id="TBL-15-3-1"
class="td11"> </td> </tr></table></div> class="td11"> </td> </tr></table></div>

@ -75,9 +75,9 @@ cellspacing="0" cellpadding="0"
><colgroup id="TBL-16-1g"><col ><colgroup id="TBL-16-1g"><col
id="TBL-16-1"><col id="TBL-16-1"><col
id="TBL-16-2"></colgroup><tr id="TBL-16-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-16-1-"><td style="white-space:wrap; text-align:left;" id="TBL-16-1-1" style="vertical-align:baseline;" id="TBL-16-1-"><td style="white-space:normal; text-align:left;" id="TBL-16-1-1"
class="td11"><!--l. 830--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 830--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-16-1-2" class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-1-2"
class="td11"><!--l. 830--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 830--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
@ -88,8 +88,8 @@ class="cmtt-12">out</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-16-2-"><td style="white-space:wrap; text-align:left;" id="TBL-16-2-1" style="vertical-align:baseline;" id="TBL-16-2-"><td style="white-space:normal; text-align:left;" id="TBL-16-2-1"
class="td11"><!--l. 831--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-16-2-2" class="td11"><!--l. 831--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-2-2"
class="td11"><!--l. 831--><p class="noindent" ><span class="td11"><!--l. 831--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
@ -97,9 +97,9 @@ href="userhtmlse7.html#x27-310007"><span
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span></td> class="cmr-12">for details.</span></td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-16-3-"><td style="white-space:wrap; text-align:left;" id="TBL-16-3-1" style="vertical-align:baseline;" id="TBL-16-3-"><td style="white-space:normal; text-align:left;" id="TBL-16-3-1"
class="td11"><!--l. 832--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 832--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">iout</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-16-3-2" class="cmtt-12">iout</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-3-2"
class="td11"><!--l. 832--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 832--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
@ -112,16 +112,16 @@ class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-16-4-"><td style="white-space:wrap; text-align:left;" id="TBL-16-4-1" style="vertical-align:baseline;" id="TBL-16-4-"><td style="white-space:normal; text-align:left;" id="TBL-16-4-1"
class="td11"><!--l. 833--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-16-4-2" class="td11"><!--l. 833--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-4-2"
class="td11"><!--l. 833--><p class="noindent" ><span class="td11"><!--l. 833--><p class="noindent" ><span
class="cmr-12">The id of the file where the preconditioner description will be</span> class="cmr-12">The id of the file where the preconditioner description will be</span>
<span <span
class="cmr-12">printed; the default is the standard output.</span> </td> class="cmr-12">printed; the default is the standard output.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-16-5-"><td style="white-space:wrap; text-align:left;" id="TBL-16-5-1" style="vertical-align:baseline;" id="TBL-16-5-"><td style="white-space:normal; text-align:left;" id="TBL-16-5-1"
class="td11"><!--l. 835--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 835--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">root</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-16-5-2" class="cmtt-12">root</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-5-2"
class="td11"><!--l. 835--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 835--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
@ -134,8 +134,8 @@ class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-16-6-"><td style="white-space:wrap; text-align:left;" id="TBL-16-6-1" style="vertical-align:baseline;" id="TBL-16-6-"><td style="white-space:normal; text-align:left;" id="TBL-16-6-1"
class="td11"><!--l. 836--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-16-6-2" class="td11"><!--l. 836--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-6-2"
class="td11"><!--l. 836--><p class="noindent" ><span class="td11"><!--l. 836--><p class="noindent" ><span
class="cmr-12">The id of the process where the preconditioner description</span> class="cmr-12">The id of the process where the preconditioner description</span>
<span <span
@ -143,9 +143,9 @@ class="cmr-12">will be printed; the default is </span><span class="lstinline"></
class="cmtt-12">psb_root_</span><span class="cmtt-12">psb_root_</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-16-7-"><td style="white-space:wrap; text-align:left;" id="TBL-16-7-1" style="vertical-align:baseline;" id="TBL-16-7-"><td style="white-space:normal; text-align:left;" id="TBL-16-7-1"
class="td11"><!--l. 838--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 838--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">verbosity</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-16-7-2" class="cmtt-12">verbosity</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-7-2"
class="td11"><!--l. 838--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 838--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
@ -158,8 +158,8 @@ class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-16-8-"><td style="white-space:wrap; text-align:left;" id="TBL-16-8-1" style="vertical-align:baseline;" id="TBL-16-8-"><td style="white-space:normal; text-align:left;" id="TBL-16-8-1"
class="td11"><!--l. 839--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-16-8-2" class="td11"><!--l. 839--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-8-2"
class="td11"><!--l. 839--><p class="noindent" ><span class="td11"><!--l. 839--><p class="noindent" ><span
class="cmr-12">The verbosity level of the description. Default value is 0. For</span> class="cmr-12">The verbosity level of the description. Default value is 0. For</span>
<span <span
@ -169,7 +169,7 @@ class="cmr-12">a distributed multilevel preconditioner the size of the coarse</s
<span <span
class="cmr-12">matrices on every process.</span> </td> class="cmr-12">matrices on every process.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-16-9-"><td style="white-space:wrap; text-align:left;" id="TBL-16-9-1" style="vertical-align:baseline;" id="TBL-16-9-"><td style="white-space:normal; text-align:left;" id="TBL-16-9-1"
class="td11"> </td> </tr></table></div> class="td11"> </td> </tr></table></div>

@ -77,9 +77,9 @@ cellspacing="0" cellpadding="0"
><colgroup id="TBL-17-1g"><col ><colgroup id="TBL-17-1g"><col
id="TBL-17-1"><col id="TBL-17-1"><col
id="TBL-17-2"></colgroup><tr id="TBL-17-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-17-1-"><td style="white-space:wrap; text-align:left;" id="TBL-17-1-1" style="vertical-align:baseline;" id="TBL-17-1-"><td style="white-space:normal; text-align:left;" id="TBL-17-1-1"
class="td11"><!--l. 862--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 862--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-17-1-2" class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-17-1-2"
class="td11"><!--l. 862--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 862--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
@ -90,8 +90,8 @@ class="cmtt-12">out</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-17-2-"><td style="white-space:wrap; text-align:left;" id="TBL-17-2-1" style="vertical-align:baseline;" id="TBL-17-2-"><td style="white-space:normal; text-align:left;" id="TBL-17-2-1"
class="td11"><!--l. 863--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-17-2-2" class="td11"><!--l. 863--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-2-2"
class="td11"><!--l. 863--><p class="noindent" ><span class="td11"><!--l. 863--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
@ -99,9 +99,9 @@ href="userhtmlse7.html#x27-310007"><span
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td> class="cmr-12">for details.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-17-3-"><td style="white-space:wrap; text-align:left;" id="TBL-17-3-1" style="vertical-align:baseline;" id="TBL-17-3-"><td style="white-space:normal; text-align:left;" id="TBL-17-3-1"
class="td11"><!--l. 864--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 864--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">amold</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-17-3-2" class="cmtt-12">amold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-17-3-2"
class="td11"><!--l. 864--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 864--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span class="cmtt-12">class</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
@ -118,8 +118,8 @@ class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-17-4-"><td style="white-space:wrap; text-align:left;" id="TBL-17-4-1" style="vertical-align:baseline;" id="TBL-17-4-"><td style="white-space:normal; text-align:left;" id="TBL-17-4-1"
class="td11"><!--l. 865--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-17-4-2" class="td11"><!--l. 865--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-4-2"
class="td11"><!--l. 865--><p class="noindent" ><span class="td11"><!--l. 865--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal matrix components; this</span> class="cmr-12">The desired dynamic type for internal matrix components; this</span>
<span <span
@ -128,11 +128,11 @@ class="cmr-12">allows e.g. running on GPUs; it needs not be the same
class="cmr-12">processes. See the PSBLAS User&#8217;s Guide for details </span><span class="cite"><span class="cmr-12">processes. See the PSBLAS User&#8217;s Guide for details </span><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#XPSBLASGUIDE"><span href="userhtmlli5.html#XPSBLASGUIDE"><span
class="cmr-12">17</span></a><span class="cmr-12">18</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-17-5-"><td style="white-space:wrap; text-align:left;" id="TBL-17-5-1" 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> class="td11"> </td> </tr></table></div>
<!--l. 872--><p class="noindent" > <!--l. 872--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span <h5 class="subsubsectionHead"><span class="titlemark"><span
@ -166,9 +166,9 @@ cellspacing="0" cellpadding="0"
><colgroup id="TBL-18-1g"><col ><colgroup id="TBL-18-1g"><col
id="TBL-18-1"><col id="TBL-18-1"><col
id="TBL-18-2"></colgroup><tr id="TBL-18-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-18-1-"><td style="white-space:wrap; text-align:left;" id="TBL-18-1-1" style="vertical-align:baseline;" id="TBL-18-1-"><td style="white-space:normal; text-align:left;" id="TBL-18-1-1"
class="td11"><!--l. 884--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 884--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">pout</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-18-1-2" class="cmtt-12">pout</span> </td><td style="white-space:normal; text-align:left;" id="TBL-18-1-2"
class="td11"><!--l. 884--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 884--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">type</span><span class="cmtt-12">type</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
@ -183,8 +183,8 @@ class="cmtt-12">out</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-18-2-"><td style="white-space:wrap; text-align:left;" id="TBL-18-2-1" style="vertical-align:baseline;" id="TBL-18-2-"><td style="white-space:normal; text-align:left;" id="TBL-18-2-1"
class="td11"><!--l. 885--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-18-2-2" class="td11"><!--l. 885--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-2-2"
class="td11"><!--l. 885--><p class="noindent" ><span class="td11"><!--l. 885--><p class="noindent" ><span
class="cmr-12">The copy of the preconditioner data structure. Note that </span><span class="cmr-12">The copy of the preconditioner data structure. Note that </span><span
class="cmti-12">x </span><span class="cmti-12">x </span><span
@ -198,9 +198,9 @@ class="cmr-12">, single/double precision</span>
<span <span
class="cmr-12">version of AMG4PSBLAS under use.</span> </td> class="cmr-12">version of AMG4PSBLAS under use.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-18-3-"><td style="white-space:wrap; text-align:left;" id="TBL-18-3-1" style="vertical-align:baseline;" id="TBL-18-3-"><td style="white-space:normal; text-align:left;" id="TBL-18-3-1"
class="td11"><!--l. 888--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 888--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-18-3-2" class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-18-3-2"
class="td11"><!--l. 888--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 888--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
@ -211,8 +211,8 @@ class="cmtt-12">out</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-18-4-"><td style="white-space:wrap; text-align:left;" id="TBL-18-4-1" style="vertical-align:baseline;" id="TBL-18-4-"><td style="white-space:normal; text-align:left;" id="TBL-18-4-1"
class="td11"><!--l. 889--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-18-4-2" class="td11"><!--l. 889--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-4-2"
class="td11"><!--l. 889--><p class="noindent" ><span class="td11"><!--l. 889--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
@ -220,7 +220,7 @@ href="userhtmlse7.html#x27-310007"><span
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td> class="cmr-12">for details.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-18-5-"><td style="white-space:wrap; text-align:left;" id="TBL-18-5-1" style="vertical-align:baseline;" id="TBL-18-5-"><td style="white-space:normal; text-align:left;" id="TBL-18-5-1"
class="td11"> </td> </tr></table></div> class="td11"> </td> </tr></table></div>
<!--l. 894--><p class="noindent" > <!--l. 894--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span <h5 class="subsubsectionHead"><span class="titlemark"><span
@ -247,9 +247,9 @@ cellspacing="0" cellpadding="0"
><colgroup id="TBL-19-1g"><col ><colgroup id="TBL-19-1g"><col
id="TBL-19-1"><col id="TBL-19-1"><col
id="TBL-19-2"></colgroup><tr id="TBL-19-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-19-1-"><td style="white-space:wrap; text-align:left;" id="TBL-19-1-1" style="vertical-align:baseline;" id="TBL-19-1-"><td style="white-space:normal; text-align:left;" id="TBL-19-1-1"
class="td11"><!--l. 901--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 901--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">global</span> </td> <td style="white-space:wrap; text-align:left;" id="TBL-19-1-2" class="cmtt-12">global</span> </td> <td style="white-space:normal; text-align:left;" id="TBL-19-1-2"
class="td11"><!--l. 901--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 901--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">logical</span><span class="cmtt-12">logical</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
@ -257,8 +257,8 @@ class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-19-2-"><td style="white-space:wrap; text-align:left;" id="TBL-19-2-1" style="vertical-align:baseline;" id="TBL-19-2-"><td style="white-space:normal; text-align:left;" id="TBL-19-2-1"
class="td11"><!--l. 902--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-19-2-2" class="td11"><!--l. 902--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-2-2"
class="td11"><!--l. 902--><p class="noindent" ><span class="td11"><!--l. 902--><p class="noindent" ><span
class="cmr-12">Whether the global or local preconditioner memory occupatio is</span> class="cmr-12">Whether the global or local preconditioner memory occupatio is</span>
<span <span
@ -268,7 +268,7 @@ class="cmtt-12">false</span><span
class="cmtt-12">.</span><span class="cmtt-12">.</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-19-3-"><td style="white-space:wrap; text-align:left;" id="TBL-19-3-1" style="vertical-align:baseline;" id="TBL-19-3-"><td style="white-space:normal; text-align:left;" id="TBL-19-3-1"
class="td11"> </td> </tr></table> class="td11"> </td> </tr></table>
</div> <span </div> <span
class="cmr-12">Return memory footprint in bytes.</span> class="cmr-12">Return memory footprint in bytes.</span>
@ -333,9 +333,9 @@ cellspacing="0" cellpadding="0"
><colgroup id="TBL-20-1g"><col ><colgroup id="TBL-20-1g"><col
id="TBL-20-1"><col id="TBL-20-1"><col
id="TBL-20-2"></colgroup><tr id="TBL-20-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-20-1-"><td style="white-space:wrap; text-align:left;" id="TBL-20-1-1" style="vertical-align:baseline;" id="TBL-20-1-"><td style="white-space:normal; text-align:left;" id="TBL-20-1-1"
class="td11"><!--l. 934--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 934--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-20-1-2" class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-20-1-2"
class="td11"><!--l. 934--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 934--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
@ -346,8 +346,8 @@ class="cmtt-12">out</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-20-2-"><td style="white-space:wrap; text-align:left;" id="TBL-20-2-1" style="vertical-align:baseline;" id="TBL-20-2-"><td style="white-space:normal; text-align:left;" id="TBL-20-2-1"
class="td11"><!--l. 935--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-20-2-2" class="td11"><!--l. 935--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-20-2-2"
class="td11"><!--l. 935--><p class="noindent" ><span class="td11"><!--l. 935--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
@ -355,9 +355,9 @@ href="userhtmlse7.html#x27-310007"><span
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td> class="cmr-12">for details.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-20-3-"><td style="white-space:wrap; text-align:left;" id="TBL-20-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"><!--l. 936--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 936--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">vmold</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-20-3-2" class="cmtt-12">vmold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-20-3-2"
class="td11"><!--l. 936--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 936--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span class="cmtt-12">class</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
@ -374,14 +374,14 @@ class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-20-4-"><td style="white-space:wrap; text-align:left;" id="TBL-20-4-1" style="vertical-align:baseline;" id="TBL-20-4-"><td style="white-space:normal; text-align:left;" id="TBL-20-4-1"
class="td11"><!--l. 937--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-20-4-2" class="td11"><!--l. 937--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-20-4-2"
class="td11"><!--l. 937--><p class="noindent" ><span class="td11"><!--l. 937--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal vector components; this</span> class="cmr-12">The desired dynamic type for internal vector components; this</span>
<span <span
class="cmr-12">allows e.g. running on GPUs.</span> </td> class="cmr-12">allows e.g. running on GPUs.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-20-5-"><td style="white-space:wrap; text-align:left;" id="TBL-20-5-1" style="vertical-align:baseline;" id="TBL-20-5-"><td style="white-space:normal; text-align:left;" id="TBL-20-5-1"
class="td11"> </td> </tr></table></div> class="td11"> </td> </tr></table></div>
<!--l. 943--><p class="noindent" > <!--l. 943--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span <h5 class="subsubsectionHead"><span class="titlemark"><span
@ -411,9 +411,9 @@ cellspacing="0" cellpadding="0"
><colgroup id="TBL-21-1g"><col ><colgroup id="TBL-21-1g"><col
id="TBL-21-1"><col id="TBL-21-1"><col
id="TBL-21-2"></colgroup><tr id="TBL-21-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-21-1-"><td style="white-space:wrap; text-align:left;" id="TBL-21-1-1" style="vertical-align:baseline;" id="TBL-21-1-"><td style="white-space:normal; text-align:left;" id="TBL-21-1-1"
class="td11"><!--l. 955--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 955--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-21-1-2" class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-21-1-2"
class="td11"><!--l. 955--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 955--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
@ -424,8 +424,8 @@ class="cmtt-12">out</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-21-2-"><td style="white-space:wrap; text-align:left;" id="TBL-21-2-1" style="vertical-align:baseline;" id="TBL-21-2-"><td style="white-space:normal; text-align:left;" id="TBL-21-2-1"
class="td11"><!--l. 956--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-21-2-2" class="td11"><!--l. 956--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-21-2-2"
class="td11"><!--l. 956--><p class="noindent" ><span class="td11"><!--l. 956--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
@ -433,7 +433,7 @@ href="userhtmlse7.html#x27-310007"><span
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td> class="cmr-12">for details.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-21-3-"><td style="white-space:wrap; text-align:left;" id="TBL-21-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"> </td> </tr></table></div> class="td11"> </td> </tr></table></div>

@ -44,7 +44,7 @@ class="cmbx-12">UMFPACK</span> </dt><dd
class="description"><span class="cite"><span class="description"><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#XUMFPACK"><span href="userhtmlli5.html#XUMFPACK"><span
class="cmr-12">13</span></a><span class="cmr-12">14</span></a><span
class="cmr-12">]</span></span> <span class="cmr-12">]</span></span> <span
class="cmr-12">A sparse LU factorization package included in the SuiteSparse</span> class="cmr-12">A sparse LU factorization package included in the SuiteSparse</span>
<span <span
@ -86,7 +86,7 @@ class="cmbx-12">SuperLU</span> </dt><dd
class="description"><span class="cite"><span class="description"><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#XSUPERLU"><span href="userhtmlli5.html#XSUPERLU"><span
class="cmr-12">14</span></a><span class="cmr-12">15</span></a><span
class="cmr-12">]</span></span> <span class="cmr-12">]</span></span> <span
class="cmr-12">A sparse LU factorization package available from</span> class="cmr-12">A sparse LU factorization package available from</span>
<a <a
@ -108,7 +108,7 @@ class="cmbx-12">_Dist</span> </dt><dd
class="description"><span class="cite"><span class="description"><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#XSUPERLUDIST"><span href="userhtmlli5.html#XSUPERLUDIST"><span
class="cmr-12">23</span></a><span class="cmr-12">24</span></a><span
class="cmr-12">]</span></span> <span class="cmr-12">]</span></span> <span
class="cmr-12">A sparse LU factorization package available from the same</span> class="cmr-12">A sparse LU factorization package available from the same</span>
<span <span

@ -687,7 +687,8 @@ class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">&#8216;--</span><span class="cmtt-12">&#8216;--</span><span
class="cmtt-12">prefix</span><span class="cmtt-12">prefix</span><span
class="cmtt-12">=</span><span class="cmtt-12">=</span><span
class="cmtt-12">$HOME</span><span class="tctt-1200">$</span><span
class="cmtt-12">HOME</span><span
class="cmtt-12">&#8217;.</span><span class="cmtt-12">&#8217;.</span><span
class="cmtt-12">&#x00A0;</span><br /><span class="label"><a class="cmtt-12">&#x00A0;</span><br /><span class="label"><a
id="x11-10032r31"></a></span><span id="x11-10032r31"></a></span><span

@ -66,7 +66,7 @@ class="cmr-12">program.</span>
<!--l. 126--><p class="indent" > <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> class="cmr-12">The part of the code dealing with reading and assembling the sparse matrix and the</span>
<span <span
class="cmr-12">right-hand side vector and the deallocation of the relevant data structured, performed</span> class="cmr-12">right-hand side vector and the deallocation of the relevant data structures, performed</span>
<span <span
class="cmr-12">through the PSBLAS routines for sparse matrix and vector management, is not</span> class="cmr-12">through the PSBLAS routines for sparse matrix and vector management, is not</span>
<span <span
@ -92,7 +92,7 @@ class="cmr-12">the use of the PSBLAS routines, see the PSBLAS User&#8217;s Guide
class="cmr-12">&#x00A0;</span><span class="cite"><span class="cmr-12">&#x00A0;</span><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#XPSBLASGUIDE"><span href="userhtmlli5.html#XPSBLASGUIDE"><span
class="cmr-12">17</span></a><span class="cmr-12">18</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">.</span> class="cmr-12">.</span>
<!--l. 138--><p class="indent" > <span <!--l. 138--><p class="indent" > <span
@ -203,54 +203,58 @@ href="#x15-14002r2"><span
class="cmr-12">2</span><!--tex4ht:ref: fig:ex2 --></a> <span class="cmr-12">2</span><!--tex4ht:ref: fig:ex2 --></a> <span
class="cmr-12">shows</span> class="cmr-12">shows</span>
<span <span
class="cmr-12">how to set a V-cycle preconditioner which applies 1 block-Jacobi sweep as pre- and</span> class="cmr-12">how to set a V-cycle preconditioner which applies 1 block-Jacobi sweep as pre-</span>
<span <span
class="cmr-12">post-smoother, and solves the coarsest-level system with 8 block-Jacobi sweeps. Note</span> class="cmr-12">and post-smoother, and solves the coarsest-level system with 8 block-Jacobi</span>
<span <span
class="cmr-12">that the ILU(0) factorization (plus triangular solve) is used as local solver for the</span> class="cmr-12">sweeps. Note that the ILU(0) factorization (plus triangular solve) is used as</span>
<span <span
class="cmr-12">block-Jacobi sweeps, since this is the default associated with block-Jacobi</span> class="cmr-12">local solver for the block-Jacobi sweeps, since this is the default associated</span>
<span <span
class="cmr-12">and set by</span><span class="cmr-12">with block-Jacobi and set by</span><span
class="cmr-12">&#x00A0;</span><span class="lstinline"></span><span class="cmr-12">&#x00A0;</span><span class="lstinline"></span><span
class="cmtt-12">P</span><span class="cmtt-12">P</span><span
class="cmtt-12">%</span><span class="cmtt-12">%</span><span
class="cmtt-12">init</span><span class="cmtt-12">init</span><span
class="cmr-12">. Furthermore, specifying block-Jacobi as coarsest-level</span> class="cmr-12">. Furthermore, specifying block-Jacobi as</span>
<span <span
class="cmr-12">solver implies that the coarsest-level matrix is distributed among the processes.</span> class="cmr-12">coarsest-level solver implies that the coarsest-level matrix is distributed among</span>
<span <span
class="cmr-12">Figure</span><span class="cmr-12">the processes. Figure</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="#x15-14003r3"><span href="#x15-14003r3"><span
class="cmr-12">3</span><!--tex4ht:ref: fig:ex3 --></a> <span class="cmr-12">3</span><!--tex4ht:ref: fig:ex3 --></a> <span
class="cmr-12">shows how to set a W-cycle preconditioner using the Coarsening</span> class="cmr-12">shows how to set a W-cycle preconditioner using the</span>
<span <span
class="cmr-12">based on Compatible Weighted Matching. It applies 2 hybrid Gauss-Seidel</span> class="cmr-12">Coarsening based on Compatible Weighted Matching, aggregates of size at</span>
<span <span
class="cmr-12">sweeps as pre- and post-smoother, and solves the coarsest-level system with the</span> class="cmr-12">most 8 and smoothed prolongators. It applies 2 hybrid Gauss-Seidel sweeps as</span>
<span <span
class="cmr-12">multifrontal LU factorization implemented in MUMPS. It is specified that the</span> class="cmr-12">pre- and post-smoother, and solves the coarsest-level system with the parallel</span>
<span <span
class="cmr-12">coarsest-level matrix is distributed, since MUMPS can be used on both replicated and</span> class="cmr-12">flexible Conjugate Gradient method (KRM) coupled with the block-Jacobi</span>
<span <span
class="cmr-12">distributed matrices, and by default it is used on replicated ones. The code</span> class="cmr-12">preconditioner having ILU(0) on the blocks. Default parameters are used for stopping</span>
<span <span
class="cmr-12">fragments shown in Figures</span><span class="cmr-12">criterion of the coarsest solver. Note that, also in this case, specifying KRM as</span>
<span
class="cmr-12">coarsest-level solver implies that the coarsest-level matrix is distributed among the</span>
<span
class="cmr-12">processes.</span>
<!--l. 291--><p class="indent" > <span
class="cmr-12">The code fragments shown in Figures</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="#x15-14002r2"><span href="#x15-14002r2"><span
class="cmr-12">2</span><!--tex4ht:ref: fig:ex2 --></a> <span class="cmr-12">2</span><!--tex4ht:ref: fig:ex2 --></a> <span
class="cmr-12">and </span><a class="cmr-12">and </span><a
href="#x15-14003r3"><span href="#x15-14003r3"><span
class="cmr-12">3</span><!--tex4ht:ref: fig:ex3 --></a> <span class="cmr-12">3</span><!--tex4ht:ref: fig:ex3 --></a> <span
class="cmr-12">are included in the example program file</span> class="cmr-12">are included in the example program</span>
<span class="obeylines-h"><span class="verb"><span
class="cmtt-12">amg_dexample_ml.f90</span></span></span> <span
class="cmr-12">too. </span><span
class="cmbx-12">DA CORREGGERE NEL CODICE ESEMPIO</span>
<span <span
class="cmbx-12">3</span> class="cmr-12">file </span><span class="obeylines-h"><span class="verb"><span
<!--l. 288--><p class="indent" > <span class="cmtt-12">amg_dexample_ml.f90</span></span></span> <span
class="cmr-12">too.</span>
<!--l. 294--><p class="indent" > <span
class="cmr-12">Finally, Figure</span><span class="cmr-12">Finally, Figure</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="#x15-14004r4"><span href="#x15-14004r4"><span
@ -265,7 +269,7 @@ class="cmr-12">nonsymmetric. The corresponding example program is available in t
<span class="obeylines-h"><span class="verb"><span <span class="obeylines-h"><span class="verb"><span
class="cmtt-12">amg_dexample_1lev.f90</span></span></span><span class="cmtt-12">amg_dexample_1lev.f90</span></span></span><span
class="cmr-12">.</span> class="cmr-12">.</span>
<!--l. 295--><p class="indent" > <span <!--l. 301--><p class="indent" > <span
class="cmr-12">For all the previous preconditioners, example programs where the sparse matrix</span> class="cmr-12">For all the previous preconditioners, example programs where the sparse matrix</span>
<span <span
class="cmr-12">and the right-hand side are generated by discretizing a PDE with Dirichlet</span> class="cmr-12">and the right-hand side are generated by discretizing a PDE with Dirichlet</span>
@ -276,7 +280,7 @@ class="cmr-12">.</span>
<!--l. 298--><p class="indent" > <a <!--l. 304--><p class="indent" > <a
id="x15-14002r2"></a><hr class="float"><div class="float" id="x15-14002r2"></a><hr class="float"><div class="float"
> >
@ -284,7 +288,7 @@ class="cmr-12">.</span>
<div class="center" <div class="center"
> >
<!--l. 312--><p class="noindent" > <!--l. 318--><p class="noindent" >
<div class="minipage"><div class="verbatim" id="verbatim-7"> <div class="minipage"><div class="verbatim" id="verbatim-7">
...&#x00A0;... ...&#x00A0;...
&#x00A0;<br />!&#x00A0;build&#x00A0;a&#x00A0;V-cycle&#x00A0;preconditioner&#x00A0;with&#x00A0;1&#x00A0;block-Jacobi&#x00A0;sweep&#x00A0;(with &#x00A0;<br />!&#x00A0;build&#x00A0;a&#x00A0;V-cycle&#x00A0;preconditioner&#x00A0;with&#x00A0;1&#x00A0;block-Jacobi&#x00A0;sweep&#x00A0;(with
@ -298,7 +302,7 @@ class="cmr-12">.</span>
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%smoothers_build(A,desc_A,info) &#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%smoothers_build(A,desc_A,info)
&#x00A0;<br />...&#x00A0;... &#x00A0;<br />...&#x00A0;...
</div> </div>
<!--l. 327--><p class="nopar" ></div></div> <!--l. 333--><p class="nopar" ></div></div>
<br /><div class="caption" <br /><div class="caption"
><span class="id">Listing 2: </span><span ><span class="id">Listing 2: </span><span
class="content">setup of a multilevel preconditioner based on the default decoupled coarsening</span></div><!--tex4ht:label?: x15-14002r2 --> class="content">setup of a multilevel preconditioner based on the default decoupled coarsening</span></div><!--tex4ht:label?: x15-14002r2 -->
@ -309,7 +313,7 @@ class="content">setup of a multilevel preconditioner based on the default decoup
<!--l. 334--><p class="indent" > <a <!--l. 340--><p class="indent" > <a
id="x15-14003r3"></a><hr class="float"><div class="float" id="x15-14003r3"></a><hr class="float"><div class="float"
> >
@ -317,7 +321,7 @@ class="content">setup of a multilevel preconditioner based on the default decoup
<div class="center" <div class="center"
> >
<!--l. 351--><p class="noindent" > <!--l. 360--><p class="noindent" >
<div class="minipage"><div class="verbatim" id="verbatim-8"> <div class="minipage"><div class="verbatim" id="verbatim-8">
...&#x00A0;... ...&#x00A0;...
&#x00A0;<br />!&#x00A0;build&#x00A0;a&#x00A0;W-cycle&#x00A0;preconditioner&#x00A0;with&#x00A0;2&#x00A0;hybrid&#x00A0;Gauss-Seidel&#x00A0;sweeps &#x00A0;<br />!&#x00A0;build&#x00A0;a&#x00A0;W-cycle&#x00A0;preconditioner&#x00A0;with&#x00A0;2&#x00A0;hybrid&#x00A0;Gauss-Seidel&#x00A0;sweeps
@ -325,20 +329,21 @@ class="content">setup of a multilevel preconditioner based on the default decoup
&#x00A0;<br />!&#x00A0;matrix,&#x00A0;and&#x00A0;MUMPS&#x00A0;as&#x00A0;coarsest-level&#x00A0;solver &#x00A0;<br />!&#x00A0;matrix,&#x00A0;and&#x00A0;MUMPS&#x00A0;as&#x00A0;coarsest-level&#x00A0;solver
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%init(&#8217;ML&#8217;,info) &#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%init(&#8217;ML&#8217;,info)
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;PAR_AGGR_ALG&#8217;,&#8217;COUPLED&#8217;,info) &#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;PAR_AGGR_ALG&#8217;,&#8217;COUPLED&#8217;,info)
&#x00A0;<br />call&#x00A0;P%set(&#8217;AGGR_TYPE&#8217;,&#8217;MATCHBOXP&#8217;,info)
&#x00A0;<br />call&#x00A0;P%set(&#8217;AGGR_SIZE&#8217;,8,info)
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;ML_CYCLE&#8217;,&#8217;WCYCLE&#8217;,info) &#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;ML_CYCLE&#8217;,&#8217;WCYCLE&#8217;,info)
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;SMOOTHER_TYPE&#8217;,&#8217;FBGS&#8217;,info) &#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;SMOOTHER_TYPE&#8217;,&#8217;FBGS&#8217;,info)
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;SMOOTHER_SWEEPS&#8217;,2,info) &#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;SMOOTHER_SWEEPS&#8217;,2,info)
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;COARSE_SOLVE&#8217;,&#8217;MUMPS&#8217;,info) &#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;COARSE_SOLVE&#8217;,&#8217;KRM&#8217;,info)
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;COARSE_MAT&#8217;,&#8217;DIST&#8217;,info)
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%hierarchy_build(A,desc_A,info) &#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%hierarchy_build(A,desc_A,info)
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%smoothers_build(A,desc_A,info) &#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%smoothers_build(A,desc_A,info)
&#x00A0;<br />...&#x00A0;... &#x00A0;<br />...&#x00A0;...
</div> </div>
<!--l. 369--><p class="nopar" ></div></div> <!--l. 379--><p class="nopar" ></div></div>
<br /> <div class="caption" <br /> <div class="caption"
><span class="id">Listing 3: </span><span ><span class="id">Listing 3: </span><span
class="content">setup of a multilevel preconditioner based on the coupled coarsening based class="content">setup of a multilevel preconditioner based on the coupled coarsening using
on weighted matching</span></div><!--tex4ht:label?: x15-14003r3 --> weighted matching</span></div><!--tex4ht:label?: x15-14003r3 -->
@ -346,7 +351,7 @@ on weighted matching</span></div><!--tex4ht:label?: x15-14003r3 -->
<!--l. 376--><p class="indent" > <a <!--l. 386--><p class="indent" > <a
id="x15-14004r4"></a><hr class="float"><div class="float" id="x15-14004r4"></a><hr class="float"><div class="float"
> >
@ -354,7 +359,7 @@ on weighted matching</span></div><!--tex4ht:label?: x15-14003r3 -->
<div class="center" <div class="center"
> >
<!--l. 393--><p class="noindent" > <!--l. 398--><p class="noindent" >
<div class="minipage"><div class="verbatim" id="verbatim-9"> <div class="minipage"><div class="verbatim" id="verbatim-9">
...&#x00A0;... ...&#x00A0;...
&#x00A0;<br />!&#x00A0;set&#x00A0;RAS&#x00A0;with&#x00A0;overlap&#x00A0;2&#x00A0;and&#x00A0;ILU(0)&#x00A0;on&#x00A0;the&#x00A0;local&#x00A0;blocks &#x00A0;<br />!&#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 +370,7 @@ on weighted matching</span></div><!--tex4ht:label?: x15-14003r3 -->
&#x00A0;<br />!&#x00A0;solve&#x00A0;Ax=b&#x00A0;with&#x00A0;preconditioned&#x00A0;BiCGSTAB &#x00A0;<br />!&#x00A0;solve&#x00A0;Ax=b&#x00A0;with&#x00A0;preconditioned&#x00A0;BiCGSTAB
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;psb_krylov(&#8217;BICGSTAB&#8217;,A,P,b,x,tol,desc_A,info) &#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;psb_krylov(&#8217;BICGSTAB&#8217;,A,P,b,x,tol,desc_A,info)
</div> </div>
<!--l. 405--><p class="nopar" ></div></div> <!--l. 410--><p class="nopar" ></div></div>
<br /> <div class="caption" <br /> <div class="caption"
><span class="id">Listing 4: </span><span ><span class="id">Listing 4: </span><span
class="content">setup of a one-level Schwarz preconditioner.</span></div><!--tex4ht:label?: x15-14004r4 --> class="content">setup of a one-level Schwarz preconditioner.</span></div><!--tex4ht:label?: x15-14004r4 -->

@ -54,9 +54,9 @@ cellspacing="0" cellpadding="0"
><colgroup id="TBL-2-1g"><col ><colgroup id="TBL-2-1g"><col
id="TBL-2-1"><col id="TBL-2-1"><col
id="TBL-2-2"></colgroup><tr id="TBL-2-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-2-1-"><td style="white-space:wrap; text-align:left;" id="TBL-2-1-1" style="vertical-align:baseline;" id="TBL-2-1-"><td style="white-space:normal; text-align:left;" id="TBL-2-1-1"
class="td11"><!--l. 56--><p class="noindent" ><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:wrap; text-align:left;" id="TBL-2-1-2" class="cmtt-12">contxt</span> </td> <td style="white-space:normal; text-align:left;" id="TBL-2-1-2"
class="td11"><!--l. 56--><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">type</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
@ -69,13 +69,13 @@ class="cmtt-12">in</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-2-2-"><td style="white-space:wrap; text-align:left;" id="TBL-2-2-1" style="vertical-align:baseline;" id="TBL-2-2-"><td style="white-space:normal; text-align:left;" id="TBL-2-2-1"
class="td11"><!--l. 57--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-2-2-2" 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="td11"><!--l. 57--><p class="noindent" ><span
class="cmr-12">The communication context.</span> </td></tr><tr class="cmr-12">The communication context.</span> </td></tr><tr
style="vertical-align:baseline;" id="TBL-2-3-"><td style="white-space:wrap; text-align:left;" id="TBL-2-3-1" style="vertical-align:baseline;" id="TBL-2-3-"><td style="white-space:normal; text-align:left;" id="TBL-2-3-1"
class="td11"><!--l. 58--><p class="noindent" ><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:wrap; text-align:left;" id="TBL-2-3-2" class="cmtt-12">ptype</span> </td> <td style="white-space:normal; text-align:left;" id="TBL-2-3-2"
class="td11"><!--l. 58--><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">character</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
@ -88,8 +88,8 @@ class="cmtt-12">in</span><span
class="cmtt-12">)</span> <span class="cmtt-12">)</span> <span
class="cmr-12">.</span></td> class="cmr-12">.</span></td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-2-4-"><td style="white-space:wrap; text-align:left;" id="TBL-2-4-1" style="vertical-align:baseline;" id="TBL-2-4-"><td style="white-space:normal; text-align:left;" id="TBL-2-4-1"
class="td11"><!--l. 59--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-2-4-2" 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="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">The type of preconditioner. Its values are specified in Table</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
@ -97,14 +97,14 @@ href="userhtmlse4.html#x14-13015r1"><span
class="cmr-12">1</span><!--tex4ht:ref: tab:precinit --></a><span class="cmr-12">1</span><!--tex4ht:ref: tab:precinit --></a><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-2-5-"><td style="white-space:wrap; text-align:left;" id="TBL-2-5-1" style="vertical-align:baseline;" id="TBL-2-5-"><td style="white-space:normal; text-align:left;" id="TBL-2-5-1"
class="td11"><!--l. 61--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-2-5-2" 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="td11"><!--l. 61--><p class="noindent" ><span
class="cmr-12">Note that strings are case insensitive.</span> </td> class="cmr-12">Note that strings are case insensitive.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-2-6-"><td style="white-space:wrap; text-align:left;" id="TBL-2-6-1" style="vertical-align:baseline;" id="TBL-2-6-"><td style="white-space:normal; text-align:left;" id="TBL-2-6-1"
class="td11"><!--l. 62--><p class="noindent" ><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:wrap; text-align:left;" id="TBL-2-6-2" class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-2-6-2"
class="td11"><!--l. 62--><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">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
@ -115,8 +115,8 @@ class="cmtt-12">out</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-2-7-"><td style="white-space:wrap; text-align:left;" id="TBL-2-7-1" style="vertical-align:baseline;" id="TBL-2-7-"><td style="white-space:normal; text-align:left;" id="TBL-2-7-1"
class="td11"><!--l. 63--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-2-7-2" 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="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">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
@ -124,7 +124,7 @@ href="userhtmlse7.html#x27-310007"><span
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td> class="cmr-12">for details.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-2-8-"><td style="white-space:wrap; text-align:left;" id="TBL-2-8-1" style="vertical-align:baseline;" id="TBL-2-8-"><td style="white-space:normal; text-align:left;" id="TBL-2-8-1"
class="td11"> </td> </tr></table></div> class="td11"> </td> </tr></table></div>

File diff suppressed because it is too large Load Diff

@ -68,9 +68,9 @@ cellspacing="0" cellpadding="0"
><colgroup id="TBL-11-1g"><col ><colgroup id="TBL-11-1g"><col
id="TBL-11-1"><col id="TBL-11-1"><col
id="TBL-11-2"></colgroup><tr id="TBL-11-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-11-1-"><td style="white-space:wrap; text-align:left;" id="TBL-11-1-1" style="vertical-align:baseline;" id="TBL-11-1-"><td style="white-space:normal; text-align:left;" id="TBL-11-1-1"
class="td11"><!--l. 645--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 645--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">a</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-11-1-2" class="cmtt-12">a</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-1-2"
class="td11"><!--l. 645--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 645--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">type</span><span class="cmtt-12">type</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
@ -85,8 +85,8 @@ class="cmtt-12">in</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-11-2-"><td style="white-space:wrap; text-align:left;" id="TBL-11-2-1" style="vertical-align:baseline;" id="TBL-11-2-"><td style="white-space:normal; text-align:left;" id="TBL-11-2-1"
class="td11"><!--l. 646--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-11-2-2" class="td11"><!--l. 646--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-2-2"
class="td11"><!--l. 646--><p class="noindent" ><span class="td11"><!--l. 646--><p class="noindent" ><span
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span> class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
<span <span
@ -102,13 +102,13 @@ class="cmr-12">, single/double precision version of AMG4PSBLAS</span>
class="cmr-12">under use. See the PSBLAS User&#8217;s Guide for details </span><span class="cite"><span class="cmr-12">under use. See the PSBLAS User&#8217;s Guide for details </span><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#XPSBLASGUIDE"><span href="userhtmlli5.html#XPSBLASGUIDE"><span
class="cmr-12">17</span></a><span class="cmr-12">18</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-11-3-"><td style="white-space:wrap; text-align:left;" id="TBL-11-3-1" style="vertical-align:baseline;" id="TBL-11-3-"><td style="white-space:normal; text-align:left;" id="TBL-11-3-1"
class="td11"><!--l. 651--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 651--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">desc_a</span></td><td style="white-space:wrap; text-align:left;" id="TBL-11-3-2" class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-11-3-2"
class="td11"><!--l. 651--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 651--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">type</span><span class="cmtt-12">type</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
@ -121,8 +121,8 @@ class="cmtt-12">in</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-11-4-"><td style="white-space:wrap; text-align:left;" id="TBL-11-4-1" style="vertical-align:baseline;" id="TBL-11-4-"><td style="white-space:normal; text-align:left;" id="TBL-11-4-1"
class="td11"><!--l. 652--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-11-4-2" class="td11"><!--l. 652--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-4-2"
class="td11"><!--l. 652--><p class="noindent" ><span class="td11"><!--l. 652--><p class="noindent" ><span
class="cmr-12">The communication descriptor of </span><span class="lstinline"></span><span class="cmr-12">The communication descriptor of </span><span class="lstinline"></span><span
class="cmtt-12">a</span><span class="cmtt-12">a</span><span
@ -131,13 +131,13 @@ class="cmr-12">. See the PSBLAS User&#8217;s Guide</span>
class="cmr-12">for details </span><span class="cite"><span class="cmr-12">for details </span><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#XPSBLASGUIDE"><span href="userhtmlli5.html#XPSBLASGUIDE"><span
class="cmr-12">17</span></a><span class="cmr-12">18</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-11-5-"><td style="white-space:wrap; text-align:left;" id="TBL-11-5-1" style="vertical-align:baseline;" id="TBL-11-5-"><td style="white-space:normal; text-align:left;" id="TBL-11-5-1"
class="td11"><!--l. 654--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 654--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:wrap; text-align:left;" id="TBL-11-5-2" class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-5-2"
class="td11"><!--l. 654--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 654--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
@ -148,8 +148,8 @@ class="cmtt-12">out</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-11-6-"><td style="white-space:wrap; text-align:left;" id="TBL-11-6-1" style="vertical-align:baseline;" id="TBL-11-6-"><td style="white-space:normal; text-align:left;" id="TBL-11-6-1"
class="td11"><!--l. 655--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-11-6-2" class="td11"><!--l. 655--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-6-2"
class="td11"><!--l. 655--><p class="noindent" ><span class="td11"><!--l. 655--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
@ -157,7 +157,7 @@ href="userhtmlse7.html#x27-310007"><span
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td> class="cmr-12">for details.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-11-7-"><td style="white-space:wrap; text-align:left;" id="TBL-11-7-1" style="vertical-align:baseline;" id="TBL-11-7-"><td style="white-space:normal; text-align:left;" id="TBL-11-7-1"
class="td11"> </td> </tr></table></div> class="td11"> </td> </tr></table></div>

@ -6,11 +6,11 @@
\textsc{AMG4PSBLAS (Algebraic MultiGrid Preconditioners Package \textsc{AMG4PSBLAS (Algebraic MultiGrid Preconditioners Package
based on PSBLAS}) is a package of parallel algebraic multilevel preconditioners included in the PSCToolkit (Parallel Sparse Computation Toolkit) software framework. based on PSBLAS}) is a package of parallel algebraic multilevel preconditioners included in the PSCToolkit (Parallel Sparse Computation Toolkit) software framework.
It is a progress of a software development project started in 2007, named MLD2P4, which originally implemented a It is a progress of a software development project started in 2007, named MLD2P4, which originally implemented a
multilevel version of some domain decomposition preconditioners of additive-Schwarz type and was based on a parallel decoupled version of the well known smoothed multilevel version of some domain decomposition preconditioners of additive-Schwarz type, and was based on a parallel decoupled version of the well known smoothed
aggregation method to generate the multilevel hierarchy of coarser matrices. aggregation method to generate the multilevel hierarchy of coarser matrices.
In the last years, within the context of the EU-H2020 EoCoE project (Energy Oriented Center of Excellence), the package was extended for including new algorithms and In the last years, within the context of the EU-H2020 EoCoE project (Energy Oriented Center of Excellence), the package was extended for including new algorithms and
functionalities for the setup and application new AMG preconditioners with the final aims of improving efficiency and scalability when tens of thousands cores are functionalities for the setup and application new AMG preconditioners with the final aims of improving efficiency and scalability when tens of thousands cores are
used and of boosting reliability in dealing with general symmetric positive definite linear systems. used, and of boosting reliability in dealing with general symmetric positive definite linear systems.
Due to the significant number of changes and the increase in scope, we decided to rename the package as AMG4PSBLAS. Due to the significant number of changes and the increase in scope, we decided to rename the package as AMG4PSBLAS.
AMG4PSBLAS has been designed to provide scalable and easy-to-use preconditioners AMG4PSBLAS has been designed to provide scalable and easy-to-use preconditioners

@ -43,6 +43,7 @@ A.~Buttari, P.~D'Ambra, D.~di~Serafino, S.~Filippone,
for scientific and engineering applications}, for scientific and engineering applications},
Applicable Algebra in Engineering, Communications and Computing, Applicable Algebra in Engineering, Communications and Computing,
18 (3) 2007, 223--239. 18 (3) 2007, 223--239.
%
%Published online: 13 February 2007, {\tt http://dx.doi.org/10.1007/s00200-007-0035-z} %Published online: 13 February 2007, {\tt http://dx.doi.org/10.1007/s00200-007-0035-z}
% %
\bibitem{CAI_SARKIS} \bibitem{CAI_SARKIS}
@ -76,11 +77,15 @@ P.~D'Ambra, D.~di~Serafino, S.~Filippone,
Algebraic Domain Decomposition Preconditioners Algebraic Domain Decomposition Preconditioners
in Fortran 95}, ACM Trans. Math. Softw., 37(3), 2010, art. 30. in Fortran 95}, ACM Trans. Math. Softw., 37(3), 2010, art. 30.
% %
\bibitem{BDDF2007} \bibitem{DV2013}
A.~Buttari, P.~D'Ambra, D.~di Serafino, S.~Filippone, P.~D'Ambra and P.\,S.~Vassilevski,
\emph{2{LEV}-{D}2{P}4: a Package of High-Performance Preconditioners {\em Adaptive AMG with coarsening based on compatible weighted matching},
for Scientific and Engineering Applications}, Appl. Algebra Engrg. Comm. Comput., Computing and Visualization in Science, 16, (2013) 59--76.
18(3), 2007, 223--239. %
\bibitem{DFV2018}
P.~D'Ambra, S.~Filippone and P.\,S.~Vassilevski,
{\em BootCMatch: a software package for bootstrap AMG based on graph weighted matching},
ACM Transactions on Mathematical Software, 44, (2018) 39:1--39:25.
% %
\bibitem{DDF2020} \bibitem{DDF2020}
P.~D'Ambra, F~Durastante, S.~Filippone, P.~D'Ambra, F~Durastante, S.~Filippone,
@ -139,7 +144,6 @@ ACM Transactions on Mathematical Software, 26 (4), 2000, 527--550.
S. Gratton, P. Henon, P. Jiranek and X. Vasseur, S. Gratton, P. Henon, P. Jiranek and X. Vasseur,
{\em Reducing complexity of algebraic multigrid by aggregation}, {\em Reducing complexity of algebraic multigrid by aggregation},
Numerical Lin. Algebra with Applications, 2016, 23:501-518 Numerical Lin. Algebra with Applications, 2016, 23:501-518
% %
\bibitem{MPI2} \bibitem{MPI2}
W.~Gropp, S.~Huss-Lederman, A.~Lumsdaine, E.~Lusk, B.~Nitzberg, W.~Saphir, M.~Snir, W.~Gropp, S.~Huss-Lederman, A.~Lumsdaine, E.~Lusk, B.~Nitzberg, W.~Saphir, M.~Snir,
@ -192,14 +196,4 @@ P.~Van\v{e}k, J.~Mandel, M.~Brezina,
{\em Algebraic Multigrid by Smoothed Aggregation for Second and Fourth Order Elliptic Problems}, {\em Algebraic Multigrid by Smoothed Aggregation for Second and Fourth Order Elliptic Problems},
Computing, 56 (3) 1996, 179--196. Computing, 56 (3) 1996, 179--196.
% %
\bibitem{DV2013}
P.~D'Ambra and P.\,S.~Vassilevski,
{\em Adaptive AMG with coarsening based on compatible weighted matching},
Computing and Visualization in Science, 16, (2013) 59--76.
%
\bibitem{DFV2018}
P.~D'Ambra, S.~Filippone and P.\,S.~Vassilevski,
{\em BootCMatch: a software package for bootstrap AMG based on graph weighted matching},
ACM Transactions on Mathematical Software, 44, (2018) 39:1--39:25.
%
\end{thebibliography} \end{thebibliography}

@ -125,7 +125,7 @@ must be used by the example program.
The part of the code dealing with reading and assembling the sparse The part of the code dealing with reading and assembling the sparse
matrix and the right-hand side vector and the deallocation of the matrix and the right-hand side vector and the deallocation of the
relevant data structured, performed relevant data structures, performed
through the PSBLAS routines for sparse matrix and vector management, is not reported through the PSBLAS routines for sparse matrix and vector management, is not reported
here for the sake of conciseness. here for the sake of conciseness.
The complete code can be found in the example program file \verb|amg_dexample_ml.f90|, The complete code can be found in the example program file \verb|amg_dexample_ml.f90|,
@ -272,18 +272,24 @@ with block-Jacobi and set by~\fortinline|P%init|.
Furthermore, specifying block-Jacobi as coarsest-level Furthermore, specifying block-Jacobi as coarsest-level
solver implies that the coarsest-level matrix is distributed solver implies that the coarsest-level matrix is distributed
among the processes. among the processes.
Figure~\ref{fig:ex3} shows how to set a W-cycle preconditioner using the Coarsening based on Compatible Weighted Matching. It applies Figure~\ref{fig:ex3} shows how to set a W-cycle preconditioner using the Coarsening based on Compatible Weighted Matching, aggregates of size at most $8$ and smoothed prolongators. It applies
2 hybrid Gauss-Seidel sweeps as pre- and post-smoother, 2 hybrid Gauss-Seidel sweeps as pre- and post-smoother,
and solves the coarsest-level system with the multifrontal LU factorization and solves the coarsest-level system with the parallel flexible Conjugate Gradient method (KRM) coupled with the block-Jacobi preconditioner having ILU(0) on the blocks. Default parameters are used for stopping criterion of the coarsest solver.
implemented in MUMPS. It is specified that the coarsest-level Note that, also in this case, specifying KRM as coarsest-level
matrix is distributed, since MUMPS can be used on both solver implies that the coarsest-level matrix is distributed
replicated and distributed matrices, and by default among the processes.
it is used on replicated ones. %It is specified that the coarsest-level
%matrix is distributed, since MUMPS can be used on both
%replicated and distributed matrices, and by default
%it is used on replicated ones.
%Note the use of the parameter \fortinline|pos| %Note the use of the parameter \fortinline|pos|
%to specify a property only for the pre-smoother or the post-smoother %to specify a property only for the pre-smoother or the post-smoother
%(see Section~\ref{sec:precset} for more details). %(see Section~\ref{sec:precset} for more details).
The code fragments shown in Figures~\ref{fig:ex2} and \ref{fig:ex3} are The code fragments shown in Figures~\ref{fig:ex2} and \ref{fig:ex3} are
included in the example program file \verb|amg_dexample_ml.f90| too. \textbf{DA CORREGGERE NEL CODICE ESEMPIO 3} included in the example program file \verb|amg_dexample_ml.f90| too.
Finally, Figure~\ref{fig:ex4} shows the setup of a one-level Finally, Figure~\ref{fig:ex4} shows the setup of a one-level
additive Schwarz preconditioner, i.e., RAS with overlap 2. additive Schwarz preconditioner, i.e., RAS with overlap 2.
@ -334,16 +340,19 @@ call P%smoothers_build(A,desc_A,info)
\begin{listing}[h!] \begin{listing}[h!]
\ifpdf \ifpdf
\begin{minted}[breaklines=true,bgcolor=bg,fontsize=\small]{fortran} \begin{minted}[breaklines=true,bgcolor=bg,fontsize=\small]{fortran}
! build a W-cycle preconditioner with 2 hybrid Gauss-Seidel sweeps !build a W-cycle using the coupled coarsening based on weighted matching,
! as pre- and post-smoother, a distributed coarsest !aggregates of size at most 8 and smoothed prolongators,
! matrix, and MUMPS as coarsest-level solver !2 hybrid Gauss-Seidel sweeps as pre- and post-smoother,
!and parallel flexible Conjugate Gradient coupled with the block-Jacobi
!preconditioner having ILU(0) on the blocks as coarsest solver.
call P%init('ML',info) call P%init('ML',info)
call P%set('PAR_AGGR_ALG','COUPLED',info) call P%set('PAR_AGGR_ALG','COUPLED',info)
call P%set('AGGR_TYPE','MATCHBOXP',info)
call P%set('AGGR_SIZE',8,info)
call P%set('ML_CYCLE','WCYCLE',info) call P%set('ML_CYCLE','WCYCLE',info)
call P%set('SMOOTHER_TYPE','FBGS',info) call P%set('SMOOTHER_TYPE','FBGS',info)
call P%set('SMOOTHER_SWEEPS',2,info) call P%set('SMOOTHER_SWEEPS',2,info)
call P%set('COARSE_SOLVE','MUMPS',info) call P%set('COARSE_SOLVE','KRM',info)
call P%set('COARSE_MAT','DIST',info)
call P%hierarchy_build(A,desc_A,info) call P%hierarchy_build(A,desc_A,info)
call P%smoothers_build(A,desc_A,info) call P%smoothers_build(A,desc_A,info)
\end{minted} \end{minted}
@ -358,11 +367,12 @@ call P%smoothers_build(A,desc_A,info)
! matrix, and MUMPS as coarsest-level solver ! matrix, and MUMPS as coarsest-level solver
call P%init('ML',info) call P%init('ML',info)
call P%set('PAR_AGGR_ALG','COUPLED',info) call P%set('PAR_AGGR_ALG','COUPLED',info)
call P%set('AGGR_TYPE','MATCHBOXP',info)
call P%set('AGGR_SIZE',8,info)
call P%set('ML_CYCLE','WCYCLE',info) call P%set('ML_CYCLE','WCYCLE',info)
call P%set('SMOOTHER_TYPE','FBGS',info) call P%set('SMOOTHER_TYPE','FBGS',info)
call P%set('SMOOTHER_SWEEPS',2,info) call P%set('SMOOTHER_SWEEPS',2,info)
call P%set('COARSE_SOLVE','MUMPS',info) call P%set('COARSE_SOLVE','KRM',info)
call P%set('COARSE_MAT','DIST',info)
call P%hierarchy_build(A,desc_A,info) call P%hierarchy_build(A,desc_A,info)
call P%smoothers_build(A,desc_A,info) call P%smoothers_build(A,desc_A,info)
... ... ... ...
@ -371,23 +381,18 @@ call P%smoothers_build(A,desc_A,info)
\end{minipage} \end{minipage}
\end{center} \end{center}
\fi\vspace{-2em}% \fi\vspace{-2em}%
\caption{setup of a multilevel preconditioner based on the coupled coarsening based on weighted matching\label{fig:ex3}} \caption{setup of a multilevel preconditioner based on the coupled coarsening using weighted matching\label{fig:ex3}}
\end{listing}\vspace*{-2em} \end{listing}\vspace*{-2em}
\begin{listing}[h!] \begin{listing}[h!]
\ifpdf \ifpdf
\begin{minted}[breaklines=true,bgcolor=bg,fontsize=\small]{fortran} \begin{minted}[breaklines=true,bgcolor=bg,fontsize=\small]{fortran}
! build a W-cycle preconditioner with 2 hybrid Gauss-Seidel sweeps ! build a one-level RAS with overlap 2 and ILU(0) on the local blocks.
! as pre- and post-smoother, a distributed coarsest call P%init('AS',info)
! matrix, and MUMPS as coarsest-level solver call P%set('SUB_OVR',2,info)
call P%init('ML',info) call P%build(A,desc_A,info)
call P%set('PAR_AGGR_ALG','COUPLED',info) ... ...
call P%set('ML_CYCLE','WCYCLE',info) ! solve Ax=b with preconditioned BiCGSTAB
call P%set('SMOOTHER_TYPE','FBGS',info) call psb_krylov('BICGSTAB',A,P,b,x,tol,desc_A,info)
call P%set('SMOOTHER_SWEEPS',2,info)
call P%set('COARSE_SOLVE','MUMPS',info)
call P%set('COARSE_MAT','DIST',info)
call P%hierarchy_build(A,desc_A,info)
call P%smoothers_build(A,desc_A,info)
\end{minted} \end{minted}
\else \else
\begin{center} \begin{center}

@ -20,11 +20,12 @@ The preconditioners implemented in AMG4PSBLAS are obtained by combining
3 different types of AMG cycles with smoothers and coarsest-level 3 different types of AMG cycles with smoothers and coarsest-level
solvers. Available multigrid cycles include the V-, W-, and a version of a Krylov-type cycle solvers. Available multigrid cycles include the V-, W-, and a version of a Krylov-type cycle
(K-cycle)~\cite{Briggs2000,Notay2008}; they can be (K-cycle)~\cite{Briggs2000,Notay2008}; they can be
combined with Jacobi hybrid combined with Jacobi, hybrid
%\footnote{see Note 2 in Table~\ref{tab:p_coarse}, p.~28.} %\footnote{see Note 2 in Table~\ref{tab:p_coarse}, p.~28.}
forward/backward Gauss-Seidel, block-Jacobi, and additive Schwarz forward/backward Gauss-Seidel, block-Jacobi and additive Schwarz
smoothers. The Jacobi, block-Jacobi and smoothers with various versions of local incomplete factorizations and approximate inverses
Gauss-Seidel smoothers are also available in the $\ell_1$ version. on the blocks. The Jacobi, block-Jacobi and
Gauss-Seidel smoothers are also available in the $\ell_1$ version~\cite{DDF2020}.
An algebraic approach is used to generate a hierarchy of An algebraic approach is used to generate a hierarchy of
coarse-level matrices and operators, without explicitly using any information on the coarse-level matrices and operators, without explicitly using any information on the
@ -34,16 +35,16 @@ two different coarsening strategies, based on aggregation, are available:
\item a decoupled version of the smoothed aggregation procedure \item a decoupled version of the smoothed aggregation procedure
proposed in~\cite{BREZINA_VANEK,VANEK_MANDEL_BREZINA}, and already proposed in~\cite{BREZINA_VANEK,VANEK_MANDEL_BREZINA}, and already
included in the previous versions of the included in the previous versions of the
package~\cite{BDDF2007,MLD2P4_TOMS}; package~\cite{aaecc_07,MLD2P4_TOMS};
\item a coupled, parallel implementation of the Coarsening based on \item a coupled, parallel implementation of the Coarsening based on
Compatible Weighted Matching introduced in~\cite{DV2013,DFV2018} Compatible Weighted Matching introduced in~\cite{DV2013,DFV2018}
and described in detail in~\cite{DDF2020}; and described in detail in~\cite{DDF2020};
\end{itemize} \end{itemize}
Either exact or approximate solvers can be used on the coarsest-level Either exact or approximate solvers can be used on the coarsest-level
system. We provide interfaces to various sparse LU factorizations from external system. We provide interfaces to various parallel and sequential sparse LU factorizations from external
packages, native incomplete LU and approximate inverse factorizations, packages, sequential native incomplete LU and approximate inverse factorizations,
weighted Jacobi, hybrid Gauss-Seidel, block-Jacobi solvers and parallel weighted Jacobi, hybrid Gauss-Seidel, block-Jacobi solvers and
a recursive call to preconditioned Krylov methods; all calls to preconditioned Krylov methods; all
smoothers can be also exploited as one-level preconditioners. smoothers can be also exploited as one-level preconditioners.
AMG4PSBLAS is written in Fortran~2003, following an AMG4PSBLAS is written in Fortran~2003, following an
@ -76,7 +77,7 @@ therefore, AMG4PSBLAS can be run on any parallel machine where PSBLAS
implementations are available. In the most recent version of PSBLAS implementations are available. In the most recent version of PSBLAS
(release 3.7), a plug-in for GPU is included; it includes CUDA (release 3.7), a plug-in for GPU is included; it includes CUDA
versions of main vector operations and of sparse matrix-vector versions of main vector operations and of sparse matrix-vector
multiplication, so that Krylov methods coupled with AMG4PBLAS multiplication, so that Krylov methods coupled with AMG4PSBLAS
preconditioners relying on Jacobi and block-Jacobi smoothers with preconditioners relying on Jacobi and block-Jacobi smoothers with
sparse approximate inverses on the blocks can be efficiently executed sparse approximate inverses on the blocks can be efficiently executed
on cluster of GPUs. on cluster of GPUs.

@ -0,0 +1 @@
tmp/userguide.pdf

@ -297,10 +297,10 @@ of $A+A^T$.\\ \hline
\textsc{comments} \\ \hline \textsc{comments} \\ \hline
\fi \fi
\fortinline|'AGGR_TYPE'| & \fortinline|character(len=*)| \hspace*{-3mm} \fortinline|'AGGR_TYPE'| & \fortinline|character(len=*)| \hspace*{-3mm}
& \fortinline|'SOC1'| & &\fortinline|'SOC1'|,
\fortinline|'SOC1'|,
\fortinline|'SOC2'|, \fortinline|'SOC2'|,
\fortinline|'MATCHBOXP'| \fortinline|'MATCHBOXP'|
& \fortinline|'SOC1'|
& Type of aggregation algorithm: currently, & Type of aggregation algorithm: currently,
for the decoupled aggregation we implement two measures of strength of for the decoupled aggregation we implement two measures of strength of
connection, the one by Van\v{e}k, Mandel connection, the one by Van\v{e}k, Mandel
@ -403,7 +403,7 @@ the parameter \texttt{ilev}.} \\
(plus triangular solve); (plus triangular solve);
point-Jacobi, hybrid Gauss-Seidel or point-Jacobi, hybrid Gauss-Seidel or
block-Jacobi and related $\ell_1$-versions; block-Jacobi and related $\ell_1$-versions;
Krylov Method (Flexible Conjugate Gradient) coupled with Krylov Method (flexible Conjugate Gradient) coupled with
the block-Jacobi preconditioner the block-Jacobi preconditioner
with ILU(0) on the blocks. with ILU(0) on the blocks.
Note that \texttt{UMF} and \texttt{SLU} require the coarsest Note that \texttt{UMF} and \texttt{SLU} require the coarsest
@ -431,7 +431,7 @@ the parameter \texttt{ilev}.} \\
\fortinline|'MUMPS'| \par \fortinline|'SLU'| \par \fortinline|'UMF'| \par \fortinline|'MUMPS'| \par \fortinline|'SLU'| \par \fortinline|'UMF'| \par
\fortinline|'INVT'| \par \fortinline|'INVK'| \par \fortinline|'AINV'| \fortinline|'INVT'| \par \fortinline|'INVK'| \par \fortinline|'AINV'|
& See~Note. & See~Note.
& Solver for the diagonal blocks of the coarse matrix, & Solver for the diagonal blocks of the coarsest matrix,
in case the block Jacobi solver in case the block Jacobi solver
is chosen as coarsest-level solver: ILU($p$), ILU($p,t$), is chosen as coarsest-level solver: ILU($p$), ILU($p,t$),
MILU($p$), LU from MUMPS, SuperLU or UMFPACK MILU($p$), LU from MUMPS, SuperLU or UMFPACK
@ -486,7 +486,7 @@ the parameter \texttt{ilev}.} \\
\hline \hline
\end{tabular} \end{tabular}
\end{center} \end{center}
\caption{Parameters defining the coarse-space correction at the coarsest \caption{Parameters defining the solver at the coarsest
level (continued).\label{tab:p_coarse_1}} level (continued).\label{tab:p_coarse_1}}
\esideways \esideways
@ -505,7 +505,7 @@ level (continued).\label{tab:p_coarse_1}}
\hline \hline
\end{tabular} \end{tabular}
\end{center} \end{center}
\caption{Additional parameters defining the coarse-space correction at the coarsest \caption{Additional parameters defining the solver at the coarsest
level.\label{tab:p_coarse_2}} level.\label{tab:p_coarse_2}}
\esideways \esideways

@ -2,7 +2,7 @@
! !
! AMG4PSBLAS version 1.0 ! AMG4PSBLAS version 1.0
! Algebraic Multigrid Package ! Algebraic Multigrid Package
! based on PSBLAS (Parallel Sparse BLAS version 3.5) ! based on PSBLAS (Parallel Sparse BLAS version 3.7)
! !
! (C) Copyright 2020 ! (C) Copyright 2020
! !
@ -38,8 +38,8 @@
! File: amg_cexample_1lev.f90 ! File: amg_cexample_1lev.f90
! !
! This sample program solves a linear system by using BiCGStab preconditioned by ! This sample program solves a linear system by using BiCGStab preconditioned by
! RAS with overlap 2 and ILU(0) on the local blocks, as explained in Section 5.1 ! RAS with overlap 2 and ILU(0) on the local blocks, as explained in Section 4.1
! of the MLD2P4 User's and Reference Guide. ! of the AMG4PSBLAS User's and Reference Guide.
! !
! The matrix and the rhs are read from files (if an rhs is not available, the ! The matrix and the rhs are read from files (if an rhs is not available, the
! unit rhs is set). ! unit rhs is set).
@ -108,7 +108,7 @@ program amg_cexample_1lev
! Hello world ! Hello world
! !
if (iam == psb_root_) then if (iam == psb_root_) then
write(*,*) 'Welcome to MLD2P4 version: ',amg_version_string_ write(*,*) 'Welcome to AMG4PSBLAS version: ',amg_version_string_
write(*,*) 'This is the ',trim(name),' sample program' write(*,*) 'This is the ',trim(name),' sample program'
end if end if

@ -2,7 +2,7 @@
! !
! AMG4PSBLAS version 1.0 ! AMG4PSBLAS version 1.0
! Algebraic Multigrid Package ! Algebraic Multigrid Package
! based on PSBLAS (Parallel Sparse BLAS version 3.5) ! based on PSBLAS (Parallel Sparse BLAS version 3.7)
! !
! (C) Copyright 2020 ! (C) Copyright 2020
! !
@ -38,25 +38,27 @@
! File: amg_cexample_ml.f90 ! File: amg_cexample_ml.f90
! !
! This sample program solves a linear system by using CG coupled with ! This sample program solves a linear system by using CG coupled with
! one of the following multi-level preconditioner, as explained in Section 6.1 ! one of the following multi-level preconditioner, as explained in Section 4.1
! of the MLD2P4 User's and Reference Guide: ! of the AMG4PSBLAS User's and Reference Guide:
! !
! - choice = 1, the default multi-level preconditioner solver, i.e., ! - choice = 1, the default multi-level preconditioner solver, i.e.,
! V-cycle with basic smoothed aggregation, 1 hybrid forward/backward ! V-cycle with decoupled smoothed aggregation, 1 hybrid forward/backward
! GS sweep as pre/post-smoother and UMFPACK as coarsest-level ! GS sweep as pre/post-smoother and UMFPACK as coarsest-level
! solver (Sec. 5.1, Fig. 2) ! solver (Sec. 4.1, Listing 1)
! !
! - choice = 2, a V-cycle preconditioner with 1 block-Jacobi sweep ! - choice = 2, a V-cycle preconditioner with 1 block-Jacobi sweep
! (with ILU(0) on the blocks) as pre- and post-smoother, and 8 block-Jacobi ! (with ILU(0) on the blocks) as pre- and post-smoother, and 8 block-Jacobi
! sweeps (with ILU(0) on the blocks) as coarsest-level solver (Sec. 5.1, Fig. 3) ! sweeps (with ILU(0) on the blocks) as coarsest-level solver (Sec. 4.1, Listing 2)
! !
! - choice = 3, a W-cycle preconditioner with 2 hybrid forward/backward ! - choice = 3, W-cycle preconditioner based on the coupled aggregation relying on matching,
! GS sweeps as pre/post-smoother, a distributed coarsest ! with maximum size of aggregates equal to 8 and smoothed prolongators,
! matrix, and MUMPS as coarsest-level solver (Sec. 5.1, Fig. 4) ! 2 hybrid forward/backward GS sweeps as pre/post-smoother, a distributed coarsest
! matrix, and preconditioned Flexible Conjugate Gradient as coarsest-level solver (Sec. 4.1, Listing 3)
! !
! The matrix and the rhs are read from files (if an rhs is not available, the ! The matrix and the rhs are read from files (if an rhs is not available, the
! unit rhs is set). ! unit rhs is set).
! !
!
program amg_cexample_ml program amg_cexample_ml
use psb_base_mod use psb_base_mod
use amg_prec_mod use amg_prec_mod
@ -123,7 +125,7 @@ program amg_cexample_ml
! Hello world ! Hello world
! !
if (iam == psb_root_) then if (iam == psb_root_) then
write(*,*) 'Welcome to MLD2P4 version: ',amg_version_string_ write(*,*) 'Welcome to AMG4PSBLAS version: ',amg_version_string_
write(*,*) 'This is the ',trim(name),' sample program' write(*,*) 'This is the ',trim(name),' sample program'
end if end if
@ -230,14 +232,18 @@ program amg_cexample_ml
case(3) case(3)
! initialize a W-cycle preconditioner with 2 hybrid forward/backward ! initialize a W-cycle preconditioner based on the coupled aggregation relying on matching,
! GS sweeps as pre/post-smoother, a distributed coarsest ! with maximum size of aggregates equal to 8 and smoothed prolongators,
! matrix, and MUMPS as coarsest-level solver ! 2 hybrid forward/backward GS sweeps as pre/post-smoother, a distributed coarsest
! matrix, and preconditioned Flexible Conjugate Gradient as coarsest-level solver
call P%init(ctxt,'ML',info) call P%init(ctxt,'ML',info)
call P%set('PAR_AGGR_ALG','COUPLED',info)
call P%set('AGGR_TYPE','MATCHBOXP',info)
call P%set('AGGR_SIZE',8,info)
call P%set('ML_CYCLE','WCYCLE',info) call P%set('ML_CYCLE','WCYCLE',info)
call P%set('SMOOTHER_SWEEPS',2,info) call P%set('SMOOTHER_SWEEPS',2,info)
call P%set('COARSE_SOLVE','MUMPS',info) call P%set('COARSE_SOLVE','KRM',info)
call P%set('COARSE_MAT','DIST',info) call P%set('COARSE_MAT','DIST',info)
kmethod = 'CG' kmethod = 'CG'
end select end select

@ -2,7 +2,7 @@
! !
! AMG4PSBLAS version 1.0 ! AMG4PSBLAS version 1.0
! Algebraic Multigrid Package ! Algebraic Multigrid Package
! based on PSBLAS (Parallel Sparse BLAS version 3.5) ! based on PSBLAS (Parallel Sparse BLAS version 3.7)
! !
! (C) Copyright 2020 ! (C) Copyright 2020
! !
@ -38,8 +38,8 @@
! File: amg_dexample_1lev.f90 ! File: amg_dexample_1lev.f90
! !
! This sample program solves a linear system by using BiCGStab preconditioned by ! This sample program solves a linear system by using BiCGStab preconditioned by
! RAS with overlap 2 and ILU(0) on the local blocks, as explained in Section 5.1 ! RAS with overlap 2 and ILU(0) on the local blocks, as explained in Section 4.1
! of the MLD2P4 User's and Reference Guide. ! of the AMG4PSBLAS User's and Reference Guide.
! !
! The matrix and the rhs are read from files (if an rhs is not available, the ! The matrix and the rhs are read from files (if an rhs is not available, the
! unit rhs is set). ! unit rhs is set).
@ -108,7 +108,7 @@ program amg_dexample_1lev
! Hello world ! Hello world
! !
if (iam == psb_root_) then if (iam == psb_root_) then
write(*,*) 'Welcome to MLD2P4 version: ',amg_version_string_ write(*,*) 'Welcome to AMG4PSBLAS version: ',amg_version_string_
write(*,*) 'This is the ',trim(name),' sample program' write(*,*) 'This is the ',trim(name),' sample program'
end if end if

@ -2,7 +2,7 @@
! !
! AMG4PSBLAS version 1.0 ! AMG4PSBLAS version 1.0
! Algebraic Multigrid Package ! Algebraic Multigrid Package
! based on PSBLAS (Parallel Sparse BLAS version 3.5) ! based on PSBLAS (Parallel Sparse BLAS version 3.7)
! !
! (C) Copyright 2020 ! (C) Copyright 2020
! !
@ -38,21 +38,22 @@
! File: amg_dexample_ml.f90 ! File: amg_dexample_ml.f90
! !
! This sample program solves a linear system by using CG coupled with ! This sample program solves a linear system by using CG coupled with
! one of the following multi-level preconditioner, as explained in Section 6.1 ! one of the following multi-level preconditioner, as explained in Section 4.1
! of the MLD2P4 User's and Reference Guide: ! of the AMG4PSBLAS User's and Reference Guide:
! !
! - choice = 1, the default multi-level preconditioner solver, i.e., ! - choice = 1, the default multi-level preconditioner solver, i.e.,
! V-cycle with basic smoothed aggregation, 1 hybrid forward/backward ! V-cycle with decoupled smoothed aggregation, 1 hybrid forward/backward
! GS sweep as pre/post-smoother and UMFPACK as coarsest-level ! GS sweep as pre/post-smoother and UMFPACK as coarsest-level
! solver (Sec. 5.1, Fig. 2) ! solver (Sec. 4.1, Listing 1)
! !
! - choice = 2, a V-cycle preconditioner with 1 block-Jacobi sweep ! - choice = 2, a V-cycle preconditioner with 1 block-Jacobi sweep
! (with ILU(0) on the blocks) as pre- and post-smoother, and 8 block-Jacobi ! (with ILU(0) on the blocks) as pre- and post-smoother, and 8 block-Jacobi
! sweeps (with ILU(0) on the blocks) as coarsest-level solver (Sec. 5.1, Fig. 3) ! sweeps (with ILU(0) on the blocks) as coarsest-level solver (Sec. 4.1, Listing 2)
! !
! - choice = 3, a W-cycle preconditioner with 2 hybrid forward/backward ! - choice = 3, W-cycle preconditioner based on the coupled aggregation relying on matching,
! GS sweeps as pre/post-smoother, a distributed coarsest ! with maximum size of aggregates equal to 8 and smoothed prolongators,
! matrix, and MUMPS as coarsest-level solver (Sec. 5.1, Fig. 4) ! 2 hybrid forward/backward GS sweeps as pre/post-smoother, a distributed coarsest
! matrix, and preconditioned Flexible Conjugate Gradient as coarsest-level solver (Sec. 4.1, Listing 3)
! !
! The matrix and the rhs are read from files (if an rhs is not available, the ! The matrix and the rhs are read from files (if an rhs is not available, the
! unit rhs is set). ! unit rhs is set).
@ -123,7 +124,7 @@ program amg_dexample_ml
! Hello world ! Hello world
! !
if (iam == psb_root_) then if (iam == psb_root_) then
write(*,*) 'Welcome to MLD2P4 version: ',amg_version_string_ write(*,*) 'Welcome to AMG4PSBLAS version: ',amg_version_string_
write(*,*) 'This is the ',trim(name),' sample program' write(*,*) 'This is the ',trim(name),' sample program'
end if end if
@ -209,7 +210,7 @@ program amg_dexample_ml
case(1) case(1)
! initialize the default multi-level preconditioner, i.e. V-cycle ! initialize the default multi-level preconditioner, i.e. V-cycle
! with basic smoothed aggregation, 1 hybrid forward/backward ! with decoupled smoothed aggregation, 1 hybrid forward/backward
! GS sweep as pre/post-smoother and UMFPACK as coarsest-level ! GS sweep as pre/post-smoother and UMFPACK as coarsest-level
! solver ! solver
@ -230,14 +231,18 @@ program amg_dexample_ml
case(3) case(3)
! initialize a W-cycle preconditioner with 2 hybrid forward/backward ! initialize a W-cycle preconditioner based on the coupled aggregation relying on matching,
! GS sweeps as pre/post-smoother, a distributed coarsest ! with maximum size of aggregates equal to 8 and smoothed prolongators,
! matrix, and MUMPS as coarsest-level solver ! 2 hybrid forward/backward GS sweeps as pre/post-smoother, a distributed coarsest
! matrix, and preconditioned Flexible Conjugate Gradient as coarsest-level solver
call P%init(ctxt,'ML',info) call P%init(ctxt,'ML',info)
call P%set('PAR_AGGR_ALG','COUPLED',info)
call P%set('AGGR_TYPE','MATCHBOXP',info)
call P%set('AGGR_SIZE',8,info)
call P%set('ML_CYCLE','WCYCLE',info) call P%set('ML_CYCLE','WCYCLE',info)
call P%set('SMOOTHER_SWEEPS',2,info) call P%set('SMOOTHER_SWEEPS',2,info)
call P%set('COARSE_SOLVE','MUMPS',info) call P%set('COARSE_SOLVE','KRM',info)
call P%set('COARSE_MAT','DIST',info) call P%set('COARSE_MAT','DIST',info)
kmethod = 'CG' kmethod = 'CG'
end select end select

@ -2,7 +2,7 @@
! !
! AMG4PSBLAS version 1.0 ! AMG4PSBLAS version 1.0
! Algebraic Multigrid Package ! Algebraic Multigrid Package
! based on PSBLAS (Parallel Sparse BLAS version 3.5) ! based on PSBLAS (Parallel Sparse BLAS version 3.7)
! !
! (C) Copyright 2020 ! (C) Copyright 2020
! !
@ -38,8 +38,8 @@
! File: amg_sexample_1lev.f90 ! File: amg_sexample_1lev.f90
! !
! This sample program solves a linear system by using BiCGStab preconditioned by ! This sample program solves a linear system by using BiCGStab preconditioned by
! RAS with overlap 2 and ILU(0) on the local blocks, as explained in Section 5.1 ! RAS with overlap 2 and ILU(0) on the local blocks, as explained in Section 4.1
! of the MLD2P4 User's and Reference Guide. ! of the AMG4PSBLAS User's and Reference Guide.
! !
! The matrix and the rhs are read from files (if an rhs is not available, the ! The matrix and the rhs are read from files (if an rhs is not available, the
! unit rhs is set). ! unit rhs is set).
@ -108,7 +108,7 @@ program amg_sexample_1lev
! Hello world ! Hello world
! !
if (iam == psb_root_) then if (iam == psb_root_) then
write(*,*) 'Welcome to MLD2P4 version: ',amg_version_string_ write(*,*) 'Welcome to AMG4PSBLAS version: ',amg_version_string_
write(*,*) 'This is the ',trim(name),' sample program' write(*,*) 'This is the ',trim(name),' sample program'
end if end if

@ -2,7 +2,7 @@
! !
! AMG4PSBLAS version 1.0 ! AMG4PSBLAS version 1.0
! Algebraic Multigrid Package ! Algebraic Multigrid Package
! based on PSBLAS (Parallel Sparse BLAS version 3.5) ! based on PSBLAS (Parallel Sparse BLAS version 3.7)
! !
! (C) Copyright 2020 ! (C) Copyright 2020
! !
@ -38,8 +38,8 @@
! File: amg_sexample_ml.f90 ! File: amg_sexample_ml.f90
! !
! This sample program solves a linear system by using CG coupled with ! This sample program solves a linear system by using CG coupled with
! one of the following multi-level preconditioner, as explained in Section 6.1 ! one of the following multi-level preconditioner, as explained in Section 4.1
! of the MLD2P4 User's and Reference Guide: ! of the AMG4PSBLAS User's and Reference Guide:
! !
! - choice = 1, the default multi-level preconditioner solver, i.e., ! - choice = 1, the default multi-level preconditioner solver, i.e.,
! V-cycle with basic smoothed aggregation, 1 hybrid forward/backward ! V-cycle with basic smoothed aggregation, 1 hybrid forward/backward
@ -123,7 +123,7 @@ program amg_sexample_ml
! Hello world ! Hello world
! !
if (iam == psb_root_) then if (iam == psb_root_) then
write(*,*) 'Welcome to MLD2P4 version: ',amg_version_string_ write(*,*) 'Welcome to AMG4PSBLAS version: ',amg_version_string_
write(*,*) 'This is the ',trim(name),' sample program' write(*,*) 'This is the ',trim(name),' sample program'
end if end if

@ -2,7 +2,7 @@
! !
! AMG4PSBLAS version 1.0 ! AMG4PSBLAS version 1.0
! Algebraic Multigrid Package ! Algebraic Multigrid Package
! based on PSBLAS (Parallel Sparse BLAS version 3.5) ! based on PSBLAS (Parallel Sparse BLAS version 3.7)
! !
! (C) Copyright 2020 ! (C) Copyright 2020
! !
@ -38,8 +38,8 @@
! File: amg_zexample_1lev.f90 ! File: amg_zexample_1lev.f90
! !
! This sample program solves a linear system by using BiCGStab preconditioned by ! This sample program solves a linear system by using BiCGStab preconditioned by
! RAS with overlap 2 and ILU(0) on the local blocks, as explained in Section 5.1 ! RAS with overlap 2 and ILU(0) on the local blocks, as explained in Section 4.1
! of the MLD2P4 User's and Reference Guide. ! of the AMG4PSBLAS User's and Reference Guide.
! !
! The matrix and the rhs are read from files (if an rhs is not available, the ! The matrix and the rhs are read from files (if an rhs is not available, the
! unit rhs is set). ! unit rhs is set).
@ -108,7 +108,7 @@ program amg_zexample_1lev
! Hello world ! Hello world
! !
if (iam == psb_root_) then if (iam == psb_root_) then
write(*,*) 'Welcome to MLD2P4 version: ',amg_version_string_ write(*,*) 'Welcome to AMG4PSBLAS version: ',amg_version_string_
write(*,*) 'This is the ',trim(name),' sample program' write(*,*) 'This is the ',trim(name),' sample program'
end if end if

@ -2,7 +2,7 @@
! !
! AMG4PSBLAS version 1.0 ! AMG4PSBLAS version 1.0
! Algebraic Multigrid Package ! Algebraic Multigrid Package
! based on PSBLAS (Parallel Sparse BLAS version 3.5) ! based on PSBLAS (Parallel Sparse BLAS version 3.7)
! !
! (C) Copyright 2020 ! (C) Copyright 2020
! !
@ -38,25 +38,27 @@
! File: amg_zexample_ml.f90 ! File: amg_zexample_ml.f90
! !
! This sample program solves a linear system by using CG coupled with ! This sample program solves a linear system by using CG coupled with
! one of the following multi-level preconditioner, as explained in Section 6.1 ! one of the following multi-level preconditioner, as explained in Section 4.1
! of the MLD2P4 User's and Reference Guide: ! of the AMG4PSBLAS User's and Reference Guide:
! !
! - choice = 1, the default multi-level preconditioner solver, i.e., ! - choice = 1, the default multi-level preconditioner solver, i.e.,
! V-cycle with basic smoothed aggregation, 1 hybrid forward/backward ! V-cycle with decoupled smoothed aggregation, 1 hybrid forward/backward
! GS sweep as pre/post-smoother and UMFPACK as coarsest-level ! GS sweep as pre/post-smoother and UMFPACK as coarsest-level
! solver (Sec. 5.1, Fig. 2) ! solver (Sec. 4.1, Listing 1)
! !
! - choice = 2, a V-cycle preconditioner with 1 block-Jacobi sweep ! - choice = 2, a V-cycle preconditioner with 1 block-Jacobi sweep
! (with ILU(0) on the blocks) as pre- and post-smoother, and 8 block-Jacobi ! (with ILU(0) on the blocks) as pre- and post-smoother, and 8 block-Jacobi
! sweeps (with ILU(0) on the blocks) as coarsest-level solver (Sec. 5.1, Fig. 3) ! sweeps (with ILU(0) on the blocks) as coarsest-level solver (Sec. 4.1, Listing 2)
! !
! - choice = 3, a W-cycle preconditioner with 2 hybrid forward/backward ! - choice = 3, W-cycle preconditioner based on the coupled aggregation relying on matching,
! GS sweeps as pre/post-smoother, a distributed coarsest ! with maximum size of aggregates equal to 8 and smoothed prolongators,
! matrix, and MUMPS as coarsest-level solver (Sec. 5.1, Fig. 4) ! 2 hybrid forward/backward GS sweeps as pre/post-smoother, a distributed coarsest
! matrix, and preconditioned Flexible Conjugate Gradient as coarsest-level solver (Sec. 4.1, Listing 3)
! !
! The matrix and the rhs are read from files (if an rhs is not available, the ! The matrix and the rhs are read from files (if an rhs is not available, the
! unit rhs is set). ! unit rhs is set).
! !
!
program amg_zexample_ml program amg_zexample_ml
use psb_base_mod use psb_base_mod
use amg_prec_mod use amg_prec_mod
@ -123,7 +125,7 @@ program amg_zexample_ml
! Hello world ! Hello world
! !
if (iam == psb_root_) then if (iam == psb_root_) then
write(*,*) 'Welcome to MLD2P4 version: ',amg_version_string_ write(*,*) 'Welcome to AMG4PSBLAS version: ',amg_version_string_
write(*,*) 'This is the ',trim(name),' sample program' write(*,*) 'This is the ',trim(name),' sample program'
end if end if
@ -230,14 +232,18 @@ program amg_zexample_ml
case(3) case(3)
! initialize a W-cycle preconditioner with 2 hybrid forward/backward ! initialize a W-cycle preconditioner based on the coupled aggregation relying on matching,
! GS sweeps as pre/post-smoother, a distributed coarsest ! with maximum size of aggregates equal to 8 and smoothed prolongators,
! matrix, and MUMPS as coarsest-level solver ! 2 hybrid forward/backward GS sweeps as pre/post-smoother, a distributed coarsest
! matrix, and preconditioned Flexible Conjugate Gradient as coarsest-level solver
call P%init(ctxt,'ML',info) call P%init(ctxt,'ML',info)
call P%set('PAR_AGGR_ALG','COUPLED',info)
call P%set('AGGR_TYPE','MATCHBOXP',info)
call P%set('AGGR_SIZE',8,info)
call P%set('ML_CYCLE','WCYCLE',info) call P%set('ML_CYCLE','WCYCLE',info)
call P%set('SMOOTHER_SWEEPS',2,info) call P%set('SMOOTHER_SWEEPS',2,info)
call P%set('COARSE_SOLVE','MUMPS',info) call P%set('COARSE_SOLVE','KRM',info)
call P%set('COARSE_MAT','DIST',info) call P%set('COARSE_MAT','DIST',info)
kmethod = 'CG' kmethod = 'CG'
end select end select

@ -1,14 +1,13 @@
! !
! AMG4PSBLAS version 1.0
! Algebraic Multigrid Package
! based on PSBLAS (Parallel Sparse BLAS version 3.7)
! !
! MLD2P4 version 2.2 ! (C) Copyright 2020
! MultiLevel Domain Decomposition Parallel Preconditioners Package
! based on PSBLAS (Parallel Sparse BLAS version 3.5)
!
! (C) Copyright 2008-2018
! !
! Salvatore Filippone ! Salvatore Filippone
! Pasqua D'Ambra ! Pasqua D'Ambra
! Daniela di Serafino ! Fabio Durastante
! !
! Redistribution and use in source and binary forms, with or without ! Redistribution and use in source and binary forms, with or without
! modification, are permitted provided that the following conditions ! modification, are permitted provided that the following conditions
@ -18,14 +17,14 @@
! 2. Redistributions in binary form must reproduce the above copyright ! 2. Redistributions in binary form must reproduce the above copyright
! notice, this list of conditions, and the following disclaimer in the ! notice, this list of conditions, and the following disclaimer in the
! documentation and/or other materials provided with the distribution. ! documentation and/or other materials provided with the distribution.
! 3. The name of the MLD2P4 group or the names of its contributors may ! 3. The name of the AMG4PSBLAS group or the names of its contributors may
! not be used to endorse or promote products derived from this ! not be used to endorse or promote products derived from this
! software without specific written permission. ! software without specific written permission.
! !
! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE MLD2P4 GROUP OR ITS CONTRIBUTORS ! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AMG4PSBLAS GROUP OR ITS CONTRIBUTORS
! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
@ -35,6 +34,7 @@
! POSSIBILITY OF SUCH DAMAGE. ! POSSIBILITY OF SUCH DAMAGE.
! !
! !
!
module data_input module data_input
interface read_data interface read_data

@ -1,9 +1,7 @@
!
! !
! AMG4PSBLAS version 1.0 ! AMG4PSBLAS version 1.0
! Algebraic Multigrid Package ! Algebraic Multigrid Package
! based on PSBLAS (Parallel Sparse BLAS version 3.5) ! based on PSBLAS (Parallel Sparse BLAS version 3.7)
! !
! (C) Copyright 2020 ! (C) Copyright 2020
! !
@ -40,8 +38,8 @@
! !
! This sample program solves a linear system obtained by discretizing a ! This sample program solves a linear system obtained by discretizing a
! PDE with Dirichlet BCs. The solver is BiCGStab preconditioned by ! PDE with Dirichlet BCs. The solver is BiCGStab preconditioned by
! RAS with overlap 2 and ILU(0) on the local blocks, as explained in Section 5.1 ! RAS with overlap 2 and ILU(0) on the local blocks, as explained in Section 4.1
! of the MLD2P4 User's and Reference Guide. ! of the AMG4PSBLAS User's and Reference Guide.
! !
! !
! The PDE is a general second order equation in 3d ! The PDE is a general second order equation in 3d
@ -116,7 +114,7 @@ program amg_dexample_1lev
! Hello world ! Hello world
! !
if (iam == psb_root_) then if (iam == psb_root_) then
write(*,*) 'Welcome to MLD2P4 version: ',amg_version_string_ write(*,*) 'Welcome to AMG4PSBLAS version: ',amg_version_string_
write(*,*) 'This is the ',trim(name),' sample program' write(*,*) 'This is the ',trim(name),' sample program'
end if end if

@ -1,8 +1,7 @@
! !
!
! AMG4PSBLAS version 1.0 ! AMG4PSBLAS version 1.0
! Algebraic Multigrid Package ! Algebraic Multigrid Package
! based on PSBLAS (Parallel Sparse BLAS version 3.5) ! based on PSBLAS (Parallel Sparse BLAS version 3.7)
! !
! (C) Copyright 2020 ! (C) Copyright 2020
! !
@ -39,21 +38,26 @@
! !
! This sample program solves a linear system obtained by discretizing a ! This sample program solves a linear system obtained by discretizing a
! PDE with Dirichlet BCs. The solver is CG, coupled with one of the ! PDE with Dirichlet BCs. The solver is CG, coupled with one of the
! following multi-level preconditioner, as explained in Section 5.1 of ! following multi-level preconditioner, as explained in Section 4.1 of
! the MLD2P4 User's and Reference Guide: ! the AMG4PSBLAS User's and Reference Guide:
! !
! - choice = 1, the default multi-level preconditioner solver, i.e., ! - choice = 1, the default multi-level preconditioner solver, i.e.,
! V-cycle with basic smoothed aggregation, 1 hybrid forward/backward ! V-cycle with decoupled smoothed aggregation, 1 hybrid forward/backward
! GS sweep as pre/post-smoother and UMFPACK as coarsest-level ! GS sweep as pre/post-smoother and UMFPACK as coarsest-level
! solver (Sec. 5.1, Fig. 2) ! solver (Sec. 4.1, Listing 1)
! !
! - choice = 2, a V-cycle preconditioner with 1 block-Jacobi sweep ! - choice = 2, a V-cycle preconditioner with 1 block-Jacobi sweep
! (with ILU(0) on the blocks) as pre- and post-smoother, and 8 block-Jacobi ! (with ILU(0) on the blocks) as pre- and post-smoother, and 8 block-Jacobi
! sweeps (with ILU(0) on the blocks) as coarsest-level solver (Sec. 5.1, Fig. 3) ! sweeps (with ILU(0) on the blocks) as coarsest-level solver (Sec. 4.1, Listing 2)
!
! - choice = 3, W-cycle preconditioner based on the coupled aggregation relying on matching,
! with maximum size of aggregates equal to 8 and smoothed prolongators,
! 2 hybrid forward/backward GS sweeps as pre/post-smoother, a distributed coarsest
! matrix, and preconditioned Flexible Conjugate Gradient as coarsest-level solver (Sec. 4.1, Listing 3)
!
! The matrix and the rhs are read from files (if an rhs is not available, the
! unit rhs is set).
! !
! - choice = 3, a W-cycle preconditioner with 2 hybrid forward/backward
! GS sweeps as pre/post-smoother, a distributed coarsest matrix,
! and MUMPS as coarsest-level solver (Sec. 5.1, Fig. 4)
! !
! The PDE is a general second order equation in 3d ! The PDE is a general second order equation in 3d
! !
@ -136,7 +140,7 @@ program amg_dexample_ml
! Hello world ! Hello world
! !
if (iam == psb_root_) then if (iam == psb_root_) then
write(*,*) 'Welcome to MLD2P4 version: ',amg_version_string_ write(*,*) 'Welcome to AMG4PSBLAS version: ',amg_version_string_
write(*,*) 'This is the ',trim(name),' sample program' write(*,*) 'This is the ',trim(name),' sample program'
end if end if
@ -187,17 +191,21 @@ program amg_dexample_ml
case(3) case(3)
! initialize a W-cycle preconditioner with 2 hybrid forward/backward ! initialize a W-cycle preconditioner based on the coupled aggregation relying on matching,
! GS sweeps as pre/post-smoother, a distributed coarsest ! with maximum size of aggregates equal to 8 and smoothed prolongators,
! matrix, and MUMPS as coarsest-level solver ! 2 hybrid forward/backward GS sweeps as pre/post-smoother, a distributed coarsest
! matrix, and preconditioned Flexible Conjugate Gradient as coarsest-level solver
call P%init(ctxt,'ML',info) call P%init(ctxt,'ML',info)
call P%set('PAR_AGGR_ALG','COUPLED',info)
call P%set('AGGR_TYPE','MATCHBOXP',info)
call P%set('AGGR_SIZE',8,info)
call P%set('ML_CYCLE','WCYCLE',info) call P%set('ML_CYCLE','WCYCLE',info)
call P%set('SMOOTHER_SWEEPS',2,info) call P%set('SMOOTHER_SWEEPS',2,info)
call P%set('COARSE_SOLVE','MUMPS',info) call P%set('COARSE_SOLVE','KRM',info)
call P%set('COARSE_MAT','DIST',info) call P%set('COARSE_MAT','DIST',info)
kmethod = 'CG' kmethod = 'CG'
end select
end select end select
call psb_barrier(ctxt) call psb_barrier(ctxt)

@ -1,8 +1,7 @@
! !
!
! AMG4PSBLAS version 1.0 ! AMG4PSBLAS version 1.0
! Algebraic Multigrid Package ! Algebraic Multigrid Package
! based on PSBLAS (Parallel Sparse BLAS version 3.5) ! based on PSBLAS (Parallel Sparse BLAS version 3.7)
! !
! (C) Copyright 2020 ! (C) Copyright 2020
! !

@ -3,7 +3,7 @@
! !
! AMG4PSBLAS version 1.0 ! AMG4PSBLAS version 1.0
! Algebraic Multigrid Package ! Algebraic Multigrid Package
! based on PSBLAS (Parallel Sparse BLAS version 3.5) ! based on PSBLAS (Parallel Sparse BLAS version 3.7)
! !
! (C) Copyright 2020 ! (C) Copyright 2020
! !
@ -40,8 +40,8 @@
! !
! This sample program solves a linear system obtained by discretizing a ! This sample program solves a linear system obtained by discretizing a
! PDE with Dirichlet BCs. The solver is BiCGStab preconditioned by ! PDE with Dirichlet BCs. The solver is BiCGStab preconditioned by
! RAS with overlap 2 and ILU(0) on the local blocks, as explained in Section 5.1 ! RAS with overlap 2 and ILU(0) on the local blocks, as explained in Section 4.1
! of the MLD2P4 User's and Reference Guide. ! of the AMG4PSBLAS User's and Reference Guide.
! !
! !
! The PDE is a general second order equation in 3d ! The PDE is a general second order equation in 3d
@ -116,7 +116,7 @@ program amg_sexample_1lev
! Hello world ! Hello world
! !
if (iam == psb_root_) then if (iam == psb_root_) then
write(*,*) 'Welcome to MLD2P4 version: ',amg_version_string_ write(*,*) 'Welcome to AMG4PSBLAS version: ',amg_version_string_
write(*,*) 'This is the ',trim(name),' sample program' write(*,*) 'This is the ',trim(name),' sample program'
end if end if

@ -2,7 +2,7 @@
! !
! AMG4PSBLAS version 1.0 ! AMG4PSBLAS version 1.0
! Algebraic Multigrid Package ! Algebraic Multigrid Package
! based on PSBLAS (Parallel Sparse BLAS version 3.5) ! based on PSBLAS (Parallel Sparse BLAS version 3.7)
! !
! (C) Copyright 2020 ! (C) Copyright 2020
! !
@ -39,21 +39,26 @@
! !
! This sample program solves a linear system obtained by discretizing a ! This sample program solves a linear system obtained by discretizing a
! PDE with Dirichlet BCs. The solver is CG, coupled with one of the ! PDE with Dirichlet BCs. The solver is CG, coupled with one of the
! following multi-level preconditioner, as explained in Section 5.1 of ! following multi-level preconditioner, as explained in Section 4.1 of
! the MLD2P4 User's and Reference Guide: ! the AMG4PSBLAS User's and Reference Guide:
! !
! - choice = 1, the default multi-level preconditioner solver, i.e., ! - choice = 1, the default multi-level preconditioner solver, i.e.,
! V-cycle with basic smoothed aggregation, 1 hybrid forward/backward ! V-cycle with decoupled smoothed aggregation, 1 hybrid forward/backward
! GS sweep as pre/post-smoother and UMFPACK as coarsest-level ! GS sweep as pre/post-smoother and UMFPACK as coarsest-level
! solver (Sec. 5.1, Fig. 2) ! solver (Sec. 4.1, Listing 1)
! !
! - choice = 2, a V-cycle preconditioner with 1 block-Jacobi sweep ! - choice = 2, a V-cycle preconditioner with 1 block-Jacobi sweep
! (with ILU(0) on the blocks) as pre- and post-smoother, and 8 block-Jacobi ! (with ILU(0) on the blocks) as pre- and post-smoother, and 8 block-Jacobi
! sweeps (with ILU(0) on the blocks) as coarsest-level solver (Sec. 5.1, Fig. 3) ! sweeps (with ILU(0) on the blocks) as coarsest-level solver (Sec. 4.1, Listing 2)
!
! - choice = 3, W-cycle preconditioner based on the coupled aggregation relying on matching,
! with maximum size of aggregates equal to 8 and smoothed prolongators,
! 2 hybrid forward/backward GS sweeps as pre/post-smoother, a distributed coarsest
! matrix, and preconditioned Flexible Conjugate Gradient as coarsest-level solver (Sec. 4.1, Listing 3)
!
! The matrix and the rhs are read from files (if an rhs is not available, the
! unit rhs is set).
! !
! - choice = 3, a W-cycle preconditioner with 2 hybrid forward/backward
! GS sweeps as pre/post-smoother, a distributed coarsest matrix,
! and MUMPS as coarsest-level solver (Sec. 5.1, Fig. 4)
! !
! The PDE is a general second order equation in 3d ! The PDE is a general second order equation in 3d
! !
@ -136,7 +141,7 @@ program amg_sexample_ml
! Hello world ! Hello world
! !
if (iam == psb_root_) then if (iam == psb_root_) then
write(*,*) 'Welcome to MLD2P4 version: ',amg_version_string_ write(*,*) 'Welcome to AMG4PSBLAS version: ',amg_version_string_
write(*,*) 'This is the ',trim(name),' sample program' write(*,*) 'This is the ',trim(name),' sample program'
end if end if
@ -187,19 +192,21 @@ program amg_sexample_ml
case(3) case(3)
! initialize a W-cycle preconditioner with 2 hybrid forward/backward ! initialize a W-cycle preconditioner based on the coupled aggregation relying on matching,
! GS sweeps as pre/post-smoother, a distributed coarsest ! with maximum size of aggregates equal to 8 and smoothed prolongators,
! matrix, and MUMPS as coarsest-level solver ! 2 hybrid forward/backward GS sweeps as pre/post-smoother, a distributed coarsest
! matrix, and preconditioned Flexible Conjugate Gradient as coarsest-level solver
call P%init(ctxt,'ML',info) call P%init(ctxt,'ML',info)
call P%set('PAR_AGGR_ALG','COUPLED',info)
call P%set('AGGR_TYPE','MATCHBOXP',info)
call P%set('AGGR_SIZE',8,info)
call P%set('ML_CYCLE','WCYCLE',info) call P%set('ML_CYCLE','WCYCLE',info)
call P%set('SMOOTHER_SWEEPS',2,info) call P%set('SMOOTHER_SWEEPS',2,info)
call P%set('COARSE_SOLVE','MUMPS',info) call P%set('COARSE_SOLVE','KRM',info)
call P%set('COARSE_MAT','DIST',info) call P%set('COARSE_MAT','DIST',info)
kmethod = 'CG' kmethod = 'CG'
end select end select
call psb_barrier(ctxt) call psb_barrier(ctxt)
t1 = psb_wtime() t1 = psb_wtime()

@ -2,7 +2,7 @@
! !
! AMG4PSBLAS version 1.0 ! AMG4PSBLAS version 1.0
! Algebraic Multigrid Package ! Algebraic Multigrid Package
! based on PSBLAS (Parallel Sparse BLAS version 3.5) ! based on PSBLAS (Parallel Sparse BLAS version 3.7)
! !
! (C) Copyright 2020 ! (C) Copyright 2020
! !

@ -1,14 +1,13 @@
! !
! AMG4PSBLAS version 1.0
! Algebraic Multigrid Package
! based on PSBLAS (Parallel Sparse BLAS version 3.7)
! !
! MLD2P4 version 2.2 ! (C) Copyright 2020
! MultiLevel Domain Decomposition Parallel Preconditioners Package
! based on PSBLAS (Parallel Sparse BLAS version 3.5)
!
! (C) Copyright 2008-2018
! !
! Salvatore Filippone ! Salvatore Filippone
! Pasqua D'Ambra ! Pasqua D'Ambra
! Daniela di Serafino ! Fabio Durastante
! !
! Redistribution and use in source and binary forms, with or without ! Redistribution and use in source and binary forms, with or without
! modification, are permitted provided that the following conditions ! modification, are permitted provided that the following conditions
@ -18,14 +17,14 @@
! 2. Redistributions in binary form must reproduce the above copyright ! 2. Redistributions in binary form must reproduce the above copyright
! notice, this list of conditions, and the following disclaimer in the ! notice, this list of conditions, and the following disclaimer in the
! documentation and/or other materials provided with the distribution. ! documentation and/or other materials provided with the distribution.
! 3. The name of the MLD2P4 group or the names of its contributors may ! 3. The name of the AMG4PSBLAS group or the names of its contributors may
! not be used to endorse or promote products derived from this ! not be used to endorse or promote products derived from this
! software without specific written permission. ! software without specific written permission.
! !
! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS ! THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED ! ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ! TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE MLD2P4 GROUP OR ITS CONTRIBUTORS ! PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AMG4PSBLAS GROUP OR ITS CONTRIBUTORS
! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ! BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ! CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ! SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
@ -33,8 +32,6 @@
! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ! CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE ! ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
! POSSIBILITY OF SUCH DAMAGE. ! POSSIBILITY OF SUCH DAMAGE.
!
!
module data_input module data_input
interface read_data interface read_data
@ -183,4 +180,3 @@ contains
trim_string = adjustl(string(idx:)) trim_string = adjustl(string(idx:))
end function trim_string end function trim_string
end module data_input end module data_input

Loading…
Cancel
Save