Updated MUMPS link in documentation

development
Fabio Durastante 2 months ago
parent 04d7122380
commit 9be4a3f1be

Binary file not shown.

@ -45,62 +45,122 @@ class="newline" />
<div class="tableofcontents"> <div class="tableofcontents">
<span <span class="likesectionToc" ><a
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 <br /> <span class="likesectionToc" ><a
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 <br /> <span class="sectionToc" ><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 <br /> <span class="sectionToc" ><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 <br /> <span class="likesubsectionToc" ><a
class="cmr-12">&#x00A0;</span><span class="sectionToc" ><span href="userhtmlli3.html#x6-5000" id="QQ2-6-5"><span
class="cmr-12">Development team</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#x6-70003" id="QQ2-6-7"><span href="userhtmlse3.html#x8-70003" id="QQ2-8-7"><span
class="cmr-12">Configuring and Building AMG4PSBLAS</span></a></span> class="cmr-12">Configuring and Building AMG4PSBLAS</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="sectionToc" ><span class="cmr-12">3.1 </span><a
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#x7-130004" id="QQ2-7-14"><span href="userhtmlse4.html#x14-130004" id="QQ2-14-14"><span
class="cmr-12">Getting Started</span></a></span> class="cmr-12">Getting Started</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="sectionToc" ><span class="cmr-12">4.1 </span><a
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#x8-160005" id="QQ2-8-25"><span href="userhtmlse5.html#x17-160005" id="QQ2-17-25"><span
class="cmr-12">User Interface</span></a></span> class="cmr-12">User Interface</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="sectionToc" ><span class="cmr-12">5.1 </span><a
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#x9-310006" id="QQ2-9-48"><span href="userhtmlse6.html#x27-310006" id="QQ2-27-48"><span
class="cmr-12">Adding new smoother and solver objects to AMG4PSBLAS</span></a></span> class="cmr-12">Adding new smoother and solver objects to AMG4PSBLAS</span></a></span>
<br /> <span <br /> <span class="sectionToc" ><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#x10-320007" id="QQ2-10-49"><span href="userhtmlse7.html#x28-320007" id="QQ2-28-49"><span
class="cmr-12">Error Handling</span></a></span> class="cmr-12">Error Handling</span></a></span>
<br /> <span <br /> <span class="sectionToc" ><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#x11-33000A" id="QQ2-11-50"><span href="userhtmlse8.html#x29-33000A" id="QQ2-29-50"><span
class="cmr-12">License</span></a></span> class="cmr-12">License</span></a></span>
<br /> <span <br /> <span class="sectionToc" ><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#x12-34000B" id="QQ2-12-51"><span href="userhtmlse9.html#x30-34000B" id="QQ2-30-51"><span
class="cmr-12">Contributor Covenant Code of Conduct</span></a></span> class="cmr-12">Contributor Covenant Code of Conduct</span></a></span>
<br /> <span <br /> <span class="likesectionToc" ><a
class="cmr-12">&#x00A0;</span><span class="likesectionToc" ><a href="userhtmlli5.html#x31-39000" id="QQ2-31-56"><span
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>
@ -111,9 +171,6 @@ class="cmr-12">References</span></a></span>

@ -87,6 +87,7 @@ div.flushleft {text-align: left;}
.framebox-r {text-align:right;} .framebox-r {text-align:right;}
span.thank-mark{ vertical-align: super } span.thank-mark{ vertical-align: super }
span.footnote-mark sup.textsuperscript, span.footnote-mark a sup.textsuperscript{ font-size:80%; } span.footnote-mark sup.textsuperscript, span.footnote-mark a sup.textsuperscript{ font-size:80%; }
code.verb{font-family:monospace,monospace;}
div.tabular, div.center div.tabular {text-align: center; margin-top:0.5em; margin-bottom:0.5em; } div.tabular, div.center div.tabular {text-align: center; margin-top:0.5em; margin-bottom:0.5em; }
table.tabular td p{margin-top:0em;} table.tabular td p{margin-top:0em;}
table.tabular {margin-left: auto; margin-right: auto;} table.tabular {margin-left: auto; margin-right: auto;}
@ -132,7 +133,6 @@ 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:2em;} .subsectionToc, .likesubsectionToc {margin-left:1em;}
.subsubsectionToc, .likesubsubsectionToc {margin-left:4em;} .subsubsectionToc, .likesubsubsectionToc {margin-left:2em;}
.paragraphToc, .likeparagraphToc {margin-left:6em;} .paragraphToc, .likeparagraphToc {margin-left:3em;}
.subparagraphToc, .likesubparagraphToc {margin-left:8em;} .subparagraphToc, .likesubparagraphToc {margin-left:4em;}
.ovalbox { padding-left:3pt; padding-right:3pt; border:solid thin; } .ovalbox { padding-left:3pt; padding-right:3pt; border:solid thin; }
.Ovalbox-thick { padding-left:3pt; padding-right:3pt; border:solid thick; } .Ovalbox-thick { padding-left:3pt; padding-right:3pt; border:solid thick; }
.shadowbox { padding-left:3pt; padding-right:3pt; border:solid thin; border-right:solid thick; border-bottom:solid thick; } .shadowbox { padding-left:3pt; padding-right:3pt; border:solid thin; border-right:solid thick; border-bottom:solid thick; }

@ -45,62 +45,122 @@ class="newline" />
<div class="tableofcontents"> <div class="tableofcontents">
<span <span class="likesectionToc" ><a
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 <br /> <span class="likesectionToc" ><a
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 <br /> <span class="sectionToc" ><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 <br /> <span class="sectionToc" ><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 <br /> <span class="likesubsectionToc" ><a
class="cmr-12">&#x00A0;</span><span class="sectionToc" ><span href="userhtmlli3.html#x6-5000" id="QQ2-6-5"><span
class="cmr-12">Development team</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#x6-70003" id="QQ2-6-7"><span href="userhtmlse3.html#x8-70003" id="QQ2-8-7"><span
class="cmr-12">Configuring and Building AMG4PSBLAS</span></a></span> class="cmr-12">Configuring and Building AMG4PSBLAS</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="sectionToc" ><span class="cmr-12">3.1 </span><a
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#x7-130004" id="QQ2-7-14"><span href="userhtmlse4.html#x14-130004" id="QQ2-14-14"><span
class="cmr-12">Getting Started</span></a></span> class="cmr-12">Getting Started</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="sectionToc" ><span class="cmr-12">4.1 </span><a
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#x8-160005" id="QQ2-8-25"><span href="userhtmlse5.html#x17-160005" id="QQ2-17-25"><span
class="cmr-12">User Interface</span></a></span> class="cmr-12">User Interface</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span class="sectionToc" ><span class="cmr-12">5.1 </span><a
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#x9-310006" id="QQ2-9-48"><span href="userhtmlse6.html#x27-310006" id="QQ2-27-48"><span
class="cmr-12">Adding new smoother and solver objects to AMG4PSBLAS</span></a></span> class="cmr-12">Adding new smoother and solver objects to AMG4PSBLAS</span></a></span>
<br /> <span <br /> <span class="sectionToc" ><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#x10-320007" id="QQ2-10-49"><span href="userhtmlse7.html#x28-320007" id="QQ2-28-49"><span
class="cmr-12">Error Handling</span></a></span> class="cmr-12">Error Handling</span></a></span>
<br /> <span <br /> <span class="sectionToc" ><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#x11-33000A" id="QQ2-11-50"><span href="userhtmlse8.html#x29-33000A" id="QQ2-29-50"><span
class="cmr-12">License</span></a></span> class="cmr-12">License</span></a></span>
<br /> <span <br /> <span class="sectionToc" ><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#x12-34000B" id="QQ2-12-51"><span href="userhtmlse9.html#x30-34000B" id="QQ2-30-51"><span
class="cmr-12">Contributor Covenant Code of Conduct</span></a></span> class="cmr-12">Contributor Covenant Code of Conduct</span></a></span>
<br /> <span <br /> <span class="likesectionToc" ><a
class="cmr-12">&#x00A0;</span><span class="likesectionToc" ><a href="userhtmlli5.html#x31-39000" id="QQ2-31-56"><span
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>
@ -111,9 +171,6 @@ class="cmr-12">References</span></a></span>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 804 B

After

Width:  |  Height:  |  Size: 892 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.8 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

@ -77,6 +77,9 @@ class="cmr-12">PSCToolkit (Parallel Sparse Computation Toolkit) software framewo
class="cmr-12">is an evolutiuon of a software development project started in 2007, named</span> class="cmr-12">is an evolutiuon of a software development project started in 2007, named</span>
<span <span
class="cmr-12">MLD2P4, which originally implemented a multilevel version of some domain</span> class="cmr-12">MLD2P4, which originally implemented a multilevel version of some domain</span>
<span <span
class="cmr-12">decomposition preconditioners of additive-Schwarz type, and was based on a parallel</span> class="cmr-12">decomposition preconditioners of additive-Schwarz type, and was based on a parallel</span>
<span <span
@ -113,9 +116,6 @@ class="cmr-12">algebraic approach; therefore users level interfaces assume that
class="cmr-12">and preconditioners are represented as PSBLAS distributed sparse matrices.</span> class="cmr-12">and preconditioners are represented as PSBLAS distributed sparse matrices.</span>
<span <span
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

@ -31,185 +31,129 @@ 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 <span class="sectionToc" ><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 <br /> <span class="sectionToc" ><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 <br /> <span class="sectionToc" ><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#x6-70003"><span href="userhtmlse3.html#x8-70003"><span
class="cmr-12">Configuring and Building AMG4PSBLAS</span></a></span> class="cmr-12">Configuring and Building AMG4PSBLAS</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.1 </span><a class="cmr-12">3.1 </span><a
href="userhtmlse3.html#x6-80003.1" id="QQ2-6-8"><span href="userhtmlsu1.html#x9-80003.1"><span
class="cmr-12">Prerequisites</span></a></span> class="cmr-12">Prerequisites</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.2 </span><a class="cmr-12">3.2 </span><a
href="userhtmlse3.html#x6-90003.2" id="QQ2-6-9"><span href="userhtmlsu2.html#x10-90003.2"><span
class="cmr-12">Optional third party libraries</span></a></span> class="cmr-12">Optional third party libraries</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.3 </span><a class="cmr-12">3.3 </span><a
href="userhtmlse3.html#x6-100003.3" id="QQ2-6-10"><span href="userhtmlsu3.html#x11-100003.3"><span
class="cmr-12">Configuration options</span></a></span> class="cmr-12">Configuration options</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.4 </span><a class="cmr-12">3.4 </span><a
href="userhtmlse3.html#x6-110003.4" id="QQ2-6-12"><span href="userhtmlsu4.html#x12-110003.4"><span
class="cmr-12">Bug reporting</span></a></span> class="cmr-12">Bug reporting</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.5 </span><a class="cmr-12">3.5 </span><a
href="userhtmlse3.html#x6-120003.5" id="QQ2-6-13"><span href="userhtmlsu5.html#x13-120003.5"><span
class="cmr-12">Example and test programs</span></a></span> class="cmr-12">Example and test programs</span></a></span>
<br /> <span <br /> <span class="sectionToc" ><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#x7-130004"><span href="userhtmlse4.html#x14-130004"><span
class="cmr-12">Getting Started</span></a></span> class="cmr-12">Getting Started</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">4.1 </span><a class="cmr-12">4.1 </span><a
href="userhtmlse4.html#x7-140004.1" id="QQ2-7-16"><span href="userhtmlsu6.html#x15-140004.1"><span
class="cmr-12">Examples</span></a></span> class="cmr-12">Examples</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">4.2 </span><a class="cmr-12">4.2 </span><a
href="userhtmlse4.html#x7-150004.2" id="QQ2-7-21"><span href="userhtmlsu7.html#x16-150004.2"><span
class="cmr-12">GPU example</span></a></span> class="cmr-12">GPU example</span></a></span>
<br /> <span <br /> <span class="sectionToc" ><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#x8-160005"><span href="userhtmlse5.html#x17-160005"><span
class="cmr-12">User Interface</span></a></span> class="cmr-12">User Interface</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.1 </span><a class="cmr-12">5.1 </span><a
href="userhtmlse5.html#x8-170005.1" id="QQ2-8-26"><span href="userhtmlsu8.html#x18-170005.1"><span
class="cmr-12">Method init</span></a></span> class="cmr-12">Method init</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.2 </span><a class="cmr-12">5.2 </span><a
href="userhtmlse5.html#x8-180005.2" id="QQ2-8-27"><span href="userhtmlsu9.html#x19-180005.2"><span
class="cmr-12">Method set</span></a></span> class="cmr-12">Method set</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.3 </span><a class="cmr-12">5.3 </span><a
href="userhtmlse5.html#x8-190005.3" id="QQ2-8-36"><span href="userhtmlsu10.html#x20-190005.3"><span
class="cmr-12">Method hierarchy</span><span class="cmr-12">Method hierarchy</span><span
class="cmr-12">_build</span></a></span> class="cmr-12">_build</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.4 </span><a class="cmr-12">5.4 </span><a
href="userhtmlse5.html#x8-200005.4" id="QQ2-8-37"><span href="userhtmlsu11.html#x21-200005.4"><span
class="cmr-12">Method smoothers</span><span class="cmr-12">Method smoothers</span><span
class="cmr-12">_build</span></a></span> class="cmr-12">_build</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.5 </span><a class="cmr-12">5.5 </span><a
href="userhtmlse5.html#x8-210005.5" id="QQ2-8-38"><span href="userhtmlsu12.html#x22-210005.5"><span
class="cmr-12">Method build</span></a></span> class="cmr-12">Method build</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.6 </span><a class="cmr-12">5.6 </span><a
href="userhtmlse5.html#x8-220005.6" id="QQ2-8-39"><span href="userhtmlsu13.html#x23-220005.6"><span
class="cmr-12">Method apply</span></a></span> class="cmr-12">Method apply</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.7 </span><a class="cmr-12">5.7 </span><a
href="userhtmlse5.html#x8-230005.7" id="QQ2-8-40"><span href="userhtmlsu14.html#x24-230005.7"><span
class="cmr-12">Method free</span></a></span> class="cmr-12">Method free</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.8 </span><a class="cmr-12">5.8 </span><a
href="userhtmlse5.html#x8-240005.8" id="QQ2-8-41"><span href="userhtmlsu15.html#x25-240005.8"><span
class="cmr-12">Method descr</span></a></span> class="cmr-12">Method descr</span></a></span>
<br /> <span <br /> <span class="subsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.9 </span><a class="cmr-12">5.9 </span><a
href="userhtmlse5.html#x8-250005.9" id="QQ2-8-42"><span href="userhtmlsu16.html#x26-250005.9"><span
class="cmr-12">Auxiliary Methods</span></a></span> class="cmr-12">Auxiliary Methods</span></a></span>
<br /> <span <br /> <span class="subsubsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="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="userhtmlse5.html#x8-260005.9.1" id="QQ2-8-43"><span href="userhtmlsu16.html#x26-260005.9.1" id="QQ2-26-43"><span
class="cmr-12">Method: dump</span></a></span> class="cmr-12">Method: dump</span></a></span>
<br /> <span <br /> <span class="subsubsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="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="userhtmlse5.html#x8-270005.9.2" id="QQ2-8-44"><span href="userhtmlsu16.html#x26-270005.9.2" id="QQ2-26-44"><span
class="cmr-12">Method: clone</span></a></span> class="cmr-12">Method: clone</span></a></span>
<br /> <span <br /> <span class="subsubsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="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="userhtmlse5.html#x8-280005.9.3" id="QQ2-8-45"><span href="userhtmlsu16.html#x26-280005.9.3" id="QQ2-26-45"><span
class="cmr-12">Method: sizeof</span></a></span> class="cmr-12">Method: sizeof</span></a></span>
<br /> <span <br /> <span class="subsubsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="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="userhtmlse5.html#x8-290005.9.4" id="QQ2-8-46"><span href="userhtmlsu16.html#x26-290005.9.4" id="QQ2-26-46"><span
class="cmr-12">Method: allocate</span><span class="cmr-12">Method: allocate</span><span
class="cmr-12">_wrk</span></a></span> class="cmr-12">_wrk</span></a></span>
<br /> <span <br /> <span class="subsubsectionToc" ><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="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="userhtmlse5.html#x8-300005.9.5" id="QQ2-8-47"><span href="userhtmlsu16.html#x26-300005.9.5" id="QQ2-26-47"><span
class="cmr-12">Method: deallocate</span><span class="cmr-12">Method: deallocate</span><span
class="cmr-12">_wrk</span></a></span> class="cmr-12">_wrk</span></a></span>
<br /> <span <br /> <span class="sectionToc" ><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#x9-310006"><span href="userhtmlse6.html#x27-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 <br /> <span class="sectionToc" ><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#x10-320007"><span href="userhtmlse7.html#x28-320007"><span
class="cmr-12">Error Handling</span></a></span> class="cmr-12">Error Handling</span></a></span>
<br /> <span <br /> <span class="sectionToc" ><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#x11-33000A"><span href="userhtmlse8.html#x29-33000A"><span
class="cmr-12">License</span></a></span> class="cmr-12">License</span></a></span>
<br /> <span <br /> <span class="sectionToc" ><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#x12-34000B"><span href="userhtmlse9.html#x30-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>References</title> <head><title>Development team</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,739 +10,69 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 2--><div class="crosslinks"><p class="noindent"><span <!--l. 22--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlse9.html" ><span href="userhtmlli4.html" ><span
class="cmr-12">prev</span></a><span class="cmr-12">next</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="userhtml.html#userhtmlli3.html" ><span href="userhtmlse2.html#userhtmlli3.html" ><span
class="cmr-12">up</span></a><span class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<h3 class="likesectionHead"><a <h4 class="likesubsectionHead"><a
id="x13-39000"></a><span id="x6-5000"></a><span
class="cmr-12">References</span></h3> class="cmr-12">Development team</span></h4>
<!--l. 2--><p class="noindent" > <!--l. 23--><p class="noindent" ><span
<div class="thebibliography"> class="cmr-12">The main development team for AMG4PSBLAS is:</span>
<p class="bibitem" ><span class="biblabel"> <ul class="itemize1">
<span <li class="itemize">
class="cmr-12">[1]</span><span class="bibsp"><span <!--l. 25--><p class="noindent" ><span
class="cmr-12">&#x00A0;</span><span class="cmr-12">Pasqua D&#8217;Ambra, IAC-CNR, IT;</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>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[27]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="XLOTTES"></a><span
class="cmr-12">J.</span><span
class="cmr-12">&#x00A0;Lottes, </span><span
class="cmti-12">Optimal polynomial smoothers for multigrid V-cycles</span><span
class="cmr-12">,</span>
<span
class="cmr-12">Numerical Linear Algebra with Applications 30.6 (2023): e2518.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[28]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></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>
</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 </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. 29--><p class="noindent" ><span
class="cmr-12">Other contributors:</span>
<div class="center"
>
<!--l. 30--><p class="noindent" >
<div class="minipage"> <ul class="itemize1">
<li class="itemize">
<!--l. 33--><p class="noindent" ><span
class="cmr-12">Luca Pep</span><span
class="cmr-12">è Sciarria;</span>
</li>
<li class="itemize">
<!--l. 34--><p class="noindent" ><span
class="cmr-12">Andea Di Iorio;</span></li></ul> </div> <div class="minipage"> <ul class="itemize1">
<li class="itemize">
<!--l. 40--><p class="noindent" ><span
class="cmr-12">Zaak Beekman;</span>
</li>
<li class="itemize">
<!--l. 41--><p class="noindent" ><span
class="cmr-12">Ambra Abdullahi Hassan.</span></li></ul> </div></div>
<!--l. 45--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlse9.html" ><span href="userhtmlli4.html" ><span
class="cmr-12">prev</span></a><span class="cmr-12">next</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="userhtml.html#userhtmlli3.html" ><span href="userhtmlse2.html#userhtmlli3.html" ><span
class="cmr-12">up</span></a><span class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<!--l. 156--><p class="indent" > <a <!--l. 45--><p class="indent" > <a
id="tailuserhtmlli3.html"></a> id="tailuserhtmlli3.html"></a>
</body></html> </body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 30--><div class="crosslinks"><p class="noindent"><span <!--l. 45--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlli3.html" ><span href="userhtmlli3.html" ><span
class="cmr-12">prev</span></a><span class="cmr-12">prev</span></a><span
@ -27,20 +27,28 @@ class="cmr-12">] </span></p></div>
<h4 class="likesubsectionHead"><a <h4 class="likesubsectionHead"><a
id="x7-6000"></a><span id="x7-6000"></a><span
class="cmr-12">Citing AMG4PSBLAS</span></h4> class="cmr-12">Citing AMG4PSBLAS</span></h4>
<!--l. 31--><p class="noindent" ><span <!--l. 46--><p class="noindent" ><span
class="cmr-12">When use the library, please cite the following:</span> class="cmr-12">When using the library, please cite the following:</span>
<pre class="verbatim" id="verbatim-1"> <pre class="verbatim" id="verbatim-1">
@article{DDF2021, @article&#x00A0;{MR4331965,
&#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;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;TITLE&#x00A0;=&#x00A0;{A{MG}&#x00A0;preconditioners&#x00A0;for&#x00A0;linear&#x00A0;solvers&#x00A0;towards&#x00A0;extreme
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;journal&#x00A0;=&#x00A0;{arXiv&#x00A0;e-preprints}, &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;scale},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;eprint&#x00A0;=&#x00A0;{2006.16147v3}, &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;JOURNAL&#x00A0;=&#x00A0;{SIAM&#x00A0;J.&#x00A0;Sci.&#x00A0;Comput.},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;archivePrefix&#x00A0;=&#x00A0;{arXiv}, &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;FJOURNAL&#x00A0;=&#x00A0;{SIAM&#x00A0;Journal&#x00A0;on&#x00A0;Scientific&#x00A0;Computing},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;year={2021} &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;VOLUME&#x00A0;=&#x00A0;{43},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;} &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;YEAR&#x00A0;=&#x00A0;{2021},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;NUMBER&#x00A0;=&#x00A0;{5},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;PAGES&#x00A0;=&#x00A0;{S679--S703},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;ISSN&#x00A0;=&#x00A0;{1064-8275,1095-7197},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;MRCLASS&#x00A0;=&#x00A0;{65F50&#x00A0;(65F08&#x00A0;65F10&#x00A0;65N55&#x00A0;65Y05)},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;MRNUMBER&#x00A0;=&#x00A0;{4331965},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;MRREVIEWER&#x00A0;=&#x00A0;{Yongzhong\&#x00A0;Song},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;DOI&#x00A0;=&#x00A0;{10.1137/20M134914X},
}
@Misc{psctoolkit-web-page, @Misc{psctoolkit-web-page,
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;author&#x00A0;=&#x00A0;{D&#8217;Ambra,&#x00A0;Pasqua&#x00A0;and&#x00A0;Durastante,&#x00A0;Fabio&#x00A0;and&#x00A0;Filippone,&#x00A0;Salvatore}, &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;author&#x00A0;=&#x00A0;{D&#8217;Ambra,&#x00A0;Pasqua&#x00A0;and&#x00A0;Durastante,&#x00A0;Fabio&#x00A0;and&#x00A0;Filippone,&#x00A0;Salvatore},
@ -50,7 +58,7 @@ class="cmr-12">When use the library, please cite the following:</span>
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;year&#x00A0;=&#x00A0;{2021} &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;year&#x00A0;=&#x00A0;{2021}
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;} &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;}
</pre> </pre>
<!--l. 70--><p class="nopar" > <!--l. 92--><p class="nopar" >

