Define 1.2 as name of UG

repackage
sfilippone 1 month ago
parent 417f8beaf9
commit 36b57eec24

@ -45,122 +45,62 @@ class="newline" />
<div class="tableofcontents"> <div class="tableofcontents">
<span class="likesectionToc" ><a <span
class="cmr-12">&#x00A0;</span><span class="likesectionToc" ><a
href="userhtmlli1.html#x2-1000" id="QQ2-2-1"><span href="userhtmlli1.html#x2-1000" id="QQ2-2-1"><span
class="cmr-12">Abstract</span></a></span> class="cmr-12">Abstract</span></a></span>
<br /> <span class="likesectionToc" ><a <br /> <span
class="cmr-12">&#x00A0;</span><span class="likesectionToc" ><a
href="userhtmlli2.html#x3-2000" id="QQ2-3-2"><span href="userhtmlli2.html#x3-2000" id="QQ2-3-2"><span
class="cmr-12">Contents</span></a></span> class="cmr-12">Contents</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><span class="sectionToc" ><span
class="cmr-12">1 </span><a class="cmr-12">1 </span><a
href="userhtmlse1.html#x4-30001" id="QQ2-4-3"><span href="userhtmlse1.html#x4-30001" id="QQ2-4-3"><span
class="cmr-12">General Overview</span></a></span> class="cmr-12">General Overview</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><span class="sectionToc" ><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 class="likesubsectionToc" ><a <br /> <span
href="userhtmlli3.html#x6-5000" id="QQ2-6-5"><span class="cmr-12">&#x00A0;</span><span class="sectionToc" ><span
class="cmr-12">Contributors</span></a></span>
<br /> <span class="likesubsectionToc" ><a
href="userhtmlli4.html#x7-6000" id="QQ2-7-6"><span
class="cmr-12">Citing AMG4PSBLAS</span></a></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#x6-70003" id="QQ2-6-7"><span
class="cmr-12">Configuring and Building AMG4PSBLAS</span></a></span> class="cmr-12">Configuring and Building AMG4PSBLAS</span></a></span>
<br /> <span class="subsectionToc" ><span <br /> <span
class="cmr-12">3.1 </span><a class="cmr-12">&#x00A0;</span><span class="sectionToc" ><span
href="userhtmlsu1.html#x9-80003.1" id="QQ2-9-8"><span
class="cmr-12">Prerequisites</span></a></span>
<br /> <span class="subsectionToc" ><span
class="cmr-12">3.2 </span><a
href="userhtmlsu2.html#x10-90003.2" id="QQ2-10-9"><span
class="cmr-12">Optional third party libraries</span></a></span>
<br /> <span class="subsectionToc" ><span
class="cmr-12">3.3 </span><a
href="userhtmlsu3.html#x11-100003.3" id="QQ2-11-10"><span
class="cmr-12">Configuration options</span></a></span>
<br /> <span class="subsectionToc" ><span
class="cmr-12">3.4 </span><a
href="userhtmlsu4.html#x12-110003.4" id="QQ2-12-12"><span
class="cmr-12">Bug reporting</span></a></span>
<br /> <span class="subsectionToc" ><span
class="cmr-12">3.5 </span><a
href="userhtmlsu5.html#x13-120003.5" id="QQ2-13-13"><span
class="cmr-12">Example and test programs</span></a></span>
<br /> <span class="sectionToc" ><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#x7-130004" id="QQ2-7-14"><span
class="cmr-12">Getting Started</span></a></span> class="cmr-12">Getting Started</span></a></span>
<br /> <span class="subsectionToc" ><span <br /> <span
class="cmr-12">4.1 </span><a class="cmr-12">&#x00A0;</span><span class="sectionToc" ><span
href="userhtmlsu6.html#x15-140004.1" id="QQ2-15-16"><span
class="cmr-12">Examples</span></a></span>
<br /> <span class="subsectionToc" ><span
class="cmr-12">4.2 </span><a
href="userhtmlsu7.html#x16-150004.2" id="QQ2-16-21"><span
class="cmr-12">GPU example</span></a></span>
<br /> <span class="sectionToc" ><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#x8-160005" id="QQ2-8-25"><span
class="cmr-12">User Interface</span></a></span> class="cmr-12">User Interface</span></a></span>
<br /> <span class="subsectionToc" ><span <br /> <span
class="cmr-12">5.1 </span><a class="cmr-12">&#x00A0;</span><span class="sectionToc" ><span
href="userhtmlsu8.html#x18-170005.1" id="QQ2-18-26"><span
class="cmr-12">Method init</span></a></span>
<br /> <span class="subsectionToc" ><span
class="cmr-12">5.2 </span><a
href="userhtmlsu9.html#x19-180005.2" id="QQ2-19-27"><span
class="cmr-12">Method set</span></a></span>
<br /> <span class="subsectionToc" ><span
class="cmr-12">5.3 </span><a
href="userhtmlsu10.html#x20-190005.3" id="QQ2-20-36"><span
class="cmr-12">Method hierarchy</span><span
class="cmr-12">_build</span></a></span>
<br /> <span class="subsectionToc" ><span
class="cmr-12">5.4 </span><a
href="userhtmlsu11.html#x21-200005.4" id="QQ2-21-37"><span
class="cmr-12">Method smoothers</span><span
class="cmr-12">_build</span></a></span>
<br /> <span class="subsectionToc" ><span
class="cmr-12">5.5 </span><a
href="userhtmlsu12.html#x22-210005.5" id="QQ2-22-38"><span
class="cmr-12">Method build</span></a></span>
<br /> <span class="subsectionToc" ><span
class="cmr-12">5.6 </span><a
href="userhtmlsu13.html#x23-220005.6" id="QQ2-23-39"><span
class="cmr-12">Method apply</span></a></span>
<br /> <span class="subsectionToc" ><span
class="cmr-12">5.7 </span><a
href="userhtmlsu14.html#x24-230005.7" id="QQ2-24-40"><span
class="cmr-12">Method free</span></a></span>
<br /> <span class="subsectionToc" ><span
class="cmr-12">5.8 </span><a
href="userhtmlsu15.html#x25-240005.8" id="QQ2-25-41"><span
class="cmr-12">Method descr</span></a></span>
<br /> <span class="subsectionToc" ><span
class="cmr-12">5.9 </span><a
href="userhtmlsu16.html#x26-250005.9" id="QQ2-26-42"><span
class="cmr-12">Auxiliary Methods</span></a></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-48"><span href="userhtmlse6.html#x9-310006" id="QQ2-9-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="cmr-12">&#x00A0;</span><span class="sectionToc" ><span
class="cmr-12">7 </span><a class="cmr-12">7 </span><a
href="userhtmlse7.html#x28-320007" id="QQ2-28-49"><span href="userhtmlse7.html#x10-320007" id="QQ2-10-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="cmr-12">&#x00A0;</span><span class="sectionToc" ><span
class="cmr-12">A </span><a class="cmr-12">A </span><a
href="userhtmlse8.html#x29-33000A" id="QQ2-29-50"><span href="userhtmlse8.html#x11-33000A" id="QQ2-11-50"><span
class="cmr-12">License</span></a></span> class="cmr-12">License</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><span class="sectionToc" ><span
class="cmr-12">B </span><a class="cmr-12">B </span><a
href="userhtmlse9.html#x30-34000B" id="QQ2-30-51"><span href="userhtmlse9.html#x12-34000B" id="QQ2-12-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
href="userhtmlli5.html#x31-39000" id="QQ2-31-56"><span class="cmr-12">&#x00A0;</span><span class="likesectionToc" ><a
href="userhtmlli3.html#x13-39000" id="QQ2-13-56"><span
class="cmr-12">References</span></a></span> class="cmr-12">References</span></a></span>
</div> </div>
@ -174,6 +114,9 @@ class="cmr-12">References</span></a></span>
</body></html> </body></html>

@ -87,7 +87,6 @@ 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;}
@ -133,6 +132,7 @@ table.pmatrix {width:100%;}
span.bar-css {text-decoration:overline;} span.bar-css {text-decoration:overline;}
img.cdots{vertical-align:middle;} img.cdots{vertical-align:middle;}
.partToc a, .partToc, .likepartToc a, .likepartToc {line-height: 200%; font-weight:bold; font-size:110%;} .partToc a, .partToc, .likepartToc a, .likepartToc {line-height: 200%; font-weight:bold; font-size:110%;}
.chapterToc a, .chapterToc, .likechapterToc a, .likechapterToc, .appendixToc a, .appendixToc {line-height: 200%; font-weight:bold;}
.index-item, .index-subitem, .index-subsubitem {display:block} .index-item, .index-subitem, .index-subsubitem {display:block}
div.caption {text-indent:-2em; margin-left:3em; margin-right:1em; text-align:left;} div.caption {text-indent:-2em; margin-left:3em; margin-right:1em; text-align:left;}
div.caption span.id{font-weight: bold; white-space: nowrap; } div.caption span.id{font-weight: bold; white-space: nowrap; }
@ -152,10 +152,10 @@ div.author{white-space: nowrap;}
div.abstract p {margin-left:5%; margin-right:5%;} div.abstract p {margin-left:5%; margin-right:5%;}
div.abstract {width:100%;} div.abstract {width:100%;}
.abstracttitle{text-align:center;margin-bottom:1em;} .abstracttitle{text-align:center;margin-bottom:1em;}
.subsectionToc, .likesubsectionToc {margin-left:1em;} .subsectionToc, .likesubsectionToc {margin-left:2em;}
.subsubsectionToc, .likesubsubsectionToc {margin-left:2em;} .subsubsectionToc, .likesubsubsectionToc {margin-left:4em;}
.paragraphToc, .likeparagraphToc {margin-left:3em;} .paragraphToc, .likeparagraphToc {margin-left:6em;}
.subparagraphToc, .likesubparagraphToc {margin-left:4em;} .subparagraphToc, .likesubparagraphToc {margin-left:8em;}
.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; }

