mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-06 14:44:55 +00:00
Updated MUMPS link in documentation
This commit is contained in:
Binary file not shown.
+92
-35
@@ -45,62 +45,122 @@ class="newline" />
|
||||
|
||||
|
||||
<div class="tableofcontents">
|
||||
<span
|
||||
class="cmr-12"> </span><span class="likesectionToc" ><a
|
||||
<span class="likesectionToc" ><a
|
||||
href="userhtmlli1.html#x2-1000" id="QQ2-2-1"><span
|
||||
class="cmr-12">Abstract</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="likesectionToc" ><a
|
||||
<br /> <span class="likesectionToc" ><a
|
||||
href="userhtmlli2.html#x3-2000" id="QQ2-3-2"><span
|
||||
class="cmr-12">Contents</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<br /> <span class="sectionToc" ><span
|
||||
class="cmr-12">1 </span><a
|
||||
href="userhtmlse1.html#x4-30001" id="QQ2-4-3"><span
|
||||
class="cmr-12">General Overview</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<br /> <span class="sectionToc" ><span
|
||||
class="cmr-12">2 </span><a
|
||||
href="userhtmlse2.html#x5-40002" id="QQ2-5-4"><span
|
||||
class="cmr-12">Code Distribution</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<br /> <span class="likesubsectionToc" ><a
|
||||
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
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><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
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><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
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><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
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<br /> <span class="sectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<br /> <span class="sectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<br /> <span class="sectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="likesectionToc" ><a
|
||||
href="userhtmlli3.html#x13-39000" id="QQ2-13-56"><span
|
||||
<br /> <span class="likesectionToc" ><a
|
||||
href="userhtmlli5.html#x31-39000" id="QQ2-31-56"><span
|
||||
class="cmr-12">References</span></a></span>
|
||||
</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;}
|
||||
span.thank-mark{ vertical-align: super }
|
||||
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; }
|
||||
table.tabular td p{margin-top:0em;}
|
||||
table.tabular {margin-left: auto; margin-right: auto;}
|
||||
@@ -132,7 +133,6 @@ table.pmatrix {width:100%;}
|
||||
span.bar-css {text-decoration:overline;}
|
||||
img.cdots{vertical-align:middle;}
|
||||
.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}
|
||||
div.caption {text-indent:-2em; margin-left:3em; margin-right:1em; text-align:left;}
|
||||
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 {width:100%;}
|
||||
.abstracttitle{text-align:center;margin-bottom:1em;}
|
||||
.subsectionToc, .likesubsectionToc {margin-left:2em;}
|
||||
.subsubsectionToc, .likesubsubsectionToc {margin-left:4em;}
|
||||
.paragraphToc, .likeparagraphToc {margin-left:6em;}
|
||||
.subparagraphToc, .likesubparagraphToc {margin-left:8em;}
|
||||
.subsectionToc, .likesubsectionToc {margin-left:1em;}
|
||||
.subsubsectionToc, .likesubsubsectionToc {margin-left:2em;}
|
||||
.paragraphToc, .likeparagraphToc {margin-left:3em;}
|
||||
.subparagraphToc, .likesubparagraphToc {margin-left:4em;}
|
||||
.ovalbox { padding-left:3pt; padding-right:3pt; border:solid thin; }
|
||||
.Ovalbox-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; }
|
||||
|
||||
+92
-35
@@ -45,62 +45,122 @@ class="newline" />
|
||||
|
||||
|
||||
<div class="tableofcontents">
|
||||
<span
|
||||
class="cmr-12"> </span><span class="likesectionToc" ><a
|
||||
<span class="likesectionToc" ><a
|
||||
href="userhtmlli1.html#x2-1000" id="QQ2-2-1"><span
|
||||
class="cmr-12">Abstract</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="likesectionToc" ><a
|
||||
<br /> <span class="likesectionToc" ><a
|
||||
href="userhtmlli2.html#x3-2000" id="QQ2-3-2"><span
|
||||
class="cmr-12">Contents</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<br /> <span class="sectionToc" ><span
|
||||
class="cmr-12">1 </span><a
|
||||
href="userhtmlse1.html#x4-30001" id="QQ2-4-3"><span
|
||||
class="cmr-12">General Overview</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<br /> <span class="sectionToc" ><span
|
||||
class="cmr-12">2 </span><a
|
||||
href="userhtmlse2.html#x5-40002" id="QQ2-5-4"><span
|
||||
class="cmr-12">Code Distribution</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<br /> <span class="likesubsectionToc" ><a
|
||||
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
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><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
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><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
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><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
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<br /> <span class="sectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<br /> <span class="sectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<br /> <span class="sectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="likesectionToc" ><a
|
||||
href="userhtmlli3.html#x13-39000" id="QQ2-13-56"><span
|
||||
<br /> <span class="likesectionToc" ><a
|
||||
href="userhtmlli5.html#x31-39000" id="QQ2-31-56"><span
|
||||
class="cmr-12">References</span></a></span>
|
||||
</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>
|
||||
<span
|
||||
class="cmr-12">MLD2P4, which originally implemented a multilevel version of some domain</span>
|
||||
|
||||
|
||||
|
||||
<span
|
||||
class="cmr-12">decomposition preconditioners of additive-Schwarz type, and was based on a parallel</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>
|
||||
<span
|
||||
class="cmr-12">AMG4PSBLAS enables the user to easily specify different features of an algebraic</span>
|
||||
|
||||
|
||||
|
||||
<span
|
||||
class="cmr-12">multilevel preconditioner, thus allowing to experiment with different preconditioners for</span>
|
||||
<span
|
||||
|
||||
+58
-114
@@ -31,185 +31,129 @@ class="cmr-12">] </span></p></div>
|
||||
id="x3-2000"></a><span
|
||||
class="cmr-12">Contents</span></h3>
|
||||
<div class="tableofcontents">
|
||||
<span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<span class="sectionToc" ><span
|
||||
class="cmr-12">1 </span><a
|
||||
href="userhtmlse1.html#x4-30001"><span
|
||||
class="cmr-12">General Overview</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<br /> <span class="sectionToc" ><span
|
||||
class="cmr-12">2 </span><a
|
||||
href="userhtmlse2.html#x5-40002"><span
|
||||
class="cmr-12">Code Distribution</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<br /> <span class="sectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<br /> <span class="sectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<br /> <span class="sectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
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">_build</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
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">_build</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span class="subsubsectionToc" ><span
|
||||
<br /> <span class="subsubsectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span class="subsubsectionToc" ><span
|
||||
<br /> <span class="subsubsectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span class="subsubsectionToc" ><span
|
||||
<br /> <span class="subsubsectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span class="subsubsectionToc" ><span
|
||||
<br /> <span class="subsubsectionToc" ><span
|
||||
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">_wrk</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span class="subsubsectionToc" ><span
|
||||
<br /> <span class="subsubsectionToc" ><span
|
||||
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">_wrk</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<br /> <span class="sectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<br /> <span class="sectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<br /> <span class="sectionToc" ><span
|
||||
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>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="sectionToc" ><span
|
||||
<br /> <span class="sectionToc" ><span
|
||||
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>
|
||||
</div>
|
||||
|
||||
|
||||
+48
-718
@@ -1,7 +1,7 @@
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
||||
"http://www.w3.org/TR/html4/loose.dtd">
|
||||
<html >
|
||||
<head><title>References</title>
|
||||
<head><title>Development team</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
||||
<meta name="generator" 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">
|
||||
</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
|
||||
href="userhtmlse9.html" ><span
|
||||
class="cmr-12">prev</span></a><span
|
||||
class="cmr-12">] [</span><a
|
||||
href="userhtmlse9.html#tailuserhtmlse9.html" ><span
|
||||
class="cmr-12">prev-tail</span></a><span
|
||||
href="userhtmlli4.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
class="cmr-12">] [</span><a
|
||||
href="#tailuserhtmlli3.html"><span
|
||||
class="cmr-12">tail</span></a><span
|
||||
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">] </span></p></div>
|
||||
<h3 class="likesectionHead"><a
|
||||
id="x13-39000"></a><span
|
||||
class="cmr-12">References</span></h3>
|
||||
<!--l. 2--><p class="noindent" >
|
||||
<div class="thebibliography">
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[1]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XPCFD2006"></a><span
|
||||
class="cmr-12">A. Aprovitola, P. D’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–27.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[2]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XMUMPS"></a><span
|
||||
class="cmr-12">P.</span><span
|
||||
class="cmr-12"> R.</span><span
|
||||
class="cmr-12"> Amestoy, C.</span><span
|
||||
class="cmr-12"> Ashcraft, O.</span><span
|
||||
class="cmr-12"> Boiteau, A.</span><span
|
||||
class="cmr-12"> Buttari, J.</span><span
|
||||
class="cmr-12"> L’Excellent,</span>
|
||||
<span
|
||||
class="cmr-12">C.</span><span
|
||||
class="cmr-12"> 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–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"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XBERTACCINIFILIPPONE"></a><span
|
||||
class="cmr-12">D. Bertaccini</span><span
|
||||
class="cmr-12"> and</span><span
|
||||
class="cmr-12"> 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"> 3, 693–711.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[4]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XBREZINA_VANEK"></a><span
|
||||
class="cmr-12">M.</span><span
|
||||
class="cmr-12"> Brezina, P.</span><span
|
||||
class="cmr-12"> Van</span><span
|
||||
class="cmr-12">ě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–263.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[5]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XBriggs2000"></a><span
|
||||
class="cmr-12">W.</span><span
|
||||
class="cmr-12"> L.</span><span
|
||||
class="cmr-12"> Briggs, V.</span><span
|
||||
class="cmr-12"> E.</span><span
|
||||
class="cmr-12"> Henson, S.</span><span
|
||||
class="cmr-12"> F.</span><span
|
||||
class="cmr-12"> 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"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="Xpara_04"></a><span
|
||||
class="cmr-12">A.</span><span
|
||||
class="cmr-12"> Buttari, P.</span><span
|
||||
class="cmr-12"> D’Ambra, D.</span><span
|
||||
class="cmr-12"> di Serafino, S.</span><span
|
||||
class="cmr-12"> 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"> Dongarra,</span>
|
||||
<h4 class="likesubsectionHead"><a
|
||||
id="x6-5000"></a><span
|
||||
class="cmr-12">Development team</span></h4>
|
||||
<!--l. 23--><p class="noindent" ><span
|
||||
class="cmr-12">The main development team for AMG4PSBLAS is:</span>
|
||||
<ul class="itemize1">
|
||||
<li class="itemize">
|
||||
<!--l. 25--><p class="noindent" ><span
|
||||
class="cmr-12">Pasqua D’Ambra, IAC-CNR, IT;</span>
|
||||
|
||||
|
||||
|
||||
<span
|
||||
class="cmr-12">K.</span><span
|
||||
class="cmr-12"> Madsen, J.</span><span
|
||||
class="cmr-12"> Wasniewski, editors, Proceedings of PARA</span><span
|
||||
class="cmr-12"> 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–602.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[7]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="Xaaecc_07"></a><span
|
||||
class="cmr-12">A.</span><span
|
||||
class="cmr-12"> Buttari, P.</span><span
|
||||
class="cmr-12"> D’Ambra, D.</span><span
|
||||
class="cmr-12"> di</span><span
|
||||
class="cmr-12"> Serafino, S.</span><span
|
||||
class="cmr-12"> 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–239.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[8]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XCAI_SARKIS"></a><span
|
||||
class="cmr-12">X.</span><span
|
||||
class="cmr-12"> C.</span><span
|
||||
class="cmr-12"> Cai, M.</span><span
|
||||
class="cmr-12"> 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–797.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[9]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XMatchBoxP"></a><span
|
||||
class="cmr-12">U..</span><span
|
||||
class="cmr-12"> V.</span><span
|
||||
class="cmr-12"> Catalyurek, F.</span><span
|
||||
class="cmr-12"> Dobrian, A.</span><span
|
||||
class="cmr-12"> Gebremedhin, M.</span><span
|
||||
class="cmr-12"> Halappanavar,</span>
|
||||
<span
|
||||
class="cmr-12">and A.</span><span
|
||||
class="cmr-12"> 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’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"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="Xapnum_07"></a><span
|
||||
class="cmr-12">P.</span><span
|
||||
class="cmr-12"> D’Ambra, S.</span><span
|
||||
class="cmr-12"> Filippone,</span>
|
||||
<span
|
||||
class="cmr-12">D.</span><span
|
||||
class="cmr-12"> di</span><span
|
||||
class="cmr-12"> 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"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XMLD2P4_TOMS"></a><span
|
||||
class="cmr-12">P.</span><span
|
||||
class="cmr-12"> D’Ambra, D.</span><span
|
||||
class="cmr-12"> di</span><span
|
||||
class="cmr-12"> Serafino, S.</span><span
|
||||
class="cmr-12"> 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"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XDV2013"></a><span
|
||||
class="cmr-12">P.</span><span
|
||||
class="cmr-12"> D’Ambra and P. S.</span><span
|
||||
class="cmr-12"> 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–76.</span>
|
||||
|
||||
|
||||
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[13]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XDFV2018"></a><span
|
||||
class="cmr-12">P.</span><span
|
||||
class="cmr-12"> D’Ambra, S.</span><span
|
||||
class="cmr-12"> Filippone and P. S.</span><span
|
||||
class="cmr-12"> 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–39:25.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[14]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XDDF2020"></a><span
|
||||
class="cmr-12">P.</span><span
|
||||
class="cmr-12"> D’Ambra, F.</span><span
|
||||
class="cmr-12"> Durastante, S.</span><span
|
||||
class="cmr-12"> 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"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XDDFMT2024"></a><span
|
||||
class="cmr-12">P.</span><span
|
||||
class="cmr-12"> D’Ambra, F.</span><span
|
||||
class="cmr-12"> Durastante, S.</span><span
|
||||
class="cmr-12"> Filippone, S.</span><span
|
||||
class="cmr-12"> Massei, S.</span><span
|
||||
class="cmr-12"> 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"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XUMFPACK"></a><span
|
||||
class="cmr-12">T.</span><span
|
||||
class="cmr-12"> A.</span><span
|
||||
class="cmr-12"> 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–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"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XSUPERLU"></a><span
|
||||
class="cmr-12">J.</span><span
|
||||
class="cmr-12"> W.</span><span
|
||||
class="cmr-12"> Demmel, S.</span><span
|
||||
class="cmr-12"> C.</span><span
|
||||
class="cmr-12"> Eisenstat, J.</span><span
|
||||
class="cmr-12"> R.</span><span
|
||||
class="cmr-12"> Gilbert,</span>
|
||||
<span
|
||||
class="cmr-12">X.</span><span
|
||||
class="cmr-12"> S.</span><span
|
||||
class="cmr-12"> Li, J.</span><span
|
||||
class="cmr-12"> W.</span><span
|
||||
class="cmr-12"> H.</span><span
|
||||
class="cmr-12"> 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–755.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[18]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="Xblas3"></a><span
|
||||
class="cmr-12">J.</span><span
|
||||
class="cmr-12"> J.</span><span
|
||||
class="cmr-12"> Dongarra, J.</span><span
|
||||
class="cmr-12"> Du Croz, I.</span><span
|
||||
class="cmr-12"> S.</span><span
|
||||
class="cmr-12"> Duff, S.</span><span
|
||||
class="cmr-12"> 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–17.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[19]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="Xblas2"></a><span
|
||||
class="cmr-12">J.</span><span
|
||||
class="cmr-12"> J.</span><span
|
||||
class="cmr-12"> Dongarra, J.</span><span
|
||||
class="cmr-12"> Du Croz, S.</span><span
|
||||
class="cmr-12"> Hammarling, R.</span><span
|
||||
class="cmr-12"> J.</span><span
|
||||
class="cmr-12"> 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–17.</span>
|
||||
|
||||
|
||||
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[20]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XPARCO2001"></a><span
|
||||
class="cmr-12">S.</span><span
|
||||
class="cmr-12"> Filippone, P.</span><span
|
||||
class="cmr-12"> D’Ambra, M.</span><span
|
||||
class="cmr-12"> 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"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XPSBLASGUIDE"></a><span
|
||||
class="cmr-12">S.</span><span
|
||||
class="cmr-12"> Filippone, A.</span><span
|
||||
class="cmr-12"> Buttari, </span><span
|
||||
class="cmti-12">PSBLAS 3.5.0 User’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"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XPSBLAS3"></a><span
|
||||
class="cmr-12">S.</span><span
|
||||
class="cmr-12"> Filippone, A.</span><span
|
||||
class="cmr-12"> 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"> 23.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[23]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="Xpsblas_00"></a><span
|
||||
class="cmr-12">S.</span><span
|
||||
class="cmr-12"> Filippone, M.</span><span
|
||||
class="cmr-12"> 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–550.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[24]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </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"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XMPI2"></a><span
|
||||
class="cmr-12">W.</span><span
|
||||
class="cmr-12"> Gropp, S.</span><span
|
||||
class="cmr-12"> Huss-Lederman, A.</span><span
|
||||
class="cmr-12"> Lumsdaine, E.</span><span
|
||||
class="cmr-12"> Lusk, B.</span><span
|
||||
class="cmr-12"> Nitzberg,</span>
|
||||
<span
|
||||
class="cmr-12">W.</span><span
|
||||
class="cmr-12"> Saphir, M.</span><span
|
||||
class="cmr-12"> 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"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="Xblas1"></a><span
|
||||
class="cmr-12">C.</span><span
|
||||
class="cmr-12"> L.</span><span
|
||||
class="cmr-12"> Lawson, R.</span><span
|
||||
class="cmr-12"> J.</span><span
|
||||
class="cmr-12"> Hanson, D.</span><span
|
||||
class="cmr-12"> Kincaid, F.</span><span
|
||||
class="cmr-12"> T.</span><span
|
||||
class="cmr-12"> 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–323.</span>
|
||||
|
||||
|
||||
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[27]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XLOTTES"></a><span
|
||||
class="cmr-12">J.</span><span
|
||||
class="cmr-12"> 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"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XSUPERLUDIST"></a><span
|
||||
class="cmr-12">X.</span><span
|
||||
class="cmr-12"> S.</span><span
|
||||
class="cmr-12"> Li, J.</span><span
|
||||
class="cmr-12"> W.</span><span
|
||||
class="cmr-12"> 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–140.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[29]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XNotay2008"></a><span
|
||||
class="cmr-12">Y.</span><span
|
||||
class="cmr-12"> Notay, P.</span><span
|
||||
class="cmr-12"> S.</span><span
|
||||
class="cmr-12"> 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–487.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[30]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XSaad_book"></a><span
|
||||
class="cmr-12">Y.</span><span
|
||||
class="cmr-12"> 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"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="Xdd2_96"></a><span
|
||||
class="cmr-12">B.</span><span
|
||||
class="cmr-12"> Smith, P.</span><span
|
||||
class="cmr-12"> Bjorstad, W.</span><span
|
||||
class="cmr-12"> 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"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XMPI1"></a><span
|
||||
class="cmr-12">M.</span><span
|
||||
class="cmr-12"> Snir, S.</span><span
|
||||
class="cmr-12"> Otto, S.</span><span
|
||||
class="cmr-12"> Huss-Lederman, D.</span><span
|
||||
class="cmr-12"> Walker, J.</span><span
|
||||
class="cmr-12"> 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"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XStuben_01"></a><span
|
||||
class="cmr-12">K.</span><span
|
||||
class="cmr-12"> 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"> Sch</span><span
|
||||
class="cmr-12">üller,</span>
|
||||
<span
|
||||
class="cmr-12">U.</span><span
|
||||
class="cmr-12"> Trottenberg, C.</span><span
|
||||
class="cmr-12"> 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"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XTUMINARO_TONG"></a><span
|
||||
class="cmr-12">R.</span><span
|
||||
class="cmr-12"> S.</span><span
|
||||
class="cmr-12"> Tuminaro, C.</span><span
|
||||
class="cmr-12"> 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"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XVANEK_MANDEL_BREZINA"></a><span
|
||||
class="cmr-12">P.</span><span
|
||||
class="cmr-12"> Van</span><span
|
||||
class="cmr-12">ěk, J.</span><span
|
||||
class="cmr-12"> Mandel, M.</span><span
|
||||
class="cmr-12"> 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–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
|
||||
href="userhtmlse9.html" ><span
|
||||
class="cmr-12">prev</span></a><span
|
||||
class="cmr-12">] [</span><a
|
||||
href="userhtmlse9.html#tailuserhtmlse9.html" ><span
|
||||
class="cmr-12">prev-tail</span></a><span
|
||||
href="userhtmlli4.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
class="cmr-12">] [</span><a
|
||||
href="userhtmlli3.html" ><span
|
||||
class="cmr-12">front</span></a><span
|
||||
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">] </span></p></div>
|
||||
<!--l. 156--><p class="indent" > <a
|
||||
<!--l. 45--><p class="indent" > <a
|
||||
id="tailuserhtmlli3.html"></a>
|
||||
</body></html>
|
||||
|
||||
+20
-12
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</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
|
||||
href="userhtmlli3.html" ><span
|
||||
class="cmr-12">prev</span></a><span
|
||||
@@ -27,20 +27,28 @@ class="cmr-12">] </span></p></div>
|
||||
<h4 class="likesubsectionHead"><a
|
||||
id="x7-6000"></a><span
|
||||
class="cmr-12">Citing AMG4PSBLAS</span></h4>
|
||||
<!--l. 31--><p class="noindent" ><span
|
||||
class="cmr-12">When use the library, please cite the following:</span>
|
||||
<!--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{DDF2021,
|
||||
       author = {D’Ambra, Pasqua and Durastante, Fabio and Filippone, Salvatore},
|
||||
       title = {{{AMG Preconditioners for Linear Solvers towards Extreme Scale}},
|
||||
       journal = {arXiv e-preprints},
|
||||
       eprint = {2006.16147v3},
|
||||
       archivePrefix = {arXiv},
|
||||
       year={2021}
|
||||
     }
|
||||
@article {MR4331965,
|
||||
     AUTHOR = {D’Ambra, Pasqua and Durastante, Fabio and Filippone, Salvatore},
|
||||
     TITLE = {A{MG} preconditioners for linear solvers towards extreme
|
||||
            scale},
|
||||
     JOURNAL = {SIAM J. Sci. Comput.},
|
||||
     FJOURNAL = {SIAM Journal on Scientific Computing},
|
||||
     VOLUME = {43},
|
||||
     YEAR = {2021},
|
||||
     NUMBER = {5},
|
||||
     PAGES = {S679--S703},
|
||||
     ISSN = {1064-8275,1095-7197},
|
||||
     MRCLASS = {65F50 (65F08 65F10 65N55 65Y05)},
|
||||
     MRNUMBER = {4331965},
|
||||
     MRREVIEWER = {Yongzhong\ Song},
|
||||
     DOI = {10.1137/20M134914X},
|
||||
}
|
||||
|
||||
@Misc{psctoolkit-web-page,
|
||||
       author = {D’Ambra, Pasqua and Durastante, Fabio and Filippone, Salvatore},
|
||||
@@ -50,7 +58,7 @@ class="cmr-12">When use the library, please cite the following:</span>
|
||||
       year = {2021}
|
||||
     }
|
||||
</pre>
|
||||
<!--l. 70--><p class="nopar" >
|
||||
<!--l. 92--><p class="nopar" >
|
||||
|
||||
|
||||
|
||||
|
||||
+21
-21
@@ -83,11 +83,11 @@ class="cmr-12">) provides parallel Algebraic MultiGrid (AMG) preconditioners (se
|
||||
<span
|
||||
class="cmr-12">e.g., </span><span class="cite"><span
|
||||
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">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli3.html#XStuben_01"><span
|
||||
href="userhtmlli5.html#XStuben_01"><span
|
||||
class="cmr-12">33</span></a><span
|
||||
class="cmr-12">]</span></span><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"> </span><span class="cite"><span
|
||||
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">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli3.html#XNotay2008"><span
|
||||
href="userhtmlli5.html#XNotay2008"><span
|
||||
class="cmr-12">29</span></a><span
|
||||
class="cmr-12">]</span></span><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"> </span><span class="cite"><span
|
||||
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">]</span></span><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"> </span><span class="cite"><span
|
||||
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">,</span>
|
||||
<span
|
||||
class="cmr-12"> </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">]</span></span><span
|
||||
class="cmr-12">, and already included in the previous versions of the package</span><span
|
||||
class="cmr-12"> </span><span class="cite"><span
|
||||
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">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli3.html#XMLD2P4_TOMS"><span
|
||||
href="userhtmlli5.html#XMLD2P4_TOMS"><span
|
||||
class="cmr-12">11</span></a><span
|
||||
class="cmr-12">]</span></span><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"> </span><span class="cite"><span
|
||||
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">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli3.html#XDFV2018"><span
|
||||
href="userhtmlli5.html#XDFV2018"><span
|
||||
class="cmr-12">13</span></a><span
|
||||
class="cmr-12">]</span></span> <span
|
||||
class="cmr-12">and described in detail in</span><span
|
||||
class="cmr-12"> </span><span class="cite"><span
|
||||
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">]</span></span><span
|
||||
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"> </span><span class="cite"><span
|
||||
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">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli3.html#XPSBLAS3"><span
|
||||
href="userhtmlli5.html#XPSBLAS3"><span
|
||||
class="cmr-12">22</span></a><span
|
||||
class="cmr-12">]</span></span><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
|
||||
class="cmr-12">Section</span><span
|
||||
class="cmr-12"> </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">).</span>
|
||||
<!--l. 102--><p class="indent" > <span
|
||||
@@ -313,7 +313,7 @@ class="cmr-12">, while details on the configuration and installation</span>
|
||||
<span
|
||||
class="cmr-12">of the package are given in Section</span><span
|
||||
class="cmr-12"> </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">. The basics for building and applying the</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"> Section</span><span
|
||||
class="cmr-12"> </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">, where the Fortran codes of a few sample programs are also shown.</span>
|
||||
<span
|
||||
class="cmr-12">A reference guide for the user interface routines is provided in Section</span><span
|
||||
class="cmr-12"> </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">.</span>
|
||||
<span
|
||||
@@ -336,13 +336,13 @@ class="cmr-12">Information on the extension of the package through the addition
|
||||
<span
|
||||
class="cmr-12">smoothers and solvers is reported in Section</span><span
|
||||
class="cmr-12"> </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">. The error handling mechanism</span>
|
||||
<span
|
||||
class="cmr-12">used by the package is briefly described in Section</span><span
|
||||
class="cmr-12"> </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">. The copyright terms</span>
|
||||
<span
|
||||
@@ -350,7 +350,7 @@ class="cmr-12">concerning the distribution and modification of AMG4PSBLAS are re
|
||||
<span
|
||||
class="cmr-12">Appendix</span><span
|
||||
class="cmr-12"> </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">.</span>
|
||||
|
||||
|
||||
+12
-90
@@ -34,7 +34,7 @@ class="cmr-12">Code Distribution</span></h3>
|
||||
<!--l. 5--><p class="noindent" ><span
|
||||
class="cmr-12">AMG4PSBLAS is available from the web site</span>
|
||||
<blockquote class="quotation">
|
||||
<!--l. 8--><p class="indent" > <a
|
||||
<!--l. 8--><p class="indent" > <a
|
||||
href="https://psctoolkit.github.io/products/amg4psblas/" ><span
|
||||
class="cmr-12">https://psctoolkit.github.io/products/amg4psblas/</span></a></blockquote>
|
||||
<!--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
|
||||
class="cmr-12">under a modified BSD license, as specified in Appendix</span><span
|
||||
class="cmr-12"> </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">; please note that some of the</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_
|
||||
" class="math-display" ></div>
|
||||
<!--l. 19--><p class="nopar" > <span
|
||||
class="cmr-12">whose current value is </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">1.2</span></span></span><span
|
||||
class="cmr-12">whose current value is </span><span class="obeylines-h"><code class="verb">1.2</code></span><span
|
||||
class="cmr-12">.</span>
|
||||
<!--l. 22--><p class="noindent" >
|
||||
<h4 class="likesubsectionHead"><a
|
||||
id="x5-5000"></a><span
|
||||
class="cmr-12">Development team</span></h4>
|
||||
<!--l. 23--><p class="noindent" ><span
|
||||
class="cmr-12">The main development team for AMG4PSBLAS is:</span>
|
||||
<ul class="itemize1">
|
||||
<li class="itemize">
|
||||
<!--l. 25--><p class="noindent" ><span
|
||||
class="cmr-12">Pasqua D’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="likesubsectionTOCS">
|
||||
<span class="likesubsectionToc" ><a
|
||||
href="userhtmlli3.html#x6-5000"><span
|
||||
class="cmr-12">Development team</span></a></span>
|
||||
<br /> <span class="likesubsectionToc" ><a
|
||||
href="userhtmlli4.html#x7-6000"><span
|
||||
class="cmr-12">Citing AMG4PSBLAS</span></a></span>
|
||||
</div>
|
||||
|
||||
|
||||
<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 {MR4331965,
|
||||
     AUTHOR = {D’Ambra, Pasqua and Durastante, Fabio and Filippone, Salvatore},
|
||||
     TITLE = {A{MG} preconditioners for linear solvers towards extreme
|
||||
            scale},
|
||||
     JOURNAL = {SIAM J. Sci. Comput.},
|
||||
     FJOURNAL = {SIAM Journal on Scientific Computing},
|
||||
     VOLUME = {43},
|
||||
     YEAR = {2021},
|
||||
     NUMBER = {5},
|
||||
     PAGES = {S679--S703},
|
||||
     ISSN = {1064-8275,1095-7197},
|
||||
     MRCLASS = {65F50 (65F08 65F10 65N55 65Y05)},
|
||||
     MRNUMBER = {4331965},
|
||||
     MRREVIEWER = {Yongzhong\ Song},
|
||||
     DOI = {10.1137/20M134914X},
|
||||
}
|
||||
|
||||
@Misc{psctoolkit-web-page,
|
||||
       author = {D’Ambra, Pasqua and Durastante, Fabio and Filippone, Salvatore},
|
||||
       title =  {{PSCToolkit} {W}eb page},
|
||||
       url =    {https://psctoolkit.github.io/},
|
||||
       howpublished = {\url{https://psctoolkit.github.io/}},
|
||||
       year = {2021}
|
||||
     }
|
||||
</pre>
|
||||
<!--l. 92--><p class="nopar" >
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--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">] </span></p></div>
|
||||
<!--l. 1--><p class="indent" > <a
|
||||
id="tailuserhtmlse2.html"></a>
|
||||
id="tailuserhtmlse2.html"></a>
|
||||
</body></html>
|
||||
|
||||
+30
-3984
File diff suppressed because it is too large
Load Diff
+120
-647
@@ -29,7 +29,7 @@ class="cmr-12">up</span></a><span
|
||||
class="cmr-12">] </span></p></div>
|
||||
<h3 class="sectionHead"><span class="titlemark"><span
|
||||
class="cmr-12">4 </span></span> <a
|
||||
id="x7-130004"></a><span
|
||||
id="x14-130004"></a><span
|
||||
class="cmr-12">Getting Started</span></h3>
|
||||
<!--l. 5--><p class="noindent" ><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"> </span><span class="cite"><span
|
||||
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">]</span></span><span
|
||||
class="cmr-12">.</span>
|
||||
@@ -47,36 +47,25 @@ class="cmr-12">.</span>
|
||||
class="cmr-12">The following steps are required:</span>
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x7-13002x1">
|
||||
class="enumerate" id="x14-13002x1">
|
||||
<!--l. 11--><p class="noindent" ><span
|
||||
class="cmti-12">Declare the preconditioner data structure</span><span
|
||||
class="cmr-12">. It is a derived data type,</span>
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">amg_</span></span></span><span
|
||||
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">prec_</span></span></span> <span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">type</span></span></span><span
|
||||
<span class="obeylines-h"><code class="verb">amg_</code></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="cmr-12">, where </span><span
|
||||
class="cmti-12">x </span><span
|
||||
class="cmr-12">may be </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">s</span></span></span><span
|
||||
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">d</span></span></span><span
|
||||
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">c</span></span></span> <span
|
||||
class="cmr-12">or </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">z</span></span></span><span
|
||||
class="cmr-12">may be </span><span class="obeylines-h"><code class="verb">s</code></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"><code class="verb">c</code></span> <span
|
||||
class="cmr-12">or </span><span class="obeylines-h"><code class="verb">z</code></span><span
|
||||
class="cmr-12">, according to the basic data</span>
|
||||
<span
|
||||
class="cmr-12">type of the sparse matrix (</span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">s</span></span></span> <span
|
||||
class="cmr-12">= real single precision; </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">d</span></span></span> <span
|
||||
class="cmr-12">type of the sparse matrix (</span><span class="obeylines-h"><code class="verb">s</code></span> <span
|
||||
class="cmr-12">= real single precision; </span><span class="obeylines-h"><code class="verb">d</code></span> <span
|
||||
class="cmr-12">= real double precision;</span>
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">c</span></span></span> <span
|
||||
class="cmr-12">= complex single precision; </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">z</span></span></span> <span
|
||||
<span class="obeylines-h"><code class="verb">c</code></span> <span
|
||||
class="cmr-12">= complex single precision; </span><span class="obeylines-h"><code class="verb">z</code></span> <span
|
||||
class="cmr-12">= complex double precision). This data</span>
|
||||
<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>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x7-13004x2">
|
||||
class="enumerate" id="x14-13004x2">
|
||||
<!--l. 19--><p class="noindent" ><span
|
||||
class="cmti-12">Allocate and initialize the preconditioner data structure, according to a</span>
|
||||
<span
|
||||
@@ -97,7 +86,7 @@ class="cmr-12">the user. The preconditioner types and the defaults associated wi
|
||||
<span
|
||||
class="cmr-12">are given in Table</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="#x7-13015r1"><span
|
||||
href="#x14-13015r1"><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">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>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x7-13006x3">
|
||||
class="enumerate" id="x14-13006x3">
|
||||
<!--l. 29--><p class="noindent" ><span
|
||||
class="cmti-12">Modify the selected preconditioner type, by properly setting preconditioner</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">are given in Section</span><span
|
||||
class="cmr-12"> </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">; a complete</span>
|
||||
|
||||
|
||||
|
||||
<span
|
||||
class="cmr-12">list of all the preconditioner parameters and their allowed and default values</span>
|
||||
<span
|
||||
class="cmr-12">is provided in Section</span><span
|
||||
class="cmr-12"> </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">, Tables</span><span
|
||||
class="cmr-12"> </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">-</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">.</span>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x7-13008x4">
|
||||
class="enumerate" id="x14-13008x4">
|
||||
<!--l. 40--><p class="noindent" ><span
|
||||
class="cmti-12">Build the preconditioner for a given matrix</span><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>
|
||||
<ol class="enumerate2" >
|
||||
<li
|
||||
class="enumerate" id="x7-13009x0">
|
||||
class="enumerate" id="x14-13009x0">
|
||||
<!--l. 43--><p class="noindent" ><span
|
||||
class="cmti-12">Build the AMG hierarchy for a given matrix. </span><span
|
||||
class="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>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x7-13010x0">
|
||||
class="enumerate" id="x14-13010x0">
|
||||
<!--l. 45--><p class="noindent" ><span
|
||||
class="cmti-12">Build the preconditioner for a given matrix. </span><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>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x7-13012x5">
|
||||
class="enumerate" id="x14-13012x5">
|
||||
<!--l. 50--><p class="noindent" ><span
|
||||
class="cmti-12">Apply the preconditioner at each iteration of a Krylov solver. </span><span
|
||||
class="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>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x7-13014x6">
|
||||
class="enumerate" id="x14-13014x6">
|
||||
<!--l. 54--><p class="noindent" ><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
|
||||
@@ -205,13 +194,13 @@ class="cmr-12">All the previous routines are available as methods of the precond
|
||||
<span
|
||||
class="cmr-12">detailed description of them is given in Section</span><span
|
||||
class="cmr-12"> </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">. Examples showing the basic use of</span>
|
||||
<span
|
||||
class="cmr-12">AMG4PSBLAS are reported in Section</span><span
|
||||
class="cmr-12"> </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">.</span>
|
||||
<div class="table">
|
||||
@@ -219,7 +208,7 @@ class="cmr-12">.</span>
|
||||
|
||||
|
||||
<!--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
|
||||
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"
|
||||
class="td11"><span
|
||||
class="td11"> <span
|
||||
class="cmcsc-10x-x-109"><span
|
||||
class="small-caps">t</span><span
|
||||
class="small-caps">y</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="td11"><!--l. 68--><p class="noindent" ><span
|
||||
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="cmcsc-10x-x-109"><span
|
||||
class="small-caps">s</span><span
|
||||
class="small-caps">t</span><span
|
||||
class="small-caps">r</span><span
|
||||
class="small-caps">i</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="td11"><!--l. 68--><p class="noindent" ><span
|
||||
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="cmcsc-10x-x-109"><span
|
||||
class="small-caps">d</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">n</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
|
||||
style="vertical-align:baseline;" id="TBL-1-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-2-1"
|
||||
class="td11">No preconditioner </td><td style="white-space:normal; text-align:left;" id="TBL-1-2-2"
|
||||
class="td11"><!--l. 69--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">NONE</span><span style="color:#000000">’</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-1-2-3"
|
||||
class="td11"><!--l. 69--><p class="noindent" >Considered to use the PSBLAS Krylov
|
||||
solvers with no preconditioner. </td>
|
||||
class="td11">
|
||||
No preconditioner </td><td style="white-space:normal; text-align:left;" id="TBL-1-2-2"
|
||||
class="td11"> <!--l. 69--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">NONE</span><span style="color:#000000">’</span></code>
|
||||
</td><td style="white-space:normal; text-align:left;" id="TBL-1-2-3"
|
||||
class="td11"> <!--l. 69--><p class="noindent" >Considered to use the PSBLAS Krylov
|
||||
solvers with no preconditioner.
|
||||
</td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-1-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-3-1"
|
||||
class="td11">Diagonal </td><td style="white-space:normal; text-align:left;" id="TBL-1-3-2"
|
||||
class="td11"><!--l. 71--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">DIAG</span><span style="color:#000000">’</span></code>,
|
||||
<code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">JACOBI</span><span style="color:#000000">’</span></code>,
|
||||
<code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">L1</span><span style="color:#000000">-</span><span style="color:#000000">JACOBI</span><span style="color:#000000">’</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-1-3-3"
|
||||
class="td11"><!--l. 71--><p class="noindent" >Diagonal preconditioner. For any zero
|
||||
diagonal entry of the matrix to be
|
||||
preconditioned, the corresponding entry
|
||||
of the preconditioner is set to 1. </td>
|
||||
class="td11">
|
||||
Diagonal </td><td style="white-space:normal; text-align:left;" id="TBL-1-3-2"
|
||||
class="td11"> <!--l. 71--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">DIAG</span><span style="color:#000000">’</span></code>,
|
||||
<code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">JACOBI</span><span style="color:#000000">’</span></code>,
|
||||
<code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">L1</span><span style="color:#000000">-</span><span style="color:#000000">JACOBI</span><span style="color:#000000">’</span></code>
|
||||
</td><td style="white-space:normal; text-align:left;" id="TBL-1-3-3"
|
||||
class="td11"> <!--l. 71--><p class="noindent" >Diagonal preconditioner. For any zero
|
||||
diagonal entry of the matrix to be
|
||||
preconditioned, the corresponding entry
|
||||
of the preconditioner is set to 1.
|
||||
</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"
|
||||
class="td11">Gauss-Seidel </td><td style="white-space:normal; text-align:left;" id="TBL-1-4-2"
|
||||
class="td11"><!--l. 74--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">GS</span><span style="color:#000000">’</span></code>,
|
||||
<code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">L1</span><span style="color:#000000">-</span><span style="color:#000000">GS</span><span style="color:#000000">’</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-1-4-3"
|
||||
class="td11"><!--l. 74--><p class="noindent" >Hybrid Gauss-Seidel (forward), that is,
|
||||
global block Jacobi with Gauss-Seidel as
|
||||
local solver. </td>
|
||||
class="td11">
|
||||
Gauss-Seidel </td><td style="white-space:normal; text-align:left;" id="TBL-1-4-2"
|
||||
class="td11"> <!--l. 74--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">GS</span><span style="color:#000000">’</span></code>,
|
||||
<code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">L1</span><span style="color:#000000">-</span><span style="color:#000000">GS</span><span style="color:#000000">’</span></code>
|
||||
</td><td style="white-space:normal; text-align:left;" id="TBL-1-4-3"
|
||||
class="td11"> <!--l. 74--><p class="noindent" >Hybrid Gauss-Seidel (forward), that is,
|
||||
global block Jacobi with Gauss-Seidel as
|
||||
local solver.
|
||||
</td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-1-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-5-1"
|
||||
class="td11">Symmetrized Gauss-Seidel</td><td style="white-space:normal; text-align:left;" id="TBL-1-5-2"
|
||||
class="td11"><!--l. 77--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">FBGS</span><span style="color:#000000">’</span></code>,
|
||||
<code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">L1</span><span style="color:#000000">-</span><span style="color:#000000">FBGS</span><span style="color:#000000">’</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-1-5-3"
|
||||
class="td11"><!--l. 77--><p class="noindent" >Symmetrized hybrid Gauss-Seidel, that
|
||||
is, forward Gauss-Seidel followed by
|
||||
backward Gauss-Seidel. </td>
|
||||
class="td11">
|
||||
Symmetrized Gauss-Seidel </td><td style="white-space:normal; text-align:left;" id="TBL-1-5-2"
|
||||
class="td11"> <!--l. 77--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">FBGS</span><span style="color:#000000">’</span></code>,
|
||||
<code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">L1</span><span style="color:#000000">-</span><span style="color:#000000">FBGS</span><span style="color:#000000">’</span></code>
|
||||
</td><td style="white-space:normal; text-align:left;" id="TBL-1-5-3"
|
||||
class="td11"> <!--l. 77--><p class="noindent" >Symmetrized hybrid Gauss-Seidel, that
|
||||
is, forward Gauss-Seidel followed by
|
||||
backward Gauss-Seidel.
|
||||
</td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-1-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-6-1"
|
||||
class="td11">Block Jacobi </td><td style="white-space:normal; text-align:left;" id="TBL-1-6-2"
|
||||
class="td11"><!--l. 80--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">BJAC</span><span style="color:#000000">’</span></code>,
|
||||
<code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">L1</span><span style="color:#000000">-</span><span style="color:#000000">BJAC</span><span style="color:#000000">’</span></code> </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>
|
||||
class="td11">
|
||||
Block Jacobi </td><td style="white-space:normal; text-align:left;" id="TBL-1-6-2"
|
||||
class="td11"> <!--l. 80--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">BJAC</span><span style="color:#000000">’</span></code>,
|
||||
<code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">L1</span><span style="color:#000000">-</span><span style="color:#000000">BJAC</span><span style="color:#000000">’</span></code>
|
||||
</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
|
||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-1-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-7-1"
|
||||
class="td11">Additive Schwarz </td><td style="white-space:normal; text-align:left;" id="TBL-1-7-2"
|
||||
class="td11"><!--l. 81--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">AS</span><span style="color:#000000">’</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-1-7-3"
|
||||
class="td11"><!--l. 81--><p class="noindent" >Additive Schwarz (AS), with overlap 1
|
||||
and ILU(0) on the local blocks. </td>
|
||||
class="td11">
|
||||
Additive Schwarz </td><td style="white-space:normal; text-align:left;" id="TBL-1-7-2"
|
||||
class="td11"> <!--l. 81--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">AS</span><span style="color:#000000">’</span></code>
|
||||
</td><td style="white-space:normal; text-align:left;" id="TBL-1-7-3"
|
||||
class="td11"> <!--l. 81--><p class="noindent" >Additive Schwarz (AS), with overlap 1
|
||||
and ILU(0) on the local blocks.
|
||||
</td>
|
||||
</tr><tr
|
||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-1-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-8-1"
|
||||
class="td11">Multilevel </td><td style="white-space:normal; text-align:left;" id="TBL-1-8-2"
|
||||
class="td11"><!--l. 83--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">ML</span><span style="color:#000000">’</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-1-8-3"
|
||||
class="td11"><!--l. 83--><p class="noindent" >V-cycle with one hybrid
|
||||
forward Gauss-Seidel (GS) sweep as
|
||||
pre-smoother and one hybrid backward
|
||||
GS sweep as post-smoother, decoupled
|
||||
smoothed aggregation as coarsening
|
||||
algorithm, and LU (plus triangular solve)
|
||||
as coarsest-level solver. See the default
|
||||
values in Tables <a
|
||||
href="userhtmlse5.html#x8-18009r2">2<!--tex4ht:ref: tab:p_cycle --></a>-<a
|
||||
href="userhtmlse5.html#x8-18015r8">8<!--tex4ht:ref: tab:p_smoother_1 --></a> for further details of
|
||||
the preconditioner. </td>
|
||||
class="td11">
|
||||
Multilevel </td><td style="white-space:normal; text-align:left;" id="TBL-1-8-2"
|
||||
class="td11"> <!--l. 83--><p class="noindent" ><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">ML</span><span style="color:#000000">’</span></code>
|
||||
</td><td style="white-space:normal; text-align:left;" id="TBL-1-8-3"
|
||||
class="td11"> <!--l. 83--><p class="noindent" >V-cycle with one hybrid
|
||||
forward Gauss-Seidel (GS) sweep as
|
||||
pre-smoother and one hybrid backward
|
||||
GS sweep as post-smoother, decoupled
|
||||
smoothed aggregation as coarsening
|
||||
algorithm, and LU (plus triangular solve)
|
||||
as coarsest-level solver. See the default
|
||||
values in Tables <a
|
||||
href="userhtmlsu9.html#x19-18009r2">2<!--tex4ht:ref: tab:p_cycle --></a>-<a
|
||||
href="userhtmlsu9.html#x19-18015r8">8<!--tex4ht:ref: tab:p_smoother_1 --></a> for further details of
|
||||
the preconditioner.
|
||||
</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"
|
||||
class="td11"> </td></tr></table> </div>
|
||||
class="td11"> </td></tr></table> </div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Table 1: </span><span
|
||||
class="content">Preconditioner types, corresponding strings and default choices. </span></div><!--tex4ht:label?: x7-13015r1 -->
|
||||
class="content">Preconditioner types, corresponding strings and default choices. </span></div><!--tex4ht:label?: x14-13015r1 -->
|
||||
</div>
|
||||
|
||||
|
||||
@@ -365,7 +375,7 @@ class="cmr-12">,</span>
|
||||
<span
|
||||
class="cmr-12">for interfacing with the Krylov solvers, must be also used (see Section</span><span
|
||||
class="cmr-12"> </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">).</span>
|
||||
<br
|
||||
@@ -391,560 +401,23 @@ class="cmr-12">Memory allocation on GPUs is a costly operation implying a</span>
|
||||
<span
|
||||
class="cmr-12">synchronization; therefore, it is convenient to preallocate internal preconditioner</span>
|
||||
<span
|
||||
class="cmr-12">workspace with the method </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">prec%allocate_wrk(info)</span></span></span> <span
|
||||
class="cmr-12">workspace with the method </span><span class="obeylines-h"><code class="verb">prec%allocate_wrk(info)</code></span> <span
|
||||
class="cmr-12">before invoking an iterative</span>
|
||||
<span
|
||||
class="cmr-12">method, and release it upon exit with </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">prec%deallocate_wrk(info)</span></span></span><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="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"> </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"> </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">’</span><span style="color:#000000">ML</span><span style="color:#000000">’</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"> </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’s Guide</span><span
|
||||
class="cmr-12"> </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"> </span><a
|
||||
href="userhtmlse5.html#x8-160005"><span
|
||||
class="cmr-12">5</span><!--tex4ht:ref: sec:userinterface --></a> <span
|
||||
class="cmr-12">for</span>
|
||||
|
||||
<div class="subsectionTOCS">
|
||||
<span class="subsectionToc" ><span
|
||||
class="cmr-12">4.1 </span><a
|
||||
href="userhtmlsu6.html#x15-140004.1"><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"><span
|
||||
class="cmr-12">GPU example</span></a></span>
|
||||
</div>
|
||||
|
||||
|
||||
<span
|
||||
class="cmr-12">details). If these versions are installed, the corresponding codes are available in</span>
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">samples/simple/file</span></span></span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">read</span></span></span><span
|
||||
class="cmr-12">.</span>
|
||||
|
||||
|
||||
|
||||
<!--l. 148--><p class="indent" > <a
|
||||
id="x7-14001r1"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 149--><p class="noindent" >
|
||||
|
||||
|
||||
|
||||
<div class="minipage"><pre class="verbatim" id="verbatim-7">
|
||||
  use psb_base_mod
|
||||
  use amg_prec_mod
|
||||
  use psb_linsolve_mod
|
||||
... ...
|
||||
!
|
||||
! sparse matrix
|
||||
  type(psb_dspmat_type) :: A
|
||||
! sparse matrix descriptor
|
||||
  type(psb_desc_type)   :: desc_A
|
||||
! preconditioner
|
||||
  type(amg_dprec_type)  :: P
|
||||
! right-hand side and solution vectors
|
||||
  type(psb_d_vect_type) :: b, x
|
||||
... ...
|
||||
!
|
||||
! initialize the parallel environment
|
||||
  call psb_init(ctxt)
|
||||
  call psb_info(ctxt,iam,np)
|
||||
... ...
|
||||
!
|
||||
! read and assemble the spd matrix A and the right-hand side b
|
||||
! using PSBLAS routines for sparse matrix / vector management
|
||||
... ...
|
||||
!
|
||||
! initialize the default multilevel preconditioner, i.e. V-cycle
|
||||
! with basic smoothed aggregation, 1 hybrid forward/backward
|
||||
! GS sweep as pre/post-smoother and UMFPACK as coarsest-level
|
||||
! solver
|
||||
  call P%init(ctxt,’ML’,info)
|
||||
!
|
||||
! build the preconditioner
|
||||
  call P%hierarchy_build(A,desc_A,info)
|
||||
  call P%smoothers_build(A,desc_A,info)
|
||||
|
||||
!
|
||||
! set the solver parameters and the initial guess
|
||||
  ... ...
|
||||
!
|
||||
! solve Ax=b with preconditioned FCG
|
||||
  call psb_krylov(’FCG’,A,P,b,x,tol,desc_A,info)
|
||||
  ... ...
|
||||
!
|
||||
! deallocate the preconditioner
|
||||
  call P%free(info)
|
||||
!
|
||||
! deallocate other data structures
|
||||
  ... ...
|
||||
!
|
||||
! exit the parallel environment
|
||||
  call psb_exit(ctxt)
|
||||
  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"> </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"> </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"> </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"> </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"> </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">
|
||||
... ...
|
||||
! build a V-cycle preconditioner with 1 block-Jacobi sweep (with
|
||||
! ILU(0) on the blocks) as pre- and post-smoother, and 8  block-Jacobi
|
||||
! sweeps (with ILU(0) on the blocks) as coarsest-level solver
|
||||
  call P%init(ctxt,’ML’,info)
|
||||
  call P%set(’SMOOTHER_TYPE’,’BJAC’,info)
|
||||
  call P%set(’COARSE_SOLVE’,’BJAC’,info)
|
||||
  call P%set(’COARSE_SWEEPS’,8,info)
|
||||
  call P%hierarchy_build(A,desc_A,info)
|
||||
  call P%smoothers_build(A,desc_A,info)
|
||||
... ...
|
||||
</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">
|
||||
... ...
|
||||
! build a W-cycle preconditioner with 2 hybrid Gauss-Seidel sweeps
|
||||
! as pre- and post-smoother, a distributed coarsest
|
||||
! matrix, and MUMPS as coarsest-level solver
|
||||
  call P%init(ctxt,’ML’,info)
|
||||
  call P%set(’PAR_AGGR_ALG’,’COUPLED’,info)
|
||||
  call P%set(’AGGR_TYPE’,’MATCHBOXP’,info)
|
||||
  call P%set(’AGGR_SIZE’,8,info)
|
||||
  call P%set(’ML_CYCLE’,’WCYCLE’,info)
|
||||
  call P%set(’SMOOTHER_TYPE’,’FBGS’,info)
|
||||
  call P%set(’SMOOTHER_SWEEPS’,2,info)
|
||||
  call P%set(’COARSE_SOLVE’,’KRM’,info)
|
||||
  call P%set(’COARSE_MAT’,’DIST’,info)
|
||||
  call P%set(’KRM_METHOD’,’FCG’,info)
|
||||
  call P%hierarchy_build(A,desc_A,info)
|
||||
  call P%smoothers_build(A,desc_A,info)
|
||||
... ...
|
||||
</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">
|
||||
... ...
|
||||
! set RAS with overlap 2 and ILU(0) on the local blocks
|
||||
  call P%init(ctxt,’AS’,info)
|
||||
  call P%set(’SUB_OVR’,2,info)
|
||||
  call P%bld(A,desc_A,info)
|
||||
... ...
|
||||
! solve Ax=b with preconditioned BiCGSTAB
|
||||
  call psb_krylov(’BICGSTAB’,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 amg_dexample_gpu
|
||||
  use psb_base_mod
|
||||
  use amg_prec_mod
|
||||
  use psb_linsolve_mod
|
||||
  use psb_util_mod
|
||||
  use psb_gpu_mod
|
||||
  use data_input
|
||||
  use amg_d_pde_mod
|
||||
  implicit none
|
||||
  .......
|
||||
  ! GPU variables
|
||||
  type(psb_d_hlg_sparse_mat) :: agmold
|
||||
  type(psb_d_vect_gpu)       :: vgmold
|
||||
  type(psb_i_vect_gpu)       :: igmold
|
||||
|
||||
 
|
||||
</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’</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’ 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">
|
||||
  call psb_init(ctxt)
|
||||
  call psb_info(ctxt,iam,np)
|
||||
  !
|
||||
  ! BEWARE: if you have NGPUS  per node, the default is to
|
||||
  ! attach to mod(IAM,NGPUS)
|
||||
  !
|
||||
  call psb_gpu_init(ictxt)
|
||||
  ......
|
||||
  t1 = psb_wtime()
|
||||
  call prec%smoothers_build(a,desc_a,info, amold=agmold, vmold=vgmold, imold=igmold)
|
||||
|
||||
 
|
||||
</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">
|
||||
  call desc_a%cnv(mold=igmold)
|
||||
  call a%cscnv(info,mold=agmold)
|
||||
  call psb_geasb(x,desc_a,info,mold=vgmold)
|
||||
  call psb_geasb(b,desc_a,info,mold=vgmold)
|
||||
|
||||
  !
|
||||
  ! iterative method parameters
|
||||
  !
|
||||
  call psb_barrier(ctxt)
|
||||
  call prec%allocate_wrk(info)
|
||||
  t1 = psb_wtime()
|
||||
  call psb_krylov(s_choice%kmethd,a,prec,b,x,s_choice%eps,&
|
||||
       & desc_a,info,itmax=s_choice%itmax,iter=iter,err=err,itrace=s_choice%itrace,&
|
||||
       & istop=s_choice%istopc,irst=s_choice%irst)
|
||||
  call prec%deallocate_wrk(info)
|
||||
  call psb_barrier(ctxt)
|
||||
  tslv = psb_wtime() - t1
|
||||
|
||||
  ......
|
||||
  call psb_gpu_exit()
|
||||
  call psb_exit(ctxt)
|
||||
  stop
|
||||
|
||||
 
|
||||
</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">ℓ</span><sub><span
|
||||
class="cmr-8">1</span></sub> <span
|
||||
class="cmr-12">variants.</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">] </span></p></div>
|
||||
<!--l. 1--><p class="indent" > <a
|
||||
id="tailuserhtmlse4.html"></a>
|
||||
id="tailuserhtmlse4.html"></a>
|
||||
</body></html>
|
||||
|
||||
+82
-3164
File diff suppressed because it is too large
Load Diff
+20
-26
@@ -29,7 +29,7 @@ class="cmr-12">up</span></a><span
|
||||
class="cmr-12">] </span></p></div>
|
||||
<h3 class="sectionHead"><span class="titlemark"><span
|
||||
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>
|
||||
<!--l. 6--><p class="noindent" ><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"> 2 in Section</span><span
|
||||
class="cmr-12"> </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">), without recompiling the</span>
|
||||
<span
|
||||
@@ -69,8 +69,7 @@ class="cmr-12">declare in the application program a variable of the new type;</s
|
||||
</li>
|
||||
<li class="itemize">
|
||||
<!--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="cmtt-12">set</span></span></span> <span
|
||||
class="cmr-12">pass that variable as the argument to the </span><span class="obeylines-h"><code class="verb">set</code></span> <span
|
||||
class="cmr-12">routine as in the following:</span>
|
||||
<div class="center"
|
||||
>
|
||||
@@ -97,10 +96,8 @@ class="cmr-12">the AMG4PSBLAS library has not been modified to account for this
|
||||
<span
|
||||
class="cmr-12">development.</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="cmtt-12">WHAT</span></span></span> <span
|
||||
class="cmr-12">in the </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">set</span></span></span> <span
|
||||
class="cmr-12">It is possible to define new values for the keyword </span><span class="obeylines-h"><code class="verb">WHAT</code></span> <span
|
||||
class="cmr-12">in the </span><span class="obeylines-h"><code class="verb">set</code></span> <span
|
||||
class="cmr-12">routine; if the</span>
|
||||
<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>
|
||||
<!--l. 46--><p class="indent" > <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
|
||||
class="cmtt-12">tests/newslv</span></span></span><span
|
||||
<span class="obeylines-h"><code class="verb">tests/newslv</code></span><span
|
||||
class="cmr-12">. In this example we are implementing a new incomplete factorization</span>
|
||||
<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-2"></colgroup><tr
|
||||
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">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">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>
|
||||
</tr><tr
|
||||
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" ><span
|
||||
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="cmr-12">The user-defined new smoother to be employed in the</span>
|
||||
<span
|
||||
class="cmr-12">preconditioner.</span> </td>
|
||||
<span
|
||||
class="cmr-12">preconditioner.</span> </td>
|
||||
</tr><tr
|
||||
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">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">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>
|
||||
</tr><tr
|
||||
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" ><span
|
||||
class="cmr-12">The user-defined new solver to be employed in the preconditioner.</span></td></tr></table> </div></div>
|
||||
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="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
|
||||
class="cmr-12">The other arguments are defined in the way described in Sec.</span><span
|
||||
class="cmr-12"> </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">. As an example, in the</span>
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">tests/newslv</span></span></span> <span
|
||||
class="cmr-12">code we define a new object of type </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">amg_d_tlu_solver_type</span></span></span><span
|
||||
<span class="obeylines-h"><code class="verb">tests/newslv</code></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">, and we</span>
|
||||
<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>
|
||||
<h3 class="sectionHead"><span class="titlemark"><span
|
||||
class="cmr-12">7 </span></span> <a
|
||||
id="x10-320007"></a><span
|
||||
id="x28-320007"></a><span
|
||||
class="cmr-12">Error Handling</span></h3>
|
||||
<!--l. 5--><p class="noindent" ><span
|
||||
class="cmr-12">The error handling in AMG4PSBLAS is based on the PSBLAS error handling. Error</span>
|
||||
<span
|
||||
class="cmr-12">conditions are signaled via an integer argument </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">info</span></span></span><span
|
||||
class="cmr-12">conditions are signaled via an integer argument </span><span class="obeylines-h"><code class="verb">info</code></span><span
|
||||
class="cmr-12">; whenever an error condition is</span>
|
||||
<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’s Guide</span>
|
||||
<span class="cite"><span
|
||||
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">]</span></span><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
|
||||
href="userhtmlse8.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -88,6 +86,6 @@ class="cmr-12">] [</span><a
|
||||
href="userhtml.html#userhtmlse7.html" ><span
|
||||
class="cmr-12">up</span></a><span
|
||||
class="cmr-12">] </span></p></div>
|
||||
<!--l. 149--><p class="indent" > <a
|
||||
<!--l. 1--><p class="indent" > <a
|
||||
id="tailuserhtmlse7.html"></a>
|
||||
</body></html>
|
||||
|
||||
@@ -29,7 +29,7 @@ class="cmr-12">up</span></a><span
|
||||
class="cmr-12">] </span></p></div>
|
||||
<h3 class="sectionHead"><span class="titlemark"><span
|
||||
class="cmr-12">A </span></span> <a
|
||||
id="x11-33000A"></a><span
|
||||
id="x29-33000A"></a><span
|
||||
class="cmr-12">License</span></h3>
|
||||
<!--l. 6--><p class="noindent" ><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"> </span><span class="cite"><span
|
||||
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">]</span></span><span
|
||||
class="cmr-12">. Per the license requirements, we reproduce the relevant part</span>
|
||||
|
||||
+19
-17
@@ -12,7 +12,7 @@
|
||||
>
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli3.html" ><span
|
||||
href="userhtmlli5.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
class="cmr-12">] [</span><a
|
||||
href="userhtmlse8.html" ><span
|
||||
@@ -29,10 +29,12 @@ class="cmr-12">up</span></a><span
|
||||
class="cmr-12">] </span></p></div>
|
||||
<h3 class="sectionHead"><span class="titlemark"><span
|
||||
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>
|
||||
<div class="paragraphTOCS">
|
||||
</div>
|
||||
<!--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>
|
||||
<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>
|
||||
<span
|
||||
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">
|
||||
<li class="itemize">
|
||||
<!--l. 28--><p class="noindent" ><span
|
||||
@@ -108,7 +110,7 @@ class="cmr-12">Other conduct which could reasonably be considered inappro
|
||||
<span
|
||||
class="cmr-12">professional setting</span></li></ul>
|
||||
<!--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>
|
||||
<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
|
||||
class="cmr-12">abusive, harassing, or otherwise unacceptable behavior may be reported to the</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
|
||||
class="cmr-12">eocoe@na.iac.cnr.it</span></a><span
|
||||
class="cmr-12">. All</span>
|
||||
@@ -149,7 +151,7 @@ class="cmr-12">incident.</span>
|
||||
|
||||
|
||||
<!--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>
|
||||
<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>
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x12-37002x1">
|
||||
class="enumerate" id="x30-37002x1">
|
||||
<!--l. 65--><p class="noindent" ><span
|
||||
class="cmr-12">Correction</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>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x12-37004x2">
|
||||
class="enumerate" id="x30-37004x2">
|
||||
<!--l. 73--><p class="noindent" ><span
|
||||
class="cmr-12">Warning</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>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x12-37006x3">
|
||||
class="enumerate" id="x30-37006x3">
|
||||
<!--l. 84--><p class="noindent" ><span
|
||||
class="cmr-12">Temporary Ban</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>
|
||||
<span
|
||||
class="cmr-12">period. Violating these terms may lead to a permanent ban.</span>
|
||||
</li>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x12-37008x4">
|
||||
class="enumerate" id="x30-37008x4">
|
||||
<!--l. 94--><p class="noindent" ><span
|
||||
class="cmr-12">Permanent Ban</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
|
||||
class="cmr-12">the community.</span></li></ol>
|
||||
<!--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>
|
||||
<span
|
||||
class="cmr-12">This Code of Conduct is adapted from the Contributor Covenant, version 2.0,</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
|
||||
class="cmr-12">https://www.contributor-covenant.org/version/2/0/code</span><span
|
||||
class="cmr-12">_of</span><span
|
||||
@@ -253,7 +255,7 @@ class="cmr-12">. Community Impact Guidelines were inspired by Mozilla’s co
|
||||
<span
|
||||
class="cmr-12">enforcement ladder. For answers to common questions about this code of conduct, see</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
|
||||
class="cmr-12">https://www.contributor-covenant.org/faq</span></a><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
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli3.html" ><span
|
||||
href="userhtmlli5.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
class="cmr-12">] [</span><a
|
||||
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">;</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
|
||||
class="cmr-12">are also prerequisites of PSBLAS.</span></dd></dl>
|
||||
<!--l. 60--><p class="noindent" ><span
|
||||
|
||||
+19
-19
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</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
|
||||
href="userhtmlsu11.html" ><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>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 719--><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. 729--><p class="noindent" >
|
||||
<!--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>
|
||||
<!--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>
|
||||
<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">and </span><code class="lstinline"><span style="color:#000000">set</span></code><span
|
||||
class="cmr-12">.</span>
|
||||
<!--l. 728--><p class="noindent" ><span
|
||||
<!--l. 738--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<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-2"></colgroup><tr
|
||||
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. 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">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">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="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
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. 732--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 742--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-2-2"
|
||||
class="td11"> <!--l. 742--><p class="noindent" ><span
|
||||
class="cmr-12">The sparse matrix structure containing the local part of the matrix</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>
|
||||
</tr><tr
|
||||
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. 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">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">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>
|
||||
</tr><tr
|
||||
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. 738--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 748--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-4-2"
|
||||
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">. See the PSBLAS User’s Guide</span>
|
||||
<span
|
||||
@@ -97,13 +97,13 @@ class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
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. 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">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">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>
|
||||
</tr><tr
|
||||
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. 741--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 751--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-6-2"
|
||||
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"> </span><a
|
||||
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
|
||||
href="userhtmlsu11.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -135,6 +135,6 @@ class="cmr-12">] [</span><a
|
||||
href="userhtmlse5.html#userhtmlsu10.html" ><span
|
||||
class="cmr-12">up</span></a><span
|
||||
class="cmr-12">] </span></p></div>
|
||||
<!--l. 747--><p class="indent" > <a
|
||||
<!--l. 757--><p class="indent" > <a
|
||||
id="tailuserhtmlsu10.html"></a>
|
||||
</body></html>
|
||||
|
||||
+31
-31
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</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
|
||||
href="userhtmlsu12.html" ><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>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 750--><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. 760--><p class="noindent" >
|
||||
<!--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>
|
||||
<!--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>
|
||||
<span
|
||||
class="cmr-12">preconditioner </span><code class="lstinline"><span style="color:#000000">p</span></code><span
|
||||
@@ -51,7 +51,7 @@ class="cmr-12"> </span><a
|
||||
href="userhtmlsu10.html#x20-190005.3"><span
|
||||
class="cmr-12">5.3</span><!--tex4ht:ref: sec:hier_bld --></a><span
|
||||
class="cmr-12">).</span>
|
||||
<!--l. 761--><p class="noindent" ><span
|
||||
<!--l. 771--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<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-2"></colgroup><tr
|
||||
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. 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">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">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="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
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. 765--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 775--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-2-2"
|
||||
class="td11"> <!--l. 775--><p class="noindent" ><span
|
||||
class="cmr-12">The sparse matrix structure containing the local part of the matrix</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>
|
||||
</tr><tr
|
||||
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. 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">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">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>
|
||||
</tr><tr
|
||||
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. 770--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 780--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-4-2"
|
||||
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">. See the PSBLAS User’s Guide</span>
|
||||
<span
|
||||
@@ -102,13 +102,13 @@ class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
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. 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">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">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>
|
||||
</tr><tr
|
||||
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. 773--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 783--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-6-2"
|
||||
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"> </span><a
|
||||
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>
|
||||
</tr><tr
|
||||
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. 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">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">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="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
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. 775--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 785--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-8-2"
|
||||
class="td11"> <!--l. 785--><p class="noindent" ><span
|
||||
class="cmr-12">The desired dynamic type for internal matrix components; this</span>
|
||||
<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>
|
||||
</tr><tr
|
||||
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. 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">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">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="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
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. 780--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 790--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-10-2"
|
||||
class="td11"> <!--l. 790--><p class="noindent" ><span
|
||||
class="cmr-12">The desired dynamic type for internal vector components; this</span>
|
||||
<span
|
||||
class="cmr-12">allows e.g. running on GPUs.</span> </td>
|
||||
</tr><tr
|
||||
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. 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">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">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>
|
||||
</tr><tr
|
||||
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. 783--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 793--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-12-2"
|
||||
class="td11"> <!--l. 793--><p class="noindent" ><span
|
||||
class="cmr-12">The desired dynamic type for internal integer vector components;</span>
|
||||
<span
|
||||
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
|
||||
href="userhtmlsu12.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -185,6 +185,6 @@ class="cmr-12">] [</span><a
|
||||
href="userhtmlse5.html#userhtmlsu11.html" ><span
|
||||
class="cmr-12">up</span></a><span
|
||||
class="cmr-12">] </span></p></div>
|
||||
<!--l. 789--><p class="indent" > <a
|
||||
<!--l. 799--><p class="indent" > <a
|
||||
id="tailuserhtmlsu11.html"></a>
|
||||
</body></html>
|
||||
|
||||
+32
-32
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</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
|
||||
href="userhtmlsu13.html" ><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>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 791--><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. 801--><p class="noindent" >
|
||||
<!--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>
|
||||
<!--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">according to the requirements made by the</span>
|
||||
<span
|
||||
@@ -60,7 +60,7 @@ class="cmr-12">and</span>
|
||||
class="cmr-12">, whose nomenclature would however be somewhat unnatural when</span>
|
||||
<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>
|
||||
<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-2"></colgroup><tr
|
||||
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. 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">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">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="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
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. 809--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 819--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-2-2"
|
||||
class="td11"> <!--l. 819--><p class="noindent" ><span
|
||||
class="cmr-12">The sparse matrix structure containing the local part of the matrix</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>
|
||||
</tr><tr
|
||||
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. 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">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">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>
|
||||
</tr><tr
|
||||
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. 814--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 824--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-4-2"
|
||||
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">. See the PSBLAS User’s Guide</span>
|
||||
<span
|
||||
@@ -111,13 +111,13 @@ class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
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. 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">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">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>
|
||||
</tr><tr
|
||||
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. 817--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 827--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-6-2"
|
||||
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"> </span><a
|
||||
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>
|
||||
</tr><tr
|
||||
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. 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">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">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="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
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. 819--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 829--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-8-2"
|
||||
class="td11"> <!--l. 829--><p class="noindent" ><span
|
||||
class="cmr-12">The desired dynamic type for internal matrix components; this</span>
|
||||
<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>
|
||||
</tr><tr
|
||||
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. 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">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">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="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
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. 824--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 834--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-10-2"
|
||||
class="td11"> <!--l. 834--><p class="noindent" ><span
|
||||
class="cmr-12">The desired dynamic type for internal vector components; this</span>
|
||||
<span
|
||||
class="cmr-12">allows e.g. running on GPUs.</span> </td>
|
||||
</tr><tr
|
||||
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. 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">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">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>
|
||||
</tr><tr
|
||||
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. 827--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 837--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-12-2"
|
||||
class="td11"> <!--l. 837--><p class="noindent" ><span
|
||||
class="cmr-12">The desired dynamic type for internal integer vector components;</span>
|
||||
<span
|
||||
class="cmr-12">this allows e.g. running on GPUs.</span> </td>
|
||||
</tr><tr
|
||||
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>
|
||||
<!--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>
|
||||
|
||||
|
||||
@@ -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
|
||||
href="userhtmlsu13.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -196,6 +196,6 @@ class="cmr-12">] [</span><a
|
||||
href="userhtmlse5.html#userhtmlsu12.html" ><span
|
||||
class="cmr-12">up</span></a><span
|
||||
class="cmr-12">] </span></p></div>
|
||||
<!--l. 837--><p class="indent" > <a
|
||||
<!--l. 847--><p class="indent" > <a
|
||||
id="tailuserhtmlsu12.html"></a>
|
||||
</body></html>
|
||||
|
||||
+39
-34
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</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
|
||||
href="userhtmlsu14.html" ><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>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 839--><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. 849--><p class="noindent" >
|
||||
<!--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>
|
||||
<!--l. 843--><p class="noindent" ><span
|
||||
<!--l. 853--><p class="noindent" ><span
|
||||
class="cmr-12">This method computes </span><span
|
||||
class="cmmi-12">y </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>
|
||||
<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
|
||||
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">and hence it is</span>
|
||||
class="cmr-12">and</span>
|
||||
<span
|
||||
class="cmr-12">completely transparent to the user.</span>
|
||||
<!--l. 852--><p class="noindent" ><span
|
||||
class="cmr-12">hence it is completely transparent to the user, who will almost never invoke it</span>
|
||||
<span
|
||||
class="cmr-12">directly.</span>
|
||||
<!--l. 863--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<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-2"></colgroup><tr
|
||||
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. 855--><p class="noindent" ><span
|
||||
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. 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="cmr-12">, dimension(:), intent(in)—.</span> </td>
|
||||
</tr><tr
|
||||
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. 856--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 867--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-2-2"
|
||||
class="td11"> <!--l. 867--><p class="noindent" ><span
|
||||
class="cmr-12">The local part of the vector </span><span
|
||||
class="cmmi-12">x</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>
|
||||
</tr><tr
|
||||
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. 859--><p class="noindent" ><span
|
||||
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. 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="cmr-12">, dimension(:), intent(out)—.</span> </td>
|
||||
</tr><tr
|
||||
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. 860--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 871--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-4-2"
|
||||
class="td11"> <!--l. 871--><p class="noindent" ><span
|
||||
class="cmr-12">The local part of the vector </span><span
|
||||
class="cmmi-12">y</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>
|
||||
</tr><tr
|
||||
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. 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">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">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>
|
||||
</tr><tr
|
||||
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. 864--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 875--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-6-2"
|
||||
class="td11"> <!--l. 875--><p class="noindent" ><span
|
||||
class="cmr-12">The communication descriptor associated to the matrix to be</span>
|
||||
<span
|
||||
class="cmr-12">preconditioned.</span> </td>
|
||||
</tr><tr
|
||||
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. 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">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">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>
|
||||
</tr><tr
|
||||
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. 867--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 878--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-8-2"
|
||||
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"> </span><a
|
||||
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>
|
||||
</tr><tr
|
||||
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. 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">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">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
|
||||
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. 869--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 880--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-10-2"
|
||||
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">= </span><code class="lstinline"><span style="color:#000000">’</span><span style="color:#000000">N</span><span style="color:#000000">’</span><span style="color:#000000">,</span><span style="color:#000000">’</span><span style="color:#000000">n</span><span style="color:#000000">’</span></code> <span
|
||||
class="cmr-12">then </span><span
|
||||
@@ -199,14 +201,14 @@ class="cmr-8">1</span></sup><span
|
||||
class="cmr-12">).</span> </td>
|
||||
</tr><tr
|
||||
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. 873--><p class="noindent" ><span
|
||||
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. 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="cmr-12">, dimension(:), optional, target—.</span> </td>
|
||||
</tr><tr
|
||||
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. 874--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 885--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-12-2"
|
||||
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>
|
||||
<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’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
|
||||
href="userhtmlsu14.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -246,6 +251,6 @@ class="cmr-12">] [</span><a
|
||||
href="userhtmlse5.html#userhtmlsu13.html" ><span
|
||||
class="cmr-12">up</span></a><span
|
||||
class="cmr-12">] </span></p></div>
|
||||
<!--l. 883--><p class="indent" > <a
|
||||
<!--l. 894--><p class="indent" > <a
|
||||
id="tailuserhtmlsu13.html"></a>
|
||||
</body></html>
|
||||
|
||||
+11
-11
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</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
|
||||
href="userhtmlsu15.html" ><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>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 885--><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. 896--><p class="noindent" >
|
||||
<!--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>
|
||||
<!--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">.</span>
|
||||
<!--l. 892--><p class="noindent" ><span
|
||||
<!--l. 903--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<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-2"></colgroup><tr
|
||||
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. 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">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">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>
|
||||
</tr><tr
|
||||
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. 896--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 907--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-2-2"
|
||||
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"> </span><a
|
||||
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
|
||||
href="userhtmlsu15.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -87,6 +87,6 @@ class="cmr-12">] [</span><a
|
||||
href="userhtmlse5.html#userhtmlsu14.html" ><span
|
||||
class="cmr-12">up</span></a><span
|
||||
class="cmr-12">] </span></p></div>
|
||||
<!--l. 902--><p class="indent" > <a
|
||||
<!--l. 913--><p class="indent" > <a
|
||||
id="tailuserhtmlsu14.html"></a>
|
||||
</body></html>
|
||||
|
||||
+23
-23
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</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
|
||||
href="userhtmlsu16.html" ><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>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 904--><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. 915--><p class="noindent" >
|
||||
<!--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>
|
||||
<!--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">to the standard output or to a</span>
|
||||
<span
|
||||
@@ -46,7 +46,7 @@ class="cmr-12">, or </span><code class="lstinline"><span style="color:#000000">b
|
||||
class="cmr-12">, have</span>
|
||||
<span
|
||||
class="cmr-12">been called.</span>
|
||||
<!--l. 913--><p class="noindent" ><span
|
||||
<!--l. 924--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<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-2"></colgroup><tr
|
||||
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. 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">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">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>
|
||||
</tr><tr
|
||||
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. 917--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 928--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-2-2"
|
||||
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"> </span><a
|
||||
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>
|
||||
</tr><tr
|
||||
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. 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">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">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>
|
||||
</tr><tr
|
||||
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. 919--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 930--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-4-2"
|
||||
class="td11"> <!--l. 930--><p class="noindent" ><span
|
||||
class="cmr-12">The id of the file where the preconditioner description will be</span>
|
||||
<span
|
||||
class="cmr-12">printed; the default is the standard output.</span> </td>
|
||||
</tr><tr
|
||||
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. 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">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">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>
|
||||
</tr><tr
|
||||
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. 922--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 933--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-6-2"
|
||||
class="td11"> <!--l. 933--><p class="noindent" ><span
|
||||
class="cmr-12">The id of the process where the preconditioner description</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">.</span> </td>
|
||||
</tr><tr
|
||||
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. 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">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">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>
|
||||
</tr><tr
|
||||
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. 925--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 936--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-8-2"
|
||||
class="td11"> <!--l. 936--><p class="noindent" ><span
|
||||
class="cmr-12">The verbosity level of the description. Default value is 0. For</span>
|
||||
<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
|
||||
href="userhtmlsu16.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -130,6 +130,6 @@ class="cmr-12">] [</span><a
|
||||
href="userhtmlse5.html#userhtmlsu15.html" ><span
|
||||
class="cmr-12">up</span></a><span
|
||||
class="cmr-12">] </span></p></div>
|
||||
<!--l. 932--><p class="indent" > <a
|
||||
<!--l. 943--><p class="indent" > <a
|
||||
id="tailuserhtmlsu15.html"></a>
|
||||
</body></html>
|
||||
|
||||
+64
-63
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</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
|
||||
href="userhtmlsu15.html" ><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
|
||||
id="x26-250005.9"></a><span
|
||||
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>
|
||||
<span
|
||||
class="cmr-12">object.</span>
|
||||
<!--l. 936--><p class="noindent" >
|
||||
<!--l. 947--><p class="noindent" >
|
||||
<h5 class="subsubsectionHead"><span class="titlemark"><span
|
||||
class="cmr-12">5.9.1 </span></span> <a
|
||||
id="x26-260005.9.1"></a><span
|
||||
class="cmr-12">Method: dump</span></h5>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 938--><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. 949--><p class="noindent" >
|
||||
<!--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>
|
||||
<!--l. 942--><p class="noindent" ><span
|
||||
<!--l. 953--><p class="noindent" ><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>
|
||||
<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-2"></colgroup><tr
|
||||
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. 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">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">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>
|
||||
</tr><tr
|
||||
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. 949--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 960--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-2-2"
|
||||
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"> </span><a
|
||||
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>
|
||||
</tr><tr
|
||||
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. 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">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">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="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
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. 951--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 962--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-4-2"
|
||||
class="td11"> <!--l. 962--><p class="noindent" ><span
|
||||
class="cmr-12">The desired dynamic type for internal matrix components; this</span>
|
||||
<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
|
||||
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>
|
||||
<!--l. 958--><p class="noindent" >
|
||||
<!--l. 969--><p class="noindent" >
|
||||
<h5 class="subsubsectionHead"><span class="titlemark"><span
|
||||
class="cmr-12">5.9.2 </span></span> <a
|
||||
id="x26-270005.9.2"></a><span
|
||||
class="cmr-12">Method: clone</span></h5>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 960--><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. 971--><p class="noindent" >
|
||||
<!--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>
|
||||
|
||||
|
||||
|
||||
<!--l. 964--><p class="noindent" ><span
|
||||
<!--l. 975--><p class="noindent" ><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>
|
||||
<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-2"></colgroup><tr
|
||||
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. 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">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">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="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
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. 971--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 982--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-2-2"
|
||||
class="td11"> <!--l. 982--><p class="noindent" ><span
|
||||
class="cmr-12">The copy of the preconditioner data structure. Note that </span><span
|
||||
class="cmti-12">x </span><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>
|
||||
</tr><tr
|
||||
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. 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">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">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>
|
||||
</tr><tr
|
||||
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. 975--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 986--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-4-2"
|
||||
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"> </span><a
|
||||
href="userhtmlse7.html#x28-320007"><span
|
||||
@@ -144,15 +144,15 @@ class="cmr-12">for details.</span> </td>
|
||||
</tr><tr
|
||||
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>
|
||||
<!--l. 980--><p class="noindent" >
|
||||
<!--l. 991--><p class="noindent" >
|
||||
<h5 class="subsubsectionHead"><span class="titlemark"><span
|
||||
class="cmr-12">5.9.3 </span></span> <a
|
||||
id="x26-280005.9.3"></a><span
|
||||
class="cmr-12">Method: sizeof</span></h5>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 982--><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. 993--><p class="noindent" >
|
||||
<!--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 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-2"></colgroup><tr
|
||||
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. 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">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">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>
|
||||
</tr><tr
|
||||
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. 988--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 999--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-20-2-2"
|
||||
class="td11"> <!--l. 999--><p class="noindent" ><span
|
||||
class="cmr-12">Whether the global or local preconditioner memory occupation is</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
|
||||
@@ -176,7 +176,7 @@ class="cmr-12">.</span> </t
|
||||
class="td11"> </td> </tr></table> </div>
|
||||
<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
|
||||
class="cmr-12">5.9.4 </span></span> <a
|
||||
id="x26-290005.9.4"></a><span
|
||||
@@ -184,23 +184,23 @@ class="cmr-12">Method: allocate</span><span
|
||||
class="cmr-12">_wrk</span></h5>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 997--><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. 1008--><p class="noindent" >
|
||||
<!--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>
|
||||
<!--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>
|
||||
<span
|
||||
class="cmr-12">work vectors which are allocated internally as necessary; therefore allocation and</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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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>
|
||||
@@ -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>
|
||||
<span
|
||||
class="cmr-12">method.</span>
|
||||
<!--l. 1017--><p class="noindent" ><span
|
||||
<!--l. 1028--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<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-2"></colgroup><tr
|
||||
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. 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">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">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>
|
||||
</tr><tr
|
||||
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. 1021--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 1032--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-21-2-2"
|
||||
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"> </span><a
|
||||
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>
|
||||
</tr><tr
|
||||
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. 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">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">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="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
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. 1023--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 1034--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-21-4-2"
|
||||
class="td11"> <!--l. 1034--><p class="noindent" ><span
|
||||
class="cmr-12">The desired dynamic type for internal vector components; this</span>
|
||||
<span
|
||||
class="cmr-12">allows e.g. running on GPUs.</span> </td>
|
||||
</tr><tr
|
||||
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>
|
||||
<!--l. 1029--><p class="noindent" >
|
||||
<!--l. 1040--><p class="noindent" >
|
||||
<h5 class="subsubsectionHead"><span class="titlemark"><span
|
||||
class="cmr-12">5.9.5 </span></span> <a
|
||||
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>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 1031--><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. 1042--><p class="noindent" >
|
||||
<!--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>
|
||||
<!--l. 1035--><p class="noindent" ><span
|
||||
<!--l. 1047--><p class="noindent" ><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>
|
||||
<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-2"></colgroup><tr
|
||||
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. 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">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">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>
|
||||
</tr><tr
|
||||
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. 1042--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 1054--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-22-2-2"
|
||||
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"> </span><a
|
||||
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">]</span></span> <span
|
||||
class="cmr-12">A sparse LU factorization package available from </span><a
|
||||
href="mumps.enseeiht.fr" class="url" ><span
|
||||
class="cmtt-12">mumps.enseeiht.fr</span></a><span
|
||||
class="cmr-12">;</span>
|
||||
href="mumps-solver.org" class="url" ><span
|
||||
class="cmtt-12">mumps-solver.org</span></a><span
|
||||
class="cmr-12">; it</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
|
||||
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
|
||||
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">
|
||||
<span
|
||||
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">>.</span></span>
|
||||
</pre>
|
||||
<!--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>
|
||||
<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">
|
||||
./configure --with-psblas=/opt/psblas-3.7/ \
|
||||
./configure --with-psblas=/opt/psblas-3.9/ \
|
||||
--with-umfpackincdir=/usr/include/suitesparse/
|
||||
</pre>
|
||||
<!--l. 172--><p class="nopar" > <span
|
||||
|
||||
+41
-43
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</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
|
||||
href="userhtmlsu7.html" ><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
|
||||
id="x15-140004.1"></a><span
|
||||
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"> </span><a
|
||||
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>
|
||||
<code class="lstinline"><span style="color:#000000">psb_base_mod</span></code><span
|
||||
class="cmr-12">, </span><code class="lstinline"><span style="color:#000000">amg_prec_mod</span></code> <span
|
||||
class="cmr-12">and </span><code class="lstinline"><span style="color:#000000">psb_krylov_mod</span></code> <span
|
||||
class="cmr-12">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. 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>
|
||||
<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
|
||||
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>
|
||||
|
||||
|
||||
|
||||
<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"> </span><a
|
||||
@@ -83,10 +86,7 @@ href="userhtmlli5.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">21</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span>
|
||||
|
||||
|
||||
|
||||
<!--l. 138--><p class="indent" > <span
|
||||
<!--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>
|
||||
@@ -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"
|
||||
>
|
||||
|
||||
@@ -111,14 +111,14 @@ class="cmr-12">.</span>
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 145--><p class="noindent" >
|
||||
<!--l. 149--><p class="noindent" >
|
||||
|
||||
|
||||
|
||||
<div class="minipage"><pre class="verbatim" id="verbatim-7">
|
||||
  use psb_base_mod