@ -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="userhtmlli3.html#XBriggs2000"><span href="userhtmlli5.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="userhtmlli3.html#XStuben_01"><span href="userhtmlli5.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">number of multigrid cycles, including the V-, W-, and a version o
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="userhtmlli3.html#XBriggs2000"><span href="userhtmlli5.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="userhtmlli3.html#XNotay2008"><span href="userhtmlli5.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="userhtmlli3.html#XDDF2020"><span href="userhtmlli5.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="userhtmlli3.html#XBREZINA_VANEK"><span href="userhtmlli5.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="userhtmlli3.html#XVANEK_MANDEL_BREZINA"><span href="userhtmlli5.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="userhtmlli3.html#Xaaecc_07"><span href="userhtmlli5.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="userhtmlli3.html#XMLD2P4_TOMS"><span href="userhtmlli5.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="userhtmlli3.html#XDV2013"><span href="userhtmlli5.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="userhtmlli3.html#XDFV2018"><span href="userhtmlli5.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="userhtmlli3.html#XDDF2020"><span href="userhtmlli5.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">preconditioners in the context of the PSBLAS (Parallel Sparse BLA
class="cmr-12">framework</span><span class="cmr-12">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="userhtmlli3.html#Xpsblas_00"><span href="userhtmlli5.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="userhtmlli3.html#XPSBLAS3"><span href="userhtmlli5.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 and data</span> class="cmr-12">. PSBLAS provides basic linear algebra operators and data</span>
@ -299,7 +299,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#x9-310006"><span href="userhtmlse6.html#x27-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. 102--><p class="indent" > <span <!--l. 102--><p class="indent" > <span
@ -313,7 +313,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#x6-70003"><span href="userhtmlse3.html#x8-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
@ -322,13 +322,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#x7-130004"><span href="userhtmlse4.html#x14-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#x8-160005"><span href="userhtmlse5.html#x17-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
@ -336,13 +336,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#x9-310006"><span href="userhtmlse6.html#x27-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#x10-320007"><span href="userhtmlse7.html#x28-320007"><span
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a><span class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a><span
class="cmr-12">. The copyright terms</span> class="cmr-12">. The copyright terms</span>
<span <span
@ -350,7 +350,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#x11-33000A"><span href="userhtmlse8.html#x29-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>

@ -34,7 +34,7 @@ class="cmr-12">Code Distribution</span></h3>
<!--l. 5--><p class="noindent" ><span <!--l. 5--><p class="noindent" ><span
class="cmr-12">AMG4PSBLAS is available from the web site</span> class="cmr-12">AMG4PSBLAS is available from the web site</span>
<blockquote class="quotation"> <blockquote class="quotation">
<!--l. 8--><p class="indent" > <a <!--l. 8--><p class="indent" > <a
href="https://psctoolkit.github.io/products/amg4psblas/" ><span href="https://psctoolkit.github.io/products/amg4psblas/" ><span
class="cmr-12">https://psctoolkit.github.io/products/amg4psblas/</span></a></blockquote> class="cmr-12">https://psctoolkit.github.io/products/amg4psblas/</span></a></blockquote>
<!--l. 10--><p class="noindent" ><span <!--l. 10--><p class="noindent" ><span
@ -42,7 +42,7 @@ class="cmr-12">where contact points for further information can be also found. T
<span <span
class="cmr-12">under a modified BSD license, as specified in Appendix</span><span class="cmr-12">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#x11-33000A"><span href="userhtmlse8.html#x29-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">; please note that some of the</span> class="cmr-12">; please note that some of the</span>
<span <span
@ -58,97 +58,19 @@ 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. 19--><p class="nopar" > <span <!--l. 19--><p class="nopar" > <span
class="cmr-12">whose current value is </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">whose current value is </span><span class="obeylines-h"><code class="verb">1.2</code></span><span
class="cmtt-12">1.2</span></span></span><span
class="cmr-12">.</span> class="cmr-12">.</span>
<!--l. 22--><p class="noindent" > <!--l. 22--><p class="noindent" >
<h4 class="likesubsectionHead"><a <div class="likesubsectionTOCS">
id="x5-5000"></a><span <span class="likesubsectionToc" ><a
class="cmr-12">Development team</span></h4> href="userhtmlli3.html#x6-5000"><span
<!--l. 23--><p class="noindent" ><span class="cmr-12">Development team</span></a></span>
class="cmr-12">The main development team for AMG4PSBLAS is:</span> <br /> <span class="likesubsectionToc" ><a
<ul class="itemize1"> href="userhtmlli4.html#x7-6000"><span
<li class="itemize"> class="cmr-12">Citing AMG4PSBLAS</span></a></span>
<!--l. 25--><p class="noindent" ><span </div>
class="cmr-12">Pasqua D&#8217;Ambra, IAC-CNR, IT;</span>
</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. 29--><p class="noindent" ><span
class="cmr-12">Other contributors:</span>
<div class="center"
>
<!--l. 30--><p class="noindent" >
<div class="minipage"> <ul class="itemize1">
<li class="itemize">
<!--l. 33--><p class="noindent" ><span
class="cmr-12">Luca Pep</span><span
class="cmr-12">è Sciarria;</span>
</li>
<li class="itemize">
<!--l. 34--><p class="noindent" ><span
class="cmr-12">Andea Di Iorio;</span></li></ul> </div> <div class="minipage"> <ul class="itemize1">
<li class="itemize">
<!--l. 40--><p class="noindent" ><span
class="cmr-12">Zaak Beekman;</span>
</li>
<li class="itemize">
<!--l. 41--><p class="noindent" ><span
class="cmr-12">Ambra Abdullahi Hassan.</span></li></ul> </div></div>
<!--l. 45--><p class="noindent" >
<h4 class="likesubsectionHead"><a
id="x5-6000"></a><span
class="cmr-12">Citing AMG4PSBLAS</span></h4>
<!--l. 46--><p class="noindent" ><span
class="cmr-12">When using the library, please cite the following:</span>
<pre class="verbatim" id="verbatim-1">
@article&#x00A0;{MR4331965,
&#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;TITLE&#x00A0;=&#x00A0;{A{MG}&#x00A0;preconditioners&#x00A0;for&#x00A0;linear&#x00A0;solvers&#x00A0;towards&#x00A0;extreme
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;scale},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;JOURNAL&#x00A0;=&#x00A0;{SIAM&#x00A0;J.&#x00A0;Sci.&#x00A0;Comput.},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;FJOURNAL&#x00A0;=&#x00A0;{SIAM&#x00A0;Journal&#x00A0;on&#x00A0;Scientific&#x00A0;Computing},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;VOLUME&#x00A0;=&#x00A0;{43},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;YEAR&#x00A0;=&#x00A0;{2021},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;NUMBER&#x00A0;=&#x00A0;{5},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;PAGES&#x00A0;=&#x00A0;{S679--S703},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;ISSN&#x00A0;=&#x00A0;{1064-8275,1095-7197},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;MRCLASS&#x00A0;=&#x00A0;{65F50&#x00A0;(65F08&#x00A0;65F10&#x00A0;65N55&#x00A0;65Y05)},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;MRNUMBER&#x00A0;=&#x00A0;{4331965},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;MRREVIEWER&#x00A0;=&#x00A0;{Yongzhong\&#x00A0;Song},
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;DOI&#x00A0;=&#x00A0;{10.1137/20M134914X},
}
@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. 92--><p class="nopar" >
<!--l. 1--><div class="crosslinks"><p class="noindent"><span <!--l. 1--><div class="crosslinks"><p class="noindent"><span
@ -169,5 +91,5 @@ href="userhtml.html#userhtmlse2.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. 1--><p class="indent" > <a
id="tailuserhtmlse2.html"></a> id="tailuserhtmlse2.html"></a>
</body></html> </body></html>

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="x7-130004"></a><span id="x14-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="userhtmlli3.html#XPSBLASGUIDE"><span href="userhtmlli5.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,36 +47,25 @@ 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="x7-13002x1"> class="enumerate" id="x14-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"><span class="verb"><span <span class="obeylines-h"><code class="verb">amg_</code></span><span
class="cmtt-12">amg_</span></span></span><span class="cmti-12">x</span><span class="obeylines-h"><code class="verb">prec_</code></span> <span class="obeylines-h"><code class="verb">type</code></span><span
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">prec_</span></span></span> <span class="obeylines-h"><span class="verb"><span
class="cmtt-12">type</span></span></span><span
class="cmr-12">, where </span><span class="cmr-12">, where </span><span
class="cmti-12">x </span><span class="cmti-12">x </span><span
class="cmr-12">may be </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">may be </span><span class="obeylines-h"><code class="verb">s</code></span><span
class="cmtt-12">s</span></span></span><span class="cmr-12">, </span><span class="obeylines-h"><code class="verb">d</code></span><span
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">, </span><span class="obeylines-h"><code class="verb">c</code></span> <span
class="cmtt-12">d</span></span></span><span class="cmr-12">or </span><span class="obeylines-h"><code class="verb">z</code></span><span
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">c</span></span></span> <span
class="cmr-12">or </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">z</span></span></span><span
class="cmr-12">, according to the basic data</span> class="cmr-12">, according to the basic data</span>
<span <span
class="cmr-12">type of the sparse matrix (</span><span class="obeylines-h"><span class="verb"><span class="cmr-12">type of the sparse matrix (</span><span class="obeylines-h"><code class="verb">s</code></span> <span
class="cmtt-12">s</span></span></span> <span class="cmr-12">= real single precision; </span><span class="obeylines-h"><code class="verb">d</code></span> <span
class="cmr-12">= real single precision; </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">d</span></span></span> <span
class="cmr-12">= real double precision;</span> class="cmr-12">= real double precision;</span>
<span class="obeylines-h"><span class="verb"><span <span class="obeylines-h"><code class="verb">c</code></span> <span
class="cmtt-12">c</span></span></span> <span class="cmr-12">= complex single precision; </span><span class="obeylines-h"><code class="verb">z</code></span> <span
class="cmr-12">= complex single precision; </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">z</span></span></span> <span
class="cmr-12">= complex double precision). This data</span> class="cmr-12">= complex double precision). This data</span>
<span <span
class="cmr-12">structure is accessed by the user only through the AMG4PSBLAS routines,</span> class="cmr-12">structure is accessed by the user only through the AMG4PSBLAS routines,</span>
@ -84,7 +73,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="x7-13004x2"> class="enumerate" id="x14-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
@ -97,7 +86,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="#x7-13015r1"><span href="#x14-13015r1"><span
class="cmr-12">1</span><!--tex4ht:ref: tab:precinit --></a><span class="cmr-12">1</span><!--tex4ht:ref: tab:precinit --></a><span
class="cmr-12">, where the strings used by </span><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>
@ -107,7 +96,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="x7-13006x3"> class="enumerate" id="x14-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
@ -122,30 +111,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="#x7-140004.1"><span href="userhtmlsu6.html#x15-140004.1"><span
class="cmr-12">4.1</span><!--tex4ht:ref: sec:examples --></a><span class="cmr-12">4.1</span><!--tex4ht:ref: sec:examples --></a><span
class="cmr-12">; a complete</span> class="cmr-12">; a complete</span>
<span <span
class="cmr-12">list of all the preconditioner parameters and their allowed and default values</span> class="cmr-12">list of all the preconditioner parameters and their allowed and default values</span>
<span <span
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#x8-160005"><span href="userhtmlse5.html#x17-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="userhtmlse5.html#x8-18009r2"><span href="userhtmlsu9.html#x19-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="userhtmlse5.html#x8-18015r8"><span href="userhtmlsu9.html#x19-18015r8"><span
class="cmr-12">8</span><!--tex4ht:ref: tab:p_smoother_1 --></a><span class="cmr-12">8</span><!--tex4ht:ref: tab:p_smoother_1 --></a><span
class="cmr-12">.</span> class="cmr-12">.</span>
</li> </li>
<li <li
class="enumerate" id="x7-13008x4"> class="enumerate" id="x14-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>
@ -153,7 +142,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="x7-13009x0"> class="enumerate" id="x14-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>
@ -162,7 +151,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="x7-13010x0"> class="enumerate" id="x14-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>
@ -176,7 +165,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="x7-13012x5"> class="enumerate" id="x14-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>
@ -191,7 +180,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="x7-13014x6"> class="enumerate" id="x14-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
@ -205,13 +194,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#x8-160005"><span href="userhtmlse5.html#x17-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="#x7-140004.1"><span href="userhtmlsu6.html#x15-140004.1"><span
class="cmr-12">4.1</span><!--tex4ht:ref: sec:examples --></a><span class="cmr-12">4.1</span><!--tex4ht:ref: sec:examples --></a><span
class="cmr-12">.</span> class="cmr-12">.</span>
<div class="table"> <div class="table">
@ -219,7 +208,7 @@ class="cmr-12">.</span>
<!--l. 63--><p class="indent" > <a <!--l. 63--><p class="indent" > <a
id="x7-13015r1"></a><hr class="float"><div class="float" id="x14-13015r1"></a><hr class="float"><div class="float"
> >
@ -235,21 +224,21 @@ id="TBL-1-2"></colgroup><colgroup id="TBL-1-3g"><col
id="TBL-1-3"></colgroup><tr id="TBL-1-3"></colgroup><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-1-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-1-1" style="vertical-align:baseline;" id="TBL-1-1-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-1-1"
class="td11"><span class="td11"> <span
class="cmcsc-10x-x-109"><span class="cmcsc-10x-x-109"><span
class="small-caps">t</span><span class="small-caps">t</span><span
class="small-caps">y</span><span class="small-caps">y</span><span
class="small-caps">p</span><span class="small-caps">p</span><span
class="small-caps">e</span> </span></td><td style="white-space:normal; text-align:left;" id="TBL-1-1-2" class="small-caps">e</span> </span></td><td style="white-space:normal; text-align:left;" id="TBL-1-1-2"
class="td11"><!--l. 68--><p class="noindent" ><span class="td11"> <!--l. 68--><p class="noindent" ><span
class="cmcsc-10x-x-109"><span class="cmcsc-10x-x-109"><span
class="small-caps">s</span><span class="small-caps">s</span><span
class="small-caps">t</span><span class="small-caps">t</span><span
class="small-caps">r</span><span class="small-caps">r</span><span
class="small-caps">i</span><span class="small-caps">i</span><span
class="small-caps">n</span><span class="small-caps">n</span><span
class="small-caps">g</span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-1-3" class="small-caps">g</span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-1-3"
class="td11"><!--l. 68--><p class="noindent" ><span class="td11"> <!--l. 68--><p class="noindent" ><span
class="cmcsc-10x-x-109"><span class="cmcsc-10x-x-109"><span
class="small-caps">d</span><span class="small-caps">d</span><span
class="small-caps">e</span><span class="small-caps">e</span><span
@ -271,80 +260,101 @@ class="small-caps">i</span><span
class="small-caps">o</span><span class="small-caps">o</span><span
class="small-caps">n</span><span class="small-caps">n</span><span
class="small-caps">e</span><span class="small-caps">e</span><span
class="small-caps">r</span></span> </td></tr><tr class="small-caps">r</span></span> </td></tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-1-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-2-1" style="vertical-align:baseline;" id="TBL-1-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-2-1"
class="td11">No preconditioner </td><td style="white-space:normal; text-align:left;" id="TBL-1-2-2" class="td11">
class="td11"><!--l. 69--><p class="noindent" ><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" No preconditioner </td><td style="white-space:normal; text-align:left;" id="TBL-1-2-2"
class="td11"><!--l. 69--><p class="noindent" >Considered to use the PSBLAS Krylov 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>
solvers with no preconditioner. </td> </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
solvers with no preconditioner.
</td>
</tr><tr </tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-1-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-3-1" style="vertical-align:baseline;" id="TBL-1-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-3-1"
class="td11">Diagonal </td><td style="white-space:normal; text-align:left;" id="TBL-1-3-2" class="td11">
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>, Diagonal </td><td style="white-space:normal; text-align:left;" id="TBL-1-3-2"
<code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">JACOBI</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">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" <code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">JACOBI</span><span style="color:#000000">&#8217;</span></code>,
class="td11"><!--l. 71--><p class="noindent" >Diagonal preconditioner. For any zero <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>
diagonal entry of the matrix to be </td><td style="white-space:normal; text-align:left;" id="TBL-1-3-3"
preconditioned, the corresponding entry class="td11"> <!--l. 71--><p class="noindent" >Diagonal preconditioner. For any zero
of the preconditioner is set to&#x00A0;1. </td> diagonal entry of the matrix to be
preconditioned, the corresponding entry
of the preconditioner is set to&#x00A0;1.
</td>
</tr><tr </tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-1-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-4-1" style="vertical-align:baseline;" id="TBL-1-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-4-1"
class="td11">Gauss-Seidel </td><td style="white-space:normal; text-align:left;" id="TBL-1-4-2" class="td11">
class="td11"><!--l. 74--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">GS</span><span style="color:#000000">&#8217;</span></code>, Gauss-Seidel </td><td style="white-space:normal; text-align:left;" id="TBL-1-4-2"
<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" 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" >Hybrid Gauss-Seidel (forward), that is, <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>
global block Jacobi with Gauss-Seidel as </td><td style="white-space:normal; text-align:left;" id="TBL-1-4-3"
local solver. </td> class="td11"> <!--l. 74--><p class="noindent" >Hybrid Gauss-Seidel (forward), that is,
global block Jacobi with Gauss-Seidel as
local solver.
</td>
</tr><tr </tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-1-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-5-1" style="vertical-align:baseline;" id="TBL-1-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-5-1"
class="td11">Symmetrized Gauss-Seidel</td><td style="white-space:normal; text-align:left;" id="TBL-1-5-2" class="td11">
class="td11"><!--l. 77--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">FBGS</span><span style="color:#000000">&#8217;</span></code>, Symmetrized Gauss-Seidel </td><td style="white-space:normal; text-align:left;" id="TBL-1-5-2"
<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" 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" >Symmetrized hybrid Gauss-Seidel, that <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>
is, forward Gauss-Seidel followed by </td><td style="white-space:normal; text-align:left;" id="TBL-1-5-3"
backward Gauss-Seidel. </td> class="td11"> <!--l. 77--><p class="noindent" >Symmetrized hybrid Gauss-Seidel, that
is, forward Gauss-Seidel followed by
backward Gauss-Seidel.
</td>
</tr><tr </tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-1-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-6-1" style="vertical-align:baseline;" id="TBL-1-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-6-1"
class="td11">Block Jacobi </td><td style="white-space:normal; text-align:left;" id="TBL-1-6-2" class="td11">
class="td11"><!--l. 80--><p class="noindent" ><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">BJAC</span><span style="color:#000000">&#8217;</span></code>, Block Jacobi </td><td style="white-space:normal; text-align:left;" id="TBL-1-6-2"
<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" 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" >Block-Jacobi with ILU(0) on the local <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>
blocks. </td> </td><td style="white-space:normal; text-align:left;" id="TBL-1-6-3"
class="td11"> <!--l. 80--><p class="noindent" >Block-Jacobi with ILU(0) on the local
blocks.
</td>
</tr><tr </tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-1-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-7-1" style="vertical-align:baseline;" id="TBL-1-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-7-1"
class="td11">Additive Schwarz </td><td style="white-space:normal; text-align:left;" id="TBL-1-7-2" class="td11">
class="td11"><!--l. 81--><p class="noindent" ><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" Additive Schwarz </td><td style="white-space:normal; text-align:left;" id="TBL-1-7-2"
class="td11"><!--l. 81--><p class="noindent" >Additive Schwarz (AS), with overlap&#x00A0;1 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>
and ILU(0) on the local blocks. </td> </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
and ILU(0) on the local blocks.
</td>
</tr><tr </tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-1-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-8-1" style="vertical-align:baseline;" id="TBL-1-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-8-1"
class="td11">Multilevel </td><td style="white-space:normal; text-align:left;" id="TBL-1-8-2" class="td11">
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" Multilevel </td><td style="white-space:normal; text-align:left;" id="TBL-1-8-2"
class="td11"><!--l. 83--><p class="noindent" >V-cycle with one hybrid 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>
forward Gauss-Seidel (GS) sweep as </td><td style="white-space:normal; text-align:left;" id="TBL-1-8-3"
pre-smoother and one hybrid backward class="td11"> <!--l. 83--><p class="noindent" >V-cycle with one hybrid
GS sweep as post-smoother, decoupled forward Gauss-Seidel (GS) sweep as
smoothed aggregation as coarsening pre-smoother and one hybrid backward
algorithm, and LU (plus triangular solve) GS sweep as post-smoother, decoupled
as coarsest-level solver. See the default smoothed aggregation as coarsening
values in Tables&#x00A0;<a algorithm, and LU (plus triangular solve)
href="userhtmlse5.html#x8-18009r2">2<!--tex4ht:ref: tab:p_cycle --></a>-<a as coarsest-level solver. See the default
href="userhtmlse5.html#x8-18015r8">8<!--tex4ht:ref: tab:p_smoother_1 --></a> for further details of values in Tables&#x00A0;<a
the preconditioner. </td> href="userhtmlsu9.html#x19-18009r2">2<!--tex4ht:ref: tab:p_cycle --></a>-<a
href="userhtmlsu9.html#x19-18015r8">8<!--tex4ht:ref: tab:p_smoother_1 --></a> for further details of
the preconditioner.
</td>
</tr><tr </tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-1-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-9-1" style="vertical-align:baseline;" id="TBL-1-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-9-1"
class="td11"> </td></tr></table> </div> class="td11"> </td></tr></table> </div>
<br /> <div class="caption" <br /> <div class="caption"
><span class="id">Table&#x00A0;1: </span><span ><span class="id">Table&#x00A0;1: </span><span
class="content">Preconditioner types, corresponding strings and default choices. </span></div><!--tex4ht:label?: x7-13015r1 --> class="content">Preconditioner types, corresponding strings and default choices. </span></div><!--tex4ht:label?: x14-13015r1 -->
</div> </div>
@ -365,7 +375,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="#x7-140004.1"><span href="userhtmlsu6.html#x15-140004.1"><span
class="cmr-12">4.1</span><!--tex4ht:ref: sec:examples --></a><span class="cmr-12">4.1</span><!--tex4ht:ref: sec:examples --></a><span
class="cmr-12">).</span> class="cmr-12">).</span>
<br <br
@ -391,560 +401,23 @@ class="cmr-12">Memory allocation on GPUs is a costly operation implying a</span>
<span <span
class="cmr-12">synchronization; therefore, it is convenient to preallocate internal preconditioner</span> class="cmr-12">synchronization; therefore, it is convenient to preallocate internal preconditioner</span>
<span <span
class="cmr-12">workspace with the method </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">workspace with the method </span><span class="obeylines-h"><code class="verb">prec%allocate_wrk(info)</code></span> <span
class="cmtt-12">prec%allocate_wrk(info)</span></span></span> <span
class="cmr-12">before invoking an iterative</span> class="cmr-12">before invoking an iterative</span>
<span <span
class="cmr-12">method, and release it upon exit with </span><span class="obeylines-h"><span class="verb"><span class="cmr-12">method, and release it upon exit with </span><span class="obeylines-h"><code class="verb">prec%deallocate_wrk(info)</code></span><span
class="cmtt-12">prec%deallocate_wrk(info)</span></span></span><span
class="cmr-12">.</span>
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">4.1 </span></span> <a
id="x7-140004.1"></a><span
class="cmr-12">Examples</span></h4>
<!--l. 121--><p class="noindent" ><span
class="cmr-12">The code reported in Figure</span><span
class="cmr-12">&#x00A0;</span><a
href="#x7-14001r1"><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_linsolve_mod</span></code> <span
class="cmr-12">must be used by the example</span>
<span
class="cmr-12">program.</span>
<!--l. 131--><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. 143--><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> class="cmr-12">.</span>
<div class="subsectionTOCS">
<span class="subsectionToc" ><span
class="cmr-12">4.1 </span><a
<!--l. 148--><p class="indent" > <a href="userhtmlsu6.html#x15-140004.1"><span
id="x7-14001r1"></a><hr class="float"><div class="float" 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"><span
class="cmr-12">GPU example</span></a></span>
<div class="center" </div>
>
<!--l. 149--><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_linsolve_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. 259--><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><hr class="endfloat" />
<!--l. 267--><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- and</span>
<span
class="cmr-12">post-smoother, and solves the coarsest-level system with 8 block-Jacobi sweeps. Note</span>
<span
class="cmr-12">that the ILU(0) factorization (plus triangular solve) is used as local solver for the</span>
<span
class="cmr-12">block-Jacobi sweeps, since this is the default associated with block-Jacobi and set</span>
<span
class="cmr-12">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 coarsest-level solver implies that</span>
<span
class="cmr-12">the coarsest-level matrix is distributed among 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</span>
<span
class="cmr-12">to set a W-cycle preconditioner using the Coarsening based on Compatible</span>
<span
class="cmr-12">Weighted Matching, aggregates of size at most 8 and smoothed prolongators. It</span>
<span
class="cmr-12">applies 2 hybrid Gauss-Seidel sweeps as pre- and post-smoother, and solves the</span>
<span
class="cmr-12">coarsest-level system with the parallel flexible Conjugate Gradient method (KRM)</span>
<span
class="cmr-12">coupled with the block-Jacobi preconditioner having ILU(0) on the blocks, with</span>
<span
class="cmr-12">default parameters used for the coarsest solver. Note that 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. 299--><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. 302--><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. 309--><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. 312--><p class="indent" > <a
id="x7-14002r2"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 326--><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. 341--><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. 348--><p class="indent" > <a
id="x7-14003r3"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 370--><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. 391--><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. 398--><p class="indent" > <a
id="x7-14004r4"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 410--><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. 422--><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. 434--><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. 439--><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. 441--><p class="indent" > <a
id="x7-15001r5"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 460--><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_linsolve_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. 479--><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. 486--><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 users&#8217;</span>
<span
class="cmr-12">guide.</span>
<!--l. 490--><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 users&#8217; guide).</span>
<!--l. 493--><p class="indent" > <a
id="x7-15002r6"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 509--><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. 524--><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. 531--><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. 535--><p class="indent" > <a
id="x7-15003r7"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 565--><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. 592--><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. 600--><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. 604--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">JACOBI</span></span></span>
</li>
<li class="itemize">
<!--l. 605--><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. 607--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">INVK</span></span></span>
</li>
<li class="itemize">
<!--l. 608--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">INVT</span></span></span>
</li>
<li class="itemize">
<!--l. 609--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">AINV</span></span></span></li></ul>
</li>
<li class="itemize">
<!--l. 611--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">POLY</span></span></span></li></ul>
<!--l. 613--><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
@ -965,5 +438,5 @@ href="userhtml.html#userhtmlse4.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. 1--><p class="indent" > <a
id="tailuserhtmlse4.html"></a> id="tailuserhtmlse4.html"></a>
</body></html> </body></html>

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="x9-310006"></a><span id="x27-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="userhtmlse5.html#x8-180005.2"><span href="userhtmlsu9.html#x19-180005.2"><span
class="cmr-12">5.2</span><!--tex4ht:ref: sec:precset --></a><span class="cmr-12">5.2</span><!--tex4ht:ref: sec:precset --></a><span
class="cmr-12">), without recompiling the</span> class="cmr-12">), without recompiling the</span>
<span <span
@ -69,8 +69,7 @@ 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"><span class="verb"><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="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"
> >
@ -97,10 +96,8 @@ 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"><span class="verb"><span class="cmr-12">It is possible to define new values for the keyword </span><span class="obeylines-h"><code class="verb">WHAT</code></span> <span
class="cmtt-12">WHAT</span></span></span> <span class="cmr-12">in the </span><span class="obeylines-h"><code class="verb">set</code></span> <span
class="cmr-12">in the </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">set</span></span></span> <span
class="cmr-12">routine; if the</span> class="cmr-12">routine; if the</span>
<span <span
class="cmr-12">library code does not recognize a keyword, it passes it down the composition hierarchy</span> class="cmr-12">library code does not recognize a keyword, it passes it down the composition hierarchy</span>
@ -116,8 +113,7 @@ class="cmr-12">any keyword/value pair that does not pertain to a given solver is
class="cmr-12">ignored.</span> class="cmr-12">ignored.</span>
<!--l. 46--><p class="indent" > <span <!--l. 46--><p class="indent" > <span
class="cmr-12">An example is provided in the source code distribution under the folder</span> class="cmr-12">An example is provided in the source code distribution under the folder</span>
<span class="obeylines-h"><span class="verb"><span <span class="obeylines-h"><code class="verb">tests/newslv</code></span><span
class="cmtt-12">tests/newslv</span></span></span><span
class="cmr-12">. In this example we are implementing a new incomplete factorization</span> class="cmr-12">. In this example we are implementing a new incomplete factorization</span>
<span <span
class="cmr-12">variant (which is simply the ILU(0) factorization under a new name). Because of the</span> class="cmr-12">variant (which is simply the ILU(0) factorization under a new name). Because of the</span>
@ -140,34 +136,32 @@ class="cmr-12">The interfaces for the calls shown above are defined using</span>
id="TBL-23-1"><col id="TBL-23-1"><col
id="TBL-23-2"></colgroup><tr id="TBL-23-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-23-1-"><td style="white-space:normal; text-align:left;" id="TBL-23-1-1" style="vertical-align:baseline;" id="TBL-23-1-"><td style="white-space:normal; text-align:left;" id="TBL-23-1-1"
class="td11"><!--l. 58--><p class="noindent" ><code class="lstinline"><span style="color:#000000">smoother</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-23-1-2" class="td11"> <!--l. 58--><p class="noindent" ><code class="lstinline"><span style="color:#000000">smoother</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-23-1-2"
class="td11"><!--l. 58--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">amg_x_base_smoother_type</span><span style="color:#000000">)</span></code> </td> class="td11"> <!--l. 58--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">amg_x_base_smoother_type</span><span style="color:#000000">)</span></code> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-23-2-"><td style="white-space:normal; text-align:left;" id="TBL-23-2-1" style="vertical-align:baseline;" id="TBL-23-2-"><td style="white-space:normal; text-align:left;" id="TBL-23-2-1"
class="td11"><!--l. 59--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-23-2-2" class="td11"> <!--l. 59--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-23-2-2"
class="td11"><!--l. 59--><p class="noindent" ><span class="td11"> <!--l. 59--><p class="noindent" ><span
class="cmr-12">The user-defined new smoother to be employed in the</span> class="cmr-12">The user-defined new smoother to be employed in the</span>
<span <span
class="cmr-12">preconditioner.</span> </td> class="cmr-12">preconditioner.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-23-3-"><td style="white-space:normal; text-align:left;" id="TBL-23-3-1" style="vertical-align:baseline;" id="TBL-23-3-"><td style="white-space:normal; text-align:left;" id="TBL-23-3-1"
class="td11"><!--l. 61--><p class="noindent" ><code class="lstinline"><span style="color:#000000">solver</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-23-3-2" class="td11"> <!--l. 61--><p class="noindent" ><code class="lstinline"><span style="color:#000000">solver</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-23-3-2"
class="td11"><!--l. 61--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">amg_x_base_solver_type</span><span style="color:#000000">)</span></code> </td> class="td11"> <!--l. 61--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">amg_x_base_solver_type</span><span style="color:#000000">)</span></code> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-23-4-"><td style="white-space:normal; text-align:left;" id="TBL-23-4-1" style="vertical-align:baseline;" id="TBL-23-4-"><td style="white-space:normal; text-align:left;" id="TBL-23-4-1"
class="td11"><!--l. 62--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-23-4-2" class="td11"> <!--l. 62--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-23-4-2"
class="td11"><!--l. 62--><p class="noindent" ><span class="td11"> <!--l. 62--><p class="noindent" ><span
class="cmr-12">The user-defined new solver to be employed in the preconditioner.</span></td></tr></table> </div></div> class="cmr-12">The user-defined new solver to be employed in the preconditioner.</span> </td></tr></table></div></div>
<!--l. 66--><p class="noindent" ><span <!--l. 66--><p class="noindent" ><span
class="cmr-12">The other arguments are defined in the way described in Sec.</span><span class="cmr-12">The other arguments are defined in the way described in Sec.</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse5.html#x8-180005.2"><span href="userhtmlsu9.html#x19-180005.2"><span
class="cmr-12">5.2</span><!--tex4ht:ref: sec:precset --></a><span class="cmr-12">5.2</span><!--tex4ht:ref: sec:precset --></a><span
class="cmr-12">. As an example, in the</span> class="cmr-12">. As an example, in the</span>
<span class="obeylines-h"><span class="verb"><span <span class="obeylines-h"><code class="verb">tests/newslv</code></span> <span
class="cmtt-12">tests/newslv</span></span></span> <span class="cmr-12">code we define a new object of type </span><span class="obeylines-h"><code class="verb">amg_d_tlu_solver_type</code></span><span
class="cmr-12">code we define a new object of type </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">amg_d_tlu_solver_type</span></span></span><span
class="cmr-12">, and we</span> class="cmr-12">, and we</span>
<span <span
class="cmr-12">pass it as follows:</span> class="cmr-12">pass it as follows:</span>