@ -45,122 +45,62 @@ class="newline" />
<div class="tableofcontents"> <div class="tableofcontents">
<span class="likesectionToc" ><a <span
class="cmr-12">&#x00A0;</span><span class="likesectionToc" ><a
href="userhtmlli1.html#x2-1000" id="QQ2-2-1"><span href="userhtmlli1.html#x2-1000" id="QQ2-2-1"><span
class="cmr-12">Abstract</span></a></span> class="cmr-12">Abstract</span></a></span>
<br /> <span class="likesectionToc" ><a <br /> <span
class="cmr-12">&#x00A0;</span><span class="likesectionToc" ><a
href="userhtmlli2.html#x3-2000" id="QQ2-3-2"><span href="userhtmlli2.html#x3-2000" id="QQ2-3-2"><span
class="cmr-12">Contents</span></a></span> class="cmr-12">Contents</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><span class="sectionToc" ><span
class="cmr-12">1 </span><a class="cmr-12">1 </span><a
href="userhtmlse1.html#x4-30001" id="QQ2-4-3"><span href="userhtmlse1.html#x4-30001" id="QQ2-4-3"><span
class="cmr-12">General Overview</span></a></span> class="cmr-12">General Overview</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><span class="sectionToc" ><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 class="likesubsectionToc" ><a <br /> <span
href="userhtmlli3.html#x6-5000" id="QQ2-6-5"><span class="cmr-12">&#x00A0;</span><span class="sectionToc" ><span
class="cmr-12">Contributors</span></a></span>
<br /> <span class="likesubsectionToc" ><a
href="userhtmlli4.html#x7-6000" id="QQ2-7-6"><span
class="cmr-12">Citing AMG4PSBLAS</span></a></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#x6-70003" id="QQ2-6-7"><span
class="cmr-12">Configuring and Building AMG4PSBLAS</span></a></span> class="cmr-12">Configuring and Building AMG4PSBLAS</span></a></span>
<br /> <span class="subsectionToc" ><span <br /> <span
class="cmr-12">3.1 </span><a class="cmr-12">&#x00A0;</span><span class="sectionToc" ><span
href="userhtmlsu1.html#x9-80003.1" id="QQ2-9-8"><span
class="cmr-12">Prerequisites</span></a></span>
<br /> <span class="subsectionToc" ><span
class="cmr-12">3.2 </span><a
href="userhtmlsu2.html#x10-90003.2" id="QQ2-10-9"><span
class="cmr-12">Optional third party libraries</span></a></span>
<br /> <span class="subsectionToc" ><span
class="cmr-12">3.3 </span><a
href="userhtmlsu3.html#x11-100003.3" id="QQ2-11-10"><span
class="cmr-12">Configuration options</span></a></span>
<br /> <span class="subsectionToc" ><span
class="cmr-12">3.4 </span><a
href="userhtmlsu4.html#x12-110003.4" id="QQ2-12-12"><span
class="cmr-12">Bug reporting</span></a></span>
<br /> <span class="subsectionToc" ><span
class="cmr-12">3.5 </span><a
href="userhtmlsu5.html#x13-120003.5" id="QQ2-13-13"><span
class="cmr-12">Example and test programs</span></a></span>
<br /> <span class="sectionToc" ><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#x7-130004" id="QQ2-7-14"><span
class="cmr-12">Getting Started</span></a></span> class="cmr-12">Getting Started</span></a></span>
<br /> <span class="subsectionToc" ><span <br /> <span
class="cmr-12">4.1 </span><a class="cmr-12">&#x00A0;</span><span class="sectionToc" ><span
href="userhtmlsu6.html#x15-140004.1" id="QQ2-15-16"><span
class="cmr-12">Examples</span></a></span>
<br /> <span class="subsectionToc" ><span
class="cmr-12">4.2 </span><a
href="userhtmlsu7.html#x16-150004.2" id="QQ2-16-21"><span
class="cmr-12">GPU example</span></a></span>
<br /> <span class="sectionToc" ><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#x8-160005" id="QQ2-8-25"><span
class="cmr-12">User Interface</span></a></span> class="cmr-12">User Interface</span></a></span>
<br /> <span class="subsectionToc" ><span <br /> <span
class="cmr-12">5.1 </span><a class="cmr-12">&#x00A0;</span><span class="sectionToc" ><span
href="userhtmlsu8.html#x18-170005.1" id="QQ2-18-26"><span
class="cmr-12">Method init</span></a></span>
<br /> <span class="subsectionToc" ><span
class="cmr-12">5.2 </span><a
href="userhtmlsu9.html#x19-180005.2" id="QQ2-19-27"><span
class="cmr-12">Method set</span></a></span>
<br /> <span class="subsectionToc" ><span
class="cmr-12">5.3 </span><a
href="userhtmlsu10.html#x20-190005.3" id="QQ2-20-36"><span
class="cmr-12">Method hierarchy</span><span
class="cmr-12">_build</span></a></span>
<br /> <span class="subsectionToc" ><span
class="cmr-12">5.4 </span><a
href="userhtmlsu11.html#x21-200005.4" id="QQ2-21-37"><span
class="cmr-12">Method smoothers</span><span
class="cmr-12">_build</span></a></span>
<br /> <span class="subsectionToc" ><span
class="cmr-12">5.5 </span><a
href="userhtmlsu12.html#x22-210005.5" id="QQ2-22-38"><span
class="cmr-12">Method build</span></a></span>
<br /> <span class="subsectionToc" ><span
class="cmr-12">5.6 </span><a
href="userhtmlsu13.html#x23-220005.6" id="QQ2-23-39"><span
class="cmr-12">Method apply</span></a></span>
<br /> <span class="subsectionToc" ><span
class="cmr-12">5.7 </span><a
href="userhtmlsu14.html#x24-230005.7" id="QQ2-24-40"><span
class="cmr-12">Method free</span></a></span>
<br /> <span class="subsectionToc" ><span
class="cmr-12">5.8 </span><a
href="userhtmlsu15.html#x25-240005.8" id="QQ2-25-41"><span
class="cmr-12">Method descr</span></a></span>
<br /> <span class="subsectionToc" ><span
class="cmr-12">5.9 </span><a
href="userhtmlsu16.html#x26-250005.9" id="QQ2-26-42"><span
class="cmr-12">Auxiliary Methods</span></a></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-48"><span href="userhtmlse6.html#x9-310006" id="QQ2-9-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="cmr-12">&#x00A0;</span><span class="sectionToc" ><span
class="cmr-12">7 </span><a class="cmr-12">7 </span><a
href="userhtmlse7.html#x28-320007" id="QQ2-28-49"><span href="userhtmlse7.html#x10-320007" id="QQ2-10-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="cmr-12">&#x00A0;</span><span class="sectionToc" ><span
class="cmr-12">A </span><a class="cmr-12">A </span><a
href="userhtmlse8.html#x29-33000A" id="QQ2-29-50"><span href="userhtmlse8.html#x11-33000A" id="QQ2-11-50"><span
class="cmr-12">License</span></a></span> class="cmr-12">License</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><span class="sectionToc" ><span
class="cmr-12">B </span><a class="cmr-12">B </span><a
href="userhtmlse9.html#x30-34000B" id="QQ2-30-51"><span href="userhtmlse9.html#x12-34000B" id="QQ2-12-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
href="userhtmlli5.html#x31-39000" id="QQ2-31-56"><span class="cmr-12">&#x00A0;</span><span class="likesectionToc" ><a
href="userhtmlli3.html#x13-39000" id="QQ2-13-56"><span
class="cmr-12">References</span></a></span> class="cmr-12">References</span></a></span>
</div> </div>
@ -174,6 +114,9 @@ class="cmr-12">References</span></a></span>
</body></html> </body></html>

@ -77,9 +77,6 @@ class="cmr-12">PSCToolkit (Parallel Sparse Computation Toolkit) software framewo
class="cmr-12">of a software development project started in 2007, named MLD2P4, which originally</span> class="cmr-12">of a software development project started in 2007, named MLD2P4, which originally</span>
<span <span
class="cmr-12">implemented a multilevel version of some domain decomposition preconditioners of</span> class="cmr-12">implemented a multilevel version of some domain decomposition preconditioners of</span>
<span <span
class="cmr-12">additive-Schwarz type, and was based on a parallel decoupled version of the well known</span> class="cmr-12">additive-Schwarz type, and was based on a parallel decoupled version of the well known</span>
<span <span
@ -116,6 +113,9 @@ class="cmr-12">and preconditioners are represented as PSBLAS distributed sparse
class="cmr-12">AMG4PSBLAS enables the user to easily specify different features of an algebraic</span> class="cmr-12">AMG4PSBLAS enables the user to easily specify different features of an algebraic</span>
<span <span
class="cmr-12">multilevel preconditioner, thus allowing to experiment with different preconditioners for</span> class="cmr-12">multilevel preconditioner, thus allowing to experiment with different preconditioners for</span>
<span <span
class="cmr-12">the problem and parallel computers at hand.</span> class="cmr-12">the problem and parallel computers at hand.</span>
<!--l. 27--><p class="indent" > <span <!--l. 27--><p class="indent" > <span

@ -31,129 +31,185 @@ class="cmr-12">] </span></p></div>
id="x3-2000"></a><span id="x3-2000"></a><span
class="cmr-12">Contents</span></h3> class="cmr-12">Contents</span></h3>
<div class="tableofcontents"> <div class="tableofcontents">
<span class="sectionToc" ><span <span
class="cmr-12">&#x00A0;</span><span class="sectionToc" ><span
class="cmr-12">1 </span><a class="cmr-12">1 </span><a
href="userhtmlse1.html#x4-30001"><span href="userhtmlse1.html#x4-30001"><span
class="cmr-12">General Overview</span></a></span> class="cmr-12">General Overview</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><span class="sectionToc" ><span
class="cmr-12">2 </span><a class="cmr-12">2 </span><a
href="userhtmlse2.html#x5-40002"><span href="userhtmlse2.html#x5-40002"><span
class="cmr-12">Code Distribution</span></a></span> class="cmr-12">Code Distribution</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><span class="sectionToc" ><span
class="cmr-12">3 </span><a class="cmr-12">3 </span><a
href="userhtmlse3.html#x8-70003"><span href="userhtmlse3.html#x6-70003"><span
class="cmr-12">Configuring and Building AMG4PSBLAS</span></a></span> class="cmr-12">Configuring and Building AMG4PSBLAS</span></a></span>
<br /> <span class="subsectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><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="userhtmlse3.html#x6-80003.1" id="QQ2-6-8"><span
class="cmr-12">Prerequisites</span></a></span> class="cmr-12">Prerequisites</span></a></span>
<br /> <span class="subsectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><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="userhtmlse3.html#x6-90003.2" id="QQ2-6-9"><span
class="cmr-12">Optional third party libraries</span></a></span> class="cmr-12">Optional third party libraries</span></a></span>
<br /> <span class="subsectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><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="userhtmlse3.html#x6-100003.3" id="QQ2-6-10"><span
class="cmr-12">Configuration options</span></a></span> class="cmr-12">Configuration options</span></a></span>
<br /> <span class="subsectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><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="userhtmlse3.html#x6-110003.4" id="QQ2-6-12"><span
class="cmr-12">Bug reporting</span></a></span> class="cmr-12">Bug reporting</span></a></span>
<br /> <span class="subsectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><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="userhtmlse3.html#x6-120003.5" id="QQ2-6-13"><span
class="cmr-12">Example and test programs</span></a></span> class="cmr-12">Example and test programs</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><span class="sectionToc" ><span
class="cmr-12">4 </span><a class="cmr-12">4 </span><a
href="userhtmlse4.html#x14-130004"><span href="userhtmlse4.html#x7-130004"><span
class="cmr-12">Getting Started</span></a></span> class="cmr-12">Getting Started</span></a></span>
<br /> <span class="subsectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><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="userhtmlse4.html#x7-140004.1" id="QQ2-7-16"><span
class="cmr-12">Examples</span></a></span> class="cmr-12">Examples</span></a></span>
<br /> <span class="subsectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><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="userhtmlse4.html#x7-150004.2" id="QQ2-7-21"><span
class="cmr-12">GPU example</span></a></span> class="cmr-12">GPU example</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><span class="sectionToc" ><span
class="cmr-12">5 </span><a class="cmr-12">5 </span><a
href="userhtmlse5.html#x17-160005"><span href="userhtmlse5.html#x8-160005"><span
class="cmr-12">User Interface</span></a></span> class="cmr-12">User Interface</span></a></span>
<br /> <span class="subsectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><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="userhtmlse5.html#x8-170005.1" id="QQ2-8-26"><span
class="cmr-12">Method init</span></a></span> class="cmr-12">Method init</span></a></span>
<br /> <span class="subsectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><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="userhtmlse5.html#x8-180005.2" id="QQ2-8-27"><span
class="cmr-12">Method set</span></a></span> class="cmr-12">Method set</span></a></span>
<br /> <span class="subsectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><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="userhtmlse5.html#x8-190005.3" id="QQ2-8-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 class="subsectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><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="userhtmlse5.html#x8-200005.4" id="QQ2-8-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 class="subsectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><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="userhtmlse5.html#x8-210005.5" id="QQ2-8-38"><span
class="cmr-12">Method build</span></a></span> class="cmr-12">Method build</span></a></span>
<br /> <span class="subsectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><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="userhtmlse5.html#x8-220005.6" id="QQ2-8-39"><span
class="cmr-12">Method apply</span></a></span> class="cmr-12">Method apply</span></a></span>
<br /> <span class="subsectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><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="userhtmlse5.html#x8-230005.7" id="QQ2-8-40"><span
class="cmr-12">Method free</span></a></span> class="cmr-12">Method free</span></a></span>
<br /> <span class="subsectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><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="userhtmlse5.html#x8-240005.8" id="QQ2-8-41"><span
class="cmr-12">Method descr</span></a></span> class="cmr-12">Method descr</span></a></span>
<br /> <span class="subsectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><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="userhtmlse5.html#x8-250005.9" id="QQ2-8-42"><span
class="cmr-12">Auxiliary Methods</span></a></span> class="cmr-12">Auxiliary Methods</span></a></span>
<br /> <span class="subsubsectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><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-43"><span href="userhtmlse5.html#x8-260005.9.1" id="QQ2-8-43"><span
class="cmr-12">Method: dump</span></a></span> class="cmr-12">Method: dump</span></a></span>
<br /> <span class="subsubsectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><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-44"><span href="userhtmlse5.html#x8-270005.9.2" id="QQ2-8-44"><span
class="cmr-12">Method: clone</span></a></span> class="cmr-12">Method: clone</span></a></span>
<br /> <span class="subsubsectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><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-45"><span href="userhtmlse5.html#x8-280005.9.3" id="QQ2-8-45"><span
class="cmr-12">Method: sizeof</span></a></span> class="cmr-12">Method: sizeof</span></a></span>
<br /> <span class="subsubsectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><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-46"><span href="userhtmlse5.html#x8-290005.9.4" id="QQ2-8-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 class="subsubsectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><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-47"><span href="userhtmlse5.html#x8-300005.9.5" id="QQ2-8-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="cmr-12">&#x00A0;</span><span class="sectionToc" ><span
class="cmr-12">6 </span><a class="cmr-12">6 </span><a
href="userhtmlse6.html#x27-310006"><span href="userhtmlse6.html#x9-310006"><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="cmr-12">&#x00A0;</span><span class="sectionToc" ><span
class="cmr-12">7 </span><a class="cmr-12">7 </span><a
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x10-320007"><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="cmr-12">&#x00A0;</span><span class="sectionToc" ><span
class="cmr-12">A </span><a class="cmr-12">A </span><a
href="userhtmlse8.html#x29-33000A"><span href="userhtmlse8.html#x11-33000A"><span
class="cmr-12">License</span></a></span> class="cmr-12">License</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span
class="cmr-12">&#x00A0;</span><span class="sectionToc" ><span
class="cmr-12">B </span><a class="cmr-12">B </span><a
href="userhtmlse9.html#x30-34000B"><span href="userhtmlse9.html#x12-34000B"><span
class="cmr-12">Contributor Covenant Code of Conduct</span></a></span> class="cmr-12">Contributor Covenant Code of Conduct</span></a></span>
</div> </div>