|
||||
  use amg_prec_mod
|
||||
  use psb_krylov_mod
|
||||
  use psb_linsolve_mod
|
||||
... ...
|
||||
!
|
||||
! sparse matrix
|
||||
@@ -168,7 +168,7 @@ class="cmr-12">.</span>
|
||||
  call psb_exit(ctxt)
|
||||
  stop
|
||||
</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" />
|
||||
<!--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>
|
||||
<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">shows</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
|
||||
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
|
||||
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
|
||||
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
|
||||
class="cmr-12">with block-Jacobi and set by</span><span
|
||||
class="cmr-12">by</span><span
|
||||
class="cmr-12"> </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
|
||||
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"> </span><a
|
||||
href="#x15-14003r3"><span
|
||||
class="cmr-12">3</span><!--tex4ht:ref: fig:ex3 --></a> <span
|
||||
class="cmr-12">shows how to set a W-cycle preconditioner using the</span>
|
||||
class="cmr-12">shows how</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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
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
|
||||
class="cmr-12">coarsest-level solver implies that the coarsest-level matrix is distributed among the</span>
|
||||
<span
|
||||
class="cmr-12">processes.</span>
|
||||
<!--l. 291--><p class="indent" > <span
|
||||
<!--l. 299--><p class="indent" > <span
|
||||
class="cmr-12">The code fragments shown in Figures</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="#x15-14002r2"><span
|
||||
@@ -237,7 +235,7 @@ class="cmr-12">are included in the example program</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>
|
||||
<!--l. 294--><p class="indent" > <span
|
||||
<!--l. 302--><p class="indent" > <span
|
||||
class="cmr-12">Finally, Figure</span><span
|
||||
class="cmr-12"> </span><a
|
||||
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>
|
||||
<span class="obeylines-h"><code class="verb">amg_dexample_1lev.f90</code></span><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>
|
||||
<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"
|
||||
>
|
||||
|
||||
@@ -269,7 +267,7 @@ class="cmr-12">.</span>
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 318--><p class="noindent" >
|
||||
<!--l. 326--><p class="noindent" >
|
||||
<div class="minipage"><pre class="verbatim" id="verbatim-8">
|
||||
... ...
|
||||
! build a V-cycle preconditioner with 1 block-Jacobi sweep (with
|
||||
@@ -283,7 +281,7 @@ class="cmr-12">.</span>
|
||||
  call P%smoothers_build(A,desc_A,info)
|
||||
... ...
|
||||
</pre>
|
||||
<!--l. 333--><p class="nopar" > </div></div>
|
||||
<!--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?: 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"
|
||||
>
|
||||
|
||||
@@ -302,7 +300,7 @@ class="content">setup of a multilevel preconditioner based on the default decoup
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 362--><p class="noindent" >
|
||||
<!--l. 370--><p class="noindent" >
|
||||
<div class="minipage"><pre class="verbatim" id="verbatim-9">
|
||||
... ...
|
||||
! build a W-cycle preconditioner with 2 hybrid Gauss-Seidel sweeps
|
||||
@@ -322,7 +320,7 @@ class="content">setup of a multilevel preconditioner based on the default decoup
|
||||
  call P%smoothers_build(A,desc_A,info)
|
||||
... ...
|
||||
</pre>
|
||||
<!--l. 383--><p class="nopar" > </div></div>
|
||||
<!--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
|
||||
@@ -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"
|
||||
>
|
||||
|
||||
@@ -342,7 +340,7 @@ weighted matching</span></div><!--tex4ht:label?: x15-14003r3 -->
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 402--><p class="noindent" >
|
||||
<!--l. 410--><p class="noindent" >
|
||||
<div class="minipage"><pre class="verbatim" id="verbatim-10">
|
||||
... ...
|
||||
! set RAS with overlap 2 and ILU(0) on the local blocks
|
||||
@@ -353,7 +351,7 @@ weighted matching</span></div><!--tex4ht:label?: x15-14003r3 -->
|
||||
! solve Ax=b with preconditioned BiCGSTAB
|
||||
  call psb_krylov(’BICGSTAB’,A,P,b,x,tol,desc_A,info)
|
||||
</pre>
|
||||
<!--l. 414--><p class="nopar" > </div></div>
|
||||
<!--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?: 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
|
||||
href="userhtmlsu7.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -375,6 +373,6 @@ class="cmr-12">] [</span><a
|
||||
href="userhtmlse4.html#userhtmlsu6.html" ><span
|
||||
class="cmr-12">up</span></a><span
|
||||
class="cmr-12">] </span></p></div>
|
||||
<!--l. 424--><p class="indent" > <a
|
||||
<!--l. 432--><p class="indent" > <a
|
||||
id="tailuserhtmlsu6.html"></a>
|
||||
</body></html>
|
||||
|
||||
+28
-28
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</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
|
||||
href="userhtmlsu6.html" ><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
|
||||
id="x16-150004.2"></a><span
|
||||
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>
|
||||
<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"><code class="verb">amg4psblas/examples/gpu</code></span><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>
|
||||
<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"
|
||||
>
|
||||
|
||||
@@ -50,12 +50,12 @@ class="cmr-12">variables:</span>
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 452--><p class="noindent" >
|
||||
<!--l. 460--><p class="noindent" >
|
||||
<div class="minipage"><pre class="verbatim" id="verbatim-11">
|
||||
program amg_dexample_gpu
|
||||
  use psb_base_mod
