Merge branch 'repackage' of github.com:sfilippone/amg4psblas into repackage

repackage
sfilippone 1 month ago
commit c590a4088a

2
.gitignore vendored

@ -20,3 +20,5 @@ autom4te.cache
# the executable from tests # the executable from tests
runs runs
# Documentation temporary files
docs/src/userguide.pdf

@ -15,7 +15,13 @@ AMG4PSBLAS enables the user to easily specify different features of an algebraic
The package employs object-oriented design techniques in Fortran 2008, with interfaces to additional third party libraries such as MUMPS, UMFPACK, SuperLU, and SuperLU_Dist, which can be exploited in building multilevel preconditioners. The parallel implementation is based on a Single Program Multiple Data (SPMD) paradigm; the inter-process communication is based on MPI and is managed mainly through PSBLAS. The package employs object-oriented design techniques in Fortran 2008, with interfaces to additional third party libraries such as MUMPS, UMFPACK, SuperLU, and SuperLU_Dist, which can be exploited in building multilevel preconditioners. The parallel implementation is based on a Single Program Multiple Data (SPMD) paradigm; the inter-process communication is based on MPI and is managed mainly through PSBLAS.
## Main refrerences: ## Main Refrerences:
The main reference for this project is
> D'Ambra, P., Durastante, F., & Filippone, S. (2021). AMG preconditioners for linear solvers towards extreme scale. SIAM Journal on Scientific Computing, 43(5), S679-S703.
AMG4PSBLAS is the suite of preconditioners for the Parallel Sparse Computation Toolkit ([PSCToolkit](https://psctoolkit.github.io/)) suite of libraries. See the paper:
> DAmbra, P., Durastante, F., & Filippone, S. (2023). Parallel Sparse Computation Toolkit. Software Impacts, 15, 100463.
The main reference for features inherited from MLD2P4 is The main reference for features inherited from MLD2P4 is
> P. D'Ambra, D. di Serafino, S. Filippone, > P. D'Ambra, D. di Serafino, S. Filippone,
@ -24,12 +30,6 @@ The main reference for features inherited from MLD2P4 is
> ACM Transactions on Mathematical Software, 37 (3), 2010, art. 30, > ACM Transactions on Mathematical Software, 37 (3), 2010, art. 30,
> doi: 10.1145/1824801.1824808. > doi: 10.1145/1824801.1824808.
The new features introduced and which led to the library's name change are described in the article
> D'Ambra, P., Durastante, F., & Filippone, S. (2021). AMG preconditioners for linear solvers towards extreme scale. SIAM Journal on Scientific Computing, 43(5), S679-S703.
AMG4PSBLAS contains the suite of preconditioners for the Parallel Sparse Computation Toolkit ([PSCToolkit](https://psctoolkit.github.io/)) suite of libraries. See the paper:
> DAmbra, P., Durastante, F., & Filippone, S. (2023). Parallel Sparse Computation Toolkit. Software Impacts, 15, 100463.
## Installing ## Installing
Installation requires having a working version of the [PSBLAS](https://github.com/sfilippone/psblas3) library installed. Installation requires having a working version of the [PSBLAS](https://github.com/sfilippone/psblas3) library installed.
@ -72,4 +72,5 @@ In the European project “Energy oriented Center of Excellence: toward exascale
- Pasqua D'Ambra (IAC-CNR, Naples, IT) - Pasqua D'Ambra (IAC-CNR, Naples, IT)
- Fabio Durastante (University of Pisa and IAC-CNR, IT) - Fabio Durastante (University of Pisa and IAC-CNR, IT)
- Salvatore Filippone (University of Rome Tor Vergata and IAC-CNR) - Salvatore Filippone (University of Rome Tor Vergata and IAC-CNR, IT)

Binary file not shown.

@ -59,40 +59,33 @@ class="cmr-12">General Overview</span></a></span>
class="cmr-12">2 </span><a class="cmr-12">2 </span><a
href="userhtmlse2.html#x5-40002" id="QQ2-5-4"><span href="userhtmlse2.html#x5-40002" id="QQ2-5-4"><span
class="cmr-12">Code Distribution</span></a></span> class="cmr-12">Code Distribution</span></a></span>
<br /> <span <br /> <span class="likesubsectionToc" ><a
class="cmr-12">&#x00A0;</span><span class="likesubsectionToc" ><a href="userhtmlli3.html#x6-5000" id="QQ2-6-5"><span
href="userhtmlli3.html#x6-50002" id="QQ2-6-5"><span
class="cmr-12">Contributors</span></a></span> class="cmr-12">Contributors</span></a></span>
<br /> <span <br /> <span class="likesubsectionToc" ><a
class="cmr-12">&#x00A0;</span><span class="likesubsectionToc" ><a href="userhtmlli4.html#x7-6000" id="QQ2-7-6"><span
href="userhtmlli4.html#x7-60002" id="QQ2-7-6"><span
class="cmr-12">Citing AMG4PSBLAS</span></a></span> class="cmr-12">Citing AMG4PSBLAS</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span class="sectionToc" ><span
class="cmr-12">3 </span><a class="cmr-12">3 </span><a
href="userhtmlse3.html#x8-70003" id="QQ2-8-7"><span href="userhtmlse3.html#x8-70003" id="QQ2-8-7"><span
class="cmr-12">Configuring and Building AMG4PSBLAS</span></a></span> class="cmr-12">Configuring and Building AMG4PSBLAS</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.1 </span><a class="cmr-12">3.1 </span><a
href="userhtmlsu1.html#x9-80003.1" id="QQ2-9-8"><span href="userhtmlsu1.html#x9-80003.1" id="QQ2-9-8"><span
class="cmr-12">Prerequisites</span></a></span> class="cmr-12">Prerequisites</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.2 </span><a class="cmr-12">3.2 </span><a
href="userhtmlsu2.html#x10-90003.2" id="QQ2-10-9"><span href="userhtmlsu2.html#x10-90003.2" id="QQ2-10-9"><span
class="cmr-12">Optional third party libraries</span></a></span> class="cmr-12">Optional third party libraries</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.3 </span><a class="cmr-12">3.3 </span><a
href="userhtmlsu3.html#x11-100003.3" id="QQ2-11-10"><span href="userhtmlsu3.html#x11-100003.3" id="QQ2-11-10"><span
class="cmr-12">Configuration options</span></a></span> class="cmr-12">Configuration options</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.4 </span><a class="cmr-12">3.4 </span><a
href="userhtmlsu4.html#x12-110003.4" id="QQ2-12-12"><span href="userhtmlsu4.html#x12-110003.4" id="QQ2-12-12"><span
class="cmr-12">Bug reporting</span></a></span> class="cmr-12">Bug reporting</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.5 </span><a class="cmr-12">3.5 </span><a
href="userhtmlsu5.html#x13-120003.5" id="QQ2-13-13"><span href="userhtmlsu5.html#x13-120003.5" id="QQ2-13-13"><span
class="cmr-12">Example and test programs</span></a></span> class="cmr-12">Example and test programs</span></a></span>
@ -100,13 +93,11 @@ class="cmr-12">Example and test programs</span></a></span>
class="cmr-12">4 </span><a class="cmr-12">4 </span><a
href="userhtmlse4.html#x14-130004" id="QQ2-14-14"><span href="userhtmlse4.html#x14-130004" id="QQ2-14-14"><span
class="cmr-12">Getting Started</span></a></span> class="cmr-12">Getting Started</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">4.1 </span><a class="cmr-12">4.1 </span><a
href="userhtmlsu6.html#x15-140004.1" id="QQ2-15-16"><span href="userhtmlsu6.html#x15-140004.1" id="QQ2-15-16"><span
class="cmr-12">Examples</span></a></span> class="cmr-12">Examples</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">4.2 </span><a class="cmr-12">4.2 </span><a
href="userhtmlsu7.html#x16-150004.2" id="QQ2-16-21"><span href="userhtmlsu7.html#x16-150004.2" id="QQ2-16-21"><span
class="cmr-12">GPU example</span></a></span> class="cmr-12">GPU example</span></a></span>
@ -114,71 +105,62 @@ class="cmr-12">GPU example</span></a></span>
class="cmr-12">5 </span><a class="cmr-12">5 </span><a
href="userhtmlse5.html#x17-160005" id="QQ2-17-25"><span href="userhtmlse5.html#x17-160005" id="QQ2-17-25"><span
class="cmr-12">User Interface</span></a></span> class="cmr-12">User Interface</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.1 </span><a class="cmr-12">5.1 </span><a
href="userhtmlsu8.html#x18-170005.1" id="QQ2-18-26"><span href="userhtmlsu8.html#x18-170005.1" id="QQ2-18-26"><span
class="cmr-12">Method init</span></a></span> class="cmr-12">Method init</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.2 </span><a class="cmr-12">5.2 </span><a
href="userhtmlsu9.html#x19-180005.2" id="QQ2-19-27"><span href="userhtmlsu9.html#x19-180005.2" id="QQ2-19-27"><span
class="cmr-12">Method set</span></a></span> class="cmr-12">Method set</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.3 </span><a class="cmr-12">5.3 </span><a
href="userhtmlsu10.html#x20-190005.3" id="QQ2-20-35"><span href="userhtmlsu10.html#x20-190005.3" id="QQ2-20-36"><span
class="cmr-12">Method hierarchy</span><span class="cmr-12">Method hierarchy</span><span
class="cmr-12">_build</span></a></span> class="cmr-12">_build</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.4 </span><a class="cmr-12">5.4 </span><a
href="userhtmlsu11.html#x21-200005.4" id="QQ2-21-36"><span href="userhtmlsu11.html#x21-200005.4" id="QQ2-21-37"><span
class="cmr-12">Method smoothers</span><span class="cmr-12">Method smoothers</span><span
class="cmr-12">_build</span></a></span> class="cmr-12">_build</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.5 </span><a class="cmr-12">5.5 </span><a
href="userhtmlsu12.html#x22-210005.5" id="QQ2-22-37"><span href="userhtmlsu12.html#x22-210005.5" id="QQ2-22-38"><span
class="cmr-12">Method build</span></a></span> class="cmr-12">Method build</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.6 </span><a class="cmr-12">5.6 </span><a
href="userhtmlsu13.html#x23-220005.6" id="QQ2-23-38"><span href="userhtmlsu13.html#x23-220005.6" id="QQ2-23-39"><span
class="cmr-12">Method apply</span></a></span> class="cmr-12">Method apply</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.7 </span><a class="cmr-12">5.7 </span><a
href="userhtmlsu14.html#x24-230005.7" id="QQ2-24-39"><span href="userhtmlsu14.html#x24-230005.7" id="QQ2-24-40"><span
class="cmr-12">Method free</span></a></span> class="cmr-12">Method free</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.8 </span><a class="cmr-12">5.8 </span><a
href="userhtmlsu15.html#x25-240005.8" id="QQ2-25-40"><span href="userhtmlsu15.html#x25-240005.8" id="QQ2-25-41"><span
class="cmr-12">Method descr</span></a></span> class="cmr-12">Method descr</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.9 </span><a class="cmr-12">5.9 </span><a
href="userhtmlsu16.html#x26-250005.9" id="QQ2-26-41"><span href="userhtmlsu16.html#x26-250005.9" id="QQ2-26-42"><span
class="cmr-12">Auxiliary Methods</span></a></span> class="cmr-12">Auxiliary Methods</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span class="sectionToc" ><span
class="cmr-12">6 </span><a class="cmr-12">6 </span><a
href="userhtmlse6.html#x27-310006" id="QQ2-27-47"><span href="userhtmlse6.html#x27-310006" id="QQ2-27-48"><span
class="cmr-12">Adding new smoother and solver objects to AMG4PSBLAS</span></a></span> class="cmr-12">Adding new smoother and solver objects to AMG4PSBLAS</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span class="sectionToc" ><span
class="cmr-12">7 </span><a class="cmr-12">7 </span><a
href="userhtmlse7.html#x28-320007" id="QQ2-28-48"><span href="userhtmlse7.html#x28-320007" id="QQ2-28-49"><span
class="cmr-12">Error Handling</span></a></span> class="cmr-12">Error Handling</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span class="sectionToc" ><span
class="cmr-12">A </span><a class="cmr-12">A </span><a
href="userhtmlse8.html#x29-33000A" id="QQ2-29-49"><span href="userhtmlse8.html#x29-33000A" id="QQ2-29-50"><span
class="cmr-12">License</span></a></span> class="cmr-12">License</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span class="sectionToc" ><span
class="cmr-12">B </span><a class="cmr-12">B </span><a
href="userhtmlse9.html#x30-34000B" id="QQ2-30-50"><span href="userhtmlse9.html#x30-34000B" id="QQ2-30-51"><span
class="cmr-12">Contributor Covenant Code of Conduct</span></a></span> class="cmr-12">Contributor Covenant Code of Conduct</span></a></span>
<br /> <span class="likesectionToc" ><a <br /> <span class="likesectionToc" ><a
href="userhtmlli5.html#x31-39000B" id="QQ2-31-55"><span href="userhtmlli5.html#x31-39000" id="QQ2-31-56"><span
class="cmr-12">References</span></a></span> class="cmr-12">References</span></a></span>
</div> </div>

@ -22,6 +22,9 @@
.cmmi-8{font-size:72%;font-style: italic;} .cmmi-8{font-size:72%;font-style: italic;}
.cmsy-10x-x-120{font-size:109%;} .cmsy-10x-x-120{font-size:109%;}
.cmsy-8{font-size:72%;} .cmsy-8{font-size:72%;}
.cmtt-10{font-size:90%;font-family: monospace,monospace;}
.cmtt-10{font-family: monospace,monospace;}
.cmtt-10{font-family: monospace,monospace;}
.tctt-1200{font-size:109%;font-family: monospace,monospace;} .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{}
@ -29,9 +32,6 @@
.cmtt-10x-x-109{font-family: monospace,monospace;} .cmtt-10x-x-109{font-family: monospace,monospace;}
.cmtt-10x-x-109{font-family: monospace,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,monospace;}
.cmtt-10{font-family: monospace,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;}
@ -42,21 +42,26 @@ p.indent{text-indent:0;}
p + p{margin-top:1em;} p + p{margin-top:1em;}
p + div, p + pre {margin-top:1em;} p + div, p + pre {margin-top:1em;}
div + p, pre + p {margin-top:1em;} div + p, pre + p {margin-top:1em;}
a { overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; hyphens: auto; }
@media print {div.crosslinks {visibility:hidden;}} @media print {div.crosslinks {visibility:hidden;}}
table.tabular{border-collapse: collapse; border-spacing: 0;}
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; }
td center { margin-top:0em; margin-bottom:0em; } td center { margin-top:0em; margin-bottom:0em; }
.Canvas { position:relative; } .Canvas { position:relative; }
img.math{vertical-align:middle;} img.math{vertical-align:middle;}
div.par-math-display, div.math-display{text-align:center;}
li p.indent { text-indent: 0em } li p.indent { text-indent: 0em }
li p:first-child{ margin-top:0em; } li p:first-child{ margin-top:0em; }
li p:last-child, li div:last-child { margin-bottom:0.5em; } li p:last-child, li div:last-child { margin-bottom:0.5em; }
li p:first-child{ margin-bottom:0; }
li p~ul:last-child, li p~ol:last-child{ margin-bottom:0.5em; } li p~ul:last-child, li p~ol:last-child{ margin-bottom:0.5em; }
.enumerate1 {list-style-type:decimal;} .enumerate1 {list-style-type:decimal;}
.enumerate2 {list-style-type:lower-alpha;} .enumerate2 {list-style-type:lower-alpha;}
.enumerate3 {list-style-type:lower-roman;} .enumerate3 {list-style-type:lower-roman;}
.enumerate4 {list-style-type:upper-alpha;} .enumerate4 {list-style-type:upper-alpha;}
div.newtheorem { margin-bottom: 2em; margin-top: 2em;} div.newtheorem { margin-bottom: 2em; margin-top: 2em;}
div.newtheorem .head{font-weight: bold;}
.obeylines-h,.obeylines-v {white-space: nowrap; } .obeylines-h,.obeylines-v {white-space: nowrap; }
div.obeylines-v p { margin-top:0; margin-bottom:0; } div.obeylines-v p { margin-top:0; margin-bottom:0; }
.overline{ text-decoration:overline; } .overline{ text-decoration:overline; }
@ -82,6 +87,7 @@ div.flushleft {text-align: left;}
.framebox-r {text-align:right;} .framebox-r {text-align:right;}
span.thank-mark{ vertical-align: super } span.thank-mark{ vertical-align: super }
span.footnote-mark sup.textsuperscript, span.footnote-mark a sup.textsuperscript{ font-size:80%; } span.footnote-mark sup.textsuperscript, span.footnote-mark a sup.textsuperscript{ font-size:80%; }
code.verb{font-family:monospace,monospace;}
div.tabular, div.center div.tabular {text-align: center; margin-top:0.5em; margin-bottom:0.5em; } div.tabular, div.center div.tabular {text-align: center; margin-top:0.5em; margin-bottom:0.5em; }
table.tabular td p{margin-top:0em;} table.tabular td p{margin-top:0em;}
table.tabular {margin-left: auto; margin-right: auto;} table.tabular {margin-left: auto; margin-right: auto;}
@ -100,6 +106,9 @@ table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
.hline hr, .cline hr{ height : 0px; margin:0px; } .hline hr, .cline hr{ height : 0px; margin:0px; }
.hline td, .cline td{ padding: 0; } .hline td, .cline td{ padding: 0; }
.hline hr, .cline hr{border:none;border-top:1px solid black;} .hline hr, .cline hr{border:none;border-top:1px solid black;}
.hline {border-top: 1px solid black;}
.hline + .vspace:last-child{display:none;}
.hline:first-child{border-bottom:1px solid black;border-top:none;}
.tabbing-right {text-align:right;} .tabbing-right {text-align:right;}
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;}
@ -130,9 +139,9 @@ div.caption span.id{font-weight: bold; white-space: nowrap; }
h1.partHead{text-align: center} h1.partHead{text-align: center}
p.bibitem { text-indent: -2em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; } p.bibitem { text-indent: -2em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; }
p.bibitem-p { text-indent: 0em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; } p.bibitem-p { text-indent: 0em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; }
.subsubsectionHead, .likesubsubsectionHead { font-size: 1em; }
.paragraphHead, .likeparagraphHead { margin-top:2em; font-weight: bold;} .paragraphHead, .likeparagraphHead { margin-top:2em; font-weight: bold;}
.subparagraphHead, .likesubparagraphHead { font-weight: bold;} .subparagraphHead, .likesubparagraphHead { font-weight: bold;}
.quote {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; margin-right:1em; text-align:justify;}
.verse{white-space:nowrap; margin-left:2em} .verse{white-space:nowrap; margin-left:2em}
div.maketitle {text-align:center;} div.maketitle {text-align:center;}
h2.titleHead{text-align:center;} h2.titleHead{text-align:center;}
@ -140,121 +149,95 @@ div.maketitle{ margin-bottom: 2em; }
div.author, div.date {text-align:center;} div.author, div.date {text-align:center;}
div.thanks{text-align:left; margin-left:10%; font-size:85%; font-style:italic; } div.thanks{text-align:left; margin-left:10%; font-size:85%; font-style:italic; }
div.author{white-space: nowrap;} div.author{white-space: nowrap;}
.quotation {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; } div.abstract p {margin-left:5%; margin-right:5%;}
.abstract p {margin-left:5%; margin-right:5%;}
div.abstract {width:100%;} div.abstract {width:100%;}
.subsectionToc, .likesubsectionToc {margin-left:2em;} .abstracttitle{text-align:center;margin-bottom:1em;}
.subsubsectionToc, .likesubsubsectionToc {margin-left:4em;} .subsectionToc, .likesubsectionToc {margin-left:1em;}
.subsubsectionToc, .likesubsubsectionToc {margin-left:2em;}
.paragraphToc, .likeparagraphToc {margin-left:3em;}
.subparagraphToc, .likesubparagraphToc {margin-left:4em;}
.ovalbox { padding-left:3pt; padding-right:3pt; border:solid thin; } .ovalbox { padding-left:3pt; padding-right:3pt; border:solid thin; }
.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;} .rotatebox{display: inline-block;}
code.lstinline{font-family:monospace,monospace;}
pre.listings{font-family: monospace,monospace; white-space: pre-wrap; margin-top:0.5em; margin-bottom:0.5em; }
.lstlisting .label{margin-right:0.5em; } .lstlisting .label{margin-right:0.5em; }
div.lstlisting{font-family: monospace,monospace; white-space: nowrap; margin-top:0.5em; margin-bottom:0.5em; } pre.lstlisting{font-family: monospace,monospace; white-space: pre-wrap; margin-top:0.5em; margin-bottom:0.5em; }
div.lstinputlisting{ font-family: monospace,monospace; white-space: nowrap; } pre.lstinputlisting{ font-family: monospace,monospace; white-space: pre-wrap; }
.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-1{border-left: 1px solid black;}
#TBL-1{border-collapse:collapse;} #TBL-1-1{border-right:1px solid black;}
#TBL-1 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-1-2{border-right:1px solid black;}
#TBL-1{border-collapse:collapse;} #TBL-1-3{border-right:1px solid black;}
#TBL-1 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-4-1{border-left: 1px solid black;}
#TBL-1{border-collapse:collapse;} #TBL-4-1{border-right:1px solid black;}
#TBL-1 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-4-2{border-right:1px solid black;}
#TBL-1{border-collapse:collapse;} #TBL-4-3{border-right:1px solid black;}
#TBL-4 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-4-4{border-right:1px solid black;}
#TBL-4{border-collapse:collapse;} #TBL-4-5{border-right:1px solid black;}
#TBL-4 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-5-1{border-left: 1px solid black;}
#TBL-4{border-collapse:collapse;} #TBL-5-1{border-right:1px solid black;}
#TBL-4 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-5-2{border-right:1px solid black;}
#TBL-4{border-collapse:collapse;} #TBL-5-3{border-right:1px solid black;}
#TBL-4 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-5-4{border-right:1px solid black;}
#TBL-4{border-collapse:collapse;} #TBL-5-5{border-right:1px solid black;}
#TBL-4 colgroup{border-left: 1px solid black;border-right:1px solid black;}
#TBL-4{border-collapse:collapse;}
#TBL-4 colgroup{border-left: 1px solid black;border-right:1px solid black;}
#TBL-4{border-collapse:collapse;}
#TBL-5 colgroup{border-left: 1px solid black;border-right:1px solid black;}
#TBL-5{border-collapse:collapse;}
#TBL-5 colgroup{border-left: 1px solid black;border-right:1px solid black;}
#TBL-5{border-collapse:collapse;}
#TBL-5 colgroup{border-left: 1px solid black;border-right:1px solid black;}
#TBL-5{border-collapse:collapse;}
#TBL-5 colgroup{border-left: 1px solid black;border-right:1px solid black;}
#TBL-5{border-collapse:collapse;}
#TBL-5 colgroup{border-left: 1px solid black;border-right:1px solid black;}
#TBL-5{border-collapse:collapse;}
#TBL-5 colgroup{border-left: 1px solid black;border-right:1px solid black;}
#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-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
td#TBL-5-10-5{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-5{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-12-5{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;}
#TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;} td#TBL-5-12-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
#TBL-6{border-collapse:collapse;} #TBL-6-1{border-left: 1px solid black;}
#TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-6-1{border-right:1px solid black;}
#TBL-6{border-collapse:collapse;} #TBL-6-2{border-right:1px solid black;}
#TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-6-3{border-right:1px solid black;}
#TBL-6{border-collapse:collapse;} #TBL-6-4{border-right:1px solid black;}
#TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-6-5{border-right:1px solid black;}
#TBL-6{border-collapse:collapse;} td#TBL-6-5-5{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{border-collapse:collapse;}
#TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;}
#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-5{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-5{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;} td#TBL-6-6-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
#TBL-7{border-collapse:collapse;} #TBL-7-1{border-left: 1px solid black;}
#TBL-7 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-7-1{border-right:1px solid black;}
#TBL-7{border-collapse:collapse;} #TBL-7-2{border-right:1px solid black;}
#TBL-7 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-7-3{border-right:1px solid black;}
#TBL-7{border-collapse:collapse;} #TBL-7-4{border-right:1px solid black;}
#TBL-7 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-7-5{border-right:1px solid black;}
#TBL-7{border-collapse:collapse;} td#TBL-7-5-5{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{border-collapse:collapse;}
#TBL-7 colgroup{border-left: 1px solid black;border-right:1px solid black;}
#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-5{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-5{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-7-5{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-5{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-5{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-13-5{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-5{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-1{border-left: 1px solid black;}
#TBL-8{border-collapse:collapse;} #TBL-8-1{border-right:1px solid black;}
#TBL-8 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-8-2{border-right:1px solid black;}
#TBL-8{border-collapse:collapse;} #TBL-8-3{border-right:1px solid black;}
#TBL-8 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-8-4{border-right:1px solid black;}
#TBL-8{border-collapse:collapse;} #TBL-8-5{border-right:1px solid black;}
#TBL-8 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-9-1{border-left: 1px solid black;}
#TBL-8{border-collapse:collapse;} #TBL-9-1{border-right:1px solid black;}
#TBL-8 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-9-2{border-right:1px solid black;}
#TBL-8{border-collapse:collapse;} #TBL-9-3{border-right:1px solid black;}
#TBL-8 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-9-4{border-right:1px solid black;}
#TBL-8{border-collapse:collapse;} #TBL-9-5{border-right:1px solid black;}
#TBL-9 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-10-1{border-left: 1px solid black;}
#TBL-9{border-collapse:collapse;} #TBL-10-1{border-right:1px solid black;}
#TBL-9 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-10-2{border-right:1px solid black;}
#TBL-9{border-collapse:collapse;} #TBL-10-3{border-right:1px solid black;}
#TBL-9 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-10-4{border-right:1px solid black;}
#TBL-9{border-collapse:collapse;} #TBL-10-5{border-right:1px solid black;}
#TBL-9 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-11-1{border-left: 1px solid black;}
#TBL-9{border-collapse:collapse;} #TBL-11-1{border-right:1px solid black;}
#TBL-9 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-11-2{border-right:1px solid black;}
#TBL-9{border-collapse:collapse;} #TBL-11-3{border-right:1px solid black;}
#TBL-9 colgroup{border-left: 1px solid black;border-right:1px solid black;} #TBL-11-4{border-right:1px solid black;}
#TBL-9{border-collapse:collapse;} #TBL-11-5{border-right:1px solid black;}
#TBL-10 colgroup{border-left: 1px solid black;border-right:1px solid black;}
#TBL-10{border-collapse:collapse;}
#TBL-10 colgroup{border-left: 1px solid black;border-right:1px solid black;}
#TBL-10{border-collapse:collapse;}
#TBL-10 colgroup{border-left: 1px solid black;border-right:1px solid black;}
#TBL-10{border-collapse:collapse;}
#TBL-10 colgroup{border-left: 1px solid black;border-right:1px solid black;}
#TBL-10{border-collapse:collapse;}
#TBL-10 colgroup{border-left: 1px solid black;border-right:1px solid black;}
#TBL-10{border-collapse:collapse;}
#TBL-10 colgroup{border-left: 1px solid black;border-right:1px solid black;}
#TBL-10{border-collapse:collapse;}
/* end css.sty */ /* end css.sty */

@ -59,40 +59,33 @@ class="cmr-12">General Overview</span></a></span>
class="cmr-12">2 </span><a class="cmr-12">2 </span><a
href="userhtmlse2.html#x5-40002" id="QQ2-5-4"><span href="userhtmlse2.html#x5-40002" id="QQ2-5-4"><span
class="cmr-12">Code Distribution</span></a></span> class="cmr-12">Code Distribution</span></a></span>
<br /> <span <br /> <span class="likesubsectionToc" ><a
class="cmr-12">&#x00A0;</span><span class="likesubsectionToc" ><a href="userhtmlli3.html#x6-5000" id="QQ2-6-5"><span
href="userhtmlli3.html#x6-50002" id="QQ2-6-5"><span
class="cmr-12">Contributors</span></a></span> class="cmr-12">Contributors</span></a></span>
<br /> <span <br /> <span class="likesubsectionToc" ><a
class="cmr-12">&#x00A0;</span><span class="likesubsectionToc" ><a href="userhtmlli4.html#x7-6000" id="QQ2-7-6"><span
href="userhtmlli4.html#x7-60002" id="QQ2-7-6"><span
class="cmr-12">Citing AMG4PSBLAS</span></a></span> class="cmr-12">Citing AMG4PSBLAS</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span class="sectionToc" ><span
class="cmr-12">3 </span><a class="cmr-12">3 </span><a
href="userhtmlse3.html#x8-70003" id="QQ2-8-7"><span href="userhtmlse3.html#x8-70003" id="QQ2-8-7"><span
class="cmr-12">Configuring and Building AMG4PSBLAS</span></a></span> class="cmr-12">Configuring and Building AMG4PSBLAS</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.1 </span><a class="cmr-12">3.1 </span><a
href="userhtmlsu1.html#x9-80003.1" id="QQ2-9-8"><span href="userhtmlsu1.html#x9-80003.1" id="QQ2-9-8"><span
class="cmr-12">Prerequisites</span></a></span> class="cmr-12">Prerequisites</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.2 </span><a class="cmr-12">3.2 </span><a
href="userhtmlsu2.html#x10-90003.2" id="QQ2-10-9"><span href="userhtmlsu2.html#x10-90003.2" id="QQ2-10-9"><span
class="cmr-12">Optional third party libraries</span></a></span> class="cmr-12">Optional third party libraries</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.3 </span><a class="cmr-12">3.3 </span><a
href="userhtmlsu3.html#x11-100003.3" id="QQ2-11-10"><span href="userhtmlsu3.html#x11-100003.3" id="QQ2-11-10"><span
class="cmr-12">Configuration options</span></a></span> class="cmr-12">Configuration options</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.4 </span><a class="cmr-12">3.4 </span><a
href="userhtmlsu4.html#x12-110003.4" id="QQ2-12-12"><span href="userhtmlsu4.html#x12-110003.4" id="QQ2-12-12"><span
class="cmr-12">Bug reporting</span></a></span> class="cmr-12">Bug reporting</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.5 </span><a class="cmr-12">3.5 </span><a
href="userhtmlsu5.html#x13-120003.5" id="QQ2-13-13"><span href="userhtmlsu5.html#x13-120003.5" id="QQ2-13-13"><span
class="cmr-12">Example and test programs</span></a></span> class="cmr-12">Example and test programs</span></a></span>
@ -100,13 +93,11 @@ class="cmr-12">Example and test programs</span></a></span>
class="cmr-12">4 </span><a class="cmr-12">4 </span><a
href="userhtmlse4.html#x14-130004" id="QQ2-14-14"><span href="userhtmlse4.html#x14-130004" id="QQ2-14-14"><span
class="cmr-12">Getting Started</span></a></span> class="cmr-12">Getting Started</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">4.1 </span><a class="cmr-12">4.1 </span><a
href="userhtmlsu6.html#x15-140004.1" id="QQ2-15-16"><span href="userhtmlsu6.html#x15-140004.1" id="QQ2-15-16"><span
class="cmr-12">Examples</span></a></span> class="cmr-12">Examples</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">4.2 </span><a class="cmr-12">4.2 </span><a
href="userhtmlsu7.html#x16-150004.2" id="QQ2-16-21"><span href="userhtmlsu7.html#x16-150004.2" id="QQ2-16-21"><span
class="cmr-12">GPU example</span></a></span> class="cmr-12">GPU example</span></a></span>
@ -114,71 +105,62 @@ class="cmr-12">GPU example</span></a></span>
class="cmr-12">5 </span><a class="cmr-12">5 </span><a
href="userhtmlse5.html#x17-160005" id="QQ2-17-25"><span href="userhtmlse5.html#x17-160005" id="QQ2-17-25"><span
class="cmr-12">User Interface</span></a></span> class="cmr-12">User Interface</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.1 </span><a class="cmr-12">5.1 </span><a
href="userhtmlsu8.html#x18-170005.1" id="QQ2-18-26"><span href="userhtmlsu8.html#x18-170005.1" id="QQ2-18-26"><span
class="cmr-12">Method init</span></a></span> class="cmr-12">Method init</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.2 </span><a class="cmr-12">5.2 </span><a
href="userhtmlsu9.html#x19-180005.2" id="QQ2-19-27"><span href="userhtmlsu9.html#x19-180005.2" id="QQ2-19-27"><span
class="cmr-12">Method set</span></a></span> class="cmr-12">Method set</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.3 </span><a class="cmr-12">5.3 </span><a
href="userhtmlsu10.html#x20-190005.3" id="QQ2-20-35"><span href="userhtmlsu10.html#x20-190005.3" id="QQ2-20-36"><span
class="cmr-12">Method hierarchy</span><span class="cmr-12">Method hierarchy</span><span
class="cmr-12">_build</span></a></span> class="cmr-12">_build</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.4 </span><a class="cmr-12">5.4 </span><a
href="userhtmlsu11.html#x21-200005.4" id="QQ2-21-36"><span href="userhtmlsu11.html#x21-200005.4" id="QQ2-21-37"><span
class="cmr-12">Method smoothers</span><span class="cmr-12">Method smoothers</span><span
class="cmr-12">_build</span></a></span> class="cmr-12">_build</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.5 </span><a class="cmr-12">5.5 </span><a
href="userhtmlsu12.html#x22-210005.5" id="QQ2-22-37"><span href="userhtmlsu12.html#x22-210005.5" id="QQ2-22-38"><span
class="cmr-12">Method build</span></a></span> class="cmr-12">Method build</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.6 </span><a class="cmr-12">5.6 </span><a
href="userhtmlsu13.html#x23-220005.6" id="QQ2-23-38"><span href="userhtmlsu13.html#x23-220005.6" id="QQ2-23-39"><span
class="cmr-12">Method apply</span></a></span> class="cmr-12">Method apply</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.7 </span><a class="cmr-12">5.7 </span><a
href="userhtmlsu14.html#x24-230005.7" id="QQ2-24-39"><span href="userhtmlsu14.html#x24-230005.7" id="QQ2-24-40"><span
class="cmr-12">Method free</span></a></span> class="cmr-12">Method free</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.8 </span><a class="cmr-12">5.8 </span><a
href="userhtmlsu15.html#x25-240005.8" id="QQ2-25-40"><span href="userhtmlsu15.html#x25-240005.8" id="QQ2-25-41"><span
class="cmr-12">Method descr</span></a></span> class="cmr-12">Method descr</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.9 </span><a class="cmr-12">5.9 </span><a
href="userhtmlsu16.html#x26-250005.9" id="QQ2-26-41"><span href="userhtmlsu16.html#x26-250005.9" id="QQ2-26-42"><span
class="cmr-12">Auxiliary Methods</span></a></span> class="cmr-12">Auxiliary Methods</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span class="sectionToc" ><span
class="cmr-12">6 </span><a class="cmr-12">6 </span><a
href="userhtmlse6.html#x27-310006" id="QQ2-27-47"><span href="userhtmlse6.html#x27-310006" id="QQ2-27-48"><span
class="cmr-12">Adding new smoother and solver objects to AMG4PSBLAS</span></a></span> class="cmr-12">Adding new smoother and solver objects to AMG4PSBLAS</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span class="sectionToc" ><span
class="cmr-12">7 </span><a class="cmr-12">7 </span><a
href="userhtmlse7.html#x28-320007" id="QQ2-28-48"><span href="userhtmlse7.html#x28-320007" id="QQ2-28-49"><span
class="cmr-12">Error Handling</span></a></span> class="cmr-12">Error Handling</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span class="sectionToc" ><span
class="cmr-12">A </span><a class="cmr-12">A </span><a
href="userhtmlse8.html#x29-33000A" id="QQ2-29-49"><span href="userhtmlse8.html#x29-33000A" id="QQ2-29-50"><span
class="cmr-12">License</span></a></span> class="cmr-12">License</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span class="sectionToc" ><span
class="cmr-12">B </span><a class="cmr-12">B </span><a
href="userhtmlse9.html#x30-34000B" id="QQ2-30-50"><span href="userhtmlse9.html#x30-34000B" id="QQ2-30-51"><span
class="cmr-12">Contributor Covenant Code of Conduct</span></a></span> class="cmr-12">Contributor Covenant Code of Conduct</span></a></span>
<br /> <span class="likesectionToc" ><a <br /> <span class="likesectionToc" ><a
href="userhtmlli5.html#x31-39000B" id="QQ2-31-55"><span href="userhtmlli5.html#x31-39000" id="QQ2-31-56"><span
class="cmr-12">References</span></a></span> class="cmr-12">References</span></a></span>
</div> </div>

@ -145,6 +145,13 @@ class="cmr-12">of AMG4PSBLAS.</span>
<!--l. 127--><p class="indent" >
<!--l. 133--><div class="crosslinks"><p class="noindent"><span <!--l. 133--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli2.html" ><span href="userhtmlli2.html" ><span

@ -43,28 +43,23 @@ class="cmr-12">Code Distribution</span></a></span>
class="cmr-12">3 </span><a class="cmr-12">3 </span><a
href="userhtmlse3.html#x8-70003"><span href="userhtmlse3.html#x8-70003"><span
class="cmr-12">Configuring and Building AMG4PSBLAS</span></a></span> class="cmr-12">Configuring and Building AMG4PSBLAS</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.1 </span><a class="cmr-12">3.1 </span><a
href="userhtmlsu1.html#x9-80003.1"><span href="userhtmlsu1.html#x9-80003.1"><span
class="cmr-12">Prerequisites</span></a></span> class="cmr-12">Prerequisites</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.2 </span><a class="cmr-12">3.2 </span><a
href="userhtmlsu2.html#x10-90003.2"><span href="userhtmlsu2.html#x10-90003.2"><span
class="cmr-12">Optional third party libraries</span></a></span> class="cmr-12">Optional third party libraries</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.3 </span><a class="cmr-12">3.3 </span><a
href="userhtmlsu3.html#x11-100003.3"><span href="userhtmlsu3.html#x11-100003.3"><span
class="cmr-12">Configuration options</span></a></span> class="cmr-12">Configuration options</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.4 </span><a class="cmr-12">3.4 </span><a
href="userhtmlsu4.html#x12-110003.4"><span href="userhtmlsu4.html#x12-110003.4"><span
class="cmr-12">Bug reporting</span></a></span> class="cmr-12">Bug reporting</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.5 </span><a class="cmr-12">3.5 </span><a
href="userhtmlsu5.html#x13-120003.5"><span href="userhtmlsu5.html#x13-120003.5"><span
class="cmr-12">Example and test programs</span></a></span> class="cmr-12">Example and test programs</span></a></span>
@ -72,13 +67,11 @@ class="cmr-12">Example and test programs</span></a></span>
class="cmr-12">4 </span><a class="cmr-12">4 </span><a
href="userhtmlse4.html#x14-130004"><span href="userhtmlse4.html#x14-130004"><span
class="cmr-12">Getting Started</span></a></span> class="cmr-12">Getting Started</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">4.1 </span><a class="cmr-12">4.1 </span><a
href="userhtmlsu6.html#x15-140004.1"><span href="userhtmlsu6.html#x15-140004.1"><span
class="cmr-12">Examples</span></a></span> class="cmr-12">Examples</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">4.2 </span><a class="cmr-12">4.2 </span><a
href="userhtmlsu7.html#x16-150004.2"><span href="userhtmlsu7.html#x16-150004.2"><span
class="cmr-12">GPU example</span></a></span> class="cmr-12">GPU example</span></a></span>
@ -86,83 +79,64 @@ class="cmr-12">GPU example</span></a></span>
class="cmr-12">5 </span><a class="cmr-12">5 </span><a
href="userhtmlse5.html#x17-160005"><span href="userhtmlse5.html#x17-160005"><span
class="cmr-12">User Interface</span></a></span> class="cmr-12">User Interface</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.1 </span><a class="cmr-12">5.1 </span><a
href="userhtmlsu8.html#x18-170005.1"><span href="userhtmlsu8.html#x18-170005.1"><span
class="cmr-12">Method init</span></a></span> class="cmr-12">Method init</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.2 </span><a class="cmr-12">5.2 </span><a
href="userhtmlsu9.html#x19-180005.2"><span href="userhtmlsu9.html#x19-180005.2"><span
class="cmr-12">Method set</span></a></span> class="cmr-12">Method set</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.3 </span><a class="cmr-12">5.3 </span><a
href="userhtmlsu10.html#x20-190005.3"><span href="userhtmlsu10.html#x20-190005.3"><span
class="cmr-12">Method hierarchy</span><span class="cmr-12">Method hierarchy</span><span
class="cmr-12">_build</span></a></span> class="cmr-12">_build</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.4 </span><a class="cmr-12">5.4 </span><a
href="userhtmlsu11.html#x21-200005.4"><span href="userhtmlsu11.html#x21-200005.4"><span
class="cmr-12">Method smoothers</span><span class="cmr-12">Method smoothers</span><span
class="cmr-12">_build</span></a></span> class="cmr-12">_build</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.5 </span><a class="cmr-12">5.5 </span><a
href="userhtmlsu12.html#x22-210005.5"><span href="userhtmlsu12.html#x22-210005.5"><span
class="cmr-12">Method build</span></a></span> class="cmr-12">Method build</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.6 </span><a class="cmr-12">5.6 </span><a
href="userhtmlsu13.html#x23-220005.6"><span href="userhtmlsu13.html#x23-220005.6"><span
class="cmr-12">Method apply</span></a></span> class="cmr-12">Method apply</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.7 </span><a class="cmr-12">5.7 </span><a
href="userhtmlsu14.html#x24-230005.7"><span href="userhtmlsu14.html#x24-230005.7"><span
class="cmr-12">Method free</span></a></span> class="cmr-12">Method free</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.8 </span><a class="cmr-12">5.8 </span><a
href="userhtmlsu15.html#x25-240005.8"><span href="userhtmlsu15.html#x25-240005.8"><span
class="cmr-12">Method descr</span></a></span> class="cmr-12">Method descr</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.9 </span><a class="cmr-12">5.9 </span><a
href="userhtmlsu16.html#x26-250005.9"><span href="userhtmlsu16.html#x26-250005.9"><span
class="cmr-12">Auxiliary Methods</span></a></span> class="cmr-12">Auxiliary Methods</span></a></span>
<br /> <span <br /> <span class="subsubsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span
class="cmr-12">5.9.1 </span><a class="cmr-12">5.9.1 </span><a
href="userhtmlsu16.html#x26-260005.9.1" id="QQ2-26-42"><span href="userhtmlsu16.html#x26-260005.9.1" id="QQ2-26-43"><span
class="cmr-12">Method: dump</span></a></span> class="cmr-12">Method: dump</span></a></span>
<br /> <span <br /> <span class="subsubsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span
class="cmr-12">5.9.2 </span><a class="cmr-12">5.9.2 </span><a
href="userhtmlsu16.html#x26-270005.9.2" id="QQ2-26-43"><span href="userhtmlsu16.html#x26-270005.9.2" id="QQ2-26-44"><span
class="cmr-12">Method: clone</span></a></span> class="cmr-12">Method: clone</span></a></span>
<br /> <span <br /> <span class="subsubsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span
class="cmr-12">5.9.3 </span><a class="cmr-12">5.9.3 </span><a
href="userhtmlsu16.html#x26-280005.9.3" id="QQ2-26-44"><span href="userhtmlsu16.html#x26-280005.9.3" id="QQ2-26-45"><span
class="cmr-12">Method: sizeof</span></a></span> class="cmr-12">Method: sizeof</span></a></span>
<br /> <span <br /> <span class="subsubsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span
class="cmr-12">5.9.4 </span><a class="cmr-12">5.9.4 </span><a
href="userhtmlsu16.html#x26-290005.9.4" id="QQ2-26-45"><span href="userhtmlsu16.html#x26-290005.9.4" id="QQ2-26-46"><span
class="cmr-12">Method: allocate</span><span class="cmr-12">Method: allocate</span><span
class="cmr-12">_wrk</span></a></span> class="cmr-12">_wrk</span></a></span>
<br /> <span <br /> <span class="subsubsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span
class="cmr-12">5.9.5 </span><a class="cmr-12">5.9.5 </span><a
href="userhtmlsu16.html#x26-300005.9.5" id="QQ2-26-46"><span href="userhtmlsu16.html#x26-300005.9.5" id="QQ2-26-47"><span
class="cmr-12">Method: free</span><span class="cmr-12">Method: free</span><span
class="cmr-12">_wrk</span></a></span> class="cmr-12">_wrk</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span class="sectionToc" ><span

@ -22,19 +22,22 @@ href="userhtmlse2.html#userhtmlli3.html" ><span
class="cmr-12">up</span></a><span class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<h4 class="likesubsectionHead"><a <h4 class="likesubsectionHead"><a
id="x6-50002"></a><span id="x6-5000"></a><span
class="cmr-12">Contributors</span></h4> class="cmr-12">Contributors</span></h4>
<ul class="itemize1"> <ul class="itemize1">
<li class="itemize"><span <li class="itemize">
<!--l. 25--><p class="noindent" ><span
class="cmr-12">Pasqua D&#8217;Ambra, IAC-CNR, IT;</span> class="cmr-12">Pasqua D&#8217;Ambra, IAC-CNR, IT;</span>
</li>
<li class="itemize"><span
class="cmr-12">Fabio Durastante, University of Pisa and IAC-CNR, IT;</span>
</li> </li>
<li class="itemize"><span <li class="itemize">
<!--l. 26--><p class="noindent" ><span
class="cmr-12">Fabio Durastante, University of Pisa and IAC-CNR, IT;</span>
</li>
<li class="itemize">
<!--l. 27--><p class="noindent" ><span
class="cmr-12">Salvatore Filippone, University of Rome Tor-Vergata and IAC-CNR, IT;</span></li></ul> class="cmr-12">Salvatore Filippone, University of Rome Tor-Vergata and IAC-CNR, IT;</span></li></ul>

@ -25,7 +25,7 @@ href="userhtmlse2.html#userhtmlli4.html" ><span
class="cmr-12">up</span></a><span class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<h4 class="likesubsectionHead"><a <h4 class="likesubsectionHead"><a
id="x7-60002"></a><span id="x7-6000"></a><span
class="cmr-12">Citing AMG4PSBLAS</span></h4> class="cmr-12">Citing AMG4PSBLAS</span></h4>
<!--l. 31--><p class="noindent" ><span <!--l. 31--><p class="noindent" ><span
class="cmr-12">When use the library, please cite the following:</span> class="cmr-12">When use the library, please cite the following:</span>
@ -41,6 +41,7 @@ class="cmr-12">When use the library, please cite the following:</span>
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;archivePrefix&#x00A0;=&#x00A0;{arXiv}, &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;archivePrefix&#x00A0;=&#x00A0;{arXiv},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;year={2021} &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;year={2021}
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;} &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;}
@Misc{psctoolkit-web-page, @Misc{psctoolkit-web-page,
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;author&#x00A0;=&#x00A0;{D&#8217;Ambra,&#x00A0;Pasqua&#x00A0;and&#x00A0;Durastante,&#x00A0;Fabio&#x00A0;and&#x00A0;Filippone,&#x00A0;Salvatore}, &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;author&#x00A0;=&#x00A0;{D&#8217;Ambra,&#x00A0;Pasqua&#x00A0;and&#x00A0;Durastante,&#x00A0;Fabio&#x00A0;and&#x00A0;Filippone,&#x00A0;Salvatore},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;title&#x00A0;=&#x00A0;&#x00A0;{{PSCToolkit}&#x00A0;{W}eb&#x00A0;page}, &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;title&#x00A0;=&#x00A0;&#x00A0;{{PSCToolkit}&#x00A0;{W}eb&#x00A0;page},
@ -56,6 +57,9 @@ class="cmr-12">When use the library, please cite the following:</span>
<!--l. 1--><div class="crosslinks"><p class="noindent"><span <!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli3.html" ><span href="userhtmlli3.html" ><span

@ -25,7 +25,7 @@ href="userhtml.html#userhtmlli5.html" ><span
class="cmr-12">up</span></a><span class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<h3 class="likesectionHead"><a <h3 class="likesectionHead"><a
id="x31-39000B"></a><span id="x31-39000"></a><span
class="cmr-12">References</span></h3> class="cmr-12">References</span></h3>
<!--l. 2--><p class="noindent" > <!--l. 2--><p class="noindent" >
<div class="thebibliography"> <div class="thebibliography">
@ -303,22 +303,41 @@ 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
class="cmr-12">&#x00A0;D&#8217;Ambra, F</span><span class="cmr-12">&#x00A0;D&#8217;Ambra, F.</span><span
class="cmr-12">&#x00A0;Durastante, S.</span><span class="cmr-12">&#x00A0;Durastante, S.</span><span
class="cmr-12">&#x00A0;Filippone, </span><span class="cmr-12">&#x00A0;Filippone, </span><span
class="cmti-12">AMG preconditioners for</span> class="cmti-12">AMG preconditioners for</span>
<span <span
class="cmti-12">Linear Solvers towards Extreme Scale</span><span class="cmti-12">Linear Solvers towards Extreme Scale</span><span
class="cmr-12">, 2020, </span><a class="cmr-12">, SIAM Journal on Scientific Computing</span>
href="https://arxiv.org/abs/2006.16147v3arXiv:2006.16147v2" ><span <span
class="cmr-12">arXiv:2006.16147v3</span></a><span class="cmr-12">43, no. 5 (2021): S679-S703.</span>
class="cmr-12">.</span>
</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">[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
id="XDDFMT2024"></a><span
class="cmr-12">P.</span><span
class="cmr-12">&#x00A0;D&#8217;Ambra, F.</span><span
class="cmr-12">&#x00A0;Durastante, S.</span><span
class="cmr-12">&#x00A0;Filippone, S.</span><span
class="cmr-12">&#x00A0;Massei, S.</span><span
class="cmr-12">&#x00A0;Thomas</span>
<span
class="cmti-12">Optimal Polynomial Smoothers for Parallel AMG</span><span
class="cmr-12">, 2024, </span><a
href="https://arxiv.org/abs/2407.09848" ><span
class="cmr-12">arXiv:2407.09848</span></a><span
class="cmr-12">.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<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></span><a class="cmr-12">&#x00A0;</span></span></span><a
id="XUMFPACK"></a><span id="XUMFPACK"></a><span
class="cmr-12">T.</span><span class="cmr-12">T.</span><span
@ -337,7 +356,7 @@ class="cmr-12">)</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
@ -363,7 +382,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">[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
@ -384,7 +403,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">[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
@ -402,10 +421,13 @@ class="cmti-12">extended set of FORTRAN Basic Linear Algebra Subprograms<
class="cmr-12">, ACM</span> class="cmr-12">, ACM</span>
<span <span
class="cmr-12">Transactions on Mathematical Software, 14 (1) 1988, 1&#8211;17.</span> class="cmr-12">Transactions on Mathematical Software, 14 (1) 1988, 1&#8211;17.</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
@ -422,13 +444,10 @@ class="cmti-12">Clusters</span><span
class="cmr-12">, in Proc. of ParCo 2001, Parallel Computing, Advances and Current</span> class="cmr-12">, in Proc. of ParCo 2001, Parallel Computing, Advances and Current</span>
<span <span
class="cmr-12">Issues, 2002.</span> class="cmr-12">Issues, 2002.</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
@ -446,7 +465,7 @@ class="cmr-12">.</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
@ -464,7 +483,7 @@ 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">[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
@ -481,7 +500,7 @@ class="cmr-12">Transactions on Mathematical Software, 26 (4), 2000, 527&#8211;55
</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
@ -496,7 +515,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">[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
@ -518,7 +537,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">[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
@ -537,10 +556,27 @@ class="cmti-12">Algebra Subprograms for FORTRAN usage</span><span
class="cmr-12">, ACM Transactions on</span> class="cmr-12">, ACM Transactions on</span>
<span <span
class="cmr-12">Mathematical Software, 5 (3), 1979, 308&#8211;323.</span> 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">[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></span><a
id="XLOTTES"></a><span
class="cmr-12">J.</span><span
class="cmr-12">&#x00A0;Lottes, </span><span
class="cmti-12">Optimal polynomial smoothers for multigrid V-cycles</span><span
class="cmr-12">,</span>
<span
class="cmr-12">Numerical Linear Algebra with Applications 30.6 (2023): e2518.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<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
@ -557,13 +593,10 @@ class="cmti-12">Distributed-memory Sparse Direct Solver for Unsymmetric Linear S
class="cmr-12">,</span> class="cmr-12">,</span>
<span <span
class="cmr-12">ACM Transactions on Mathematical Software, 29 (2), 2003, 110&#8211;140.</span> class="cmr-12">ACM Transactions on Mathematical Software, 29 (2), 2003, 110&#8211;140.</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">[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
@ -579,7 +612,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">[28]</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
@ -593,7 +626,7 @@ class="cmr-12">2003.</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">[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
@ -611,7 +644,7 @@ 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">[30]</span><span class="bibsp"><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 class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a class="cmr-12">&#x00A0;</span></span></span><a
@ -631,7 +664,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">[31]</span><span class="bibsp"><span class="cmr-12">[33]</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
@ -650,7 +683,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">[32]</span><span class="bibsp"><span class="cmr-12">[34]</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
@ -665,10 +698,13 @@ class="cmti-12">Aggregation Strategies on Massively Parallel Machines</span
class="cmr-12">, in J. Donnelley,</span> class="cmr-12">, in J. Donnelley,</span>
<span <span
class="cmr-12">editor, Proceedings of SuperComputing 2000, Dallas, 2000.</span> 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">[33]</span><span class="bibsp"><span class="cmr-12">[35]</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
@ -690,6 +726,9 @@ class="cmr-12">(3) 1996, 179&#8211;196.</span></p></div>
<!--l. 156--><div class="crosslinks"><p class="noindent"><span <!--l. 156--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlse9.html" ><span href="userhtmlse9.html" ><span

@ -88,19 +88,19 @@ class="cmr-12">5</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">31</span></a><span class="cmr-12">33</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
class="equation"><tr><td> class="equation"><tr><td>
<center class="math-display" > <div class="math-display" >
<img <img
src="userhtml0x.png" alt="Ax = b, src="userhtml0x.png" alt="Ax = b,
" class="math-display" ><a " class="math-display" ><a
id="x4-3001r1"></a></center></td><td class="equation-label"><span id="x4-3001r1"></a></div>
</td><td class="equation-label"><span
class="cmr-12">(1)</span></td></tr></table> class="cmr-12">(1)</span></td></tr></table>
<!--l. 11--><p class="nopar" > <!--l. 11--><p class="nopar" ><span
<span
class="cmr-12">where </span><span class="cmr-12">where </span><span
class="cmmi-12">A </span><span class="cmmi-12">A </span><span
class="cmr-12">is a square, real or complex, sparse symmetric positive definite (s.p.d)</span> class="cmr-12">is a square, real or complex, sparse symmetric positive definite (s.p.d)</span>
@ -121,7 +121,7 @@ class="cmr-12">5</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">27</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">; 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
@ -149,7 +149,8 @@ class="cmr-12">problem, e.g., the discretization of a PDE. To this end, two diff
<span <span
class="cmr-12">strategies, based on aggregation, are available:</span> class="cmr-12">strategies, based on aggregation, are available:</span>
<ul class="itemize1"> <ul class="itemize1">
<li class="itemize"><span <li class="itemize">
<!--l. 35--><p class="noindent" ><span
class="cmr-12">a decoupled version of the smoothed aggregation procedure proposed in</span><span class="cmr-12">a decoupled version of the smoothed aggregation procedure proposed 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
@ -159,7 +160,7 @@ 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">33</span></a><span class="cmr-12">35</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
@ -176,7 +177,8 @@ class="cmr-12">;</span>
</li> </li>
<li class="itemize"><span <li class="itemize">
<!--l. 39--><p class="noindent" ><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>
<span <span
class="cmr-12">Weighted Matching introduced in</span><span class="cmr-12">Weighted Matching introduced in</span><span
@ -232,11 +234,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">22</span></a><span class="cmr-12">23</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">21</span></a><span class="cmr-12">22</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
@ -283,11 +285,11 @@ class="cmr-12">AMG4PSBLAS has a layered and modular software architecture where
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>
<span <span
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
class="cmr-12">upper one provides a uniform interface to all the preconditioners. This architecture</span>
<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
@ -362,6 +364,9 @@ class="cmr-12">.</span>
<!--l. 1--><div class="crosslinks"><p class="noindent"><span <!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlse2.html" ><span href="userhtmlse2.html" ><span

@ -33,10 +33,10 @@ class="cmr-12">2 </span></span> <a
class="cmr-12">Code Distribution</span></h3> class="cmr-12">Code Distribution</span></h3>
<!--l. 5--><p class="noindent" ><span <!--l. 5--><p class="noindent" ><span
class="cmr-12">AMG4PSBLAS is available from the web site</span> class="cmr-12">AMG4PSBLAS is available from the web site</span>
<div class="quotation"> <blockquote class="quotation">
<!--l. 8--><p class="indent" > <a <!--l. 8--><p class="indent" > <a
href="https://psctoolkit.github.io/products/amg4psblas/" ><span href="https://psctoolkit.github.io/products/amg4psblas/" ><span
class="cmr-12">https://psctoolkit.github.io/products/amg4psblas/</span></a></div> class="cmr-12">https://psctoolkit.github.io/products/amg4psblas/</span></a></blockquote>
<!--l. 10--><p class="noindent" ><span <!--l. 10--><p class="noindent" ><span
class="cmr-12">where contact points for further information can be also found.</span> class="cmr-12">where contact points for further information can be also found.</span>
<!--l. 12--><p class="indent" > <span <!--l. 12--><p class="indent" > <span
@ -53,23 +53,20 @@ class="cmr-12">different and more stringent license, most notably the GPL, and t
class="cmr-12">into account when treating derived works.</span> class="cmr-12">into account when treating derived works.</span>
<!--l. 18--><p class="indent" > <span <!--l. 18--><p class="indent" > <span
class="cmr-12">The library defines a version string with the constant</span> class="cmr-12">The library defines a version string with the constant</span>
<center class="math-display" > <div class="math-display" >
<img <img
src="userhtml1x.png" alt="amg_version_string_ src="userhtml1x.png" alt="amg_version_string_
" class="math-display" ></center> " class="math-display" ></div>
<!--l. 20--><p class="nopar" > <span <!--l. 20--><p class="nopar" > <span
class="cmr-12">whose current value is </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">whose current value is </span><span class="obeylines-h"><code class="verb">1.0</code></span><span
class="cmtt-12">1.0</span></span></span><span
class="cmr-12">.</span> class="cmr-12">.</span>
<!--l. 23--><p class="noindent" > <!--l. 23--><p class="noindent" >
<div class="likesubsectionTOCS"> <div class="likesubsectionTOCS">
<span <span class="likesubsectionToc" ><a
class="cmr-12">&#x00A0;</span><span class="likesubsectionToc" ><a href="userhtmlli3.html#x6-5000"><span
href="userhtmlli3.html#x6-50002"><span
class="cmr-12">Contributors</span></a></span> class="cmr-12">Contributors</span></a></span>
<br /> <span <br /> <span class="likesubsectionToc" ><a
class="cmr-12">&#x00A0;</span><span class="likesubsectionToc" ><a href="userhtmlli4.html#x7-6000"><span
href="userhtmlli4.html#x7-60002"><span
class="cmr-12">Citing AMG4PSBLAS</span></a></span> class="cmr-12">Citing AMG4PSBLAS</span></a></span>
</div> </div>

@ -34,8 +34,7 @@ class="cmr-12">Configuring and Building AMG4PSBLAS</span></h3>
<!--l. 4--><p class="noindent" ><span <!--l. 4--><p class="noindent" ><span
class="cmr-12">In order to build AMG4PSBLAS it is necessary to set up a Makefile with appropriate</span> class="cmr-12">In order to build AMG4PSBLAS it is necessary to set up a Makefile with appropriate</span>
<span <span
class="cmr-12">system-dependent variables; this is done by means of the </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">system-dependent variables; this is done by means of the </span><span class="obeylines-h"><code class="verb">configure</code></span> <span
class="cmtt-12">configure</span></span></span> <span
class="cmr-12">script. The</span> class="cmr-12">script. The</span>
<span <span
class="cmr-12">distribution also includes the autoconf and automake sources employed to generate the</span> class="cmr-12">distribution also includes the autoconf and automake sources employed to generate the</span>
@ -48,12 +47,10 @@ class="cmr-12">&#x00A0;2003, with some</span>
class="cmr-12">interfaces to external libraries in C; the Fortran compiler must support the</span> class="cmr-12">interfaces to external libraries in C; the Fortran compiler must support the</span>
<span <span
class="cmr-12">Fortran</span><span class="cmr-12">Fortran</span><span
class="cmr-12">&#x00A0;2003 standard plus the extension </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">&#x00A0;2003 standard plus the extension </span><span class="obeylines-h"><code class="verb">MOLD=</code></span> <span
class="cmtt-12">MOLD=</span></span></span> <span
class="cmr-12">feature, which enhances the usability</span> class="cmr-12">feature, which enhances the usability</span>
<span <span
class="cmr-12">of </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">of </span><span class="obeylines-h"><code class="verb">ALLOCATE</code></span><span
class="cmtt-12">ALLOCATE</span></span></span><span
class="cmr-12">. Most Fortran compilers provide this feature; in particular, this is</span> class="cmr-12">. Most Fortran compilers provide this feature; in particular, this is</span>
<span <span
class="cmr-12">supported by the GNU Fortran compiler, for which we recommend to use at least</span> class="cmr-12">supported by the GNU Fortran compiler, for which we recommend to use at least</span>
@ -87,28 +84,23 @@ class="cmr-12">the base and optional software used by AMG4PSBLAS is given in the
class="cmr-12">sections.</span> class="cmr-12">sections.</span>
<!--l. 30--><p class="noindent" > <!--l. 30--><p class="noindent" >
<div class="subsectionTOCS"> <div class="subsectionTOCS">
<span <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.1 </span><a class="cmr-12">3.1 </span><a
href="userhtmlsu1.html#x9-80003.1"><span href="userhtmlsu1.html#x9-80003.1"><span
class="cmr-12">Prerequisites</span></a></span> class="cmr-12">Prerequisites</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.2 </span><a class="cmr-12">3.2 </span><a
href="userhtmlsu2.html#x10-90003.2"><span href="userhtmlsu2.html#x10-90003.2"><span
class="cmr-12">Optional third party libraries</span></a></span> class="cmr-12">Optional third party libraries</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.3 </span><a class="cmr-12">3.3 </span><a
href="userhtmlsu3.html#x11-100003.3"><span href="userhtmlsu3.html#x11-100003.3"><span
class="cmr-12">Configuration options</span></a></span> class="cmr-12">Configuration options</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.4 </span><a class="cmr-12">3.4 </span><a
href="userhtmlsu4.html#x12-110003.4"><span href="userhtmlsu4.html#x12-110003.4"><span
class="cmr-12">Bug reporting</span></a></span> class="cmr-12">Bug reporting</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.5 </span><a class="cmr-12">3.5 </span><a
href="userhtmlsu5.html#x13-120003.5"><span href="userhtmlsu5.html#x13-120003.5"><span
class="cmr-12">Example and test programs</span></a></span> class="cmr-12">Example and test programs</span></a></span>

@ -40,56 +40,46 @@ class="cmr-12">PSBLAS</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#XPSBLASGUIDE"><span href="userhtmlli5.html#XPSBLASGUIDE"><span
class="cmr-12">20</span></a><span class="cmr-12">21</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
class="cmr-12">The following steps are required:</span> class="cmr-12">The following steps are required:</span>
<ol class="enumerate1" > <ol class="enumerate1" >
<li <li
class="enumerate" id="x14-13002x1"><span class="enumerate" id="x14-13002x1">
<!--l. 11--><p class="noindent" ><span
class="cmti-12">Declare the preconditioner data structure</span><span class="cmti-12">Declare the preconditioner data structure</span><span
class="cmr-12">. It is a derived data type,</span> class="cmr-12">. It is a derived data type,</span>
<span class="obeylines-h"><span class="verb"><span <span class="obeylines-h"><code class="verb">amg_</code></span><span
class="cmtt-12">amg_</span></span></span><span class="cmti-12">x</span><span class="obeylines-h"><code class="verb">prec_</code></span> <span class="obeylines-h"><code class="verb">type</code></span><span
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">prec_</span></span></span> <span class="obeylines-h"><span class="verb"><span
class="cmtt-12">type</span></span></span><span
class="cmr-12">, where </span><span class="cmr-12">, where </span><span
class="cmti-12">x </span><span class="cmti-12">x </span><span
class="cmr-12">may be </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">may be </span><span class="obeylines-h"><code class="verb">s</code></span><span
class="cmtt-12">s</span></span></span><span class="cmr-12">, </span><span class="obeylines-h"><code class="verb">d</code></span><span
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">, </span><span class="obeylines-h"><code class="verb">c</code></span> <span
class="cmtt-12">d</span></span></span><span class="cmr-12">or </span><span class="obeylines-h"><code class="verb">z</code></span><span
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">c</span></span></span> <span
class="cmr-12">or </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">z</span></span></span><span
class="cmr-12">, according to the basic data</span> class="cmr-12">, according to the basic data</span>
<span <span
class="cmr-12">type of the sparse matrix (</span><span class="obeylines-h"><span class="verb"><span class="cmr-12">type of the sparse matrix (</span><span class="obeylines-h"><code class="verb">s</code></span> <span
class="cmtt-12">s</span></span></span> <span class="cmr-12">= real single precision; </span><span class="obeylines-h"><code class="verb">d</code></span> <span
class="cmr-12">= real single precision; </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">d</span></span></span> <span
class="cmr-12">= real double precision;</span> class="cmr-12">= real double precision;</span>
<span class="obeylines-h"><span class="verb"><span <span class="obeylines-h"><code class="verb">c</code></span> <span
class="cmtt-12">c</span></span></span> <span class="cmr-12">= complex single precision; </span><span class="obeylines-h"><code class="verb">z</code></span> <span
class="cmr-12">= complex single precision; </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">z</span></span></span> <span
class="cmr-12">= complex double precision). This data</span> class="cmr-12">= complex double precision). This data</span>
<span <span
class="cmr-12">structure is accessed by the user only through the AMG4PSBLAS routines,</span> class="cmr-12">structure is accessed by the user only through the AMG4PSBLAS routines,</span>
<span <span
class="cmr-12">following an object-oriented approach.</span> class="cmr-12">following an object-oriented approach.</span>
</li> </li>
<li <li
class="enumerate" id="x14-13004x2"><span class="enumerate" id="x14-13004x2">
<!--l. 19--><p class="noindent" ><span
class="cmti-12">Allocate and initialize the preconditioner data structure, according to a</span> class="cmti-12">Allocate and initialize the preconditioner data structure, according to a</span>
<span <span
class="cmti-12">preconditioner type chosen by the user</span><span class="cmti-12">preconditioner type chosen by the user</span><span
class="cmr-12">. This is performed by the routine</span> class="cmr-12">. This is performed by the routine</span>
<span class="lstinline"></span><span <code class="lstinline"><span style="color:#000000">init</span></code><span
class="cmtt-12">init</span><span
class="cmr-12">, which also sets defaults for each preconditioner type selected by</span> class="cmr-12">, which also sets defaults for each preconditioner type selected by</span>
<span <span
class="cmr-12">the user. The preconditioner types and the defaults associated with them</span> class="cmr-12">the user. The preconditioner types and the defaults associated with them</span>
@ -98,34 +88,35 @@ class="cmr-12">are given in Table</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="#x14-13015r1"><span href="#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">, where the strings used by </span><span class="lstinline"></span><span class="cmr-12">, where the strings used by </span><code class="lstinline"><span style="color:#000000">init</span></code> <span
class="cmtt-12">init</span> <span
class="cmr-12">to identify the</span> class="cmr-12">to identify the</span>
<span <span
class="cmr-12">preconditioner types are also given. Note that these strings are valid also if</span> class="cmr-12">preconditioner types are also given. Note that these strings are valid also if</span>
<span <span
class="cmr-12">uppercase letters are substituted by corresponding lowercase ones.</span> class="cmr-12">uppercase letters are substituted by corresponding lowercase ones.</span>
</li> </li>
<li <li
class="enumerate" id="x14-13006x3"><span class="enumerate" id="x14-13006x3">
<!--l. 29--><p class="noindent" ><span
class="cmti-12">Modify the selected preconditioner type, by properly setting preconditioner</span> class="cmti-12">Modify the selected preconditioner type, by properly setting preconditioner</span>
<span <span
class="cmti-12">parameters. </span><span class="cmti-12">parameters. </span><span
class="cmr-12">This is performed by the routine </span><span class="lstinline"></span><span class="cmr-12">This is performed by the routine </span><code class="lstinline"><span style="color:#000000">set</span></code><span
class="cmtt-12">set</span><span
class="cmr-12">. This routine must be</span> class="cmr-12">. This routine must be</span>
<span <span
class="cmr-12">called if the user wants to modify the default values of the parameters</span> class="cmr-12">called if the user wants to modify the default values of the parameters</span>
<span <span
class="cmr-12">associated with the selected preconditioner type, to obtain a variant of that</span> class="cmr-12">associated with the selected preconditioner type, to obtain a variant of that</span>
<span <span
class="cmr-12">preconditioner. Examples of use of </span><span class="lstinline"></span><span class="cmr-12">preconditioner. Examples of use of </span><code class="lstinline"><span style="color:#000000">set</span></code> <span
class="cmtt-12">set</span> <span
class="cmr-12">are given in Section</span><span class="cmr-12">are given in Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlsu6.html#x15-140004.1"><span href="userhtmlsu6.html#x15-140004.1"><span
class="cmr-12">4.1</span><!--tex4ht:ref: sec:examples --></a><span class="cmr-12">4.1</span><!--tex4ht:ref: sec:examples --></a><span
class="cmr-12">; a complete</span> class="cmr-12">; a complete</span>
<span <span
class="cmr-12">list of all the preconditioner parameters and their allowed and default values</span> class="cmr-12">list of all the preconditioner parameters and their allowed and default values</span>
<span <span
@ -142,62 +133,57 @@ href="userhtmlsu9.html#x19-18015r8"><span
class="cmr-12">8</span><!--tex4ht:ref: tab:p_smoother_1 --></a><span class="cmr-12">8</span><!--tex4ht:ref: tab:p_smoother_1 --></a><span
class="cmr-12">.</span> class="cmr-12">.</span>
</li> </li>
<li <li
class="enumerate" id="x14-13008x4"><span class="enumerate" id="x14-13008x4">
<!--l. 40--><p class="noindent" ><span
class="cmti-12">Build the preconditioner for a given matrix</span><span class="cmti-12">Build the preconditioner for a given matrix</span><span
class="cmr-12">. If the selected preconditioner is</span> class="cmr-12">. If the selected preconditioner is</span>
<span <span
class="cmr-12">multilevel, then two steps must be performed, as specified next.</span> class="cmr-12">multilevel, then two steps must be performed, as specified next.</span>
<ol class="enumerate2" > <ol class="enumerate2" >
<li <li
class="enumerate" id="x14-13009x0"><span class="enumerate" id="x14-13009x0">
<!--l. 43--><p class="noindent" ><span
class="cmti-12">Build the AMG hierarchy for a given matrix. </span><span class="cmti-12">Build the AMG hierarchy for a given matrix. </span><span
class="cmr-12">This is performed by the</span> class="cmr-12">This is performed by the</span>
<span <span
class="cmr-12">routine </span><span class="lstinline"></span><span class="cmr-12">routine </span><code class="lstinline"><span style="color:#000000">hierarchy_build</span></code><span
class="cmtt-12">hierarchy_build</span><span
class="cmr-12">.</span> class="cmr-12">.</span>
</li> </li>
<li <li
class="enumerate" id="x14-13010x0"><span class="enumerate" id="x14-13010x0">
<!--l. 45--><p class="noindent" ><span
class="cmti-12">Build the preconditioner for a given matrix. </span><span class="cmti-12">Build the preconditioner for a given matrix. </span><span
class="cmr-12">This is performed by the</span> class="cmr-12">This is performed by the</span>
<span <span
class="cmr-12">routine </span><span class="lstinline"></span><span class="cmr-12">routine </span><code class="lstinline"><span style="color:#000000">smoothers_build</span></code><span
class="cmtt-12">smoothers_build</span><span
class="cmr-12">.</span></li></ol> class="cmr-12">.</span></li></ol>
<!--l. 48--><p class="noindent" ><span <!--l. 48--><p class="noindent" ><span
class="cmr-12">If the selected preconditioner is one-level, it is built in a single step, performed by</span> class="cmr-12">If the selected preconditioner is one-level, it is built in a single step, performed by</span>
<span <span
class="cmr-12">the routine </span><span class="lstinline"></span><span class="cmr-12">the routine </span><code class="lstinline"><span style="color:#000000">bld</span></code><span
class="cmtt-12">bld</span><span
class="cmr-12">.</span> class="cmr-12">.</span>
</li> </li>
<li <li
class="enumerate" id="x14-13012x5"><span class="enumerate" id="x14-13012x5">
<!--l. 50--><p class="noindent" ><span
class="cmti-12">Apply the preconditioner at each iteration of a Krylov solver. </span><span class="cmti-12">Apply the preconditioner at each iteration of a Krylov solver. </span><span
class="cmr-12">This is performed by</span> class="cmr-12">This is performed by</span>
<span <span
class="cmr-12">the method </span><span class="lstinline"></span><span class="cmr-12">the method </span><code class="lstinline"><span style="color:#000000">apply</span></code><span
class="cmtt-12">apply</span><span
class="cmr-12">. When using the PSBLAS Krylov solvers, this step is</span> class="cmr-12">. When using the PSBLAS Krylov solvers, this step is</span>
<span <span
class="cmr-12">completely transparent to the user, since </span><span class="lstinline"></span><span class="cmr-12">completely transparent to the user, since </span><code class="lstinline"><span style="color:#000000">apply</span></code> <span
class="cmtt-12">apply</span> <span
class="cmr-12">is called by the PSBLAS routine</span> class="cmr-12">is called by the PSBLAS routine</span>
<span <span
class="cmr-12">implementing the Krylov solver (</span><span class="lstinline"></span><span class="cmr-12">implementing the Krylov solver (</span><code class="lstinline"><span style="color:#000000">psb_krylov</span></code><span
class="cmtt-12">psb_krylov</span><span
class="cmr-12">).</span> class="cmr-12">).</span>
</li> </li>
<li <li
class="enumerate" id="x14-13014x6"><span class="enumerate" id="x14-13014x6">
<!--l. 54--><p class="noindent" ><span
class="cmti-12">Free the preconditioner data structure</span><span class="cmti-12">Free the preconditioner data structure</span><span
class="cmr-12">. This is performed by the routine </span><span class="lstinline"></span><span class="cmr-12">. This is performed by the routine </span><code class="lstinline"><span style="color:#000000">free</span></code><span
class="cmtt-12">free</span><span
class="cmr-12">.</span> class="cmr-12">.</span>
<span <span
class="cmr-12">This step is complementary to step 1 and should be performed when the</span> class="cmr-12">This step is complementary to step 1 and should be performed when the</span>
@ -231,28 +217,28 @@ class="cmr-12">.</span>
> >
<!--l. 64--><p class="noindent" > <!--l. 64--><p class="noindent" >
<div class="tabular"> <table id="TBL-1" class="tabular" <div class="tabular"> <table id="TBL-1" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-1-1g"><col ><colgroup id="TBL-1-1g"><col
id="TBL-1-1"></colgroup><colgroup id="TBL-1-2g"><col id="TBL-1-1"></colgroup><colgroup id="TBL-1-2g"><col
id="TBL-1-2"></colgroup><colgroup id="TBL-1-3g"><col id="TBL-1-2"></colgroup><colgroup id="TBL-1-3g"><col
id="TBL-1-3"></colgroup><tr id="TBL-1-3"></colgroup><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-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-1-1" style="vertical-align:baseline;" id="TBL-1-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-1-1"
class="td11"><span class="td11"> <span
class="cmcsc-10x-x-109"><span 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:normal; 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
class="small-caps">t</span><span 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:normal; 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
class="small-caps">e</span><span class="small-caps">e</span><span
@ -274,121 +260,98 @@ class="small-caps">i</span><span
class="small-caps">o</span><span class="small-caps">o</span><span
class="small-caps">n</span><span class="small-caps">n</span><span
class="small-caps">e</span><span 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:normal; text-align:left;" id="TBL-1-2-2" class="td11">
class="td11"><!--l. 69--><p class="noindent" ><span class="lstinline"></span><span No preconditioner </td><td style="white-space:normal; text-align:left;" id="TBL-1-2-2"
class="cmtt-10x-x-109">&#8217;</span><span class="td11"> <!--l. 69--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">NONE</span><span style="color:#000000">&#8217;</span></code>
class="cmtt-10x-x-109">NONE</span><span </td><td style="white-space:normal; 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.
solvers with no preconditioner. </td> </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:normal; text-align:left;" id="TBL-1-3-2" class="td11">
class="td11"><!--l. 71--><p class="noindent" ><span class="lstinline"></span><span Diagonal </td><td style="white-space:normal; text-align:left;" id="TBL-1-3-2"
class="cmtt-10x-x-109">&#8217;</span><span class="td11"> <!--l. 71--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">DIAG</span><span style="color:#000000">&#8217;</span></code>,
class="cmtt-10x-x-109">DIAG</span><span <code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">JACOBI</span><span style="color:#000000">&#8217;</span></code>,
class="cmtt-10x-x-109">&#8217;</span>, <code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">L1</span><span style="color:#000000">-</span><span style="color:#000000">JACOBI</span><span style="color:#000000">&#8217;</span></code>
<span class="lstinline"></span><span </td><td style="white-space:normal; text-align:left;" id="TBL-1-3-3"
class="cmtt-10x-x-109">&#8217;</span><span class="td11"> <!--l. 71--><p class="noindent" >Diagonal preconditioner. For any zero
class="cmtt-10x-x-109">JACOBI</span><span diagonal entry of the matrix to be
class="cmtt-10x-x-109">&#8217;</span>, preconditioned, the corresponding entry
<span class="lstinline"></span><span of the preconditioner is set to&#x00A0;1.
class="cmtt-10x-x-109">&#8217;</span><span </td>
class="cmtt-10x-x-109">L1</span><span
class="cmtt-10x-x-109">-</span><span
class="cmtt-10x-x-109">JACOBI</span><span
class="cmtt-10x-x-109">&#8217;</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-3-3"
class="td11"><!--l. 71--><p class="noindent" >Diagonal preconditioner. For any zero
diagonal entry of the matrix to be
preconditioned, the corresponding entry
of the preconditioner is set to&#x00A0;1. </td>
</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:normal; text-align:left;" id="TBL-1-4-2" class="td11">
class="td11"><!--l. 74--><p class="noindent" ><span class="lstinline"></span><span Gauss-Seidel </td><td style="white-space:normal; text-align:left;" id="TBL-1-4-2"
class="cmtt-10x-x-109">&#8217;</span><span class="td11"> <!--l. 74--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">GS</span><span style="color:#000000">&#8217;</span></code>,
class="cmtt-10x-x-109">GS</span><span <code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">L1</span><span style="color:#000000">-</span><span style="color:#000000">GS</span><span style="color:#000000">&#8217;</span></code>
class="cmtt-10x-x-109">&#8217;</span>, </td><td style="white-space:normal; text-align:left;" id="TBL-1-4-3"
<span class="lstinline"></span><span class="td11"> <!--l. 74--><p class="noindent" >Hybrid Gauss-Seidel (forward), that is,
class="cmtt-10x-x-109">&#8217;</span><span global block Jacobi with Gauss-Seidel as
class="cmtt-10x-x-109">L1</span><span local solver.
class="cmtt-10x-x-109">-</span><span </td>
class="cmtt-10x-x-109">GS</span><span
class="cmtt-10x-x-109">&#8217;</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-4-3"
class="td11"><!--l. 74--><p class="noindent" >Hybrid Gauss-Seidel (forward), that is,
global block Jacobi with Gauss-Seidel as
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:normal; text-align:left;" id="TBL-1-5-2" class="td11">
class="td11"><!--l. 77--><p class="noindent" ><span class="lstinline"></span><span Symmetrized Gauss-Seidel </td><td style="white-space:normal; text-align:left;" id="TBL-1-5-2"
class="cmtt-10x-x-109">&#8217;</span><span class="td11"> <!--l. 77--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">FBGS</span><span style="color:#000000">&#8217;</span></code>,
class="cmtt-10x-x-109">FBGS</span><span <code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">L1</span><span style="color:#000000">-</span><span style="color:#000000">FBGS</span><span style="color:#000000">&#8217;</span></code>
class="cmtt-10x-x-109">&#8217;</span>, </td><td style="white-space:normal; text-align:left;" id="TBL-1-5-3"
<span class="lstinline"></span><span class="td11"> <!--l. 77--><p class="noindent" >Symmetrized hybrid Gauss-Seidel, that
class="cmtt-10x-x-109">&#8217;</span><span is, forward Gauss-Seidel followed by
class="cmtt-10x-x-109">L1</span><span backward Gauss-Seidel.
class="cmtt-10x-x-109">-</span><span </td>
class="cmtt-10x-x-109">FBGS</span><span
class="cmtt-10x-x-109">&#8217;</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-5-3"
class="td11"><!--l. 77--><p class="noindent" >Symmetrized hybrid Gauss-Seidel, that
is, forward Gauss-Seidel followed by
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:normal; text-align:left;" id="TBL-1-6-2" class="td11">
class="td11"><!--l. 80--><p class="noindent" ><span class="lstinline"></span><span Block Jacobi </td><td style="white-space:normal; text-align:left;" id="TBL-1-6-2"
class="cmtt-10x-x-109">&#8217;</span><span class="td11"> <!--l. 80--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">BJAC</span><span style="color:#000000">&#8217;</span></code>,
class="cmtt-10x-x-109">BJAC</span><span <code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">L1</span><span style="color:#000000">-</span><span style="color:#000000">BJAC</span><span style="color:#000000">&#8217;</span></code>
class="cmtt-10x-x-109">&#8217;</span>, </td><td style="white-space:normal; text-align:left;" id="TBL-1-6-3"
<span class="lstinline"></span><span class="td11"> <!--l. 80--><p class="noindent" >Block-Jacobi with ILU(0) on the local
class="cmtt-10x-x-109">&#8217;</span><span blocks.
class="cmtt-10x-x-109">L1</span><span </td>
class="cmtt-10x-x-109">-</span><span
class="cmtt-10x-x-109">BJAC</span><span
class="cmtt-10x-x-109">&#8217;</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-6-3"
class="td11"><!--l. 80--><p class="noindent" >Block-Jacobi with 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-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:normal; text-align:left;" id="TBL-1-7-2" class="td11">
class="td11"><!--l. 81--><p class="noindent" ><span class="lstinline"></span><span Additive Schwarz </td><td style="white-space:normal; text-align:left;" id="TBL-1-7-2"
class="cmtt-10x-x-109">&#8217;</span><span class="td11"> <!--l. 81--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">AS</span><span style="color:#000000">&#8217;</span></code>
class="cmtt-10x-x-109">AS</span><span </td><td style="white-space:normal; 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.
and ILU(0) on the local blocks. </td> </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:normal; text-align:left;" id="TBL-1-8-2" class="td11">
class="td11"><!--l. 83--><p class="noindent" ><span class="lstinline"></span><span Multilevel </td><td style="white-space:normal; text-align:left;" id="TBL-1-8-2"
class="cmtt-10x-x-109">&#8217;</span><span class="td11"> <!--l. 83--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">ML</span><span style="color:#000000">&#8217;</span></code>
class="cmtt-10x-x-109">ML</span><span </td><td style="white-space:normal; 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 GS sweep as post-smoother, decoupled
GS sweep as post-smoother, decoupled smoothed aggregation as coarsening
smoothed aggregation as coarsening algorithm, and LU (plus triangular solve)
algorithm, and LU (plus triangular solve) as coarsest-level solver. See the default
as coarsest-level solver. See the default values in Tables&#x00A0;<a
values in Tables&#x00A0;<a
href="userhtmlsu9.html#x19-18009r2">2<!--tex4ht:ref: tab:p_cycle --></a>-<a href="userhtmlsu9.html#x19-18009r2">2<!--tex4ht:ref: tab:p_cycle --></a>-<a
href="userhtmlsu9.html#x19-18015r8">8<!--tex4ht:ref: tab:p_smoother_1 --></a> for further details of href="userhtmlsu9.html#x19-18015r8">8<!--tex4ht:ref: tab:p_smoother_1 --></a> for further details of
the preconditioner. </td> the 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-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-9-1" style="vertical-align:baseline;" id="TBL-1-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-9-1"
class="td11"> </td></tr></table></div> class="td11"> </td></tr></table> </div>
<br /> <div class="caption" <br /> <div class="caption"
><span class="id">Table&#x00A0;1: </span><span ><span class="id">Table&#x00A0;1: </span><span
class="content">Preconditioner types, corresponding strings and default choices. </span></div><!--tex4ht:label?: x14-13015r1 --> class="content">Preconditioner types, corresponding strings and default choices. </span></div><!--tex4ht:label?: x14-13015r1 -->
@ -399,18 +362,15 @@ class="content">Preconditioner types, corresponding strings and default choices.
</div><hr class="endfloat" /> </div><hr class="endfloat" />
</div> </div>
<!--l. 98--><p class="indent" > <span <!--l. 98--><p class="indent" > <span
class="cmr-12">Note that the module </span><span class="lstinline"></span><span class="cmr-12">Note that the module </span><code class="lstinline"><span style="color:#000000">amg_prec_mod</span></code><span
class="cmtt-12">amg_prec_mod</span><span
class="cmr-12">, containing the definition of the preconditioner</span> class="cmr-12">, containing the definition of the preconditioner</span>
<span <span
class="cmr-12">data type and the interfaces to the routines of AMG4PSBLAS, must be used</span> class="cmr-12">data type and the interfaces to the routines of AMG4PSBLAS, must be used</span>
<span <span
class="cmr-12">in any program calling such routines. The modules </span><span class="lstinline"></span><span class="cmr-12">in any program calling such routines. The modules </span><code class="lstinline"><span style="color:#000000">psb_base_mod</span></code><span
class="cmtt-12">psb_base_mod</span><span
class="cmr-12">, for the</span> class="cmr-12">, for the</span>
<span <span
class="cmr-12">sparse matrix and communication descriptor data types, and </span><span class="lstinline"></span><span class="cmr-12">sparse matrix and communication descriptor data types, and </span><code class="lstinline"><span style="color:#000000">psb_krylov_mod</span></code><span
class="cmtt-12">psb_krylov_mod</span><span
class="cmr-12">,</span> class="cmr-12">,</span>
<span <span
class="cmr-12">for interfacing with the Krylov solvers, must be also used (see Section</span><span class="cmr-12">for interfacing with the Krylov solvers, must be also used (see Section</span><span
@ -436,13 +396,11 @@ class="cmr-12">problems. However, this does not necessarily correspond to the sh
class="cmr-12">on parallel</span><span class="cmr-12">on parallel</span><span
class="cmr-12">&#x00A0;computers.</span> class="cmr-12">&#x00A0;computers.</span>
<div class="subsectionTOCS"> <div class="subsectionTOCS">
<span <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">4.1 </span><a class="cmr-12">4.1 </span><a
href="userhtmlsu6.html#x15-140004.1"><span href="userhtmlsu6.html#x15-140004.1"><span
class="cmr-12">Examples</span></a></span> class="cmr-12">Examples</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">4.2 </span><a class="cmr-12">4.2 </span><a
href="userhtmlsu7.html#x16-150004.2"><span href="userhtmlsu7.html#x16-150004.2"><span
class="cmr-12">GPU example</span></a></span> class="cmr-12">GPU example</span></a></span>

@ -33,28 +33,20 @@ class="cmr-12">5 </span></span> <a
class="cmr-12">User Interface</span></h3> class="cmr-12">User Interface</span></h3>
<!--l. 5--><p class="noindent" ><span <!--l. 5--><p class="noindent" ><span
class="cmr-12">The basic user interface of AMG4PBLAS consists of eight methods. The six methods</span> class="cmr-12">The basic user interface of AMG4PBLAS consists of eight methods. The six methods</span>
<span class="lstinline"></span><span <code class="lstinline"><span style="color:#000000">init</span></code><span
class="cmtt-12">init</span><span class="cmr-12">, </span><code class="lstinline"><span style="color:#000000">set</span></code><span
class="cmr-12">, </span><span class="lstinline"></span><span class="cmr-12">, </span><code class="lstinline"><span style="color:#000000">build</span></code><span
class="cmtt-12">set</span><span class="cmr-12">, </span><code class="lstinline"><span style="color:#000000">hierarchy_build</span></code><span
class="cmr-12">, </span><span class="lstinline"></span><span class="cmr-12">, </span><code class="lstinline"><span style="color:#000000">smoothers_build</span></code> <span
class="cmtt-12">build</span><span class="cmr-12">and </span><code class="lstinline"><span style="color:#000000">apply</span></code> <span
class="cmr-12">, </span><span class="lstinline"></span><span
class="cmtt-12">hierarchy_build</span><span
class="cmr-12">, </span><span class="lstinline"></span><span
class="cmtt-12">smoothers_build</span> <span
class="cmr-12">and </span><span class="lstinline"></span><span
class="cmtt-12">apply</span> <span
class="cmr-12">encapsulate all the</span> class="cmr-12">encapsulate all the</span>
<span <span
class="cmr-12">functionalities for the setup and the application of any multilevel and one-level</span> class="cmr-12">functionalities for the setup and the application of any multilevel and one-level</span>
<span <span
class="cmr-12">preconditioner implemented in the package. The method </span><span class="lstinline"></span><span class="cmr-12">preconditioner implemented in the package. The method </span><code class="lstinline"><span style="color:#000000">free</span></code> <span
class="cmtt-12">free</span> <span
class="cmr-12">deallocates the</span> class="cmr-12">deallocates the</span>
<span <span
class="cmr-12">preconditioner data structure, while </span><span class="lstinline"></span><span class="cmr-12">preconditioner data structure, while </span><code class="lstinline"><span style="color:#000000">descr</span></code> <span
class="cmtt-12">descr</span> <span
class="cmr-12">prints a description of the preconditioner</span> class="cmr-12">prints a description of the preconditioner</span>
<span <span
class="cmr-12">setup by the user. For backward compatibility, methods are also accessible as</span> class="cmr-12">setup by the user. For backward compatibility, methods are also accessible as</span>
@ -67,53 +59,44 @@ class="cmr-12">real/complex and single/double precision data; arguments with app
<span <span
class="cmr-12">must be passed to the method, i.e.,</span> class="cmr-12">must be passed to the method, i.e.,</span>
<ul class="itemize1"> <ul class="itemize1">
<li class="itemize"><span <li class="itemize">
<!--l. 20--><p class="noindent" ><span
class="cmr-12">the sparse matrix data structure, containing the matrix to be preconditioned,</span> class="cmr-12">the sparse matrix data structure, containing the matrix to be preconditioned,</span>
<span <span
class="cmr-12">must be of type </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">must be of type </span><span class="obeylines-h"><code class="verb">psb_</code></span><span
class="cmtt-12">psb_</span></span></span><span class="cmti-12">x</span><span class="obeylines-h"><code class="verb">spmat_type</code></span> <span
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">spmat_type</span></span></span> <span
class="cmr-12">with </span><span class="cmr-12">with </span><span
class="cmti-12">x </span><span class="cmti-12">x </span><span
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">= </span><span class="obeylines-h"><code class="verb">s</code></span> <span
class="cmtt-12">s</span></span></span> <span
class="cmr-12">for real single precision, </span><span class="cmr-12">for real single precision, </span><span
class="cmti-12">x</span> class="cmti-12">x</span>
<span <span
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">= </span><span class="obeylines-h"><code class="verb">d</code></span> <span
class="cmtt-12">d</span></span></span> <span
class="cmr-12">for real double precision, </span><span class="cmr-12">for real double precision, </span><span
class="cmti-12">x </span><span class="cmti-12">x </span><span
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">= </span><span class="obeylines-h"><code class="verb">c</code></span> <span
class="cmtt-12">c</span></span></span> <span
class="cmr-12">for complex single precision, </span><span class="cmr-12">for complex single precision, </span><span
class="cmti-12">x </span><span class="cmti-12">x </span><span
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">= </span><span class="obeylines-h"><code class="verb">z</code></span> <span
class="cmtt-12">z</span></span></span> <span
class="cmr-12">for</span> class="cmr-12">for</span>
<span <span
class="cmr-12">complex double precision;</span> class="cmr-12">complex double precision;</span>
</li> </li>
<li class="itemize"><span <li class="itemize">
class="cmr-12">the preconditioner data structure must be of type </span><span class="obeylines-h"><span class="verb"><span <!--l. 25--><p class="noindent" ><span
class="cmtt-12">amg_</span></span></span><span class="cmr-12">the preconditioner data structure must be of type </span><span class="obeylines-h"><code class="verb">amg_</code></span><span
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span class="cmti-12">x</span><span class="obeylines-h"><code class="verb">prec_type</code></span><span
class="cmtt-12">prec_type</span></span></span><span
class="cmr-12">, with </span><span class="cmr-12">, with </span><span
class="cmti-12">x</span> class="cmti-12">x</span>
<span <span
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">= </span><span class="obeylines-h"><code class="verb">s</code></span><span
class="cmtt-12">s</span></span></span><span class="cmr-12">, </span><span class="obeylines-h"><code class="verb">d</code></span><span
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">, </span><span class="obeylines-h"><code class="verb">c</code></span><span
class="cmtt-12">d</span></span></span><span class="cmr-12">, </span><span class="obeylines-h"><code class="verb">z</code></span><span
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">c</span></span></span><span
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">z</span></span></span><span
class="cmr-12">, according to the sparse matrix data structure;</span> class="cmr-12">, according to the sparse matrix data structure;</span>
</li> </li>
<li class="itemize"><span <li class="itemize">
<!--l. 29--><p class="noindent" ><span
class="cmr-12">the arrays containing the vectors </span><span class="cmr-12">the arrays containing the vectors </span><span
class="cmmi-12">v </span><span class="cmmi-12">v </span><span
class="cmr-12">and </span><span class="cmr-12">and </span><span
@ -127,24 +110,19 @@ class="cmmi-12">B</span><sup><span
class="cmsy-8">-</span><span class="cmsy-8">-</span><span
class="cmr-8">1</span></sup><span class="cmr-8">1</span></sup><span
class="cmmi-12">v </span><span class="cmmi-12">v </span><span
class="cmr-12">must be of type </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">must be of type </span><span class="obeylines-h"><code class="verb">psb_</code></span><span
class="cmtt-12">psb_</span></span></span><span class="cmti-12">x</span><span class="obeylines-h"><code class="verb">vect_type</code></span> <span
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">vect_type</span></span></span> <span
class="cmr-12">with </span><span class="cmr-12">with </span><span
class="cmti-12">x </span><span class="cmti-12">x </span><span
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">= </span><span class="obeylines-h"><code class="verb">s</code></span><span
class="cmtt-12">s</span></span></span><span class="cmr-12">, </span><span class="obeylines-h"><code class="verb">d</code></span><span
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">, </span><span class="obeylines-h"><code class="verb">c</code></span><span
class="cmtt-12">d</span></span></span><span
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">c</span></span></span><span
class="cmr-12">,</span> class="cmr-12">,</span>
<span class="obeylines-h"><span class="verb"><span <span class="obeylines-h"><code class="verb">z</code></span><span
class="cmtt-12">z</span></span></span><span
class="cmr-12">, in a manner completely analogous to the sparse matrix type;</span> class="cmr-12">, in a manner completely analogous to the sparse matrix type;</span>
</li> </li>
<li class="itemize"><span <li class="itemize">
<!--l. 34--><p class="noindent" ><span
class="cmr-12">real parameters defining the preconditioner must be declared according to</span> class="cmr-12">real parameters defining the preconditioner must be declared according to</span>
<span <span
class="cmr-12">the precision of the sparse matrix and preconditioner data structures (see</span> class="cmr-12">the precision of the sparse matrix and preconditioner data structures (see</span>
@ -160,81 +138,62 @@ class="cmr-12">A description of each method is given in the remainder of this se
<div class="subsectionTOCS"> <div class="subsectionTOCS">
<span <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.1 </span><a class="cmr-12">5.1 </span><a
href="userhtmlsu8.html#x18-170005.1"><span href="userhtmlsu8.html#x18-170005.1"><span
class="cmr-12">Method init</span></a></span> class="cmr-12">Method init</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.2 </span><a class="cmr-12">5.2 </span><a
href="userhtmlsu9.html#x19-180005.2"><span href="userhtmlsu9.html#x19-180005.2"><span
class="cmr-12">Method set</span></a></span> class="cmr-12">Method set</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.3 </span><a class="cmr-12">5.3 </span><a
href="userhtmlsu10.html#x20-190005.3"><span href="userhtmlsu10.html#x20-190005.3"><span
class="cmr-12">Method hierarchy</span><span class="cmr-12">Method hierarchy</span><span
class="cmr-12">_build</span></a></span> class="cmr-12">_build</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.4 </span><a class="cmr-12">5.4 </span><a
href="userhtmlsu11.html#x21-200005.4"><span href="userhtmlsu11.html#x21-200005.4"><span
class="cmr-12">Method smoothers</span><span class="cmr-12">Method smoothers</span><span
class="cmr-12">_build</span></a></span> class="cmr-12">_build</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.5 </span><a class="cmr-12">5.5 </span><a
href="userhtmlsu12.html#x22-210005.5"><span href="userhtmlsu12.html#x22-210005.5"><span
class="cmr-12">Method build</span></a></span> class="cmr-12">Method build</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.6 </span><a class="cmr-12">5.6 </span><a
href="userhtmlsu13.html#x23-220005.6"><span href="userhtmlsu13.html#x23-220005.6"><span
class="cmr-12">Method apply</span></a></span> class="cmr-12">Method apply</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.7 </span><a class="cmr-12">5.7 </span><a
href="userhtmlsu14.html#x24-230005.7"><span href="userhtmlsu14.html#x24-230005.7"><span
class="cmr-12">Method free</span></a></span> class="cmr-12">Method free</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.8 </span><a class="cmr-12">5.8 </span><a
href="userhtmlsu15.html#x25-240005.8"><span href="userhtmlsu15.html#x25-240005.8"><span
class="cmr-12">Method descr</span></a></span> class="cmr-12">Method descr</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.9 </span><a class="cmr-12">5.9 </span><a
href="userhtmlsu16.html#x26-250005.9"><span href="userhtmlsu16.html#x26-250005.9"><span
class="cmr-12">Auxiliary Methods</span></a></span> class="cmr-12">Auxiliary Methods</span></a></span>
<br /> <span <br /> <span class="subsubsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span
class="cmr-12">5.9.1 </span><a class="cmr-12">5.9.1 </span><a
href="userhtmlsu16.html#x26-260005.9.1"><span href="userhtmlsu16.html#x26-260005.9.1"><span
class="cmr-12">Method: dump</span></a></span> class="cmr-12">Method: dump</span></a></span>
<br /> <span <br /> <span class="subsubsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span
class="cmr-12">5.9.2 </span><a class="cmr-12">5.9.2 </span><a
href="userhtmlsu16.html#x26-270005.9.2"><span href="userhtmlsu16.html#x26-270005.9.2"><span
class="cmr-12">Method: clone</span></a></span> class="cmr-12">Method: clone</span></a></span>
<br /> <span <br /> <span class="subsubsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span
class="cmr-12">5.9.3 </span><a class="cmr-12">5.9.3 </span><a
href="userhtmlsu16.html#x26-280005.9.3"><span href="userhtmlsu16.html#x26-280005.9.3"><span
class="cmr-12">Method: sizeof</span></a></span> class="cmr-12">Method: sizeof</span></a></span>
<br /> <span <br /> <span class="subsubsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span
class="cmr-12">5.9.4 </span><a class="cmr-12">5.9.4 </span><a
href="userhtmlsu16.html#x26-290005.9.4"><span href="userhtmlsu16.html#x26-290005.9.4"><span
class="cmr-12">Method: allocate</span><span class="cmr-12">Method: allocate</span><span
class="cmr-12">_wrk</span></a></span> class="cmr-12">_wrk</span></a></span>
<br /> <span <br /> <span class="subsubsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span
class="cmr-12">5.9.5 </span><a class="cmr-12">5.9.5 </span><a
href="userhtmlsu16.html#x26-300005.9.5"><span href="userhtmlsu16.html#x26-300005.9.5"><span
class="cmr-12">Method: free</span><span class="cmr-12">Method: free</span><span

@ -63,57 +63,28 @@ class="cmr-12">Once the new smoother/solver class has been developed, to use it
<span <span
class="cmr-12">the multilevel preconditioners it is necessary to:</span> class="cmr-12">the multilevel preconditioners it is necessary to:</span>
<ul class="itemize1"> <ul class="itemize1">
<li class="itemize"><span <li class="itemize">
<!--l. 23--><p class="noindent" ><span
class="cmr-12">declare in the application program a variable of the new type;</span> class="cmr-12">declare in the application program a variable of the new type;</span>
</li> </li>
<li class="itemize"><span <li class="itemize">
class="cmr-12">pass that variable as the argument to the </span><span class="obeylines-h"><span class="verb"><span <!--l. 24--><p class="noindent" ><span
class="cmtt-12">set</span></span></span> <span class="cmr-12">pass that variable as the argument to the </span><span class="obeylines-h"><code class="verb">set</code></span> <span
class="cmr-12">routine as in the following:</span> class="cmr-12">routine as in the following:</span>
<div class="center" <div class="center"
> >
<!--l. 26--><p class="noindent" > <!--l. 26--><p class="noindent" >
<!--l. 27--><p class="noindent" ><span class="lstinline"></span><span <!--l. 27--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">set</span><span style="color:#000000">(</span><span style="color:#000000">smoother</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000"> </span><span style="color:#000000">[,</span><span style="color:#000000">ilev</span><span style="color:#000000">,</span><span style="color:#000000">ilmax</span><span style="color:#000000">,</span><span style="color:#000000">pos</span><span style="color:#000000">])</span></code><br />
class="cmtt-12">call</span><span <code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">set</span><span style="color:#000000">(</span><span style="color:#000000">solver</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000"> </span><span style="color:#000000">[,</span><span style="color:#000000">ilev</span><span style="color:#000000">,</span><span style="color:#000000">ilmax</span><span style="color:#000000">,</span><span style="color:#000000">pos</span><span style="color:#000000">])</span></code></div>
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
class="cmtt-12">%</span><span
class="cmtt-12">set</span><span
class="cmtt-12">(</span><span
class="cmtt-12">smoother</span><span
class="cmtt-12">,</span><span
class="cmtt-12">info</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">[,</span><span
class="cmtt-12">ilev</span><span
class="cmtt-12">,</span><span
class="cmtt-12">ilmax</span><span
class="cmtt-12">,</span><span
class="cmtt-12">pos</span><span
class="cmtt-12">])</span><br />
<span class="lstinline"></span><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
class="cmtt-12">%</span><span
class="cmtt-12">set</span><span
class="cmtt-12">(</span><span
class="cmtt-12">solver</span><span
class="cmtt-12">,</span><span
class="cmtt-12">info</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">[,</span><span
class="cmtt-12">ilev</span><span
class="cmtt-12">,</span><span
class="cmtt-12">ilmax</span><span
class="cmtt-12">,</span><span
class="cmtt-12">pos</span><span
class="cmtt-12">])</span></div>
</li> </li>
<li class="itemize"><span <li class="itemize">
<!--l. 30--><p class="noindent" ><span
class="cmr-12">link the code implementing the various methods into the application</span> class="cmr-12">link the code implementing the various methods into the application</span>
<span <span
class="cmr-12">executable.</span></li></ul> class="cmr-12">executable.</span></li></ul>
<!--l. 32--><p class="noindent" ><span <!--l. 32--><p class="noindent" ><span
class="cmr-12">The new solver object is then dynamically included in the preconditioner structure,</span> class="cmr-12">The new solver object is then dynamically included in the preconditioner structure,</span>
<span <span
@ -124,14 +95,9 @@ class="cmr-12">to which the preconditioner will conform, even though</span>
class="cmr-12">the AMG4PSBLAS library has not been modified to account for this new</span> class="cmr-12">the AMG4PSBLAS library has not been modified to account for this new</span>
<span <span
class="cmr-12">development.</span> class="cmr-12">development.</span>
<!--l. 37--><p class="indent" > <span <!--l. 37--><p class="indent" > <span
class="cmr-12">It is possible to define new values for the keyword </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">It is possible to define new values for the keyword </span><span class="obeylines-h"><code class="verb">WHAT</code></span> <span
class="cmtt-12">WHAT</span></span></span> <span class="cmr-12">in the </span><span class="obeylines-h"><code class="verb">set</code></span> <span
class="cmr-12">in the </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">set</span></span></span> <span
class="cmr-12">routine; if the</span> class="cmr-12">routine; if the</span>
<span <span
class="cmr-12">library code does not recognize a keyword, it passes it down the composition hierarchy</span> class="cmr-12">library code does not recognize a keyword, it passes it down the composition hierarchy</span>
@ -147,8 +113,7 @@ class="cmr-12">any keyword/value pair that does not pertain to a given solver is
class="cmr-12">ignored.</span> class="cmr-12">ignored.</span>
<!--l. 46--><p class="indent" > <span <!--l. 46--><p class="indent" > <span
class="cmr-12">An example is provided in the source code distribution under the folder</span> class="cmr-12">An example is provided in the source code distribution under the folder</span>
<span class="obeylines-h"><span class="verb"><span <span class="obeylines-h"><code class="verb">tests/newslv</code></span><span
class="cmtt-12">tests/newslv</span></span></span><span
class="cmr-12">. In this example we are implementing a new incomplete factorization</span> class="cmr-12">. In this example we are implementing a new incomplete factorization</span>
<span <span
class="cmr-12">variant (which is simply the ILU(0) factorization under a new name). Because of the</span> class="cmr-12">variant (which is simply the ILU(0) factorization under a new name). Because of the</span>
@ -165,61 +130,51 @@ class="cmr-12">The interfaces for the calls shown above are defined using</span>
<div class="center" <div class="center"
> >
<!--l. 56--><p class="noindent" > <!--l. 56--><p class="noindent" >
<div class="tabular"> <table id="TBL-22" class="tabular" <div class="tabular"> <table id="TBL-23" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-22-1g"><col ><colgroup id="TBL-23-1g"><col
id="TBL-22-1"><col id="TBL-23-1"><col
id="TBL-22-2"></colgroup><tr id="TBL-23-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-22-1-"><td style="white-space:normal; text-align:left;" id="TBL-22-1-1" style="vertical-align:baseline;" id="TBL-23-1-"><td style="white-space:normal; text-align:left;" id="TBL-23-1-1"
class="td11"><!--l. 58--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 58--><p class="noindent" ><code class="lstinline"><span style="color:#000000">smoother</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-23-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" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">amg_x_base_smoother_type</span><span style="color:#000000">)</span></code> </td>
class="td11"><!--l. 58--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span
class="cmtt-12">(</span><span
class="cmtt-12">amg_x_base_smoother_type</span><span
class="cmtt-12">)</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-22-2-"><td style="white-space:normal; text-align:left;" id="TBL-22-2-1" style="vertical-align:baseline;" id="TBL-23-2-"><td style="white-space:normal; text-align:left;" id="TBL-23-2-1"
class="td11"><!--l. 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" > </td><td style="white-space:normal; text-align:left;" id="TBL-23-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:normal; text-align:left;" id="TBL-22-3-1" style="vertical-align:baseline;" id="TBL-23-3-"><td style="white-space:normal; text-align:left;" id="TBL-23-3-1"
class="td11"><!--l. 61--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 61--><p class="noindent" ><code class="lstinline"><span style="color:#000000">solver</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-23-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" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">amg_x_base_solver_type</span><span style="color:#000000">)</span></code> </td>
class="td11"><!--l. 61--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span
class="cmtt-12">(</span><span
class="cmtt-12">amg_x_base_solver_type</span><span
class="cmtt-12">)</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-22-4-"><td style="white-space:normal; text-align:left;" id="TBL-22-4-1" style="vertical-align:baseline;" id="TBL-23-4-"><td style="white-space:normal; text-align:left;" id="TBL-23-4-1"
class="td11"><!--l. 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" > </td><td style="white-space:normal; text-align:left;" id="TBL-23-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
class="cmr-12">The other arguments are defined in the way described in Sec.</span><span class="cmr-12">The other arguments are defined in the way described in Sec.</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlsu9.html#x19-180005.2"><span href="userhtmlsu9.html#x19-180005.2"><span
class="cmr-12">5.2</span><!--tex4ht:ref: sec:precset --></a><span class="cmr-12">5.2</span><!--tex4ht:ref: sec:precset --></a><span
class="cmr-12">. As an example, in the</span> class="cmr-12">. As an example, in the</span>
<span class="obeylines-h"><span class="verb"><span <span class="obeylines-h"><code class="verb">tests/newslv</code></span> <span
class="cmtt-12">tests/newslv</span></span></span> <span class="cmr-12">code we define a new object of type </span><span class="obeylines-h"><code class="verb">amg_d_tlu_solver_type</code></span><span
class="cmr-12">code we define a new object of type </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">amg_d_tlu_solver_type</span></span></span><span
class="cmr-12">, and we</span> class="cmr-12">, and we</span>
<span <span
class="cmr-12">pass it as follows:</span> class="cmr-12">pass it as follows:</span>
<pre class="verbatim" id="verbatim-13"> <pre class="verbatim" id="verbatim-14">
&#x00A0;&#x00A0;!&#x00A0;sparse&#x00A0;matrix&#x00A0;and&#x00A0;preconditioner &#x00A0;&#x00A0;!&#x00A0;sparse&#x00A0;matrix&#x00A0;and&#x00A0;preconditioner
&#x00A0;&#x00A0;type(psb_dspmat_type)&#x00A0;::&#x00A0;a &#x00A0;&#x00A0;type(psb_dspmat_type)&#x00A0;::&#x00A0;a
&#x00A0;&#x00A0;type(amg_dprec_type)&#x00A0;&#x00A0;::&#x00A0;prec &#x00A0;&#x00A0;type(amg_dprec_type)&#x00A0;&#x00A0;::&#x00A0;prec
&#x00A0;&#x00A0;type(amg_d_tlu_solver_type)&#x00A0;::&#x00A0;tlusv &#x00A0;&#x00A0;type(amg_d_tlu_solver_type)&#x00A0;::&#x00A0;tlusv
...... ......
&#x00A0;&#x00A0;! &#x00A0;&#x00A0;!
&#x00A0;&#x00A0;!&#x00A0;&#x00A0;prepare&#x00A0;the&#x00A0;preconditioner:&#x00A0;an&#x00A0;ML&#x00A0;with&#x00A0;defaults,&#x00A0;but&#x00A0;with&#x00A0;TLU&#x00A0;solver&#x00A0;at &#x00A0;&#x00A0;!&#x00A0;&#x00A0;prepare&#x00A0;the&#x00A0;preconditioner:&#x00A0;an&#x00A0;ML&#x00A0;with&#x00A0;defaults,&#x00A0;but&#x00A0;with&#x00A0;TLU&#x00A0;solver&#x00A0;at
@ -230,6 +185,7 @@ class="cmr-12">pass it as follows:</span>
&#x00A0;&#x00A0;nlv&#x00A0;=&#x00A0;prec%get_nlevs() &#x00A0;&#x00A0;nlv&#x00A0;=&#x00A0;prec%get_nlevs()
&#x00A0;&#x00A0;call&#x00A0;prec%set(tlusv,&#x00A0;&#x00A0;&#x00A0;info,ilev=1,ilmax=max(1,nlv-1)) &#x00A0;&#x00A0;call&#x00A0;prec%set(tlusv,&#x00A0;&#x00A0;&#x00A0;info,ilev=1,ilmax=max(1,nlv-1))
&#x00A0;&#x00A0;call&#x00A0;prec%smoothers_build(a,desc_a,info) &#x00A0;&#x00A0;call&#x00A0;prec%smoothers_build(a,desc_a,info)
</pre> </pre>
<!--l. 107--><p class="nopar" > <!--l. 107--><p class="nopar" >
@ -241,6 +197,9 @@ class="cmr-12">pass it as follows:</span>
<!--l. 1--><div class="crosslinks"><p class="noindent"><span <!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlse7.html" ><span href="userhtmlse7.html" ><span

@ -34,8 +34,7 @@ class="cmr-12">Error Handling</span></h3>
<!--l. 5--><p class="noindent" ><span <!--l. 5--><p class="noindent" ><span
class="cmr-12">The error handling in AMG4PSBLAS is based on the PSBLAS error handling. Error</span> class="cmr-12">The error handling in AMG4PSBLAS is based on the PSBLAS error handling. Error</span>
<span <span
class="cmr-12">conditions are signaled via an integer argument </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">conditions are signaled via an integer argument </span><span class="obeylines-h"><code class="verb">info</code></span><span
class="cmtt-12">info</span></span></span><span
class="cmr-12">; whenever an error condition is</span> class="cmr-12">; whenever an error condition is</span>
<span <span
class="cmr-12">detected, an error trace stack is built by the library up to the top-level, user-callable</span> class="cmr-12">detected, an error trace stack is built by the library up to the top-level, user-callable</span>
@ -52,7 +51,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">20</span></a><span class="cmr-12">21</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">.</span> class="cmr-12">.</span>
@ -67,6 +66,9 @@ class="cmr-12">.</span>
<!--l. 1--><div class="crosslinks"><p class="noindent"><span <!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlse8.html" ><span href="userhtmlse8.html" ><span

@ -36,14 +36,18 @@ class="cmr-12">AMG4PSBLAS is freely distributable under the following copyright
<pre class="verbatim" id="verbatim-14"> <pre class="verbatim" id="verbatim-15">
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;AMG4PSBLAS&#x00A0;&#x00A0;version&#x00A0;1.0 &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;AMG4PSBLAS&#x00A0;&#x00A0;version&#x00A0;1.0
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Algebraic&#x00A0;MultiGrid&#x00A0;Preconditioners&#x00A0;Package &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Algebraic&#x00A0;MultiGrid&#x00A0;Preconditioners&#x00A0;Package
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;based&#x00A0;on&#x00A0;PSBLAS&#x00A0;(Parallel&#x00A0;Sparse&#x00A0;BLAS&#x00A0;version&#x00A0;3.7) &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;based&#x00A0;on&#x00A0;PSBLAS&#x00A0;(Parallel&#x00A0;Sparse&#x00A0;BLAS&#x00A0;version&#x00A0;3.7)
&#x00A0;&#x00A0;(C)&#x00A0;Copyright&#x00A0;2021 &#x00A0;&#x00A0;(C)&#x00A0;Copyright&#x00A0;2021
&#x00A0;&#x00A0;Pasqua&#x00A0;D&#8217;Ambra&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;IAC-CNR,&#x00A0;IT &#x00A0;&#x00A0;Pasqua&#x00A0;D&#8217;Ambra&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;IAC-CNR,&#x00A0;IT
&#x00A0;&#x00A0;Fabio&#x00A0;Durastante&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;University&#x00A0;of&#x00A0;Pisa&#x00A0;and&#x00A0;IAC-CNR,&#x00A0;IT &#x00A0;&#x00A0;Fabio&#x00A0;Durastante&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;University&#x00A0;of&#x00A0;Pisa&#x00A0;and&#x00A0;IAC-CNR,&#x00A0;IT
&#x00A0;&#x00A0;Salvatore&#x00A0;Filippone&#x00A0;&#x00A0;&#x00A0;&#x00A0;University&#x00A0;of&#x00A0;Rome&#x00A0;Tor-Vergata&#x00A0;and&#x00A0;IAC-CNR,&#x00A0;IT &#x00A0;&#x00A0;Salvatore&#x00A0;Filippone&#x00A0;&#x00A0;&#x00A0;&#x00A0;University&#x00A0;of&#x00A0;Rome&#x00A0;Tor-Vergata&#x00A0;and&#x00A0;IAC-CNR,&#x00A0;IT
&#x00A0;&#x00A0;Redistribution&#x00A0;and&#x00A0;use&#x00A0;in&#x00A0;source&#x00A0;and&#x00A0;binary&#x00A0;forms,&#x00A0;with&#x00A0;or&#x00A0;without &#x00A0;&#x00A0;Redistribution&#x00A0;and&#x00A0;use&#x00A0;in&#x00A0;source&#x00A0;and&#x00A0;binary&#x00A0;forms,&#x00A0;with&#x00A0;or&#x00A0;without
&#x00A0;&#x00A0;modification,&#x00A0;are&#x00A0;permitted&#x00A0;provided&#x00A0;that&#x00A0;the&#x00A0;following&#x00A0;conditions &#x00A0;&#x00A0;modification,&#x00A0;are&#x00A0;permitted&#x00A0;provided&#x00A0;that&#x00A0;the&#x00A0;following&#x00A0;conditions
&#x00A0;&#x00A0;are&#x00A0;met: &#x00A0;&#x00A0;are&#x00A0;met:
@ -55,6 +59,7 @@ class="cmr-12">AMG4PSBLAS is freely distributable under the following copyright
&#x00A0;&#x00A0;&#x00A0;&#x00A0;3.&#x00A0;The&#x00A0;name&#x00A0;of&#x00A0;the&#x00A0;MLD2P4&#x00A0;group&#x00A0;or&#x00A0;the&#x00A0;names&#x00A0;of&#x00A0;its&#x00A0;contributors&#x00A0;may &#x00A0;&#x00A0;&#x00A0;&#x00A0;3.&#x00A0;The&#x00A0;name&#x00A0;of&#x00A0;the&#x00A0;MLD2P4&#x00A0;group&#x00A0;or&#x00A0;the&#x00A0;names&#x00A0;of&#x00A0;its&#x00A0;contributors&#x00A0;may
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;not&#x00A0;be&#x00A0;used&#x00A0;to&#x00A0;endorse&#x00A0;or&#x00A0;promote&#x00A0;products&#x00A0;derived&#x00A0;from&#x00A0;this &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;not&#x00A0;be&#x00A0;used&#x00A0;to&#x00A0;endorse&#x00A0;or&#x00A0;promote&#x00A0;products&#x00A0;derived&#x00A0;from&#x00A0;this
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;software&#x00A0;without&#x00A0;specific&#x00A0;written&#x00A0;permission. &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;software&#x00A0;without&#x00A0;specific&#x00A0;written&#x00A0;permission.
&#x00A0;&#x00A0;THIS&#x00A0;SOFTWARE&#x00A0;IS&#x00A0;PROVIDED&#x00A0;BY&#x00A0;THE&#x00A0;COPYRIGHT&#x00A0;HOLDERS&#x00A0;AND&#x00A0;CONTRIBUTORS &#x00A0;&#x00A0;THIS&#x00A0;SOFTWARE&#x00A0;IS&#x00A0;PROVIDED&#x00A0;BY&#x00A0;THE&#x00A0;COPYRIGHT&#x00A0;HOLDERS&#x00A0;AND&#x00A0;CONTRIBUTORS
&#x00A0;&#x00A0;&#8216;&#8216;AS&#x00A0;IS&#8217;&#8217;&#x00A0;AND&#x00A0;ANY&#x00A0;EXPRESS&#x00A0;OR&#x00A0;IMPLIED&#x00A0;WARRANTIES,&#x00A0;INCLUDING,&#x00A0;BUT&#x00A0;NOT&#x00A0;LIMITED &#x00A0;&#x00A0;&#8216;&#8216;AS&#x00A0;IS&#8217;&#8217;&#x00A0;AND&#x00A0;ANY&#x00A0;EXPRESS&#x00A0;OR&#x00A0;IMPLIED&#x00A0;WARRANTIES,&#x00A0;INCLUDING,&#x00A0;BUT&#x00A0;NOT&#x00A0;LIMITED
&#x00A0;&#x00A0;TO,&#x00A0;THE&#x00A0;IMPLIED&#x00A0;WARRANTIES&#x00A0;OF&#x00A0;MERCHANTABILITY&#x00A0;AND&#x00A0;FITNESS&#x00A0;FOR&#x00A0;A&#x00A0;PARTICULAR &#x00A0;&#x00A0;TO,&#x00A0;THE&#x00A0;IMPLIED&#x00A0;WARRANTIES&#x00A0;OF&#x00A0;MERCHANTABILITY&#x00A0;AND&#x00A0;FITNESS&#x00A0;FOR&#x00A0;A&#x00A0;PARTICULAR
@ -66,6 +71,7 @@ class="cmr-12">AMG4PSBLAS is freely distributable under the following copyright
&#x00A0;&#x00A0;CONTRACT,&#x00A0;STRICT&#x00A0;LIABILITY,&#x00A0;OR&#x00A0;TORT&#x00A0;(INCLUDING&#x00A0;NEGLIGENCE&#x00A0;OR&#x00A0;OTHERWISE) &#x00A0;&#x00A0;CONTRACT,&#x00A0;STRICT&#x00A0;LIABILITY,&#x00A0;OR&#x00A0;TORT&#x00A0;(INCLUDING&#x00A0;NEGLIGENCE&#x00A0;OR&#x00A0;OTHERWISE)
&#x00A0;&#x00A0;ARISING&#x00A0;IN&#x00A0;ANY&#x00A0;WAY&#x00A0;OUT&#x00A0;OF&#x00A0;THE&#x00A0;USE&#x00A0;OF&#x00A0;THIS&#x00A0;SOFTWARE,&#x00A0;EVEN&#x00A0;IF&#x00A0;ADVISED&#x00A0;OF&#x00A0;THE &#x00A0;&#x00A0;ARISING&#x00A0;IN&#x00A0;ANY&#x00A0;WAY&#x00A0;OUT&#x00A0;OF&#x00A0;THE&#x00A0;USE&#x00A0;OF&#x00A0;THIS&#x00A0;SOFTWARE,&#x00A0;EVEN&#x00A0;IF&#x00A0;ADVISED&#x00A0;OF&#x00A0;THE
&#x00A0;&#x00A0;POSSIBILITY&#x00A0;OF&#x00A0;SUCH&#x00A0;DAMAGE. &#x00A0;&#x00A0;POSSIBILITY&#x00A0;OF&#x00A0;SUCH&#x00A0;DAMAGE.
</pre> </pre>
<!--l. 44--><p class="nopar" > <!--l. 44--><p class="nopar" >
@ -78,14 +84,20 @@ class="cmr-12">abide by its terms:</span>
<pre class="verbatim" id="verbatim-15"> <pre class="verbatim" id="verbatim-16">
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;MLD2P4&#x00A0;&#x00A0;version&#x00A0;2.2 &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;MLD2P4&#x00A0;&#x00A0;version&#x00A0;2.2
&#x00A0;&#x00A0;MultiLevel&#x00A0;Domain&#x00A0;Decomposition&#x00A0;Parallel&#x00A0;Preconditioners&#x00A0;Package &#x00A0;&#x00A0;MultiLevel&#x00A0;Domain&#x00A0;Decomposition&#x00A0;Parallel&#x00A0;Preconditioners&#x00A0;Package
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;based&#x00A0;on&#x00A0;PSBLAS&#x00A0;(Parallel&#x00A0;Sparse&#x00A0;BLAS&#x00A0;version&#x00A0;3.5) &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;based&#x00A0;on&#x00A0;PSBLAS&#x00A0;(Parallel&#x00A0;Sparse&#x00A0;BLAS&#x00A0;version&#x00A0;3.5)
&#x00A0;&#x00A0;(C)&#x00A0;Copyright&#x00A0;2008-2018 &#x00A0;&#x00A0;(C)&#x00A0;Copyright&#x00A0;2008-2018
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Salvatore&#x00A0;Filippone &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Salvatore&#x00A0;Filippone
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Pasqua&#x00A0;D&#8217;Ambra &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Pasqua&#x00A0;D&#8217;Ambra
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Daniela&#x00A0;di&#x00A0;Serafino &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Daniela&#x00A0;di&#x00A0;Serafino
&#x00A0;&#x00A0;Redistribution&#x00A0;and&#x00A0;use&#x00A0;in&#x00A0;source&#x00A0;and&#x00A0;binary&#x00A0;forms,&#x00A0;with&#x00A0;or&#x00A0;without &#x00A0;&#x00A0;Redistribution&#x00A0;and&#x00A0;use&#x00A0;in&#x00A0;source&#x00A0;and&#x00A0;binary&#x00A0;forms,&#x00A0;with&#x00A0;or&#x00A0;without
&#x00A0;&#x00A0;modification,&#x00A0;are&#x00A0;permitted&#x00A0;provided&#x00A0;that&#x00A0;the&#x00A0;following&#x00A0;conditions &#x00A0;&#x00A0;modification,&#x00A0;are&#x00A0;permitted&#x00A0;provided&#x00A0;that&#x00A0;the&#x00A0;following&#x00A0;conditions
&#x00A0;&#x00A0;are&#x00A0;met: &#x00A0;&#x00A0;are&#x00A0;met:
@ -97,6 +109,7 @@ class="cmr-12">abide by its terms:</span>
&#x00A0;&#x00A0;&#x00A0;&#x00A0;3.&#x00A0;The&#x00A0;name&#x00A0;of&#x00A0;the&#x00A0;MLD2P4&#x00A0;group&#x00A0;or&#x00A0;the&#x00A0;names&#x00A0;of&#x00A0;its&#x00A0;contributors&#x00A0;may &#x00A0;&#x00A0;&#x00A0;&#x00A0;3.&#x00A0;The&#x00A0;name&#x00A0;of&#x00A0;the&#x00A0;MLD2P4&#x00A0;group&#x00A0;or&#x00A0;the&#x00A0;names&#x00A0;of&#x00A0;its&#x00A0;contributors&#x00A0;may
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;not&#x00A0;be&#x00A0;used&#x00A0;to&#x00A0;endorse&#x00A0;or&#x00A0;promote&#x00A0;products&#x00A0;derived&#x00A0;from&#x00A0;this &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;not&#x00A0;be&#x00A0;used&#x00A0;to&#x00A0;endorse&#x00A0;or&#x00A0;promote&#x00A0;products&#x00A0;derived&#x00A0;from&#x00A0;this
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;software&#x00A0;without&#x00A0;specific&#x00A0;written&#x00A0;permission. &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;software&#x00A0;without&#x00A0;specific&#x00A0;written&#x00A0;permission.
&#x00A0;&#x00A0;THIS&#x00A0;SOFTWARE&#x00A0;IS&#x00A0;PROVIDED&#x00A0;BY&#x00A0;THE&#x00A0;COPYRIGHT&#x00A0;HOLDERS&#x00A0;AND&#x00A0;CONTRIBUTORS &#x00A0;&#x00A0;THIS&#x00A0;SOFTWARE&#x00A0;IS&#x00A0;PROVIDED&#x00A0;BY&#x00A0;THE&#x00A0;COPYRIGHT&#x00A0;HOLDERS&#x00A0;AND&#x00A0;CONTRIBUTORS
&#x00A0;&#x00A0;&#8216;&#8216;AS&#x00A0;IS&#8217;&#8217;&#x00A0;AND&#x00A0;ANY&#x00A0;EXPRESS&#x00A0;OR&#x00A0;IMPLIED&#x00A0;WARRANTIES,&#x00A0;INCLUDING,&#x00A0;BUT&#x00A0;NOT&#x00A0;LIMITED &#x00A0;&#x00A0;&#8216;&#8216;AS&#x00A0;IS&#8217;&#8217;&#x00A0;AND&#x00A0;ANY&#x00A0;EXPRESS&#x00A0;OR&#x00A0;IMPLIED&#x00A0;WARRANTIES,&#x00A0;INCLUDING,&#x00A0;BUT&#x00A0;NOT&#x00A0;LIMITED
&#x00A0;&#x00A0;TO,&#x00A0;THE&#x00A0;IMPLIED&#x00A0;WARRANTIES&#x00A0;OF&#x00A0;MERCHANTABILITY&#x00A0;AND&#x00A0;FITNESS&#x00A0;FOR&#x00A0;A&#x00A0;PARTICULAR &#x00A0;&#x00A0;TO,&#x00A0;THE&#x00A0;IMPLIED&#x00A0;WARRANTIES&#x00A0;OF&#x00A0;MERCHANTABILITY&#x00A0;AND&#x00A0;FITNESS&#x00A0;FOR&#x00A0;A&#x00A0;PARTICULAR
@ -108,6 +121,7 @@ class="cmr-12">abide by its terms:</span>
&#x00A0;&#x00A0;CONTRACT,&#x00A0;STRICT&#x00A0;LIABILITY,&#x00A0;OR&#x00A0;TORT&#x00A0;(INCLUDING&#x00A0;NEGLIGENCE&#x00A0;OR&#x00A0;OTHERWISE) &#x00A0;&#x00A0;CONTRACT,&#x00A0;STRICT&#x00A0;LIABILITY,&#x00A0;OR&#x00A0;TORT&#x00A0;(INCLUDING&#x00A0;NEGLIGENCE&#x00A0;OR&#x00A0;OTHERWISE)
&#x00A0;&#x00A0;ARISING&#x00A0;IN&#x00A0;ANY&#x00A0;WAY&#x00A0;OUT&#x00A0;OF&#x00A0;THE&#x00A0;USE&#x00A0;OF&#x00A0;THIS&#x00A0;SOFTWARE,&#x00A0;EVEN&#x00A0;IF&#x00A0;ADVISED&#x00A0;OF&#x00A0;THE &#x00A0;&#x00A0;ARISING&#x00A0;IN&#x00A0;ANY&#x00A0;WAY&#x00A0;OUT&#x00A0;OF&#x00A0;THE&#x00A0;USE&#x00A0;OF&#x00A0;THIS&#x00A0;SOFTWARE,&#x00A0;EVEN&#x00A0;IF&#x00A0;ADVISED&#x00A0;OF&#x00A0;THE
&#x00A0;&#x00A0;POSSIBILITY&#x00A0;OF&#x00A0;SUCH&#x00A0;DAMAGE. &#x00A0;&#x00A0;POSSIBILITY&#x00A0;OF&#x00A0;SUCH&#x00A0;DAMAGE.
</pre> </pre>
<!--l. 87--><p class="nopar" > <span <!--l. 87--><p class="nopar" > <span
class="cmr-12">AMG4PSBLAS is distributed together with (a small part of) the graph-matching</span> class="cmr-12">AMG4PSBLAS is distributed together with (a small part of) the graph-matching</span>
@ -127,7 +141,7 @@ class="cmr-12">here.</span>
<pre class="verbatim" id="verbatim-16"> <pre class="verbatim" id="verbatim-17">
//&#x00A0;*********************************************************************** //&#x00A0;***********************************************************************
// //
//&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;MatchboxP:&#x00A0;A&#x00A0;C++&#x00A0;library&#x00A0;for&#x00A0;approximate&#x00A0;weighted&#x00A0;matching //&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;MatchboxP:&#x00A0;A&#x00A0;C++&#x00A0;library&#x00A0;for&#x00A0;approximate&#x00A0;weighted&#x00A0;matching
@ -179,6 +193,9 @@ class="cmr-12">here.</span>
<!--l. 1--><div class="crosslinks"><p class="noindent"><span <!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlse9.html" ><span href="userhtmlse9.html" ><span

@ -34,7 +34,7 @@ class="cmr-12">Contributor Covenant Code of Conduct</span></h3>
<div class="paragraphTOCS"> <div class="paragraphTOCS">
</div> </div>
<!--l. 5--><p class="noindent" ><span class="paragraphHead"><a <!--l. 5--><p class="noindent" ><span class="paragraphHead"><a
id="x30-35000B"></a><span id="x30-35000"></a><span
class="cmbx-12">Our Pledge</span></span> class="cmbx-12">Our Pledge</span></span>
<span <span
class="cmr-12">We as members, contributors, and leaders pledge to make participation in</span> class="cmr-12">We as members, contributors, and leaders pledge to make participation in</span>
@ -55,52 +55,62 @@ class="cmr-12">of behavior that contributes to a positive environment for our co
<span <span
class="cmr-12">include:</span> class="cmr-12">include:</span>
<ul class="itemize1"> <ul class="itemize1">
<li class="itemize"><span <li class="itemize">
<!--l. 18--><p class="noindent" ><span
class="cmr-12">Demonstrating empathy and kindness toward other people</span> class="cmr-12">Demonstrating empathy and kindness toward other people</span>
</li> </li>
<li class="itemize"><span <li class="itemize">
<!--l. 19--><p class="noindent" ><span
class="cmr-12">Being respectful of differing opinions, viewpoints, and experiences</span> class="cmr-12">Being respectful of differing opinions, viewpoints, and experiences</span>
</li> </li>
<li class="itemize"><span <li class="itemize">
<!--l. 20--><p class="noindent" ><span
class="cmr-12">Giving and gracefully accepting constructive feedback</span> class="cmr-12">Giving and gracefully accepting constructive feedback</span>
</li> </li>
<li class="itemize"><span <li class="itemize">
<!--l. 21--><p class="noindent" ><span
class="cmr-12">Accepting responsibility and apologizing to those affected by our mistakes,</span> class="cmr-12">Accepting responsibility and apologizing to those affected by our mistakes,</span>
<span <span
class="cmr-12">and learning from the experience</span> class="cmr-12">and learning from the experience</span>
</li> </li>
<li class="itemize"><span <li class="itemize">
<!--l. 23--><p class="noindent" ><span
class="cmr-12">Focusing on what is best not just for us as individuals, but for the overall</span> class="cmr-12">Focusing on what is best not just for us as individuals, but for the overall</span>
<span <span
class="cmr-12">community</span></li></ul> class="cmr-12">community</span></li></ul>
<!--l. 26--><p class="noindent" ><span <!--l. 26--><p class="noindent" ><span
class="cmr-12">Examples of unacceptable behavior include:</span> class="cmr-12">Examples of unacceptable behavior include:</span>
<ul class="itemize1"> <ul class="itemize1">
<li class="itemize"><span <li class="itemize">
<!--l. 28--><p class="noindent" ><span
class="cmr-12">The use of sexualized language or imagery, and sexual attention or advances</span> class="cmr-12">The use of sexualized language or imagery, and sexual attention or advances</span>
<span <span
class="cmr-12">of any kind</span> class="cmr-12">of any kind</span>
</li> </li>
<li class="itemize"><span <li class="itemize">
<!--l. 30--><p class="noindent" ><span
class="cmr-12">Trolling, insulting or derogatory comments, and personal or political attacks</span> class="cmr-12">Trolling, insulting or derogatory comments, and personal or political attacks</span>
</li> </li>
<li class="itemize"><span <li class="itemize">
<!--l. 31--><p class="noindent" ><span
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">
<!--l. 32--><p class="noindent" ><span
class="cmr-12">Publishing others&#8217; 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>
<li class="itemize"><span <li class="itemize">
<!--l. 34--><p class="noindent" ><span
class="cmr-12">Other conduct which could reasonably be considered inappropriate in a</span> class="cmr-12">Other conduct which could reasonably be considered inappropriate in a</span>
<span <span
class="cmr-12">professional setting</span></li></ul> class="cmr-12">professional setting</span></li></ul>
<!--l. 38--><p class="noindent" ><span class="paragraphHead"><a <!--l. 38--><p class="noindent" ><span class="paragraphHead"><a
id="x30-36000B"></a><span id="x30-36000"></a><span
class="cmbx-12">Enforcement Responsibilities</span></span> class="cmbx-12">Enforcement Responsibilities</span></span>
<span <span
class="cmr-12">Community leaders are responsible for clarifying and enforcing our standards of</span> class="cmr-12">Community leaders are responsible for clarifying and enforcing our standards of</span>
@ -127,7 +137,7 @@ class="cmr-12">appointed representative at an online or offline event. Enforceme
<span <span
class="cmr-12">abusive, harassing, or otherwise unacceptable behavior may be reported to the</span> class="cmr-12">abusive, harassing, or otherwise unacceptable behavior may be reported to the</span>
<span <span
class="cmr-12">community leaders responsible for enforcement at </span><a class="cmr-12">community leaders responsible for enforcement at </span><a
href="mailto:eocoe@na.iac.cnr.it" ><span href="mailto:eocoe@na.iac.cnr.it" ><span
class="cmr-12">eocoe@na.iac.cnr.it</span></a><span class="cmr-12">eocoe@na.iac.cnr.it</span></a><span
class="cmr-12">. All</span> class="cmr-12">. All</span>
@ -137,8 +147,11 @@ class="cmr-12">complaints will be reviewed and investigated promptly and fairly.
class="cmr-12">leaders are obligated to respect the privacy and security of the reporter of any</span> class="cmr-12">leaders are obligated to respect the privacy and security of the reporter of any</span>
<span <span
class="cmr-12">incident.</span> class="cmr-12">incident.</span>
<!--l. 61--><p class="noindent" ><span class="paragraphHead"><a <!--l. 61--><p class="noindent" ><span class="paragraphHead"><a
id="x30-37000B"></a><span id="x30-37000"></a><span
class="cmbx-12">Enforcement Guidelines</span></span> class="cmbx-12">Enforcement Guidelines</span></span>
<span <span
class="cmr-12">Community leaders will follow these Community Impact Guidelines in</span> class="cmr-12">Community leaders will follow these Community Impact Guidelines in</span>
@ -147,17 +160,15 @@ class="cmr-12">determining the consequences for any action they deem in violatio
<span <span
class="cmr-12">Conduct:</span> class="cmr-12">Conduct:</span>
<ol class="enumerate1" > <ol class="enumerate1" >
<li <li
class="enumerate" id="x30-37002x1"><span class="enumerate" id="x30-37002x1">
<!--l. 65--><p class="noindent" ><span
class="cmr-12">Correction</span> class="cmr-12">Correction</span>
<!--l. 67--><p class="noindent" ><span <!--l. 67--><p class="noindent" ><span
class="cmti-12">Community Impact: </span><span class="cmti-12">Community Impact: </span><span
class="cmr-12">Use of inappropriate language or other behavior deemed</span> class="cmr-12">Use of inappropriate language or other behavior deemed</span>
<span <span
class="cmr-12">unprofessional or unwelcome in the community.</span> class="cmr-12">unprofessional or unwelcome in the community.</span>
<!--l. 70--><p class="noindent" ><span <!--l. 70--><p class="noindent" ><span
class="cmti-12">Consequence: </span><span class="cmti-12">Consequence: </span><span
class="cmr-12">A private, written warning from community leaders, providing</span> class="cmr-12">A private, written warning from community leaders, providing</span>
@ -166,8 +177,9 @@ class="cmr-12">clarity around the nature of the violation and an explanation of
<span <span
class="cmr-12">behavior was inappropriate. A public apology may be requested.</span> class="cmr-12">behavior was inappropriate. A public apology may be requested.</span>
</li> </li>
<li <li
class="enumerate" id="x30-37004x2"><span class="enumerate" id="x30-37004x2">
<!--l. 73--><p class="noindent" ><span
class="cmr-12">Warning</span> class="cmr-12">Warning</span>
<!--l. 75--><p class="noindent" ><span <!--l. 75--><p class="noindent" ><span
class="cmti-12">Community Impact: </span><span class="cmti-12">Community Impact: </span><span
@ -186,8 +198,9 @@ class="cmr-12">channels like social media. Violating these terms may lead to a t
<span <span
class="cmr-12">or permanent ban.</span> class="cmr-12">or permanent ban.</span>
</li> </li>
<li <li
class="enumerate" id="x30-37006x3"><span class="enumerate" id="x30-37006x3">
<!--l. 84--><p class="noindent" ><span
class="cmr-12">Temporary Ban</span> class="cmr-12">Temporary Ban</span>
<!--l. 86--><p class="noindent" ><span <!--l. 86--><p class="noindent" ><span
class="cmti-12">Community Impact: </span><span class="cmti-12">Community Impact: </span><span
@ -205,9 +218,13 @@ class="cmr-12">public or private interaction with the people involved, including
class="cmr-12">interaction with those enforcing the Code of Conduct, is allowed during this</span> class="cmr-12">interaction with those enforcing the Code of Conduct, is allowed during this</span>
<span <span
class="cmr-12">period. Violating these terms may lead to a permanent ban.</span> class="cmr-12">period. Violating these terms may lead to a permanent ban.</span>
</li> </li>
<li <li
class="enumerate" id="x30-37008x4"><span class="enumerate" id="x30-37008x4">
<!--l. 94--><p class="noindent" ><span
class="cmr-12">Permanent Ban</span> class="cmr-12">Permanent Ban</span>
<!--l. 96--><p class="noindent" ><span <!--l. 96--><p class="noindent" ><span
class="cmti-12">Community Impact: </span><span class="cmti-12">Community Impact: </span><span
@ -222,12 +239,12 @@ class="cmr-12">A permanent ban from any sort of public interaction within</span>
<span <span
class="cmr-12">the community.</span></li></ol> class="cmr-12">the community.</span></li></ol>
<!--l. 104--><p class="noindent" ><span class="paragraphHead"><a <!--l. 104--><p class="noindent" ><span class="paragraphHead"><a
id="x30-38000B"></a><span id="x30-38000"></a><span
class="cmbx-12">Attribution</span></span> class="cmbx-12">Attribution</span></span>
<span <span
class="cmr-12">This Code of Conduct is adapted from the Contributor Covenant, version 2.0,</span> class="cmr-12">This Code of Conduct is adapted from the Contributor Covenant, version 2.0,</span>
<span <span
class="cmr-12">available at </span><a class="cmr-12">available at </span><a
href="https://www.contributor-covenant.org/version/2/0/code_of_conduct.html" ><span href="https://www.contributor-covenant.org/version/2/0/code_of_conduct.html" ><span
class="cmr-12">https://www.contributor-covenant.org/version/2/0/code</span><span class="cmr-12">https://www.contributor-covenant.org/version/2/0/code</span><span
class="cmr-12">_of</span><span class="cmr-12">_of</span><span
@ -238,7 +255,7 @@ class="cmr-12">. Community Impact Guidelines were inspired by Mozilla&#8217;s co
<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
class="cmr-12">the FAQ at </span><a class="cmr-12">the FAQ at </span><a
href="https://www.contributor-covenant.org/faq" ><span href="https://www.contributor-covenant.org/faq" ><span
class="cmr-12">https://www.contributor-covenant.org/faq</span></a><span class="cmr-12">https://www.contributor-covenant.org/faq</span></a><span
class="cmr-12">. Translations are available at</span> class="cmr-12">. Translations are available at</span>
@ -255,6 +272,13 @@ class="cmr-12">.</span>
<!--l. 152--><p class="indent" >

@ -33,29 +33,29 @@ class="cmr-12">The following base libraries are needed:</span>
<dl class="description"><dt class="description"> <dl class="description"><dt class="description">
<span <span
class="cmbx-12">BLAS</span> </dt><dd class="cmbx-12">BLAS</span> </dt><dd
class="description"><span class="cite"><span class="description">
<!--l. 34--><p class="noindent" ><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">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#Xblas2"><span href="userhtmlli5.html#Xblas2"><span
class="cmr-12">18</span></a><span class="cmr-12">19</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">25</span></a><span class="cmr-12">26</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
class="cmr-12">vendor version is available for a given platform, the ATLAS software</span>
<span <span
class="cmr-12">(</span><a class="cmr-12">vendor version is available for a given platform, the ATLAS software (</span>
<a
href="http://math-atlas.sourceforge.net" ><span href="http://math-atlas.sourceforge.net" ><span
class="cmr-12">math-atlas.sourceforge .net</span></a><span class="cmr-12">math-atlas.sourceforge .net</span></a><span
class="cmr-12">) may be employed. The reference BLAS from</span> class="cmr-12">) may be employed. The reference BLAS from</span>
<span <span
class="cmr-12">Netlib (</span><a class="cmr-12">Netlib ( </span><a
href="http://www.netlib.org/blas" ><span href="http://www.netlib.org/blas" ><span
class="cmr-12">www.netlib.org/blas</span></a><span class="cmr-12">www.netlib.org/blas</span></a><span
class="cmr-12">) are meant to define the standard behaviour of</span> class="cmr-12">) are meant to define the standard behaviour of</span>
@ -74,7 +74,7 @@ class="cmr-12">our experience is that configuring ATLAS for building full LAPACK
<span <span
class="cmr-12">not always work in the expected way. Our advice is first to download the</span> class="cmr-12">not always work in the expected way. Our advice is first to download the</span>
<span <span
class="cmr-12">LAPACK tarfile from </span><a class="cmr-12">LAPACK tarfile from </span><a
href="http://www.netlib.org/lapack" ><span href="http://www.netlib.org/lapack" ><span
class="cmr-12">www.netlib.org/lapack</span></a> <span class="cmr-12">www.netlib.org/lapack</span></a> <span
class="cmr-12">and install it independently of</span> class="cmr-12">and install it independently of</span>
@ -87,14 +87,15 @@ class="cmr-12">library.</span>
</dd><dt class="description"> </dd><dt class="description">
<span <span
class="cmbx-12">MPI</span> </dt><dd class="cmbx-12">MPI</span> </dt><dd
class="description"><span class="cite"><span class="description">
<!--l. 51--><p class="noindent" ><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">24</span></a><span class="cmr-12">25</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">30</span></a><span class="cmr-12">32</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
@ -102,22 +103,26 @@ class="cmr-12">systems.</span>
</dd><dt class="description"> </dd><dt class="description">
<span <span
class="cmbx-12">PSBLAS</span> </dt><dd class="cmbx-12">PSBLAS</span> </dt><dd
class="description"><span class="cite"><span class="description">
<!--l. 53--><p class="noindent" ><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">20</span></a><span class="cmr-12">21</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">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">Parallel Sparse BLAS (PSBLAS) is available from</span> class="cmr-12">Parallel Sparse</span>
<a <span
class="cmr-12">BLAS (PSBLAS) is available from </span><a
href="https://psctoolkit.github.io/products/psblas/" ><span href="https://psctoolkit.github.io/products/psblas/" ><span
class="cmr-12">psctoolkit.github.io/ products/psblas/</span></a><span class="cmr-12">psctoolkit.github.io/ products/psblas/</span></a><span
class="cmr-12">; version 3.7.0 (or later) is required.</span> class="cmr-12">;</span>
<span
class="cmr-12">version 3.7.0 (or later) is required. Indeed, all the prerequisites listed so far</span>
<span <span
class="cmr-12">Indeed, all the prerequisites listed so far are also prerequisites of PSBLAS.</span></dd></dl> class="cmr-12">are also prerequisites of PSBLAS.</span></dd></dl>
<!--l. 60--><p class="noindent" ><span <!--l. 60--><p class="noindent" ><span
class="cmr-12">Please note that the four previous libraries must have Fortran interfaces compatible with</span> class="cmr-12">Please note that the four previous libraries must have Fortran interfaces compatible with</span>
<span <span
@ -127,27 +132,26 @@ class="cmr-12">compiler being used for AMG4PSBLAS.</span>
<!--l. 64--><p class="indent" > <span <!--l. 64--><p class="indent" > <span
class="cmr-12">If you want to use the PSBLAS support for NVIDIA GPUs, you will also</span> class="cmr-12">If you want to use the PSBLAS support for NVIDIA GPUs, you will also</span>
<span <span
class="cmr-12">need:</span> class="cmr-12">need a working version of the CUDA Toolkit that is compatible with the</span>
<dl class="description"><dt class="description">
<span <span
class="cmbx-12">PSBLAS-EXT</span> </dt><dd class="cmr-12">compiler choice made to compile PSBLAS and AMG4PSBLAS. After that</span>
class="description"><span <span
class="cmr-12">Parallel Sparse BLAS (PSBLAS) Extensions, available from</span> class="cmr-12">you will need to have configured and compiled the PSBLAS library with the</span>
<a <span
href="https://psctoolkit.github.io/products/psblasext/" ><span class="cmr-12">options:</span>
class="cmr-12">psctoolkit.github.io/products/psblasext/</span></a><span
class="cmr-12">; version 1.3.0 (or later).</span>
</dd><dt class="description">
<pre class="verbatim" id="verbatim-2">
./configure&#x00A0;--enable-cuda&#x00A0;--with-cudadir=${CUDA_HOME}&#x00A0;--with-cudacc=xx,yy,zz&#x00A0;&#x00A0;
</pre>
<!--l. 89--><p class="nopar" > <span
class="cmr-12">Previous versions required you to have the auxiliary libraries SPGPU and</span>
<span
class="cmr-12">PSBLAS-EXT compiled, this is no longer necessary because they have been integrated</span>
<span
class="cmr-12">into PSBLAS and are compiled by activating the previous flags during configuration.</span>
<span <span
class="cmbx-12">SPGPU</span> </dt><dd
class="description"><span
class="cmr-12">Sparse CUDA kernels for NVIDIA GPUs; available from GitHub, see</span>
<span
class="cmr-12">also </span><a
href="https://psctoolkit.github.io/products/psblasext/" ><span
class="cmr-12">psctoolkit.github.io/products/psblasext/</span></a><span
class="cmr-12">.</span></dd></dl>
<!--l. 76--><p class="noindent" ><span
class="cmr-12">See also Sec</span><span class="cmr-12">See also Sec</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlsu7.html#x16-150004.2"><span href="userhtmlsu7.html#x16-150004.2"><span
@ -156,7 +160,7 @@ class="cmr-12">.</span>
<!--l. 79--><div class="crosslinks"><p class="noindent"><span <!--l. 96--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu2.html" ><span href="userhtmlsu2.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -167,6 +171,6 @@ class="cmr-12">] [</span><a
href="userhtmlse3.html#userhtmlsu1.html" ><span href="userhtmlse3.html#userhtmlsu1.html" ><span
class="cmr-12">up</span></a><span class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<!--l. 79--><p class="indent" > <a <!--l. 96--><p class="indent" > <a
id="tailuserhtmlsu1.html"></a> id="tailuserhtmlsu1.html"></a>
</body></html> </body></html>

@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"> "http://www.w3.org/TR/html4/loose.dtd">
<html > <html >
<head><title>Method hierarchy_build</title> <head><title>Method hierarchy_uild</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (https://tug.org/tex4ht/)"> <meta name="generator" content="TeX4ht (https://tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (https://tug.org/tex4ht/)"> <meta name="originator" content="TeX4ht (https://tug.org/tex4ht/)">
@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 685--><div class="crosslinks"><p class="noindent"><span <!--l. 708--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu11.html" ><span href="userhtmlsu11.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -34,138 +34,91 @@ class="cmr-12">Method hierarchy</span><span
class="cmr-12">_build</span></h4> class="cmr-12">_build</span></h4>
<div class="center" <div class="center"
> >
<!--l. 687--><p class="noindent" > <!--l. 710--><p class="noindent" >
<!--l. 688--><p class="noindent" ><span class="lstinline"></span><span <!--l. 711--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">hierarchy_build</span><span style="color:#000000">(</span><span style="color:#000000">a</span><span style="color:#000000">,</span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">)</span></code><br />
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
class="cmtt-12">%</span><span
class="cmtt-12">hierarchy_build</span><span
class="cmtt-12">(</span><span
class="cmtt-12">a</span><span
class="cmtt-12">,</span><span
class="cmtt-12">desc_a</span><span
class="cmtt-12">,</span><span
class="cmtt-12">info</span><span
class="cmtt-12">)</span><br />
</div> </div>
<!--l. 691--><p class="noindent" ><span <!--l. 714--><p class="noindent" ><span
class="cmr-12">This method builds the hierarchy of matrices and restriction/prolongation operators for</span> class="cmr-12">This method builds the hierarchy of matrices and restriction/prolongation operators for</span>
<span <span
class="cmr-12">the multilevel preconditioner </span><span class="lstinline"></span><span class="cmr-12">the multilevel preconditioner </span><code class="lstinline"><span style="color:#000000">p</span></code><span
class="cmtt-12">p</span><span
class="cmr-12">, according to the requirements made by the user</span> class="cmr-12">, according to the requirements made by the user</span>
<span <span
class="cmr-12">through the methods </span><span class="lstinline"></span><span class="cmr-12">through the methods </span><code class="lstinline"><span style="color:#000000">init</span></code> <span
class="cmtt-12">init</span> <span class="cmr-12">and </span><code class="lstinline"><span style="color:#000000">set</span></code><span
class="cmr-12">and </span><span class="lstinline"></span><span
class="cmtt-12">set</span><span
class="cmr-12">.</span> class="cmr-12">.</span>
<!--l. 696--><p class="noindent" ><span <!--l. 719--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-11" class="tabular" <div class="tabular"> <table id="TBL-12" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-11-1g"><col ><colgroup id="TBL-12-1g"><col
id="TBL-11-1"><col id="TBL-12-1"><col
id="TBL-11-2"></colgroup><tr id="TBL-12-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-11-1-"><td style="white-space:normal; text-align:left;" id="TBL-11-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. 699--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 722--><p class="noindent" ><code class="lstinline"><span style="color:#000000">a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-12-1-2"
class="cmtt-12">a</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-1-2" class="td11"> <!--l. 722--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="td11"><!--l. 699--><p class="noindent" ><span class="lstinline"></span><span class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">spmat_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="cmtt-12">type</span><span class="cmr-12">.</span> </td>
class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span
class="cmti-12">x</span><span class="lstinline"></span><span
class="cmtt-12">spmat_type</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-11-2-"><td style="white-space:normal; text-align:left;" id="TBL-11-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. 700--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-2-2" class="td11"> <!--l. 723--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-2-2"
class="td11"><!--l. 700--><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
class="cmr-12">to be preconditioned. Note that </span><span class="cmr-12">to be preconditioned. Note that </span><span
class="cmti-12">x </span><span class="cmti-12">x </span><span
class="cmr-12">must be chosen according to the</span> class="cmr-12">must be chosen according to the</span>
<span class="lstinline"></span><span <code class="lstinline"><span style="color:#000000">real</span></code><span
class="cmtt-12">real</span><span class="cmr-12">/</span><code class="lstinline"><span style="color:#000000">complex</span></code><span
class="cmr-12">/</span><span class="lstinline"></span><span
class="cmtt-12">complex</span><span
class="cmr-12">, single/double precision version of AMG4PSBLAS</span> class="cmr-12">, single/double precision version of AMG4PSBLAS</span>
<span <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">20</span></a><span class="cmr-12">21</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:normal; text-align:left;" id="TBL-11-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. 705--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 728--><p class="noindent" ><code class="lstinline"><span style="color:#000000">desc_a</span></code> </td><td style="white-space:normal; 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-11-3-2" class="td11"> <!--l. 728--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_desc_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="td11"><!--l. 705--><p class="noindent" ><span class="lstinline"></span><span class="cmr-12">.</span> </td>
class="cmtt-12">type</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_desc_type</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-11-4-"><td style="white-space:normal; text-align:left;" id="TBL-11-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. 706--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-4-2" class="td11"> <!--l. 729--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-4-2"
class="td11"><!--l. 706--><p class="noindent" ><span class="td11"> <!--l. 729--><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><code class="lstinline"><span style="color:#000000">a</span></code><span
class="cmtt-12">a</span><span
class="cmr-12">. See the PSBLAS User&#8217;s Guide</span> class="cmr-12">. See the PSBLAS User&#8217;s Guide</span>
<span <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">20</span></a><span class="cmr-12">21</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:normal; text-align:left;" id="TBL-11-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. 708--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 731--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-12-5-2"
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-5-2" class="td11"> <!--l. 731--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="td11"><!--l. 708--><p class="noindent" ><span class="lstinline"></span><span class="cmr-12">.</span> </td>
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">out</span><span
class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-11-6-"><td style="white-space:normal; text-align:left;" id="TBL-11-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. 709--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-6-2" class="td11"> <!--l. 732--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-6-2"
class="td11"><!--l. 709--><p class="noindent" ><span class="td11"> <!--l. 732--><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
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><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:normal; text-align:left;" id="TBL-11-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"> </td> </tr></table></div> class="td11"> </td> </tr></table> </div>
<!--l. 715--><div class="crosslinks"><p class="noindent"><span <!--l. 738--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu11.html" ><span href="userhtmlsu11.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -182,6 +135,6 @@ class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu10.html" ><span href="userhtmlse5.html#userhtmlsu10.html" ><span
class="cmr-12">up</span></a><span class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<!--l. 715--><p class="indent" > <a <!--l. 738--><p class="indent" > <a
id="tailuserhtmlsu10.html"></a> id="tailuserhtmlsu10.html"></a>
</body></html> </body></html>

@ -1,7 +1,7 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd"> "http://www.w3.org/TR/html4/loose.dtd">
<html > <html >
<head><title>Method smoothers_build</title> <head><title>Method smoothers_uild</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (https://tug.org/tex4ht/)"> <meta name="generator" content="TeX4ht (https://tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (https://tug.org/tex4ht/)"> <meta name="originator" content="TeX4ht (https://tug.org/tex4ht/)">
@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 715--><div class="crosslinks"><p class="noindent"><span <!--l. 738--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu12.html" ><span href="userhtmlsu12.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -34,235 +34,141 @@ class="cmr-12">Method smoothers</span><span
class="cmr-12">_build</span></h4> class="cmr-12">_build</span></h4>
<div class="center" <div class="center"
> >
<!--l. 718--><p class="noindent" > <!--l. 741--><p class="noindent" >
<!--l. 719--><p class="noindent" ><span class="lstinline"></span><span <!--l. 742--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">smoothers_build</span><span style="color:#000000">(</span><span style="color:#000000">a</span><span style="color:#000000">,</span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000">p</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">[,</span><span style="color:#000000">amold</span><span style="color:#000000">,</span><span style="color:#000000">vmold</span><span style="color:#000000">,</span><span style="color:#000000">imold</span><span style="color:#000000">])</span></code><br />
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
class="cmtt-12">%</span><span
class="cmtt-12">smoothers_build</span><span
class="cmtt-12">(</span><span
class="cmtt-12">a</span><span
class="cmtt-12">,</span><span
class="cmtt-12">desc_a</span><span
class="cmtt-12">,</span><span
class="cmtt-12">p</span><span
class="cmtt-12">,</span><span
class="cmtt-12">info</span><span
class="cmtt-12">[,</span><span
class="cmtt-12">amold</span><span
class="cmtt-12">,</span><span
class="cmtt-12">vmold</span><span
class="cmtt-12">,</span><span
class="cmtt-12">imold</span><span
class="cmtt-12">])</span><br />
</div> </div>
<!--l. 722--><p class="noindent" ><span <!--l. 745--><p class="noindent" ><span
class="cmr-12">This method builds the smoothers and the coarsest-level solvers for the multilevel</span> class="cmr-12">This method builds the smoothers and the coarsest-level solvers for the multilevel</span>
<span <span
class="cmr-12">preconditioner </span><span class="lstinline"></span><span class="cmr-12">preconditioner </span><code class="lstinline"><span style="color:#000000">p</span></code><span
class="cmtt-12">p</span><span
class="cmr-12">, according to the requirements made by the user through the methods</span> class="cmr-12">, according to the requirements made by the user through the methods</span>
<span class="lstinline"></span><span <code class="lstinline"><span style="color:#000000">init</span></code> <span
class="cmtt-12">init</span> <span class="cmr-12">and </span><code class="lstinline"><span style="color:#000000">set</span></code><span
class="cmr-12">and </span><span class="lstinline"></span><span
class="cmtt-12">set</span><span
class="cmr-12">, and based on the aggregation hierarchy produced by a previous call to</span> class="cmr-12">, and based on the aggregation hierarchy produced by a previous call to</span>
<span class="lstinline"></span><span <code class="lstinline"><span style="color:#000000">hierarchy_build</span></code> <span
class="cmtt-12">hierarchy_build</span> <span
class="cmr-12">(see Section</span><span class="cmr-12">(see Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlsu10.html#x20-190005.3"><span href="userhtmlsu10.html#x20-190005.3"><span
class="cmr-12">5.3</span><!--tex4ht:ref: sec:hier_bld --></a><span class="cmr-12">5.3</span><!--tex4ht:ref: sec:hier_bld --></a><span
class="cmr-12">).</span> class="cmr-12">).</span>
<!--l. 729--><p class="noindent" ><span <!--l. 752--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-12" class="tabular" <div class="tabular"> <table id="TBL-13" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-12-1g"><col ><colgroup id="TBL-13-1g"><col
id="TBL-12-1"><col id="TBL-13-1"><col
id="TBL-12-2"></colgroup><tr id="TBL-13-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-12-1-"><td style="white-space:normal; text-align:left;" id="TBL-12-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. 732--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 755--><p class="noindent" ><code class="lstinline"><span style="color:#000000">a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-1-2"
class="cmtt-12">a</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-1-2" class="td11"> <!--l. 755--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="td11"><!--l. 732--><p class="noindent" ><span class="lstinline"></span><span class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">spmat_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="cmtt-12">type</span><span class="cmr-12">.</span> </td>
class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span
class="cmti-12">x</span><span class="lstinline"></span><span
class="cmtt-12">spmat_type</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-12-2-"><td style="white-space:normal; text-align:left;" id="TBL-12-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. 733--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-2-2" class="td11"> <!--l. 756--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-2-2"
class="td11"><!--l. 733--><p class="noindent" ><span class="td11"> <!--l. 756--><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
class="cmr-12">to be preconditioned. Note that </span><span class="cmr-12">to be preconditioned. Note that </span><span
class="cmti-12">x </span><span class="cmti-12">x </span><span
class="cmr-12">must be chosen according to the</span> class="cmr-12">must be chosen according to the</span>
<span class="lstinline"></span><span <code class="lstinline"><span style="color:#000000">real</span></code><span
class="cmtt-12">real</span><span class="cmr-12">/</span><code class="lstinline"><span style="color:#000000">complex</span></code><span
class="cmr-12">/</span><span class="lstinline"></span><span
class="cmtt-12">complex</span><span
class="cmr-12">, single/double precision version of AMG4PSBLAS</span> class="cmr-12">, single/double precision version of AMG4PSBLAS</span>
<span <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">20</span></a><span class="cmr-12">21</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:normal; text-align:left;" id="TBL-12-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. 737--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 760--><p class="noindent" ><code class="lstinline"><span style="color:#000000">desc_a</span></code> </td><td style="white-space:normal; 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-12-3-2" class="td11"> <!--l. 760--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_desc_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="td11"><!--l. 737--><p class="noindent" ><span class="lstinline"></span><span class="cmr-12">.</span> </td>
class="cmtt-12">type</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_desc_type</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-12-4-"><td style="white-space:normal; text-align:left;" id="TBL-12-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. 738--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-4-2" class="td11"> <!--l. 761--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-4-2"
class="td11"><!--l. 738--><p class="noindent" ><span class="td11"> <!--l. 761--><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><code class="lstinline"><span style="color:#000000">a</span></code><span
class="cmtt-12">a</span><span
class="cmr-12">. See the PSBLAS User&#8217;s Guide</span> class="cmr-12">. See the PSBLAS User&#8217;s Guide</span>
<span <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">20</span></a><span class="cmr-12">21</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:normal; text-align:left;" id="TBL-12-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. 740--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 763--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-5-2"
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-5-2" class="td11"> <!--l. 763--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="td11"><!--l. 740--><p class="noindent" ><span class="lstinline"></span><span class="cmr-12">.</span> </td>
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">out</span><span
class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-12-6-"><td style="white-space:normal; text-align:left;" id="TBL-12-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. 741--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-6-2" class="td11"> <!--l. 764--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-6-2"
class="td11"><!--l. 741--><p class="noindent" ><span class="td11"> <!--l. 764--><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
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><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:normal; text-align:left;" id="TBL-12-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. 742--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 765--><p class="noindent" ><code class="lstinline"><span style="color:#000000">amold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-7-2"
class="cmtt-12">amold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-7-2" class="td11"> <!--l. 765--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="td11"><!--l. 742--><p class="noindent" ><span class="lstinline"></span><span class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">_base_sparse_mat</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmtt-12">class</span><span class="cmr-12">.</span> </td>
class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span
class="cmti-12">x</span><span class="lstinline"></span><span
class="cmtt-12">_base_sparse_mat</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-12-8-"><td style="white-space:normal; text-align:left;" id="TBL-12-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. 743--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-8-2" class="td11"> <!--l. 766--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-8-2"
class="td11"><!--l. 743--><p class="noindent" ><span class="td11"> <!--l. 766--><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
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span> class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
<span <span
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">20</span></a><span class="cmr-12">21</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:normal; text-align:left;" id="TBL-12-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. 747--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 770--><p class="noindent" ><code class="lstinline"><span style="color:#000000">vmold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-9-2"
class="cmtt-12">vmold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-9-2" class="td11"> <!--l. 770--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="td11"><!--l. 747--><p class="noindent" ><span class="lstinline"></span><span class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">_base_vect_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmtt-12">class</span><span class="cmr-12">.</span> </td>
class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span
class="cmti-12">x</span><span class="lstinline"></span><span
class="cmtt-12">_base_vect_type</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-12-10-"><td style="white-space:normal; text-align:left;" id="TBL-12-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. 748--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-10-2" class="td11"> <!--l. 771--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-10-2"
class="td11"><!--l. 748--><p class="noindent" ><span class="td11"> <!--l. 771--><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:normal; text-align:left;" id="TBL-12-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. 750--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 773--><p class="noindent" ><code class="lstinline"><span style="color:#000000">imold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-11-2"
class="cmtt-12">imold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-11-2" class="td11"> <!--l. 773--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_i_base_vect_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="td11"><!--l. 750--><p class="noindent" ><span class="lstinline"></span><span class="cmr-12">.</span> </td>
class="cmtt-12">class</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_i_base_vect_type</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-12-12-"><td style="white-space:normal; text-align:left;" id="TBL-12-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. 751--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-12-2" class="td11"> <!--l. 774--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-12-2"
class="td11"><!--l. 751--><p class="noindent" ><span class="td11"> <!--l. 774--><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:normal; text-align:left;" id="TBL-12-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. 757--><div class="crosslinks"><p class="noindent"><span <!--l. 780--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu12.html" ><span href="userhtmlsu12.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -279,6 +185,6 @@ class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu11.html" ><span href="userhtmlse5.html#userhtmlsu11.html" ><span
class="cmr-12">up</span></a><span class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<!--l. 757--><p class="indent" > <a <!--l. 780--><p class="indent" > <a
id="tailuserhtmlsu11.html"></a> id="tailuserhtmlsu11.html"></a>
</body></html> </body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 757--><div class="crosslinks"><p class="noindent"><span <!--l. 780--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu13.html" ><span href="userhtmlsu13.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -33,36 +33,15 @@ class="cmr-12">5.5 </span></span> <a
class="cmr-12">Method build</span></h4> class="cmr-12">Method build</span></h4>
<div class="center" <div class="center"
> >
<!--l. 759--><p class="noindent" > <!--l. 782--><p class="noindent" >
<!--l. 760--><p class="noindent" ><span class="lstinline"></span><span <!--l. 783--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">build</span><span style="color:#000000">(</span><span style="color:#000000">a</span><span style="color:#000000">,</span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">[,</span><span style="color:#000000">amold</span><span style="color:#000000">,</span><span style="color:#000000">vmold</span><span style="color:#000000">,</span><span style="color:#000000">imold</span><span style="color:#000000">])</span></code><br />
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
class="cmtt-12">%</span><span
class="cmtt-12">build</span><span
class="cmtt-12">(</span><span
class="cmtt-12">a</span><span
class="cmtt-12">,</span><span
class="cmtt-12">desc_a</span><span
class="cmtt-12">,</span><span
class="cmtt-12">info</span><span
class="cmtt-12">[,</span><span
class="cmtt-12">amold</span><span
class="cmtt-12">,</span><span
class="cmtt-12">vmold</span><span
class="cmtt-12">,</span><span
class="cmtt-12">imold</span><span
class="cmtt-12">])</span><br />
</div> </div>
<!--l. 763--><p class="noindent" ><span <!--l. 786--><p class="noindent" ><span
class="cmr-12">This method builds the preconditioner </span><span class="lstinline"></span><span class="cmr-12">This method builds the preconditioner </span><code class="lstinline"><span style="color:#000000">p</span></code> <span
class="cmtt-12">p</span> <span
class="cmr-12">according to the requirements made by the</span> class="cmr-12">according to the requirements made by the</span>
<span <span
class="cmr-12">user through the methods </span><span class="lstinline"></span><span class="cmr-12">user through the methods </span><code class="lstinline"><span style="color:#000000">init</span></code> <span
class="cmtt-12">init</span> <span class="cmr-12">and </span><code class="lstinline"><span style="color:#000000">set</span></code> <span
class="cmr-12">and </span><span class="lstinline"></span><span
class="cmtt-12">set</span> <span
class="cmr-12">(see Sections</span><span class="cmr-12">(see Sections</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlsu10.html#x20-190005.3"><span href="userhtmlsu10.html#x20-190005.3"><span
@ -75,196 +54,124 @@ class="cmr-12">for multilevel</span>
<span <span
class="cmr-12">preconditioners). It is mostly provided for backward compatibility; indeed, it is</span> class="cmr-12">preconditioners). It is mostly provided for backward compatibility; indeed, it is</span>
<span <span
class="cmr-12">internally implemented by invoking the two previous methods </span><span class="lstinline"></span><span class="cmr-12">internally implemented by invoking the two previous methods </span><code class="lstinline"><span style="color:#000000">hierarchy_build</span></code> <span
class="cmtt-12">hierarchy_build</span> <span
class="cmr-12">and</span> class="cmr-12">and</span>
<span class="lstinline"></span><span <code class="lstinline"><span style="color:#000000">smoothers_build</span></code><span
class="cmtt-12">smoothers_build</span><span
class="cmr-12">, whose nomenclature would however be somewhat unnatural when</span> class="cmr-12">, whose nomenclature would however be somewhat unnatural when</span>
<span <span
class="cmr-12">dealing with simple one-level preconditioners.</span> class="cmr-12">dealing with simple one-level preconditioners.</span>
<!--l. 773--><p class="noindent" ><span <!--l. 796--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-13" class="tabular" <div class="tabular"> <table id="TBL-14" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-13-1g"><col ><colgroup id="TBL-14-1g"><col
id="TBL-13-1"><col id="TBL-14-1"><col
id="TBL-13-2"></colgroup><tr id="TBL-14-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-13-1-"><td style="white-space:normal; text-align:left;" id="TBL-13-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. 776--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 799--><p class="noindent" ><code class="lstinline"><span style="color:#000000">a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-1-2"
class="cmtt-12">a</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-1-2" class="td11"> <!--l. 799--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="td11"><!--l. 776--><p class="noindent" ><span class="lstinline"></span><span class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">spmat_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="cmtt-12">type</span><span class="cmr-12">.</span> </td>
class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span
class="cmti-12">x</span><span class="lstinline"></span><span
class="cmtt-12">spmat_type</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-2-"><td style="white-space:normal; text-align:left;" id="TBL-13-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. 777--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-2-2" class="td11"> <!--l. 800--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-2-2"
class="td11"><!--l. 777--><p class="noindent" ><span class="td11"> <!--l. 800--><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
class="cmr-12">to be preconditioned. Note that </span><span class="cmr-12">to be preconditioned. Note that </span><span
class="cmti-12">x </span><span class="cmti-12">x </span><span
class="cmr-12">must be chosen according to the</span> class="cmr-12">must be chosen according to the</span>
<span class="lstinline"></span><span <code class="lstinline"><span style="color:#000000">real</span></code><span
class="cmtt-12">real</span><span class="cmr-12">/</span><code class="lstinline"><span style="color:#000000">complex</span></code><span
class="cmr-12">/</span><span class="lstinline"></span><span
class="cmtt-12">complex</span><span
class="cmr-12">, single/double precision version of AMG4PSBLAS</span> class="cmr-12">, single/double precision version of AMG4PSBLAS</span>
<span <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">20</span></a><span class="cmr-12">21</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:normal; text-align:left;" id="TBL-13-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. 781--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 804--><p class="noindent" ><code class="lstinline"><span style="color:#000000">desc_a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-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. 804--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_desc_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="td11"><!--l. 781--><p class="noindent" ><span class="lstinline"></span><span class="cmr-12">.</span> </td>
class="cmtt-12">type</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_desc_type</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-4-"><td style="white-space:normal; text-align:left;" id="TBL-13-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. 782--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-4-2" class="td11"> <!--l. 805--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-4-2"
class="td11"><!--l. 782--><p class="noindent" ><span class="td11"> <!--l. 805--><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><code class="lstinline"><span style="color:#000000">a</span></code><span
class="cmtt-12">a</span><span
class="cmr-12">. See the PSBLAS User&#8217;s Guide</span> class="cmr-12">. See the PSBLAS User&#8217;s Guide</span>
<span <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">20</span></a><span class="cmr-12">21</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:normal; text-align:left;" id="TBL-13-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. 784--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 807--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-5-2"
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-5-2" class="td11"> <!--l. 807--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="td11"><!--l. 784--><p class="noindent" ><span class="lstinline"></span><span class="cmr-12">.</span> </td>
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">out</span><span
class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-6-"><td style="white-space:normal; text-align:left;" id="TBL-13-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. 785--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-6-2" class="td11"> <!--l. 808--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-6-2"
class="td11"><!--l. 785--><p class="noindent" ><span class="td11"> <!--l. 808--><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
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><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:normal; text-align:left;" id="TBL-13-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. 786--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 809--><p class="noindent" ><code class="lstinline"><span style="color:#000000">amold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-7-2"
class="cmtt-12">amold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-7-2" class="td11"> <!--l. 809--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="td11"><!--l. 786--><p class="noindent" ><span class="lstinline"></span><span class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">_base_sparse_mat</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmtt-12">class</span><span class="cmr-12">.</span> </td>
class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span
class="cmti-12">x</span><span class="lstinline"></span><span
class="cmtt-12">_base_sparse_mat</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-8-"><td style="white-space:normal; text-align:left;" id="TBL-13-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. 787--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-8-2" class="td11"> <!--l. 810--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-8-2"
class="td11"><!--l. 787--><p class="noindent" ><span class="td11"> <!--l. 810--><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
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span> class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
<span <span
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">20</span></a><span class="cmr-12">21</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:normal; text-align:left;" id="TBL-13-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. 791--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 814--><p class="noindent" ><code class="lstinline"><span style="color:#000000">vmold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-9-2"
class="cmtt-12">vmold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-9-2" class="td11"> <!--l. 814--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="td11"><!--l. 791--><p class="noindent" ><span class="lstinline"></span><span class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">_base_vect_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmtt-12">class</span><span class="cmr-12">.</span> </td>
class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span
class="cmti-12">x</span><span class="lstinline"></span><span
class="cmtt-12">_base_vect_type</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-10-"><td style="white-space:normal; text-align:left;" id="TBL-13-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. 792--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-10-2" class="td11"> <!--l. 815--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-10-2"
class="td11"><!--l. 792--><p class="noindent" ><span class="td11"> <!--l. 815--><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:normal; text-align:left;" id="TBL-13-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. 794--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 817--><p class="noindent" ><code class="lstinline"><span style="color:#000000">imold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-11-2"
class="cmtt-12">imold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-11-2" class="td11"> <!--l. 817--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_i_base_vect_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="td11"><!--l. 794--><p class="noindent" ><span class="lstinline"></span><span class="cmr-12">.</span> </td>
class="cmtt-12">class</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_i_base_vect_type</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-12-"><td style="white-space:normal; text-align:left;" id="TBL-13-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. 795--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-12-2" class="td11"> <!--l. 818--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-12-2"
class="td11"><!--l. 795--><p class="noindent" ><span class="td11"> <!--l. 818--><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:normal; text-align:left;" id="TBL-13-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>
<!--l. 800--><p class="noindent" ><span <!--l. 823--><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>
@ -272,7 +179,7 @@ class="cmr-12">The method can be used to build multilevel preconditioners too.</
<!--l. 805--><div class="crosslinks"><p class="noindent"><span <!--l. 828--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu13.html" ><span href="userhtmlsu13.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -289,6 +196,6 @@ class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu12.html" ><span href="userhtmlse5.html#userhtmlsu12.html" ><span
class="cmr-12">up</span></a><span class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<!--l. 805--><p class="indent" > <a <!--l. 828--><p class="indent" > <a
id="tailuserhtmlsu12.html"></a> id="tailuserhtmlsu12.html"></a>
</body></html> </body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 805--><div class="crosslinks"><p class="noindent"><span <!--l. 828--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu14.html" ><span href="userhtmlsu14.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -33,29 +33,10 @@ class="cmr-12">5.6 </span></span> <a
class="cmr-12">Method apply</span></h4> class="cmr-12">Method apply</span></h4>
<div class="center" <div class="center"
> >
<!--l. 807--><p class="noindent" > <!--l. 830--><p class="noindent" >
<!--l. 808--><p class="noindent" ><span class="lstinline"></span><span <!--l. 831--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">apply</span><span style="color:#000000">(</span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000">y</span><span style="color:#000000">,</span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000"> </span><span style="color:#000000">[,</span><span style="color:#000000">trans</span><span style="color:#000000">,</span><span style="color:#000000">work</span><span style="color:#000000">])</span></code><br />
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
class="cmtt-12">%</span><span
class="cmtt-12">apply</span><span
class="cmtt-12">(</span><span
class="cmtt-12">x</span><span
class="cmtt-12">,</span><span
class="cmtt-12">y</span><span
class="cmtt-12">,</span><span
class="cmtt-12">desc_a</span><span
class="cmtt-12">,</span><span
class="cmtt-12">info</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">[,</span><span
class="cmtt-12">trans</span><span
class="cmtt-12">,</span><span
class="cmtt-12">work</span><span
class="cmtt-12">])</span><br />
</div> </div>
<!--l. 811--><p class="noindent" ><span <!--l. 834--><p class="noindent" ><span
class="cmr-12">This method computes </span><span class="cmr-12">This method computes </span><span
class="cmmi-12">y </span><span class="cmmi-12">y </span><span
class="cmr-12">= </span><span class="cmr-12">= </span><span
@ -70,45 +51,35 @@ class="cmr-12">, where </span><span
class="cmmi-12">B </span><span class="cmmi-12">B </span><span
class="cmr-12">is a previously built preconditioner,</span> class="cmr-12">is a previously built preconditioner,</span>
<span <span
class="cmr-12">stored into </span><span class="lstinline"></span><span class="cmr-12">stored into </span><code class="lstinline"><span style="color:#000000">p</span></code><span
class="cmtt-12">p</span><span
class="cmr-12">, and </span><span class="cmr-12">, and </span><span
class="cmmi-12">op </span><span class="cmmi-12">op </span><span
class="cmr-12">denotes the preconditioner itself or its transpose, according to the</span> class="cmr-12">denotes the preconditioner itself or its transpose, according to the</span>
<span <span
class="cmr-12">value of </span><span class="lstinline"></span><span class="cmr-12">value of </span><code class="lstinline"><span style="color:#000000">trans</span></code><span
class="cmtt-12">trans</span><span
class="cmr-12">. Note that, when AMG4PSBLAS is used with a Krylov solver from</span> class="cmr-12">. Note that, when AMG4PSBLAS is used with a Krylov solver from</span>
<span <span
class="cmr-12">PSBLAS, </span><span class="lstinline"></span><span class="cmr-12">PSBLAS, </span><code class="lstinline"><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">apply</span></code> <span
class="cmtt-12">p</span><span class="cmr-12">is called within the PSBLAS method </span><code class="lstinline"><span style="color:#000000">psb_krylov</span></code> <span
class="cmtt-12">%</span><span
class="cmtt-12">apply</span> <span
class="cmr-12">is called within the PSBLAS method </span><span class="lstinline"></span><span
class="cmtt-12">psb_krylov</span> <span
class="cmr-12">and hence it is</span> class="cmr-12">and hence it is</span>
<span <span
class="cmr-12">completely transparent to the user.</span> class="cmr-12">completely transparent to the user.</span>
<!--l. 820--><p class="noindent" ><span <!--l. 843--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-14" class="tabular" <div class="tabular"> <table id="TBL-15" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-14-1g"><col ><colgroup id="TBL-15-1g"><col
id="TBL-14-1"><col id="TBL-15-1"><col
id="TBL-14-2"></colgroup><tr id="TBL-15-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-14-1-"><td style="white-space:normal; text-align:left;" id="TBL-14-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. 823--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 846--><p class="noindent" ><code class="lstinline"><span style="color:#000000">x</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-1-2"
class="cmtt-12">x</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-1-2" class="td11"> <!--l. 846--><p class="noindent" ><span
class="td11"><!--l. 823--><p class="noindent" ><span class="cmti-12">type</span><code class="lstinline"><span style="color:#000000">(</span><span style="color:#000000">kind_parameter</span><span style="color:#000000">)</span></code><span
class="cmti-12">type</span><span class="lstinline"></span><span class="cmr-12">, dimension(:), intent(in)&#8212;.</span> </td>
class="cmtt-12">(</span><span
class="cmtt-12">kind_parameter</span><span
class="cmtt-12">)</span><span
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:normal; text-align:left;" id="TBL-14-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. 824--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-2-2" class="td11"> <!--l. 847--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-2-2"
class="td11"><!--l. 824--><p class="noindent" ><span class="td11"> <!--l. 847--><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
class="cmr-12">. Note that </span><span class="cmr-12">. Note that </span><span
@ -116,28 +87,22 @@ class="cmti-12">type </span><span
class="cmr-12">and </span><span class="cmr-12">and </span><span
class="cmti-12">kind</span><span class="cmti-12">kind</span><span
class="cmti-12">_parameter</span> class="cmti-12">_parameter</span>
<span <span
class="cmr-12">must be chosen according to the </span><span class="lstinline"></span><span class="cmr-12">must be chosen according to the </span><code class="lstinline"><span style="color:#000000">real</span></code><span
class="cmtt-12">real</span><span class="cmr-12">/</span><code class="lstinline"><span style="color:#000000">complex</span></code><span
class="cmr-12">/</span><span class="lstinline"></span><span
class="cmtt-12">complex</span><span
class="cmr-12">, single/double</span> 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:normal; text-align:left;" id="TBL-14-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"><!--l. 827--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 850--><p class="noindent" ><code class="lstinline"><span style="color:#000000">y</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-3-2"
class="cmtt-12">y</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-3-2" class="td11"> <!--l. 850--><p class="noindent" ><span
class="td11"><!--l. 827--><p class="noindent" ><span class="cmti-12">type</span><code class="lstinline"><span style="color:#000000">(</span><span style="color:#000000">kind_parameter</span><span style="color:#000000">)</span></code><span
class="cmti-12">type</span><span class="lstinline"></span><span class="cmr-12">, dimension(:), intent(out)&#8212;.</span> </td>
class="cmtt-12">(</span><span
class="cmtt-12">kind_parameter</span><span
class="cmtt-12">)</span><span
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:normal; text-align:left;" id="TBL-14-4-1" style="vertical-align:baseline;" id="TBL-15-4-"><td style="white-space:normal; text-align:left;" id="TBL-15-4-1"
class="td11"><!--l. 828--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-4-2" class="td11"> <!--l. 851--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-4-2"
class="td11"><!--l. 828--><p class="noindent" ><span class="td11"> <!--l. 851--><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
class="cmr-12">. Note that </span><span class="cmr-12">. Note that </span><span
@ -145,89 +110,48 @@ class="cmti-12">type </span><span
class="cmr-12">and </span><span class="cmr-12">and </span><span
class="cmti-12">kind</span><span class="cmti-12">kind</span><span
class="cmti-12">_parameter</span> class="cmti-12">_parameter</span>
<span <span
class="cmr-12">must be chosen according to the </span><span class="lstinline"></span><span class="cmr-12">must be chosen according to the </span><code class="lstinline"><span style="color:#000000">real</span></code><span
class="cmtt-12">real</span><span class="cmr-12">/</span><code class="lstinline"><span style="color:#000000">complex</span></code><span
class="cmr-12">/</span><span class="lstinline"></span><span
class="cmtt-12">complex</span><span
class="cmr-12">, single/double</span> 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:normal; text-align:left;" id="TBL-14-5-1" style="vertical-align:baseline;" id="TBL-15-5-"><td style="white-space:normal; text-align:left;" id="TBL-15-5-1"
class="td11"><!--l. 831--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 854--><p class="noindent" ><code class="lstinline"><span style="color:#000000">desc_a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-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. 854--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_desc_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="td11"><!--l. 831--><p class="noindent" ><span class="lstinline"></span><span class="cmr-12">.</span> </td>
class="cmtt-12">type</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_desc_type</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-6-"><td style="white-space:normal; text-align:left;" id="TBL-14-6-1" style="vertical-align:baseline;" id="TBL-15-6-"><td style="white-space:normal; text-align:left;" id="TBL-15-6-1"
class="td11"><!--l. 832--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-6-2" class="td11"> <!--l. 855--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-6-2"
class="td11"><!--l. 832--><p class="noindent" ><span class="td11"> <!--l. 855--><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:normal; text-align:left;" id="TBL-14-7-1" style="vertical-align:baseline;" id="TBL-15-7-"><td style="white-space:normal; text-align:left;" id="TBL-15-7-1"
class="td11"><!--l. 834--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 857--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-7-2"
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-7-2" class="td11"> <!--l. 857--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="td11"><!--l. 834--><p class="noindent" ><span class="lstinline"></span><span class="cmr-12">.</span> </td>
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">out</span><span
class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-8-"><td style="white-space:normal; text-align:left;" id="TBL-14-8-1" style="vertical-align:baseline;" id="TBL-15-8-"><td style="white-space:normal; text-align:left;" id="TBL-15-8-1"
class="td11"><!--l. 835--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-8-2" class="td11"> <!--l. 858--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-8-2"
class="td11"><!--l. 835--><p class="noindent" ><span class="td11"> <!--l. 858--><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
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><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:normal; text-align:left;" id="TBL-14-9-1" style="vertical-align:baseline;" id="TBL-15-9-"><td style="white-space:normal; text-align:left;" id="TBL-15-9-1"
class="td11"><!--l. 836--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 859--><p class="noindent" ><code class="lstinline"><span style="color:#000000">trans</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-9-2"
class="cmtt-12">trans</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-9-2" class="td11"> <!--l. 859--><p class="noindent" ><code class="lstinline"><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=1),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">).</span></code> </td>
class="td11"><!--l. 836--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">character</span><span
class="cmtt-12">(</span><span
class="cmtt-12">len</span><span
class="cmtt-12">=1),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">).</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-10-"><td style="white-space:normal; text-align:left;" id="TBL-14-10-1" style="vertical-align:baseline;" id="TBL-15-10-"><td style="white-space:normal; text-align:left;" id="TBL-15-10-1"
class="td11"><!--l. 837--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-10-2" class="td11"> <!--l. 860--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-10-2"
class="td11"><!--l. 837--><p class="noindent" ><span class="td11"> <!--l. 860--><p class="noindent" ><span
class="cmr-12">If </span><span class="lstinline"></span><span class="cmr-12">If </span><code class="lstinline"><span style="color:#000000">trans</span></code> <span
class="cmtt-12">trans</span> <span class="cmr-12">= </span><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">N</span><span style="color:#000000">&#8217;</span><span style="color:#000000">,</span><span style="color:#000000">&#8217;</span><span style="color:#000000">n</span><span style="color:#000000">&#8217;</span></code> <span
class="cmr-12">= </span><span class="lstinline"></span><span
class="cmtt-12">&#8217;</span><span
class="cmtt-12">N</span><span
class="cmtt-12">&#8217;</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#8217;</span><span
class="cmtt-12">n</span><span
class="cmtt-12">&#8217;</span> <span
class="cmr-12">then </span><span class="cmr-12">then </span><span
class="cmmi-12">op</span><span class="cmmi-12">op</span><span
class="cmr-12">(</span><span class="cmr-12">(</span><span
@ -238,17 +162,9 @@ class="cmr-12">) = </span><span
class="cmmi-12">B</span><sup><span class="cmmi-12">B</span><sup><span
class="cmsy-8">-</span><span class="cmsy-8">-</span><span
class="cmr-8">1</span></sup><span class="cmr-8">1</span></sup><span
class="cmr-12">; if </span><span class="lstinline"></span><span class="cmr-12">; if </span><code class="lstinline"><span style="color:#000000">trans</span></code> <span
class="cmtt-12">trans</span> <span class="cmr-12">= </span><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">T</span><span style="color:#000000">&#8217;</span><span style="color:#000000">,</span><span style="color:#000000">&#8217;</span><span style="color:#000000">t</span><span style="color:#000000">&#8217;</span></code>
class="cmr-12">= </span><span class="lstinline"></span><span <span
class="cmtt-12">&#8217;</span><span
class="cmtt-12">T</span><span
class="cmtt-12">&#8217;</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#8217;</span><span
class="cmtt-12">t</span><span
class="cmtt-12">&#8217;</span>
<span
class="cmr-12">then </span><span class="cmr-12">then </span><span
class="cmmi-12">op</span><span class="cmmi-12">op</span><span
class="cmr-12">(</span><span class="cmr-12">(</span><span
@ -263,18 +179,10 @@ class="cmr-12">(transpose of </span><span
class="cmmi-12">B</span><sup><span class="cmmi-12">B</span><sup><span
class="cmsy-8">-</span><span class="cmsy-8">-</span><span
class="cmr-8">1</span></sup><span class="cmr-8">1</span></sup><span
class="cmr-12">); if </span><span class="lstinline"></span><span class="cmr-12">); if </span><code class="lstinline"><span style="color:#000000">trans</span></code> <span
class="cmtt-12">trans</span> <span class="cmr-12">= </span><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">C</span><span style="color:#000000">&#8217;</span><span style="color:#000000">,</span><span style="color:#000000">&#8217;</span><span style="color:#000000">c</span><span style="color:#000000">&#8217;</span></code> <span
class="cmr-12">= </span><span class="lstinline"></span><span
class="cmtt-12">&#8217;</span><span
class="cmtt-12">C</span><span
class="cmtt-12">&#8217;</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#8217;</span><span
class="cmtt-12">c</span><span
class="cmtt-12">&#8217;</span> <span
class="cmr-12">then</span> class="cmr-12">then</span>
<span <span
class="cmmi-12">op</span><span class="cmmi-12">op</span><span
class="cmr-12">(</span><span class="cmr-12">(</span><span
class="cmmi-12">B</span><sup><span class="cmmi-12">B</span><sup><span
@ -288,58 +196,40 @@ class="cmr-12">(conjugate transpose of </span><span
class="cmmi-12">B</span><sup><span class="cmmi-12">B</span><sup><span
class="cmsy-8">-</span><span 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:normal; text-align:left;" id="TBL-14-11-1" style="vertical-align:baseline;" id="TBL-15-11-"><td style="white-space:normal; text-align:left;" id="TBL-15-11-1"
class="td11"><!--l. 841--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 864--><p class="noindent" ><code class="lstinline"><span style="color:#000000">work</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-11-2"
class="cmtt-12">work</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-11-2" class="td11"> <!--l. 864--><p class="noindent" ><span
class="td11"><!--l. 841--><p class="noindent" ><span class="cmti-12">type</span><code class="lstinline"><span style="color:#000000">(</span><span style="color:#000000">kind_parameter</span><span style="color:#000000">)</span></code><span
class="cmti-12">type</span><span class="lstinline"></span><span class="cmr-12">, dimension(:), optional, target&#8212;.</span> </td>
class="cmtt-12">(</span><span
class="cmtt-12">kind_parameter</span><span
class="cmtt-12">)</span><span
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:normal; text-align:left;" id="TBL-14-12-1" style="vertical-align:baseline;" id="TBL-15-12-"><td style="white-space:normal; text-align:left;" id="TBL-15-12-1"
class="td11"><!--l. 842--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-12-2" class="td11"> <!--l. 865--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-12-2"
class="td11"><!--l. 842--><p class="noindent" ><span class="td11"> <!--l. 865--><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><code class="lstinline"><span style="color:#000000">4</span><span style="color:#000000"> </span><span style="color:#000000">*</span><span style="color:#000000"> </span><span style="color:#000000">psb_cd_get_local_</span></code>
class="cmtt-12">4</span><span <code class="lstinline"><span style="color:#000000">cols</span><span style="color:#000000">(</span><span style="color:#000000">desc_a</span><span style="color:#000000">)</span></code> <span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">*</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">psb_cd_get_local_</span>
<span class="lstinline"></span><span
class="cmtt-12">cols</span><span
class="cmtt-12">(</span><span
class="cmtt-12">desc_a</span><span
class="cmtt-12">)</span> <span
class="cmr-12">(see the PSBLAS User&#8217;s Guide). Note that </span><span class="cmr-12">(see the PSBLAS User&#8217;s Guide). Note that </span><span
class="cmti-12">type </span><span class="cmti-12">type </span><span
class="cmr-12">and</span> class="cmr-12">and</span>
<span <span
class="cmti-12">kind</span><span class="cmti-12">kind</span><span
class="cmti-12">_parameter </span><span class="cmti-12">_parameter </span><span
class="cmr-12">must be chosen according to the </span><span class="lstinline"></span><span class="cmr-12">must be chosen according to the </span><code class="lstinline"><span style="color:#000000">real</span></code><span
class="cmtt-12">real</span><span class="cmr-12">/</span><code class="lstinline"><span style="color:#000000">complex</span></code><span
class="cmr-12">/</span><span class="lstinline"></span><span
class="cmtt-12">complex</span><span
class="cmr-12">,</span> 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:normal; text-align:left;" id="TBL-14-13-1" style="vertical-align:baseline;" id="TBL-15-13-"><td style="white-space:normal; text-align:left;" id="TBL-15-13-1"
class="td11"> </td> </tr></table></div> class="td11"> </td> </tr></table> </div>
<!--l. 851--><div class="crosslinks"><p class="noindent"><span <!--l. 874--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu14.html" ><span href="userhtmlsu14.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -356,6 +246,6 @@ class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu13.html" ><span href="userhtmlse5.html#userhtmlsu13.html" ><span
class="cmr-12">up</span></a><span class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<!--l. 851--><p class="indent" > <a <!--l. 874--><p class="indent" > <a
id="tailuserhtmlsu13.html"></a> id="tailuserhtmlsu13.html"></a>
</body></html> </body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 851--><div class="crosslinks"><p class="noindent"><span <!--l. 874--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu15.html" ><span href="userhtmlsu15.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -33,63 +33,44 @@ class="cmr-12">5.7 </span></span> <a
class="cmr-12">Method free</span></h4> class="cmr-12">Method free</span></h4>
<div class="center" <div class="center"
> >
<!--l. 853--><p class="noindent" > <!--l. 876--><p class="noindent" >
<!--l. 854--><p class="noindent" ><span class="lstinline"></span><span <!--l. 877--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">free</span><span style="color:#000000">(</span><span style="color:#000000">p</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">)</span></code><br />
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
class="cmtt-12">%</span><span
class="cmtt-12">free</span><span
class="cmtt-12">(</span><span
class="cmtt-12">p</span><span
class="cmtt-12">,</span><span
class="cmtt-12">info</span><span
class="cmtt-12">)</span><br />
</div> </div>
<!--l. 857--><p class="noindent" ><span <!--l. 880--><p class="noindent" ><span
class="cmr-12">This method deallocates the preconditioner data structure </span><span class="lstinline"></span><span class="cmr-12">This method deallocates the preconditioner data structure </span><code class="lstinline"><span style="color:#000000">p</span></code><span
class="cmtt-12">p</span><span
class="cmr-12">.</span> class="cmr-12">.</span>
<!--l. 860--><p class="noindent" ><span <!--l. 883--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-15" class="tabular" <div class="tabular"> <table id="TBL-16" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-15-1g"><col ><colgroup id="TBL-16-1g"><col
id="TBL-15-1"><col id="TBL-16-1"><col
id="TBL-15-2"></colgroup><tr id="TBL-16-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-15-1-"><td style="white-space:normal; text-align:left;" id="TBL-15-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. 863--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 886--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-16-1-2"
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-15-1-2" class="td11"> <!--l. 886--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="td11"><!--l. 863--><p class="noindent" ><span class="lstinline"></span><span class="cmr-12">.</span> </td>
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">out</span><span
class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-15-2-"><td style="white-space:normal; text-align:left;" id="TBL-15-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. 864--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-2-2" class="td11"> <!--l. 887--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-2-2"
class="td11"><!--l. 864--><p class="noindent" ><span class="td11"> <!--l. 887--><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
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><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</span> 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:normal; text-align:left;" id="TBL-15-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"> </td> </tr></table></div> class="td11"> </td> </tr></table> </div>
<!--l. 870--><div class="crosslinks"><p class="noindent"><span <!--l. 893--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu15.html" ><span href="userhtmlsu15.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -106,6 +87,6 @@ class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu14.html" ><span href="userhtmlse5.html#userhtmlsu14.html" ><span
class="cmr-12">up</span></a><span class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<!--l. 870--><p class="indent" > <a <!--l. 893--><p class="indent" > <a
id="tailuserhtmlsu14.html"></a> id="tailuserhtmlsu14.html"></a>
</body></html> </body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 870--><div class="crosslinks"><p class="noindent"><span <!--l. 893--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu16.html" ><span href="userhtmlsu16.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -33,148 +33,87 @@ class="cmr-12">5.8 </span></span> <a
class="cmr-12">Method descr</span></h4> class="cmr-12">Method descr</span></h4>
<div class="center" <div class="center"
> >
<!--l. 872--><p class="noindent" > <!--l. 895--><p class="noindent" >
<!--l. 873--><p class="noindent" ><span class="lstinline"></span><span <!--l. 896--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">descr</span><span style="color:#000000">(</span><span style="color:#000000">info</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">[</span><span style="color:#000000">iout</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">root</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">verbosity</span><span style="color:#000000">])</span></code><br />
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
class="cmtt-12">%</span><span
class="cmtt-12">descr</span><span
class="cmtt-12">(</span><span
class="cmtt-12">info</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">[</span><span
class="cmtt-12">iout</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">root</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">verbosity</span><span
class="cmtt-12">])</span><br />
</div> </div>
<!--l. 876--><p class="noindent" ><span <!--l. 899--><p class="noindent" ><span
class="cmr-12">This method prints a description of the preconditioner </span><span class="lstinline"></span><span class="cmr-12">This method prints a description of the preconditioner </span><code class="lstinline"><span style="color:#000000">p</span></code> <span
class="cmtt-12">p</span> <span
class="cmr-12">to the standard output or to a</span> class="cmr-12">to the standard output or to a</span>
<span <span
class="cmr-12">file. It must be called after </span><span class="lstinline"></span><span class="cmr-12">file. It must be called after </span><code class="lstinline"><span style="color:#000000">hierachy_build</span></code> <span
class="cmtt-12">hierachy_build</span> <span class="cmr-12">and </span><code class="lstinline"><span style="color:#000000">smoothers_build</span></code><span
class="cmr-12">and </span><span class="lstinline"></span><span class="cmr-12">, or </span><code class="lstinline"><span style="color:#000000">build</span></code><span
class="cmtt-12">smoothers_build</span><span
class="cmr-12">, or </span><span class="lstinline"></span><span
class="cmtt-12">build</span><span
class="cmr-12">, have</span> class="cmr-12">, have</span>
<span <span
class="cmr-12">been called.</span> class="cmr-12">been called.</span>
<!--l. 881--><p class="noindent" ><span <!--l. 904--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-16" class="tabular" <div class="tabular"> <table id="TBL-17" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-16-1g"><col ><colgroup id="TBL-17-1g"><col
id="TBL-16-1"><col id="TBL-17-1"><col
id="TBL-16-2"></colgroup><tr id="TBL-17-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-16-1-"><td style="white-space:normal; text-align:left;" id="TBL-16-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. 884--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 907--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-17-1-2"
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-1-2" class="td11"> <!--l. 907--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="td11"><!--l. 884--><p class="noindent" ><span class="lstinline"></span><span class="cmr-12">.</span> </td>
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">out</span><span
class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-16-2-"><td style="white-space:normal; text-align:left;" id="TBL-16-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. 885--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-2-2" class="td11"> <!--l. 908--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-2-2"
class="td11"><!--l. 885--><p class="noindent" ><span class="td11"> <!--l. 908--><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
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><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:normal; text-align:left;" id="TBL-16-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. 886--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 909--><p class="noindent" ><code class="lstinline"><span style="color:#000000">iout</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-17-3-2"
class="cmtt-12">iout</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-3-2" class="td11"> <!--l. 909--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="td11"><!--l. 886--><p class="noindent" ><span class="lstinline"></span><span class="cmr-12">.</span> </td>
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-16-4-"><td style="white-space:normal; text-align:left;" id="TBL-16-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. 887--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-4-2" class="td11"> <!--l. 910--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-4-2"
class="td11"><!--l. 887--><p class="noindent" ><span class="td11"> <!--l. 910--><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:normal; text-align:left;" id="TBL-16-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"><!--l. 889--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 912--><p class="noindent" ><code class="lstinline"><span style="color:#000000">root</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-17-5-2"
class="cmtt-12">root</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-5-2" class="td11"> <!--l. 912--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="td11"><!--l. 889--><p class="noindent" ><span class="lstinline"></span><span class="cmr-12">.</span> </td>
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-16-6-"><td style="white-space:normal; text-align:left;" id="TBL-16-6-1" style="vertical-align:baseline;" id="TBL-17-6-"><td style="white-space:normal; text-align:left;" id="TBL-17-6-1"
class="td11"><!--l. 890--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-6-2" class="td11"> <!--l. 913--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-6-2"
class="td11"><!--l. 890--><p class="noindent" ><span class="td11"> <!--l. 913--><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
class="cmr-12">will be printed; the default is </span><span class="lstinline"></span><span class="cmr-12">will be printed; the default is </span><code class="lstinline"><span style="color:#000000">psb_root_</span></code><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:normal; text-align:left;" id="TBL-16-7-1" style="vertical-align:baseline;" id="TBL-17-7-"><td style="white-space:normal; text-align:left;" id="TBL-17-7-1"
class="td11"><!--l. 892--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 915--><p class="noindent" ><code class="lstinline"><span style="color:#000000">verbosity</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-17-7-2"
class="cmtt-12">verbosity</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-7-2" class="td11"> <!--l. 915--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="td11"><!--l. 892--><p class="noindent" ><span class="lstinline"></span><span class="cmr-12">.</span> </td>
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-16-8-"><td style="white-space:normal; text-align:left;" id="TBL-16-8-1" style="vertical-align:baseline;" id="TBL-17-8-"><td style="white-space:normal; text-align:left;" id="TBL-17-8-1"
class="td11"><!--l. 893--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-8-2" class="td11"> <!--l. 916--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-8-2"
class="td11"><!--l. 893--><p class="noindent" ><span class="td11"> <!--l. 916--><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
class="cmr-12">values higher than 0, it prints out further information, e.g., for</span> class="cmr-12">values higher than 0, it prints out further information, e.g., for</span>
<span <span
class="cmr-12">a distributed multilevel preconditioner the size of the coarse</span> class="cmr-12">a distributed multilevel preconditioner the size of the coarse</span>
<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:normal; text-align:left;" id="TBL-16-9-1" style="vertical-align:baseline;" id="TBL-17-9-"><td style="white-space:normal; text-align:left;" id="TBL-17-9-1"
class="td11"> </td> </tr></table></div> class="td11"> </td> </tr></table> </div>
<!--l. 900--><div class="crosslinks"><p class="noindent"><span <!--l. 923--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu16.html" ><span href="userhtmlsu16.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -191,6 +130,6 @@ class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu15.html" ><span href="userhtmlse5.html#userhtmlsu15.html" ><span
class="cmr-12">up</span></a><span class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<!--l. 900--><p class="indent" > <a <!--l. 923--><p class="indent" > <a
id="tailuserhtmlsu15.html"></a> id="tailuserhtmlsu15.html"></a>
</body></html> </body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 900--><div class="crosslinks"><p class="noindent"><span <!--l. 923--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu15.html" ><span href="userhtmlsu15.html" ><span
class="cmr-12">prev</span></a><span class="cmr-12">prev</span></a><span
@ -28,251 +28,155 @@ class="cmr-12">] </span></p></div>
class="cmr-12">5.9 </span></span> <a class="cmr-12">5.9 </span></span> <a
id="x26-250005.9"></a><span id="x26-250005.9"></a><span
class="cmr-12">Auxiliary Methods</span></h4> class="cmr-12">Auxiliary Methods</span></h4>
<!--l. 901--><p class="noindent" ><span <!--l. 924--><p class="noindent" ><span
class="cmr-12">Various functionalities are implemented as additional methods of the preconditioner</span> class="cmr-12">Various functionalities are implemented as additional methods of the preconditioner</span>
<span <span
class="cmr-12">object.</span> class="cmr-12">object.</span>
<!--l. 904--><p class="noindent" > <!--l. 927--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span <h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.1 </span></span> <a class="cmr-12">5.9.1 </span></span> <a
id="x26-260005.9.1"></a><span id="x26-260005.9.1"></a><span
class="cmr-12">Method: dump</span></h5> class="cmr-12">Method: dump</span></h5>
<div class="center" <div class="center"
> >
<!--l. 906--><p class="noindent" > <!--l. 929--><p class="noindent" >
<!--l. 907--><p class="noindent" ><span class="lstinline"></span><span <!--l. 930--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">dump</span><span style="color:#000000">(</span><span style="color:#000000">info</span><span style="color:#000000">[,</span><span style="color:#000000">istart</span><span style="color:#000000">,</span><span style="color:#000000">iend</span><span style="color:#000000">,</span><span style="color:#000000">prefix</span><span style="color:#000000">,</span><span style="color:#000000">head</span><span style="color:#000000">,</span><span style="color:#000000">ac</span><span style="color:#000000">,</span><span style="color:#000000">rp</span><span style="color:#000000">,</span><span style="color:#000000">smoother</span><span style="color:#000000">,</span><span style="color:#000000">solver</span><span style="color:#000000">,</span><span style="color:#000000">global_num</span><span style="color:#000000">])</span></code><br />
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
class="cmtt-12">%</span><span
class="cmtt-12">dump</span><span
class="cmtt-12">(</span><span
class="cmtt-12">info</span><span
class="cmtt-12">[,</span><span
class="cmtt-12">istart</span><span
class="cmtt-12">,</span><span
class="cmtt-12">iend</span><span
class="cmtt-12">,</span><span
class="cmtt-12">prefix</span><span
class="cmtt-12">,</span><span
class="cmtt-12">head</span><span
class="cmtt-12">,</span><span
class="cmtt-12">ac</span><span
class="cmtt-12">,</span><span
class="cmtt-12">rp</span><span
class="cmtt-12">,</span><span
class="cmtt-12">smoother</span><span
class="cmtt-12">,</span><span
class="cmtt-12">solver</span><span
class="cmtt-12">,</span><span
class="cmtt-12">global_num</span><span
class="cmtt-12">])</span><br />
</div> </div>
<!--l. 910--><p class="noindent" ><span <!--l. 933--><p class="noindent" ><span
class="cmr-12">Dump on file.</span> class="cmr-12">Dump on file.</span>
<!--l. 913--><p class="noindent" ><span <!--l. 936--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-17" class="tabular" <div class="tabular"> <table id="TBL-18" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-17-1g"><col ><colgroup id="TBL-18-1g"><col
id="TBL-17-1"><col id="TBL-18-1"><col
id="TBL-17-2"></colgroup><tr id="TBL-18-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-17-1-"><td style="white-space:normal; text-align:left;" id="TBL-17-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. 916--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 939--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-18-1-2"
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-17-1-2" class="td11"> <!--l. 939--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="td11"><!--l. 916--><p class="noindent" ><span class="lstinline"></span><span class="cmr-12">.</span> </td>
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">out</span><span
class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-17-2-"><td style="white-space:normal; text-align:left;" id="TBL-17-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. 917--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-2-2" class="td11"> <!--l. 940--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-2-2"
class="td11"><!--l. 917--><p class="noindent" ><span class="td11"> <!--l. 940--><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
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><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:normal; text-align:left;" id="TBL-17-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. 918--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 941--><p class="noindent" ><code class="lstinline"><span style="color:#000000">amold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-18-3-2"
class="cmtt-12">amold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-17-3-2" class="td11"> <!--l. 941--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="td11"><!--l. 918--><p class="noindent" ><span class="lstinline"></span><span class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">_base_sparse_mat</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmtt-12">class</span><span class="cmr-12">.</span> </td>
class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span
class="cmti-12">x</span><span class="lstinline"></span><span
class="cmtt-12">_base_sparse_mat</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-17-4-"><td style="white-space:normal; text-align:left;" id="TBL-17-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. 919--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-4-2" class="td11"> <!--l. 942--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-4-2"
class="td11"><!--l. 919--><p class="noindent" ><span class="td11"> <!--l. 942--><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
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span> class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
<span <span
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">20</span></a><span class="cmr-12">21</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:normal; text-align:left;" id="TBL-17-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. 926--><p class="noindent" > <!--l. 949--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span <h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.2 </span></span> <a class="cmr-12">5.9.2 </span></span> <a
id="x26-270005.9.2"></a><span id="x26-270005.9.2"></a><span
class="cmr-12">Method: clone</span></h5> class="cmr-12">Method: clone</span></h5>
<div class="center" <div class="center"
> >
<!--l. 928--><p class="noindent" > <!--l. 951--><p class="noindent" >
<!--l. 929--><p class="noindent" ><span class="lstinline"></span><span <!--l. 952--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">clone</span><span style="color:#000000">(</span><span style="color:#000000">pout</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">)</span></code><br />
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
class="cmtt-12">%</span><span
class="cmtt-12">clone</span><span
class="cmtt-12">(</span><span
class="cmtt-12">pout</span><span
class="cmtt-12">,</span><span
class="cmtt-12">info</span><span
class="cmtt-12">)</span><br />
</div> </div>
<!--l. 932--><p class="noindent" ><span <!--l. 955--><p class="noindent" ><span
class="cmr-12">Create a (deep) copy of the preconditioner object.</span> class="cmr-12">Create a (deep) copy of the preconditioner object.</span>
<!--l. 935--><p class="noindent" ><span <!--l. 958--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-18" class="tabular" <div class="tabular"> <table id="TBL-19" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-18-1g"><col ><colgroup id="TBL-19-1g"><col
id="TBL-18-1"><col id="TBL-19-1"><col
id="TBL-18-2"></colgroup><tr id="TBL-19-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-18-1-"><td style="white-space:normal; text-align:left;" id="TBL-18-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. 938--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 961--><p class="noindent" ><code class="lstinline"><span style="color:#000000">pout</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-19-1-2"
class="cmtt-12">pout</span> </td><td style="white-space:normal; text-align:left;" id="TBL-18-1-2" class="td11"> <!--l. 961--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">amg_</span></code><span
class="td11"><!--l. 938--><p class="noindent" ><span class="lstinline"></span><span class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">prec_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="cmtt-12">type</span><span class="cmr-12">.</span> </td>
class="cmtt-12">(</span><span
class="cmtt-12">amg_</span><span
class="cmti-12">x</span><span class="lstinline"></span><span
class="cmtt-12">prec_type</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">out</span><span
class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-18-2-"><td style="white-space:normal; text-align:left;" id="TBL-18-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. 939--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-2-2" class="td11"> <!--l. 962--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-2-2"
class="td11"><!--l. 939--><p class="noindent" ><span class="td11"> <!--l. 962--><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
class="cmr-12">must</span> class="cmr-12">must</span>
<span <span
class="cmr-12">be chosen according to the </span><span class="lstinline"></span><span class="cmr-12">be chosen according to the </span><code class="lstinline"><span style="color:#000000">real</span></code><span
class="cmtt-12">real</span><span class="cmr-12">/</span><code class="lstinline"><span style="color:#000000">complex</span></code><span
class="cmr-12">/</span><span class="lstinline"></span><span
class="cmtt-12">complex</span><span
class="cmr-12">, single/double precision</span> 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:normal; text-align:left;" id="TBL-18-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"><!--l. 942--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 965--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-19-3-2"
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-18-3-2" class="td11"> <!--l. 965--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="td11"><!--l. 942--><p class="noindent" ><span class="lstinline"></span><span class="cmr-12">.</span> </td>
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">out</span><span
class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-18-4-"><td style="white-space:normal; text-align:left;" id="TBL-18-4-1" style="vertical-align:baseline;" id="TBL-19-4-"><td style="white-space:normal; text-align:left;" id="TBL-19-4-1"
class="td11"><!--l. 943--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-4-2" class="td11"> <!--l. 966--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-4-2"
class="td11"><!--l. 943--><p class="noindent" ><span class="td11"> <!--l. 966--><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
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><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:normal; text-align:left;" id="TBL-18-5-1" style="vertical-align:baseline;" id="TBL-19-5-"><td style="white-space:normal; text-align:left;" id="TBL-19-5-1"
class="td11"> </td> </tr></table></div> class="td11"> </td> </tr></table> </div>
<!--l. 948--><p class="noindent" > <!--l. 971--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span <h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.3 </span></span> <a class="cmr-12">5.9.3 </span></span> <a
id="x26-280005.9.3"></a><span id="x26-280005.9.3"></a><span
class="cmr-12">Method: sizeof</span></h5> class="cmr-12">Method: sizeof</span></h5>
<div class="center" <div class="center"
> >
<!--l. 950--><p class="noindent" > <!--l. 973--><p class="noindent" >
<!--l. 951--><p class="noindent" ><span class="lstinline"></span><span <!--l. 974--><p class="noindent" ><code class="lstinline"><span style="color:#000000">sz</span><span style="color:#000000"> </span><span style="color:#000000">=</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">sizeof</span><span style="color:#000000">([</span><span style="color:#000000">global</span><span style="color:#000000">])</span></code><br />
class="cmtt-12">sz</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">=</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
class="cmtt-12">%</span><span
class="cmtt-12">sizeof</span><span
class="cmtt-12">([</span><span
class="cmtt-12">global</span><span
class="cmtt-12">])</span><br />
</div> </div>
<div class="tabular"> <table id="TBL-19" class="tabular" <div class="tabular"> <table id="TBL-20" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-19-1g"><col ><colgroup id="TBL-20-1g"><col
id="TBL-19-1"><col id="TBL-20-1"><col
id="TBL-19-2"></colgroup><tr id="TBL-20-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-19-1-"><td style="white-space:normal; text-align:left;" id="TBL-19-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. 955--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 978--><p class="noindent" ><code class="lstinline"><span style="color:#000000">global</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-20-1-2"
class="cmtt-12">global</span> </td> <td style="white-space:normal; text-align:left;" id="TBL-19-1-2" class="td11"> <!--l. 978--><p class="noindent" ><code class="lstinline"><span style="color:#000000">logical</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="td11"><!--l. 955--><p class="noindent" ><span class="lstinline"></span><span class="cmr-12">.</span> </td>
class="cmtt-12">logical</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-19-2-"><td style="white-space:normal; text-align:left;" id="TBL-19-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. 956--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-2-2" class="td11"> <!--l. 979--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-20-2-2"
class="td11"><!--l. 956--><p class="noindent" ><span class="td11"> <!--l. 979--><p class="noindent" ><span
class="cmr-12">Whether the global or local preconditioner memory occupation is</span> class="cmr-12">Whether the global or local preconditioner memory occupation is</span>
<span <span
class="cmr-12">desired. Default: </span><span class="lstinline"></span><span class="cmr-12">desired. Default: </span><code class="lstinline"><span style="color:#000000">.</span><span style="color:#000000">false</span><span style="color:#000000">.</span></code><span
class="cmtt-12">.</span><span class="cmr-12">.</span> </td>
class="cmtt-12">false</span><span
class="cmtt-12">.</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-19-3-"><td style="white-space:normal; text-align:left;" id="TBL-19-3-1" style="vertical-align:baseline;" id="TBL-20-3-"><td style="white-space:normal; text-align:left;" id="TBL-20-3-1"
class="td11"> </td> </tr></table> class="td11"> </td> </tr></table> </div>
</div> <span <span
class="cmr-12">Return memory footprint in bytes.</span> class="cmr-12">Return memory footprint in bytes.</span>
<!--l. 963--><p class="noindent" > <!--l. 986--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span <h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.4 </span></span> <a class="cmr-12">5.9.4 </span></span> <a
id="x26-290005.9.4"></a><span id="x26-290005.9.4"></a><span
@ -280,21 +184,10 @@ class="cmr-12">Method: allocate</span><span
class="cmr-12">_wrk</span></h5> class="cmr-12">_wrk</span></h5>
<div class="center" <div class="center"
> >
<!--l. 965--><p class="noindent" > <!--l. 988--><p class="noindent" >
<!--l. 966--><p class="noindent" ><span class="lstinline"></span><span <!--l. 989--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">allocate_wrk</span><span style="color:#000000">(</span><span style="color:#000000">info</span><span style="color:#000000">[,</span><span style="color:#000000"> </span><span style="color:#000000">vmold</span><span style="color:#000000">])</span></code><br />
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
class="cmtt-12">%</span><span
class="cmtt-12">allocate_wrk</span><span
class="cmtt-12">(</span><span
class="cmtt-12">info</span><span
class="cmtt-12">[,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">vmold</span><span
class="cmtt-12">])</span><br />
</div> </div>
<!--l. 969--><p class="noindent" ><span <!--l. 992--><p class="noindent" ><span
class="cmr-12">Allocate internal work vectors. Each application of the preconditioner uses a number of</span> class="cmr-12">Allocate internal work vectors. Each application of the preconditioner uses a number of</span>
<span <span
class="cmr-12">work vectors which are allocated internally as necessary; therefore allocation and</span> class="cmr-12">work vectors which are allocated internally as necessary; therefore allocation and</span>
@ -308,82 +201,58 @@ class="cmr-12">notably GPUs, memory allocation is a slow operation, and the defa
class="cmr-12">lead to a slowdown. This method allows to trade space for time by preallocating</span> class="cmr-12">lead to a slowdown. This method allows to trade space for time by preallocating</span>
<span <span
class="cmr-12">the internal workspace outside of the invocation of a Krylov method. When</span> class="cmr-12">the internal workspace outside of the invocation of a Krylov method. When</span>
<span
class="cmr-12">using GPUs or other specialized devices, the </span><code class="lstinline"><span style="color:#000000">vmold</span></code> <span
class="cmr-12">argument is also necessary</span>
<span
class="cmr-12">using GPUs or other specialized devices, the </span><span class="lstinline"></span><span
class="cmtt-12">vmold</span> <span
class="cmr-12">argument is also necessary</span>
<span <span
class="cmr-12">to ensure the internal work vectors are of the appropriate dynamic type to</span> class="cmr-12">to ensure the internal work vectors are of the appropriate dynamic type to</span>
<span <span
class="cmr-12">exploit the accelerator hardware; when allocation occurs internally this is</span> class="cmr-12">exploit the accelerator hardware; when allocation occurs internally this is</span>
<span <span
class="cmr-12">taken care of based on the dynamic type of the </span><span class="lstinline"></span><span class="cmr-12">taken care of based on the dynamic type of the </span><code class="lstinline"><span style="color:#000000">x</span></code> <span
class="cmtt-12">x</span> <span class="cmr-12">argument to the </span><code class="lstinline"><span style="color:#000000">apply</span></code>
class="cmr-12">argument to the </span><span class="lstinline"></span><span
class="cmtt-12">apply</span>
<span <span
class="cmr-12">method.</span> class="cmr-12">method.</span>
<!--l. 985--><p class="noindent" ><span <!--l. 1008--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-20" class="tabular" <div class="tabular"> <table id="TBL-21" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-20-1g"><col ><colgroup id="TBL-21-1g"><col
id="TBL-20-1"><col id="TBL-21-1"><col
id="TBL-20-2"></colgroup><tr id="TBL-21-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-20-1-"><td style="white-space:normal; text-align:left;" id="TBL-20-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. 988--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 1011--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-21-1-2"
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-20-1-2" class="td11"> <!--l. 1011--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="td11"><!--l. 988--><p class="noindent" ><span class="lstinline"></span><span class="cmr-12">.</span> </td>
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">out</span><span
class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-20-2-"><td style="white-space:normal; text-align:left;" id="TBL-20-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. 989--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-20-2-2" class="td11"> <!--l. 1012--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-21-2-2"
class="td11"><!--l. 989--><p class="noindent" ><span class="td11"> <!--l. 1012--><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
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><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:normal; text-align:left;" id="TBL-20-3-1" style="vertical-align:baseline;" id="TBL-21-3-"><td style="white-space:normal; text-align:left;" id="TBL-21-3-1"
class="td11"><!--l. 990--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 1013--><p class="noindent" ><code class="lstinline"><span style="color:#000000">vmold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-21-3-2"
class="cmtt-12">vmold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-20-3-2" class="td11"> <!--l. 1013--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="td11"><!--l. 990--><p class="noindent" ><span class="lstinline"></span><span class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">_base_vect_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmtt-12">class</span><span class="cmr-12">.</span> </td>
class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span
class="cmti-12">x</span><span class="lstinline"></span><span
class="cmtt-12">_base_vect_type</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-20-4-"><td style="white-space:normal; text-align:left;" id="TBL-20-4-1" style="vertical-align:baseline;" id="TBL-21-4-"><td style="white-space:normal; text-align:left;" id="TBL-21-4-1"
class="td11"><!--l. 991--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-20-4-2" class="td11"> <!--l. 1014--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-21-4-2"
class="td11"><!--l. 991--><p class="noindent" ><span class="td11"> <!--l. 1014--><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:normal; text-align:left;" id="TBL-20-5-1" style="vertical-align:baseline;" id="TBL-21-5-"><td style="white-space:normal; text-align:left;" id="TBL-21-5-1"
class="td11"> </td> </tr></table></div> class="td11"> </td> </tr></table> </div>
<!--l. 997--><p class="noindent" > <!--l. 1020--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span <h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.5 </span></span> <a class="cmr-12">5.9.5 </span></span> <a
id="x26-300005.9.5"></a><span id="x26-300005.9.5"></a><span
@ -391,50 +260,37 @@ class="cmr-12">Method: free</span><span
class="cmr-12">_wrk</span></h5> class="cmr-12">_wrk</span></h5>
<div class="center" <div class="center"
> >
<!--l. 999--><p class="noindent" > <!--l. 1022--><p class="noindent" >
<!--l. 1000--><p class="noindent" ><span class="lstinline"></span><span <!--l. 1023--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">free_wrk</span><span style="color:#000000">(</span><span style="color:#000000">info</span><span style="color:#000000">)</span></code><br />
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
class="cmtt-12">%</span><span
class="cmtt-12">free_wrk</span><span
class="cmtt-12">(</span><span
class="cmtt-12">info</span><span
class="cmtt-12">)</span><br />
</div> </div>
<!--l. 1003--><p class="noindent" ><span <!--l. 1026--><p class="noindent" ><span
class="cmr-12">Deallocate internal work vectors.</span> class="cmr-12">Deallocate internal work vectors.</span>
<!--l. 1006--><p class="noindent" ><span <!--l. 1029--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-21" class="tabular" <div class="tabular"> <table id="TBL-22" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-21-1g"><col ><colgroup id="TBL-22-1g"><col
id="TBL-21-1"><col id="TBL-22-1"><col
id="TBL-21-2"></colgroup><tr id="TBL-22-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-21-1-"><td style="white-space:normal; text-align:left;" id="TBL-21-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. 1009--><p class="noindent" ><span class="lstinline"></span><span class="td11"> <!--l. 1032--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-22-1-2"
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-21-1-2" class="td11"> <!--l. 1032--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="td11"><!--l. 1009--><p class="noindent" ><span class="lstinline"></span><span class="cmr-12">.</span> </td>
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">out</span><span
class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-21-2-"><td style="white-space:normal; text-align:left;" id="TBL-21-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. 1010--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-21-2-2" class="td11"> <!--l. 1033--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-22-2-2"
class="td11"><!--l. 1010--><p class="noindent" ><span class="td11"> <!--l. 1033--><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
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><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:normal; text-align:left;" id="TBL-21-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"> </td> </tr></table></div> class="td11"> </td> </tr></table> </div>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 79--><div class="crosslinks"><p class="noindent"><span <!--l. 96--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu3.html" ><span href="userhtmlsu3.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -31,24 +31,25 @@ class="cmr-12">] </span></p></div>
class="cmr-12">3.2 </span></span> <a class="cmr-12">3.2 </span></span> <a
id="x10-90003.2"></a><span id="x10-90003.2"></a><span
class="cmr-12">Optional third party libraries</span></h4> class="cmr-12">Optional third party libraries</span></h4>
<!--l. 81--><p class="noindent" ><span <!--l. 98--><p class="noindent" ><span
class="cmr-12">We provide interfaces to the following third-party software libraries; note that these are</span> class="cmr-12">We provide interfaces to the following third-party software libraries; note that these are</span>
<span <span
class="cmr-12">optional, but if you enable them some defaults for multilevel preconditioners may</span> class="cmr-12">optional, but if you enable them some defaults for multilevel preconditioners may</span>
<span <span
class="cmr-12">change to reflect their presence.</span> class="cmr-12">change to reflect their presence.</span>
<!--l. 85--><p class="indent" > <!--l. 102--><p class="indent" >
<dl class="description"><dt class="description"> <dl class="description"><dt class="description">
<span <span
class="cmbx-12">UMFPACK</span> </dt><dd class="cmbx-12">UMFPACK</span> </dt><dd
class="description"><span class="cite"><span class="description">
<!--l. 103--><p class="noindent" ><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">15</span></a><span class="cmr-12">16</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 library,</span>
<span <span
class="cmr-12">library, available from </span><a class="cmr-12">available from </span><a
href="faculty.cse.tamu.edu/davis/suitesparse.html" class="url" ><span href="faculty.cse.tamu.edu/davis/suitesparse.html" class="url" ><span
class="cmtt-12">faculty.cse.tamu.edu/davis/suitesparse.html</span></a><span class="cmtt-12">faculty.cse.tamu.edu/davis/suitesparse.html</span></a><span
class="cmr-12">;</span> class="cmr-12">;</span>
@ -60,36 +61,38 @@ class="cmr-12">double precision real and complex data. We tested
class="cmr-12">of SuiteSparse. Note that for configuring SuiteSparse you should</span> class="cmr-12">of SuiteSparse. Note that for configuring SuiteSparse you should</span>
<span <span
class="cmr-12">provide the right path to the BLAS and LAPACK libraries in the</span> class="cmr-12">provide the right path to the BLAS and LAPACK libraries in the</span>
<span class="obeylines-h"><span class="verb"><span <span class="obeylines-h"><code class="verb">SuiteSparse_config/SuiteSparse_config.mk</code></span> <span
class="cmtt-12">SuiteSparse_config/SuiteSparse_config.mk</span></span></span> <span
class="cmr-12">file.</span> class="cmr-12">file.</span>
</dd><dt class="description"> </dd><dt class="description">
<span <span
class="cmbx-12">MUMPS</span> </dt><dd class="cmbx-12">MUMPS</span> </dt><dd
class="description"><span class="cite"><span class="description">
<!--l. 110--><p class="noindent" ><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#XMUMPS"><span href="userhtmlli5.html#XMUMPS"><span
class="cmr-12">2</span></a><span class="cmr-12">2</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
href="mumps.enseeiht.fr" class="url" ><span href="mumps.enseeiht.fr" class="url" ><span
class="cmtt-12">mumps.enseeiht.fr</span></a><span class="cmtt-12">mumps.enseeiht.fr</span></a><span
class="cmr-12">; it provides sequential and parallel factorizations and</span> class="cmr-12">;</span>
<span <span
class="cmr-12">triangular system solution for single and double precision, real and complex</span> class="cmr-12">it provides sequential and parallel factorizations and triangular system</span>
<span <span
class="cmr-12">data. We tested versions 4.10.0 and 5.0.1.</span> class="cmr-12">solution for single and double precision, real and complex data. We tested</span>
<span
class="cmr-12">versions 4.10.0 and 5.0.1.</span>
</dd><dt class="description"> </dd><dt class="description">
<span <span
class="cmbx-12">SuperLU</span> </dt><dd class="cmbx-12">SuperLU</span> </dt><dd
class="description"><span class="cite"><span class="description">
<!--l. 115--><p class="noindent" ><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">16</span></a><span class="cmr-12">17</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
href="crd.lbl.gov/~xiaoye/SuperLU/" class="url" ><span href="crd.lbl.gov/~xiaoye/SuperLU/" class="url" ><span
class="cmtt-12">crd.lbl.gov/</span><span class="cmtt-12">crd.lbl.gov/</span><span
class="cmtt-12">~</span><span class="cmtt-12">~</span><span
@ -105,35 +108,37 @@ class="cmr-12">remember to define the BLASLIB variable in the make.inc file.</sp
<span <span
class="cmbx-12">SuperLU</span><span class="cmbx-12">SuperLU</span><span
class="cmbx-12">_Dist</span> </dt><dd class="cmbx-12">_Dist</span> </dt><dd
class="description"><span class="cite"><span class="description">
<!--l. 121--><p class="noindent" ><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">26</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 sparse LU factorization package available from the same</span> class="cmr-12">A sparse LU factorization package available from the same site as</span>
<span <span
class="cmr-12">site as SuperLU; it provides parallel factorization and triangular system</span> class="cmr-12">SuperLU; it provides parallel factorization and triangular system solution</span>
<span <span
class="cmr-12">solution for double precision real and complex data. We tested versions</span> class="cmr-12">for double precision real and complex data. We tested versions 3.3 and</span>
<span <span
class="cmr-12">3.3 and 4.2. If you installed BLAS from ATLAS, remember to define the</span> class="cmr-12">4.2. If you installed BLAS from ATLAS, remember to define the BLASLIB</span>
<span
class="cmr-12">BLASLIB variable in the make.inc file and to add the </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">-std=c99</span></span></span> <span
class="cmr-12">option to</span>
<span <span
class="cmr-12">the C compiler options. Note that this library requires the ParMETIS library</span> class="cmr-12">variable in the make.inc file and to add the </span><span class="obeylines-h"><code class="verb">-std=c99</code></span> <span
class="cmr-12">option to the C</span>
<span <span
class="cmr-12">for parallel graph partitioning and fill-reducing matrix ordering, available</span> class="cmr-12">compiler options. Note that this library requires the ParMETIS library for</span>
<span <span
class="cmr-12">from </span><a class="cmr-12">parallel graph partitioning and fill-reducing matrix ordering, available from</span>
<a
href="glaros.dtc.umn.edu/gkhome/metis/parmetis/overview" class="url" ><span href="glaros.dtc.umn.edu/gkhome/metis/parmetis/overview" class="url" ><span
class="cmtt-12">glaros.dtc.umn.edu/gkhome/metis/parmetis/overview</span></a><span class="cmtt-12">glaros.dtc.umn.edu/gkhome/metis/parmetis/overview</span></a><span
class="cmr-12">.</span></dd></dl> class="cmr-12">.</span></dd></dl>
<!--l. 116--><div class="crosslinks"><p class="noindent"><span <!--l. 133--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu3.html" ><span href="userhtmlsu3.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -150,6 +155,6 @@ class="cmr-12">] [</span><a
href="userhtmlse3.html#userhtmlsu2.html" ><span href="userhtmlse3.html#userhtmlsu2.html" ><span
class="cmr-12">up</span></a><span class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<!--l. 116--><p class="indent" > <a <!--l. 133--><p class="indent" > <a
id="tailuserhtmlsu2.html"></a> id="tailuserhtmlsu2.html"></a>
</body></html> </body></html>

File diff suppressed because it is too large Load Diff

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

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 199--><div class="crosslinks"><p class="noindent"><span <!--l. 216--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu4.html" ><span href="userhtmlsu4.html" ><span
class="cmr-12">prev</span></a><span class="cmr-12">prev</span></a><span
@ -28,26 +28,22 @@ class="cmr-12">] </span></p></div>
class="cmr-12">3.5 </span></span> <a class="cmr-12">3.5 </span></span> <a
id="x13-120003.5"></a><span id="x13-120003.5"></a><span
class="cmr-12">Example and test programs</span></h4> class="cmr-12">Example and test programs</span></h4>
<!--l. 200--><p class="noindent" ><span <!--l. 217--><p class="noindent" ><span
class="cmr-12">The package contains a </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">The package contains a </span><span class="obeylines-h"><code class="verb">samples</code></span> <span
class="cmtt-12">samples</span></span></span> <span class="cmr-12">directory, divided in two subdirs </span><span class="obeylines-h"><code class="verb">simple</code></span> <span
class="cmr-12">directory, divided in two subdirs </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">simple</span></span></span> <span
class="cmr-12">and</span> class="cmr-12">and</span>
<span class="obeylines-h"><span class="verb"><span <span class="obeylines-h"><code class="verb">advanced</code></span><span
class="cmtt-12">advanced</span></span></span><span class="cmr-12">; both of them are further divided into </span><span class="obeylines-h"><code class="verb">fileread</code></span> <span
class="cmr-12">; both of them are further divided into </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">and </span><span class="obeylines-h"><code class="verb">pdegen</code></span> <span
class="cmtt-12">fileread</span></span></span> <span
class="cmr-12">and </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">pdegen</span></span></span> <span
class="cmr-12">subdirectories.</span> class="cmr-12">subdirectories.</span>
<span <span
class="cmr-12">Their purpose is as follows:</span> class="cmr-12">Their purpose is as follows:</span>
<dl class="description"><dt class="description"> <dl class="description"><dt class="description">
<span <span
class="cmtt-12">simple</span> </dt><dd class="cmtt-12">simple</span> </dt><dd
class="description"><span class="description">
class="cmr-12">contains a set of simple example programs with a predefined choice of</span> <!--l. 222--><p class="noindent" ><span
class="cmr-12">contains a set of simple example programs with a predefined choice of</span>
<span <span
class="cmr-12">preconditioners, selectable via integer values. These are intended to get</span> class="cmr-12">preconditioners, selectable via integer values. These are intended to get</span>
<span <span
@ -55,21 +51,19 @@ class="cmr-12">acquainted with the multilevel preconditioners available in AMG4P
</dd><dt class="description"> </dd><dt class="description">
<span <span
class="cmtt-12">advanced</span> </dt><dd class="cmtt-12">advanced</span> </dt><dd
class="description"><span class="description">
class="cmr-12">contains a set of more sophisticated examples that will allow the user,</span> <!--l. 226--><p class="noindent" ><span
class="cmr-12">contains a set of more sophisticated examples that will allow the user, via</span>
<span <span
class="cmr-12">via the input files in the </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">the input files in the </span><span class="obeylines-h"><code class="verb">runs</code></span> <span
class="cmtt-12">runs</span></span></span> <span class="cmr-12">subdirectories, to experiment with the full range</span>
class="cmr-12">subdirectories, to experiment with the full</span>
<span <span
class="cmr-12">range of preconditioners implemented in the package.</span></dd></dl> class="cmr-12">of preconditioners implemented in the package.</span></dd></dl>
<!--l. 214--><p class="noindent" ><span <!--l. 231--><p class="noindent" ><span
class="cmr-12">The </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">The </span><span class="obeylines-h"><code class="verb">fileread</code></span> <span
class="cmtt-12">fileread</span></span></span> <span
class="cmr-12">directories contain sample programs that read sparse matrices from files,</span> class="cmr-12">directories contain sample programs that read sparse matrices from files,</span>
<span <span
class="cmr-12">according to the Matrix Market or the Harwell-Boeing storage format; the </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">according to the Matrix Market or the Harwell-Boeing storage format; the </span><span class="obeylines-h"><code class="verb">pdegen</code></span>
class="cmtt-12">pdegen</span></span></span>
<span <span
class="cmr-12">programs generate matrices in full parallel mode from the discretization of a sample</span> class="cmr-12">programs generate matrices in full parallel mode from the discretization of a sample</span>
<span <span
@ -86,6 +80,12 @@ class="cmr-12">partial differential equation.</span>
<!--l. 1--><div class="crosslinks"><p class="noindent"><span <!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu4.html" ><span href="userhtmlsu4.html" ><span

@ -38,31 +38,19 @@ class="cmr-12">(see Table</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse4.html#x14-13015r1"><span 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">). This preconditioner is chosen by simply specifying </span><span class="lstinline"></span><span class="cmr-12">). This preconditioner is chosen by simply specifying </span><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">ML</span><span style="color:#000000">&#8217;</span></code> <span
class="cmtt-12">&#8217;</span><span
class="cmtt-12">ML</span><span
class="cmtt-12">&#8217;</span> <span
class="cmr-12">as the</span> class="cmr-12">as the</span>
<span <span
class="cmr-12">second argument of </span><span class="lstinline"></span><span class="cmr-12">second argument of </span><code class="lstinline"><span style="color:#000000">P</span><span style="color:#000000">%</span><span style="color:#000000">init</span></code> <span
class="cmtt-12">P</span><span class="cmr-12">(a call to </span><code class="lstinline"><span style="color:#000000">P</span><span style="color:#000000">%</span><span style="color:#000000">set</span></code> <span
class="cmtt-12">%</span><span
class="cmtt-12">init</span> <span
class="cmr-12">(a call to </span><span class="lstinline"></span><span
class="cmtt-12">P</span><span
class="cmtt-12">%</span><span
class="cmtt-12">set</span> <span
class="cmr-12">is not needed) and is applied</span> class="cmr-12">is not needed) and is applied</span>
<span <span
class="cmr-12">with the CG solver provided by PSBLAS (the matrix of the system to be</span> class="cmr-12">with the CG solver provided by PSBLAS (the matrix of the system to be</span>
<span <span
class="cmr-12">solved is assumed to be positive definite). As previously observed, the modules</span> class="cmr-12">solved is assumed to be positive definite). As previously observed, the modules</span>
<span class="lstinline"></span><span <code class="lstinline"><span style="color:#000000">psb_base_mod</span></code><span
class="cmtt-12">psb_base_mod</span><span class="cmr-12">, </span><code class="lstinline"><span style="color:#000000">amg_prec_mod</span></code> <span
class="cmr-12">, </span><span class="lstinline"></span><span class="cmr-12">and </span><code class="lstinline"><span style="color:#000000">psb_krylov_mod</span></code> <span
class="cmtt-12">amg_prec_mod</span> <span
class="cmr-12">and </span><span class="lstinline"></span><span
class="cmtt-12">psb_krylov_mod</span> <span
class="cmr-12">must be used by the example</span> class="cmr-12">must be used by the example</span>
<span <span
class="cmr-12">program.</span> class="cmr-12">program.</span>
@ -75,12 +63,9 @@ class="cmr-12">through the PSBLAS routines for sparse matrix and vector manageme
<span <span
class="cmr-12">is not reported here for the sake of conciseness. The complete code can be</span> class="cmr-12">is not reported here for the sake of conciseness. The complete code can be</span>
<span <span
class="cmr-12">found in the example program file </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">found in the example program file </span><span class="obeylines-h"><code class="verb">amg_dexample_ml.f90</code></span><span
class="cmtt-12">amg_dexample_ml.f90</span></span></span><span
class="cmr-12">, in the directory</span> class="cmr-12">, in the directory</span>
<span class="obeylines-h"><span class="verb"><span <span class="obeylines-h"><code class="verb">samples/simple/file</code></span><span class="obeylines-h"><code class="verb">read</code></span> <span
class="cmtt-12">samples/simple/file</span></span></span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">read</span></span></span> <span
class="cmr-12">of the AMG4PSBLAS implementation (see Section</span><span class="cmr-12">of the AMG4PSBLAS implementation (see Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlsu5.html#x13-120003.5"><span href="userhtmlsu5.html#x13-120003.5"><span
@ -88,15 +73,14 @@ class="cmr-12">3.5</span><!--tex4ht:ref: sec:ex_and_test --></a><span
class="cmr-12">). A</span> class="cmr-12">). A</span>
<span <span
class="cmr-12">sample test problem along with the relevant input data is available in</span> class="cmr-12">sample test problem along with the relevant input data is available in</span>
<span class="obeylines-h"><span class="verb"><span <span class="obeylines-h"><code class="verb">samples/simple/fileread/runs</code></span><span
class="cmtt-12">samples/simple/fileread/runs</span></span></span><span
class="cmr-12">. For details on the use of the PSBLAS routines, see</span> class="cmr-12">. For details on the use of the PSBLAS routines, see</span>
<span <span
class="cmr-12">the PSBLAS User&#8217;s Guide</span><span class="cmr-12">the PSBLAS User&#8217;s Guide</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#XPSBLASGUIDE"><span href="userhtmlli5.html#XPSBLASGUIDE"><span
class="cmr-12">20</span></a><span class="cmr-12">21</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">.</span> class="cmr-12">.</span>
@ -114,9 +98,7 @@ class="cmr-12">5</span><!--tex4ht:ref: sec:userinterface --></a> <span
class="cmr-12">for</span> class="cmr-12">for</span>
<span <span
class="cmr-12">details). If these versions are installed, the corresponding codes are available in</span> class="cmr-12">details). If these versions are installed, the corresponding codes are available in</span>
<span class="obeylines-h"><span class="verb"><span <span class="obeylines-h"><code class="verb">samples/simple/file</code></span><span class="obeylines-h"><code class="verb">read</code></span><span
class="cmtt-12">samples/simple/file</span></span></span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">read</span></span></span><span
class="cmr-12">.</span> class="cmr-12">.</span>
@ -133,7 +115,7 @@ class="cmr-12">.</span>
<div class="minipage"><pre class="verbatim" id="verbatim-6"> <div class="minipage"><pre class="verbatim" id="verbatim-7">
&#x00A0;&#x00A0;use&#x00A0;psb_base_mod &#x00A0;&#x00A0;use&#x00A0;psb_base_mod
&#x00A0;&#x00A0;use&#x00A0;amg_prec_mod &#x00A0;&#x00A0;use&#x00A0;amg_prec_mod
&#x00A0;&#x00A0;use&#x00A0;psb_krylov_mod &#x00A0;&#x00A0;use&#x00A0;psb_krylov_mod
@ -167,6 +149,7 @@ class="cmr-12">.</span>
!&#x00A0;build&#x00A0;the&#x00A0;preconditioner !&#x00A0;build&#x00A0;the&#x00A0;preconditioner
&#x00A0;&#x00A0;call&#x00A0;P%hierarchy_build(A,desc_A,info) &#x00A0;&#x00A0;call&#x00A0;P%hierarchy_build(A,desc_A,info)
&#x00A0;&#x00A0;call&#x00A0;P%smoothers_build(A,desc_A,info) &#x00A0;&#x00A0;call&#x00A0;P%smoothers_build(A,desc_A,info)
! !
!&#x00A0;set&#x00A0;the&#x00A0;solver&#x00A0;parameters&#x00A0;and&#x00A0;the&#x00A0;initial&#x00A0;guess !&#x00A0;set&#x00A0;the&#x00A0;solver&#x00A0;parameters&#x00A0;and&#x00A0;the&#x00A0;initial&#x00A0;guess
&#x00A0;&#x00A0;...&#x00A0;... &#x00A0;&#x00A0;...&#x00A0;...
@ -185,10 +168,10 @@ class="cmr-12">.</span>
&#x00A0;&#x00A0;call&#x00A0;psb_exit(ctxt) &#x00A0;&#x00A0;call&#x00A0;psb_exit(ctxt)
&#x00A0;&#x00A0;stop &#x00A0;&#x00A0;stop
</pre> </pre>
<!--l. 255--><p class="nopar" > <!--l. 255--><p class="nopar" > </div>
</div>
<br /> <div class="caption" <br /> <div class="caption"
><span class="id">Listing 1: </span><span ><span class="id">Listing 1: </span><span
class="content">setup and application of the default multilevel preconditioner (example 1). class="content">setup and application of the default multilevel preconditioner (example 1).
@ -216,10 +199,7 @@ class="cmr-12">sweeps. Note that the ILU(0) factorization (plus triangular solve
class="cmr-12">local solver for the block-Jacobi sweeps, since this is the default associated</span> class="cmr-12">local solver for the block-Jacobi sweeps, since this is the default associated</span>
<span <span
class="cmr-12">with block-Jacobi 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><code class="lstinline"><span style="color:#000000">P</span><span style="color:#000000">%</span><span style="color:#000000">init</span></code><span
class="cmtt-12">P</span><span
class="cmtt-12">%</span><span
class="cmtt-12">init</span><span
class="cmr-12">. Furthermore, specifying block-Jacobi as</span> class="cmr-12">. Furthermore, specifying block-Jacobi as</span>
<span <span
class="cmr-12">coarsest-level solver implies that the coarsest-level matrix is distributed among</span> class="cmr-12">coarsest-level solver implies that the coarsest-level matrix is distributed among</span>
@ -255,8 +235,7 @@ 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</span> class="cmr-12">are included in the example program</span>
<span <span
class="cmr-12">file </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">file </span><span class="obeylines-h"><code class="verb">amg_dexample_ml.f90</code></span> <span
class="cmtt-12">amg_dexample_ml.f90</span></span></span> <span
class="cmr-12">too.</span> class="cmr-12">too.</span>
<!--l. 294--><p class="indent" > <span <!--l. 294--><p class="indent" > <span
class="cmr-12">Finally, Figure</span><span class="cmr-12">Finally, Figure</span><span
@ -270,16 +249,14 @@ class="cmr-12">i.e., RAS with overlap 2. Note also that a Krylov method differen
class="cmr-12">must be used to solve the preconditioned system, since the preconditione in</span> class="cmr-12">must be used to solve the preconditioned system, since the preconditione in</span>
<span <span
class="cmr-12">nonsymmetric. The corresponding example program is available in the file</span> class="cmr-12">nonsymmetric. The corresponding example program is available in the file</span>
<span class="obeylines-h"><span class="verb"><span <span class="obeylines-h"><code class="verb">amg_dexample_1lev.f90</code></span><span
class="cmtt-12">amg_dexample_1lev.f90</span></span></span><span
class="cmr-12">.</span> class="cmr-12">.</span>
<!--l. 301--><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>
<span <span
class="cmr-12">boundary conditions are also available in the directory </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">boundary conditions are also available in the directory </span><span class="obeylines-h"><code class="verb">samples/simple/pdegen</code></span><span
class="cmtt-12">samples/simple/pdegen</span></span></span><span
class="cmr-12">.</span> class="cmr-12">.</span>
@ -293,7 +270,7 @@ class="cmr-12">.</span>
<div class="center" <div class="center"
> >
<!--l. 318--><p class="noindent" > <!--l. 318--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-7"> <div class="minipage"><pre class="verbatim" id="verbatim-8">
...&#x00A0;... ...&#x00A0;...
!&#x00A0;build&#x00A0;a&#x00A0;V-cycle&#x00A0;preconditioner&#x00A0;with&#x00A0;1&#x00A0;block-Jacobi&#x00A0;sweep&#x00A0;(with !&#x00A0;build&#x00A0;a&#x00A0;V-cycle&#x00A0;preconditioner&#x00A0;with&#x00A0;1&#x00A0;block-Jacobi&#x00A0;sweep&#x00A0;(with
!&#x00A0;ILU(0)&#x00A0;on&#x00A0;the&#x00A0;blocks)&#x00A0;as&#x00A0;pre-&#x00A0;and&#x00A0;post-smoother,&#x00A0;and&#x00A0;8&#x00A0;&#x00A0;block-Jacobi !&#x00A0;ILU(0)&#x00A0;on&#x00A0;the&#x00A0;blocks)&#x00A0;as&#x00A0;pre-&#x00A0;and&#x00A0;post-smoother,&#x00A0;and&#x00A0;8&#x00A0;&#x00A0;block-Jacobi
@ -306,7 +283,7 @@ class="cmr-12">.</span>
&#x00A0;&#x00A0;call&#x00A0;P%smoothers_build(A,desc_A,info) &#x00A0;&#x00A0;call&#x00A0;P%smoothers_build(A,desc_A,info)
...&#x00A0;... ...&#x00A0;...
</pre> </pre>
<!--l. 333--><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 -->
@ -326,7 +303,7 @@ class="content">setup of a multilevel preconditioner based on the default decoup
<div class="center" <div class="center"
> >
<!--l. 362--><p class="noindent" > <!--l. 362--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-8"> <div class="minipage"><pre class="verbatim" id="verbatim-9">
...&#x00A0;... ...&#x00A0;...
!&#x00A0;build&#x00A0;a&#x00A0;W-cycle&#x00A0;preconditioner&#x00A0;with&#x00A0;2&#x00A0;hybrid&#x00A0;Gauss-Seidel&#x00A0;sweeps !&#x00A0;build&#x00A0;a&#x00A0;W-cycle&#x00A0;preconditioner&#x00A0;with&#x00A0;2&#x00A0;hybrid&#x00A0;Gauss-Seidel&#x00A0;sweeps
!&#x00A0;as&#x00A0;pre-&#x00A0;and&#x00A0;post-smoother,&#x00A0;a&#x00A0;distributed&#x00A0;coarsest !&#x00A0;as&#x00A0;pre-&#x00A0;and&#x00A0;post-smoother,&#x00A0;a&#x00A0;distributed&#x00A0;coarsest
@ -345,7 +322,7 @@ class="content">setup of a multilevel preconditioner based on the default decoup
&#x00A0;&#x00A0;call&#x00A0;P%smoothers_build(A,desc_A,info) &#x00A0;&#x00A0;call&#x00A0;P%smoothers_build(A,desc_A,info)
...&#x00A0;... ...&#x00A0;...
</pre> </pre>
<!--l. 383--><p class="nopar" ></div></div> <!--l. 383--><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 using class="content">setup of a multilevel preconditioner based on the coupled coarsening using
@ -366,7 +343,7 @@ weighted matching</span></div><!--tex4ht:label?: x15-14003r3 -->
<div class="center" <div class="center"
> >
<!--l. 402--><p class="noindent" > <!--l. 402--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-9"> <div class="minipage"><pre class="verbatim" id="verbatim-10">
...&#x00A0;... ...&#x00A0;...
!&#x00A0;set&#x00A0;RAS&#x00A0;with&#x00A0;overlap&#x00A0;2&#x00A0;and&#x00A0;ILU(0)&#x00A0;on&#x00A0;the&#x00A0;local&#x00A0;blocks !&#x00A0;set&#x00A0;RAS&#x00A0;with&#x00A0;overlap&#x00A0;2&#x00A0;and&#x00A0;ILU(0)&#x00A0;on&#x00A0;the&#x00A0;local&#x00A0;blocks
&#x00A0;&#x00A0;call&#x00A0;P%init(ctxt,&#8217;AS&#8217;,info) &#x00A0;&#x00A0;call&#x00A0;P%init(ctxt,&#8217;AS&#8217;,info)
@ -376,7 +353,7 @@ weighted matching</span></div><!--tex4ht:label?: x15-14003r3 -->
!&#x00A0;solve&#x00A0;Ax=b&#x00A0;with&#x00A0;preconditioned&#x00A0;BiCGSTAB !&#x00A0;solve&#x00A0;Ax=b&#x00A0;with&#x00A0;preconditioned&#x00A0;BiCGSTAB
&#x00A0;&#x00A0;call&#x00A0;psb_krylov(&#8217;BICGSTAB&#8217;,A,P,b,x,tol,desc_A,info) &#x00A0;&#x00A0;call&#x00A0;psb_krylov(&#8217;BICGSTAB&#8217;,A,P,b,x,tol,desc_A,info)
</pre> </pre>
<!--l. 414--><p class="nopar" ></div></div> <!--l. 414--><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 -->

@ -33,8 +33,7 @@ class="cmr-12">The code discussed here shows how to set up a program exploiting
<span <span
class="cmr-12">capabilities of PSBLAS and AMG4PSBLAS. The code example is available in the</span> class="cmr-12">capabilities of PSBLAS and AMG4PSBLAS. The code example is available in the</span>
<span <span
class="cmr-12">source distribution directory </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">source distribution directory </span><span class="obeylines-h"><code class="verb">amg4psblas/examples/gpu</code></span><span
class="cmtt-12">amg4psblas/examples/gpu</span></span></span><span
class="cmr-12">.</span> class="cmr-12">.</span>
<!--l. 431--><p class="indent" > <span <!--l. 431--><p class="indent" > <span
class="cmr-12">First of all, we need to include the appropriate modules and declare some auxiliary</span> class="cmr-12">First of all, we need to include the appropriate modules and declare some auxiliary</span>
@ -52,7 +51,7 @@ class="cmr-12">variables:</span>
<div class="center" <div class="center"
> >
<!--l. 452--><p class="noindent" > <!--l. 452--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-10"> <div class="minipage"><pre class="verbatim" id="verbatim-11">
program&#x00A0;amg_dexample_gpu program&#x00A0;amg_dexample_gpu
&#x00A0;&#x00A0;use&#x00A0;psb_base_mod &#x00A0;&#x00A0;use&#x00A0;psb_base_mod
&#x00A0;&#x00A0;use&#x00A0;amg_prec_mod &#x00A0;&#x00A0;use&#x00A0;amg_prec_mod
@ -67,9 +66,10 @@ program&#x00A0;amg_dexample_gpu
&#x00A0;&#x00A0;type(psb_d_hlg_sparse_mat)&#x00A0;::&#x00A0;agmold &#x00A0;&#x00A0;type(psb_d_hlg_sparse_mat)&#x00A0;::&#x00A0;agmold
&#x00A0;&#x00A0;type(psb_d_vect_gpu)&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;::&#x00A0;vgmold &#x00A0;&#x00A0;type(psb_d_vect_gpu)&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;::&#x00A0;vgmold
&#x00A0;&#x00A0;type(psb_i_vect_gpu)&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;::&#x00A0;igmold &#x00A0;&#x00A0;type(psb_i_vect_gpu)&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;::&#x00A0;igmold
&#x00A0; &#x00A0;
</pre> </pre>
<!--l. 471--><p class="nopar" ></div></div> <!--l. 471--><p class="nopar" > </div></div>
<br /> <div class="caption" <br /> <div class="caption"
><span class="id">Listing 5: </span><span ><span class="id">Listing 5: </span><span
class="content">setup of a GPU-enabled test program part one.</span></div><!--tex4ht:label?: x16-15001r5 --> class="content">setup of a GPU-enabled test program part one.</span></div><!--tex4ht:label?: x16-15001r5 -->
@ -78,8 +78,7 @@ class="content">setup of a GPU-enabled test program part one.</span></div><!--te
</div><hr class="endfloat" /> </div><hr class="endfloat" />
<!--l. 478--><p class="indent" > <span <!--l. 478--><p class="indent" > <span
class="cmr-12">In this particular example we are choosing to employ a </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">In this particular example we are choosing to employ a </span><span class="obeylines-h"><code class="verb">HLG</code></span> <span
class="cmtt-12">HLG</span></span></span> <span
class="cmr-12">data structure for</span> class="cmr-12">data structure for</span>
<span <span
class="cmr-12">sparse matrices on GPUs; for more information please refer to the PSBLAS-EXT users&#8217;</span> class="cmr-12">sparse matrices on GPUs; for more information please refer to the PSBLAS-EXT users&#8217;</span>
@ -103,7 +102,7 @@ class="cmr-12">guides).</span>
<div class="center" <div class="center"
> >
<!--l. 501--><p class="noindent" > <!--l. 501--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-11"> <div class="minipage"><pre class="verbatim" id="verbatim-12">
&#x00A0;&#x00A0;call&#x00A0;psb_init(ctxt) &#x00A0;&#x00A0;call&#x00A0;psb_init(ctxt)
&#x00A0;&#x00A0;call&#x00A0;psb_info(ctxt,iam,np) &#x00A0;&#x00A0;call&#x00A0;psb_info(ctxt,iam,np)
&#x00A0;&#x00A0;! &#x00A0;&#x00A0;!
@ -114,9 +113,10 @@ class="cmr-12">guides).</span>
&#x00A0;&#x00A0;...... &#x00A0;&#x00A0;......
&#x00A0;&#x00A0;t1&#x00A0;=&#x00A0;psb_wtime() &#x00A0;&#x00A0;t1&#x00A0;=&#x00A0;psb_wtime()
&#x00A0;&#x00A0;call&#x00A0;prec%smoothers_build(a,desc_a,info,&#x00A0;amold=agmold,&#x00A0;vmold=vgmold,&#x00A0;imold=igmold) &#x00A0;&#x00A0;call&#x00A0;prec%smoothers_build(a,desc_a,info,&#x00A0;amold=agmold,&#x00A0;vmold=vgmold,&#x00A0;imold=igmold)
&#x00A0; &#x00A0;
</pre> </pre>
<!--l. 516--><p class="nopar" ></div></div> <!--l. 516--><p class="nopar" > </div></div>
<br /> <div class="caption" <br /> <div class="caption"
><span class="id">Listing 6: </span><span ><span class="id">Listing 6: </span><span
class="content">setup of a GPU-enabled test program part two.</span></div><!--tex4ht:label?: x16-15002r6 --> class="content">setup of a GPU-enabled test program part two.</span></div><!--tex4ht:label?: x16-15002r6 -->
@ -144,11 +144,12 @@ class="cmr-12">GPU environment</span>
<div class="center" <div class="center"
> >
<!--l. 557--><p class="noindent" > <!--l. 557--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-12"> <div class="minipage"><pre class="verbatim" id="verbatim-13">
&#x00A0;&#x00A0;call&#x00A0;desc_a%cnv(mold=igmold) &#x00A0;&#x00A0;call&#x00A0;desc_a%cnv(mold=igmold)
&#x00A0;&#x00A0;call&#x00A0;a%cscnv(info,mold=agmold) &#x00A0;&#x00A0;call&#x00A0;a%cscnv(info,mold=agmold)
&#x00A0;&#x00A0;call&#x00A0;psb_geasb(x,desc_a,info,mold=vgmold) &#x00A0;&#x00A0;call&#x00A0;psb_geasb(x,desc_a,info,mold=vgmold)
&#x00A0;&#x00A0;call&#x00A0;psb_geasb(b,desc_a,info,mold=vgmold) &#x00A0;&#x00A0;call&#x00A0;psb_geasb(b,desc_a,info,mold=vgmold)
&#x00A0;&#x00A0;! &#x00A0;&#x00A0;!
&#x00A0;&#x00A0;!&#x00A0;iterative&#x00A0;method&#x00A0;parameters &#x00A0;&#x00A0;!&#x00A0;iterative&#x00A0;method&#x00A0;parameters
&#x00A0;&#x00A0;! &#x00A0;&#x00A0;!
@ -161,13 +162,15 @@ class="cmr-12">GPU environment</span>
&#x00A0;&#x00A0;call&#x00A0;prec%deallocate_wrk(info) &#x00A0;&#x00A0;call&#x00A0;prec%deallocate_wrk(info)
&#x00A0;&#x00A0;call&#x00A0;psb_barrier(ctxt) &#x00A0;&#x00A0;call&#x00A0;psb_barrier(ctxt)
&#x00A0;&#x00A0;tslv&#x00A0;=&#x00A0;psb_wtime()&#x00A0;-&#x00A0;t1 &#x00A0;&#x00A0;tslv&#x00A0;=&#x00A0;psb_wtime()&#x00A0;-&#x00A0;t1
&#x00A0;&#x00A0;...... &#x00A0;&#x00A0;......
&#x00A0;&#x00A0;call&#x00A0;psb_gpu_exit() &#x00A0;&#x00A0;call&#x00A0;psb_gpu_exit()
&#x00A0;&#x00A0;call&#x00A0;psb_exit(ctxt) &#x00A0;&#x00A0;call&#x00A0;psb_exit(ctxt)
&#x00A0;&#x00A0;stop &#x00A0;&#x00A0;stop
&#x00A0; &#x00A0;
</pre> </pre>
<!--l. 584--><p class="nopar" ></div></div> <!--l. 584--><p class="nopar" > </div></div>
<br /> <div class="caption" <br /> <div class="caption"
><span class="id">Listing 7: </span><span ><span class="id">Listing 7: </span><span
class="content">setup of a GPU-enabled test program part three.</span></div><!--tex4ht:label?: x16-15003r7 --> class="content">setup of a GPU-enabled test program part three.</span></div><!--tex4ht:label?: x16-15003r7 -->
@ -182,21 +185,21 @@ class="cmr-12">GPU, i.e. methods that do NOT employ triangular system solve kern
<span <span
class="cmr-12">satisfy this constraint include:</span> class="cmr-12">satisfy this constraint include:</span>
<ul class="itemize1"> <ul class="itemize1">
<li class="itemize"><span class="obeylines-h"><span class="verb"><span <li class="itemize">
class="cmtt-12">JACOBI</span></span></span> <!--l. 596--><p class="noindent" ><span class="obeylines-h"><code class="verb">JACOBI</code></span>
</li> </li>
<li class="itemize"><span class="obeylines-h"><span class="verb"><span <li class="itemize">
class="cmtt-12">BJAC</span></span></span> <span <!--l. 597--><p class="noindent" ><span class="obeylines-h"><code class="verb">BJAC</code></span> <span
class="cmr-12">with the following methods on the local blocks:</span> class="cmr-12">with the following methods on the local blocks:</span>
<ul class="itemize2"> <ul class="itemize2">
<li class="itemize"><span class="obeylines-h"><span class="verb"><span <li class="itemize">
class="cmtt-12">INVK</span></span></span> <!--l. 599--><p class="noindent" ><span class="obeylines-h"><code class="verb">INVK</code></span>
</li> </li>
<li class="itemize"><span class="obeylines-h"><span class="verb"><span <li class="itemize">
class="cmtt-12">INVT</span></span></span> <!--l. 600--><p class="noindent" ><span class="obeylines-h"><code class="verb">INVT</code></span>
</li> </li>
<li class="itemize"><span class="obeylines-h"><span class="verb"><span <li class="itemize">
class="cmtt-12">AINV</span></span></span></li></ul> <!--l. 601--><p class="noindent" ><span class="obeylines-h"><code class="verb">AINV</code></span></li></ul>
</li></ul> </li></ul>
<!--l. 604--><p class="noindent" ><span <!--l. 604--><p class="noindent" ><span
class="cmr-12">and their </span><span class="cmr-12">and their </span><span
@ -209,6 +212,9 @@ class="cmr-12">variants.</span>
<!--l. 1--><div class="crosslinks"><p class="noindent"><span <!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu6.html" ><span href="userhtmlsu6.html" ><span

@ -28,104 +28,63 @@ class="cmr-12">Method init</span></h4>
<div class="center" <div class="center"
> >
<!--l. 44--><p class="noindent" > <!--l. 44--><p class="noindent" >
<!--l. 45--><p class="noindent" ><span class="lstinline"></span><span <!--l. 45--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">init</span><span style="color:#000000">(</span><span style="color:#000000">contxt</span><span style="color:#000000">,</span><span style="color:#000000">ptype</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">)</span></code></div>
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
class="cmtt-12">%</span><span
class="cmtt-12">init</span><span
class="cmtt-12">(</span><span
class="cmtt-12">contxt</span><span
class="cmtt-12">,</span><span
class="cmtt-12">ptype</span><span
class="cmtt-12">,</span><span
class="cmtt-12">info</span><span
class="cmtt-12">)</span></div>
<!--l. 48--><p class="noindent" ><span <!--l. 48--><p class="noindent" ><span
class="cmr-12">This method allocates and initializes the preconditioner </span><span class="lstinline"></span><span class="cmr-12">This method allocates and initializes the preconditioner </span><code class="lstinline"><span style="color:#000000">p</span></code><span
class="cmtt-12">p</span><span
class="cmr-12">, according to the</span> class="cmr-12">, according to the</span>
<span <span
class="cmr-12">preconditioner type chosen by the user.</span> class="cmr-12">preconditioner type chosen by the user.</span>
<!--l. 52--><p class="noindent" ><span <!--l. 52--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-2" class="tabular" <div class="tabular"> <table id="TBL-2" class="tabular"
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:normal; 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" ><code class="lstinline"><span style="color:#000000">contxt</span></code> </td><td style="white-space:normal; 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" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_ctxt_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="td11"><!--l. 56--><p class="noindent" ><span class="lstinline"></span><span class="cmr-12">.</span> </td>
class="cmtt-12">type</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_ctxt_type</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-2-2-"><td style="white-space:normal; 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:normal; 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:normal; 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" ><code class="lstinline"><span style="color:#000000">ptype </span></code> </td> <td style="white-space:normal; 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" ><code class="lstinline"><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">) </span></code><span
class="td11"><!--l. 58--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">character</span><span
class="cmtt-12">(</span><span
class="cmtt-12">len</span><span
class="cmtt-12">=*),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</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:normal; 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:normal; 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
href="userhtmlse4.html#x14-13015r1"><span 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:normal; 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:normal; 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:normal; 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" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; 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" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="td11"><!--l. 62--><p class="noindent" ><span class="lstinline"></span><span class="cmr-12">.</span> </td>
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">out</span><span
class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-2-7-"><td style="white-space:normal; 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:normal; 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
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><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:normal; 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

@ -92,8 +92,14 @@ P.~D'Ambra, S.~Filippone and P.\,S.~Vassilevski,
ACM Transactions on Mathematical Software, 44, (2018) 39:1--39:25. 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,
\emph{AMG preconditioners for Linear Solvers towards Extreme Scale}, 2020, \href{https://arxiv.org/abs/2006.16147v3arXiv:2006.16147v2}{arXiv:2006.16147v3}. \emph{AMG preconditioners for Linear Solvers towards Extreme Scale},
SIAM Journal on Scientific Computing 43, no. 5 (2021): S679-S703.
%
\bibitem{DDFMT2024}
P.~D'Ambra, F.~Durastante, S.~Filippone, S.~Massei, S.~Thomas
\emph{Optimal Polynomial Smoothers for Parallel AMG}, 2024,
\href{https://arxiv.org/abs/2407.09848}{arXiv:2407.09848}.
% %
\bibitem{UMFPACK} \bibitem{UMFPACK}
T.~A.~Davis, T.~A.~Davis,
@ -165,6 +171,11 @@ C.~L.~Lawson, R.~J.~Hanson, D.~Kincaid, F.~T.~Krogh,
\emph{Basic Linear Algebra Subprograms for FORTRAN usage}, \emph{Basic Linear Algebra Subprograms for FORTRAN usage},
ACM Transactions on Mathematical Software, 5 (3), 1979, 308--323. ACM Transactions on Mathematical Software, 5 (3), 1979, 308--323.
% %
\bibitem{LOTTES}
J.~Lottes,
\emph{Optimal polynomial smoothers for multigrid Vcycles},
Numerical Linear Algebra with Applications 30.6 (2023): e2518.
%
\bibitem{SUPERLUDIST} \bibitem{SUPERLUDIST}
X.~S.~Li, J.~W.~Demmel, X.~S.~Li, J.~W.~Demmel,
{\em SuperLU\_DIST: A Scalable Distributed-memory {\em SuperLU\_DIST: A Scalable Distributed-memory

@ -62,19 +62,36 @@ interfaces compatible with AMG4PSBLAS; usually this means that they
should all be built with the same compiler being used for AMG4PSBLAS. should all be built with the same compiler being used for AMG4PSBLAS.
If you want to use the PSBLAS support for NVIDIA GPUs, you will also If you want to use the PSBLAS support for NVIDIA GPUs, you will also
need: need a working version of the CUDA Toolkit that is compatible with the
\begingroup compiler choice made to compile PSBLAS and AMG4PSBLAS.
\sloppy After that you will need to have configured and compiled the PSBLAS library
\begin{description} with the options:
\item[PSBLAS-EXT] Parallel Sparse BLAS (PSBLAS) Extensions, %\begingroup
available from %\sloppy
\href{https://psctoolkit.github.io/products/psblasext/}{psctoolkit.github.io/products/psblasext/}; version 1.3.0 (or later). %\begin{description}
\item[SPGPU] Sparse CUDA kernels for NVIDIA GPUs; available from % \item[PSBLAS-EXT] Parallel Sparse BLAS (PSBLAS) Extensions,
GitHub, see also % available from
\href{https://psctoolkit.github.io/products/psblasext/}{psctoolkit.github.io/products/psblasext/}. % \href{https://psctoolkit.github.io/products/psblasext/}{psctoolkit.github.io/products/psblasext/}; version 1.3.0 (or later).
\end{description} % \item[SPGPU] Sparse CUDA kernels for NVIDIA GPUs; available from
See also Sec~\ref{sec:gpu-example}. % GitHub, see also
\endgroup % \href{https://psctoolkit.github.io/products/psblasext/}{psctoolkit.github.io/products/psblasext/}.
% \end{description}
%
%\endgroup
\ifpdf
\begin{minted}[breaklines=true,bgcolor=bg,fontsize=\small]{fortran}
./configure --enable-cuda --with-cudadir=${CUDA_HOME} --with-cudacc=xx,yy,zz
\end{minted}
\else
{\small
\begin{verbatim}
./configure --enable-cuda --with-cudadir=${CUDA_HOME} --with-cudacc=xx,yy,zz
\end{verbatim}
}
\fi
Previous versions required you to have the auxiliary libraries SPGPU and PSBLAS-EXT compiled,
this is no longer necessary because they have been integrated into PSBLAS and are compiled
by activating the previous flags during configuration. See also Sec~\ref{sec:gpu-example}.
\subsection{Optional third party libraries\label{sec:third-party}} \subsection{Optional third party libraries\label{sec:third-party}}

@ -573,12 +573,12 @@ level (continued).\label{tab:p_coarse_1}}
\fortinline|'SMOOTHER_TYPE'| & \fortinline|character(len=*)| \fortinline|'SMOOTHER_TYPE'| & \fortinline|character(len=*)|
& \fortinline|'JACOBI'| \par \fortinline|'GS'| \par \fortinline|'BGS'| \par \fortinline|'BJAC'| & \fortinline|'JACOBI'| \par \fortinline|'GS'| \par \fortinline|'BGS'| \par \fortinline|'BJAC'|
\par \fortinline|'AS'| \par \fortinline|'L1-JACOBI'| \par \fortinline|'L1-BJAC'| \par \fortinline|'L1-FBGS'| \par \fortinline|'AS'| \par \fortinline|'L1-JACOBI'| \par \fortinline|'L1-BJAC'| \par \fortinline|'L1-FBGS'| \par \fortinline|'POLY'|
& \fortinline|'FBGS'| & \fortinline|'FBGS'|
& Type of smoother used in the multilevel preconditioner: & Type of smoother used in the multilevel preconditioner:
point-Jacobi, hybrid (forward) Gauss-Seidel, point-Jacobi, hybrid (forward) Gauss-Seidel,
hybrid backward Gauss-Seidel, block-Jacobi, $\ell_1$-Jacobi, $\ell_1$--hybrid (forward) Gauss-Seidel, $\ell_1$-point-Jacobi and hybrid backward Gauss-Seidel, block-Jacobi, $\ell_1$-Jacobi, $\ell_1$--hybrid (forward) Gauss-Seidel, $\ell_1$-point-Jacobi and
Additive Schwarz. \par Additive Schwarz, polynomial accelerators; see~\cite{DDFMT2024} \par
It is ignored by one-level preconditioners. \\ \hline It is ignored by one-level preconditioners. \\ \hline
\fortinline|'SUB_SOLVE'| & \fortinline|character(len=*)| \fortinline|'SUB_SOLVE'| & \fortinline|character(len=*)|
& \fortinline|'JACOBI'| & \fortinline|'JACOBI'|
@ -612,12 +612,11 @@ level (continued).\label{tab:p_coarse_1}}
In the multilevel case, no pre-smother or In the multilevel case, no pre-smother or
post-smoother is used if this parameter is set to 0 post-smoother is used if this parameter is set to 0
together with \fortinline|pos='PRE'| or \fortinline|pos='POST'|, together with \fortinline|pos='PRE'| or \fortinline|pos='POST'|,
respectively. \\ \hline respectively. Is ignored if the smoother is \fortinline|'POLY'| \\ \hline
\fortinline|'SUB_OVR'| & \fortinline|integer| \fortinline|'POLY_DEGREE'| & \fortinline|integer|
& Any integer \par number~$\ge 0$ & Any integer \par number~$\ge 1$ and~$\le 30$
& 1 & 1
& Number of overlap layers, for Additive Schwarz only. \\ & Degree of the polynomial accelerator, is equal to the number of matrix-vector products performed by the smoother. Is ignored if the smoother is not \fortinline|'POLY'|\\ \hline
\hline
\end{tabular} \end{tabular}
\end{center} \end{center}
\caption{Parameters defining the smoother or the details of the one-level preconditioner. \caption{Parameters defining the smoother or the details of the one-level preconditioner.
@ -631,6 +630,10 @@ level (continued).\label{tab:p_coarse_1}}
\hline \hline
\fortinline|what| & \textsc{data type} & \fortinline|val| & \textsc{default} & \fortinline|what| & \textsc{data type} & \fortinline|val| & \textsc{default} &
\textsc{comments} \\ \hline \textsc{comments} \\ \hline
\fortinline|'SUB_OVR'| & \fortinline|integer|
& Any integer \par number~$\ge 0$
& 1
& Number of overlap layers, for Additive Schwarz only. \\
\fortinline|'SUB_RESTR'| & \fortinline|character(len=*)| \fortinline|'SUB_RESTR'| & \fortinline|character(len=*)|
& \fortinline|'HALO'| \par \fortinline|'NONE'| & \fortinline|'HALO'| \par \fortinline|'NONE'|
& \fortinline|'HALO'| & \fortinline|'HALO'|
@ -679,6 +682,26 @@ level (continued).\label{tab:p_coarse_1}}
(continued).\label{tab:p_smoother_1}} (continued).\label{tab:p_smoother_1}}
\esideways \esideways
\bsideways
\begin{center}
\small
\begin{tabular}{|p{5.4cm}|l|p{3.5cm}|p{3.5cm}|p{3.55cm}|}
\hline
\fortinline|what| & \textsc{data type} & \fortinline|val| & \textsc{default} &
\textsc{comments} \\ \hline
\fortinline|'POLY_VARIANT'| & \fortinline|character(len=*)|
& \fortinline|'CHEB_4'| \par \fortinline|'CHEB_4_OPT'| \par \fortinline|'CHEB_1_OPT'|
& \fortinline|'CHEB_4'|
& Select the type of polynomial accelerator. The \fortinline|'CHEB_4'| and \fortinline|'CHEB_4_OPT'| types are those based on the Chebyshev polynomials of the 4\textsuperscript{th}-kind described in~\cite{LOTTES}. The \fortinline|'CHEB_1_OPT'| version is the one described in~\cite{DDFMT2024} and based on the Chebyshev polynomials of the 1\textsuperscript{st}-kind.\\ \hline
\fortinline|'POLY_RHO_ESTIMATE'| & \fortinline|character(len=*)| & \fortinline|'POLY_RHO_EST_POWER'| & \fortinline|'POLY_RHO_EST_POWER'| & Algorithm for estimating the spectral radius of the smoother to which the polynomial acceleration is applied. The only implemented algorithm is the power method; see also the two following options. \\ \hline
\fortinline|'POLY_RHO_ESTIMATE_ITERATIONS'| & \fortinline|integer| & Any integer\par number $\ge 1$ & 20 & Number of iterations for the spectral radius estimate.\\ \hline
\fortinline|'POLY_RHO_BA'| & \fortinline|real(kind_parameter)| & Any real\par number $\in (0,1]$ & 1 & Sets an estimate of the spectral radius of the base smoother to which the polynomial accelerator is applied.\\
\hline
\end{tabular}
\end{center}
\caption{Parameters defining the smoother or the details of the one-level preconditioner
(continued).\label{tab:p_smoother_2}}
\esideways
\clearpage \clearpage

Loading…
Cancel
Save