@ -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>Contributors</title> <head><title>References</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,49 +10,739 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 23--><div class="crosslinks"><p class="noindent"><span <!--l. 2--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli4.html" ><span href="userhtmlse9.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse9.html#tailuserhtmlse9.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a class="cmr-12">] [</span><a
href="#tailuserhtmlli3.html"><span href="#tailuserhtmlli3.html"><span
class="cmr-12">tail</span></a><span class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a class="cmr-12">] [</span><a
href="userhtmlse2.html#userhtmlli3.html" ><span href="userhtml.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 <h3 class="likesectionHead"><a
id="x6-5000"></a><span id="x13-39000"></a><span
class="cmr-12">Contributors</span></h4> class="cmr-12">References</span></h3>
<ul class="itemize1"> <!--l. 2--><p class="noindent" >
<li class="itemize"> <div class="thebibliography">
<!--l. 25--><p class="noindent" ><span <p class="bibitem" ><span class="biblabel">
class="cmr-12">Pasqua D&#8217;Ambra, IAC-CNR, IT;</span> <span
class="cmr-12">[1]</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="XPCFD2006"></a><span
class="cmr-12">A. Aprovitola, P. D&#8217;Ambra, F. Denaro, D. di Serafino, S. Filippone,</span>
<span
class="cmti-12">Scalable algebraic multilevel preconditioners with application to CFD</span><span
class="cmr-12">, in Proc.</span>
<span
class="cmr-12">of CFD 2008, LNCSE, 74, (2010), 15&#8211;27.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[2]</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="XMUMPS"></a><span
class="cmr-12">P.</span><span
class="cmr-12">&#x00A0;R.</span><span
class="cmr-12">&#x00A0;Amestoy, C.</span><span
class="cmr-12">&#x00A0;Ashcraft, O.</span><span
class="cmr-12">&#x00A0;Boiteau, A.</span><span
class="cmr-12">&#x00A0;Buttari, J.</span><span
class="cmr-12">&#x00A0;L&#8217;Excellent,</span>
<span
class="cmr-12">C.</span><span
class="cmr-12">&#x00A0;Weisbecker, </span><span
class="cmti-12">Improving multifrontal methods by means of block low-rank</span>
<span
class="cmti-12">representations</span><span
class="cmr-12">, SIAM Journal on Scientific Computing, volume 37 (3), 2015,</span>
<span
class="cmr-12">A1452&#8211;A1474. See also </span><span
class="cmtt-12">http://mumps.enseeiht.fr</span><span
class="cmr-12">.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[3]</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="XBERTACCINIFILIPPONE"></a><span
class="cmr-12">D. Bertaccini</span><span
class="cmr-12">&#x00A0;and</span><span
class="cmr-12">&#x00A0;S. Filippone, </span><span
class="cmti-12">Sparse approximate inverse</span>
<span
class="cmti-12">preconditioners on high performance GPU platforms</span><span
class="cmr-12">, Comput. Math. Appl.,</span>
<span
class="cmr-12">71, (2016), no.</span><span
class="cmr-12">&#x00A0;3, 693&#8211;711.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[4]</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="XBREZINA_VANEK"></a><span
class="cmr-12">M.</span><span
class="cmr-12">&#x00A0;Brezina, P.</span><span
class="cmr-12">&#x00A0;Van</span><span
class="cmr-12">&#x011B;k, </span><span
class="cmti-12">A Black-Box Iterative Solver Based on a</span>
<span
class="cmti-12">Two-Level Schwarz Method</span><span
class="cmr-12">, Computing, 63, 1999, 233&#8211;263.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[5]</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="XBriggs2000"></a><span
class="cmr-12">W.</span><span
class="cmr-12">&#x00A0;L.</span><span
class="cmr-12">&#x00A0;Briggs, V.</span><span
class="cmr-12">&#x00A0;E.</span><span
class="cmr-12">&#x00A0;Henson, S.</span><span
class="cmr-12">&#x00A0;F.</span><span
class="cmr-12">&#x00A0;McCormick, </span><span
class="cmti-12">A Multigrid Tutorial,</span>
<span
class="cmti-12">Second Edition</span><span
class="cmr-12">, SIAM, 2000.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[6]</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="Xpara_04"></a><span
class="cmr-12">A.</span><span
class="cmr-12">&#x00A0;Buttari, P.</span><span
class="cmr-12">&#x00A0;D&#8217;Ambra, D.</span><span
class="cmr-12">&#x00A0;di Serafino, S.</span><span
class="cmr-12">&#x00A0;Filippone, </span><span
class="cmti-12">Extending</span>
<span
class="cmti-12">PSBLAS to Build Parallel Schwarz Preconditioners</span><span
class="cmr-12">, in J.</span><span
class="cmr-12">&#x00A0;Dongarra,</span>
<span
class="cmr-12">K.</span><span
class="cmr-12">&#x00A0;Madsen, J.</span><span
class="cmr-12">&#x00A0;Wasniewski, editors, Proceedings of PARA</span><span
class="cmr-12">&#x00A0;04 Workshop on</span>
<span
class="cmr-12">State of the Art in Scientific Computing, Lecture Notes in Computer Science,</span>
<span
class="cmr-12">Springer, 2005, 593&#8211;602.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[7]</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="Xaaecc_07"></a><span
class="cmr-12">A.</span><span
class="cmr-12">&#x00A0;Buttari, P.</span><span
class="cmr-12">&#x00A0;D&#8217;Ambra, D.</span><span
class="cmr-12">&#x00A0;di</span><span
class="cmr-12">&#x00A0;Serafino, S.</span><span
class="cmr-12">&#x00A0;Filippone, </span><span
class="cmti-12">2LEV-D2P4: a</span>
<span
class="cmti-12">package of high-performance preconditioners for scientific and engineering</span>
<span
class="cmti-12">applications</span><span
class="cmr-12">, Applicable Algebra in Engineering, Communications and</span>
<span
class="cmr-12">Computing, 18 (3) 2007, 223&#8211;239.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[8]</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="XCAI_SARKIS"></a><span
class="cmr-12">X.</span><span
class="cmr-12">&#x00A0;C.</span><span
class="cmr-12">&#x00A0;Cai, M.</span><span
class="cmr-12">&#x00A0;Sarkis, </span><span
class="cmti-12">A Restricted Additive Schwarz Preconditioner for</span>
<span
class="cmti-12">General Sparse Linear Systems</span><span
class="cmr-12">, SIAM Journal on Scientific Computing, 21</span>
<span
class="cmr-12">(2), 1999, 792&#8211;797.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[9]</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="XMatchBoxP"></a><span
class="cmr-12">U..</span><span
class="cmr-12">&#x00A0;V.</span><span
class="cmr-12">&#x00A0;Catalyurek, F.</span><span
class="cmr-12">&#x00A0;Dobrian, A.</span><span
class="cmr-12">&#x00A0;Gebremedhin, M.</span><span
class="cmr-12">&#x00A0;Halappanavar,</span>
<span
class="cmr-12">and A.</span><span
class="cmr-12">&#x00A0;Pothen, </span><span
class="cmti-12">Distributed-memory parallel algorithms for matching and</span>
<span
class="cmti-12">coloring</span><span
class="cmr-12">, in PCO&#8217;11 New Trends in Parallel Computing and Optimization,</span>
<span
class="cmr-12">IEEE International Symposium on Parallel and Distributed Processing</span>
<span
class="cmr-12">Workshops, IEEE CS, 2011.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[10]</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="Xapnum_07"></a><span
class="cmr-12">P.</span><span
class="cmr-12">&#x00A0;D&#8217;Ambra, S.</span><span
class="cmr-12">&#x00A0;Filippone,</span>
<span
class="cmr-12">D.</span><span
class="cmr-12">&#x00A0;di</span><span
class="cmr-12">&#x00A0;Serafino, </span><span
class="cmti-12">On the Development of PSBLAS-based Parallel Two-level</span>
<span
class="cmti-12">Schwarz Preconditioners</span><span
class="cmr-12">, Applied Numerical Mathematics, Elsevier Science,</span>
<span
class="cmr-12">57 (11-12), 2007, 1181-1196.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[11]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="XMLD2P4_TOMS"></a><span
class="cmr-12">P.</span><span
class="cmr-12">&#x00A0;D&#8217;Ambra, D.</span><span
class="cmr-12">&#x00A0;di</span><span
class="cmr-12">&#x00A0;Serafino, S.</span><span
class="cmr-12">&#x00A0;Filippone, </span><span
class="cmti-12">MLD2P4: a Package of</span>
<span
class="cmti-12">Parallel Multilevel Algebraic Domain Decomposition Preconditioners in</span>
<span
class="cmti-12">Fortran 95</span><span
class="cmr-12">, ACM Trans. Math. Softw., 37(3), 2010, art. 30.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[12]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="XDV2013"></a><span
class="cmr-12">P.</span><span
class="cmr-12">&#x00A0;D&#8217;Ambra and P. S.</span><span
class="cmr-12">&#x00A0;Vassilevski, </span><span
class="cmti-12">Adaptive AMG with coarsening based</span>
<span
class="cmti-12">on compatible weighted matching</span><span
class="cmr-12">, Computing and Visualization in Science,</span>
<span
class="cmr-12">16, (2013) 59&#8211;76.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[13]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="XDFV2018"></a><span
class="cmr-12">P.</span><span
class="cmr-12">&#x00A0;D&#8217;Ambra, S.</span><span
class="cmr-12">&#x00A0;Filippone and P. S.</span><span
class="cmr-12">&#x00A0;Vassilevski, </span><span
class="cmti-12">BootCMatch: a software</span>
<span
class="cmti-12">package for bootstrap AMG based on graph weighted matching</span><span
class="cmr-12">, ACM</span>
<span
class="cmr-12">Transactions on Mathematical Software, 44, (2018) 39:1&#8211;39:25.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[14]</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="XDDF2020"></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, </span><span
class="cmti-12">AMG preconditioners for</span>
<span
class="cmti-12">Linear Solvers towards Extreme Scale</span><span
class="cmr-12">, SIAM Journal on Scientific Computing</span>
<span
class="cmr-12">43, no. 5 (2021): S679-S703.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<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></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
id="XUMFPACK"></a><span
class="cmr-12">T.</span><span
class="cmr-12">&#x00A0;A.</span><span
class="cmr-12">&#x00A0;Davis, </span><span
class="cmti-12">Algorithm 832: UMFPACK</span>
<span
class="cmti-12">- an Unsymmetric-pattern Multifrontal Method with a Column Pre-ordering</span>
<span
class="cmti-12">Strategy</span><span
class="cmr-12">, ACM Transactions on Mathematical Software, 30, 2004, 196&#8211;199.</span>
<span
class="cmr-12">(See also </span><span
class="cmtt-12">http://www.cise.ufl.edu/~davis/</span><span
class="cmr-12">)</span>
</p>
<p class="bibitem" ><span class="biblabel">
<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></span><a
id="XSUPERLU"></a><span
class="cmr-12">J.</span><span
class="cmr-12">&#x00A0;W.</span><span
class="cmr-12">&#x00A0;Demmel, S.</span><span
class="cmr-12">&#x00A0;C.</span><span
class="cmr-12">&#x00A0;Eisenstat, J.</span><span
class="cmr-12">&#x00A0;R.</span><span
class="cmr-12">&#x00A0;Gilbert,</span>
<span
class="cmr-12">X.</span><span
class="cmr-12">&#x00A0;S.</span><span
class="cmr-12">&#x00A0;Li, J.</span><span
class="cmr-12">&#x00A0;W.</span><span
class="cmr-12">&#x00A0;H.</span><span
class="cmr-12">&#x00A0;Liu, </span><span
class="cmti-12">A supernodal approach to sparse partial pivoting</span><span
class="cmr-12">,</span>
<span
class="cmr-12">SIAM Journal on Matrix Analysis and Applications, 20 (3), 1999, 720&#8211;755.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<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></span><a
id="Xblas3"></a><span
class="cmr-12">J.</span><span
class="cmr-12">&#x00A0;J.</span><span
class="cmr-12">&#x00A0;Dongarra, J.</span><span
class="cmr-12">&#x00A0;Du Croz, I.</span><span
class="cmr-12">&#x00A0;S.</span><span
class="cmr-12">&#x00A0;Duff, S.</span><span
class="cmr-12">&#x00A0;Hammarling, </span><span
class="cmti-12">A set of Level</span>
<span
class="cmti-12">3 Basic Linear Algebra Subprograms</span><span
class="cmr-12">, ACM Transactions on Mathematical</span>
<span
class="cmr-12">Software, 16 (1) 1990, 1&#8211;17.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<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></span><a
id="Xblas2"></a><span
class="cmr-12">J.</span><span
class="cmr-12">&#x00A0;J.</span><span
class="cmr-12">&#x00A0;Dongarra, J.</span><span
class="cmr-12">&#x00A0;Du Croz, S.</span><span
class="cmr-12">&#x00A0;Hammarling, R.</span><span
class="cmr-12">&#x00A0;J.</span><span
class="cmr-12">&#x00A0;Hanson, </span><span
class="cmti-12">An</span>
<span
class="cmti-12">extended set of FORTRAN Basic Linear Algebra Subprograms</span><span
class="cmr-12">, ACM</span>
<span
class="cmr-12">Transactions on Mathematical Software, 14 (1) 1988, 1&#8211;17.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<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></span><a
id="XPARCO2001"></a><span
class="cmr-12">S.</span><span
class="cmr-12">&#x00A0;Filippone, P.</span><span
class="cmr-12">&#x00A0;D&#8217;Ambra, M.</span><span
class="cmr-12">&#x00A0;Colajanni, </span><span
class="cmti-12">Using a Parallel Library of</span>
<span
class="cmti-12">Sparse Linear Algebra in a Fluid Dynamics Application Code on Linux</span>
<span
class="cmti-12">Clusters</span><span
class="cmr-12">, in Proc. of ParCo 2001, Parallel Computing, Advances and Current</span>
<span
class="cmr-12">Issues, 2002.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<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></span><a
id="XPSBLASGUIDE"></a><span
class="cmr-12">S.</span><span
class="cmr-12">&#x00A0;Filippone, A.</span><span
class="cmr-12">&#x00A0;Buttari, </span><span
class="cmti-12">PSBLAS 3.5.0 User&#8217;s Guide. A Reference</span>
<span
class="cmti-12">Guide for the Parallel Sparse BLAS Library</span><span
class="cmr-12">, 2012, available from</span>
<span
class="cmtt-12">https://github.com/sfilippone/psblas3/tree/master/docs</span><span
class="cmr-12">.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<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></span><a
id="XPSBLAS3"></a><span
class="cmr-12">S.</span><span
class="cmr-12">&#x00A0;Filippone, A.</span><span
class="cmr-12">&#x00A0;Buttari, </span><span
class="cmti-12">Object-Oriented Techniques for Sparse Matrix</span>
<span
class="cmti-12">Computations in Fortran 2003</span><span
class="cmr-12">. ACM Transactions on on Mathematical</span>
<span
class="cmr-12">Software, 38 (4), 2012, art.</span><span
class="cmr-12">&#x00A0;23.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<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></span><a
id="Xpsblas_00"></a><span
class="cmr-12">S.</span><span
class="cmr-12">&#x00A0;Filippone, M.</span><span
class="cmr-12">&#x00A0;Colajanni, </span><span
class="cmti-12">PSBLAS: A</span>
<span
class="cmti-12">Library for Parallel Linear Algebra Computation on Sparse Matrices</span><span
class="cmr-12">, ACM</span>
<span
class="cmr-12">Transactions on Mathematical Software, 26 (4), 2000, 527&#8211;550.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<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></span><a
id="XGrHeJi:16"></a><span
class="cmr-12">S. Gratton, P. Henon, P. Jiranek and X. Vasseur, </span><span
class="cmti-12">Reducing complexity of</span>
<span
class="cmti-12">algebraic multigrid by aggregation</span><span
class="cmr-12">, Numerical Lin. Algebra with Applications,</span>
<span
class="cmr-12">2016, 23:501-518</span>
</p>
<p class="bibitem" ><span class="biblabel">
<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></span><a
id="XMPI2"></a><span
class="cmr-12">W.</span><span
class="cmr-12">&#x00A0;Gropp, S.</span><span
class="cmr-12">&#x00A0;Huss-Lederman, A.</span><span
class="cmr-12">&#x00A0;Lumsdaine, E.</span><span
class="cmr-12">&#x00A0;Lusk, B.</span><span
class="cmr-12">&#x00A0;Nitzberg,</span>
<span
class="cmr-12">W.</span><span
class="cmr-12">&#x00A0;Saphir, M.</span><span
class="cmr-12">&#x00A0;Snir, </span><span
class="cmti-12">MPI: The Complete Reference. Volume 2 - The MPI-2</span>
<span
class="cmti-12">Extensions</span><span
class="cmr-12">, MIT Press, 1998.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<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></span><a
id="Xblas1"></a><span
class="cmr-12">C.</span><span
class="cmr-12">&#x00A0;L.</span><span
class="cmr-12">&#x00A0;Lawson, R.</span><span
class="cmr-12">&#x00A0;J.</span><span
class="cmr-12">&#x00A0;Hanson, D.</span><span
class="cmr-12">&#x00A0;Kincaid, F.</span><span
class="cmr-12">&#x00A0;T.</span><span
class="cmr-12">&#x00A0;Krogh, </span><span
class="cmti-12">Basic Linear</span>
<span
class="cmti-12">Algebra Subprograms for FORTRAN usage</span><span
class="cmr-12">, ACM Transactions on</span>
<span
class="cmr-12">Mathematical Software, 5 (3), 1979, 308&#8211;323.</span>
</li> </p>
<li class="itemize"> <p class="bibitem" ><span class="biblabel">
<!--l. 26--><p class="noindent" ><span <span
class="cmr-12">Fabio Durastante, University of Pisa and IAC-CNR, IT;</span> class="cmr-12">[27]</span><span class="bibsp"><span
</li> class="cmr-12">&#x00A0;</span><span
<li class="itemize"> class="cmr-12">&#x00A0;</span><span
<!--l. 27--><p class="noindent" ><span class="cmr-12">&#x00A0;</span></span></span><a
class="cmr-12">Salvatore Filippone, University of Rome Tor-Vergata and IAC-CNR, IT;</span></li></ul> 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></span><a
id="XSUPERLUDIST"></a><span
class="cmr-12">X.</span><span
class="cmr-12">&#x00A0;S.</span><span
class="cmr-12">&#x00A0;Li, J.</span><span
class="cmr-12">&#x00A0;W.</span><span
class="cmr-12">&#x00A0;Demmel, </span><span
class="cmti-12">SuperLU</span><span
class="cmti-12">_DIST: A Scalable</span>
<span
class="cmti-12">Distributed-memory Sparse Direct Solver for Unsymmetric Linear Systems</span><span
class="cmr-12">,</span>
<span
class="cmr-12">ACM Transactions on Mathematical Software, 29 (2), 2003, 110&#8211;140.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<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></span><a
id="XNotay2008"></a><span
class="cmr-12">Y.</span><span
class="cmr-12">&#x00A0;Notay, P.</span><span
class="cmr-12">&#x00A0;S.</span><span
class="cmr-12">&#x00A0;Vassilevski, </span><span
class="cmti-12">Recursive Krylov-based multigrid cycles</span><span
class="cmr-12">,</span>
<span
class="cmr-12">Numerical Linear Algebra with Applications, 15 (5), 2008, 473&#8211;487.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<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></span><a
id="XSaad_book"></a><span
class="cmr-12">Y.</span><span
class="cmr-12">&#x00A0;Saad, </span><span
class="cmti-12">Iterative methods for sparse linear systems</span><span
class="cmr-12">, 2nd edition, SIAM,</span>
<span
class="cmr-12">2003.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[31]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="Xdd2_96"></a><span
class="cmr-12">B.</span><span
class="cmr-12">&#x00A0;Smith, P.</span><span
class="cmr-12">&#x00A0;Bjorstad, W.</span><span
class="cmr-12">&#x00A0;Gropp, </span><span
class="cmti-12">Domain Decomposition: Parallel</span>
<span
class="cmti-12">Multilevel Methods for Elliptic Partial Differential Equations</span><span
class="cmr-12">, Cambridge</span>
<span
class="cmr-12">University Press, 1996.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[32]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="XMPI1"></a><span
class="cmr-12">M.</span><span
class="cmr-12">&#x00A0;Snir, S.</span><span
class="cmr-12">&#x00A0;Otto, S.</span><span
class="cmr-12">&#x00A0;Huss-Lederman, D.</span><span
class="cmr-12">&#x00A0;Walker, J.</span><span
class="cmr-12">&#x00A0;Dongarra, </span><span
class="cmti-12">MPI:</span>
<span
class="cmti-12">The Complete Reference. Volume 1 - The MPI Core</span><span
class="cmr-12">, second edition, MIT</span>
<span
class="cmr-12">Press, 1998.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<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></span><a
id="XStuben_01"></a><span
class="cmr-12">K.</span><span
class="cmr-12">&#x00A0;St</span><span
class="cmr-12">üben, </span><span
class="cmti-12">An Introduction to Algebraic Multigrid</span><span
class="cmr-12">, in A.</span><span
class="cmr-12">&#x00A0;Sch</span><span
class="cmr-12">üller,</span>
<span
class="cmr-12">U.</span><span
class="cmr-12">&#x00A0;Trottenberg, C.</span><span
class="cmr-12">&#x00A0;Oosterlee, Multigrid, Academic Press, 2001.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<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></span><a
id="XTUMINARO_TONG"></a><span
class="cmr-12">R.</span><span
class="cmr-12">&#x00A0;S.</span><span
class="cmr-12">&#x00A0;Tuminaro, C.</span><span
class="cmr-12">&#x00A0;Tong, </span><span
class="cmti-12">Parallel Smoothed Aggregation Multigrid:</span>
<span
class="cmti-12">Aggregation Strategies on Massively Parallel Machines</span><span
class="cmr-12">, in J. Donnelley,</span>
<span
class="cmr-12">editor, Proceedings of SuperComputing 2000, Dallas, 2000.</span>
<!--l. 30--><div class="crosslinks"><p class="noindent"><span </p>
<p class="bibitem" ><span class="biblabel">
<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></span><a
id="XVANEK_MANDEL_BREZINA"></a><span
class="cmr-12">P.</span><span
class="cmr-12">&#x00A0;Van</span><span
class="cmr-12">&#x011B;k, J.</span><span
class="cmr-12">&#x00A0;Mandel, M.</span><span
class="cmr-12">&#x00A0;Brezina, </span><span
class="cmti-12">Algebraic Multigrid by Smoothed</span>
<span
class="cmti-12">Aggregation for Second and Fourth Order Elliptic Problems</span><span
class="cmr-12">, Computing, 56</span>
<span
class="cmr-12">(3) 1996, 179&#8211;196.</span></p></div>
<!--l. 156--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli4.html" ><span href="userhtmlse9.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse9.html#tailuserhtmlse9.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a class="cmr-12">] [</span><a
href="userhtmlli3.html" ><span href="userhtmlli3.html" ><span
class="cmr-12">front</span></a><span class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a class="cmr-12">] [</span><a
href="userhtmlse2.html#userhtmlli3.html" ><span href="userhtml.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>
<!--l. 30--><p class="indent" > <a <!--l. 156--><p class="indent" > <a
id="tailuserhtmlli3.html"></a> id="tailuserhtmlli3.html"></a>
</body></html> </body></html>

@ -83,11 +83,11 @@ class="cmr-12">) provides parallel Algebraic MultiGrid (AMG) preconditioners (se
<span <span
class="cmr-12">e.g., </span><span class="cite"><span class="cmr-12">e.g., </span><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#XBriggs2000"><span href="userhtmlli3.html#XBriggs2000"><span
class="cmr-12">5</span></a><span 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="userhtmlli3.html#XStuben_01"><span
class="cmr-12">33</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>
@ -116,11 +116,11 @@ class="cmr-12">multigrid cycles include the V-, W-, and a version of a Krylov-ty
class="cmr-12">(K-cycle)</span><span class="cmr-12">(K-cycle)</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#XBriggs2000"><span href="userhtmlli3.html#XBriggs2000"><span
class="cmr-12">5</span></a><span 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="userhtmlli3.html#XNotay2008"><span
class="cmr-12">29</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>
@ -136,7 +136,7 @@ class="cmr-8">1</span></sub>
class="cmr-12">version</span><span class="cmr-12">version</span><span
class="cmr-12">&#x00A0;</span><span class="cite"><span class="cmr-12">&#x00A0;</span><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#XDDF2020"><span href="userhtmlli3.html#XDDF2020"><span
class="cmr-12">14</span></a><span class="cmr-12">14</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">.</span> class="cmr-12">.</span>
@ -154,22 +154,22 @@ class="cmr-12">strategies, based on aggregation, are available:</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
href="userhtmlli5.html#XBREZINA_VANEK"><span href="userhtmlli3.html#XBREZINA_VANEK"><span
class="cmr-12">4</span></a><span class="cmr-12">4</span></a><span
class="cmr-12">,</span> 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="userhtmlli3.html#XVANEK_MANDEL_BREZINA"><span
class="cmr-12">35</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
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#Xaaecc_07"><span href="userhtmlli3.html#Xaaecc_07"><span
class="cmr-12">7</span></a><span class="cmr-12">7</span></a><span
class="cmr-12">,</span><span class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlli5.html#XMLD2P4_TOMS"><span href="userhtmlli3.html#XMLD2P4_TOMS"><span
class="cmr-12">11</span></a><span class="cmr-12">11</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">;</span> class="cmr-12">;</span>
@ -184,17 +184,17 @@ class="cmr-12">a coupled, parallel implementation of the Coarsening based on Com
class="cmr-12">Weighted Matching introduced in</span><span class="cmr-12">Weighted Matching introduced in</span><span
class="cmr-12">&#x00A0;</span><span class="cite"><span class="cmr-12">&#x00A0;</span><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#XDV2013"><span href="userhtmlli3.html#XDV2013"><span
class="cmr-12">12</span></a><span class="cmr-12">12</span></a><span
class="cmr-12">,</span><span class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlli5.html#XDFV2018"><span href="userhtmlli3.html#XDFV2018"><span
class="cmr-12">13</span></a><span class="cmr-12">13</span></a><span
class="cmr-12">]</span></span> <span class="cmr-12">]</span></span> <span
class="cmr-12">and described in detail in</span><span class="cmr-12">and described in detail in</span><span
class="cmr-12">&#x00A0;</span><span class="cite"><span class="cmr-12">&#x00A0;</span><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#XDDF2020"><span href="userhtmlli3.html#XDDF2020"><span
class="cmr-12">14</span></a><span class="cmr-12">14</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">;</span></li></ul> class="cmr-12">;</span></li></ul>
@ -233,11 +233,11 @@ class="cmr-12">multilevel preconditioners in the context of the PSBLAS (Parallel
class="cmr-12">computational framework</span><span 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="userhtmlli3.html#Xpsblas_00"><span
class="cmr-12">23</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="userhtmlli3.html#XPSBLAS3"><span
class="cmr-12">22</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>
@ -301,7 +301,7 @@ class="cmr-12">smoothers and solvers for building new versions of the preconditi
<span <span
class="cmr-12">Section</span><span class="cmr-12">Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse6.html#x27-310006"><span href="userhtmlse6.html#x9-310006"><span
class="cmr-12">6</span><!--tex4ht:ref: sec:adding --></a><span class="cmr-12">6</span><!--tex4ht:ref: sec:adding --></a><span
class="cmr-12">).</span> class="cmr-12">).</span>
<!--l. 96--><p class="indent" > <span <!--l. 96--><p class="indent" > <span
@ -315,7 +315,7 @@ class="cmr-12">, while details on the configuration and installation</span>
<span <span
class="cmr-12">of the package are given in Section</span><span class="cmr-12">of the package are given in Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse3.html#x8-70003"><span href="userhtmlse3.html#x6-70003"><span
class="cmr-12">3</span><!--tex4ht:ref: sec:building --></a><span class="cmr-12">3</span><!--tex4ht:ref: sec:building --></a><span
class="cmr-12">. The basics for building and applying the</span> class="cmr-12">. The basics for building and applying the</span>
<span <span
@ -324,13 +324,13 @@ class="cmr-12">preconditioners with the Krylov solvers implemented in PSBLAS are
class="cmr-12">in</span><span class="cmr-12">in</span><span
class="cmr-12">&#x00A0;Section</span><span class="cmr-12">&#x00A0;Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse4.html#x14-130004"><span href="userhtmlse4.html#x7-130004"><span
class="cmr-12">4</span><!--tex4ht:ref: sec:started --></a><span class="cmr-12">4</span><!--tex4ht:ref: sec:started --></a><span
class="cmr-12">, where the Fortran codes of a few sample programs are also shown.</span> class="cmr-12">, where the Fortran codes of a few sample programs are also shown.</span>
<span <span
class="cmr-12">A reference guide for the user interface routines is provided in Section</span><span class="cmr-12">A reference guide for the user interface routines is provided in Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse5.html#x17-160005"><span href="userhtmlse5.html#x8-160005"><span
class="cmr-12">5</span><!--tex4ht:ref: sec:userinterface --></a><span class="cmr-12">5</span><!--tex4ht:ref: sec:userinterface --></a><span
class="cmr-12">.</span> class="cmr-12">.</span>
<span <span
@ -338,13 +338,13 @@ class="cmr-12">Information on the extension of the package through the addition
<span <span
class="cmr-12">smoothers and solvers is reported in Section</span><span class="cmr-12">smoothers and solvers is reported in Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse6.html#x27-310006"><span href="userhtmlse6.html#x9-310006"><span
class="cmr-12">6</span><!--tex4ht:ref: sec:adding --></a><span class="cmr-12">6</span><!--tex4ht:ref: sec:adding --></a><span
class="cmr-12">. The error handling mechanism</span> class="cmr-12">. The error handling mechanism</span>
<span <span
class="cmr-12">used by the package is briefly described in Section</span><span class="cmr-12">used by the package is briefly described in Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x10-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">. The copyright terms</span> class="cmr-12">. The copyright terms</span>
<span <span
@ -352,7 +352,7 @@ class="cmr-12">concerning the distribution and modification of AMG4PSBLAS are re
<span <span
class="cmr-12">Appendix</span><span class="cmr-12">Appendix</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse8.html#x29-33000A"><span href="userhtmlse8.html#x11-33000A"><span
class="cmr-12">A</span><!--tex4ht:ref: sec:license --></a><span class="cmr-12">A</span><!--tex4ht:ref: sec:license --></a><span
class="cmr-12">.</span> class="cmr-12">.</span>