@ -29,13 +29,12 @@ 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="x10-320007"></a><span id="x28-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"><span class="verb"><span class="cmr-12">conditions are signaled via an integer argument </span><span class="obeylines-h"><code class="verb">info</code></span><span
class="cmtt-12">info</span></span></span><span
class="cmr-12">; whenever an error condition is</span> class="cmr-12">; whenever an error condition is</span>
<span <span
class="cmr-12">detected, an error trace stack is built by the library up to the top-level, user-callable</span> class="cmr-12">detected, an error trace stack is built by the library up to the top-level, user-callable</span>
@ -51,7 +50,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="userhtmlli3.html#XPSBLASGUIDE"><span href="userhtmlli5.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>
@ -64,14 +63,13 @@ class="cmr-12">.</span>
<!--l. 148--><p class="indent" >
<!--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
@ -88,6 +86,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. 149--><p class="indent" > <a <!--l. 1--><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="x11-33000A"></a><span id="x29-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>
@ -133,7 +133,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="userhtmlli3.html#XMatchBoxP"><span href="userhtmlli5.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="userhtmlli3.html" ><span href="userhtmlli5.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,10 +29,12 @@ 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="x12-34000B"></a><span id="x30-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="x12-35000"></a><span id="x30-35000"></a><span
class="cmbx-12">Our Pledge</span></span> class="cmbx-12">Our Pledge</span></span>
<span <span
class="cmr-12">We as members, contributors, and leaders pledge to make participation in</span> class="cmr-12">We as members, contributors, and leaders pledge to make participation in</span>
@ -76,11 +78,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
@ -108,7 +110,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="x12-36000"></a><span id="x30-36000"></a><span
class="cmbx-12">Enforcement Responsibilities</span></span> class="cmbx-12">Enforcement Responsibilities</span></span>
<span <span
class="cmr-12">Community leaders are responsible for clarifying and enforcing our standards of</span> class="cmr-12">Community leaders are responsible for clarifying and enforcing our standards of</span>
@ -135,7 +137,7 @@ class="cmr-12">appointed representative at an online or offline event. Enforceme
<span <span
class="cmr-12">abusive, harassing, or otherwise unacceptable behavior may be reported to the</span> class="cmr-12">abusive, harassing, or otherwise unacceptable behavior may be reported to the</span>
<span <span
class="cmr-12">community leaders responsible for enforcement at </span><a class="cmr-12">community leaders responsible for enforcement at </span><a
href="mailto:eocoe@na.iac.cnr.it" ><span href="mailto:eocoe@na.iac.cnr.it" ><span
class="cmr-12">eocoe@na.iac.cnr.it</span></a><span class="cmr-12">eocoe@na.iac.cnr.it</span></a><span
class="cmr-12">. All</span> class="cmr-12">. All</span>
@ -149,7 +151,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="x12-37000"></a><span id="x30-37000"></a><span
class="cmbx-12">Enforcement Guidelines</span></span> class="cmbx-12">Enforcement Guidelines</span></span>
<span <span
class="cmr-12">Community leaders will follow these Community Impact Guidelines in</span> class="cmr-12">Community leaders will follow these Community Impact Guidelines in</span>
@ -159,7 +161,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="x12-37002x1"> class="enumerate" id="x30-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
@ -176,7 +178,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="x12-37004x2"> class="enumerate" id="x30-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
@ -197,7 +199,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="x12-37006x3"> class="enumerate" id="x30-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
@ -216,12 +218,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="x12-37008x4"> class="enumerate" id="x30-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
@ -237,12 +239,12 @@ class="cmr-12">A permanent ban from any sort of public interaction within</span>
<span <span
class="cmr-12">the community.</span></li></ol> class="cmr-12">the community.</span></li></ol>
<!--l. 104--><p class="noindent" ><span class="paragraphHead"><a <!--l. 104--><p class="noindent" ><span class="paragraphHead"><a
id="x12-38000"></a><span id="x30-38000"></a><span
class="cmbx-12">Attribution</span></span> class="cmbx-12">Attribution</span></span>
<span <span
class="cmr-12">This Code of Conduct is adapted from the Contributor Covenant, version 2.0,</span> class="cmr-12">This Code of Conduct is adapted from the Contributor Covenant, version 2.0,</span>
<span <span
class="cmr-12">available at </span><a class="cmr-12">available at </span><a
href="https://www.contributor-covenant.org/version/2/0/code_of_conduct.html" ><span href="https://www.contributor-covenant.org/version/2/0/code_of_conduct.html" ><span
class="cmr-12">https://www.contributor-covenant.org/version/2/0/code</span><span class="cmr-12">https://www.contributor-covenant.org/version/2/0/code</span><span
class="cmr-12">_of</span><span class="cmr-12">_of</span><span
@ -253,7 +255,7 @@ class="cmr-12">. Community Impact Guidelines were inspired by Mozilla&#8217;s co
<span <span
class="cmr-12">enforcement ladder. For answers to common questions about this code of conduct, see</span> class="cmr-12">enforcement ladder. For answers to common questions about this code of conduct, see</span>
<span <span
class="cmr-12">the FAQ at </span><a class="cmr-12">the FAQ at </span><a
href="https://www.contributor-covenant.org/faq" ><span href="https://www.contributor-covenant.org/faq" ><span
class="cmr-12">https://www.contributor-covenant.org/faq</span></a><span class="cmr-12">https://www.contributor-covenant.org/faq</span></a><span
class="cmr-12">. Translations are available at</span> class="cmr-12">. Translations are available at</span>
@ -282,7 +284,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="userhtmlli3.html" ><span href="userhtmlli5.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