|
||||
  use amg_prec_mod
|
||||
  use psb_krylov_mod
|
||||
  use psb_linsolve_mod
|
||||
  use psb_util_mod
|
||||
  use psb_gpu_mod
|
||||
  use data_input
|
||||
@@ -69,7 +69,7 @@ program amg_dexample_gpu
|
||||
|
||||
 
|
||||
</pre>
|
||||
<!--l. 471--><p class="nopar" > </div></div>
|
||||
<!--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?: x16-15001r5 -->
|
||||
@@ -77,23 +77,21 @@ class="content">setup of a GPU-enabled test program part one.</span></div><!--te
|
||||
|
||||
|
||||
</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">data structure for</span>
|
||||
<span
|
||||
class="cmr-12">sparse matrices on GPUs; for more information please refer to the PSBLAS-EXT users’</span>
|
||||
class="cmr-12">sparse matrices on GPUs; for more information please refer to the PSBLAS users’</span>
|
||||
<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>
|
||||
<span
|
||||
class="cmr-12">variables to the build methods (see also the PSBLAS and PSBLAS-EXT users’</span>
|
||||
<span
|
||||
class="cmr-12">guides).</span>
|
||||
class="cmr-12">variables to the build methods (see also the PSBLAS users’ guide).</span>
|
||||
|
||||
|
||||
|
||||
<!--l. 485--><p class="indent" > <a
|
||||
<!--l. 493--><p class="indent" > <a
|
||||
id="x16-15002r6"></a><hr class="float"><div class="float"
|
||||
>
|
||||
|
||||
@@ -101,7 +99,7 @@ class="cmr-12">guides).</span>
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 501--><p class="noindent" >
|
||||
<!--l. 509--><p class="noindent" >
|
||||
<div class="minipage"><pre class="verbatim" id="verbatim-12">
|
||||
  call psb_init(ctxt)