@ -42,7 +42,7 @@ class="cmr-12">where contact points for further information can be also found.</
<!--l. 12--><p class="indent" > <span <!--l. 12--><p class="indent" > <span
class="cmr-12">The software is available under a modified BSD license, as specified in Appendix</span><span class="cmr-12">The software is available under a modified BSD license, as specified in Appendix</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse8.html#x29-33000A"><span href="userhtmlse8.html#x11-33000A"><span
class="cmr-12">A</span><!--tex4ht:ref: sec:license --></a><span class="cmr-12">A</span><!--tex4ht:ref: sec:license --></a><span
class="cmr-12">;</span> class="cmr-12">;</span>
<span <span
@ -58,17 +58,64 @@ class="cmr-12">The library defines a version string with the constant</span>
src="userhtml1x.png" alt="amg_version_string_ src="userhtml1x.png" alt="amg_version_string_
" class="math-display" ></div> " 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"><code class="verb">1.0</code></span><span class="cmr-12">whose current value is </span><span class="obeylines-h"><span class="verb"><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"> <h4 class="likesubsectionHead"><a
<span class="likesubsectionToc" ><a id="x5-5000"></a><span
href="userhtmlli3.html#x6-5000"><span class="cmr-12">Contributors</span></h4>
class="cmr-12">Contributors</span></a></span> <ul class="itemize1">
<br /> <span class="likesubsectionToc" ><a <li class="itemize">
href="userhtmlli4.html#x7-6000"><span <!--l. 25--><p class="noindent" ><span
class="cmr-12">Citing AMG4PSBLAS</span></a></span> class="cmr-12">Pasqua D&#8217;Ambra, IAC-CNR, IT;</span>
</div> </li>
<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>
<!--l. 30--><p class="noindent" >
<h4 class="likesubsectionHead"><a
id="x5-6000"></a><span
class="cmr-12">Citing AMG4PSBLAS</span></h4>
<!--l. 31--><p class="noindent" ><span
class="cmr-12">When use the library, please cite the following:</span>
<pre class="verbatim" id="verbatim-1">
@article{DDF2021,
&#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;{{{AMG&#x00A0;Preconditioners&#x00A0;for&#x00A0;Linear&#x00A0;Solvers&#x00A0;towards&#x00A0;Extreme&#x00A0;Scale}},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;journal&#x00A0;=&#x00A0;{arXiv&#x00A0;e-preprints},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;eprint&#x00A0;=&#x00A0;{2006.16147v3},
&#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;}
@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;title&#x00A0;=&#x00A0;&#x00A0;{{PSCToolkit}&#x00A0;{W}eb&#x00A0;page},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;url&#x00A0;=&#x00A0;&#x00A0;&#x00A0;&#x00A0;{https://psctoolkit.github.io/},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;howpublished&#x00A0;=&#x00A0;{\url{https://psctoolkit.github.io/}},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;year&#x00A0;=&#x00A0;{2021}
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;}
</pre>
<!--l. 70--><p class="nopar" >