@ -120,7 +120,7 @@ href="https://psctoolkit.github.io/products/psblas/" ><span
class="cmr-12">psctoolkit.github.io/ products/psblas/</span></a><span class="cmr-12">psctoolkit.github.io/ products/psblas/</span></a><span
class="cmr-12">;</span> class="cmr-12">;</span>
<span <span
class="cmr-12">version 3.7.0 (or later) is required. Indeed, all the prerequisites listed so far</span> class="cmr-12">version 3.9.0 (or later) is required. Indeed, all the prerequisites listed so far</span>
<span <span
class="cmr-12">are also prerequisites of PSBLAS.</span></dd></dl> class="cmr-12">are also prerequisites of PSBLAS.</span></dd></dl>
<!--l. 60--><p class="noindent" ><span <!--l. 60--><p class="noindent" ><span

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 717--><div class="crosslinks"><p class="noindent"><span <!--l. 727--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu11.html" ><span href="userhtmlsu11.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -34,10 +34,10 @@ class="cmr-12">Method hierarchy</span><span
class="cmr-12">_build</span></h4> class="cmr-12">_build</span></h4>
<div class="center" <div class="center"
> >
<!--l. 719--><p class="noindent" > <!--l. 729--><p class="noindent" >
<!--l. 720--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">hierarchy_build</span><span style="color:#000000">(</span><span style="color:#000000">a</span><span style="color:#000000">,</span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">)</span></code><br /> <!--l. 730--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">hierarchy_build</span><span style="color:#000000">(</span><span style="color:#000000">a</span><span style="color:#000000">,</span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">)</span></code><br />
</div> </div>
<!--l. 723--><p class="noindent" ><span <!--l. 733--><p class="noindent" ><span
class="cmr-12">This method builds the hierarchy of matrices and restriction/prolongation operators for</span> class="cmr-12">This method builds the hierarchy of matrices and restriction/prolongation operators for</span>
<span <span
class="cmr-12">the multilevel preconditioner </span><code class="lstinline"><span style="color:#000000">p</span></code><span class="cmr-12">the multilevel preconditioner </span><code class="lstinline"><span style="color:#000000">p</span></code><span
@ -46,7 +46,7 @@ class="cmr-12">, according to the requirements made by the user</span>
class="cmr-12">through the methods </span><code class="lstinline"><span style="color:#000000">init</span></code> <span class="cmr-12">through the methods </span><code class="lstinline"><span style="color:#000000">init</span></code> <span
class="cmr-12">and </span><code class="lstinline"><span style="color:#000000">set</span></code><span class="cmr-12">and </span><code class="lstinline"><span style="color:#000000">set</span></code><span
class="cmr-12">.</span> class="cmr-12">.</span>
<!--l. 728--><p class="noindent" ><span <!--l. 738--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-12" class="tabular" <div class="tabular"> <table id="TBL-12" class="tabular"
@ -54,14 +54,14 @@ class="cmbx-12">Arguments</span>
id="TBL-12-1"><col id="TBL-12-1"><col
id="TBL-12-2"></colgroup><tr id="TBL-12-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-12-1-"><td style="white-space:normal; text-align:left;" id="TBL-12-1-1" style="vertical-align:baseline;" id="TBL-12-1-"><td style="white-space:normal; text-align:left;" id="TBL-12-1-1"
class="td11"> <!--l. 731--><p class="noindent" ><code class="lstinline"><span style="color:#000000">a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-12-1-2" class="td11"> <!--l. 741--><p class="noindent" ><code class="lstinline"><span style="color:#000000">a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-12-1-2"
class="td11"> <!--l. 731--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span class="td11"> <!--l. 741--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">spmat_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">spmat_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-12-2-"><td style="white-space:normal; text-align:left;" id="TBL-12-2-1" style="vertical-align:baseline;" id="TBL-12-2-"><td style="white-space:normal; text-align:left;" id="TBL-12-2-1"
class="td11"> <!--l. 732--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-2-2" class="td11"> <!--l. 742--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-2-2"
class="td11"> <!--l. 732--><p class="noindent" ><span class="td11"> <!--l. 742--><p class="noindent" ><span
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span> class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
<span <span
class="cmr-12">to be preconditioned. Note that </span><span class="cmr-12">to be preconditioned. Note that </span><span
@ -79,13 +79,13 @@ class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-12-3-"><td style="white-space:normal; text-align:left;" id="TBL-12-3-1" style="vertical-align:baseline;" id="TBL-12-3-"><td style="white-space:normal; text-align:left;" id="TBL-12-3-1"
class="td11"> <!--l. 737--><p class="noindent" ><code class="lstinline"><span style="color:#000000">desc_a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-12-3-2" class="td11"> <!--l. 747--><p class="noindent" ><code class="lstinline"><span style="color:#000000">desc_a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-12-3-2"
class="td11"> <!--l. 737--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_desc_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span class="td11"> <!--l. 747--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_desc_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-12-4-"><td style="white-space:normal; text-align:left;" id="TBL-12-4-1" style="vertical-align:baseline;" id="TBL-12-4-"><td style="white-space:normal; text-align:left;" id="TBL-12-4-1"
class="td11"> <!--l. 738--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-4-2" class="td11"> <!--l. 748--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-4-2"
class="td11"> <!--l. 738--><p class="noindent" ><span class="td11"> <!--l. 748--><p class="noindent" ><span
class="cmr-12">The communication descriptor of </span><code class="lstinline"><span style="color:#000000">a</span></code><span class="cmr-12">The communication descriptor of </span><code class="lstinline"><span style="color:#000000">a</span></code><span
class="cmr-12">. See the PSBLAS User&#8217;s Guide</span> class="cmr-12">. See the PSBLAS User&#8217;s Guide</span>
<span <span
@ -97,13 +97,13 @@ class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-12-5-"><td style="white-space:normal; text-align:left;" id="TBL-12-5-1" style="vertical-align:baseline;" id="TBL-12-5-"><td style="white-space:normal; text-align:left;" id="TBL-12-5-1"
class="td11"> <!--l. 740--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-12-5-2" class="td11"> <!--l. 750--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-12-5-2"
class="td11"> <!--l. 740--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span class="td11"> <!--l. 750--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-12-6-"><td style="white-space:normal; text-align:left;" id="TBL-12-6-1" style="vertical-align:baseline;" id="TBL-12-6-"><td style="white-space:normal; text-align:left;" id="TBL-12-6-1"
class="td11"> <!--l. 741--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-6-2" class="td11"> <!--l. 751--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-6-2"
class="td11"> <!--l. 741--><p class="noindent" ><span class="td11"> <!--l. 751--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><span
@ -118,7 +118,7 @@ class="td11"> </td> </tr></table>
<!--l. 747--><div class="crosslinks"><p class="noindent"><span <!--l. 757--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu11.html" ><span href="userhtmlsu11.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -135,6 +135,6 @@ class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu10.html" ><span href="userhtmlse5.html#userhtmlsu10.html" ><span
class="cmr-12">up</span></a><span class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<!--l. 747--><p class="indent" > <a <!--l. 757--><p class="indent" > <a
id="tailuserhtmlsu10.html"></a> id="tailuserhtmlsu10.html"></a>
</body></html> </body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 747--><div class="crosslinks"><p class="noindent"><span <!--l. 757--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu12.html" ><span href="userhtmlsu12.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -34,10 +34,10 @@ class="cmr-12">Method smoothers</span><span
class="cmr-12">_build</span></h4> class="cmr-12">_build</span></h4>
<div class="center" <div class="center"
> >
<!--l. 750--><p class="noindent" > <!--l. 760--><p class="noindent" >
<!--l. 751--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">smoothers_build</span><span style="color:#000000">(</span><span style="color:#000000">a</span><span style="color:#000000">,</span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000">p</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">[,</span><span style="color:#000000">amold</span><span style="color:#000000">,</span><span style="color:#000000">vmold</span><span style="color:#000000">,</span><span style="color:#000000">imold</span><span style="color:#000000">])</span></code><br /> <!--l. 761--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">smoothers_build</span><span style="color:#000000">(</span><span style="color:#000000">a</span><span style="color:#000000">,</span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000">p</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">[,</span><span style="color:#000000">amold</span><span style="color:#000000">,</span><span style="color:#000000">vmold</span><span style="color:#000000">,</span><span style="color:#000000">imold</span><span style="color:#000000">])</span></code><br />
</div> </div>
<!--l. 754--><p class="noindent" ><span <!--l. 764--><p class="noindent" ><span
class="cmr-12">This method builds the smoothers and the coarsest-level solvers for the multilevel</span> class="cmr-12">This method builds the smoothers and the coarsest-level solvers for the multilevel</span>
<span <span
class="cmr-12">preconditioner </span><code class="lstinline"><span style="color:#000000">p</span></code><span class="cmr-12">preconditioner </span><code class="lstinline"><span style="color:#000000">p</span></code><span
@ -51,7 +51,7 @@ class="cmr-12">&#x00A0;</span><a
href="userhtmlsu10.html#x20-190005.3"><span href="userhtmlsu10.html#x20-190005.3"><span
class="cmr-12">5.3</span><!--tex4ht:ref: sec:hier_bld --></a><span class="cmr-12">5.3</span><!--tex4ht:ref: sec:hier_bld --></a><span
class="cmr-12">).</span> class="cmr-12">).</span>
<!--l. 761--><p class="noindent" ><span <!--l. 771--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-13" class="tabular" <div class="tabular"> <table id="TBL-13" class="tabular"
@ -59,14 +59,14 @@ class="cmbx-12">Arguments</span>
id="TBL-13-1"><col id="TBL-13-1"><col
id="TBL-13-2"></colgroup><tr id="TBL-13-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-13-1-"><td style="white-space:normal; text-align:left;" id="TBL-13-1-1" style="vertical-align:baseline;" id="TBL-13-1-"><td style="white-space:normal; text-align:left;" id="TBL-13-1-1"
class="td11"> <!--l. 764--><p class="noindent" ><code class="lstinline"><span style="color:#000000">a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-1-2" class="td11"> <!--l. 774--><p class="noindent" ><code class="lstinline"><span style="color:#000000">a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-1-2"
class="td11"> <!--l. 764--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span class="td11"> <!--l. 774--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">spmat_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">spmat_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-2-"><td style="white-space:normal; text-align:left;" id="TBL-13-2-1" style="vertical-align:baseline;" id="TBL-13-2-"><td style="white-space:normal; text-align:left;" id="TBL-13-2-1"
class="td11"> <!--l. 765--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-2-2" class="td11"> <!--l. 775--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-2-2"
class="td11"> <!--l. 765--><p class="noindent" ><span class="td11"> <!--l. 775--><p class="noindent" ><span
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span> class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
<span <span
class="cmr-12">to be preconditioned. Note that </span><span class="cmr-12">to be preconditioned. Note that </span><span
@ -84,13 +84,13 @@ class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-3-"><td style="white-space:normal; text-align:left;" id="TBL-13-3-1" style="vertical-align:baseline;" id="TBL-13-3-"><td style="white-space:normal; text-align:left;" id="TBL-13-3-1"
class="td11"> <!--l. 769--><p class="noindent" ><code class="lstinline"><span style="color:#000000">desc_a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-3-2" class="td11"> <!--l. 779--><p class="noindent" ><code class="lstinline"><span style="color:#000000">desc_a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-3-2"
class="td11"> <!--l. 769--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_desc_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span class="td11"> <!--l. 779--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_desc_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-4-"><td style="white-space:normal; text-align:left;" id="TBL-13-4-1" style="vertical-align:baseline;" id="TBL-13-4-"><td style="white-space:normal; text-align:left;" id="TBL-13-4-1"
class="td11"> <!--l. 770--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-4-2" class="td11"> <!--l. 780--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-4-2"
class="td11"> <!--l. 770--><p class="noindent" ><span class="td11"> <!--l. 780--><p class="noindent" ><span
class="cmr-12">The communication descriptor of </span><code class="lstinline"><span style="color:#000000">a</span></code><span class="cmr-12">The communication descriptor of </span><code class="lstinline"><span style="color:#000000">a</span></code><span
class="cmr-12">. See the PSBLAS User&#8217;s Guide</span> class="cmr-12">. See the PSBLAS User&#8217;s Guide</span>
<span <span
@ -102,13 +102,13 @@ class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-5-"><td style="white-space:normal; text-align:left;" id="TBL-13-5-1" style="vertical-align:baseline;" id="TBL-13-5-"><td style="white-space:normal; text-align:left;" id="TBL-13-5-1"
class="td11"> <!--l. 772--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-5-2" class="td11"> <!--l. 782--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-5-2"
class="td11"> <!--l. 772--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span class="td11"> <!--l. 782--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-6-"><td style="white-space:normal; text-align:left;" id="TBL-13-6-1" style="vertical-align:baseline;" id="TBL-13-6-"><td style="white-space:normal; text-align:left;" id="TBL-13-6-1"
class="td11"> <!--l. 773--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-6-2" class="td11"> <!--l. 783--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-6-2"
class="td11"> <!--l. 773--><p class="noindent" ><span class="td11"> <!--l. 783--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><span
@ -116,14 +116,14 @@ class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td> class="cmr-12">for details.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-7-"><td style="white-space:normal; text-align:left;" id="TBL-13-7-1" style="vertical-align:baseline;" id="TBL-13-7-"><td style="white-space:normal; text-align:left;" id="TBL-13-7-1"
class="td11"> <!--l. 774--><p class="noindent" ><code class="lstinline"><span style="color:#000000">amold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-7-2" class="td11"> <!--l. 784--><p class="noindent" ><code class="lstinline"><span style="color:#000000">amold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-7-2"
class="td11"> <!--l. 774--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span class="td11"> <!--l. 784--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">_base_sparse_mat</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">_base_sparse_mat</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-8-"><td style="white-space:normal; text-align:left;" id="TBL-13-8-1" style="vertical-align:baseline;" id="TBL-13-8-"><td style="white-space:normal; text-align:left;" id="TBL-13-8-1"
class="td11"> <!--l. 775--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-8-2" class="td11"> <!--l. 785--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-8-2"
class="td11"> <!--l. 775--><p class="noindent" ><span class="td11"> <!--l. 785--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal matrix components; this</span> class="cmr-12">The desired dynamic type for internal matrix components; this</span>
<span <span
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span> class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
@ -136,26 +136,26 @@ class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-9-"><td style="white-space:normal; text-align:left;" id="TBL-13-9-1" style="vertical-align:baseline;" id="TBL-13-9-"><td style="white-space:normal; text-align:left;" id="TBL-13-9-1"
class="td11"> <!--l. 779--><p class="noindent" ><code class="lstinline"><span style="color:#000000">vmold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-9-2" class="td11"> <!--l. 789--><p class="noindent" ><code class="lstinline"><span style="color:#000000">vmold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-9-2"
class="td11"> <!--l. 779--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span class="td11"> <!--l. 789--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">_base_vect_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">_base_vect_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-10-"><td style="white-space:normal; text-align:left;" id="TBL-13-10-1" style="vertical-align:baseline;" id="TBL-13-10-"><td style="white-space:normal; text-align:left;" id="TBL-13-10-1"
class="td11"> <!--l. 780--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-10-2" class="td11"> <!--l. 790--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-10-2"
class="td11"> <!--l. 780--><p class="noindent" ><span class="td11"> <!--l. 790--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal vector components; this</span> class="cmr-12">The desired dynamic type for internal vector components; this</span>
<span <span
class="cmr-12">allows e.g. running on GPUs.</span> </td> class="cmr-12">allows e.g. running on GPUs.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-11-"><td style="white-space:normal; text-align:left;" id="TBL-13-11-1" style="vertical-align:baseline;" id="TBL-13-11-"><td style="white-space:normal; text-align:left;" id="TBL-13-11-1"
class="td11"> <!--l. 782--><p class="noindent" ><code class="lstinline"><span style="color:#000000">imold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-11-2" class="td11"> <!--l. 792--><p class="noindent" ><code class="lstinline"><span style="color:#000000">imold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-11-2"
class="td11"> <!--l. 782--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_i_base_vect_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span class="td11"> <!--l. 792--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_i_base_vect_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-12-"><td style="white-space:normal; text-align:left;" id="TBL-13-12-1" style="vertical-align:baseline;" id="TBL-13-12-"><td style="white-space:normal; text-align:left;" id="TBL-13-12-1"
class="td11"> <!--l. 783--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-12-2" class="td11"> <!--l. 793--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-12-2"
class="td11"> <!--l. 783--><p class="noindent" ><span class="td11"> <!--l. 793--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal integer vector components;</span> class="cmr-12">The desired dynamic type for internal integer vector components;</span>
<span <span
class="cmr-12">this allows e.g. running on GPUs.</span> </td> class="cmr-12">this allows e.g. running on GPUs.</span> </td>
@ -168,7 +168,7 @@ class="td11"> </td> </tr></table>
<!--l. 789--><div class="crosslinks"><p class="noindent"><span <!--l. 799--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu12.html" ><span href="userhtmlsu12.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -185,6 +185,6 @@ class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu11.html" ><span href="userhtmlse5.html#userhtmlsu11.html" ><span
class="cmr-12">up</span></a><span class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<!--l. 789--><p class="indent" > <a <!--l. 799--><p class="indent" > <a
id="tailuserhtmlsu11.html"></a> id="tailuserhtmlsu11.html"></a>
</body></html> </body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 789--><div class="crosslinks"><p class="noindent"><span <!--l. 799--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu13.html" ><span href="userhtmlsu13.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -33,10 +33,10 @@ class="cmr-12">5.5 </span></span> <a
class="cmr-12">Method build</span></h4> class="cmr-12">Method build</span></h4>
<div class="center" <div class="center"
> >
<!--l. 791--><p class="noindent" > <!--l. 801--><p class="noindent" >
<!--l. 792--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">build</span><span style="color:#000000">(</span><span style="color:#000000">a</span><span style="color:#000000">,</span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">[,</span><span style="color:#000000">amold</span><span style="color:#000000">,</span><span style="color:#000000">vmold</span><span style="color:#000000">,</span><span style="color:#000000">imold</span><span style="color:#000000">])</span></code><br /> <!--l. 802--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">build</span><span style="color:#000000">(</span><span style="color:#000000">a</span><span style="color:#000000">,</span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">[,</span><span style="color:#000000">amold</span><span style="color:#000000">,</span><span style="color:#000000">vmold</span><span style="color:#000000">,</span><span style="color:#000000">imold</span><span style="color:#000000">])</span></code><br />
</div> </div>
<!--l. 795--><p class="noindent" ><span <!--l. 805--><p class="noindent" ><span
class="cmr-12">This method builds the preconditioner </span><code class="lstinline"><span style="color:#000000">p</span></code> <span class="cmr-12">This method builds the preconditioner </span><code class="lstinline"><span style="color:#000000">p</span></code> <span
class="cmr-12">according to the requirements made by the</span> class="cmr-12">according to the requirements made by the</span>
<span <span
@ -60,7 +60,7 @@ class="cmr-12">and</span>
class="cmr-12">, whose nomenclature would however be somewhat unnatural when</span> class="cmr-12">, whose nomenclature would however be somewhat unnatural when</span>
<span <span
class="cmr-12">dealing with simple one-level preconditioners.</span> class="cmr-12">dealing with simple one-level preconditioners.</span>
<!--l. 805--><p class="noindent" ><span <!--l. 815--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-14" class="tabular" <div class="tabular"> <table id="TBL-14" class="tabular"
@ -68,14 +68,14 @@ class="cmbx-12">Arguments</span>
id="TBL-14-1"><col id="TBL-14-1"><col
id="TBL-14-2"></colgroup><tr id="TBL-14-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-14-1-"><td style="white-space:normal; text-align:left;" id="TBL-14-1-1" style="vertical-align:baseline;" id="TBL-14-1-"><td style="white-space:normal; text-align:left;" id="TBL-14-1-1"
class="td11"> <!--l. 808--><p class="noindent" ><code class="lstinline"><span style="color:#000000">a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-1-2" class="td11"> <!--l. 818--><p class="noindent" ><code class="lstinline"><span style="color:#000000">a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-1-2"
class="td11"> <!--l. 808--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span class="td11"> <!--l. 818--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">spmat_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">spmat_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-2-"><td style="white-space:normal; text-align:left;" id="TBL-14-2-1" style="vertical-align:baseline;" id="TBL-14-2-"><td style="white-space:normal; text-align:left;" id="TBL-14-2-1"
class="td11"> <!--l. 809--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-2-2" class="td11"> <!--l. 819--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-2-2"
class="td11"> <!--l. 809--><p class="noindent" ><span class="td11"> <!--l. 819--><p class="noindent" ><span
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span> class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
<span <span
class="cmr-12">to be preconditioned. Note that </span><span class="cmr-12">to be preconditioned. Note that </span><span
@ -93,13 +93,13 @@ class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-3-"><td style="white-space:normal; text-align:left;" id="TBL-14-3-1" style="vertical-align:baseline;" id="TBL-14-3-"><td style="white-space:normal; text-align:left;" id="TBL-14-3-1"
class="td11"> <!--l. 813--><p class="noindent" ><code class="lstinline"><span style="color:#000000">desc_a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-3-2" class="td11"> <!--l. 823--><p class="noindent" ><code class="lstinline"><span style="color:#000000">desc_a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-3-2"
class="td11"> <!--l. 813--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_desc_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span class="td11"> <!--l. 823--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_desc_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-4-"><td style="white-space:normal; text-align:left;" id="TBL-14-4-1" style="vertical-align:baseline;" id="TBL-14-4-"><td style="white-space:normal; text-align:left;" id="TBL-14-4-1"
class="td11"> <!--l. 814--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-4-2" class="td11"> <!--l. 824--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-4-2"
class="td11"> <!--l. 814--><p class="noindent" ><span class="td11"> <!--l. 824--><p class="noindent" ><span
class="cmr-12">The communication descriptor of </span><code class="lstinline"><span style="color:#000000">a</span></code><span class="cmr-12">The communication descriptor of </span><code class="lstinline"><span style="color:#000000">a</span></code><span
class="cmr-12">. See the PSBLAS User&#8217;s Guide</span> class="cmr-12">. See the PSBLAS User&#8217;s Guide</span>
<span <span
@ -111,13 +111,13 @@ class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-5-"><td style="white-space:normal; text-align:left;" id="TBL-14-5-1" style="vertical-align:baseline;" id="TBL-14-5-"><td style="white-space:normal; text-align:left;" id="TBL-14-5-1"
class="td11"> <!--l. 816--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-5-2" class="td11"> <!--l. 826--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-5-2"
class="td11"> <!--l. 816--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span class="td11"> <!--l. 826--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-6-"><td style="white-space:normal; text-align:left;" id="TBL-14-6-1" style="vertical-align:baseline;" id="TBL-14-6-"><td style="white-space:normal; text-align:left;" id="TBL-14-6-1"
class="td11"> <!--l. 817--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-6-2" class="td11"> <!--l. 827--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-6-2"
class="td11"> <!--l. 817--><p class="noindent" ><span class="td11"> <!--l. 827--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><span
@ -125,14 +125,14 @@ class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td> class="cmr-12">for details.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-7-"><td style="white-space:normal; text-align:left;" id="TBL-14-7-1" style="vertical-align:baseline;" id="TBL-14-7-"><td style="white-space:normal; text-align:left;" id="TBL-14-7-1"
class="td11"> <!--l. 818--><p class="noindent" ><code class="lstinline"><span style="color:#000000">amold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-7-2" class="td11"> <!--l. 828--><p class="noindent" ><code class="lstinline"><span style="color:#000000">amold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-7-2"
class="td11"> <!--l. 818--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span class="td11"> <!--l. 828--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">_base_sparse_mat</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">_base_sparse_mat</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-8-"><td style="white-space:normal; text-align:left;" id="TBL-14-8-1" style="vertical-align:baseline;" id="TBL-14-8-"><td style="white-space:normal; text-align:left;" id="TBL-14-8-1"
class="td11"> <!--l. 819--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-8-2" class="td11"> <!--l. 829--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-8-2"
class="td11"> <!--l. 819--><p class="noindent" ><span class="td11"> <!--l. 829--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal matrix components; this</span> class="cmr-12">The desired dynamic type for internal matrix components; this</span>
<span <span
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span> class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
@ -145,33 +145,33 @@ class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-9-"><td style="white-space:normal; text-align:left;" id="TBL-14-9-1" style="vertical-align:baseline;" id="TBL-14-9-"><td style="white-space:normal; text-align:left;" id="TBL-14-9-1"
class="td11"> <!--l. 823--><p class="noindent" ><code class="lstinline"><span style="color:#000000">vmold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-9-2" class="td11"> <!--l. 833--><p class="noindent" ><code class="lstinline"><span style="color:#000000">vmold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-9-2"
class="td11"> <!--l. 823--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span class="td11"> <!--l. 833--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">_base_vect_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">_base_vect_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-10-"><td style="white-space:normal; text-align:left;" id="TBL-14-10-1" style="vertical-align:baseline;" id="TBL-14-10-"><td style="white-space:normal; text-align:left;" id="TBL-14-10-1"
class="td11"> <!--l. 824--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-10-2" class="td11"> <!--l. 834--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-10-2"
class="td11"> <!--l. 824--><p class="noindent" ><span class="td11"> <!--l. 834--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal vector components; this</span> class="cmr-12">The desired dynamic type for internal vector components; this</span>
<span <span
class="cmr-12">allows e.g. running on GPUs.</span> </td> class="cmr-12">allows e.g. running on GPUs.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-11-"><td style="white-space:normal; text-align:left;" id="TBL-14-11-1" style="vertical-align:baseline;" id="TBL-14-11-"><td style="white-space:normal; text-align:left;" id="TBL-14-11-1"
class="td11"> <!--l. 826--><p class="noindent" ><code class="lstinline"><span style="color:#000000">imold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-11-2" class="td11"> <!--l. 836--><p class="noindent" ><code class="lstinline"><span style="color:#000000">imold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-11-2"
class="td11"> <!--l. 826--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_i_base_vect_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span class="td11"> <!--l. 836--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_i_base_vect_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-12-"><td style="white-space:normal; text-align:left;" id="TBL-14-12-1" style="vertical-align:baseline;" id="TBL-14-12-"><td style="white-space:normal; text-align:left;" id="TBL-14-12-1"
class="td11"> <!--l. 827--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-12-2" class="td11"> <!--l. 837--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-12-2"
class="td11"> <!--l. 827--><p class="noindent" ><span class="td11"> <!--l. 837--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal integer vector components;</span> class="cmr-12">The desired dynamic type for internal integer vector components;</span>
<span <span
class="cmr-12">this allows e.g. running on GPUs.</span> </td> class="cmr-12">this allows e.g. running on GPUs.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-13-"><td style="white-space:normal; text-align:left;" id="TBL-14-13-1" style="vertical-align:baseline;" id="TBL-14-13-"><td style="white-space:normal; text-align:left;" id="TBL-14-13-1"
class="td11"> </td> </tr></table> </div> class="td11"> </td> </tr></table> </div>
<!--l. 832--><p class="noindent" ><span <!--l. 842--><p class="noindent" ><span
class="cmr-12">The method can be used to build multilevel preconditioners too.</span> class="cmr-12">The method can be used to build multilevel preconditioners too.</span>
@ -179,7 +179,7 @@ class="cmr-12">The method can be used to build multilevel preconditioners too.</
<!--l. 837--><div class="crosslinks"><p class="noindent"><span <!--l. 847--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu13.html" ><span href="userhtmlsu13.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -196,6 +196,6 @@ class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu12.html" ><span href="userhtmlse5.html#userhtmlsu12.html" ><span
class="cmr-12">up</span></a><span class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<!--l. 837--><p class="indent" > <a <!--l. 847--><p class="indent" > <a
id="tailuserhtmlsu12.html"></a> id="tailuserhtmlsu12.html"></a>
</body></html> </body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 837--><div class="crosslinks"><p class="noindent"><span <!--l. 847--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu14.html" ><span href="userhtmlsu14.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -33,10 +33,10 @@ class="cmr-12">5.6 </span></span> <a
class="cmr-12">Method apply</span></h4> class="cmr-12">Method apply</span></h4>
<div class="center" <div class="center"
> >
<!--l. 839--><p class="noindent" > <!--l. 849--><p class="noindent" >
<!--l. 840--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">apply</span><span style="color:#000000">(</span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000">y</span><span style="color:#000000">,</span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000"> </span><span style="color:#000000">[,</span><span style="color:#000000">trans</span><span style="color:#000000">,</span><span style="color:#000000">work</span><span style="color:#000000">])</span></code><br /> <!--l. 850--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">apply</span><span style="color:#000000">(</span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000">y</span><span style="color:#000000">,</span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000"> </span><span style="color:#000000">[,</span><span style="color:#000000">trans</span><span style="color:#000000">,</span><span style="color:#000000">work</span><span style="color:#000000">])</span></code><br />
</div> </div>
<!--l. 843--><p class="noindent" ><span <!--l. 853--><p class="noindent" ><span
class="cmr-12">This method computes </span><span class="cmr-12">This method computes </span><span
class="cmmi-12">y </span><span class="cmmi-12">y </span><span
class="cmr-12">= </span><span class="cmr-12">= </span><span
@ -57,14 +57,16 @@ class="cmmi-12">op </span><span
class="cmr-12">denotes the preconditioner itself or its transpose, according to the</span> class="cmr-12">denotes the preconditioner itself or its transpose, according to the</span>
<span <span
class="cmr-12">value of </span><code class="lstinline"><span style="color:#000000">trans</span></code><span class="cmr-12">value of </span><code class="lstinline"><span style="color:#000000">trans</span></code><span
class="cmr-12">. Note that, when AMG4PSBLAS is used with a Krylov solver from</span> class="cmr-12">. Note that, when AMG4PSBLAS is used with am iterative solver from</span>
<span <span
class="cmr-12">PSBLAS, </span><code class="lstinline"><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">apply</span></code> <span class="cmr-12">PSBLAS, </span><code class="lstinline"><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">apply</span></code> <span
class="cmr-12">is called within the PSBLAS method </span><code class="lstinline"><span style="color:#000000">psb_krylov</span></code> <span class="cmr-12">is called within the PSBLAS method </span><code class="lstinline"><span style="color:#000000">psb_krylov</span></code> <span
class="cmr-12">and hence it is</span> class="cmr-12">and</span>
<span
class="cmr-12">hence it is completely transparent to the user, who will almost never invoke it</span>
<span <span
class="cmr-12">completely transparent to the user.</span> class="cmr-12">directly.</span>
<!--l. 852--><p class="noindent" ><span <!--l. 863--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-15" class="tabular" <div class="tabular"> <table id="TBL-15" class="tabular"
@ -72,14 +74,14 @@ class="cmbx-12">Arguments</span>
id="TBL-15-1"><col id="TBL-15-1"><col
id="TBL-15-2"></colgroup><tr id="TBL-15-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-15-1-"><td style="white-space:normal; text-align:left;" id="TBL-15-1-1" style="vertical-align:baseline;" id="TBL-15-1-"><td style="white-space:normal; text-align:left;" id="TBL-15-1-1"
class="td11"> <!--l. 855--><p class="noindent" ><code class="lstinline"><span style="color:#000000">x</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-1-2" class="td11"> <!--l. 866--><p class="noindent" ><code class="lstinline"><span style="color:#000000">x</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-1-2"
class="td11"> <!--l. 855--><p class="noindent" ><span class="td11"> <!--l. 866--><p class="noindent" ><span
class="cmti-12">type</span><code class="lstinline"><span style="color:#000000">(</span><span style="color:#000000">kind_parameter</span><span style="color:#000000">)</span></code><span class="cmti-12">type</span><code class="lstinline"><span style="color:#000000">(</span><span style="color:#000000">kind_parameter</span><span style="color:#000000">)</span></code><span
class="cmr-12">, dimension(:), intent(in)&#8212;.</span> </td> class="cmr-12">, dimension(:), intent(in)&#8212;.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-15-2-"><td style="white-space:normal; text-align:left;" id="TBL-15-2-1" style="vertical-align:baseline;" id="TBL-15-2-"><td style="white-space:normal; text-align:left;" id="TBL-15-2-1"
class="td11"> <!--l. 856--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-2-2" class="td11"> <!--l. 867--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-2-2"
class="td11"> <!--l. 856--><p class="noindent" ><span class="td11"> <!--l. 867--><p class="noindent" ><span
class="cmr-12">The local part of the vector </span><span class="cmr-12">The local part of the vector </span><span
class="cmmi-12">x</span><span class="cmmi-12">x</span><span
class="cmr-12">. Note that </span><span class="cmr-12">. Note that </span><span
@ -95,14 +97,14 @@ class="cmr-12">, single/double</span>
class="cmr-12">precision version of AMG4PSBLAS under use.</span> </td> class="cmr-12">precision version of AMG4PSBLAS under use.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-15-3-"><td style="white-space:normal; text-align:left;" id="TBL-15-3-1" style="vertical-align:baseline;" id="TBL-15-3-"><td style="white-space:normal; text-align:left;" id="TBL-15-3-1"
class="td11"> <!--l. 859--><p class="noindent" ><code class="lstinline"><span style="color:#000000">y</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-3-2" class="td11"> <!--l. 870--><p class="noindent" ><code class="lstinline"><span style="color:#000000">y</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-3-2"
class="td11"> <!--l. 859--><p class="noindent" ><span class="td11"> <!--l. 870--><p class="noindent" ><span
class="cmti-12">type</span><code class="lstinline"><span style="color:#000000">(</span><span style="color:#000000">kind_parameter</span><span style="color:#000000">)</span></code><span class="cmti-12">type</span><code class="lstinline"><span style="color:#000000">(</span><span style="color:#000000">kind_parameter</span><span style="color:#000000">)</span></code><span
class="cmr-12">, dimension(:), intent(out)&#8212;.</span> </td> class="cmr-12">, dimension(:), intent(out)&#8212;.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-15-4-"><td style="white-space:normal; text-align:left;" id="TBL-15-4-1" style="vertical-align:baseline;" id="TBL-15-4-"><td style="white-space:normal; text-align:left;" id="TBL-15-4-1"
class="td11"> <!--l. 860--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-4-2" class="td11"> <!--l. 871--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-4-2"
class="td11"> <!--l. 860--><p class="noindent" ><span class="td11"> <!--l. 871--><p class="noindent" ><span
class="cmr-12">The local part of the vector </span><span class="cmr-12">The local part of the vector </span><span
class="cmmi-12">y</span><span class="cmmi-12">y</span><span
class="cmr-12">. Note that </span><span class="cmr-12">. Note that </span><span
@ -118,25 +120,25 @@ class="cmr-12">, single/double</span>
class="cmr-12">precision version of AMG4PSBLAS under use.</span> </td> class="cmr-12">precision version of AMG4PSBLAS under use.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-15-5-"><td style="white-space:normal; text-align:left;" id="TBL-15-5-1" style="vertical-align:baseline;" id="TBL-15-5-"><td style="white-space:normal; text-align:left;" id="TBL-15-5-1"
class="td11"> <!--l. 863--><p class="noindent" ><code class="lstinline"><span style="color:#000000">desc_a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-5-2" class="td11"> <!--l. 874--><p class="noindent" ><code class="lstinline"><span style="color:#000000">desc_a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-5-2"
class="td11"> <!--l. 863--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_desc_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span class="td11"> <!--l. 874--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_desc_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-15-6-"><td style="white-space:normal; text-align:left;" id="TBL-15-6-1" style="vertical-align:baseline;" id="TBL-15-6-"><td style="white-space:normal; text-align:left;" id="TBL-15-6-1"
class="td11"> <!--l. 864--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-6-2" class="td11"> <!--l. 875--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-6-2"
class="td11"> <!--l. 864--><p class="noindent" ><span class="td11"> <!--l. 875--><p class="noindent" ><span
class="cmr-12">The communication descriptor associated to the matrix to be</span> class="cmr-12">The communication descriptor associated to the matrix to be</span>
<span <span
class="cmr-12">preconditioned.</span> </td> class="cmr-12">preconditioned.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-15-7-"><td style="white-space:normal; text-align:left;" id="TBL-15-7-1" style="vertical-align:baseline;" id="TBL-15-7-"><td style="white-space:normal; text-align:left;" id="TBL-15-7-1"
class="td11"> <!--l. 866--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-7-2" class="td11"> <!--l. 877--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-7-2"
class="td11"> <!--l. 866--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span class="td11"> <!--l. 877--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-15-8-"><td style="white-space:normal; text-align:left;" id="TBL-15-8-1" style="vertical-align:baseline;" id="TBL-15-8-"><td style="white-space:normal; text-align:left;" id="TBL-15-8-1"
class="td11"> <!--l. 867--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-8-2" class="td11"> <!--l. 878--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-8-2"
class="td11"> <!--l. 867--><p class="noindent" ><span class="td11"> <!--l. 878--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><span
@ -144,12 +146,12 @@ class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td> class="cmr-12">for details.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-15-9-"><td style="white-space:normal; text-align:left;" id="TBL-15-9-1" style="vertical-align:baseline;" id="TBL-15-9-"><td style="white-space:normal; text-align:left;" id="TBL-15-9-1"
class="td11"> <!--l. 868--><p class="noindent" ><code class="lstinline"><span style="color:#000000">trans</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-9-2" class="td11"> <!--l. 879--><p class="noindent" ><code class="lstinline"><span style="color:#000000">trans</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-9-2"
class="td11"> <!--l. 868--><p class="noindent" ><code class="lstinline"><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=1),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">).</span></code> </td> class="td11"> <!--l. 879--><p class="noindent" ><code class="lstinline"><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=1),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">).</span></code> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-15-10-"><td style="white-space:normal; text-align:left;" id="TBL-15-10-1" style="vertical-align:baseline;" id="TBL-15-10-"><td style="white-space:normal; text-align:left;" id="TBL-15-10-1"
class="td11"> <!--l. 869--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-10-2" class="td11"> <!--l. 880--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-10-2"
class="td11"> <!--l. 869--><p class="noindent" ><span class="td11"> <!--l. 880--><p class="noindent" ><span
class="cmr-12">If </span><code class="lstinline"><span style="color:#000000">trans</span></code> <span class="cmr-12">If </span><code class="lstinline"><span style="color:#000000">trans</span></code> <span
class="cmr-12">= </span><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">N</span><span style="color:#000000">&#8217;</span><span style="color:#000000">,</span><span style="color:#000000">&#8217;</span><span style="color:#000000">n</span><span style="color:#000000">&#8217;</span></code> <span class="cmr-12">= </span><code class="lstinline"><span style="color:#000000">&#8217;</span><span style="color:#000000">N</span><span style="color:#000000">&#8217;</span><span style="color:#000000">,</span><span style="color:#000000">&#8217;</span><span style="color:#000000">n</span><span style="color:#000000">&#8217;</span></code> <span
class="cmr-12">then </span><span class="cmr-12">then </span><span
@ -199,14 +201,14 @@ class="cmr-8">1</span></sup><span
class="cmr-12">).</span> </td> class="cmr-12">).</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-15-11-"><td style="white-space:normal; text-align:left;" id="TBL-15-11-1" style="vertical-align:baseline;" id="TBL-15-11-"><td style="white-space:normal; text-align:left;" id="TBL-15-11-1"
class="td11"> <!--l. 873--><p class="noindent" ><code class="lstinline"><span style="color:#000000">work</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-11-2" class="td11"> <!--l. 884--><p class="noindent" ><code class="lstinline"><span style="color:#000000">work</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-11-2"
class="td11"> <!--l. 873--><p class="noindent" ><span class="td11"> <!--l. 884--><p class="noindent" ><span
class="cmti-12">type</span><code class="lstinline"><span style="color:#000000">(</span><span style="color:#000000">kind_parameter</span><span style="color:#000000">)</span></code><span class="cmti-12">type</span><code class="lstinline"><span style="color:#000000">(</span><span style="color:#000000">kind_parameter</span><span style="color:#000000">)</span></code><span
class="cmr-12">, dimension(:), optional, target&#8212;.</span> </td> class="cmr-12">, dimension(:), optional, target&#8212;.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-15-12-"><td style="white-space:normal; text-align:left;" id="TBL-15-12-1" style="vertical-align:baseline;" id="TBL-15-12-"><td style="white-space:normal; text-align:left;" id="TBL-15-12-1"
class="td11"> <!--l. 874--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-12-2" class="td11"> <!--l. 885--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-12-2"
class="td11"> <!--l. 874--><p class="noindent" ><span class="td11"> <!--l. 885--><p class="noindent" ><span
class="cmr-12">Workspace. Its size should be at least </span><code class="lstinline"><span style="color:#000000">4</span><span style="color:#000000"> </span><span style="color:#000000">*</span><span style="color:#000000"> </span><span style="color:#000000">psb_cd_get_local_</span></code> class="cmr-12">Workspace. Its size should be at least </span><code class="lstinline"><span style="color:#000000">4</span><span style="color:#000000"> </span><span style="color:#000000">*</span><span style="color:#000000"> </span><span style="color:#000000">psb_cd_get_local_</span></code>
<code class="lstinline"><span style="color:#000000">cols</span><span style="color:#000000">(</span><span style="color:#000000">desc_a</span><span style="color:#000000">)</span></code> <span <code class="lstinline"><span style="color:#000000">cols</span><span style="color:#000000">(</span><span style="color:#000000">desc_a</span><span style="color:#000000">)</span></code> <span
class="cmr-12">(see the PSBLAS User&#8217;s Guide). Note that </span><span class="cmr-12">(see the PSBLAS User&#8217;s Guide). Note that </span><span
@ -229,7 +231,10 @@ class="td11"> </td> </tr></table>
<!--l. 883--><div class="crosslinks"><p class="noindent"><span
<!--l. 894--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu14.html" ><span href="userhtmlsu14.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -246,6 +251,6 @@ class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu13.html" ><span href="userhtmlse5.html#userhtmlsu13.html" ><span
class="cmr-12">up</span></a><span class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<!--l. 883--><p class="indent" > <a <!--l. 894--><p class="indent" > <a
id="tailuserhtmlsu13.html"></a> id="tailuserhtmlsu13.html"></a>
</body></html> </body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 883--><div class="crosslinks"><p class="noindent"><span <!--l. 894--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu15.html" ><span href="userhtmlsu15.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -33,13 +33,13 @@ class="cmr-12">5.7 </span></span> <a
class="cmr-12">Method free</span></h4> class="cmr-12">Method free</span></h4>
<div class="center" <div class="center"
> >
<!--l. 885--><p class="noindent" > <!--l. 896--><p class="noindent" >
<!--l. 886--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">free</span><span style="color:#000000">(</span><span style="color:#000000">p</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">)</span></code><br /> <!--l. 897--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">free</span><span style="color:#000000">(</span><span style="color:#000000">p</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">)</span></code><br />
</div> </div>
<!--l. 889--><p class="noindent" ><span <!--l. 900--><p class="noindent" ><span
class="cmr-12">This method deallocates the preconditioner data structure </span><code class="lstinline"><span style="color:#000000">p</span></code><span class="cmr-12">This method deallocates the preconditioner data structure </span><code class="lstinline"><span style="color:#000000">p</span></code><span
class="cmr-12">.</span> class="cmr-12">.</span>
<!--l. 892--><p class="noindent" ><span <!--l. 903--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-16" class="tabular" <div class="tabular"> <table id="TBL-16" class="tabular"
@ -47,13 +47,13 @@ class="cmbx-12">Arguments</span>
id="TBL-16-1"><col id="TBL-16-1"><col
id="TBL-16-2"></colgroup><tr id="TBL-16-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-16-1-"><td style="white-space:normal; text-align:left;" id="TBL-16-1-1" style="vertical-align:baseline;" id="TBL-16-1-"><td style="white-space:normal; text-align:left;" id="TBL-16-1-1"
class="td11"> <!--l. 895--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-16-1-2" class="td11"> <!--l. 906--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-16-1-2"
class="td11"> <!--l. 895--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span class="td11"> <!--l. 906--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-16-2-"><td style="white-space:normal; text-align:left;" id="TBL-16-2-1" style="vertical-align:baseline;" id="TBL-16-2-"><td style="white-space:normal; text-align:left;" id="TBL-16-2-1"
class="td11"> <!--l. 896--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-2-2" class="td11"> <!--l. 907--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-2-2"
class="td11"> <!--l. 896--><p class="noindent" ><span class="td11"> <!--l. 907--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><span
@ -70,7 +70,7 @@ class="td11"> </td> </tr></table>
<!--l. 902--><div class="crosslinks"><p class="noindent"><span <!--l. 913--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu15.html" ><span href="userhtmlsu15.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -87,6 +87,6 @@ class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu14.html" ><span href="userhtmlse5.html#userhtmlsu14.html" ><span
class="cmr-12">up</span></a><span class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<!--l. 902--><p class="indent" > <a <!--l. 913--><p class="indent" > <a
id="tailuserhtmlsu14.html"></a> id="tailuserhtmlsu14.html"></a>
</body></html> </body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 902--><div class="crosslinks"><p class="noindent"><span <!--l. 913--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu16.html" ><span href="userhtmlsu16.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -33,10 +33,10 @@ class="cmr-12">5.8 </span></span> <a
class="cmr-12">Method descr</span></h4> class="cmr-12">Method descr</span></h4>
<div class="center" <div class="center"
> >
<!--l. 904--><p class="noindent" > <!--l. 915--><p class="noindent" >
<!--l. 905--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">descr</span><span style="color:#000000">(</span><span style="color:#000000">info</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">[</span><span style="color:#000000">iout</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">root</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">verbosity</span><span style="color:#000000">])</span></code><br /> <!--l. 916--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">descr</span><span style="color:#000000">(</span><span style="color:#000000">info</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">[</span><span style="color:#000000">iout</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">root</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">verbosity</span><span style="color:#000000">])</span></code><br />
</div> </div>
<!--l. 908--><p class="noindent" ><span <!--l. 919--><p class="noindent" ><span
class="cmr-12">This method prints a description of the preconditioner </span><code class="lstinline"><span style="color:#000000">p</span></code> <span class="cmr-12">This method prints a description of the preconditioner </span><code class="lstinline"><span style="color:#000000">p</span></code> <span
class="cmr-12">to the standard output or to a</span> class="cmr-12">to the standard output or to a</span>
<span <span
@ -46,7 +46,7 @@ class="cmr-12">, or </span><code class="lstinline"><span style="color:#000000">b
class="cmr-12">, have</span> class="cmr-12">, have</span>
<span <span
class="cmr-12">been called.</span> class="cmr-12">been called.</span>
<!--l. 913--><p class="noindent" ><span <!--l. 924--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-17" class="tabular" <div class="tabular"> <table id="TBL-17" class="tabular"
@ -54,13 +54,13 @@ class="cmbx-12">Arguments</span>
id="TBL-17-1"><col id="TBL-17-1"><col
id="TBL-17-2"></colgroup><tr id="TBL-17-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-17-1-"><td style="white-space:normal; text-align:left;" id="TBL-17-1-1" style="vertical-align:baseline;" id="TBL-17-1-"><td style="white-space:normal; text-align:left;" id="TBL-17-1-1"
class="td11"> <!--l. 916--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-17-1-2" class="td11"> <!--l. 927--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-17-1-2"
class="td11"> <!--l. 916--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span class="td11"> <!--l. 927--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-17-2-"><td style="white-space:normal; text-align:left;" id="TBL-17-2-1" style="vertical-align:baseline;" id="TBL-17-2-"><td style="white-space:normal; text-align:left;" id="TBL-17-2-1"
class="td11"> <!--l. 917--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-2-2" class="td11"> <!--l. 928--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-2-2"
class="td11"> <!--l. 917--><p class="noindent" ><span class="td11"> <!--l. 928--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><span
@ -68,38 +68,38 @@ class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td> class="cmr-12">for details.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-17-3-"><td style="white-space:normal; text-align:left;" id="TBL-17-3-1" style="vertical-align:baseline;" id="TBL-17-3-"><td style="white-space:normal; text-align:left;" id="TBL-17-3-1"
class="td11"> <!--l. 918--><p class="noindent" ><code class="lstinline"><span style="color:#000000">iout</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-17-3-2" class="td11"> <!--l. 929--><p class="noindent" ><code class="lstinline"><span style="color:#000000">iout</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-17-3-2"
class="td11"> <!--l. 918--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span class="td11"> <!--l. 929--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-17-4-"><td style="white-space:normal; text-align:left;" id="TBL-17-4-1" style="vertical-align:baseline;" id="TBL-17-4-"><td style="white-space:normal; text-align:left;" id="TBL-17-4-1"
class="td11"> <!--l. 919--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-4-2" class="td11"> <!--l. 930--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-4-2"
class="td11"> <!--l. 919--><p class="noindent" ><span class="td11"> <!--l. 930--><p class="noindent" ><span
class="cmr-12">The id of the file where the preconditioner description will be</span> class="cmr-12">The id of the file where the preconditioner description will be</span>
<span <span
class="cmr-12">printed; the default is the standard output.</span> </td> class="cmr-12">printed; the default is the standard output.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-17-5-"><td style="white-space:normal; text-align:left;" id="TBL-17-5-1" style="vertical-align:baseline;" id="TBL-17-5-"><td style="white-space:normal; text-align:left;" id="TBL-17-5-1"
class="td11"> <!--l. 921--><p class="noindent" ><code class="lstinline"><span style="color:#000000">root</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-17-5-2" class="td11"> <!--l. 932--><p class="noindent" ><code class="lstinline"><span style="color:#000000">root</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-17-5-2"
class="td11"> <!--l. 921--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span class="td11"> <!--l. 932--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-17-6-"><td style="white-space:normal; text-align:left;" id="TBL-17-6-1" style="vertical-align:baseline;" id="TBL-17-6-"><td style="white-space:normal; text-align:left;" id="TBL-17-6-1"
class="td11"> <!--l. 922--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-6-2" class="td11"> <!--l. 933--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-6-2"
class="td11"> <!--l. 922--><p class="noindent" ><span class="td11"> <!--l. 933--><p class="noindent" ><span
class="cmr-12">The id of the process where the preconditioner description</span> class="cmr-12">The id of the process where the preconditioner description</span>
<span <span
class="cmr-12">will be printed; the default is </span><code class="lstinline"><span style="color:#000000">psb_root_</span></code><span class="cmr-12">will be printed; the default is </span><code class="lstinline"><span style="color:#000000">psb_root_</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-17-7-"><td style="white-space:normal; text-align:left;" id="TBL-17-7-1" style="vertical-align:baseline;" id="TBL-17-7-"><td style="white-space:normal; text-align:left;" id="TBL-17-7-1"
class="td11"> <!--l. 924--><p class="noindent" ><code class="lstinline"><span style="color:#000000">verbosity</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-17-7-2" class="td11"> <!--l. 935--><p class="noindent" ><code class="lstinline"><span style="color:#000000">verbosity</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-17-7-2"
class="td11"> <!--l. 924--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span class="td11"> <!--l. 935--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-17-8-"><td style="white-space:normal; text-align:left;" id="TBL-17-8-1" style="vertical-align:baseline;" id="TBL-17-8-"><td style="white-space:normal; text-align:left;" id="TBL-17-8-1"
class="td11"> <!--l. 925--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-8-2" class="td11"> <!--l. 936--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-8-2"
class="td11"> <!--l. 925--><p class="noindent" ><span class="td11"> <!--l. 936--><p class="noindent" ><span
class="cmr-12">The verbosity level of the description. Default value is 0. For</span> class="cmr-12">The verbosity level of the description. Default value is 0. For</span>
<span <span
class="cmr-12">values higher than 0, it prints out further information, e.g., for</span> class="cmr-12">values higher than 0, it prints out further information, e.g., for</span>
@ -113,7 +113,7 @@ class="td11"> </td> </tr></table>
<!--l. 932--><div class="crosslinks"><p class="noindent"><span <!--l. 943--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu16.html" ><span href="userhtmlsu16.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -130,6 +130,6 @@ class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu15.html" ><span href="userhtmlse5.html#userhtmlsu15.html" ><span
class="cmr-12">up</span></a><span class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<!--l. 932--><p class="indent" > <a <!--l. 943--><p class="indent" > <a
id="tailuserhtmlsu15.html"></a> id="tailuserhtmlsu15.html"></a>
</body></html> </body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 932--><div class="crosslinks"><p class="noindent"><span <!--l. 943--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu15.html" ><span href="userhtmlsu15.html" ><span
class="cmr-12">prev</span></a><span class="cmr-12">prev</span></a><span
@ -28,23 +28,23 @@ class="cmr-12">] </span></p></div>
class="cmr-12">5.9 </span></span> <a class="cmr-12">5.9 </span></span> <a
id="x26-250005.9"></a><span id="x26-250005.9"></a><span
class="cmr-12">Auxiliary Methods</span></h4> class="cmr-12">Auxiliary Methods</span></h4>
<!--l. 933--><p class="noindent" ><span <!--l. 944--><p class="noindent" ><span
class="cmr-12">Various functionalities are implemented as additional methods of the preconditioner</span> class="cmr-12">Various functionalities are implemented as additional methods of the preconditioner</span>
<span <span
class="cmr-12">object.</span> class="cmr-12">object.</span>
<!--l. 936--><p class="noindent" > <!--l. 947--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span <h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.1 </span></span> <a class="cmr-12">5.9.1 </span></span> <a
id="x26-260005.9.1"></a><span id="x26-260005.9.1"></a><span
class="cmr-12">Method: dump</span></h5> class="cmr-12">Method: dump</span></h5>
<div class="center" <div class="center"
> >
<!--l. 938--><p class="noindent" > <!--l. 949--><p class="noindent" >
<!--l. 939--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">dump</span><span style="color:#000000">(</span><span style="color:#000000">info</span><span style="color:#000000">[,</span><span style="color:#000000">istart</span><span style="color:#000000">,</span><span style="color:#000000">iend</span><span style="color:#000000">,</span><span style="color:#000000">prefix</span><span style="color:#000000">,</span><span style="color:#000000">head</span><span style="color:#000000">,</span><span style="color:#000000">ac</span><span style="color:#000000">,</span><span style="color:#000000">rp</span><span style="color:#000000">,</span><span style="color:#000000">smoother</span><span style="color:#000000">,</span><span style="color:#000000">solver</span><span style="color:#000000">,</span><span style="color:#000000">global_num</span><span style="color:#000000">])</span></code><br /> <!--l. 950--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">dump</span><span style="color:#000000">(</span><span style="color:#000000">info</span><span style="color:#000000">[,</span><span style="color:#000000">istart</span><span style="color:#000000">,</span><span style="color:#000000">iend</span><span style="color:#000000">,</span><span style="color:#000000">prefix</span><span style="color:#000000">,</span><span style="color:#000000">head</span><span style="color:#000000">,</span><span style="color:#000000">ac</span><span style="color:#000000">,</span><span style="color:#000000">rp</span><span style="color:#000000">,</span><span style="color:#000000">smoother</span><span style="color:#000000">,</span><span style="color:#000000">solver</span><span style="color:#000000">,</span><span style="color:#000000">global_num</span><span style="color:#000000">])</span></code><br />
</div> </div>
<!--l. 942--><p class="noindent" ><span <!--l. 953--><p class="noindent" ><span
class="cmr-12">Dump on file.</span> class="cmr-12">Dump on file.</span>
<!--l. 945--><p class="noindent" ><span <!--l. 956--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-18" class="tabular" <div class="tabular"> <table id="TBL-18" class="tabular"
@ -52,13 +52,13 @@ class="cmbx-12">Arguments</span>
id="TBL-18-1"><col id="TBL-18-1"><col
id="TBL-18-2"></colgroup><tr id="TBL-18-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-18-1-"><td style="white-space:normal; text-align:left;" id="TBL-18-1-1" style="vertical-align:baseline;" id="TBL-18-1-"><td style="white-space:normal; text-align:left;" id="TBL-18-1-1"
class="td11"> <!--l. 948--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-18-1-2" class="td11"> <!--l. 959--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-18-1-2"
class="td11"> <!--l. 948--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span class="td11"> <!--l. 959--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-18-2-"><td style="white-space:normal; text-align:left;" id="TBL-18-2-1" style="vertical-align:baseline;" id="TBL-18-2-"><td style="white-space:normal; text-align:left;" id="TBL-18-2-1"
class="td11"> <!--l. 949--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-2-2" class="td11"> <!--l. 960--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-2-2"
class="td11"> <!--l. 949--><p class="noindent" ><span class="td11"> <!--l. 960--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><span
@ -66,14 +66,14 @@ class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td> class="cmr-12">for details.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-18-3-"><td style="white-space:normal; text-align:left;" id="TBL-18-3-1" style="vertical-align:baseline;" id="TBL-18-3-"><td style="white-space:normal; text-align:left;" id="TBL-18-3-1"
class="td11"> <!--l. 950--><p class="noindent" ><code class="lstinline"><span style="color:#000000">amold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-18-3-2" class="td11"> <!--l. 961--><p class="noindent" ><code class="lstinline"><span style="color:#000000">amold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-18-3-2"
class="td11"> <!--l. 950--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span class="td11"> <!--l. 961--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">_base_sparse_mat</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">_base_sparse_mat</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-18-4-"><td style="white-space:normal; text-align:left;" id="TBL-18-4-1" style="vertical-align:baseline;" id="TBL-18-4-"><td style="white-space:normal; text-align:left;" id="TBL-18-4-1"
class="td11"> <!--l. 951--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-4-2" class="td11"> <!--l. 962--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-4-2"
class="td11"> <!--l. 951--><p class="noindent" ><span class="td11"> <!--l. 962--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal matrix components; this</span> class="cmr-12">The desired dynamic type for internal matrix components; this</span>
<span <span
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span> class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
@ -87,22 +87,22 @@ class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-18-5-"><td style="white-space:normal; text-align:left;" id="TBL-18-5-1" style="vertical-align:baseline;" id="TBL-18-5-"><td style="white-space:normal; text-align:left;" id="TBL-18-5-1"
class="td11"> </td> </tr></table> </div> class="td11"> </td> </tr></table> </div>
<!--l. 958--><p class="noindent" > <!--l. 969--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span <h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.2 </span></span> <a class="cmr-12">5.9.2 </span></span> <a
id="x26-270005.9.2"></a><span id="x26-270005.9.2"></a><span
class="cmr-12">Method: clone</span></h5> class="cmr-12">Method: clone</span></h5>
<div class="center" <div class="center"
> >
<!--l. 960--><p class="noindent" > <!--l. 971--><p class="noindent" >
<!--l. 961--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">clone</span><span style="color:#000000">(</span><span style="color:#000000">pout</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">)</span></code><br /> <!--l. 972--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">clone</span><span style="color:#000000">(</span><span style="color:#000000">pout</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">)</span></code><br />
</div> </div>
<!--l. 964--><p class="noindent" ><span <!--l. 975--><p class="noindent" ><span
class="cmr-12">Create a (deep) copy of the preconditioner object.</span> class="cmr-12">Create a (deep) copy of the preconditioner object.</span>
<!--l. 967--><p class="noindent" ><span <!--l. 978--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-19" class="tabular" <div class="tabular"> <table id="TBL-19" class="tabular"
@ -110,14 +110,14 @@ class="cmbx-12">Arguments</span>
id="TBL-19-1"><col id="TBL-19-1"><col
id="TBL-19-2"></colgroup><tr id="TBL-19-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-19-1-"><td style="white-space:normal; text-align:left;" id="TBL-19-1-1" style="vertical-align:baseline;" id="TBL-19-1-"><td style="white-space:normal; text-align:left;" id="TBL-19-1-1"
class="td11"> <!--l. 970--><p class="noindent" ><code class="lstinline"><span style="color:#000000">pout</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-19-1-2" class="td11"> <!--l. 981--><p class="noindent" ><code class="lstinline"><span style="color:#000000">pout</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-19-1-2"
class="td11"> <!--l. 970--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">amg_</span></code><span class="td11"> <!--l. 981--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">amg_</span></code><span
class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">prec_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">prec_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-19-2-"><td style="white-space:normal; text-align:left;" id="TBL-19-2-1" style="vertical-align:baseline;" id="TBL-19-2-"><td style="white-space:normal; text-align:left;" id="TBL-19-2-1"
class="td11"> <!--l. 971--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-2-2" class="td11"> <!--l. 982--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-2-2"
class="td11"> <!--l. 971--><p class="noindent" ><span class="td11"> <!--l. 982--><p class="noindent" ><span
class="cmr-12">The copy of the preconditioner data structure. Note that </span><span class="cmr-12">The copy of the preconditioner data structure. Note that </span><span
class="cmti-12">x </span><span class="cmti-12">x </span><span
class="cmr-12">must</span> class="cmr-12">must</span>
@ -129,13 +129,13 @@ class="cmr-12">, single/double precision</span>
class="cmr-12">version of AMG4PSBLAS under use.</span> </td> class="cmr-12">version of AMG4PSBLAS under use.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-19-3-"><td style="white-space:normal; text-align:left;" id="TBL-19-3-1" style="vertical-align:baseline;" id="TBL-19-3-"><td style="white-space:normal; text-align:left;" id="TBL-19-3-1"
class="td11"> <!--l. 974--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-19-3-2" class="td11"> <!--l. 985--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-19-3-2"
class="td11"> <!--l. 974--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span class="td11"> <!--l. 985--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-19-4-"><td style="white-space:normal; text-align:left;" id="TBL-19-4-1" style="vertical-align:baseline;" id="TBL-19-4-"><td style="white-space:normal; text-align:left;" id="TBL-19-4-1"
class="td11"> <!--l. 975--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-4-2" class="td11"> <!--l. 986--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-4-2"
class="td11"> <!--l. 975--><p class="noindent" ><span class="td11"> <!--l. 986--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><span
@ -144,15 +144,15 @@ class="cmr-12">for details.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-19-5-"><td style="white-space:normal; text-align:left;" id="TBL-19-5-1" style="vertical-align:baseline;" id="TBL-19-5-"><td style="white-space:normal; text-align:left;" id="TBL-19-5-1"
class="td11"> </td> </tr></table> </div> class="td11"> </td> </tr></table> </div>
<!--l. 980--><p class="noindent" > <!--l. 991--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span <h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.3 </span></span> <a class="cmr-12">5.9.3 </span></span> <a
id="x26-280005.9.3"></a><span id="x26-280005.9.3"></a><span
class="cmr-12">Method: sizeof</span></h5> class="cmr-12">Method: sizeof</span></h5>
<div class="center" <div class="center"
> >
<!--l. 982--><p class="noindent" > <!--l. 993--><p class="noindent" >
<!--l. 983--><p class="noindent" ><code class="lstinline"><span style="color:#000000">sz</span><span style="color:#000000"> </span><span style="color:#000000">=</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">sizeof</span><span style="color:#000000">([</span><span style="color:#000000">global</span><span style="color:#000000">])</span></code><br /> <!--l. 994--><p class="noindent" ><code class="lstinline"><span style="color:#000000">sz</span><span style="color:#000000"> </span><span style="color:#000000">=</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">sizeof</span><span style="color:#000000">([</span><span style="color:#000000">global</span><span style="color:#000000">])</span></code><br />
</div> </div>
<div class="tabular"> <table id="TBL-20" class="tabular" <div class="tabular"> <table id="TBL-20" class="tabular"
@ -160,13 +160,13 @@ class="cmr-12">Method: sizeof</span></h5>
id="TBL-20-1"><col id="TBL-20-1"><col
id="TBL-20-2"></colgroup><tr id="TBL-20-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-20-1-"><td style="white-space:normal; text-align:left;" id="TBL-20-1-1" style="vertical-align:baseline;" id="TBL-20-1-"><td style="white-space:normal; text-align:left;" id="TBL-20-1-1"
class="td11"> <!--l. 987--><p class="noindent" ><code class="lstinline"><span style="color:#000000">global</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-20-1-2" class="td11"> <!--l. 998--><p class="noindent" ><code class="lstinline"><span style="color:#000000">global</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-20-1-2"
class="td11"> <!--l. 987--><p class="noindent" ><code class="lstinline"><span style="color:#000000">logical</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span class="td11"> <!--l. 998--><p class="noindent" ><code class="lstinline"><span style="color:#000000">logical</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-20-2-"><td style="white-space:normal; text-align:left;" id="TBL-20-2-1" style="vertical-align:baseline;" id="TBL-20-2-"><td style="white-space:normal; text-align:left;" id="TBL-20-2-1"
class="td11"> <!--l. 988--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-20-2-2" class="td11"> <!--l. 999--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-20-2-2"
class="td11"> <!--l. 988--><p class="noindent" ><span class="td11"> <!--l. 999--><p class="noindent" ><span
class="cmr-12">Whether the global or local preconditioner memory occupation is</span> class="cmr-12">Whether the global or local preconditioner memory occupation is</span>
<span <span
class="cmr-12">desired. Default: </span><code class="lstinline"><span style="color:#000000">.</span><span style="color:#000000">false</span><span style="color:#000000">.</span></code><span class="cmr-12">desired. Default: </span><code class="lstinline"><span style="color:#000000">.</span><span style="color:#000000">false</span><span style="color:#000000">.</span></code><span
@ -176,7 +176,7 @@ class="cmr-12">.</span> </t
class="td11"> </td> </tr></table> </div> class="td11"> </td> </tr></table> </div>
<span <span
class="cmr-12">Return memory footprint in bytes.</span> class="cmr-12">Return memory footprint in bytes.</span>
<!--l. 995--><p class="noindent" > <!--l. 1006--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span <h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.4 </span></span> <a class="cmr-12">5.9.4 </span></span> <a
id="x26-290005.9.4"></a><span id="x26-290005.9.4"></a><span
@ -184,23 +184,23 @@ class="cmr-12">Method: allocate</span><span
class="cmr-12">_wrk</span></h5> class="cmr-12">_wrk</span></h5>
<div class="center" <div class="center"
> >
<!--l. 997--><p class="noindent" > <!--l. 1008--><p class="noindent" >
<!--l. 998--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">allocate_wrk</span><span style="color:#000000">(</span><span style="color:#000000">info</span><span style="color:#000000">[,</span><span style="color:#000000"> </span><span style="color:#000000">vmold</span><span style="color:#000000">])</span></code><br /> <!--l. 1009--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">allocate_wrk</span><span style="color:#000000">(</span><span style="color:#000000">info</span><span style="color:#000000">[,</span><span style="color:#000000"> </span><span style="color:#000000">vmold</span><span style="color:#000000">])</span></code><br />
</div> </div>
<!--l. 1001--><p class="noindent" ><span <!--l. 1012--><p class="noindent" ><span
class="cmr-12">Allocate internal work vectors. Each application of the preconditioner uses a number of</span> class="cmr-12">Allocate internal work vectors. Each application of the preconditioner uses a number of</span>
<span <span
class="cmr-12">work vectors which are allocated internally as necessary; therefore allocation and</span> class="cmr-12">work vectors which are allocated internally as necessary; therefore allocation and</span>
<span <span
class="cmr-12">deallocation of memory occurs multiple times during the execution of a Krylov method.</span> class="cmr-12">deallocation of memory occurs multiple times during the execution of an iterative</span>
<span <span
class="cmr-12">In most cases this strategy is perfectly acceptable, but on some platforms, most</span> class="cmr-12">method. In most cases this strategy is perfectly acceptable, but on some platforms,</span>
<span <span
class="cmr-12">notably GPUs, memory allocation is a slow operation, and the default behaviour would</span> class="cmr-12">most notably GPUs, memory allocation is a slow operation, and the default behaviour</span>
<span <span
class="cmr-12">lead to a slowdown. This method allows to trade space for time by preallocating</span> class="cmr-12">would lead to a slowdown. This method allows to trade space for time by preallocating</span>
<span <span
class="cmr-12">the internal workspace outside of the invocation of a Krylov method. When</span> class="cmr-12">the internal workspace outside of the invocation of a linear solver method. When</span>
<span <span
class="cmr-12">using GPUs or other specialized devices, the </span><code class="lstinline"><span style="color:#000000">vmold</span></code> <span class="cmr-12">using GPUs or other specialized devices, the </span><code class="lstinline"><span style="color:#000000">vmold</span></code> <span
class="cmr-12">argument is also necessary</span> class="cmr-12">argument is also necessary</span>
@ -216,7 +216,7 @@ class="cmr-12">taken care of based on the dynamic type of the </span><code class
class="cmr-12">argument to the </span><code class="lstinline"><span style="color:#000000">apply</span></code> class="cmr-12">argument to the </span><code class="lstinline"><span style="color:#000000">apply</span></code>
<span <span
class="cmr-12">method.</span> class="cmr-12">method.</span>
<!--l. 1017--><p class="noindent" ><span <!--l. 1028--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-21" class="tabular" <div class="tabular"> <table id="TBL-21" class="tabular"
@ -224,13 +224,13 @@ class="cmbx-12">Arguments</span>
id="TBL-21-1"><col id="TBL-21-1"><col
id="TBL-21-2"></colgroup><tr id="TBL-21-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-21-1-"><td style="white-space:normal; text-align:left;" id="TBL-21-1-1" style="vertical-align:baseline;" id="TBL-21-1-"><td style="white-space:normal; text-align:left;" id="TBL-21-1-1"
class="td11"> <!--l. 1020--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-21-1-2" class="td11"> <!--l. 1031--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-21-1-2"
class="td11"> <!--l. 1020--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span class="td11"> <!--l. 1031--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-21-2-"><td style="white-space:normal; text-align:left;" id="TBL-21-2-1" style="vertical-align:baseline;" id="TBL-21-2-"><td style="white-space:normal; text-align:left;" id="TBL-21-2-1"
class="td11"> <!--l. 1021--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-21-2-2" class="td11"> <!--l. 1032--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-21-2-2"
class="td11"> <!--l. 1021--><p class="noindent" ><span class="td11"> <!--l. 1032--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><span
@ -238,34 +238,35 @@ class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td> class="cmr-12">for details.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-21-3-"><td style="white-space:normal; text-align:left;" id="TBL-21-3-1" style="vertical-align:baseline;" id="TBL-21-3-"><td style="white-space:normal; text-align:left;" id="TBL-21-3-1"
class="td11"> <!--l. 1022--><p class="noindent" ><code class="lstinline"><span style="color:#000000">vmold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-21-3-2" class="td11"> <!--l. 1033--><p class="noindent" ><code class="lstinline"><span style="color:#000000">vmold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-21-3-2"
class="td11"> <!--l. 1022--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span class="td11"> <!--l. 1033--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">_base_vect_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span class="cmti-12">x</span><code class="lstinline"><span style="color:#000000">_base_vect_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-21-4-"><td style="white-space:normal; text-align:left;" id="TBL-21-4-1" style="vertical-align:baseline;" id="TBL-21-4-"><td style="white-space:normal; text-align:left;" id="TBL-21-4-1"
class="td11"> <!--l. 1023--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-21-4-2" class="td11"> <!--l. 1034--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-21-4-2"
class="td11"> <!--l. 1023--><p class="noindent" ><span class="td11"> <!--l. 1034--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal vector components; this</span> class="cmr-12">The desired dynamic type for internal vector components; this</span>
<span <span
class="cmr-12">allows e.g. running on GPUs.</span> </td> class="cmr-12">allows e.g. running on GPUs.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-21-5-"><td style="white-space:normal; text-align:left;" id="TBL-21-5-1" style="vertical-align:baseline;" id="TBL-21-5-"><td style="white-space:normal; text-align:left;" id="TBL-21-5-1"
class="td11"> </td> </tr></table> </div> class="td11"> </td> </tr></table> </div>
<!--l. 1029--><p class="noindent" > <!--l. 1040--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span <h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.5 </span></span> <a class="cmr-12">5.9.5 </span></span> <a
id="x26-300005.9.5"></a><span id="x26-300005.9.5"></a><span
class="cmr-12">Method: free</span><span class="cmr-12">Method: deallocate</span><span
class="cmr-12">_wrk</span></h5> class="cmr-12">_wrk</span></h5>
<div class="center" <div class="center"
> >
<!--l. 1031--><p class="noindent" > <!--l. 1042--><p class="noindent" >
<!--l. 1032--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">free_wrk</span><span style="color:#000000">(</span><span style="color:#000000">info</span><span style="color:#000000">)</span></code><br /> <!--l. 1043--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">deallocate_wrk</span><span style="color:#000000">(</span><span style="color:#000000">info</span><span style="color:#000000">)</span></code><br />
<code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">free_wrk</span><span style="color:#000000">(</span><span style="color:#000000">info</span><span style="color:#000000">)</span></code><br />
</div> </div>
<!--l. 1035--><p class="noindent" ><span <!--l. 1047--><p class="noindent" ><span
class="cmr-12">Deallocate internal work vectors.</span> class="cmr-12">Deallocate internal work vectors.</span>
<!--l. 1038--><p class="noindent" ><span <!--l. 1050--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-22" class="tabular" <div class="tabular"> <table id="TBL-22" class="tabular"
@ -273,13 +274,13 @@ class="cmbx-12">Arguments</span>
id="TBL-22-1"><col id="TBL-22-1"><col
id="TBL-22-2"></colgroup><tr id="TBL-22-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-22-1-"><td style="white-space:normal; text-align:left;" id="TBL-22-1-1" style="vertical-align:baseline;" id="TBL-22-1-"><td style="white-space:normal; text-align:left;" id="TBL-22-1-1"
class="td11"> <!--l. 1041--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-22-1-2" class="td11"> <!--l. 1053--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-22-1-2"
class="td11"> <!--l. 1041--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span class="td11"> <!--l. 1053--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-22-2-"><td style="white-space:normal; text-align:left;" id="TBL-22-2-1" style="vertical-align:baseline;" id="TBL-22-2-"><td style="white-space:normal; text-align:left;" id="TBL-22-2-1"
class="td11"> <!--l. 1042--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-22-2-2" class="td11"> <!--l. 1054--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-22-2-2"
class="td11"> <!--l. 1042--><p class="noindent" ><span class="td11"> <!--l. 1054--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><span