|
||||
  call psb_info(ctxt,iam,np)
|
||||
@@ -116,7 +114,7 @@ class="cmr-12">guides).</span>
|
||||
|
||||
 
|
||||
</pre>
|
||||
<!--l. 516--><p class="nopar" > </div></div>
|
||||
<!--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?: x16-15002r6 -->
|
||||
@@ -124,7 +122,7 @@ class="content">setup of a GPU-enabled test program part two.</span></div><!--te
|
||||
|
||||
|
||||
</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>
|
||||
<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"
|
||||
>
|
||||
|
||||
@@ -143,7 +141,7 @@ class="cmr-12">GPU environment</span>
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 557--><p class="noindent" >
|
||||
<!--l. 565--><p class="noindent" >
|
||||
<div class="minipage"><pre class="verbatim" id="verbatim-13">
|
||||
  call desc_a%cnv(mold=igmold)
|
||||
  call a%cscnv(info,mold=agmold)
|
||||
@@ -170,7 +168,7 @@ class="cmr-12">GPU environment</span>
|
||||
|
||||
 
|
||||
</pre>
|
||||
<!--l. 584--><p class="nopar" > </div></div>
|
||||
<!--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?: x16-15003r7 -->
|
||||
@@ -178,7 +176,7 @@ class="content">setup of a GPU-enabled test program part three.</span></div><!--
|
||||
|
||||
|
||||
</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>
|
||||
<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>
|
||||
<ul class="itemize1">
|
||||
<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 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>
|
||||
<ul class="itemize2">
|
||||
<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 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 class="itemize">
|
||||
<!--l. 601--><p class="noindent" ><span class="obeylines-h"><code class="verb">AINV</code></span></li></ul>
|
||||
</li></ul>
|
||||
<!--l. 604--><p class="noindent" ><span
|
||||
<!--l. 609--><p class="noindent" ><span class="obeylines-h"><code class="verb">AINV</code></span></li></ul>
|
||||
</li>
|
||||
<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="cmmi-12">ℓ</span><sub><span
|
||||
class="cmr-8">1</span></sub> <span
|
||||
|
||||
+471
-470
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
|
||||
and LAPACK libraries in the \verb|SuiteSparse_config/SuiteSparse_config.mk| file.
|
||||
\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
|
||||
for single and double precision, real and complex data.
|
||||
We tested versions 4.10.0 and 5.0.1.
|
||||
|
||||
Symlink
+1
@@ -0,0 +1 @@
|
||||
tmp/userguide.pdf
|
||||
Reference in New Issue
Block a user