File diff suppressed because it is too large Load Diff

@ -29,7 +29,7 @@ class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<h3 class="sectionHead"><span class="titlemark"><span <h3 class="sectionHead"><span class="titlemark"><span
class="cmr-12">4 </span></span> <a class="cmr-12">4 </span></span> <a
id="x14-130004"></a><span id="x7-130004"></a><span
class="cmr-12">Getting Started</span></h3> class="cmr-12">Getting Started</span></h3>
<!--l. 5--><p class="noindent" ><span <!--l. 5--><p class="noindent" ><span
class="cmr-12">This section describes the basics for building and applying AMG4PSBLAS one-level</span> class="cmr-12">This section describes the basics for building and applying AMG4PSBLAS one-level</span>
@ -39,7 +39,7 @@ class="cmr-12">and multilevel (i.e., AMG) preconditioners with the Krylov solver
class="cmr-12">PSBLAS</span><span class="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="userhtmlli3.html#XPSBLASGUIDE"><span
class="cmr-12">21</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>
@ -47,25 +47,36 @@ class="cmr-12">.</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"> class="enumerate" id="x7-13002x1">
<!--l. 11--><p class="noindent" ><span <!--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"><code class="verb">amg_</code></span><span <span class="obeylines-h"><span class="verb"><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="cmtt-12">amg_</span></span></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"><code class="verb">s</code></span><span class="cmr-12">may be </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">s</span></span></span><span
class="cmr-12">, </span><span class="obeylines-h"><code class="verb">c</code></span> <span class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
class="cmr-12">or </span><span class="obeylines-h"><code class="verb">z</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">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"><code class="verb">s</code></span> <span class="cmr-12">type of the sparse matrix (</span><span class="obeylines-h"><span class="verb"><span
class="cmr-12">= real single precision; </span><span class="obeylines-h"><code class="verb">d</code></span> <span class="cmtt-12">s</span></span></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"><code class="verb">c</code></span> <span <span class="obeylines-h"><span class="verb"><span
class="cmr-12">= complex single precision; </span><span class="obeylines-h"><code class="verb">z</code></span> <span class="cmtt-12">c</span></span></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>
@ -73,7 +84,7 @@ class="cmr-12">structure is accessed by the user only through the AMG4PSBLAS rou
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"> class="enumerate" id="x7-13004x2">
<!--l. 19--><p class="noindent" ><span <!--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
@ -86,7 +97,7 @@ class="cmr-12">the user. The preconditioner types and the defaults associated wi
<span <span
class="cmr-12">are given in Table</span><span 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="#x7-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><code class="lstinline"><span style="color:#000000">init</span></code> <span class="cmr-12">, where the strings used by </span><code class="lstinline"><span style="color:#000000">init</span></code> <span
class="cmr-12">to identify the</span> class="cmr-12">to identify the</span>
@ -96,7 +107,7 @@ class="cmr-12">preconditioner types are also given. Note that these strings are
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"> class="enumerate" id="x7-13006x3">
<!--l. 29--><p class="noindent" ><span <!--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
@ -111,30 +122,30 @@ class="cmr-12">associated with the selected preconditioner type, to obtain a var
class="cmr-12">preconditioner. Examples of use of </span><code class="lstinline"><span style="color:#000000">set</span></code> <span class="cmr-12">preconditioner. Examples of use of </span><code class="lstinline"><span style="color:#000000">set</span></code> <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="#x7-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
class="cmr-12">is provided in Section</span><span class="cmr-12">is provided in Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse5.html#x17-160005"><span href="userhtmlse5.html#x8-160005"><span
class="cmr-12">5</span><!--tex4ht:ref: sec:userinterface --></a><span class="cmr-12">5</span><!--tex4ht:ref: sec:userinterface --></a><span
class="cmr-12">, Tables</span><span class="cmr-12">, Tables</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlsu9.html#x19-18009r2"><span href="userhtmlse5.html#x8-18009r2"><span
class="cmr-12">2</span><!--tex4ht:ref: tab:p_cycle --></a><span class="cmr-12">2</span><!--tex4ht:ref: tab:p_cycle --></a><span
class="cmr-12">-</span><a class="cmr-12">-</span><a
href="userhtmlsu9.html#x19-18015r8"><span href="userhtmlse5.html#x8-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"> class="enumerate" id="x7-13008x4">
<!--l. 40--><p class="noindent" ><span <!--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>
@ -142,7 +153,7 @@ class="cmr-12">. If the selected preconditioner is</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"> class="enumerate" id="x7-13009x0">
<!--l. 43--><p class="noindent" ><span <!--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>
@ -151,7 +162,7 @@ class="cmr-12">routine </span><code class="lstinline"><span style="color:#000000
class="cmr-12">.</span> class="cmr-12">.</span>
</li> </li>
<li <li
class="enumerate" id="x14-13010x0"> class="enumerate" id="x7-13010x0">
<!--l. 45--><p class="noindent" ><span <!--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>
@ -165,7 +176,7 @@ class="cmr-12">the routine </span><code class="lstinline"><span style="color:#00
class="cmr-12">.</span> class="cmr-12">.</span>
</li> </li>
<li <li
class="enumerate" id="x14-13012x5"> class="enumerate" id="x7-13012x5">
<!--l. 50--><p class="noindent" ><span <!--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>
@ -180,7 +191,7 @@ class="cmr-12">implementing the Krylov solver (</span><code class="lstinline"><s
class="cmr-12">).</span> class="cmr-12">).</span>
</li> </li>
<li <li
class="enumerate" id="x14-13014x6"> class="enumerate" id="x7-13014x6">
<!--l. 54--><p class="noindent" ><span <!--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><code class="lstinline"><span style="color:#000000">free</span></code><span class="cmr-12">. This is performed by the routine </span><code class="lstinline"><span style="color:#000000">free</span></code><span
@ -194,13 +205,13 @@ class="cmr-12">All the previous routines are available as methods of the precond
<span <span
class="cmr-12">detailed description of them is given in Section</span><span class="cmr-12">detailed description of them is given in Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse5.html#x17-160005"><span href="userhtmlse5.html#x8-160005"><span
class="cmr-12">5</span><!--tex4ht:ref: sec:userinterface --></a><span class="cmr-12">5</span><!--tex4ht:ref: sec:userinterface --></a><span
class="cmr-12">. Examples showing the basic use of</span> class="cmr-12">. Examples showing the basic use of</span>
<span <span
class="cmr-12">AMG4PSBLAS are reported in Section</span><span class="cmr-12">AMG4PSBLAS are reported in Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlsu6.html#x15-140004.1"><span href="#x7-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">.</span> class="cmr-12">.</span>
<div class="table"> <div class="table">
@ -208,7 +219,7 @@ class="cmr-12">.</span>
<!--l. 63--><p class="indent" > <a <!--l. 63--><p class="indent" > <a
id="x14-13015r1"></a><hr class="float"><div class="float" id="x7-13015r1"></a><hr class="float"><div class="float"
> >
@ -263,79 +274,59 @@ 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"> class="td11">No preconditioner </td><td style="white-space:normal; text-align:left;" id="TBL-1-2-2"
No preconditioner </td><td style="white-space:normal; text-align:left;" id="TBL-1-2-2" 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> </td><td style="white-space:normal; text-align:left;" id="TBL-1-2-3"
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>
</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"> class="td11">Diagonal </td><td style="white-space:normal; text-align:left;" id="TBL-1-3-2"
Diagonal </td><td style="white-space:normal; text-align:left;" id="TBL-1-3-2"
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="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>,
<code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">JACOBI</span><span style="color:#000000">&#8217;</span></code>, <code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">JACOBI</span><span style="color:#000000">&#8217;</span></code>,
<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> <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> </td><td style="white-space:normal; text-align:left;" id="TBL-1-3-3"
</td><td style="white-space:normal; text-align:left;" id="TBL-1-3-3"
class="td11"><!--l. 71--><p class="noindent" >Diagonal preconditioner. For any zero class="td11"><!--l. 71--><p class="noindent" >Diagonal preconditioner. For any zero
diagonal entry of the matrix to be diagonal entry of the matrix to be
preconditioned, the corresponding entry preconditioned, the corresponding entry
of the preconditioner is set to&#x00A0;1. of the preconditioner is set to&#x00A0;1. </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-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"> class="td11">Gauss-Seidel </td><td style="white-space:normal; text-align:left;" id="TBL-1-4-2"
Gauss-Seidel </td><td style="white-space:normal; text-align:left;" id="TBL-1-4-2"
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="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>,
<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> <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> </td><td style="white-space:normal; text-align:left;" id="TBL-1-4-3"
</td><td style="white-space:normal; text-align:left;" id="TBL-1-4-3"
class="td11"><!--l. 74--><p class="noindent" >Hybrid Gauss-Seidel (forward), that is, class="td11"><!--l. 74--><p class="noindent" >Hybrid Gauss-Seidel (forward), that is,
global block Jacobi with Gauss-Seidel as global block Jacobi with Gauss-Seidel as
local solver. local solver. </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-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"> class="td11">Symmetrized Gauss-Seidel</td><td style="white-space:normal; text-align:left;" id="TBL-1-5-2"
Symmetrized Gauss-Seidel </td><td style="white-space:normal; text-align:left;" id="TBL-1-5-2"
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="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>,
<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> <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> </td><td style="white-space:normal; text-align:left;" id="TBL-1-5-3"
</td><td style="white-space:normal; text-align:left;" id="TBL-1-5-3"
class="td11"><!--l. 77--><p class="noindent" >Symmetrized hybrid Gauss-Seidel, that class="td11"><!--l. 77--><p class="noindent" >Symmetrized hybrid Gauss-Seidel, that
is, forward Gauss-Seidel followed by is, forward Gauss-Seidel followed by
backward Gauss-Seidel. backward Gauss-Seidel. </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-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"> class="td11">Block Jacobi </td><td style="white-space:normal; text-align:left;" id="TBL-1-6-2"
Block Jacobi </td><td style="white-space:normal; text-align:left;" id="TBL-1-6-2"
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="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>,
<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> <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> </td><td style="white-space:normal; text-align:left;" id="TBL-1-6-3"
</td><td style="white-space:normal; text-align:left;" id="TBL-1-6-3"
class="td11"><!--l. 80--><p class="noindent" >Block-Jacobi with ILU(0) on the local class="td11"><!--l. 80--><p class="noindent" >Block-Jacobi with ILU(0) on the local
blocks. 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-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"> class="td11">Additive Schwarz </td><td style="white-space:normal; text-align:left;" id="TBL-1-7-2"
Additive Schwarz </td><td style="white-space:normal; text-align:left;" id="TBL-1-7-2" 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> </td><td style="white-space:normal; text-align:left;" id="TBL-1-7-3"
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>
</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"> class="td11">Multilevel </td><td style="white-space:normal; text-align:left;" id="TBL-1-8-2"
Multilevel </td><td style="white-space:normal; text-align:left;" id="TBL-1-8-2" 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> </td><td style="white-space:normal; text-align:left;" id="TBL-1-8-3"
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>
</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
@ -344,17 +335,16 @@ class="td11"> <!--l. 83--><p class="noindent" >V-cycle with one
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="userhtmlse5.html#x8-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="userhtmlse5.html#x8-18015r8">8<!--tex4ht:ref: tab:p_smoother_1 --></a> for further details of
the preconditioner. the 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-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?: x7-13015r1 -->
</div> </div>
@ -375,7 +365,7 @@ 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
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlsu6.html#x15-140004.1"><span href="#x7-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">).</span> class="cmr-12">).</span>
<br <br
@ -395,19 +385,552 @@ class="cmr-12">problems. However, this does not necessarily correspond to the sh
<span <span
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"> <h4 class="subsectionHead"><span class="titlemark"><span
<span class="subsectionToc" ><span class="cmr-12">4.1 </span></span> <a
class="cmr-12">4.1 </span><a id="x7-140004.1"></a><span
href="userhtmlsu6.html#x15-140004.1"><span class="cmr-12">Examples</span></h4>
class="cmr-12">Examples</span></a></span> <!--l. 116--><p class="noindent" ><span
<br /> <span class="subsectionToc" ><span class="cmr-12">The code reported in Figure</span><span
class="cmr-12">4.2 </span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlsu7.html#x16-150004.2"><span href="#x7-14001r1"><span
class="cmr-12">GPU example</span></a></span> class="cmr-12">1</span><!--tex4ht:ref: fig:ex1 --></a> <span
class="cmr-12">shows how to set and apply the default multilevel</span>
<span
class="cmr-12">preconditioner available in the real double precision version of AMG4PSBLAS</span>
<span
class="cmr-12">(see Table</span><span
class="cmr-12">&#x00A0;</span><a
href="#x7-13015r1"><span
class="cmr-12">1</span><!--tex4ht:ref: tab:precinit --></a><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="cmr-12">as the</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="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="cmr-12">is not needed) and is applied</span>
<span
class="cmr-12">with the CG solver provided by PSBLAS (the matrix of the system to be</span>
<span
class="cmr-12">solved is assumed to be positive definite). As previously observed, the modules</span>
<code class="lstinline"><span style="color:#000000">psb_base_mod</span></code><span
class="cmr-12">, </span><code class="lstinline"><span style="color:#000000">amg_prec_mod</span></code> <span
class="cmr-12">and </span><code class="lstinline"><span style="color:#000000">psb_krylov_mod</span></code> <span
class="cmr-12">must be used by the example</span>
<span
class="cmr-12">program.</span>
<!--l. 126--><p class="indent" > <span
class="cmr-12">The part of the code dealing with reading and assembling the sparse matrix and the</span>
<span
class="cmr-12">right-hand side vector and the deallocation of the relevant data structures, performed</span>
<span
class="cmr-12">through the PSBLAS routines for sparse matrix and vector management,</span>
<span
class="cmr-12">is not reported here for the sake of conciseness. The complete code can be</span>
<span
class="cmr-12">found in the example program file </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">amg_dexample_ml.f90</span></span></span><span
class="cmr-12">, in the directory</span>
<span class="obeylines-h"><span class="verb"><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">&#x00A0;</span><a
href="userhtmlse3.html#x6-120003.5"><span
class="cmr-12">3.5</span><!--tex4ht:ref: sec:ex_and_test --></a><span
class="cmr-12">). A</span>
<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
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>
<span
class="cmr-12">the PSBLAS User&#8217;s Guide</span><span
class="cmr-12">&#x00A0;</span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli3.html#XPSBLASGUIDE"><span
class="cmr-12">21</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span>
<!--l. 138--><p class="indent" > <span
class="cmr-12">The setup and application of the default multilevel preconditioner for the real single</span>
<span
class="cmr-12">precision and the complex, single and double precision, versions are obtained</span>
<span
class="cmr-12">with straightforward modifications of the previous example (see Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse5.html#x8-160005"><span
class="cmr-12">5</span><!--tex4ht:ref: sec:userinterface --></a> <span
class="cmr-12">for</span>
<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
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>
<!--l. 144--><p class="indent" > <a
id="x7-14001r1"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 145--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-7">
&#x00A0;&#x00A0;use&#x00A0;psb_base_mod
&#x00A0;&#x00A0;use&#x00A0;amg_prec_mod
&#x00A0;&#x00A0;use&#x00A0;psb_krylov_mod
...&#x00A0;...
!
!&#x00A0;sparse&#x00A0;matrix
&#x00A0;&#x00A0;type(psb_dspmat_type)&#x00A0;::&#x00A0;A
!&#x00A0;sparse&#x00A0;matrix&#x00A0;descriptor
&#x00A0;&#x00A0;type(psb_desc_type)&#x00A0;&#x00A0;&#x00A0;::&#x00A0;desc_A
!&#x00A0;preconditioner
&#x00A0;&#x00A0;type(amg_dprec_type)&#x00A0;&#x00A0;::&#x00A0;P
!&#x00A0;right-hand&#x00A0;side&#x00A0;and&#x00A0;solution&#x00A0;vectors
&#x00A0;&#x00A0;type(psb_d_vect_type)&#x00A0;::&#x00A0;b,&#x00A0;x
...&#x00A0;...
!
!&#x00A0;initialize&#x00A0;the&#x00A0;parallel&#x00A0;environment
&#x00A0;&#x00A0;call&#x00A0;psb_init(ctxt)
&#x00A0;&#x00A0;call&#x00A0;psb_info(ctxt,iam,np)
...&#x00A0;...
!
!&#x00A0;read&#x00A0;and&#x00A0;assemble&#x00A0;the&#x00A0;spd&#x00A0;matrix&#x00A0;A&#x00A0;and&#x00A0;the&#x00A0;right-hand&#x00A0;side&#x00A0;b
!&#x00A0;using&#x00A0;PSBLAS&#x00A0;routines&#x00A0;for&#x00A0;sparse&#x00A0;matrix&#x00A0;/&#x00A0;vector&#x00A0;management
...&#x00A0;...
!
!&#x00A0;initialize&#x00A0;the&#x00A0;default&#x00A0;multilevel&#x00A0;preconditioner,&#x00A0;i.e.&#x00A0;V-cycle
!&#x00A0;with&#x00A0;basic&#x00A0;smoothed&#x00A0;aggregation,&#x00A0;1&#x00A0;hybrid&#x00A0;forward/backward
!&#x00A0;GS&#x00A0;sweep&#x00A0;as&#x00A0;pre/post-smoother&#x00A0;and&#x00A0;UMFPACK&#x00A0;as&#x00A0;coarsest-level
!&#x00A0;solver
&#x00A0;&#x00A0;call&#x00A0;P%init(ctxt,&#8217;ML&#8217;,info)
!
!&#x00A0;build&#x00A0;the&#x00A0;preconditioner
&#x00A0;&#x00A0;call&#x00A0;P%hierarchy_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;&#x00A0;...&#x00A0;...
!
!&#x00A0;solve&#x00A0;Ax=b&#x00A0;with&#x00A0;preconditioned&#x00A0;FCG
&#x00A0;&#x00A0;call&#x00A0;psb_krylov(&#8217;FCG&#8217;,A,P,b,x,tol,desc_A,info)
&#x00A0;&#x00A0;...&#x00A0;...
!
!&#x00A0;deallocate&#x00A0;the&#x00A0;preconditioner
&#x00A0;&#x00A0;call&#x00A0;P%free(info)
!
!&#x00A0;deallocate&#x00A0;other&#x00A0;data&#x00A0;structures
&#x00A0;&#x00A0;...&#x00A0;...
!
!&#x00A0;exit&#x00A0;the&#x00A0;parallel&#x00A0;environment
&#x00A0;&#x00A0;call&#x00A0;psb_exit(ctxt)
&#x00A0;&#x00A0;stop
</pre>
<!--l. 255--><p class="nopar" > </div>
<br /> <div class="caption"
><span class="id">Listing 1: </span><span
class="content">setup and application of the default multilevel preconditioner (example 1).
</span></div><!--tex4ht:label?: x7-14001r1 -->
</div> </div>
</div><hr class="endfloat" />
<!--l. 264--><p class="indent" > <span
class="cmr-12">Different versions of the multilevel preconditioner can be obtained by changing the</span>
<span
class="cmr-12">default values of the preconditioner parameters. The code reported in Figure</span><span
class="cmr-12">&#x00A0;</span><a
href="#x7-14002r2"><span
class="cmr-12">2</span><!--tex4ht:ref: fig:ex2 --></a> <span
class="cmr-12">shows</span>
<span
class="cmr-12">how to set a V-cycle preconditioner which applies 1 block-Jacobi sweep as pre-</span>
<span
class="cmr-12">and post-smoother, and solves the coarsest-level system with 8 block-Jacobi</span>
<span
class="cmr-12">sweeps. Note that the ILU(0) factorization (plus triangular solve) is used as</span>
<span
class="cmr-12">local solver for the block-Jacobi sweeps, since this is the default associated</span>
<span
class="cmr-12">with block-Jacobi and set by</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="cmr-12">. Furthermore, specifying block-Jacobi as</span>
<span
class="cmr-12">coarsest-level solver implies that the coarsest-level matrix is distributed among</span>
<span
class="cmr-12">the processes. Figure</span><span
class="cmr-12">&#x00A0;</span><a
href="#x7-14003r3"><span
class="cmr-12">3</span><!--tex4ht:ref: fig:ex3 --></a> <span
class="cmr-12">shows how to set a W-cycle preconditioner using the</span>
<span
class="cmr-12">Coarsening based on Compatible Weighted Matching, aggregates of size at</span>
<span
class="cmr-12">most 8 and smoothed prolongators. It applies 2 hybrid Gauss-Seidel sweeps as</span>
<span
class="cmr-12">pre- and post-smoother, and solves the coarsest-level system with the parallel</span>
<span
class="cmr-12">flexible Conjugate Gradient method (KRM) coupled with the block-Jacobi</span>
<span
class="cmr-12">preconditioner having ILU(0) on the blocks. Default parameters are used for stopping</span>
<span
class="cmr-12">criterion of the coarsest solver. Note that, also in this case, specifying KRM as</span>
<span
class="cmr-12">coarsest-level solver implies that the coarsest-level matrix is distributed among the</span>
<span
class="cmr-12">processes.</span>
<!--l. 291--><p class="indent" > <span
class="cmr-12">The code fragments shown in Figures</span><span
class="cmr-12">&#x00A0;</span><a
href="#x7-14002r2"><span
class="cmr-12">2</span><!--tex4ht:ref: fig:ex2 --></a> <span
class="cmr-12">and </span><a
href="#x7-14003r3"><span
class="cmr-12">3</span><!--tex4ht:ref: fig:ex3 --></a> <span
class="cmr-12">are included in the example program</span>
<span
class="cmr-12">file </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">amg_dexample_ml.f90</span></span></span> <span
class="cmr-12">too.</span>
<!--l. 294--><p class="indent" > <span
class="cmr-12">Finally, Figure</span><span
class="cmr-12">&#x00A0;</span><a
href="#x7-14004r4"><span
class="cmr-12">4</span><!--tex4ht:ref: fig:ex4 --></a> <span
class="cmr-12">shows the setup of a one-level additive Schwarz preconditioner,</span>
<span
class="cmr-12">i.e., RAS with overlap 2. Note also that a Krylov method different from CG</span>
<span
class="cmr-12">must be used to solve the preconditioned system, since the preconditione in</span>
<span
class="cmr-12">nonsymmetric. The corresponding example program is available in the file</span>
<span class="obeylines-h"><span class="verb"><span
class="cmtt-12">amg_dexample_1lev.f90</span></span></span><span
class="cmr-12">.</span>
<!--l. 301--><p class="indent" > <span
class="cmr-12">For all the previous preconditioners, example programs where the sparse matrix</span>
<span
class="cmr-12">and the right-hand side are generated by discretizing a PDE with Dirichlet</span>
<span
class="cmr-12">boundary conditions are also available in the directory </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">samples/simple/pdegen</span></span></span><span
class="cmr-12">.</span>
<!--l. 304--><p class="indent" > <a
id="x7-14002r2"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 318--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-8">
...&#x00A0;...
!&#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;sweeps&#x00A0;(with&#x00A0;ILU(0)&#x00A0;on&#x00A0;the&#x00A0;blocks)&#x00A0;as&#x00A0;coarsest-level&#x00A0;solver
&#x00A0;&#x00A0;call&#x00A0;P%init(ctxt,&#8217;ML&#8217;,info)
&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;SMOOTHER_TYPE&#8217;,&#8217;BJAC&#8217;,info)
&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;COARSE_SOLVE&#8217;,&#8217;BJAC&#8217;,info)
&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;COARSE_SWEEPS&#8217;,8,info)
&#x00A0;&#x00A0;call&#x00A0;P%hierarchy_build(A,desc_A,info)
&#x00A0;&#x00A0;call&#x00A0;P%smoothers_build(A,desc_A,info)
...&#x00A0;...
</pre>
<!--l. 333--><p class="nopar" > </div></div>
<br /><div class="caption"
><span class="id">Listing 2: </span><span
class="content">setup of a multilevel preconditioner based on the default decoupled coarsening</span></div><!--tex4ht:label?: x7-14002r2 -->
</div><hr class="endfloat" />
<!--l. 340--><p class="indent" > <a
id="x7-14003r3"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 362--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-9">
...&#x00A0;...
!&#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;matrix,&#x00A0;and&#x00A0;MUMPS&#x00A0;as&#x00A0;coarsest-level&#x00A0;solver
&#x00A0;&#x00A0;call&#x00A0;P%init(ctxt,&#8217;ML&#8217;,info)
&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;PAR_AGGR_ALG&#8217;,&#8217;COUPLED&#8217;,info)
&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;AGGR_TYPE&#8217;,&#8217;MATCHBOXP&#8217;,info)
&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;AGGR_SIZE&#8217;,8,info)
&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;ML_CYCLE&#8217;,&#8217;WCYCLE&#8217;,info)
&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;SMOOTHER_TYPE&#8217;,&#8217;FBGS&#8217;,info)
&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;SMOOTHER_SWEEPS&#8217;,2,info)
&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;COARSE_SOLVE&#8217;,&#8217;KRM&#8217;,info)
&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;COARSE_MAT&#8217;,&#8217;DIST&#8217;,info)
&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;KRM_METHOD&#8217;,&#8217;FCG&#8217;,info)
&#x00A0;&#x00A0;call&#x00A0;P%hierarchy_build(A,desc_A,info)
&#x00A0;&#x00A0;call&#x00A0;P%smoothers_build(A,desc_A,info)
...&#x00A0;...
</pre>
<!--l. 383--><p class="nopar" > </div></div>
<br /> <div class="caption"
><span class="id">Listing 3: </span><span
class="content">setup of a multilevel preconditioner based on the coupled coarsening using
weighted matching</span></div><!--tex4ht:label?: x7-14003r3 -->
</div><hr class="endfloat" />
<!--l. 390--><p class="indent" > <a
id="x7-14004r4"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 402--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-10">
...&#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;&#x00A0;call&#x00A0;P%init(ctxt,&#8217;AS&#8217;,info)
&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;SUB_OVR&#8217;,2,info)
&#x00A0;&#x00A0;call&#x00A0;P%bld(A,desc_A,info)
...&#x00A0;...
!&#x00A0;solve&#x00A0;Ax=b&#x00A0;with&#x00A0;preconditioned&#x00A0;BiCGSTAB
&#x00A0;&#x00A0;call&#x00A0;psb_krylov(&#8217;BICGSTAB&#8217;,A,P,b,x,tol,desc_A,info)
</pre>
<!--l. 414--><p class="nopar" > </div></div>
<br /> <div class="caption"
><span class="id">Listing 4: </span><span
class="content">setup of a one-level Schwarz preconditioner.</span></div><!--tex4ht:label?: x7-14004r4 -->
</div><hr class="endfloat" />
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">4.2 </span></span> <a
id="x7-150004.2"></a><span
class="cmr-12">GPU example</span></h4>
<!--l. 426--><p class="noindent" ><span
class="cmr-12">The code discussed here shows how to set up a program exploiting the combined GPU</span>
<span
class="cmr-12">capabilities of PSBLAS and AMG4PSBLAS. The code example is available in the</span>
<span
class="cmr-12">source distribution directory </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">amg4psblas/examples/gpu</span></span></span><span
class="cmr-12">.</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>
<span
class="cmr-12">variables:</span>
<!--l. 433--><p class="indent" > <a
id="x7-15001r5"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 452--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-11">
program&#x00A0;amg_dexample_gpu
&#x00A0;&#x00A0;use&#x00A0;psb_base_mod
&#x00A0;&#x00A0;use&#x00A0;amg_prec_mod
&#x00A0;&#x00A0;use&#x00A0;psb_krylov_mod
&#x00A0;&#x00A0;use&#x00A0;psb_util_mod
&#x00A0;&#x00A0;use&#x00A0;psb_gpu_mod
&#x00A0;&#x00A0;use&#x00A0;data_input
&#x00A0;&#x00A0;use&#x00A0;amg_d_pde_mod
&#x00A0;&#x00A0;implicit&#x00A0;none
&#x00A0;&#x00A0;.......
&#x00A0;&#x00A0;!&#x00A0;GPU&#x00A0;variables
&#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_i_vect_gpu)&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;::&#x00A0;igmold
&#x00A0;
</pre>
<!--l. 471--><p class="nopar" > </div></div>
<br /> <div class="caption"
><span class="id">Listing 5: </span><span
class="content">setup of a GPU-enabled test program part one.</span></div><!--tex4ht:label?: x7-15001r5 -->
</div><hr class="endfloat" />
<!--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="cmtt-12">HLG</span></span></span> <span
class="cmr-12">data structure for</span>
<span
class="cmr-12">sparse matrices on GPUs; for more information please refer to the PSBLAS-EXT users&#8217;</span>
<span
class="cmr-12">guide.</span>
<!--l. 482--><p class="indent" > <span
class="cmr-12">We then have to initialize the GPU environment, and pass the appropriate MOLD</span>
<span
class="cmr-12">variables to the build methods (see also the PSBLAS and PSBLAS-EXT users&#8217;</span>
<span
class="cmr-12">guides).</span>
<!--l. 485--><p class="indent" > <a
id="x7-15002r6"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 501--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-12">
&#x00A0;&#x00A0;call&#x00A0;psb_init(ctxt)
&#x00A0;&#x00A0;call&#x00A0;psb_info(ctxt,iam,np)
&#x00A0;&#x00A0;!
&#x00A0;&#x00A0;!&#x00A0;BEWARE:&#x00A0;if&#x00A0;you&#x00A0;have&#x00A0;NGPUS&#x00A0;&#x00A0;per&#x00A0;node,&#x00A0;the&#x00A0;default&#x00A0;is&#x00A0;to
&#x00A0;&#x00A0;!&#x00A0;attach&#x00A0;to&#x00A0;mod(IAM,NGPUS)
&#x00A0;&#x00A0;!
&#x00A0;&#x00A0;call&#x00A0;psb_gpu_init(ictxt)
&#x00A0;&#x00A0;......
&#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;
</pre>
<!--l. 516--><p class="nopar" > </div></div>
<br /> <div class="caption"
><span class="id">Listing 6: </span><span
class="content">setup of a GPU-enabled test program part two.</span></div><!--tex4ht:label?: x7-15002r6 -->
</div><hr class="endfloat" />
<!--l. 523--><p class="indent" > <span
class="cmr-12">Finally, we convert the input matrix, the descriptor and the vectors to use a</span>
<span
class="cmr-12">GPU-enabled internal storage format. We then preallocate the preconditioner</span>
<span
class="cmr-12">workspace before entering the Krylov method. At the end of the code, we close the</span>
<span
class="cmr-12">GPU environment</span>
<!--l. 527--><p class="indent" > <a
id="x7-15003r7"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 557--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-13">
&#x00A0;&#x00A0;call&#x00A0;desc_a%cnv(mold=igmold)
&#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(b,desc_a,info,mold=vgmold)
&#x00A0;&#x00A0;!
&#x00A0;&#x00A0;!&#x00A0;iterative&#x00A0;method&#x00A0;parameters
&#x00A0;&#x00A0;!
&#x00A0;&#x00A0;call&#x00A0;psb_barrier(ctxt)
&#x00A0;&#x00A0;call&#x00A0;prec%allocate_wrk(info)
&#x00A0;&#x00A0;t1&#x00A0;=&#x00A0;psb_wtime()
&#x00A0;&#x00A0;call&#x00A0;psb_krylov(s_choice%kmethd,a,prec,b,x,s_choice%eps,&amp;
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&amp;&#x00A0;desc_a,info,itmax=s_choice%itmax,iter=iter,err=err,itrace=s_choice%itrace,&amp;
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&amp;&#x00A0;istop=s_choice%istopc,irst=s_choice%irst)
&#x00A0;&#x00A0;call&#x00A0;prec%deallocate_wrk(info)
&#x00A0;&#x00A0;call&#x00A0;psb_barrier(ctxt)
&#x00A0;&#x00A0;tslv&#x00A0;=&#x00A0;psb_wtime()&#x00A0;-&#x00A0;t1
&#x00A0;&#x00A0;......
&#x00A0;&#x00A0;call&#x00A0;psb_gpu_exit()
&#x00A0;&#x00A0;call&#x00A0;psb_exit(ctxt)
&#x00A0;&#x00A0;stop
&#x00A0;
</pre>
<!--l. 584--><p class="nopar" > </div></div>
<br /> <div class="caption"
><span class="id">Listing 7: </span><span
class="content">setup of a GPU-enabled test program part three.</span></div><!--tex4ht:label?: x7-15003r7 -->
</div><hr class="endfloat" />
<!--l. 592--><p class="indent" > <span
class="cmr-12">It is very important to employ smoothers and coarsest solvers that are suited to the</span>
<span
class="cmr-12">GPU, i.e. methods that do NOT employ triangular system solve kernels. Methods that</span>
<span
class="cmr-12">satisfy this constraint include:</span>
<ul class="itemize1">
<li class="itemize">
<!--l. 596--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">JACOBI</span></span></span>
</li>
<li class="itemize">
<!--l. 597--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">BJAC</span></span></span> <span
class="cmr-12">with the following methods on the local blocks:</span>
<ul class="itemize2">
<li class="itemize">
<!--l. 599--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">INVK</span></span></span>
</li>
<li class="itemize">
<!--l. 600--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">INVT</span></span></span>
</li>
<li class="itemize">
<!--l. 601--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">AINV</span></span></span></li></ul>
</li></ul>
<!--l. 604--><p class="noindent" ><span
class="cmr-12">and their </span><span
class="cmmi-12">&#x2113;</span><sub><span
class="cmr-8">1</span></sub> <span
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

File diff suppressed because it is too large Load Diff

@ -29,7 +29,7 @@ class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<h3 class="sectionHead"><span class="titlemark"><span <h3 class="sectionHead"><span class="titlemark"><span
class="cmr-12">6 </span></span> <a class="cmr-12">6 </span></span> <a
id="x27-310006"></a><span id="x9-310006"></a><span
class="cmr-12">Adding new smoother and solver objects to AMG4PSBLAS</span></h3> class="cmr-12">Adding new smoother and solver objects to AMG4PSBLAS</span></h3>
<!--l. 6--><p class="noindent" ><span <!--l. 6--><p class="noindent" ><span
class="cmr-12">Developers can add completely new smoother and/or solver classes derived from the</span> class="cmr-12">Developers can add completely new smoother and/or solver classes derived from the</span>
@ -37,7 +37,7 @@ class="cmr-12">Developers can add completely new smoother and/or solver classes
class="cmr-12">base objects in the library (see Remark</span><span class="cmr-12">base objects in the library (see Remark</span><span
class="cmr-12">&#x00A0;2 in Section</span><span class="cmr-12">&#x00A0;2 in Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlsu9.html#x19-180005.2"><span href="userhtmlse5.html#x8-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">), without recompiling the</span> class="cmr-12">), without recompiling the</span>
<span <span
@ -69,7 +69,8 @@ class="cmr-12">declare in the application program a variable of the new type;</s
</li> </li>
<li class="itemize"> <li class="itemize">
<!--l. 24--><p class="noindent" ><span <!--l. 24--><p class="noindent" ><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">pass that variable as the argument to the </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">set</span></span></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"
> >
@ -96,8 +97,10 @@ class="cmr-12">the AMG4PSBLAS library has not been modified to account for this
<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"><code class="verb">WHAT</code></span> <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">in the </span><span class="obeylines-h"><code class="verb">set</code></span> <span class="cmtt-12">WHAT</span></span></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>
@ -113,7 +116,8 @@ 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"><code class="verb">tests/newslv</code></span><span <span class="obeylines-h"><span class="verb"><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>
@ -157,11 +161,13 @@ class="cmr-12">The user-defined new solver to be employed in the preconditioner.
<!--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="userhtmlse5.html#x8-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"><code class="verb">tests/newslv</code></span> <span <span class="obeylines-h"><span class="verb"><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="cmtt-12">tests/newslv</span></span></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>

@ -29,12 +29,13 @@ class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<h3 class="sectionHead"><span class="titlemark"><span <h3 class="sectionHead"><span class="titlemark"><span
class="cmr-12">7 </span></span> <a class="cmr-12">7 </span></span> <a
id="x28-320007"></a><span id="x10-320007"></a><span
class="cmr-12">Error Handling</span></h3> 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"><code class="verb">info</code></span><span class="cmr-12">conditions are signaled via an integer argument </span><span class="obeylines-h"><span class="verb"><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>
@ -50,7 +51,7 @@ class="cmr-12">an error message should be printed. These options may be set by u
class="cmr-12">PSBLAS error handling routines; for further details see the PSBLAS User&#8217;s Guide</span> class="cmr-12">PSBLAS error handling routines; for further details see the PSBLAS User&#8217;s Guide</span>
<span class="cite"><span <span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html#XPSBLASGUIDE"><span href="userhtmlli3.html#XPSBLASGUIDE"><span
class="cmr-12">21</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>
@ -66,10 +67,7 @@ class="cmr-12">.</span>
<!--l. 149--><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
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -86,6 +84,6 @@ class="cmr-12">] [</span><a
href="userhtml.html#userhtmlse7.html" ><span href="userhtml.html#userhtmlse7.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. 1--><p class="indent" > <a <!--l. 149--><p class="indent" > <a
id="tailuserhtmlse7.html"></a> id="tailuserhtmlse7.html"></a>
</body></html> </body></html>

@ -29,7 +29,7 @@ class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<h3 class="sectionHead"><span class="titlemark"><span <h3 class="sectionHead"><span class="titlemark"><span
class="cmr-12">A </span></span> <a class="cmr-12">A </span></span> <a
id="x29-33000A"></a><span id="x11-33000A"></a><span
class="cmr-12">License</span></h3> class="cmr-12">License</span></h3>
<!--l. 6--><p class="noindent" ><span <!--l. 6--><p class="noindent" ><span
class="cmr-12">AMG4PSBLAS is freely distributable under the following copyright terms:</span> class="cmr-12">AMG4PSBLAS is freely distributable under the following copyright terms:</span>
@ -132,7 +132,7 @@ class="cmr-12">AMG4PSBLAS is distributed together with (a small part of) the gra
class="cmr-12">library MatchBox-P</span><span class="cmr-12">library MatchBox-P</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#XMatchBoxP"><span href="userhtmlli3.html#XMatchBoxP"><span
class="cmr-12">9</span></a><span class="cmr-12">9</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">. Per the license requirements, we reproduce the relevant part</span> class="cmr-12">. Per the license requirements, we reproduce the relevant part</span>

@ -12,7 +12,7 @@
> >
<!--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="userhtmlli5.html" ><span href="userhtmlli3.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a class="cmr-12">] [</span><a
href="userhtmlse8.html" ><span href="userhtmlse8.html" ><span
@ -29,12 +29,10 @@ class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<h3 class="sectionHead"><span class="titlemark"><span <h3 class="sectionHead"><span class="titlemark"><span
class="cmr-12">B </span></span> <a class="cmr-12">B </span></span> <a
id="x30-34000B"></a><span id="x12-34000B"></a><span
class="cmr-12">Contributor Covenant Code of Conduct</span></h3> class="cmr-12">Contributor Covenant Code of Conduct</span></h3>
<div class="paragraphTOCS">
</div>
<!--l. 5--><p class="noindent" ><span class="paragraphHead"><a <!--l. 5--><p class="noindent" ><span class="paragraphHead"><a
id="x30-35000"></a><span id="x12-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>
@ -78,11 +76,11 @@ class="cmr-12">and learning from the experience</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
class="cmr-12">Examples of unacceptable behavior include:</span>
<!--l. 26--><p class="noindent" ><span
class="cmr-12">Examples of unacceptable behavior include:</span>
<ul class="itemize1"> <ul class="itemize1">
<li class="itemize"> <li class="itemize">
<!--l. 28--><p class="noindent" ><span <!--l. 28--><p class="noindent" ><span
@ -110,7 +108,7 @@ class="cmr-12">Other conduct which could reasonably be considered inappro
<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-36000"></a><span id="x12-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>
@ -151,7 +149,7 @@ 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-37000"></a><span id="x12-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>
@ -161,7 +159,7 @@ class="cmr-12">determining the consequences for any action they deem in violatio
class="cmr-12">Conduct:</span> class="cmr-12">Conduct:</span>
<ol class="enumerate1" > <ol class="enumerate1" >
<li <li
class="enumerate" id="x30-37002x1"> class="enumerate" id="x12-37002x1">
<!--l. 65--><p class="noindent" ><span <!--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
@ -178,7 +176,7 @@ class="cmr-12">clarity around the nature of the violation and an explanation of
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"> class="enumerate" id="x12-37004x2">
<!--l. 73--><p class="noindent" ><span <!--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
@ -199,7 +197,7 @@ class="cmr-12">channels like social media. Violating these terms may lead to a t
class="cmr-12">or permanent ban.</span> class="cmr-12">or permanent ban.</span>
</li> </li>
<li <li
class="enumerate" id="x30-37006x3"> class="enumerate" id="x12-37006x3">
<!--l. 84--><p class="noindent" ><span <!--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
@ -218,12 +216,12 @@ 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"> class="enumerate" id="x12-37008x4">
<!--l. 94--><p class="noindent" ><span <!--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
@ -239,7 +237,7 @@ 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-38000"></a><span id="x12-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>
@ -284,7 +282,7 @@ class="cmr-12">.</span>
<!--l. 2--><div class="crosslinks"><p class="noindent"><span <!--l. 2--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli5.html" ><span href="userhtmlli3.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a class="cmr-12">] [</span><a
href="userhtmlse8.html" ><span href="userhtmlse8.html" ><span

@ -140,7 +140,7 @@ PDF = $(join $(BASEFILE),.pdf)
PS = $(join $(BASEFILE),.ps) PS = $(join $(BASEFILE),.ps)
GXS = $(join $(BASEFILE),.gxs) GXS = $(join $(BASEFILE),.gxs)
GLX = $(join $(BASEFILE),.glx) GLX = $(join $(BASEFILE),.glx)
TARGETPDF= ../amg4psblas_1.0-guide.pdf TARGETPDF= ../amg4psblas_1.2-guide.pdf
BASEHTML = $(patsubst %.tex,%,$(HTMLFILE)) BASEHTML = $(patsubst %.tex,%,$(HTMLFILE))
HTML = $(join $(BASEHTML),.html) HTML = $(join $(BASEHTML),.html)
HTMLDIR = ../html HTMLDIR = ../html

Loading…
Cancel
Save