@ -73,15 +73,15 @@ href="userhtmlli5.html#XMUMPS"><span
class="cmr-12">2</span></a><span class="cmr-12">2</span></a><span
class="cmr-12">]</span></span> <span class="cmr-12">]</span></span> <span
class="cmr-12">A sparse LU factorization package available from </span><a class="cmr-12">A sparse LU factorization package available from </span><a
href="mumps.enseeiht.fr" class="url" ><span href="mumps-solver.org" class="url" ><span
class="cmtt-12">mumps.enseeiht.fr</span></a><span class="cmtt-12">mumps-solver.org</span></a><span
class="cmr-12">;</span> class="cmr-12">; it</span>
<span <span
class="cmr-12">it provides sequential and parallel factorizations and triangular system</span> class="cmr-12">provides sequential and parallel factorizations and triangular system solution</span>
<span <span
class="cmr-12">solution for single and double precision, real and complex data. We tested</span> class="cmr-12">for single and double precision, real and complex data. We tested versions</span>
<span <span
class="cmr-12">versions 4.10.0 and 5.0.1.</span> class="cmr-12">4.10.0 and 5.0.1.</span>
</dd><dt class="description"> </dd><dt class="description">
<span <span
class="cmbx-12">SuperLU</span> </dt><dd class="cmbx-12">SuperLU</span> </dt><dd

@ -3593,7 +3593,7 @@ class="cmtt-12">issues</span></span><span style="color:#000000"><span
class="cmtt-12">&#x003E;.</span></span> class="cmtt-12">&#x003E;.</span></span>
</pre> </pre>
<!--l. 160--><p class="noindent" ><span <!--l. 160--><p class="noindent" ><span
class="cmr-12">For instance, if a user has built and installed PSBLAS 3.7 under the </span><span class="obeylines-h"><code class="verb">/opt</code></span> <span class="cmr-12">For instance, if a user has built and installed PSBLAS 3.9 under the </span><span class="obeylines-h"><code class="verb">/opt</code></span> <span
class="cmr-12">directory and is</span> class="cmr-12">directory and is</span>
<span <span
class="cmr-12">using the SuiteSparse package (which includes UMFPACK), then AMG4PSBLAS</span> class="cmr-12">using the SuiteSparse package (which includes UMFPACK), then AMG4PSBLAS</span>
@ -3603,7 +3603,7 @@ class="cmr-12">might be configured with:</span>
<pre class="verbatim" id="verbatim-4"> <pre class="verbatim" id="verbatim-4">
./configure&#x00A0;--with-psblas=/opt/psblas-3.7/&#x00A0;\ ./configure&#x00A0;--with-psblas=/opt/psblas-3.9/&#x00A0;\
--with-umfpackincdir=/usr/include/suitesparse/ --with-umfpackincdir=/usr/include/suitesparse/
</pre> </pre>
<!--l. 172--><p class="nopar" > <span <!--l. 172--><p class="nopar" > <span

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 114--><div class="crosslinks"><p class="noindent"><span <!--l. 119--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu7.html" ><span href="userhtmlsu7.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -25,7 +25,7 @@ class="cmr-12">] </span></p></div>
class="cmr-12">4.1 </span></span> <a class="cmr-12">4.1 </span></span> <a
id="x15-140004.1"></a><span id="x15-140004.1"></a><span
class="cmr-12">Examples</span></h4> class="cmr-12">Examples</span></h4>
<!--l. 116--><p class="noindent" ><span <!--l. 121--><p class="noindent" ><span
class="cmr-12">The code reported in Figure</span><span class="cmr-12">The code reported in Figure</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="#x15-14001r1"><span href="#x15-14001r1"><span
@ -50,11 +50,11 @@ class="cmr-12">with the CG solver provided by PSBLAS (the matrix of the system t
class="cmr-12">solved is assumed to be positive definite). As previously observed, the modules</span> class="cmr-12">solved is assumed to be positive definite). As previously observed, the modules</span>
<code class="lstinline"><span style="color:#000000">psb_base_mod</span></code><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">, </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">and </span><code class="lstinline"><span style="color:#000000">psb_linsolve_mod</span></code> <span
class="cmr-12">must be used by the example</span> class="cmr-12">must be used by the example</span>
<span <span
class="cmr-12">program.</span> class="cmr-12">program.</span>
<!--l. 126--><p class="indent" > <span <!--l. 131--><p class="indent" > <span
class="cmr-12">The part of the code dealing with reading and assembling the sparse matrix and the</span> class="cmr-12">The part of the code dealing with reading and assembling the sparse matrix and the</span>
<span <span
class="cmr-12">right-hand side vector and the deallocation of the relevant data structures, performed</span> class="cmr-12">right-hand side vector and the deallocation of the relevant data structures, performed</span>
@ -65,6 +65,9 @@ class="cmr-12">is not reported here for the sake of conciseness. The complete co
<span <span
class="cmr-12">found in the example program file </span><span class="obeylines-h"><code class="verb">amg_dexample_ml.f90</code></span><span class="cmr-12">found in the example program file </span><span class="obeylines-h"><code class="verb">amg_dexample_ml.f90</code></span><span
class="cmr-12">, in the directory</span> class="cmr-12">, in the directory</span>
<span class="obeylines-h"><code class="verb">samples/simple/file</code></span><span class="obeylines-h"><code class="verb">read</code></span> <span <span class="obeylines-h"><code class="verb">samples/simple/file</code></span><span class="obeylines-h"><code class="verb">read</code></span> <span
class="cmr-12">of the AMG4PSBLAS implementation (see Section</span><span class="cmr-12">of the AMG4PSBLAS implementation (see Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
@ -83,10 +86,7 @@ href="userhtmlli5.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>
<!--l. 143--><p class="indent" > <span
<!--l. 138--><p class="indent" > <span
class="cmr-12">The setup and application of the default multilevel preconditioner for the real single</span> class="cmr-12">The setup and application of the default multilevel preconditioner for the real single</span>
<span <span
class="cmr-12">precision and the complex, single and double precision, versions are obtained</span> class="cmr-12">precision and the complex, single and double precision, versions are obtained</span>
@ -103,7 +103,7 @@ class="cmr-12">.</span>
<!--l. 144--><p class="indent" > <a <!--l. 148--><p class="indent" > <a
id="x15-14001r1"></a><hr class="float"><div class="float" id="x15-14001r1"></a><hr class="float"><div class="float"
> >
@ -111,14 +111,14 @@ class="cmr-12">.</span>
<div class="center" <div class="center"
> >
<!--l. 145--><p class="noindent" > <!--l. 149--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-7"> <div class="minipage"><pre class="verbatim" id="verbatim-7">
&#x00A0;&#x00A0;use&#x00A0;psb_base_mod &#x00A0;&#x00A0;use&#x00A0;psb_base_mod
&#x00A0;&#x00A0;use&#x00A0;amg_prec_mod &#x00A0;&#x00A0;use&#x00A0;amg_prec_mod
&#x00A0;&#x00A0;use&#x00A0;psb_krylov_mod &#x00A0;&#x00A0;use&#x00A0;psb_linsolve_mod
...&#x00A0;... ...&#x00A0;...
! !
!&#x00A0;sparse&#x00A0;matrix !&#x00A0;sparse&#x00A0;matrix
@ -168,7 +168,7 @@ class="cmr-12">.</span>
&#x00A0;&#x00A0;call&#x00A0;psb_exit(ctxt) &#x00A0;&#x00A0;call&#x00A0;psb_exit(ctxt)
&#x00A0;&#x00A0;stop &#x00A0;&#x00A0;stop
</pre> </pre>
<!--l. 255--><p class="nopar" > </div> <!--l. 259--><p class="nopar" > </div>
@ -181,7 +181,7 @@ class="content">setup and application of the default multilevel preconditioner (
</div><hr class="endfloat" /> </div><hr class="endfloat" />
<!--l. 264--><p class="indent" > <span <!--l. 267--><p class="indent" > <span
class="cmr-12">Different versions of the multilevel preconditioner can be obtained by changing the</span> class="cmr-12">Different versions of the multilevel preconditioner can be obtained by changing the</span>
<span <span
class="cmr-12">default values of the preconditioner parameters. The code reported in Figure</span><span class="cmr-12">default values of the preconditioner parameters. The code reported in Figure</span><span
@ -190,42 +190,40 @@ href="#x15-14002r2"><span
class="cmr-12">2</span><!--tex4ht:ref: fig:ex2 --></a> <span class="cmr-12">2</span><!--tex4ht:ref: fig:ex2 --></a> <span
class="cmr-12">shows</span> class="cmr-12">shows</span>
<span <span
class="cmr-12">how to set a V-cycle preconditioner which applies 1 block-Jacobi sweep as pre-</span> class="cmr-12">how to set a V-cycle preconditioner which applies 1 block-Jacobi sweep as pre- and</span>
<span <span
class="cmr-12">and post-smoother, and solves the coarsest-level system with 8 block-Jacobi</span> class="cmr-12">post-smoother, and solves the coarsest-level system with 8 block-Jacobi sweeps. Note</span>
<span <span
class="cmr-12">sweeps. Note that the ILU(0) factorization (plus triangular solve) is used as</span> class="cmr-12">that the ILU(0) factorization (plus triangular solve) is used as local solver for the</span>
<span <span
class="cmr-12">local solver for the block-Jacobi sweeps, since this is the default associated</span> class="cmr-12">block-Jacobi sweeps, since this is the default associated with block-Jacobi and set</span>
<span <span
class="cmr-12">with block-Jacobi and set by</span><span class="cmr-12">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">&#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> class="cmr-12">. Furthermore, specifying block-Jacobi as coarsest-level solver implies that</span>
<span
class="cmr-12">coarsest-level solver implies that the coarsest-level matrix is distributed among</span>
<span <span
class="cmr-12">the processes. Figure</span><span class="cmr-12">the coarsest-level matrix is distributed among the processes. Figure</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="#x15-14003r3"><span href="#x15-14003r3"><span
class="cmr-12">3</span><!--tex4ht:ref: fig:ex3 --></a> <span class="cmr-12">3</span><!--tex4ht:ref: fig:ex3 --></a> <span
class="cmr-12">shows how to set a W-cycle preconditioner using the</span> class="cmr-12">shows how</span>
<span <span
class="cmr-12">Coarsening based on Compatible Weighted Matching, aggregates of size at</span> class="cmr-12">to set a W-cycle preconditioner using the Coarsening based on Compatible</span>
<span <span
class="cmr-12">most 8 and smoothed prolongators. It applies 2 hybrid Gauss-Seidel sweeps as</span> class="cmr-12">Weighted Matching, aggregates of size at most 8 and smoothed prolongators. It</span>
<span <span
class="cmr-12">pre- and post-smoother, and solves the coarsest-level system with the parallel</span> class="cmr-12">applies 2 hybrid Gauss-Seidel sweeps as pre- and post-smoother, and solves the</span>
<span <span
class="cmr-12">flexible Conjugate Gradient method (KRM) coupled with the block-Jacobi</span> class="cmr-12">coarsest-level system with the parallel flexible Conjugate Gradient method (KRM)</span>
<span <span
class="cmr-12">preconditioner having ILU(0) on the blocks. Default parameters are used for stopping</span> class="cmr-12">coupled with the block-Jacobi preconditioner having ILU(0) on the blocks, with</span>
<span <span
class="cmr-12">criterion of the coarsest solver. Note that, also in this case, specifying KRM as</span> class="cmr-12">default parameters used for the coarsest solver. Note that specifying KRM as</span>
<span <span
class="cmr-12">coarsest-level solver implies that the coarsest-level matrix is distributed among the</span> class="cmr-12">coarsest-level solver implies that the coarsest-level matrix is distributed among the</span>
<span <span
class="cmr-12">processes.</span> class="cmr-12">processes.</span>
<!--l. 291--><p class="indent" > <span <!--l. 299--><p class="indent" > <span
class="cmr-12">The code fragments shown in Figures</span><span class="cmr-12">The code fragments shown in Figures</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="#x15-14002r2"><span href="#x15-14002r2"><span
@ -237,7 +235,7 @@ class="cmr-12">are included in the example program</span>
<span <span
class="cmr-12">file </span><span class="obeylines-h"><code class="verb">amg_dexample_ml.f90</code></span> <span class="cmr-12">file </span><span class="obeylines-h"><code class="verb">amg_dexample_ml.f90</code></span> <span
class="cmr-12">too.</span> class="cmr-12">too.</span>
<!--l. 294--><p class="indent" > <span <!--l. 302--><p class="indent" > <span
class="cmr-12">Finally, Figure</span><span class="cmr-12">Finally, Figure</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="#x15-14004r4"><span href="#x15-14004r4"><span
@ -251,7 +249,7 @@ class="cmr-12">must be used to solve the preconditioned system, since the precon
class="cmr-12">nonsymmetric. The corresponding example program is available in the file</span> class="cmr-12">nonsymmetric. The corresponding example program is available in the file</span>
<span class="obeylines-h"><code class="verb">amg_dexample_1lev.f90</code></span><span <span class="obeylines-h"><code class="verb">amg_dexample_1lev.f90</code></span><span
class="cmr-12">.</span> class="cmr-12">.</span>
<!--l. 301--><p class="indent" > <span <!--l. 309--><p class="indent" > <span
class="cmr-12">For all the previous preconditioners, example programs where the sparse matrix</span> class="cmr-12">For all the previous preconditioners, example programs where the sparse matrix</span>
<span <span
class="cmr-12">and the right-hand side are generated by discretizing a PDE with Dirichlet</span> class="cmr-12">and the right-hand side are generated by discretizing a PDE with Dirichlet</span>
@ -261,7 +259,7 @@ class="cmr-12">.</span>
<!--l. 304--><p class="indent" > <a <!--l. 312--><p class="indent" > <a
id="x15-14002r2"></a><hr class="float"><div class="float" id="x15-14002r2"></a><hr class="float"><div class="float"
> >
@ -269,7 +267,7 @@ class="cmr-12">.</span>
<div class="center" <div class="center"
> >
<!--l. 318--><p class="noindent" > <!--l. 326--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-8"> <div class="minipage"><pre class="verbatim" id="verbatim-8">
...&#x00A0;... ...&#x00A0;...
!&#x00A0;build&#x00A0;a&#x00A0;V-cycle&#x00A0;preconditioner&#x00A0;with&#x00A0;1&#x00A0;block-Jacobi&#x00A0;sweep&#x00A0;(with !&#x00A0;build&#x00A0;a&#x00A0;V-cycle&#x00A0;preconditioner&#x00A0;with&#x00A0;1&#x00A0;block-Jacobi&#x00A0;sweep&#x00A0;(with
@ -283,7 +281,7 @@ class="cmr-12">.</span>
&#x00A0;&#x00A0;call&#x00A0;P%smoothers_build(A,desc_A,info) &#x00A0;&#x00A0;call&#x00A0;P%smoothers_build(A,desc_A,info)
...&#x00A0;... ...&#x00A0;...
</pre> </pre>
<!--l. 333--><p class="nopar" > </div></div> <!--l. 341--><p class="nopar" > </div></div>
<br /><div class="caption" <br /><div class="caption"
><span class="id">Listing 2: </span><span ><span class="id">Listing 2: </span><span
class="content">setup of a multilevel preconditioner based on the default decoupled coarsening</span></div><!--tex4ht:label?: x15-14002r2 --> class="content">setup of a multilevel preconditioner based on the default decoupled coarsening</span></div><!--tex4ht:label?: x15-14002r2 -->
@ -294,7 +292,7 @@ class="content">setup of a multilevel preconditioner based on the default decoup
<!--l. 340--><p class="indent" > <a <!--l. 348--><p class="indent" > <a
id="x15-14003r3"></a><hr class="float"><div class="float" id="x15-14003r3"></a><hr class="float"><div class="float"
> >
@ -302,7 +300,7 @@ class="content">setup of a multilevel preconditioner based on the default decoup
<div class="center" <div class="center"
> >
<!--l. 362--><p class="noindent" > <!--l. 370--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-9"> <div class="minipage"><pre class="verbatim" id="verbatim-9">
...&#x00A0;... ...&#x00A0;...
!&#x00A0;build&#x00A0;a&#x00A0;W-cycle&#x00A0;preconditioner&#x00A0;with&#x00A0;2&#x00A0;hybrid&#x00A0;Gauss-Seidel&#x00A0;sweeps !&#x00A0;build&#x00A0;a&#x00A0;W-cycle&#x00A0;preconditioner&#x00A0;with&#x00A0;2&#x00A0;hybrid&#x00A0;Gauss-Seidel&#x00A0;sweeps
@ -322,7 +320,7 @@ class="content">setup of a multilevel preconditioner based on the default decoup
&#x00A0;&#x00A0;call&#x00A0;P%smoothers_build(A,desc_A,info) &#x00A0;&#x00A0;call&#x00A0;P%smoothers_build(A,desc_A,info)
...&#x00A0;... ...&#x00A0;...
</pre> </pre>
<!--l. 383--><p class="nopar" > </div></div> <!--l. 391--><p class="nopar" > </div></div>
<br /> <div class="caption" <br /> <div class="caption"
><span class="id">Listing 3: </span><span ><span class="id">Listing 3: </span><span
class="content">setup of a multilevel preconditioner based on the coupled coarsening using class="content">setup of a multilevel preconditioner based on the coupled coarsening using
@ -334,7 +332,7 @@ weighted matching</span></div><!--tex4ht:label?: x15-14003r3 -->
<!--l. 390--><p class="indent" > <a <!--l. 398--><p class="indent" > <a
id="x15-14004r4"></a><hr class="float"><div class="float" id="x15-14004r4"></a><hr class="float"><div class="float"
> >
@ -342,7 +340,7 @@ weighted matching</span></div><!--tex4ht:label?: x15-14003r3 -->
<div class="center" <div class="center"
> >
<!--l. 402--><p class="noindent" > <!--l. 410--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-10"> <div class="minipage"><pre class="verbatim" id="verbatim-10">
...&#x00A0;... ...&#x00A0;...
!&#x00A0;set&#x00A0;RAS&#x00A0;with&#x00A0;overlap&#x00A0;2&#x00A0;and&#x00A0;ILU(0)&#x00A0;on&#x00A0;the&#x00A0;local&#x00A0;blocks !&#x00A0;set&#x00A0;RAS&#x00A0;with&#x00A0;overlap&#x00A0;2&#x00A0;and&#x00A0;ILU(0)&#x00A0;on&#x00A0;the&#x00A0;local&#x00A0;blocks
@ -353,7 +351,7 @@ weighted matching</span></div><!--tex4ht:label?: x15-14003r3 -->
!&#x00A0;solve&#x00A0;Ax=b&#x00A0;with&#x00A0;preconditioned&#x00A0;BiCGSTAB !&#x00A0;solve&#x00A0;Ax=b&#x00A0;with&#x00A0;preconditioned&#x00A0;BiCGSTAB
&#x00A0;&#x00A0;call&#x00A0;psb_krylov(&#8217;BICGSTAB&#8217;,A,P,b,x,tol,desc_A,info) &#x00A0;&#x00A0;call&#x00A0;psb_krylov(&#8217;BICGSTAB&#8217;,A,P,b,x,tol,desc_A,info)
</pre> </pre>
<!--l. 414--><p class="nopar" > </div></div> <!--l. 422--><p class="nopar" > </div></div>
<br /> <div class="caption" <br /> <div class="caption"
><span class="id">Listing 4: </span><span ><span class="id">Listing 4: </span><span
class="content">setup of a one-level Schwarz preconditioner.</span></div><!--tex4ht:label?: x15-14004r4 --> class="content">setup of a one-level Schwarz preconditioner.</span></div><!--tex4ht:label?: x15-14004r4 -->
@ -364,7 +362,7 @@ class="content">setup of a one-level Schwarz preconditioner.</span></div><!--tex
<!--l. 424--><div class="crosslinks"><p class="noindent"><span <!--l. 432--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu7.html" ><span href="userhtmlsu7.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -375,6 +373,6 @@ class="cmr-12">] [</span><a
href="userhtmlse4.html#userhtmlsu6.html" ><span href="userhtmlse4.html#userhtmlsu6.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. 424--><p class="indent" > <a <!--l. 432--><p class="indent" > <a
id="tailuserhtmlsu6.html"></a> id="tailuserhtmlsu6.html"></a>
</body></html> </body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 424--><div class="crosslinks"><p class="noindent"><span <!--l. 432--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu6.html" ><span href="userhtmlsu6.html" ><span
class="cmr-12">prev</span></a><span class="cmr-12">prev</span></a><span
@ -28,21 +28,21 @@ class="cmr-12">] </span></p></div>
class="cmr-12">4.2 </span></span> <a class="cmr-12">4.2 </span></span> <a
id="x16-150004.2"></a><span id="x16-150004.2"></a><span
class="cmr-12">GPU example</span></h4> class="cmr-12">GPU example</span></h4>
<!--l. 426--><p class="noindent" ><span <!--l. 434--><p class="noindent" ><span
class="cmr-12">The code discussed here shows how to set up a program exploiting the combined GPU</span> class="cmr-12">The code discussed here shows how to set up a program exploiting the combined GPU</span>
<span <span
class="cmr-12">capabilities of PSBLAS and AMG4PSBLAS. The code example is available in the</span> class="cmr-12">capabilities of PSBLAS and AMG4PSBLAS. The code example is available in the</span>
<span <span
class="cmr-12">source distribution directory </span><span class="obeylines-h"><code class="verb">amg4psblas/examples/gpu</code></span><span class="cmr-12">source distribution directory </span><span class="obeylines-h"><code class="verb">amg4psblas/examples/gpu</code></span><span
class="cmr-12">.</span> class="cmr-12">.</span>
<!--l. 431--><p class="indent" > <span <!--l. 439--><p class="indent" > <span
class="cmr-12">First of all, we need to include the appropriate modules and declare some auxiliary</span> class="cmr-12">First of all, we need to include the appropriate modules and declare some auxiliary</span>
<span <span
class="cmr-12">variables:</span> class="cmr-12">variables:</span>
<!--l. 433--><p class="indent" > <a <!--l. 441--><p class="indent" > <a
id="x16-15001r5"></a><hr class="float"><div class="float" id="x16-15001r5"></a><hr class="float"><div class="float"
> >
@ -50,12 +50,12 @@ class="cmr-12">variables:</span>
<div class="center" <div class="center"
> >
<!--l. 452--><p class="noindent" > <!--l. 460--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-11"> <div class="minipage"><pre class="verbatim" id="verbatim-11">
program&#x00A0;amg_dexample_gpu program&#x00A0;amg_dexample_gpu
&#x00A0;&#x00A0;use&#x00A0;psb_base_mod &#x00A0;&#x00A0;use&#x00A0;psb_base_mod
&#x00A0;&#x00A0;use&#x00A0;amg_prec_mod &#x00A0;&#x00A0;use&#x00A0;amg_prec_mod
&#x00A0;&#x00A0;use&#x00A0;psb_krylov_mod &#x00A0;&#x00A0;use&#x00A0;psb_linsolve_mod
&#x00A0;&#x00A0;use&#x00A0;psb_util_mod &#x00A0;&#x00A0;use&#x00A0;psb_util_mod
&#x00A0;&#x00A0;use&#x00A0;psb_gpu_mod &#x00A0;&#x00A0;use&#x00A0;psb_gpu_mod
&#x00A0;&#x00A0;use&#x00A0;data_input &#x00A0;&#x00A0;use&#x00A0;data_input
@ -69,7 +69,7 @@ program&#x00A0;amg_dexample_gpu
&#x00A0; &#x00A0;
</pre> </pre>
<!--l. 471--><p class="nopar" > </div></div> <!--l. 479--><p class="nopar" > </div></div>
<br /> <div class="caption" <br /> <div class="caption"
><span class="id">Listing 5: </span><span ><span class="id">Listing 5: </span><span
class="content">setup of a GPU-enabled test program part one.</span></div><!--tex4ht:label?: x16-15001r5 --> class="content">setup of a GPU-enabled test program part one.</span></div><!--tex4ht:label?: x16-15001r5 -->
@ -77,23 +77,21 @@ class="content">setup of a GPU-enabled test program part one.</span></div><!--te
</div><hr class="endfloat" /> </div><hr class="endfloat" />
<!--l. 478--><p class="indent" > <span <!--l. 486--><p class="indent" > <span
class="cmr-12">In this particular example we are choosing to employ a </span><span class="obeylines-h"><code class="verb">HLG</code></span> <span class="cmr-12">In this particular example we are choosing to employ a </span><span class="obeylines-h"><code class="verb">HLG</code></span> <span
class="cmr-12">data structure for</span> class="cmr-12">data structure for</span>
<span <span
class="cmr-12">sparse matrices on GPUs; for more information please refer to the PSBLAS-EXT users&#8217;</span> class="cmr-12">sparse matrices on GPUs; for more information please refer to the PSBLAS users&#8217;</span>
<span <span
class="cmr-12">guide.</span> class="cmr-12">guide.</span>
<!--l. 482--><p class="indent" > <span <!--l. 490--><p class="indent" > <span
class="cmr-12">We then have to initialize the GPU environment, and pass the appropriate MOLD</span> class="cmr-12">We then have to initialize the GPU environment, and pass the appropriate MOLD</span>
<span <span
class="cmr-12">variables to the build methods (see also the PSBLAS and PSBLAS-EXT users&#8217;</span> class="cmr-12">variables to the build methods (see also the PSBLAS users&#8217; guide).</span>
<span
class="cmr-12">guides).</span>
<!--l. 485--><p class="indent" > <a <!--l. 493--><p class="indent" > <a
id="x16-15002r6"></a><hr class="float"><div class="float" id="x16-15002r6"></a><hr class="float"><div class="float"
> >
@ -101,7 +99,7 @@ class="cmr-12">guides).</span>
<div class="center" <div class="center"
> >
<!--l. 501--><p class="noindent" > <!--l. 509--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-12"> <div class="minipage"><pre class="verbatim" id="verbatim-12">
&#x00A0;&#x00A0;call&#x00A0;psb_init(ctxt) &#x00A0;&#x00A0;call&#x00A0;psb_init(ctxt)
&#x00A0;&#x00A0;call&#x00A0;psb_info(ctxt,iam,np) &#x00A0;&#x00A0;call&#x00A0;psb_info(ctxt,iam,np)
@ -116,7 +114,7 @@ class="cmr-12">guides).</span>
&#x00A0; &#x00A0;
</pre> </pre>
<!--l. 516--><p class="nopar" > </div></div> <!--l. 524--><p class="nopar" > </div></div>
<br /> <div class="caption" <br /> <div class="caption"
><span class="id">Listing 6: </span><span ><span class="id">Listing 6: </span><span
class="content">setup of a GPU-enabled test program part two.</span></div><!--tex4ht:label?: x16-15002r6 --> class="content">setup of a GPU-enabled test program part two.</span></div><!--tex4ht:label?: x16-15002r6 -->
@ -124,7 +122,7 @@ class="content">setup of a GPU-enabled test program part two.</span></div><!--te
</div><hr class="endfloat" /> </div><hr class="endfloat" />
<!--l. 523--><p class="indent" > <span <!--l. 531--><p class="indent" > <span
class="cmr-12">Finally, we convert the input matrix, the descriptor and the vectors to use a</span> class="cmr-12">Finally, we convert the input matrix, the descriptor and the vectors to use a</span>
<span <span
class="cmr-12">GPU-enabled internal storage format. We then preallocate the preconditioner</span> class="cmr-12">GPU-enabled internal storage format. We then preallocate the preconditioner</span>
@ -135,7 +133,7 @@ class="cmr-12">GPU environment</span>
<!--l. 527--><p class="indent" > <a <!--l. 535--><p class="indent" > <a
id="x16-15003r7"></a><hr class="float"><div class="float" id="x16-15003r7"></a><hr class="float"><div class="float"
> >
@ -143,7 +141,7 @@ class="cmr-12">GPU environment</span>
<div class="center" <div class="center"
> >
<!--l. 557--><p class="noindent" > <!--l. 565--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-13"> <div class="minipage"><pre class="verbatim" id="verbatim-13">
&#x00A0;&#x00A0;call&#x00A0;desc_a%cnv(mold=igmold) &#x00A0;&#x00A0;call&#x00A0;desc_a%cnv(mold=igmold)
&#x00A0;&#x00A0;call&#x00A0;a%cscnv(info,mold=agmold) &#x00A0;&#x00A0;call&#x00A0;a%cscnv(info,mold=agmold)
@ -170,7 +168,7 @@ class="cmr-12">GPU environment</span>
&#x00A0; &#x00A0;
</pre> </pre>
<!--l. 584--><p class="nopar" > </div></div> <!--l. 592--><p class="nopar" > </div></div>
<br /> <div class="caption" <br /> <div class="caption"
><span class="id">Listing 7: </span><span ><span class="id">Listing 7: </span><span
class="content">setup of a GPU-enabled test program part three.</span></div><!--tex4ht:label?: x16-15003r7 --> class="content">setup of a GPU-enabled test program part three.</span></div><!--tex4ht:label?: x16-15003r7 -->
@ -178,7 +176,7 @@ class="content">setup of a GPU-enabled test program part three.</span></div><!--
</div><hr class="endfloat" /> </div><hr class="endfloat" />
<!--l. 592--><p class="indent" > <span <!--l. 600--><p class="indent" > <span
class="cmr-12">It is very important to employ smoothers and coarsest solvers that are suited to the</span> class="cmr-12">It is very important to employ smoothers and coarsest solvers that are suited to the</span>
<span <span
class="cmr-12">GPU, i.e. methods that do NOT employ triangular system solve kernels. Methods that</span> class="cmr-12">GPU, i.e. methods that do NOT employ triangular system solve kernels. Methods that</span>
@ -186,22 +184,24 @@ class="cmr-12">GPU, i.e. methods that do NOT employ triangular system solve kern
class="cmr-12">satisfy this constraint include:</span> class="cmr-12">satisfy this constraint include:</span>
<ul class="itemize1"> <ul class="itemize1">
<li class="itemize"> <li class="itemize">
<!--l. 596--><p class="noindent" ><span class="obeylines-h"><code class="verb">JACOBI</code></span> <!--l. 604--><p class="noindent" ><span class="obeylines-h"><code class="verb">JACOBI</code></span>
</li> </li>
<li class="itemize"> <li class="itemize">
<!--l. 597--><p class="noindent" ><span class="obeylines-h"><code class="verb">BJAC</code></span> <span <!--l. 605--><p class="noindent" ><span class="obeylines-h"><code class="verb">BJAC</code></span> <span
class="cmr-12">with the following methods on the local blocks:</span> class="cmr-12">with the following methods on the local blocks:</span>
<ul class="itemize2"> <ul class="itemize2">
<li class="itemize"> <li class="itemize">
<!--l. 599--><p class="noindent" ><span class="obeylines-h"><code class="verb">INVK</code></span> <!--l. 607--><p class="noindent" ><span class="obeylines-h"><code class="verb">INVK</code></span>
</li> </li>
<li class="itemize"> <li class="itemize">
<!--l. 600--><p class="noindent" ><span class="obeylines-h"><code class="verb">INVT</code></span> <!--l. 608--><p class="noindent" ><span class="obeylines-h"><code class="verb">INVT</code></span>
</li> </li>
<li class="itemize"> <li class="itemize">
<!--l. 601--><p class="noindent" ><span class="obeylines-h"><code class="verb">AINV</code></span></li></ul> <!--l. 609--><p class="noindent" ><span class="obeylines-h"><code class="verb">AINV</code></span></li></ul>
</li></ul> </li>
<!--l. 604--><p class="noindent" ><span <li class="itemize">
<!--l. 611--><p class="noindent" ><span class="obeylines-h"><code class="verb">POLY</code></span></li></ul>
<!--l. 613--><p class="noindent" ><span
class="cmr-12">and their </span><span class="cmr-12">and their </span><span
class="cmmi-12">&#x2113;</span><sub><span class="cmmi-12">&#x2113;</span><sub><span
class="cmr-8">1</span></sub> <span class="cmr-8">1</span></sub> <span

File diff suppressed because it is too large Load Diff

@ -108,7 +108,7 @@ for multilevel preconditioners may change to reflect their presence.
Note that for configuring SuiteSparse you should provide the right path to the BLAS Note that for configuring SuiteSparse you should provide the right path to the BLAS
and LAPACK libraries in the \verb|SuiteSparse_config/SuiteSparse_config.mk| file. and LAPACK libraries in the \verb|SuiteSparse_config/SuiteSparse_config.mk| file.
\item[MUMPS] \cite{MUMPS} \item[MUMPS] \cite{MUMPS}
A sparse LU factorization package available from \url{mumps.enseeiht.fr}; A sparse LU factorization package available from \url{mumps-solver.org};
it provides sequential and parallel factorizations and triangular system solution it provides sequential and parallel factorizations and triangular system solution
for single and double precision, real and complex data. for single and double precision, real and complex data.
We tested versions 4.10.0 and 5.0.1. We tested versions 4.10.0 and 5.0.1.

@ -0,0 +1 @@
tmp/userguide.pdf
Loading…
Cancel
Save