mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-06 22:55:12 +00:00
Added Polynomial Smoother infos
This commit is contained in:
Binary file not shown.
+32
-50
@@ -59,40 +59,33 @@ class="cmr-12">General Overview</span></a></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="likesubsectionToc" ><a
|
||||
href="userhtmlli3.html#x6-50002" id="QQ2-6-5"><span
|
||||
<br /> <span class="likesubsectionToc" ><a
|
||||
href="userhtmlli3.html#x6-5000" id="QQ2-6-5"><span
|
||||
class="cmr-12">Contributors</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="likesubsectionToc" ><a
|
||||
href="userhtmlli4.html#x7-60002" id="QQ2-7-6"><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#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="subsectionToc" ><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="cmr-12"> </span><span class="subsectionToc" ><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="cmr-12"> </span><span class="subsectionToc" ><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="cmr-12"> </span><span class="subsectionToc" ><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="cmr-12"> </span><span class="subsectionToc" ><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>
|
||||
@@ -100,13 +93,11 @@ class="cmr-12">Example and test programs</span></a></span>
|
||||
class="cmr-12">4 </span><a
|
||||
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="subsectionToc" ><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="cmr-12"> </span><span class="subsectionToc" ><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>
|
||||
@@ -114,71 +105,62 @@ class="cmr-12">GPU example</span></a></span>
|
||||
class="cmr-12">5 </span><a
|
||||
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="subsectionToc" ><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="cmr-12"> </span><span class="subsectionToc" ><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="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.3 </span><a
|
||||
href="userhtmlsu10.html#x20-190005.3" id="QQ2-20-35"><span
|
||||
href="userhtmlsu10.html#x20-190005.3" id="QQ2-20-36"><span
|
||||
class="cmr-12">Method hierarchy</span><span
|
||||
class="cmr-12">_build</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.4 </span><a
|
||||
href="userhtmlsu11.html#x21-200005.4" id="QQ2-21-36"><span
|
||||
href="userhtmlsu11.html#x21-200005.4" id="QQ2-21-37"><span
|
||||
class="cmr-12">Method smoothers</span><span
|
||||
class="cmr-12">_build</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.5 </span><a
|
||||
href="userhtmlsu12.html#x22-210005.5" id="QQ2-22-37"><span
|
||||
href="userhtmlsu12.html#x22-210005.5" id="QQ2-22-38"><span
|
||||
class="cmr-12">Method build</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.6 </span><a
|
||||
href="userhtmlsu13.html#x23-220005.6" id="QQ2-23-38"><span
|
||||
href="userhtmlsu13.html#x23-220005.6" id="QQ2-23-39"><span
|
||||
class="cmr-12">Method apply</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.7 </span><a
|
||||
href="userhtmlsu14.html#x24-230005.7" id="QQ2-24-39"><span
|
||||
href="userhtmlsu14.html#x24-230005.7" id="QQ2-24-40"><span
|
||||
class="cmr-12">Method free</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.8 </span><a
|
||||
href="userhtmlsu15.html#x25-240005.8" id="QQ2-25-40"><span
|
||||
href="userhtmlsu15.html#x25-240005.8" id="QQ2-25-41"><span
|
||||
class="cmr-12">Method descr</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.9 </span><a
|
||||
href="userhtmlsu16.html#x26-250005.9" id="QQ2-26-41"><span
|
||||
href="userhtmlsu16.html#x26-250005.9" id="QQ2-26-42"><span
|
||||
class="cmr-12">Auxiliary Methods</span></a></span>
|
||||
<br /> <span class="sectionToc" ><span
|
||||
class="cmr-12">6 </span><a
|
||||
href="userhtmlse6.html#x27-310006" id="QQ2-27-47"><span
|
||||
href="userhtmlse6.html#x27-310006" id="QQ2-27-48"><span
|
||||
class="cmr-12">Adding new smoother and solver objects to AMG4PSBLAS</span></a></span>
|
||||
<br /> <span class="sectionToc" ><span
|
||||
class="cmr-12">7 </span><a
|
||||
href="userhtmlse7.html#x28-320007" id="QQ2-28-48"><span
|
||||
href="userhtmlse7.html#x28-320007" id="QQ2-28-49"><span
|
||||
class="cmr-12">Error Handling</span></a></span>
|
||||
<br /> <span class="sectionToc" ><span
|
||||
class="cmr-12">A </span><a
|
||||
href="userhtmlse8.html#x29-33000A" id="QQ2-29-49"><span
|
||||
href="userhtmlse8.html#x29-33000A" id="QQ2-29-50"><span
|
||||
class="cmr-12">License</span></a></span>
|
||||
<br /> <span class="sectionToc" ><span
|
||||
class="cmr-12">B </span><a
|
||||
href="userhtmlse9.html#x30-34000B" id="QQ2-30-50"><span
|
||||
href="userhtmlse9.html#x30-34000B" id="QQ2-30-51"><span
|
||||
class="cmr-12">Contributor Covenant Code of Conduct</span></a></span>
|
||||
<br /> <span class="likesectionToc" ><a
|
||||
href="userhtmlli5.html#x31-39000B" id="QQ2-31-55"><span
|
||||
href="userhtmlli5.html#x31-39000" id="QQ2-31-56"><span
|
||||
class="cmr-12">References</span></a></span>
|
||||
</div>
|
||||
|
||||
|
||||
+85
-102
@@ -22,6 +22,9 @@
|
||||
.cmmi-8{font-size:72%;font-style: italic;}
|
||||
.cmsy-10x-x-120{font-size:109%;}
|
||||
.cmsy-8{font-size:72%;}
|
||||
.cmtt-10{font-size:90%;font-family: monospace,monospace;}
|
||||
.cmtt-10{font-family: monospace,monospace;}
|
||||
.cmtt-10{font-family: monospace,monospace;}
|
||||
.tctt-1200{font-size:109%;font-family: monospace,monospace;}
|
||||
.cmmi-10x-x-109{font-style: italic;}
|
||||
.cmsy-10x-x-109{}
|
||||
@@ -29,9 +32,6 @@
|
||||
.cmtt-10x-x-109{font-family: monospace,monospace;}
|
||||
.cmtt-10x-x-109{font-family: monospace,monospace;}
|
||||
.cmcsc-10x-x-109{}
|
||||
.cmtt-10{font-size:90%;font-family: monospace,monospace;}
|
||||
.cmtt-10{font-family: monospace,monospace;}
|
||||
.cmtt-10{font-family: monospace,monospace;}
|
||||
.cmbx-10x-x-109{ font-weight: bold;}
|
||||
.cmbx-10x-x-109{ font-weight: bold;}
|
||||
.cmbx-10x-x-109{ font-weight: bold;}
|
||||
@@ -42,21 +42,26 @@ p.indent{text-indent:0;}
|
||||
p + p{margin-top:1em;}
|
||||
p + div, p + pre {margin-top:1em;}
|
||||
div + p, pre + p {margin-top:1em;}
|
||||
a { overflow-wrap: break-word; word-wrap: break-word; word-break: break-word; hyphens: auto; }
|
||||
@media print {div.crosslinks {visibility:hidden;}}
|
||||
table.tabular{border-collapse: collapse; border-spacing: 0;}
|
||||
a img { border-top: 0; border-left: 0; border-right: 0; }
|
||||
center { margin-top:1em; margin-bottom:1em; }
|
||||
td center { margin-top:0em; margin-bottom:0em; }
|
||||
.Canvas { position:relative; }
|
||||
img.math{vertical-align:middle;}
|
||||
div.par-math-display, div.math-display{text-align:center;}
|
||||
li p.indent { text-indent: 0em }
|
||||
li p:first-child{ margin-top:0em; }
|
||||
li p:last-child, li div:last-child { margin-bottom:0.5em; }
|
||||
li p:first-child{ margin-bottom:0; }
|
||||
li p~ul:last-child, li p~ol:last-child{ margin-bottom:0.5em; }
|
||||
.enumerate1 {list-style-type:decimal;}
|
||||
.enumerate2 {list-style-type:lower-alpha;}
|
||||
.enumerate3 {list-style-type:lower-roman;}
|
||||
.enumerate4 {list-style-type:upper-alpha;}
|
||||
div.newtheorem { margin-bottom: 2em; margin-top: 2em;}
|
||||
div.newtheorem .head{font-weight: bold;}
|
||||
.obeylines-h,.obeylines-v {white-space: nowrap; }
|
||||
div.obeylines-v p { margin-top:0; margin-bottom:0; }
|
||||
.overline{ text-decoration:overline; }
|
||||
@@ -82,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;}
|
||||
@@ -100,6 +106,9 @@ table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
|
||||
.hline hr, .cline hr{ height : 0px; margin:0px; }
|
||||
.hline td, .cline td{ padding: 0; }
|
||||
.hline hr, .cline hr{border:none;border-top:1px solid black;}
|
||||
.hline {border-top: 1px solid black;}
|
||||
.hline + .vspace:last-child{display:none;}
|
||||
.hline:first-child{border-bottom:1px solid black;border-top:none;}
|
||||
.tabbing-right {text-align:right;}
|
||||
div.float, div.figure {margin-left: auto; margin-right: auto;}
|
||||
div.float img {text-align:center;}
|
||||
@@ -130,9 +139,9 @@ div.caption span.id{font-weight: bold; white-space: nowrap; }
|
||||
h1.partHead{text-align: center}
|
||||
p.bibitem { text-indent: -2em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; }
|
||||
p.bibitem-p { text-indent: 0em; margin-left: 2em; margin-top:0.6em; margin-bottom:0.6em; }
|
||||
.subsubsectionHead, .likesubsubsectionHead { font-size: 1em; }
|
||||
.paragraphHead, .likeparagraphHead { margin-top:2em; font-weight: bold;}
|
||||
.subparagraphHead, .likesubparagraphHead { font-weight: bold;}
|
||||
.quote {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; margin-right:1em; text-align:justify;}
|
||||
.verse{white-space:nowrap; margin-left:2em}
|
||||
div.maketitle {text-align:center;}
|
||||
h2.titleHead{text-align:center;}
|
||||
@@ -140,121 +149,95 @@ div.maketitle{ margin-bottom: 2em; }
|
||||
div.author, div.date {text-align:center;}
|
||||
div.thanks{text-align:left; margin-left:10%; font-size:85%; font-style:italic; }
|
||||
div.author{white-space: nowrap;}
|
||||
.quotation {margin-bottom:0.25em; margin-top:0.25em; margin-left:1em; }
|
||||
.abstract p {margin-left:5%; margin-right:5%;}
|
||||
div.abstract p {margin-left:5%; margin-right:5%;}
|
||||
div.abstract {width:100%;}
|
||||
.subsectionToc, .likesubsectionToc {margin-left:2em;}
|
||||
.subsubsectionToc, .likesubsubsectionToc {margin-left:4em;}
|
||||
.abstracttitle{text-align:center;margin-bottom:1em;}
|
||||
.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; }
|
||||
.doublebox { padding-left:3pt; padding-right:3pt; border-style:double; border:solid thick; }
|
||||
.rotatebox{display: inline-block;}
|
||||
code.lstinline{font-family:monospace,monospace;}
|
||||
pre.listings{font-family: monospace,monospace; white-space: pre-wrap; margin-top:0.5em; margin-bottom:0.5em; }
|
||||
.lstlisting .label{margin-right:0.5em; }
|
||||
div.lstlisting{font-family: monospace,monospace; white-space: nowrap; margin-top:0.5em; margin-bottom:0.5em; }
|
||||
div.lstinputlisting{ font-family: monospace,monospace; white-space: nowrap; }
|
||||
pre.lstlisting{font-family: monospace,monospace; white-space: pre-wrap; margin-top:0.5em; margin-bottom:0.5em; }
|
||||
pre.lstinputlisting{ font-family: monospace,monospace; white-space: pre-wrap; }
|
||||
.lstinputlisting .label{margin-right:0.5em;}
|
||||
#TBL-1 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-1{border-collapse:collapse;}
|
||||
#TBL-1 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-1{border-collapse:collapse;}
|
||||
#TBL-1 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-1{border-collapse:collapse;}
|
||||
#TBL-1 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-1{border-collapse:collapse;}
|
||||
#TBL-4 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-4{border-collapse:collapse;}
|
||||
#TBL-4 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-4{border-collapse:collapse;}
|
||||
#TBL-4 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-4{border-collapse:collapse;}
|
||||
#TBL-4 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-4{border-collapse:collapse;}
|
||||
#TBL-4 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-4{border-collapse:collapse;}
|
||||
#TBL-4 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-4{border-collapse:collapse;}
|
||||
#TBL-5 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-5{border-collapse:collapse;}
|
||||
#TBL-5 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-5{border-collapse:collapse;}
|
||||
#TBL-5 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-5{border-collapse:collapse;}
|
||||
#TBL-5 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-5{border-collapse:collapse;}
|
||||
#TBL-5 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-5{border-collapse:collapse;}
|
||||
#TBL-5 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-5{border-collapse:collapse;}
|
||||
#TBL-1-1{border-left: 1px solid black;}
|
||||
#TBL-1-1{border-right:1px solid black;}
|
||||
#TBL-1-2{border-right:1px solid black;}
|
||||
#TBL-1-3{border-right:1px solid black;}
|
||||
#TBL-4-1{border-left: 1px solid black;}
|
||||
#TBL-4-1{border-right:1px solid black;}
|
||||
#TBL-4-2{border-right:1px solid black;}
|
||||
#TBL-4-3{border-right:1px solid black;}
|
||||
#TBL-4-4{border-right:1px solid black;}
|
||||
#TBL-4-5{border-right:1px solid black;}
|
||||
#TBL-5-1{border-left: 1px solid black;}
|
||||
#TBL-5-1{border-right:1px solid black;}
|
||||
#TBL-5-2{border-right:1px solid black;}
|
||||
#TBL-5-3{border-right:1px solid black;}
|
||||
#TBL-5-4{border-right:1px solid black;}
|
||||
#TBL-5-5{border-right:1px solid black;}
|
||||
td#TBL-5-10-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
||||
td#TBL-5-10-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
||||
td#TBL-5-11-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
||||
td#TBL-5-11-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
||||
td#TBL-5-12-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
||||
#TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-6{border-collapse:collapse;}
|
||||
#TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-6{border-collapse:collapse;}
|
||||
#TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-6{border-collapse:collapse;}
|
||||
#TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-6{border-collapse:collapse;}
|
||||
#TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-6{border-collapse:collapse;}
|
||||
#TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-6{border-collapse:collapse;}
|
||||
td#TBL-5-12-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
||||
#TBL-6-1{border-left: 1px solid black;}
|
||||
#TBL-6-1{border-right:1px solid black;}
|
||||
#TBL-6-2{border-right:1px solid black;}
|
||||
#TBL-6-3{border-right:1px solid black;}
|
||||
#TBL-6-4{border-right:1px solid black;}
|
||||
#TBL-6-5{border-right:1px solid black;}
|
||||
td#TBL-6-5-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
||||
td#TBL-6-5-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
||||
td#TBL-6-6-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
||||
#TBL-7 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-7{border-collapse:collapse;}
|
||||
#TBL-7 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-7{border-collapse:collapse;}
|
||||
#TBL-7 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-7{border-collapse:collapse;}
|
||||
#TBL-7 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-7{border-collapse:collapse;}
|
||||
#TBL-7 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-7{border-collapse:collapse;}
|
||||
#TBL-7 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-7{border-collapse:collapse;}
|
||||
td#TBL-6-6-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
||||
#TBL-7-1{border-left: 1px solid black;}
|
||||
#TBL-7-1{border-right:1px solid black;}
|
||||
#TBL-7-2{border-right:1px solid black;}
|
||||
#TBL-7-3{border-right:1px solid black;}
|
||||
#TBL-7-4{border-right:1px solid black;}
|
||||
#TBL-7-5{border-right:1px solid black;}
|
||||
td#TBL-7-5-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
||||
td#TBL-7-5-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
||||
td#TBL-7-6-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
||||
td#TBL-7-6-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
||||
td#TBL-7-7-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
||||
td#TBL-7-7-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
||||
td#TBL-7-12-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
||||
td#TBL-7-12-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
||||
td#TBL-7-13-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
||||
#TBL-8 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-8{border-collapse:collapse;}
|
||||
#TBL-8 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-8{border-collapse:collapse;}
|
||||
#TBL-8 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-8{border-collapse:collapse;}
|
||||
#TBL-8 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-8{border-collapse:collapse;}
|
||||
#TBL-8 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-8{border-collapse:collapse;}
|
||||
#TBL-8 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-8{border-collapse:collapse;}
|
||||
#TBL-9 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-9{border-collapse:collapse;}
|
||||
#TBL-9 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-9{border-collapse:collapse;}
|
||||
#TBL-9 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-9{border-collapse:collapse;}
|
||||
#TBL-9 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-9{border-collapse:collapse;}
|
||||
#TBL-9 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-9{border-collapse:collapse;}
|
||||
#TBL-9 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-9{border-collapse:collapse;}
|
||||
#TBL-10 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-10{border-collapse:collapse;}
|
||||
#TBL-10 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-10{border-collapse:collapse;}
|
||||
#TBL-10 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-10{border-collapse:collapse;}
|
||||
#TBL-10 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-10{border-collapse:collapse;}
|
||||
#TBL-10 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-10{border-collapse:collapse;}
|
||||
#TBL-10 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-10{border-collapse:collapse;}
|
||||
td#TBL-7-13-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
||||
#TBL-8-1{border-left: 1px solid black;}
|
||||
#TBL-8-1{border-right:1px solid black;}
|
||||
#TBL-8-2{border-right:1px solid black;}
|
||||
#TBL-8-3{border-right:1px solid black;}
|
||||
#TBL-8-4{border-right:1px solid black;}
|
||||
#TBL-8-5{border-right:1px solid black;}
|
||||
#TBL-9-1{border-left: 1px solid black;}
|
||||
#TBL-9-1{border-right:1px solid black;}
|
||||
#TBL-9-2{border-right:1px solid black;}
|
||||
#TBL-9-3{border-right:1px solid black;}
|
||||
#TBL-9-4{border-right:1px solid black;}
|
||||
#TBL-9-5{border-right:1px solid black;}
|
||||
#TBL-10-1{border-left: 1px solid black;}
|
||||
#TBL-10-1{border-right:1px solid black;}
|
||||
#TBL-10-2{border-right:1px solid black;}
|
||||
#TBL-10-3{border-right:1px solid black;}
|
||||
#TBL-10-4{border-right:1px solid black;}
|
||||
#TBL-10-5{border-right:1px solid black;}
|
||||
#TBL-11-1{border-left: 1px solid black;}
|
||||
#TBL-11-1{border-right:1px solid black;}
|
||||
#TBL-11-2{border-right:1px solid black;}
|
||||
#TBL-11-3{border-right:1px solid black;}
|
||||
#TBL-11-4{border-right:1px solid black;}
|
||||
#TBL-11-5{border-right:1px solid black;}
|
||||
/* end css.sty */
|
||||
|
||||
|
||||
+32
-50
@@ -59,40 +59,33 @@ class="cmr-12">General Overview</span></a></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="likesubsectionToc" ><a
|
||||
href="userhtmlli3.html#x6-50002" id="QQ2-6-5"><span
|
||||
<br /> <span class="likesubsectionToc" ><a
|
||||
href="userhtmlli3.html#x6-5000" id="QQ2-6-5"><span
|
||||
class="cmr-12">Contributors</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="likesubsectionToc" ><a
|
||||
href="userhtmlli4.html#x7-60002" id="QQ2-7-6"><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#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="subsectionToc" ><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="cmr-12"> </span><span class="subsectionToc" ><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="cmr-12"> </span><span class="subsectionToc" ><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="cmr-12"> </span><span class="subsectionToc" ><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="cmr-12"> </span><span class="subsectionToc" ><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>
|
||||
@@ -100,13 +93,11 @@ class="cmr-12">Example and test programs</span></a></span>
|
||||
class="cmr-12">4 </span><a
|
||||
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="subsectionToc" ><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="cmr-12"> </span><span class="subsectionToc" ><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>
|
||||
@@ -114,71 +105,62 @@ class="cmr-12">GPU example</span></a></span>
|
||||
class="cmr-12">5 </span><a
|
||||
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="subsectionToc" ><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="cmr-12"> </span><span class="subsectionToc" ><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="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.3 </span><a
|
||||
href="userhtmlsu10.html#x20-190005.3" id="QQ2-20-35"><span
|
||||
href="userhtmlsu10.html#x20-190005.3" id="QQ2-20-36"><span
|
||||
class="cmr-12">Method hierarchy</span><span
|
||||
class="cmr-12">_build</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.4 </span><a
|
||||
href="userhtmlsu11.html#x21-200005.4" id="QQ2-21-36"><span
|
||||
href="userhtmlsu11.html#x21-200005.4" id="QQ2-21-37"><span
|
||||
class="cmr-12">Method smoothers</span><span
|
||||
class="cmr-12">_build</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.5 </span><a
|
||||
href="userhtmlsu12.html#x22-210005.5" id="QQ2-22-37"><span
|
||||
href="userhtmlsu12.html#x22-210005.5" id="QQ2-22-38"><span
|
||||
class="cmr-12">Method build</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.6 </span><a
|
||||
href="userhtmlsu13.html#x23-220005.6" id="QQ2-23-38"><span
|
||||
href="userhtmlsu13.html#x23-220005.6" id="QQ2-23-39"><span
|
||||
class="cmr-12">Method apply</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.7 </span><a
|
||||
href="userhtmlsu14.html#x24-230005.7" id="QQ2-24-39"><span
|
||||
href="userhtmlsu14.html#x24-230005.7" id="QQ2-24-40"><span
|
||||
class="cmr-12">Method free</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.8 </span><a
|
||||
href="userhtmlsu15.html#x25-240005.8" id="QQ2-25-40"><span
|
||||
href="userhtmlsu15.html#x25-240005.8" id="QQ2-25-41"><span
|
||||
class="cmr-12">Method descr</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.9 </span><a
|
||||
href="userhtmlsu16.html#x26-250005.9" id="QQ2-26-41"><span
|
||||
href="userhtmlsu16.html#x26-250005.9" id="QQ2-26-42"><span
|
||||
class="cmr-12">Auxiliary Methods</span></a></span>
|
||||
<br /> <span class="sectionToc" ><span
|
||||
class="cmr-12">6 </span><a
|
||||
href="userhtmlse6.html#x27-310006" id="QQ2-27-47"><span
|
||||
href="userhtmlse6.html#x27-310006" id="QQ2-27-48"><span
|
||||
class="cmr-12">Adding new smoother and solver objects to AMG4PSBLAS</span></a></span>
|
||||
<br /> <span class="sectionToc" ><span
|
||||
class="cmr-12">7 </span><a
|
||||
href="userhtmlse7.html#x28-320007" id="QQ2-28-48"><span
|
||||
href="userhtmlse7.html#x28-320007" id="QQ2-28-49"><span
|
||||
class="cmr-12">Error Handling</span></a></span>
|
||||
<br /> <span class="sectionToc" ><span
|
||||
class="cmr-12">A </span><a
|
||||
href="userhtmlse8.html#x29-33000A" id="QQ2-29-49"><span
|
||||
href="userhtmlse8.html#x29-33000A" id="QQ2-29-50"><span
|
||||
class="cmr-12">License</span></a></span>
|
||||
<br /> <span class="sectionToc" ><span
|
||||
class="cmr-12">B </span><a
|
||||
href="userhtmlse9.html#x30-34000B" id="QQ2-30-50"><span
|
||||
href="userhtmlse9.html#x30-34000B" id="QQ2-30-51"><span
|
||||
class="cmr-12">Contributor Covenant Code of Conduct</span></a></span>
|
||||
<br /> <span class="likesectionToc" ><a
|
||||
href="userhtmlli5.html#x31-39000B" id="QQ2-31-55"><span
|
||||
href="userhtmlli5.html#x31-39000" id="QQ2-31-56"><span
|
||||
class="cmr-12">References</span></a></span>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -145,6 +145,13 @@ class="cmr-12">of AMG4PSBLAS.</span>
|
||||
|
||||
|
||||
|
||||
<!--l. 127--><p class="indent" >
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 133--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli2.html" ><span
|
||||
|
||||
+26
-52
@@ -43,28 +43,23 @@ class="cmr-12">Code Distribution</span></a></span>
|
||||
class="cmr-12">3 </span><a
|
||||
href="userhtmlse3.html#x8-70003"><span
|
||||
class="cmr-12">Configuring and Building AMG4PSBLAS</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">3.1 </span><a
|
||||
href="userhtmlsu1.html#x9-80003.1"><span
|
||||
class="cmr-12">Prerequisites</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">3.2 </span><a
|
||||
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="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">3.3 </span><a
|
||||
href="userhtmlsu3.html#x11-100003.3"><span
|
||||
class="cmr-12">Configuration options</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">3.4 </span><a
|
||||
href="userhtmlsu4.html#x12-110003.4"><span
|
||||
class="cmr-12">Bug reporting</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">3.5 </span><a
|
||||
href="userhtmlsu5.html#x13-120003.5"><span
|
||||
class="cmr-12">Example and test programs</span></a></span>
|
||||
@@ -72,13 +67,11 @@ class="cmr-12">Example and test programs</span></a></span>
|
||||
class="cmr-12">4 </span><a
|
||||
href="userhtmlse4.html#x14-130004"><span
|
||||
class="cmr-12">Getting Started</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <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="cmr-12"> </span><span class="subsectionToc" ><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>
|
||||
@@ -86,83 +79,64 @@ class="cmr-12">GPU example</span></a></span>
|
||||
class="cmr-12">5 </span><a
|
||||
href="userhtmlse5.html#x17-160005"><span
|
||||
class="cmr-12">User Interface</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.1 </span><a
|
||||
href="userhtmlsu8.html#x18-170005.1"><span
|
||||
class="cmr-12">Method init</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.2 </span><a
|
||||
href="userhtmlsu9.html#x19-180005.2"><span
|
||||
class="cmr-12">Method set</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.3 </span><a
|
||||
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="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.4 </span><a
|
||||
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="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.5 </span><a
|
||||
href="userhtmlsu12.html#x22-210005.5"><span
|
||||
class="cmr-12">Method build</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.6 </span><a
|
||||
href="userhtmlsu13.html#x23-220005.6"><span
|
||||
class="cmr-12">Method apply</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.7 </span><a
|
||||
href="userhtmlsu14.html#x24-230005.7"><span
|
||||
class="cmr-12">Method free</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.8 </span><a
|
||||
href="userhtmlsu15.html#x25-240005.8"><span
|
||||
class="cmr-12">Method descr</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.9 </span><a
|
||||
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="subsubsectionToc" ><span
|
||||
<br /> <span class="subsubsectionToc" ><span
|
||||
class="cmr-12">5.9.1 </span><a
|
||||
href="userhtmlsu16.html#x26-260005.9.1" id="QQ2-26-42"><span
|
||||
href="userhtmlsu16.html#x26-260005.9.1" id="QQ2-26-43"><span
|
||||
class="cmr-12">Method: dump</span></a></span>
|
||||
<br /> <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="userhtmlsu16.html#x26-270005.9.2" id="QQ2-26-43"><span
|
||||
href="userhtmlsu16.html#x26-270005.9.2" id="QQ2-26-44"><span
|
||||
class="cmr-12">Method: clone</span></a></span>
|
||||
<br /> <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="userhtmlsu16.html#x26-280005.9.3" id="QQ2-26-44"><span
|
||||
href="userhtmlsu16.html#x26-280005.9.3" id="QQ2-26-45"><span
|
||||
class="cmr-12">Method: sizeof</span></a></span>
|
||||
<br /> <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="userhtmlsu16.html#x26-290005.9.4" id="QQ2-26-45"><span
|
||||
href="userhtmlsu16.html#x26-290005.9.4" id="QQ2-26-46"><span
|
||||
class="cmr-12">Method: allocate</span><span
|
||||
class="cmr-12">_wrk</span></a></span>
|
||||
<br /> <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="userhtmlsu16.html#x26-300005.9.5" id="QQ2-26-46"><span
|
||||
href="userhtmlsu16.html#x26-300005.9.5" id="QQ2-26-47"><span
|
||||
class="cmr-12">Method: free</span><span
|
||||
class="cmr-12">_wrk</span></a></span>
|
||||
<br /> <span class="sectionToc" ><span
|
||||
|
||||
@@ -22,19 +22,22 @@ href="userhtmlse2.html#userhtmlli3.html" ><span
|
||||
class="cmr-12">up</span></a><span
|
||||
class="cmr-12">] </span></p></div>
|
||||
<h4 class="likesubsectionHead"><a
|
||||
id="x6-50002"></a><span
|
||||
id="x6-5000"></a><span
|
||||
class="cmr-12">Contributors</span></h4>
|
||||
<ul class="itemize1">
|
||||
<li class="itemize"><span
|
||||
<li class="itemize">
|
||||
<!--l. 25--><p class="noindent" ><span
|
||||
class="cmr-12">Pasqua D’Ambra, IAC-CNR, IT;</span>
|
||||
</li>
|
||||
<li class="itemize"><span
|
||||
class="cmr-12">Fabio Durastante, University of Pisa and IAC-CNR, IT;</span>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
<li class="itemize"><span
|
||||
<li class="itemize">
|
||||
<!--l. 26--><p class="noindent" ><span
|
||||
class="cmr-12">Fabio Durastante, University of Pisa and IAC-CNR, IT;</span>
|
||||
</li>
|
||||
<li class="itemize">
|
||||
<!--l. 27--><p class="noindent" ><span
|
||||
class="cmr-12">Salvatore Filippone, University of Rome Tor-Vergata and IAC-CNR, IT;</span></li></ul>
|
||||
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ href="userhtmlse2.html#userhtmlli4.html" ><span
|
||||
class="cmr-12">up</span></a><span
|
||||
class="cmr-12">] </span></p></div>
|
||||
<h4 class="likesubsectionHead"><a
|
||||
id="x7-60002"></a><span
|
||||
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>
|
||||
@@ -41,6 +41,7 @@ class="cmr-12">When use the library, please cite the following:</span>
|
||||
       archivePrefix = {arXiv},
|
||||
       year={2021}
|
||||
     }
|
||||
|
||||
@Misc{psctoolkit-web-page,
|
||||
       author = {D’Ambra, Pasqua and Durastante, Fabio and Filippone, Salvatore},
|
||||
       title =  {{PSCToolkit} {W}eb page},
|
||||
@@ -56,6 +57,9 @@ class="cmr-12">When use the library, please cite the following:</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli3.html" ><span
|
||||
|
||||
+69
-30
@@ -25,7 +25,7 @@ href="userhtml.html#userhtmlli5.html" ><span
|
||||
class="cmr-12">up</span></a><span
|
||||
class="cmr-12">] </span></p></div>
|
||||
<h3 class="likesectionHead"><a
|
||||
id="x31-39000B"></a><span
|
||||
id="x31-39000"></a><span
|
||||
class="cmr-12">References</span></h3>
|
||||
<!--l. 2--><p class="noindent" >
|
||||
<div class="thebibliography">
|
||||
@@ -303,22 +303,41 @@ 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"> 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">, 2020, </span><a
|
||||
href="https://arxiv.org/abs/2006.16147v3arXiv:2006.16147v2" ><span
|
||||
class="cmr-12">arXiv:2006.16147v3</span></a><span
|
||||
class="cmr-12">.</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
|
||||
@@ -337,7 +356,7 @@ class="cmr-12">)</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[16]</span><span class="bibsp"><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
|
||||
@@ -363,7 +382,7 @@ class="cmr-12">SIAM Journal on Matrix Analysis and Applications, 20 (3), 1999, 7
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[17]</span><span class="bibsp"><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
|
||||
@@ -384,7 +403,7 @@ class="cmr-12">Software, 16 (1) 1990, 1–17.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[18]</span><span class="bibsp"><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
|
||||
@@ -402,10 +421,13 @@ class="cmti-12">extended set of FORTRAN Basic Linear Algebra Subprograms<
|
||||
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">[19]</span><span class="bibsp"><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
|
||||
@@ -422,13 +444,10 @@ 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">[20]</span><span class="bibsp"><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
|
||||
@@ -446,7 +465,7 @@ class="cmr-12">.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[21]</span><span class="bibsp"><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
|
||||
@@ -464,7 +483,7 @@ class="cmr-12"> 23.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[22]</span><span class="bibsp"><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
|
||||
@@ -481,7 +500,7 @@ class="cmr-12">Transactions on Mathematical Software, 26 (4), 2000, 527–55
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[23]</span><span class="bibsp"><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
|
||||
@@ -496,7 +515,7 @@ class="cmr-12">2016, 23:501-518</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[24]</span><span class="bibsp"><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
|
||||
@@ -518,7 +537,7 @@ class="cmr-12">, MIT Press, 1998.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[25]</span><span class="bibsp"><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
|
||||
@@ -537,10 +556,27 @@ 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">[26]</span><span class="bibsp"><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
|
||||
@@ -557,13 +593,10 @@ class="cmti-12">Distributed-memory Sparse Direct Solver for Unsymmetric Linear S
|
||||
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">[27]</span><span class="bibsp"><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
|
||||
@@ -579,7 +612,7 @@ class="cmr-12">Numerical Linear Algebra with Applications, 15 (5), 2008, 473R
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[28]</span><span class="bibsp"><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
|
||||
@@ -593,7 +626,7 @@ class="cmr-12">2003.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[29]</span><span class="bibsp"><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
|
||||
@@ -611,7 +644,7 @@ class="cmr-12">University Press, 1996.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[30]</span><span class="bibsp"><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
|
||||
@@ -631,7 +664,7 @@ class="cmr-12">Press, 1998.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[31]</span><span class="bibsp"><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
|
||||
@@ -650,7 +683,7 @@ class="cmr-12"> Oosterlee, Multigrid, Academic Press, 2001.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[32]</span><span class="bibsp"><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
|
||||
@@ -665,10 +698,13 @@ class="cmti-12">Aggregation Strategies on Massively Parallel Machines</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">[33]</span><span class="bibsp"><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
|
||||
@@ -690,6 +726,9 @@ class="cmr-12">(3) 1996, 179–196.</span></p></div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 156--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlse9.html" ><span
|
||||
|
||||
+18
-13
@@ -88,19 +88,19 @@ class="cmr-12">5</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli5.html#XStuben_01"><span
|
||||
class="cmr-12">31</span></a><span
|
||||
class="cmr-12">33</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">), to be used in the iterative solution of linear systems,</span>
|
||||
<table
|
||||
class="equation"><tr><td>
|
||||
<center class="math-display" >
|
||||
<div class="math-display" >
|
||||
<img
|
||||
src="userhtml0x.png" alt="Ax = b,
|
||||
" class="math-display" ><a
|
||||
id="x4-3001r1"></a></center></td><td class="equation-label"><span
|
||||
id="x4-3001r1"></a></div>
|
||||
</td><td class="equation-label"><span
|
||||
class="cmr-12">(1)</span></td></tr></table>
|
||||
<!--l. 11--><p class="nopar" >
|
||||
<span
|
||||
<!--l. 11--><p class="nopar" ><span
|
||||
class="cmr-12">where </span><span
|
||||
class="cmmi-12">A </span><span
|
||||
class="cmr-12">is a square, real or complex, sparse symmetric positive definite (s.p.d)</span>
|
||||
@@ -121,7 +121,7 @@ class="cmr-12">5</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli5.html#XNotay2008"><span
|
||||
class="cmr-12">27</span></a><span
|
||||
class="cmr-12">29</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">; they can be combined with Jacobi, hybrid forward/backward</span>
|
||||
<span
|
||||
@@ -149,7 +149,8 @@ class="cmr-12">problem, e.g., the discretization of a PDE. To this end, two diff
|
||||
<span
|
||||
class="cmr-12">strategies, based on aggregation, are available:</span>
|
||||
<ul class="itemize1">
|
||||
<li class="itemize"><span
|
||||
<li class="itemize">
|
||||
<!--l. 35--><p class="noindent" ><span
|
||||
class="cmr-12">a decoupled version of the smoothed aggregation procedure proposed in</span><span
|
||||
class="cmr-12"> </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
@@ -159,7 +160,7 @@ class="cmr-12">,</span>
|
||||
<span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli5.html#XVANEK_MANDEL_BREZINA"><span
|
||||
class="cmr-12">33</span></a><span
|
||||
class="cmr-12">35</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">, and already included in the previous versions of the package</span><span
|
||||
class="cmr-12"> </span><span class="cite"><span
|
||||
@@ -176,7 +177,8 @@ class="cmr-12">;</span>
|
||||
|
||||
|
||||
</li>
|
||||
<li class="itemize"><span
|
||||
<li class="itemize">
|
||||
<!--l. 39--><p class="noindent" ><span
|
||||
class="cmr-12">a coupled, parallel implementation of the Coarsening based on Compatible</span>
|
||||
<span
|
||||
class="cmr-12">Weighted Matching introduced in</span><span
|
||||
@@ -232,11 +234,11 @@ class="cmr-12">computational framework</span><span
|
||||
class="cmr-12"> </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli5.html#Xpsblas_00"><span
|
||||
class="cmr-12">22</span></a><span
|
||||
class="cmr-12">23</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli5.html#XPSBLAS3"><span
|
||||
class="cmr-12">21</span></a><span
|
||||
class="cmr-12">22</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">. PSBLAS provides basic linear algebra operators</span>
|
||||
<span
|
||||
@@ -283,11 +285,11 @@ class="cmr-12">AMG4PSBLAS has a layered and modular software architecture where
|
||||
class="cmr-12">layers can be identified. The lower layer consists of the PSBLAS kernels, the middle</span>
|
||||
<span
|
||||
class="cmr-12">one implements the construction and application phases of the preconditioners, and the</span>
|
||||
<span
|
||||
class="cmr-12">upper one provides a uniform interface to all the preconditioners. This architecture</span>
|
||||
|
||||
|
||||
|
||||
<span
|
||||
class="cmr-12">upper one provides a uniform interface to all the preconditioners. This architecture</span>
|
||||
<span
|
||||
class="cmr-12">allows for different levels of use of the package: few black-box routines at the upper</span>
|
||||
<span
|
||||
@@ -362,6 +364,9 @@ class="cmr-12">.</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlse2.html" ><span
|
||||
|
||||
+10
-13
@@ -33,10 +33,10 @@ class="cmr-12">2 </span></span> <a
|
||||
class="cmr-12">Code Distribution</span></h3>
|
||||
<!--l. 5--><p class="noindent" ><span
|
||||
class="cmr-12">AMG4PSBLAS is available from the web site</span>
|
||||
<div class="quotation">
|
||||
<!--l. 8--><p class="indent" > <a
|
||||
<blockquote class="quotation">
|
||||
<!--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></div>
|
||||
class="cmr-12">https://psctoolkit.github.io/products/amg4psblas/</span></a></blockquote>
|
||||
<!--l. 10--><p class="noindent" ><span
|
||||
class="cmr-12">where contact points for further information can be also found.</span>
|
||||
<!--l. 12--><p class="indent" > <span
|
||||
@@ -53,23 +53,20 @@ class="cmr-12">different and more stringent license, most notably the GPL, and t
|
||||
class="cmr-12">into account when treating derived works.</span>
|
||||
<!--l. 18--><p class="indent" > <span
|
||||
class="cmr-12">The library defines a version string with the constant</span>
|
||||
<center class="math-display" >
|
||||
<div class="math-display" >
|
||||
<img
|
||||
src="userhtml1x.png" alt="amg_version_string_
|
||||
" class="math-display" ></center>
|
||||
" class="math-display" ></div>
|
||||
<!--l. 20--><p class="nopar" > <span
|
||||
class="cmr-12">whose current value is </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">1.0</span></span></span><span
|
||||
class="cmr-12">whose current value is </span><span class="obeylines-h"><code class="verb">1.0</code></span><span
|
||||
class="cmr-12">.</span>
|
||||
<!--l. 23--><p class="noindent" >
|
||||
<div class="likesubsectionTOCS">
|
||||
<span
|
||||
class="cmr-12"> </span><span class="likesubsectionToc" ><a
|
||||
href="userhtmlli3.html#x6-50002"><span
|
||||
<span class="likesubsectionToc" ><a
|
||||
href="userhtmlli3.html#x6-5000"><span
|
||||
class="cmr-12">Contributors</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="likesubsectionToc" ><a
|
||||
href="userhtmlli4.html#x7-60002"><span
|
||||
<br /> <span class="likesubsectionToc" ><a
|
||||
href="userhtmlli4.html#x7-6000"><span
|
||||
class="cmr-12">Citing AMG4PSBLAS</span></a></span>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -34,8 +34,7 @@ class="cmr-12">Configuring and Building AMG4PSBLAS</span></h3>
|
||||
<!--l. 4--><p class="noindent" ><span
|
||||
class="cmr-12">In order to build AMG4PSBLAS it is necessary to set up a Makefile with appropriate</span>
|
||||
<span
|
||||
class="cmr-12">system-dependent variables; this is done by means of the </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">configure</span></span></span> <span
|
||||
class="cmr-12">system-dependent variables; this is done by means of the </span><span class="obeylines-h"><code class="verb">configure</code></span> <span
|
||||
class="cmr-12">script. The</span>
|
||||
<span
|
||||
class="cmr-12">distribution also includes the autoconf and automake sources employed to generate the</span>
|
||||
@@ -48,12 +47,10 @@ class="cmr-12"> 2003, with some</span>
|
||||
class="cmr-12">interfaces to external libraries in C; the Fortran compiler must support the</span>
|
||||
<span
|
||||
class="cmr-12">Fortran</span><span
|
||||
class="cmr-12"> 2003 standard plus the extension </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">MOLD=</span></span></span> <span
|
||||
class="cmr-12"> 2003 standard plus the extension </span><span class="obeylines-h"><code class="verb">MOLD=</code></span> <span
|
||||
class="cmr-12">feature, which enhances the usability</span>
|
||||
<span
|
||||
class="cmr-12">of </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">ALLOCATE</span></span></span><span
|
||||
class="cmr-12">of </span><span class="obeylines-h"><code class="verb">ALLOCATE</code></span><span
|
||||
class="cmr-12">. Most Fortran compilers provide this feature; in particular, this is</span>
|
||||
<span
|
||||
class="cmr-12">supported by the GNU Fortran compiler, for which we recommend to use at least</span>
|
||||
@@ -87,28 +84,23 @@ class="cmr-12">the base and optional software used by AMG4PSBLAS is given in the
|
||||
class="cmr-12">sections.</span>
|
||||
<!--l. 30--><p class="noindent" >
|
||||
<div class="subsectionTOCS">
|
||||
<span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<span class="subsectionToc" ><span
|
||||
class="cmr-12">3.1 </span><a
|
||||
href="userhtmlsu1.html#x9-80003.1"><span
|
||||
class="cmr-12">Prerequisites</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">3.2 </span><a
|
||||
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="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">3.3 </span><a
|
||||
href="userhtmlsu3.html#x11-100003.3"><span
|
||||
class="cmr-12">Configuration options</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">3.4 </span><a
|
||||
href="userhtmlsu4.html#x12-110003.4"><span
|
||||
class="cmr-12">Bug reporting</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">3.5 </span><a
|
||||
href="userhtmlsu5.html#x13-120003.5"><span
|
||||
class="cmr-12">Example and test programs</span></a></span>
|
||||
|
||||
+127
-169
@@ -40,56 +40,46 @@ class="cmr-12">PSBLAS</span><span
|
||||
class="cmr-12"> </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli5.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">20</span></a><span
|
||||
class="cmr-12">21</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span>
|
||||
<!--l. 9--><p class="indent" > <span
|
||||
class="cmr-12">The following steps are required:</span>
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x14-13002x1"><span
|
||||
<li
|
||||
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>
|
||||
<span
|
||||
class="cmr-12">following an object-oriented approach.</span>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x14-13004x2"><span
|
||||
<li
|
||||
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
|
||||
class="cmti-12">preconditioner type chosen by the user</span><span
|
||||
class="cmr-12">. This is performed by the routine</span>
|
||||
<span class="lstinline"></span><span
|
||||
class="cmtt-12">init</span><span
|
||||
<code class="lstinline"><span style="color:#000000">init</span></code><span
|
||||
class="cmr-12">, which also sets defaults for each preconditioner type selected by</span>
|
||||
<span
|
||||
class="cmr-12">the user. The preconditioner types and the defaults associated with them</span>
|
||||
@@ -98,34 +88,35 @@ class="cmr-12">are given in Table</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="#x14-13015r1"><span
|
||||
class="cmr-12">1</span><!--tex4ht:ref: tab:precinit --></a><span
|
||||
class="cmr-12">, where the strings used by </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">init</span> <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>
|
||||
<span
|
||||
class="cmr-12">preconditioner types are also given. Note that these strings are valid also if</span>
|
||||
<span
|
||||
class="cmr-12">uppercase letters are substituted by corresponding lowercase ones.</span>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x14-13006x3"><span
|
||||
<li
|
||||
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
|
||||
class="cmti-12">parameters. </span><span
|
||||
class="cmr-12">This is performed by the routine </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">set</span><span
|
||||
class="cmr-12">This is performed by the routine </span><code class="lstinline"><span style="color:#000000">set</span></code><span
|
||||
class="cmr-12">. This routine must be</span>
|
||||
<span
|
||||
class="cmr-12">called if the user wants to modify the default values of the parameters</span>
|
||||
<span
|
||||
class="cmr-12">associated with the selected preconditioner type, to obtain a variant of that</span>
|
||||
<span
|
||||
class="cmr-12">preconditioner. Examples of use of </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">set</span> <span
|
||||
class="cmr-12">preconditioner. Examples of use of </span><code class="lstinline"><span style="color:#000000">set</span></code> <span
|
||||
class="cmr-12">are given in Section</span><span
|
||||
class="cmr-12"> </span><a
|
||||
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
|
||||
@@ -142,62 +133,57 @@ href="userhtmlsu9.html#x19-18015r8"><span
|
||||
class="cmr-12">8</span><!--tex4ht:ref: tab:p_smoother_1 --></a><span
|
||||
class="cmr-12">.</span>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x14-13008x4"><span
|
||||
<li
|
||||
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>
|
||||
<span
|
||||
class="cmr-12">multilevel, then two steps must be performed, as specified next.</span>
|
||||
|
||||
|
||||
|
||||
<ol class="enumerate2" >
|
||||
<li
|
||||
class="enumerate" id="x14-13009x0"><span
|
||||
<li
|
||||
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>
|
||||
<span
|
||||
class="cmr-12">routine </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">hierarchy_build</span><span
|
||||
class="cmr-12">routine </span><code class="lstinline"><span style="color:#000000">hierarchy_build</span></code><span
|
||||
class="cmr-12">.</span>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x14-13010x0"><span
|
||||
<li
|
||||
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>
|
||||
<span
|
||||
class="cmr-12">routine </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">smoothers_build</span><span
|
||||
class="cmr-12">routine </span><code class="lstinline"><span style="color:#000000">smoothers_build</span></code><span
|
||||
class="cmr-12">.</span></li></ol>
|
||||
<!--l. 48--><p class="noindent" ><span
|
||||
class="cmr-12">If the selected preconditioner is one-level, it is built in a single step, performed by</span>
|
||||
<span
|
||||
class="cmr-12">the routine </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">bld</span><span
|
||||
class="cmr-12">the routine </span><code class="lstinline"><span style="color:#000000">bld</span></code><span
|
||||
class="cmr-12">.</span>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x14-13012x5"><span
|
||||
<li
|
||||
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>
|
||||
<span
|
||||
class="cmr-12">the method </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">apply</span><span
|
||||
class="cmr-12">the method </span><code class="lstinline"><span style="color:#000000">apply</span></code><span
|
||||
class="cmr-12">. When using the PSBLAS Krylov solvers, this step is</span>
|
||||
<span
|
||||
class="cmr-12">completely transparent to the user, since </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">apply</span> <span
|
||||
class="cmr-12">completely transparent to the user, since </span><code class="lstinline"><span style="color:#000000">apply</span></code> <span
|
||||
class="cmr-12">is called by the PSBLAS routine</span>
|
||||
<span
|
||||
class="cmr-12">implementing the Krylov solver (</span><span class="lstinline"></span><span
|
||||
class="cmtt-12">psb_krylov</span><span
|
||||
class="cmr-12">implementing the Krylov solver (</span><code class="lstinline"><span style="color:#000000">psb_krylov</span></code><span
|
||||
class="cmr-12">).</span>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x14-13014x6"><span
|
||||
<li
|
||||
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><span class="lstinline"></span><span
|
||||
class="cmtt-12">free</span><span
|
||||
class="cmr-12">. This is performed by the routine </span><code class="lstinline"><span style="color:#000000">free</span></code><span
|
||||
class="cmr-12">.</span>
|
||||
<span
|
||||
class="cmr-12">This step is complementary to step 1 and should be performed when the</span>
|
||||
@@ -231,28 +217,28 @@ class="cmr-12">.</span>
|
||||
>
|
||||
<!--l. 64--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-1" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
|
||||
><colgroup id="TBL-1-1g"><col
|
||||
id="TBL-1-1"></colgroup><colgroup id="TBL-1-2g"><col
|
||||
id="TBL-1-2"></colgroup><colgroup id="TBL-1-3g"><col
|
||||
id="TBL-1-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
|
||||
@@ -274,121 +260,98 @@ 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" ><span class="lstinline"></span><span
|
||||
class="cmtt-10x-x-109">’</span><span
|
||||
class="cmtt-10x-x-109">NONE</span><span
|
||||
class="cmtt-10x-x-109">’</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-2-3"
|
||||
class="td11"><!--l. 69--><p class="noindent" >Considered to use the PSBLAS Krylov
|
||||
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" ><span class="lstinline"></span><span
|
||||
class="cmtt-10x-x-109">’</span><span
|
||||
class="cmtt-10x-x-109">DIAG</span><span
|
||||
class="cmtt-10x-x-109">’</span>,
|
||||
<span class="lstinline"></span><span
|
||||
class="cmtt-10x-x-109">’</span><span
|
||||
class="cmtt-10x-x-109">JACOBI</span><span
|
||||
class="cmtt-10x-x-109">’</span>,
|
||||
<span class="lstinline"></span><span
|
||||
class="cmtt-10x-x-109">’</span><span
|
||||
class="cmtt-10x-x-109">L1</span><span
|
||||
class="cmtt-10x-x-109">-</span><span
|
||||
class="cmtt-10x-x-109">JACOBI</span><span
|
||||
class="cmtt-10x-x-109">’</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-3-3"
|
||||
class="td11"><!--l. 71--><p class="noindent" >Diagonal preconditioner. For any zero
|
||||
diagonal entry of the matrix to be
|
||||
preconditioned, the corresponding entry
|
||||
of the preconditioner is set to 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" ><span class="lstinline"></span><span
|
||||
class="cmtt-10x-x-109">’</span><span
|
||||
class="cmtt-10x-x-109">GS</span><span
|
||||
class="cmtt-10x-x-109">’</span>,
|
||||
<span class="lstinline"></span><span
|
||||
class="cmtt-10x-x-109">’</span><span
|
||||
class="cmtt-10x-x-109">L1</span><span
|
||||
class="cmtt-10x-x-109">-</span><span
|
||||
class="cmtt-10x-x-109">GS</span><span
|
||||
class="cmtt-10x-x-109">’</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-4-3"
|
||||
class="td11"><!--l. 74--><p class="noindent" >Hybrid Gauss-Seidel (forward), that is,
|
||||
global block Jacobi with Gauss-Seidel as
|
||||
local solver. </td>
|
||||
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" ><span class="lstinline"></span><span
|
||||
class="cmtt-10x-x-109">’</span><span
|
||||
class="cmtt-10x-x-109">FBGS</span><span
|
||||
class="cmtt-10x-x-109">’</span>,
|
||||
<span class="lstinline"></span><span
|
||||
class="cmtt-10x-x-109">’</span><span
|
||||
class="cmtt-10x-x-109">L1</span><span
|
||||
class="cmtt-10x-x-109">-</span><span
|
||||
class="cmtt-10x-x-109">FBGS</span><span
|
||||
class="cmtt-10x-x-109">’</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-5-3"
|
||||
class="td11"><!--l. 77--><p class="noindent" >Symmetrized hybrid Gauss-Seidel, that
|
||||
is, forward Gauss-Seidel followed by
|
||||
backward Gauss-Seidel. </td>
|
||||
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" ><span class="lstinline"></span><span
|
||||
class="cmtt-10x-x-109">’</span><span
|
||||
class="cmtt-10x-x-109">BJAC</span><span
|
||||
class="cmtt-10x-x-109">’</span>,
|
||||
<span class="lstinline"></span><span
|
||||
class="cmtt-10x-x-109">’</span><span
|
||||
class="cmtt-10x-x-109">L1</span><span
|
||||
class="cmtt-10x-x-109">-</span><span
|
||||
class="cmtt-10x-x-109">BJAC</span><span
|
||||
class="cmtt-10x-x-109">’</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-6-3"
|
||||
class="td11"><!--l. 80--><p class="noindent" >Block-Jacobi with ILU(0) on the local
|
||||
blocks. </td>
|
||||
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" ><span class="lstinline"></span><span
|
||||
class="cmtt-10x-x-109">’</span><span
|
||||
class="cmtt-10x-x-109">AS</span><span
|
||||
class="cmtt-10x-x-109">’</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-7-3"
|
||||
class="td11"><!--l. 81--><p class="noindent" >Additive Schwarz (AS), with overlap 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" ><span class="lstinline"></span><span
|
||||
class="cmtt-10x-x-109">’</span><span
|
||||
class="cmtt-10x-x-109">ML</span><span
|
||||
class="cmtt-10x-x-109">’</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-8-3"
|
||||
class="td11"><!--l. 83--><p class="noindent" >V-cycle with one hybrid
|
||||
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
|
||||
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>
|
||||
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?: x14-13015r1 -->
|
||||
@@ -399,18 +362,15 @@ class="content">Preconditioner types, corresponding strings and default choices.
|
||||
</div><hr class="endfloat" />
|
||||
</div>
|
||||
<!--l. 98--><p class="indent" > <span
|
||||
class="cmr-12">Note that the module </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">amg_prec_mod</span><span
|
||||
class="cmr-12">Note that the module </span><code class="lstinline"><span style="color:#000000">amg_prec_mod</span></code><span
|
||||
class="cmr-12">, containing the definition of the preconditioner</span>
|
||||
<span
|
||||
class="cmr-12">data type and the interfaces to the routines of AMG4PSBLAS, must be used</span>
|
||||
<span
|
||||
class="cmr-12">in any program calling such routines. The modules </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">psb_base_mod</span><span
|
||||
class="cmr-12">in any program calling such routines. The modules </span><code class="lstinline"><span style="color:#000000">psb_base_mod</span></code><span
|
||||
class="cmr-12">, for the</span>
|
||||
<span
|
||||
class="cmr-12">sparse matrix and communication descriptor data types, and </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">psb_krylov_mod</span><span
|
||||
class="cmr-12">sparse matrix and communication descriptor data types, and </span><code class="lstinline"><span style="color:#000000">psb_krylov_mod</span></code><span
|
||||
class="cmr-12">,</span>
|
||||
<span
|
||||
class="cmr-12">for interfacing with the Krylov solvers, must be also used (see Section</span><span
|
||||
@@ -436,13 +396,11 @@ class="cmr-12">problems. However, this does not necessarily correspond to the sh
|
||||
class="cmr-12">on parallel</span><span
|
||||
class="cmr-12"> computers.</span>
|
||||
<div class="subsectionTOCS">
|
||||
<span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<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="cmr-12"> </span><span class="subsectionToc" ><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>
|
||||
|
||||
+48
-89
@@ -33,28 +33,20 @@ class="cmr-12">5 </span></span> <a
|
||||
class="cmr-12">User Interface</span></h3>
|
||||
<!--l. 5--><p class="noindent" ><span
|
||||
class="cmr-12">The basic user interface of AMG4PBLAS consists of eight methods. The six methods</span>
|
||||
<span class="lstinline"></span><span
|
||||
class="cmtt-12">init</span><span
|
||||
class="cmr-12">, </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">set</span><span
|
||||
class="cmr-12">, </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">build</span><span
|
||||
class="cmr-12">, </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">hierarchy_build</span><span
|
||||
class="cmr-12">, </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">smoothers_build</span> <span
|
||||
class="cmr-12">and </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">apply</span> <span
|
||||
<code class="lstinline"><span style="color:#000000">init</span></code><span
|
||||
class="cmr-12">, </span><code class="lstinline"><span style="color:#000000">set</span></code><span
|
||||
class="cmr-12">, </span><code class="lstinline"><span style="color:#000000">build</span></code><span
|
||||
class="cmr-12">, </span><code class="lstinline"><span style="color:#000000">hierarchy_build</span></code><span
|
||||
class="cmr-12">, </span><code class="lstinline"><span style="color:#000000">smoothers_build</span></code> <span
|
||||
class="cmr-12">and </span><code class="lstinline"><span style="color:#000000">apply</span></code> <span
|
||||
class="cmr-12">encapsulate all the</span>
|
||||
<span
|
||||
class="cmr-12">functionalities for the setup and the application of any multilevel and one-level</span>
|
||||
<span
|
||||
class="cmr-12">preconditioner implemented in the package. The method </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">free</span> <span
|
||||
class="cmr-12">preconditioner implemented in the package. The method </span><code class="lstinline"><span style="color:#000000">free</span></code> <span
|
||||
class="cmr-12">deallocates the</span>
|
||||
<span
|
||||
class="cmr-12">preconditioner data structure, while </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">descr</span> <span
|
||||
class="cmr-12">preconditioner data structure, while </span><code class="lstinline"><span style="color:#000000">descr</span></code> <span
|
||||
class="cmr-12">prints a description of the preconditioner</span>
|
||||
<span
|
||||
class="cmr-12">setup by the user. For backward compatibility, methods are also accessible as</span>
|
||||
@@ -67,53 +59,44 @@ class="cmr-12">real/complex and single/double precision data; arguments with app
|
||||
<span
|
||||
class="cmr-12">must be passed to the method, i.e.,</span>
|
||||
<ul class="itemize1">
|
||||
<li class="itemize"><span
|
||||
<li class="itemize">
|
||||
<!--l. 20--><p class="noindent" ><span
|
||||
class="cmr-12">the sparse matrix data structure, containing the matrix to be preconditioned,</span>
|
||||
<span
|
||||
class="cmr-12">must be of type </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">psb_</span></span></span><span
|
||||
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">spmat_type</span></span></span> <span
|
||||
class="cmr-12">must be of type </span><span class="obeylines-h"><code class="verb">psb_</code></span><span
|
||||
class="cmti-12">x</span><span class="obeylines-h"><code class="verb">spmat_type</code></span> <span
|
||||
class="cmr-12">with </span><span
|
||||
class="cmti-12">x </span><span
|
||||
class="cmr-12">= </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"><code class="verb">s</code></span> <span
|
||||
class="cmr-12">for real single precision, </span><span
|
||||
class="cmti-12">x</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"><code class="verb">d</code></span> <span
|
||||
class="cmr-12">for real double precision, </span><span
|
||||
class="cmti-12">x </span><span
|
||||
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">c</span></span></span> <span
|
||||
class="cmr-12">= </span><span class="obeylines-h"><code class="verb">c</code></span> <span
|
||||
class="cmr-12">for complex single precision, </span><span
|
||||
class="cmti-12">x </span><span
|
||||
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">z</span></span></span> <span
|
||||
class="cmr-12">= </span><span class="obeylines-h"><code class="verb">z</code></span> <span
|
||||
class="cmr-12">for</span>
|
||||
<span
|
||||
class="cmr-12">complex double precision;</span>
|
||||
</li>
|
||||
<li class="itemize"><span
|
||||
class="cmr-12">the preconditioner data structure must be of 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_type</span></span></span><span
|
||||
<li class="itemize">
|
||||
<!--l. 25--><p class="noindent" ><span
|
||||
class="cmr-12">the preconditioner data structure must be of type </span><span class="obeylines-h"><code class="verb">amg_</code></span><span
|
||||
class="cmti-12">x</span><span class="obeylines-h"><code class="verb">prec_type</code></span><span
|
||||
class="cmr-12">, with </span><span
|
||||
class="cmti-12">x</span>
|
||||
<span
|
||||
class="cmr-12">= </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">, </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">z</span></span></span><span
|
||||
class="cmr-12">= </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">, </span><span class="obeylines-h"><code class="verb">z</code></span><span
|
||||
class="cmr-12">, according to the sparse matrix data structure;</span>
|
||||
</li>
|
||||
<li class="itemize"><span
|
||||
<li class="itemize">
|
||||
<!--l. 29--><p class="noindent" ><span
|
||||
class="cmr-12">the arrays containing the vectors </span><span
|
||||
class="cmmi-12">v </span><span
|
||||
class="cmr-12">and </span><span
|
||||
@@ -127,24 +110,19 @@ class="cmmi-12">B</span><sup><span
|
||||
class="cmsy-8">-</span><span
|
||||
class="cmr-8">1</span></sup><span
|
||||
class="cmmi-12">v </span><span
|
||||
class="cmr-12">must be of type </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">psb_</span></span></span><span
|
||||
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">vect_type</span></span></span> <span
|
||||
class="cmr-12">must be of type </span><span class="obeylines-h"><code class="verb">psb_</code></span><span
|
||||
class="cmti-12">x</span><span class="obeylines-h"><code class="verb">vect_type</code></span> <span
|
||||
class="cmr-12">with </span><span
|
||||
class="cmti-12">x </span><span
|
||||
class="cmr-12">= </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">= </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">,</span>
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">z</span></span></span><span
|
||||
<span class="obeylines-h"><code class="verb">z</code></span><span
|
||||
class="cmr-12">, in a manner completely analogous to the sparse matrix type;</span>
|
||||
</li>
|
||||
<li class="itemize"><span
|
||||
<li class="itemize">
|
||||
<!--l. 34--><p class="noindent" ><span
|
||||
class="cmr-12">real parameters defining the preconditioner must be declared according to</span>
|
||||
<span
|
||||
class="cmr-12">the precision of the sparse matrix and preconditioner data structures (see</span>
|
||||
@@ -160,81 +138,62 @@ class="cmr-12">A description of each method is given in the remainder of this se
|
||||
|
||||
|
||||
<div class="subsectionTOCS">
|
||||
<span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<span class="subsectionToc" ><span
|
||||
class="cmr-12">5.1 </span><a
|
||||
href="userhtmlsu8.html#x18-170005.1"><span
|
||||
class="cmr-12">Method init</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.2 </span><a
|
||||
href="userhtmlsu9.html#x19-180005.2"><span
|
||||
class="cmr-12">Method set</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.3 </span><a
|
||||
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="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.4 </span><a
|
||||
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="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.5 </span><a
|
||||
href="userhtmlsu12.html#x22-210005.5"><span
|
||||
class="cmr-12">Method build</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.6 </span><a
|
||||
href="userhtmlsu13.html#x23-220005.6"><span
|
||||
class="cmr-12">Method apply</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.7 </span><a
|
||||
href="userhtmlsu14.html#x24-230005.7"><span
|
||||
class="cmr-12">Method free</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.8 </span><a
|
||||
href="userhtmlsu15.html#x25-240005.8"><span
|
||||
class="cmr-12">Method descr</span></a></span>
|
||||
<br /> <span
|
||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||
<br /> <span class="subsectionToc" ><span
|
||||
class="cmr-12">5.9 </span><a
|
||||
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="subsubsectionToc" ><span
|
||||
<br /> <span class="subsubsectionToc" ><span
|
||||
class="cmr-12">5.9.1 </span><a
|
||||
href="userhtmlsu16.html#x26-260005.9.1"><span
|
||||
class="cmr-12">Method: dump</span></a></span>
|
||||
<br /> <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="userhtmlsu16.html#x26-270005.9.2"><span
|
||||
class="cmr-12">Method: clone</span></a></span>
|
||||
<br /> <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="userhtmlsu16.html#x26-280005.9.3"><span
|
||||
class="cmr-12">Method: sizeof</span></a></span>
|
||||
<br /> <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="userhtmlsu16.html#x26-290005.9.4"><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="subsubsectionToc" ><span
|
||||
<br /> <span class="subsubsectionToc" ><span
|
||||
class="cmr-12">5.9.5 </span><a
|
||||
href="userhtmlsu16.html#x26-300005.9.5"><span
|
||||
class="cmr-12">Method: free</span><span
|
||||
|
||||
+44
-85
@@ -63,57 +63,28 @@ class="cmr-12">Once the new smoother/solver class has been developed, to use it
|
||||
<span
|
||||
class="cmr-12">the multilevel preconditioners it is necessary to:</span>
|
||||
<ul class="itemize1">
|
||||
<li class="itemize"><span
|
||||
<li class="itemize">
|
||||
<!--l. 23--><p class="noindent" ><span
|
||||
class="cmr-12">declare in the application program a variable of the new type;</span>
|
||||
</li>
|
||||
<li class="itemize"><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
|
||||
<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"><code class="verb">set</code></span> <span
|
||||
class="cmr-12">routine as in the following:</span>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 26--><p class="noindent" >
|
||||
<!--l. 27--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">call</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">p</span><span
|
||||
class="cmtt-12">%</span><span
|
||||
class="cmtt-12">set</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">smoother</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">info</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">[,</span><span
|
||||
class="cmtt-12">ilev</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">ilmax</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">pos</span><span
|
||||
class="cmtt-12">])</span><br />
|
||||
<span class="lstinline"></span><span
|
||||
class="cmtt-12">call</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">p</span><span
|
||||
class="cmtt-12">%</span><span
|
||||
class="cmtt-12">set</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">solver</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">info</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">[,</span><span
|
||||
class="cmtt-12">ilev</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">ilmax</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">pos</span><span
|
||||
class="cmtt-12">])</span></div>
|
||||
<!--l. 27--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">set</span><span style="color:#000000">(</span><span style="color:#000000">smoother</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000"> </span><span style="color:#000000">[,</span><span style="color:#000000">ilev</span><span style="color:#000000">,</span><span style="color:#000000">ilmax</span><span style="color:#000000">,</span><span style="color:#000000">pos</span><span style="color:#000000">])</span></code><br />
|
||||
<code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">set</span><span style="color:#000000">(</span><span style="color:#000000">solver</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000"> </span><span style="color:#000000">[,</span><span style="color:#000000">ilev</span><span style="color:#000000">,</span><span style="color:#000000">ilmax</span><span style="color:#000000">,</span><span style="color:#000000">pos</span><span style="color:#000000">])</span></code></div>
|
||||
</li>
|
||||
<li class="itemize"><span
|
||||
<li class="itemize">
|
||||
<!--l. 30--><p class="noindent" ><span
|
||||
class="cmr-12">link the code implementing the various methods into the application</span>
|
||||
<span
|
||||
class="cmr-12">executable.</span></li></ul>
|
||||
|
||||
|
||||
|
||||
<!--l. 32--><p class="noindent" ><span
|
||||
class="cmr-12">The new solver object is then dynamically included in the preconditioner structure,</span>
|
||||
<span
|
||||
@@ -124,14 +95,9 @@ class="cmr-12">to which the preconditioner will conform, even though</span>
|
||||
class="cmr-12">the AMG4PSBLAS library has not been modified to account for this new</span>
|
||||
<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>
|
||||
@@ -147,8 +113,7 @@ class="cmr-12">any keyword/value pair that does not pertain to a given solver is
|
||||
class="cmr-12">ignored.</span>
|
||||
<!--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>
|
||||
@@ -165,61 +130,51 @@ class="cmr-12">The interfaces for the calls shown above are defined using</span>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 56--><p class="noindent" >
|
||||
<div class="tabular"> <table id="TBL-22" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-22-1g"><col
|
||||
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. 58--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">smoother</span> </td><td style="white-space:normal; text-align:left;" id="TBL-22-1-2"
|
||||
class="td11"><!--l. 58--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">class</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">amg_x_base_smoother_type</span><span
|
||||
class="cmtt-12">)</span> </td>
|
||||
<div class="tabular"> <table id="TBL-23" class="tabular"
|
||||
|
||||
><colgroup id="TBL-23-1g"><col
|
||||
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>
|
||||
</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. 59--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-22-2-2"
|
||||
class="td11"><!--l. 59--><p class="noindent" ><span
|
||||
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="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-22-3-"><td style="white-space:normal; text-align:left;" id="TBL-22-3-1"
|
||||
class="td11"><!--l. 61--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">solver</span> </td><td style="white-space:normal; text-align:left;" id="TBL-22-3-2"
|
||||
class="td11"><!--l. 61--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">class</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">amg_x_base_solver_type</span><span
|
||||
class="cmtt-12">)</span> </td>
|
||||
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>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-22-4-"><td style="white-space:normal; text-align:left;" id="TBL-22-4-1"
|
||||
class="td11"><!--l. 62--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-22-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>
|
||||
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>
|
||||
<!--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="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>
|
||||
|
||||
|
||||
|
||||
<pre class="verbatim" id="verbatim-13">
|
||||
<pre class="verbatim" id="verbatim-14">
|
||||
|
||||
  ! sparse matrix and preconditioner
|
||||
  type(psb_dspmat_type) :: a
|
||||
  type(amg_dprec_type)  :: prec
|
||||
  type(amg_d_tlu_solver_type) :: tlusv
|
||||
|
||||
......
|
||||
  !
|
||||
  !  prepare the preconditioner: an ML with defaults, but with TLU solver at
|
||||
@@ -230,6 +185,7 @@ class="cmr-12">pass it as follows:</span>
|
||||
  nlv = prec%get_nlevs()
|
||||
  call prec%set(tlusv,   info,ilev=1,ilmax=max(1,nlv-1))
|
||||
  call prec%smoothers_build(a,desc_a,info)
|
||||
|
||||
</pre>
|
||||
<!--l. 107--><p class="nopar" >
|
||||
|
||||
@@ -241,6 +197,9 @@ class="cmr-12">pass it as follows:</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlse7.html" ><span
|
||||
|
||||
@@ -34,8 +34,7 @@ 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>
|
||||
@@ -52,7 +51,7 @@ class="cmr-12">PSBLAS error handling routines; for further details see the PSBLA
|
||||
<span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli5.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">20</span></a><span
|
||||
class="cmr-12">21</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span>
|
||||
|
||||
@@ -67,6 +66,9 @@ class="cmr-12">.</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlse8.html" ><span
|
||||
|
||||
@@ -36,14 +36,18 @@ class="cmr-12">AMG4PSBLAS is freely distributable under the following copyright
|
||||
|
||||
|
||||
|
||||
<pre class="verbatim" id="verbatim-14">
|
||||
<pre class="verbatim" id="verbatim-15">
|
||||
|
||||
                           AMG4PSBLAS  version 1.0
|
||||
              Algebraic MultiGrid Preconditioners Package
|
||||
             based on PSBLAS (Parallel Sparse BLAS version 3.7)
|
||||
|
||||
  (C) Copyright 2021
|
||||
|
||||
  Pasqua D’Ambra         IAC-CNR, IT
|
||||
  Fabio Durastante       University of Pisa and IAC-CNR, IT
|
||||
  Salvatore Filippone    University of Rome Tor-Vergata and IAC-CNR, IT
|
||||
|
||||
  Redistribution and use in source and binary forms, with or without
|
||||
  modification, are permitted provided that the following conditions
|
||||
  are met:
|
||||
@@ -55,6 +59,7 @@ class="cmr-12">AMG4PSBLAS is freely distributable under the following copyright
|
||||
    3. The name of the MLD2P4 group or the names of its contributors may
|
||||
       not be used to endorse or promote products derived from this
|
||||
       software without specific written permission.
|
||||
|
||||
  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
  ‘‘AS IS’’ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
  TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
@@ -66,6 +71,7 @@ class="cmr-12">AMG4PSBLAS is freely distributable under the following copyright
|
||||
  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
  POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
</pre>
|
||||
<!--l. 44--><p class="nopar" >
|
||||
|
||||
@@ -78,14 +84,20 @@ class="cmr-12">abide by its terms:</span>
|
||||
|
||||
|
||||
|
||||
<pre class="verbatim" id="verbatim-15">
|
||||
<pre class="verbatim" id="verbatim-16">
|
||||
|
||||
|
||||
                           MLD2P4  version 2.2
|
||||
  MultiLevel Domain Decomposition Parallel Preconditioners Package
|
||||
             based on PSBLAS (Parallel Sparse BLAS version 3.5)
|
||||
|
||||
  (C) Copyright 2008-2018
|
||||
|
||||
      Salvatore Filippone
|
||||
      Pasqua D’Ambra
|
||||
      Daniela di Serafino
|
||||
|
||||
|
||||
  Redistribution and use in source and binary forms, with or without
|
||||
  modification, are permitted provided that the following conditions
|
||||
  are met:
|
||||
@@ -97,6 +109,7 @@ class="cmr-12">abide by its terms:</span>
|
||||
    3. The name of the MLD2P4 group or the names of its contributors may
|
||||
       not be used to endorse or promote products derived from this
|
||||
       software without specific written permission.
|
||||
|
||||
  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
  ‘‘AS IS’’ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
  TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
@@ -108,6 +121,7 @@ class="cmr-12">abide by its terms:</span>
|
||||
  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
  POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
</pre>
|
||||
<!--l. 87--><p class="nopar" > <span
|
||||
class="cmr-12">AMG4PSBLAS is distributed together with (a small part of) the graph-matching</span>
|
||||
@@ -127,7 +141,7 @@ class="cmr-12">here.</span>
|
||||
|
||||
|
||||
|
||||
<pre class="verbatim" id="verbatim-16">
|
||||
<pre class="verbatim" id="verbatim-17">
|
||||
// ***********************************************************************
|
||||
//
|
||||
//        MatchboxP: A C++ library for approximate weighted matching
|
||||
@@ -179,6 +193,9 @@ class="cmr-12">here.</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlse9.html" ><span
|
||||
|
||||
+58
-34
@@ -34,7 +34,7 @@ class="cmr-12">Contributor Covenant Code of Conduct</span></h3>
|
||||
<div class="paragraphTOCS">
|
||||
</div>
|
||||
<!--l. 5--><p class="noindent" ><span class="paragraphHead"><a
|
||||
id="x30-35000B"></a><span
|
||||
id="x30-35000"></a><span
|
||||
class="cmbx-12">Our Pledge</span></span>
|
||||
<span
|
||||
class="cmr-12">We as members, contributors, and leaders pledge to make participation in</span>
|
||||
@@ -55,52 +55,62 @@ class="cmr-12">of behavior that contributes to a positive environment for our co
|
||||
<span
|
||||
class="cmr-12">include:</span>
|
||||
<ul class="itemize1">
|
||||
<li class="itemize"><span
|
||||
<li class="itemize">
|
||||
<!--l. 18--><p class="noindent" ><span
|
||||
class="cmr-12">Demonstrating empathy and kindness toward other people</span>
|
||||
</li>
|
||||
<li class="itemize"><span
|
||||
<li class="itemize">
|
||||
<!--l. 19--><p class="noindent" ><span
|
||||
class="cmr-12">Being respectful of differing opinions, viewpoints, and experiences</span>
|
||||
</li>
|
||||
<li class="itemize"><span
|
||||
<li class="itemize">
|
||||
<!--l. 20--><p class="noindent" ><span
|
||||
class="cmr-12">Giving and gracefully accepting constructive feedback</span>
|
||||
</li>
|
||||
<li class="itemize"><span
|
||||
<li class="itemize">
|
||||
<!--l. 21--><p class="noindent" ><span
|
||||
class="cmr-12">Accepting responsibility and apologizing to those affected by our mistakes,</span>
|
||||
<span
|
||||
class="cmr-12">and learning from the experience</span>
|
||||
</li>
|
||||
<li class="itemize"><span
|
||||
<li class="itemize">
|
||||
<!--l. 23--><p class="noindent" ><span
|
||||
class="cmr-12">Focusing on what is best not just for us as individuals, but for the overall</span>
|
||||
<span
|
||||
class="cmr-12">community</span></li></ul>
|
||||
<!--l. 26--><p class="noindent" ><span
|
||||
class="cmr-12">Examples of unacceptable behavior include:</span>
|
||||
<ul class="itemize1">
|
||||
<li class="itemize"><span
|
||||
class="cmr-12">The use of sexualized language or imagery, and sexual attention or advances</span>
|
||||
<span
|
||||
class="cmr-12">of any kind</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
|
||||
class="cmr-12">The use of sexualized language or imagery, and sexual attention or advances</span>
|
||||
<span
|
||||
class="cmr-12">of any kind</span>
|
||||
</li>
|
||||
<li class="itemize"><span
|
||||
<li class="itemize">
|
||||
<!--l. 30--><p class="noindent" ><span
|
||||
class="cmr-12">Trolling, insulting or derogatory comments, and personal or political attacks</span>
|
||||
</li>
|
||||
<li class="itemize"><span
|
||||
<li class="itemize">
|
||||
<!--l. 31--><p class="noindent" ><span
|
||||
class="cmr-12">Public or private harassment</span>
|
||||
</li>
|
||||
<li class="itemize"><span
|
||||
<li class="itemize">
|
||||
<!--l. 32--><p class="noindent" ><span
|
||||
class="cmr-12">Publishing others’ private information, such as a physical or email address,</span>
|
||||
<span
|
||||
class="cmr-12">without their explicit permission</span>
|
||||
</li>
|
||||
<li class="itemize"><span
|
||||
<li class="itemize">
|
||||
<!--l. 34--><p class="noindent" ><span
|
||||
class="cmr-12">Other conduct which could reasonably be considered inappropriate in a</span>
|
||||
<span
|
||||
class="cmr-12">professional setting</span></li></ul>
|
||||
<!--l. 38--><p class="noindent" ><span class="paragraphHead"><a
|
||||
id="x30-36000B"></a><span
|
||||
id="x30-36000"></a><span
|
||||
class="cmbx-12">Enforcement Responsibilities</span></span>
|
||||
<span
|
||||
class="cmr-12">Community leaders are responsible for clarifying and enforcing our standards of</span>
|
||||
@@ -127,7 +137,7 @@ class="cmr-12">appointed representative at an online or offline event. Enforceme
|
||||
<span
|
||||
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>
|
||||
@@ -137,8 +147,11 @@ class="cmr-12">complaints will be reviewed and investigated promptly and fairly.
|
||||
class="cmr-12">leaders are obligated to respect the privacy and security of the reporter of any</span>
|
||||
<span
|
||||
class="cmr-12">incident.</span>
|
||||
|
||||
|
||||
|
||||
<!--l. 61--><p class="noindent" ><span class="paragraphHead"><a
|
||||
id="x30-37000B"></a><span
|
||||
id="x30-37000"></a><span
|
||||
class="cmbx-12">Enforcement Guidelines</span></span>
|
||||
<span
|
||||
class="cmr-12">Community leaders will follow these Community Impact Guidelines in</span>
|
||||
@@ -147,17 +160,15 @@ class="cmr-12">determining the consequences for any action they deem in violatio
|
||||
<span
|
||||
class="cmr-12">Conduct:</span>
|
||||
<ol class="enumerate1" >
|
||||
<li
|
||||
class="enumerate" id="x30-37002x1"><span
|
||||
<li
|
||||
class="enumerate" id="x30-37002x1">
|
||||
<!--l. 65--><p class="noindent" ><span
|
||||
class="cmr-12">Correction</span>
|
||||
<!--l. 67--><p class="noindent" ><span
|
||||
class="cmti-12">Community Impact: </span><span
|
||||
class="cmr-12">Use of inappropriate language or other behavior deemed</span>
|
||||
<span
|
||||
class="cmr-12">unprofessional or unwelcome in the community.</span>
|
||||
|
||||
|
||||
|
||||
<!--l. 70--><p class="noindent" ><span
|
||||
class="cmti-12">Consequence: </span><span
|
||||
class="cmr-12">A private, written warning from community leaders, providing</span>
|
||||
@@ -166,8 +177,9 @@ class="cmr-12">clarity around the nature of the violation and an explanation of
|
||||
<span
|
||||
class="cmr-12">behavior was inappropriate. A public apology may be requested.</span>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x30-37004x2"><span
|
||||
<li
|
||||
class="enumerate" id="x30-37004x2">
|
||||
<!--l. 73--><p class="noindent" ><span
|
||||
class="cmr-12">Warning</span>
|
||||
<!--l. 75--><p class="noindent" ><span
|
||||
class="cmti-12">Community Impact: </span><span
|
||||
@@ -186,8 +198,9 @@ class="cmr-12">channels like social media. Violating these terms may lead to a t
|
||||
<span
|
||||
class="cmr-12">or permanent ban.</span>
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x30-37006x3"><span
|
||||
<li
|
||||
class="enumerate" id="x30-37006x3">
|
||||
<!--l. 84--><p class="noindent" ><span
|
||||
class="cmr-12">Temporary Ban</span>
|
||||
<!--l. 86--><p class="noindent" ><span
|
||||
class="cmti-12">Community Impact: </span><span
|
||||
@@ -205,9 +218,13 @@ class="cmr-12">public or private interaction with the people involved, including
|
||||
class="cmr-12">interaction with those enforcing the Code of Conduct, is allowed during this</span>
|
||||
<span
|
||||
class="cmr-12">period. Violating these terms may lead to a permanent ban.</span>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
<li
|
||||
class="enumerate" id="x30-37008x4"><span
|
||||
<li
|
||||
class="enumerate" id="x30-37008x4">
|
||||
<!--l. 94--><p class="noindent" ><span
|
||||
class="cmr-12">Permanent Ban</span>
|
||||
<!--l. 96--><p class="noindent" ><span
|
||||
class="cmti-12">Community Impact: </span><span
|
||||
@@ -222,12 +239,12 @@ class="cmr-12">A permanent ban from any sort of public interaction within</span>
|
||||
<span
|
||||
class="cmr-12">the community.</span></li></ol>
|
||||
<!--l. 104--><p class="noindent" ><span class="paragraphHead"><a
|
||||
id="x30-38000B"></a><span
|
||||
id="x30-38000"></a><span
|
||||
class="cmbx-12">Attribution</span></span>
|
||||
<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
|
||||
@@ -238,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>
|
||||
@@ -255,6 +272,13 @@ class="cmr-12">.</span>
|
||||
|
||||
|
||||
|
||||
<!--l. 152--><p class="indent" >
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+49
-45
@@ -33,29 +33,29 @@ class="cmr-12">The following base libraries are needed:</span>
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-12">BLAS</span> </dt><dd
|
||||
class="description"><span class="cite"><span
|
||||
class="description">
|
||||
<!--l. 34--><p class="noindent" ><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli5.html#Xblas3"><span
|
||||
class="cmr-12">17</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli5.html#Xblas2"><span
|
||||
class="cmr-12">18</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli5.html#Xblas2"><span
|
||||
class="cmr-12">19</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli5.html#Xblas1"><span
|
||||
class="cmr-12">25</span></a><span
|
||||
class="cmr-12">]</span></span> <span
|
||||
class="cmr-12">Many vendors provide optimized versions of BLAS; if no</span>
|
||||
class="cmr-12">26</span></a><span
|
||||
class="cmr-12">]</span></span> <span
|
||||
class="cmr-12">Many vendors provide optimized versions of BLAS; if no</span>
|
||||
<span
|
||||
class="cmr-12">vendor version is available for a given platform, the ATLAS software</span>
|
||||
<span
|
||||
class="cmr-12">(</span><a
|
||||
class="cmr-12">vendor version is available for a given platform, the ATLAS software (</span>
|
||||
<a
|
||||
href="http://math-atlas.sourceforge.net" ><span
|
||||
class="cmr-12">math-atlas.sourceforge .net</span></a><span
|
||||
class="cmr-12">) may be employed. The reference BLAS from</span>
|
||||
<span
|
||||
class="cmr-12">Netlib (</span><a
|
||||
class="cmr-12">Netlib ( </span><a
|
||||
href="http://www.netlib.org/blas" ><span
|
||||
class="cmr-12">www.netlib.org/blas</span></a><span
|
||||
class="cmr-12">) are meant to define the standard behaviour of</span>
|
||||
@@ -74,7 +74,7 @@ class="cmr-12">our experience is that configuring ATLAS for building full LAPACK
|
||||
<span
|
||||
class="cmr-12">not always work in the expected way. Our advice is first to download the</span>
|
||||
<span
|
||||
class="cmr-12">LAPACK tarfile from </span><a
|
||||
class="cmr-12">LAPACK tarfile from </span><a
|
||||
href="http://www.netlib.org/lapack" ><span
|
||||
class="cmr-12">www.netlib.org/lapack</span></a> <span
|
||||
class="cmr-12">and install it independently of</span>
|
||||
@@ -87,14 +87,15 @@ class="cmr-12">library.</span>
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-12">MPI</span> </dt><dd
|
||||
class="description"><span class="cite"><span
|
||||
class="description">
|
||||
<!--l. 51--><p class="noindent" ><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli5.html#XMPI2"><span
|
||||
class="cmr-12">24</span></a><span
|
||||
class="cmr-12">25</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli5.html#XMPI1"><span
|
||||
class="cmr-12">30</span></a><span
|
||||
class="cmr-12">32</span></a><span
|
||||
class="cmr-12">]</span></span> <span
|
||||
class="cmr-12">A version of MPI is available on most high-performance computing</span>
|
||||
<span
|
||||
@@ -102,22 +103,26 @@ class="cmr-12">systems.</span>
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-12">PSBLAS</span> </dt><dd
|
||||
class="description"><span class="cite"><span
|
||||
class="description">
|
||||
<!--l. 53--><p class="noindent" ><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli5.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">20</span></a><span
|
||||
class="cmr-12">21</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli5.html#Xpsblas_00"><span
|
||||
class="cmr-12">22</span></a><span
|
||||
class="cmr-12">]</span></span> <span
|
||||
class="cmr-12">Parallel Sparse BLAS (PSBLAS) is available from</span>
|
||||
<a
|
||||
class="cmr-12">23</span></a><span
|
||||
class="cmr-12">]</span></span> <span
|
||||
class="cmr-12">Parallel Sparse</span>
|
||||
<span
|
||||
class="cmr-12">BLAS (PSBLAS) is available from </span><a
|
||||
href="https://psctoolkit.github.io/products/psblas/" ><span
|
||||
class="cmr-12">psctoolkit.github.io/ products/psblas/</span></a><span
|
||||
class="cmr-12">; version 3.7.0 (or later) is required.</span>
|
||||
class="cmr-12">;</span>
|
||||
<span
|
||||
class="cmr-12">Indeed, all the prerequisites listed so far are also prerequisites of PSBLAS.</span></dd></dl>
|
||||
class="cmr-12">version 3.7.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
|
||||
class="cmr-12">Please note that the four previous libraries must have Fortran interfaces compatible with</span>
|
||||
<span
|
||||
@@ -127,27 +132,26 @@ class="cmr-12">compiler being used for AMG4PSBLAS.</span>
|
||||
<!--l. 64--><p class="indent" > <span
|
||||
class="cmr-12">If you want to use the PSBLAS support for NVIDIA GPUs, you will also</span>
|
||||
<span
|
||||
class="cmr-12">need:</span>
|
||||
<dl class="description"><dt class="description">
|
||||
class="cmr-12">need a working version of the CUDA Toolkit that is compatible with the</span>
|
||||
<span
|
||||
class="cmbx-12">PSBLAS-EXT</span> </dt><dd
|
||||
class="description"><span
|
||||
class="cmr-12">Parallel Sparse BLAS (PSBLAS) Extensions, available from</span>
|
||||
<a
|
||||
href="https://psctoolkit.github.io/products/psblasext/" ><span
|
||||
class="cmr-12">psctoolkit.github.io/products/psblasext/</span></a><span
|
||||
class="cmr-12">; version 1.3.0 (or later).</span>
|
||||
</dd><dt class="description">
|
||||
class="cmr-12">compiler choice made to compile PSBLAS and AMG4PSBLAS. After that</span>
|
||||
<span
|
||||
class="cmr-12">you will need to have configured and compiled the PSBLAS library with the</span>
|
||||
<span
|
||||
class="cmr-12">options:</span>
|
||||
|
||||
|
||||
|
||||
<pre class="verbatim" id="verbatim-2">
|
||||
./configure --enable-cuda --with-cudadir=${CUDA_HOME} --with-cudacc=xx,yy,zz  
|
||||
</pre>
|
||||
<!--l. 89--><p class="nopar" > <span
|
||||
class="cmr-12">Previous versions required you to have the auxiliary libraries SPGPU and</span>
|
||||
<span
|
||||
class="cmr-12">PSBLAS-EXT compiled, this is no longer necessary because they have been integrated</span>
|
||||
<span
|
||||
class="cmr-12">into PSBLAS and are compiled by activating the previous flags during configuration.</span>
|
||||
<span
|
||||
class="cmbx-12">SPGPU</span> </dt><dd
|
||||
class="description"><span
|
||||
class="cmr-12">Sparse CUDA kernels for NVIDIA GPUs; available from GitHub, see</span>
|
||||
<span
|
||||
class="cmr-12">also </span><a
|
||||
href="https://psctoolkit.github.io/products/psblasext/" ><span
|
||||
class="cmr-12">psctoolkit.github.io/products/psblasext/</span></a><span
|
||||
class="cmr-12">.</span></dd></dl>
|
||||
<!--l. 76--><p class="noindent" ><span
|
||||
class="cmr-12">See also Sec</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlsu7.html#x16-150004.2"><span
|
||||
@@ -156,7 +160,7 @@ class="cmr-12">.</span>
|
||||
|
||||
|
||||
|
||||
<!--l. 79--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 96--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu2.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -167,6 +171,6 @@ class="cmr-12">] [</span><a
|
||||
href="userhtmlse3.html#userhtmlsu1.html" ><span
|
||||
class="cmr-12">up</span></a><span
|
||||
class="cmr-12">] </span></p></div>
|
||||
<!--l. 79--><p class="indent" > <a
|
||||
<!--l. 96--><p class="indent" > <a
|
||||
id="tailuserhtmlsu1.html"></a>
|
||||
</body></html>
|
||||
|
||||
+51
-98
@@ -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>Method hierarchy_build</title>
|
||||
<head><title>Method hierarchy_uild</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,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 685--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 708--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu11.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -34,138 +34,91 @@ class="cmr-12">Method hierarchy</span><span
|
||||
class="cmr-12">_build</span></h4>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 687--><p class="noindent" >
|
||||
<!--l. 688--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">call</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">p</span><span
|
||||
class="cmtt-12">%</span><span
|
||||
class="cmtt-12">hierarchy_build</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">a</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">desc_a</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">info</span><span
|
||||
class="cmtt-12">)</span><br />
|
||||
<!--l. 710--><p class="noindent" >
|
||||
<!--l. 711--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">hierarchy_build</span><span style="color:#000000">(</span><span style="color:#000000">a</span><span style="color:#000000">,</span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">)</span></code><br />
|
||||
</div>
|
||||
<!--l. 691--><p class="noindent" ><span
|
||||
<!--l. 714--><p class="noindent" ><span
|
||||
class="cmr-12">This method builds the hierarchy of matrices and restriction/prolongation operators for</span>
|
||||
<span
|
||||
class="cmr-12">the multilevel preconditioner </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">p</span><span
|
||||
class="cmr-12">the multilevel preconditioner </span><code class="lstinline"><span style="color:#000000">p</span></code><span
|
||||
class="cmr-12">, according to the requirements made by the user</span>
|
||||
<span
|
||||
class="cmr-12">through the methods </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">init</span> <span
|
||||
class="cmr-12">and </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">set</span><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. 696--><p class="noindent" ><span
|
||||
<!--l. 719--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<div class="tabular"> <table id="TBL-11" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-11-1g"><col
|
||||
id="TBL-11-1"><col
|
||||
id="TBL-11-2"></colgroup><tr
|
||||
style="vertical-align:baseline;" id="TBL-11-1-"><td style="white-space:normal; text-align:left;" id="TBL-11-1-1"
|
||||
class="td11"><!--l. 699--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">a</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-1-2"
|
||||
class="td11"><!--l. 699--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">type</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">psb_</span><span
|
||||
class="cmti-12">x</span><span class="lstinline"></span><span
|
||||
class="cmtt-12">spmat_type</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">in</span><span
|
||||
class="cmtt-12">)</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
<div class="tabular"> <table id="TBL-12" class="tabular"
|
||||
|
||||
><colgroup id="TBL-12-1g"><col
|
||||
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. 722--><p class="noindent" ><code class="lstinline"><span style="color:#000000">a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-12-1-2"
|
||||
class="td11"> <!--l. 722--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
|
||||
class="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-11-2-"><td style="white-space:normal; text-align:left;" id="TBL-11-2-1"
|
||||
class="td11"><!--l. 700--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-2-2"
|
||||
class="td11"><!--l. 700--><p class="noindent" ><span
|
||||
style="vertical-align:baseline;" id="TBL-12-2-"><td style="white-space:normal; text-align:left;" id="TBL-12-2-1"
|
||||
class="td11"> <!--l. 723--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-2-2"
|
||||
class="td11"> <!--l. 723--><p class="noindent" ><span
|
||||
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
|
||||
<span
|
||||
<span
|
||||
class="cmr-12">to be preconditioned. Note that </span><span
|
||||
class="cmti-12">x </span><span
|
||||
class="cmr-12">must be chosen according to the</span>
|
||||
<span class="lstinline"></span><span
|
||||
class="cmtt-12">real</span><span
|
||||
class="cmr-12">/</span><span class="lstinline"></span><span
|
||||
class="cmtt-12">complex</span><span
|
||||
<code class="lstinline"><span style="color:#000000">real</span></code><span
|
||||
class="cmr-12">/</span><code class="lstinline"><span style="color:#000000">complex</span></code><span
|
||||
class="cmr-12">, single/double precision version of AMG4PSBLAS</span>
|
||||
<span
|
||||
<span
|
||||
class="cmr-12">under use. See the PSBLAS User’s Guide for details </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli5.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">20</span></a><span
|
||||
class="cmr-12">21</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-11-3-"><td style="white-space:normal; text-align:left;" id="TBL-11-3-1"
|
||||
class="td11"><!--l. 705--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-11-3-2"
|
||||
class="td11"><!--l. 705--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">type</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">psb_desc_type</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">in</span><span
|
||||
class="cmtt-12">)</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
style="vertical-align:baseline;" id="TBL-12-3-"><td style="white-space:normal; text-align:left;" id="TBL-12-3-1"
|
||||
class="td11"> <!--l. 728--><p class="noindent" ><code class="lstinline"><span style="color:#000000">desc_a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-12-3-2"
|
||||
class="td11"> <!--l. 728--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_desc_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-11-4-"><td style="white-space:normal; text-align:left;" id="TBL-11-4-1"
|
||||
class="td11"><!--l. 706--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-4-2"
|
||||
class="td11"><!--l. 706--><p class="noindent" ><span
|
||||
class="cmr-12">The communication descriptor of </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">a</span><span
|
||||
style="vertical-align:baseline;" id="TBL-12-4-"><td style="white-space:normal; text-align:left;" id="TBL-12-4-1"
|
||||
class="td11"> <!--l. 729--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-4-2"
|
||||
class="td11"> <!--l. 729--><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
|
||||
<span
|
||||
class="cmr-12">for details </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli5.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">20</span></a><span
|
||||
class="cmr-12">21</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-11-5-"><td style="white-space:normal; text-align:left;" id="TBL-11-5-1"
|
||||
class="td11"><!--l. 708--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-5-2"
|
||||
class="td11"><!--l. 708--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">integer</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">out</span><span
|
||||
class="cmtt-12">)</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
style="vertical-align:baseline;" id="TBL-12-5-"><td style="white-space:normal; text-align:left;" id="TBL-12-5-1"
|
||||
class="td11"> <!--l. 731--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-12-5-2"
|
||||
class="td11"> <!--l. 731--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-11-6-"><td style="white-space:normal; text-align:left;" id="TBL-11-6-1"
|
||||
class="td11"><!--l. 709--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-6-2"
|
||||
class="td11"><!--l. 709--><p class="noindent" ><span
|
||||
style="vertical-align:baseline;" id="TBL-12-6-"><td style="white-space:normal; text-align:left;" id="TBL-12-6-1"
|
||||
class="td11"> <!--l. 732--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-6-2"
|
||||
class="td11"> <!--l. 732--><p class="noindent" ><span
|
||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlse7.html#x28-320007"><span
|
||||
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
||||
class="cmr-12">for details.</span> </td>
|
||||
class="cmr-12">for details.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-11-7-"><td style="white-space:normal; text-align:left;" id="TBL-11-7-1"
|
||||
class="td11"> </td> </tr></table></div>
|
||||
style="vertical-align:baseline;" id="TBL-12-7-"><td style="white-space:normal; text-align:left;" id="TBL-12-7-1"
|
||||
class="td11"> </td> </tr></table> </div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 715--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 738--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu11.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -182,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. 715--><p class="indent" > <a
|
||||
<!--l. 738--><p class="indent" > <a
|
||||
id="tailuserhtmlsu10.html"></a>
|
||||
</body></html>
|
||||
|
||||
+83
-177
@@ -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>Method smoothers_build</title>
|
||||
<head><title>Method smoothers_uild</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,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 715--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 738--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu12.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -34,235 +34,141 @@ class="cmr-12">Method smoothers</span><span
|
||||
class="cmr-12">_build</span></h4>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 718--><p class="noindent" >
|
||||
<!--l. 719--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">call</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">p</span><span
|
||||
class="cmtt-12">%</span><span
|
||||
class="cmtt-12">smoothers_build</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">a</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">desc_a</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">p</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">info</span><span
|
||||
class="cmtt-12">[,</span><span
|
||||
class="cmtt-12">amold</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">vmold</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">imold</span><span
|
||||
class="cmtt-12">])</span><br />
|
||||
<!--l. 741--><p class="noindent" >
|
||||
<!--l. 742--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">smoothers_build</span><span style="color:#000000">(</span><span style="color:#000000">a</span><span style="color:#000000">,</span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000">p</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">[,</span><span style="color:#000000">amold</span><span style="color:#000000">,</span><span style="color:#000000">vmold</span><span style="color:#000000">,</span><span style="color:#000000">imold</span><span style="color:#000000">])</span></code><br />
|
||||
</div>
|
||||
<!--l. 722--><p class="noindent" ><span
|
||||
<!--l. 745--><p class="noindent" ><span
|
||||
class="cmr-12">This method builds the smoothers and the coarsest-level solvers for the multilevel</span>
|
||||
<span
|
||||
class="cmr-12">preconditioner </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">p</span><span
|
||||
class="cmr-12">preconditioner </span><code class="lstinline"><span style="color:#000000">p</span></code><span
|
||||
class="cmr-12">, according to the requirements made by the user through the methods</span>
|
||||
<span class="lstinline"></span><span
|
||||
class="cmtt-12">init</span> <span
|
||||
class="cmr-12">and </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">set</span><span
|
||||
<code class="lstinline"><span style="color:#000000">init</span></code> <span
|
||||
class="cmr-12">and </span><code class="lstinline"><span style="color:#000000">set</span></code><span
|
||||
class="cmr-12">, and based on the aggregation hierarchy produced by a previous call to</span>
|
||||
<span class="lstinline"></span><span
|
||||
class="cmtt-12">hierarchy_build</span> <span
|
||||
<code class="lstinline"><span style="color:#000000">hierarchy_build</span></code> <span
|
||||
class="cmr-12">(see Section</span><span
|
||||
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. 729--><p class="noindent" ><span
|
||||
<!--l. 752--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<div class="tabular"> <table id="TBL-12" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-12-1g"><col
|
||||
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. 732--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">a</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-1-2"
|
||||
class="td11"><!--l. 732--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">type</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">psb_</span><span
|
||||
class="cmti-12">x</span><span class="lstinline"></span><span
|
||||
class="cmtt-12">spmat_type</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">in</span><span
|
||||
class="cmtt-12">)</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
<div class="tabular"> <table id="TBL-13" class="tabular"
|
||||
|
||||
><colgroup id="TBL-13-1g"><col
|
||||
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. 755--><p class="noindent" ><code class="lstinline"><span style="color:#000000">a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-1-2"
|
||||
class="td11"> <!--l. 755--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
|
||||
class="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. 733--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-2-2"
|
||||
class="td11"><!--l. 733--><p class="noindent" ><span
|
||||
style="vertical-align:baseline;" id="TBL-13-2-"><td style="white-space:normal; text-align:left;" id="TBL-13-2-1"
|
||||
class="td11"> <!--l. 756--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-2-2"
|
||||
class="td11"> <!--l. 756--><p class="noindent" ><span
|
||||
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
|
||||
<span
|
||||
<span
|
||||
class="cmr-12">to be preconditioned. Note that </span><span
|
||||
class="cmti-12">x </span><span
|
||||
class="cmr-12">must be chosen according to the</span>
|
||||
<span class="lstinline"></span><span
|
||||
class="cmtt-12">real</span><span
|
||||
class="cmr-12">/</span><span class="lstinline"></span><span
|
||||
class="cmtt-12">complex</span><span
|
||||
<code class="lstinline"><span style="color:#000000">real</span></code><span
|
||||
class="cmr-12">/</span><code class="lstinline"><span style="color:#000000">complex</span></code><span
|
||||
class="cmr-12">, single/double precision version of AMG4PSBLAS</span>
|
||||
<span
|
||||
<span
|
||||
class="cmr-12">under use. See the PSBLAS User’s Guide for details </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli5.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">20</span></a><span
|
||||
class="cmr-12">21</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
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" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-12-3-2"
|
||||
class="td11"><!--l. 737--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">type</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">psb_desc_type</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">in</span><span
|
||||
class="cmtt-12">)</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
style="vertical-align:baseline;" id="TBL-13-3-"><td style="white-space:normal; text-align:left;" id="TBL-13-3-1"
|
||||
class="td11"> <!--l. 760--><p class="noindent" ><code class="lstinline"><span style="color:#000000">desc_a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-3-2"
|
||||
class="td11"> <!--l. 760--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_desc_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
|
||||
class="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="cmr-12">The communication descriptor of </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">a</span><span
|
||||
style="vertical-align:baseline;" id="TBL-13-4-"><td style="white-space:normal; text-align:left;" id="TBL-13-4-1"
|
||||
class="td11"> <!--l. 761--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-4-2"
|
||||
class="td11"> <!--l. 761--><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
|
||||
<span
|
||||
class="cmr-12">for details </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli5.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">20</span></a><span
|
||||
class="cmr-12">21</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
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" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-5-2"
|
||||
class="td11"><!--l. 740--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">integer</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">out</span><span
|
||||
class="cmtt-12">)</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
style="vertical-align:baseline;" id="TBL-13-5-"><td style="white-space:normal; text-align:left;" id="TBL-13-5-1"
|
||||
class="td11"> <!--l. 763--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-5-2"
|
||||
class="td11"> <!--l. 763--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
|
||||
class="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
|
||||
style="vertical-align:baseline;" id="TBL-13-6-"><td style="white-space:normal; text-align:left;" id="TBL-13-6-1"
|
||||
class="td11"> <!--l. 764--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-6-2"
|
||||
class="td11"> <!--l. 764--><p class="noindent" ><span
|
||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlse7.html#x28-320007"><span
|
||||
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
||||
class="cmr-12">for details.</span> </td>
|
||||
class="cmr-12">for details.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-12-7-"><td style="white-space:normal; text-align:left;" id="TBL-12-7-1"
|
||||
class="td11"><!--l. 742--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">amold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-7-2"
|
||||
class="td11"><!--l. 742--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">class</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">psb_</span><span
|
||||
class="cmti-12">x</span><span class="lstinline"></span><span
|
||||
class="cmtt-12">_base_sparse_mat</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">in</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">optional</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
style="vertical-align:baseline;" id="TBL-13-7-"><td style="white-space:normal; text-align:left;" id="TBL-13-7-1"
|
||||
class="td11"> <!--l. 765--><p class="noindent" ><code class="lstinline"><span style="color:#000000">amold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-7-2"
|
||||
class="td11"> <!--l. 765--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
|
||||
class="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-12-8-"><td style="white-space:normal; text-align:left;" id="TBL-12-8-1"
|
||||
class="td11"><!--l. 743--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-8-2"
|
||||
class="td11"><!--l. 743--><p class="noindent" ><span
|
||||
style="vertical-align:baseline;" id="TBL-13-8-"><td style="white-space:normal; text-align:left;" id="TBL-13-8-1"
|
||||
class="td11"> <!--l. 766--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-8-2"
|
||||
class="td11"> <!--l. 766--><p class="noindent" ><span
|
||||
class="cmr-12">The desired dynamic type for internal matrix components; this</span>
|
||||
<span
|
||||
<span
|
||||
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
|
||||
<span
|
||||
<span
|
||||
class="cmr-12">processes. See the PSBLAS User’s Guide for details </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli5.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">20</span></a><span
|
||||
class="cmr-12">21</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-12-9-"><td style="white-space:normal; text-align:left;" id="TBL-12-9-1"
|
||||
class="td11"><!--l. 747--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">vmold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-9-2"
|
||||
class="td11"><!--l. 747--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">class</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">psb_</span><span
|
||||
class="cmti-12">x</span><span class="lstinline"></span><span
|
||||
class="cmtt-12">_base_vect_type</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">in</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">optional</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
style="vertical-align:baseline;" id="TBL-13-9-"><td style="white-space:normal; text-align:left;" id="TBL-13-9-1"
|
||||
class="td11"> <!--l. 770--><p class="noindent" ><code class="lstinline"><span style="color:#000000">vmold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-9-2"
|
||||
class="td11"> <!--l. 770--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
|
||||
class="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-12-10-"><td style="white-space:normal; text-align:left;" id="TBL-12-10-1"
|
||||
class="td11"><!--l. 748--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-10-2"
|
||||
class="td11"><!--l. 748--><p class="noindent" ><span
|
||||
style="vertical-align:baseline;" id="TBL-13-10-"><td style="white-space:normal; text-align:left;" id="TBL-13-10-1"
|
||||
class="td11"> <!--l. 771--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-10-2"
|
||||
class="td11"> <!--l. 771--><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>
|
||||
<span
|
||||
class="cmr-12">allows e.g. running on GPUs.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-12-11-"><td style="white-space:normal; text-align:left;" id="TBL-12-11-1"
|
||||
class="td11"><!--l. 750--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">imold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-11-2"
|
||||
class="td11"><!--l. 750--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">class</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">psb_i_base_vect_type</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">in</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">optional</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
style="vertical-align:baseline;" id="TBL-13-11-"><td style="white-space:normal; text-align:left;" id="TBL-13-11-1"
|
||||
class="td11"> <!--l. 773--><p class="noindent" ><code class="lstinline"><span style="color:#000000">imold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-13-11-2"
|
||||
class="td11"> <!--l. 773--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_i_base_vect_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-12-12-"><td style="white-space:normal; text-align:left;" id="TBL-12-12-1"
|
||||
class="td11"><!--l. 751--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-12-2"
|
||||
class="td11"><!--l. 751--><p class="noindent" ><span
|
||||
style="vertical-align:baseline;" id="TBL-13-12-"><td style="white-space:normal; text-align:left;" id="TBL-13-12-1"
|
||||
class="td11"> <!--l. 774--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-12-2"
|
||||
class="td11"> <!--l. 774--><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>
|
||||
<span
|
||||
class="cmr-12">this allows e.g. running on GPUs.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-12-13-"><td style="white-space:normal; text-align:left;" id="TBL-12-13-1"
|
||||
class="td11"> </td> </tr></table></div>
|
||||
style="vertical-align:baseline;" id="TBL-13-13-"><td style="white-space:normal; text-align:left;" id="TBL-13-13-1"
|
||||
class="td11"> </td> </tr></table> </div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 757--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 780--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu12.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -279,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. 757--><p class="indent" > <a
|
||||
<!--l. 780--><p class="indent" > <a
|
||||
id="tailuserhtmlsu11.html"></a>
|
||||
</body></html>
|
||||
|
||||
+84
-177
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 757--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 780--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu13.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -33,36 +33,15 @@ class="cmr-12">5.5 </span></span> <a
|
||||
class="cmr-12">Method build</span></h4>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 759--><p class="noindent" >
|
||||
<!--l. 760--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">call</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">p</span><span
|
||||
class="cmtt-12">%</span><span
|
||||
class="cmtt-12">build</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">a</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">desc_a</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">info</span><span
|
||||
class="cmtt-12">[,</span><span
|
||||
class="cmtt-12">amold</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">vmold</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">imold</span><span
|
||||
class="cmtt-12">])</span><br />
|
||||
<!--l. 782--><p class="noindent" >
|
||||
<!--l. 783--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">build</span><span style="color:#000000">(</span><span style="color:#000000">a</span><span style="color:#000000">,</span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">[,</span><span style="color:#000000">amold</span><span style="color:#000000">,</span><span style="color:#000000">vmold</span><span style="color:#000000">,</span><span style="color:#000000">imold</span><span style="color:#000000">])</span></code><br />
|
||||
</div>
|
||||
<!--l. 763--><p class="noindent" ><span
|
||||
class="cmr-12">This method builds the preconditioner </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">p</span> <span
|
||||
<!--l. 786--><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
|
||||
class="cmr-12">user through the methods </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">init</span> <span
|
||||
class="cmr-12">and </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">set</span> <span
|
||||
class="cmr-12">user 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">(see Sections</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlsu10.html#x20-190005.3"><span
|
||||
@@ -75,196 +54,124 @@ class="cmr-12">for multilevel</span>
|
||||
<span
|
||||
class="cmr-12">preconditioners). It is mostly provided for backward compatibility; indeed, it is</span>
|
||||
<span
|
||||
class="cmr-12">internally implemented by invoking the two previous methods </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">hierarchy_build</span> <span
|
||||
class="cmr-12">internally implemented by invoking the two previous methods </span><code class="lstinline"><span style="color:#000000">hierarchy_build</span></code> <span
|
||||
class="cmr-12">and</span>
|
||||
<span class="lstinline"></span><span
|
||||
class="cmtt-12">smoothers_build</span><span
|
||||
<code class="lstinline"><span style="color:#000000">smoothers_build</span></code><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. 773--><p class="noindent" ><span
|
||||
<!--l. 796--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<div class="tabular"> <table id="TBL-13" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-13-1g"><col
|
||||
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. 776--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">a</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-1-2"
|
||||
class="td11"><!--l. 776--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">type</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">psb_</span><span
|
||||
class="cmti-12">x</span><span class="lstinline"></span><span
|
||||
class="cmtt-12">spmat_type</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">in</span><span
|
||||
class="cmtt-12">)</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
<div class="tabular"> <table id="TBL-14" class="tabular"
|
||||
|
||||
><colgroup id="TBL-14-1g"><col
|
||||
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. 799--><p class="noindent" ><code class="lstinline"><span style="color:#000000">a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-1-2"
|
||||
class="td11"> <!--l. 799--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
|
||||
class="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. 777--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-2-2"
|
||||
class="td11"><!--l. 777--><p class="noindent" ><span
|
||||
style="vertical-align:baseline;" id="TBL-14-2-"><td style="white-space:normal; text-align:left;" id="TBL-14-2-1"
|
||||
class="td11"> <!--l. 800--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-2-2"
|
||||
class="td11"> <!--l. 800--><p class="noindent" ><span
|
||||
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
|
||||
<span
|
||||
<span
|
||||
class="cmr-12">to be preconditioned. Note that </span><span
|
||||
class="cmti-12">x </span><span
|
||||
class="cmr-12">must be chosen according to the</span>
|
||||
<span class="lstinline"></span><span
|
||||
class="cmtt-12">real</span><span
|
||||
class="cmr-12">/</span><span class="lstinline"></span><span
|
||||
class="cmtt-12">complex</span><span
|
||||
<code class="lstinline"><span style="color:#000000">real</span></code><span
|
||||
class="cmr-12">/</span><code class="lstinline"><span style="color:#000000">complex</span></code><span
|
||||
class="cmr-12">, single/double precision version of AMG4PSBLAS</span>
|
||||
<span
|
||||
<span
|
||||
class="cmr-12">under use. See the PSBLAS User’s Guide for details </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli5.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">20</span></a><span
|
||||
class="cmr-12">21</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
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. 781--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-13-3-2"
|
||||
class="td11"><!--l. 781--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">type</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">psb_desc_type</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">in</span><span
|
||||
class="cmtt-12">)</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
style="vertical-align:baseline;" id="TBL-14-3-"><td style="white-space:normal; text-align:left;" id="TBL-14-3-1"
|
||||
class="td11"> <!--l. 804--><p class="noindent" ><code class="lstinline"><span style="color:#000000">desc_a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-3-2"
|
||||
class="td11"> <!--l. 804--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_desc_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
|
||||
class="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. 782--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-4-2"
|
||||
class="td11"><!--l. 782--><p class="noindent" ><span
|
||||
class="cmr-12">The communication descriptor of </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">a</span><span
|
||||
style="vertical-align:baseline;" id="TBL-14-4-"><td style="white-space:normal; text-align:left;" id="TBL-14-4-1"
|
||||
class="td11"> <!--l. 805--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-4-2"
|
||||
class="td11"> <!--l. 805--><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
|
||||
<span
|
||||
class="cmr-12">for details </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli5.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">20</span></a><span
|
||||
class="cmr-12">21</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
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. 784--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-5-2"
|
||||
class="td11"><!--l. 784--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">integer</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">out</span><span
|
||||
class="cmtt-12">)</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
style="vertical-align:baseline;" id="TBL-14-5-"><td style="white-space:normal; text-align:left;" id="TBL-14-5-1"
|
||||
class="td11"> <!--l. 807--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-5-2"
|
||||
class="td11"> <!--l. 807--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
|
||||
class="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. 785--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-6-2"
|
||||
class="td11"><!--l. 785--><p class="noindent" ><span
|
||||
style="vertical-align:baseline;" id="TBL-14-6-"><td style="white-space:normal; text-align:left;" id="TBL-14-6-1"
|
||||
class="td11"> <!--l. 808--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-6-2"
|
||||
class="td11"> <!--l. 808--><p class="noindent" ><span
|
||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlse7.html#x28-320007"><span
|
||||
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
||||
class="cmr-12">for details.</span> </td>
|
||||
class="cmr-12">for details.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-13-7-"><td style="white-space:normal; text-align:left;" id="TBL-13-7-1"
|
||||
class="td11"><!--l. 786--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">amold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-7-2"
|
||||
class="td11"><!--l. 786--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">class</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">psb_</span><span
|
||||
class="cmti-12">x</span><span class="lstinline"></span><span
|
||||
class="cmtt-12">_base_sparse_mat</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">in</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">optional</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
style="vertical-align:baseline;" id="TBL-14-7-"><td style="white-space:normal; text-align:left;" id="TBL-14-7-1"
|
||||
class="td11"> <!--l. 809--><p class="noindent" ><code class="lstinline"><span style="color:#000000">amold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-7-2"
|
||||
class="td11"> <!--l. 809--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
|
||||
class="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. 787--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-8-2"
|
||||
class="td11"><!--l. 787--><p class="noindent" ><span
|
||||
style="vertical-align:baseline;" id="TBL-14-8-"><td style="white-space:normal; text-align:left;" id="TBL-14-8-1"
|
||||
class="td11"> <!--l. 810--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-8-2"
|
||||
class="td11"> <!--l. 810--><p class="noindent" ><span
|
||||
class="cmr-12">The desired dynamic type for internal matrix components; this</span>
|
||||
<span
|
||||
<span
|
||||
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
|
||||
<span
|
||||
<span
|
||||
class="cmr-12">processes. See the PSBLAS User’s Guide for details </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli5.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">20</span></a><span
|
||||
class="cmr-12">21</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
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. 791--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">vmold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-9-2"
|
||||
class="td11"><!--l. 791--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">class</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">psb_</span><span
|
||||
class="cmti-12">x</span><span class="lstinline"></span><span
|
||||
class="cmtt-12">_base_vect_type</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">in</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">optional</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
style="vertical-align:baseline;" id="TBL-14-9-"><td style="white-space:normal; text-align:left;" id="TBL-14-9-1"
|
||||
class="td11"> <!--l. 814--><p class="noindent" ><code class="lstinline"><span style="color:#000000">vmold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-9-2"
|
||||
class="td11"> <!--l. 814--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
|
||||
class="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. 792--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-10-2"
|
||||
class="td11"><!--l. 792--><p class="noindent" ><span
|
||||
style="vertical-align:baseline;" id="TBL-14-10-"><td style="white-space:normal; text-align:left;" id="TBL-14-10-1"
|
||||
class="td11"> <!--l. 815--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-10-2"
|
||||
class="td11"> <!--l. 815--><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>
|
||||
<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. 794--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">imold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-11-2"
|
||||
class="td11"><!--l. 794--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">class</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">psb_i_base_vect_type</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">in</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">optional</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
style="vertical-align:baseline;" id="TBL-14-11-"><td style="white-space:normal; text-align:left;" id="TBL-14-11-1"
|
||||
class="td11"> <!--l. 817--><p class="noindent" ><code class="lstinline"><span style="color:#000000">imold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-14-11-2"
|
||||
class="td11"> <!--l. 817--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_i_base_vect_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
|
||||
class="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. 795--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-12-2"
|
||||
class="td11"><!--l. 795--><p class="noindent" ><span
|
||||
style="vertical-align:baseline;" id="TBL-14-12-"><td style="white-space:normal; text-align:left;" id="TBL-14-12-1"
|
||||
class="td11"> <!--l. 818--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-12-2"
|
||||
class="td11"> <!--l. 818--><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>
|
||||
<span
|
||||
class="cmr-12">this allows e.g. running on GPUs.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-13-13-"><td style="white-space:normal; text-align:left;" id="TBL-13-13-1"
|
||||
class="td11"> </td> </tr></table></div>
|
||||
<!--l. 800--><p class="noindent" ><span
|
||||
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. 823--><p class="noindent" ><span
|
||||
class="cmr-12">The method can be used to build multilevel preconditioners too.</span>
|
||||
|
||||
|
||||
@@ -272,7 +179,7 @@ class="cmr-12">The method can be used to build multilevel preconditioners too.</
|
||||
|
||||
|
||||
|
||||
<!--l. 805--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 828--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu13.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -289,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. 805--><p class="indent" > <a
|
||||
<!--l. 828--><p class="indent" > <a
|
||||
id="tailuserhtmlsu12.html"></a>
|
||||
</body></html>
|
||||
|
||||
+91
-201
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 805--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 828--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu14.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -33,29 +33,10 @@ class="cmr-12">5.6 </span></span> <a
|
||||
class="cmr-12">Method apply</span></h4>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 807--><p class="noindent" >
|
||||
<!--l. 808--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">call</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">p</span><span
|
||||
class="cmtt-12">%</span><span
|
||||
class="cmtt-12">apply</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">x</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">y</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">desc_a</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">info</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">[,</span><span
|
||||
class="cmtt-12">trans</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">work</span><span
|
||||
class="cmtt-12">])</span><br />
|
||||
<!--l. 830--><p class="noindent" >
|
||||
<!--l. 831--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">apply</span><span style="color:#000000">(</span><span style="color:#000000">x</span><span style="color:#000000">,</span><span style="color:#000000">y</span><span style="color:#000000">,</span><span style="color:#000000">desc_a</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000"> </span><span style="color:#000000">[,</span><span style="color:#000000">trans</span><span style="color:#000000">,</span><span style="color:#000000">work</span><span style="color:#000000">])</span></code><br />
|
||||
</div>
|
||||
<!--l. 811--><p class="noindent" ><span
|
||||
<!--l. 834--><p class="noindent" ><span
|
||||
class="cmr-12">This method computes </span><span
|
||||
class="cmmi-12">y </span><span
|
||||
class="cmr-12">= </span><span
|
||||
@@ -70,45 +51,35 @@ class="cmr-12">, where </span><span
|
||||
class="cmmi-12">B </span><span
|
||||
class="cmr-12">is a previously built preconditioner,</span>
|
||||
<span
|
||||
class="cmr-12">stored into </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">p</span><span
|
||||
class="cmr-12">stored into </span><code class="lstinline"><span style="color:#000000">p</span></code><span
|
||||
class="cmr-12">, and </span><span
|
||||
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><span class="lstinline"></span><span
|
||||
class="cmtt-12">trans</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>
|
||||
<span
|
||||
class="cmr-12">PSBLAS, </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">p</span><span
|
||||
class="cmtt-12">%</span><span
|
||||
class="cmtt-12">apply</span> <span
|
||||
class="cmr-12">is called within the PSBLAS method </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">psb_krylov</span> <span
|
||||
class="cmr-12">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>
|
||||
<span
|
||||
class="cmr-12">completely transparent to the user.</span>
|
||||
<!--l. 820--><p class="noindent" ><span
|
||||
<!--l. 843--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<div class="tabular"> <table id="TBL-14" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-14-1g"><col
|
||||
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. 823--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">x</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-1-2"
|
||||
class="td11"><!--l. 823--><p class="noindent" ><span
|
||||
class="cmti-12">type</span><span class="lstinline"></span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">kind_parameter</span><span
|
||||
class="cmtt-12">)</span><span
|
||||
class="cmr-12">, dimension(:), intent(in)—.</span> </td>
|
||||
<div class="tabular"> <table id="TBL-15" class="tabular"
|
||||
|
||||
><colgroup id="TBL-15-1g"><col
|
||||
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. 846--><p class="noindent" ><code class="lstinline"><span style="color:#000000">x</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-1-2"
|
||||
class="td11"> <!--l. 846--><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-14-2-"><td style="white-space:normal; text-align:left;" id="TBL-14-2-1"
|
||||
class="td11"><!--l. 824--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-2-2"
|
||||
class="td11"><!--l. 824--><p class="noindent" ><span
|
||||
style="vertical-align:baseline;" id="TBL-15-2-"><td style="white-space:normal; text-align:left;" id="TBL-15-2-1"
|
||||
class="td11"> <!--l. 847--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-2-2"
|
||||
class="td11"> <!--l. 847--><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
|
||||
@@ -116,28 +87,22 @@ class="cmti-12">type </span><span
|
||||
class="cmr-12">and </span><span
|
||||
class="cmti-12">kind</span><span
|
||||
class="cmti-12">_parameter</span>
|
||||
<span
|
||||
class="cmr-12">must be chosen according to the </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">real</span><span
|
||||
class="cmr-12">/</span><span class="lstinline"></span><span
|
||||
class="cmtt-12">complex</span><span
|
||||
<span
|
||||
class="cmr-12">must be chosen according to the </span><code class="lstinline"><span style="color:#000000">real</span></code><span
|
||||
class="cmr-12">/</span><code class="lstinline"><span style="color:#000000">complex</span></code><span
|
||||
class="cmr-12">, single/double</span>
|
||||
<span
|
||||
class="cmr-12">precision version of AMG4PSBLAS under use.</span> </td>
|
||||
<span
|
||||
class="cmr-12">precision version of AMG4PSBLAS under use.</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. 827--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">y</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-3-2"
|
||||
class="td11"><!--l. 827--><p class="noindent" ><span
|
||||
class="cmti-12">type</span><span class="lstinline"></span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">kind_parameter</span><span
|
||||
class="cmtt-12">)</span><span
|
||||
class="cmr-12">, dimension(:), intent(out)—.</span> </td>
|
||||
style="vertical-align:baseline;" id="TBL-15-3-"><td style="white-space:normal; text-align:left;" id="TBL-15-3-1"
|
||||
class="td11"> <!--l. 850--><p class="noindent" ><code class="lstinline"><span style="color:#000000">y</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-3-2"
|
||||
class="td11"> <!--l. 850--><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-14-4-"><td style="white-space:normal; text-align:left;" id="TBL-14-4-1"
|
||||
class="td11"><!--l. 828--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-4-2"
|
||||
class="td11"><!--l. 828--><p class="noindent" ><span
|
||||
style="vertical-align:baseline;" id="TBL-15-4-"><td style="white-space:normal; text-align:left;" id="TBL-15-4-1"
|
||||
class="td11"> <!--l. 851--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-4-2"
|
||||
class="td11"> <!--l. 851--><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
|
||||
@@ -145,89 +110,48 @@ class="cmti-12">type </span><span
|
||||
class="cmr-12">and </span><span
|
||||
class="cmti-12">kind</span><span
|
||||
class="cmti-12">_parameter</span>
|
||||
<span
|
||||
class="cmr-12">must be chosen according to the </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">real</span><span
|
||||
class="cmr-12">/</span><span class="lstinline"></span><span
|
||||
class="cmtt-12">complex</span><span
|
||||
<span
|
||||
class="cmr-12">must be chosen according to the </span><code class="lstinline"><span style="color:#000000">real</span></code><span
|
||||
class="cmr-12">/</span><code class="lstinline"><span style="color:#000000">complex</span></code><span
|
||||
class="cmr-12">, single/double</span>
|
||||
<span
|
||||
class="cmr-12">precision version of AMG4PSBLAS under use.</span> </td>
|
||||
<span
|
||||
class="cmr-12">precision version of AMG4PSBLAS under use.</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. 831--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-14-5-2"
|
||||
class="td11"><!--l. 831--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">type</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">psb_desc_type</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">in</span><span
|
||||
class="cmtt-12">)</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
style="vertical-align:baseline;" id="TBL-15-5-"><td style="white-space:normal; text-align:left;" id="TBL-15-5-1"
|
||||
class="td11"> <!--l. 854--><p class="noindent" ><code class="lstinline"><span style="color:#000000">desc_a</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-5-2"
|
||||
class="td11"> <!--l. 854--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_desc_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
|
||||
class="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. 832--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-6-2"
|
||||
class="td11"><!--l. 832--><p class="noindent" ><span
|
||||
style="vertical-align:baseline;" id="TBL-15-6-"><td style="white-space:normal; text-align:left;" id="TBL-15-6-1"
|
||||
class="td11"> <!--l. 855--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-6-2"
|
||||
class="td11"> <!--l. 855--><p class="noindent" ><span
|
||||
class="cmr-12">The communication descriptor associated to the matrix to be</span>
|
||||
<span
|
||||
class="cmr-12">preconditioned.</span> </td>
|
||||
<span
|
||||
class="cmr-12">preconditioned.</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. 834--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-7-2"
|
||||
class="td11"><!--l. 834--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">integer</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">out</span><span
|
||||
class="cmtt-12">)</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
style="vertical-align:baseline;" id="TBL-15-7-"><td style="white-space:normal; text-align:left;" id="TBL-15-7-1"
|
||||
class="td11"> <!--l. 857--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-7-2"
|
||||
class="td11"> <!--l. 857--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
|
||||
class="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. 835--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-8-2"
|
||||
class="td11"><!--l. 835--><p class="noindent" ><span
|
||||
style="vertical-align:baseline;" id="TBL-15-8-"><td style="white-space:normal; text-align:left;" id="TBL-15-8-1"
|
||||
class="td11"> <!--l. 858--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-8-2"
|
||||
class="td11"> <!--l. 858--><p class="noindent" ><span
|
||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlse7.html#x28-320007"><span
|
||||
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
||||
class="cmr-12">for details.</span> </td>
|
||||
class="cmr-12">for details.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-14-9-"><td style="white-space:normal; text-align:left;" id="TBL-14-9-1"
|
||||
class="td11"><!--l. 836--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">trans</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-9-2"
|
||||
class="td11"><!--l. 836--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">character</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">len</span><span
|
||||
class="cmtt-12">=1),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">optional</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">in</span><span
|
||||
class="cmtt-12">).</span> </td>
|
||||
style="vertical-align:baseline;" id="TBL-15-9-"><td style="white-space:normal; text-align:left;" id="TBL-15-9-1"
|
||||
class="td11"> <!--l. 859--><p class="noindent" ><code class="lstinline"><span style="color:#000000">trans</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-9-2"
|
||||
class="td11"> <!--l. 859--><p class="noindent" ><code class="lstinline"><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=1),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">).</span></code> </td>
|
||||
</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. 837--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-10-2"
|
||||
class="td11"><!--l. 837--><p class="noindent" ><span
|
||||
class="cmr-12">If </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">trans</span> <span
|
||||
class="cmr-12">= </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">’</span><span
|
||||
class="cmtt-12">N</span><span
|
||||
class="cmtt-12">’</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">’</span><span
|
||||
class="cmtt-12">n</span><span
|
||||
class="cmtt-12">’</span> <span
|
||||
style="vertical-align:baseline;" id="TBL-15-10-"><td style="white-space:normal; text-align:left;" id="TBL-15-10-1"
|
||||
class="td11"> <!--l. 860--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-10-2"
|
||||
class="td11"> <!--l. 860--><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
|
||||
class="cmmi-12">op</span><span
|
||||
class="cmr-12">(</span><span
|
||||
@@ -238,17 +162,9 @@ class="cmr-12">) = </span><span
|
||||
class="cmmi-12">B</span><sup><span
|
||||
class="cmsy-8">-</span><span
|
||||
class="cmr-8">1</span></sup><span
|
||||
class="cmr-12">; if </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">trans</span> <span
|
||||
class="cmr-12">= </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">’</span><span
|
||||
class="cmtt-12">T</span><span
|
||||
class="cmtt-12">’</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">’</span><span
|
||||
class="cmtt-12">t</span><span
|
||||
class="cmtt-12">’</span>
|
||||
<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">T</span><span style="color:#000000">’</span><span style="color:#000000">,</span><span style="color:#000000">’</span><span style="color:#000000">t</span><span style="color:#000000">’</span></code>
|
||||
<span
|
||||
class="cmr-12">then </span><span
|
||||
class="cmmi-12">op</span><span
|
||||
class="cmr-12">(</span><span
|
||||
@@ -263,18 +179,10 @@ class="cmr-12">(transpose of </span><span
|
||||
class="cmmi-12">B</span><sup><span
|
||||
class="cmsy-8">-</span><span
|
||||
class="cmr-8">1</span></sup><span
|
||||
class="cmr-12">); if </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">trans</span> <span
|
||||
class="cmr-12">= </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">’</span><span
|
||||
class="cmtt-12">C</span><span
|
||||
class="cmtt-12">’</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">’</span><span
|
||||
class="cmtt-12">c</span><span
|
||||
class="cmtt-12">’</span> <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">C</span><span style="color:#000000">’</span><span style="color:#000000">,</span><span style="color:#000000">’</span><span style="color:#000000">c</span><span style="color:#000000">’</span></code> <span
|
||||
class="cmr-12">then</span>
|
||||
<span
|
||||
<span
|
||||
class="cmmi-12">op</span><span
|
||||
class="cmr-12">(</span><span
|
||||
class="cmmi-12">B</span><sup><span
|
||||
@@ -288,58 +196,40 @@ class="cmr-12">(conjugate transpose of </span><span
|
||||
class="cmmi-12">B</span><sup><span
|
||||
class="cmsy-8">-</span><span
|
||||
class="cmr-8">1</span></sup><span
|
||||
class="cmr-12">).</span> </td>
|
||||
class="cmr-12">).</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. 841--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">work</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-11-2"
|
||||
class="td11"><!--l. 841--><p class="noindent" ><span
|
||||
class="cmti-12">type</span><span class="lstinline"></span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">kind_parameter</span><span
|
||||
class="cmtt-12">)</span><span
|
||||
class="cmr-12">, dimension(:), optional, target—.</span> </td>
|
||||
style="vertical-align:baseline;" id="TBL-15-11-"><td style="white-space:normal; text-align:left;" id="TBL-15-11-1"
|
||||
class="td11"> <!--l. 864--><p class="noindent" ><code class="lstinline"><span style="color:#000000">work</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-15-11-2"
|
||||
class="td11"> <!--l. 864--><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-14-12-"><td style="white-space:normal; text-align:left;" id="TBL-14-12-1"
|
||||
class="td11"><!--l. 842--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-12-2"
|
||||
class="td11"><!--l. 842--><p class="noindent" ><span
|
||||
class="cmr-12">Workspace. Its size should be at least </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">4</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">*</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">psb_cd_get_local_</span>
|
||||
<span class="lstinline"></span><span
|
||||
class="cmtt-12">cols</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">desc_a</span><span
|
||||
class="cmtt-12">)</span> <span
|
||||
style="vertical-align:baseline;" id="TBL-15-12-"><td style="white-space:normal; text-align:left;" id="TBL-15-12-1"
|
||||
class="td11"> <!--l. 865--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-12-2"
|
||||
class="td11"> <!--l. 865--><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
|
||||
class="cmti-12">type </span><span
|
||||
class="cmr-12">and</span>
|
||||
<span
|
||||
<span
|
||||
class="cmti-12">kind</span><span
|
||||
class="cmti-12">_parameter </span><span
|
||||
class="cmr-12">must be chosen according to the </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">real</span><span
|
||||
class="cmr-12">/</span><span class="lstinline"></span><span
|
||||
class="cmtt-12">complex</span><span
|
||||
class="cmr-12">must be chosen according to the </span><code class="lstinline"><span style="color:#000000">real</span></code><span
|
||||
class="cmr-12">/</span><code class="lstinline"><span style="color:#000000">complex</span></code><span
|
||||
class="cmr-12">,</span>
|
||||
<span
|
||||
class="cmr-12">single/double precision version of AMG4PSBLAS under use.</span> </td>
|
||||
<span
|
||||
class="cmr-12">single/double precision version of AMG4PSBLAS under use.</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>
|
||||
style="vertical-align:baseline;" id="TBL-15-13-"><td style="white-space:normal; text-align:left;" id="TBL-15-13-1"
|
||||
class="td11"> </td> </tr></table> </div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 851--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 874--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu14.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -356,6 +246,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. 851--><p class="indent" > <a
|
||||
<!--l. 874--><p class="indent" > <a
|
||||
id="tailuserhtmlsu13.html"></a>
|
||||
</body></html>
|
||||
|
||||
+24
-43
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 851--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 874--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu15.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -33,63 +33,44 @@ class="cmr-12">5.7 </span></span> <a
|
||||
class="cmr-12">Method free</span></h4>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 853--><p class="noindent" >
|
||||
<!--l. 854--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">call</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">p</span><span
|
||||
class="cmtt-12">%</span><span
|
||||
class="cmtt-12">free</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">p</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">info</span><span
|
||||
class="cmtt-12">)</span><br />
|
||||
<!--l. 876--><p class="noindent" >
|
||||
<!--l. 877--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">free</span><span style="color:#000000">(</span><span style="color:#000000">p</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">)</span></code><br />
|
||||
</div>
|
||||
<!--l. 857--><p class="noindent" ><span
|
||||
class="cmr-12">This method deallocates the preconditioner data structure </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">p</span><span
|
||||
<!--l. 880--><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. 860--><p class="noindent" ><span
|
||||
<!--l. 883--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<div class="tabular"> <table id="TBL-15" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-15-1g"><col
|
||||
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. 863--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-15-1-2"
|
||||
class="td11"><!--l. 863--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">integer</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">out</span><span
|
||||
class="cmtt-12">)</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
<div class="tabular"> <table id="TBL-16" class="tabular"
|
||||
|
||||
><colgroup id="TBL-16-1g"><col
|
||||
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. 886--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-16-1-2"
|
||||
class="td11"> <!--l. 886--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
|
||||
class="cmr-12">.</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. 864--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-2-2"
|
||||
class="td11"><!--l. 864--><p class="noindent" ><span
|
||||
style="vertical-align:baseline;" id="TBL-16-2-"><td style="white-space:normal; text-align:left;" id="TBL-16-2-1"
|
||||
class="td11"> <!--l. 887--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-2-2"
|
||||
class="td11"> <!--l. 887--><p class="noindent" ><span
|
||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlse7.html#x28-320007"><span
|
||||
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
||||
class="cmr-12">for</span>
|
||||
<span
|
||||
class="cmr-12">details.</span> </td>
|
||||
<span
|
||||
class="cmr-12">details.</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"> </td> </tr></table></div>
|
||||
style="vertical-align:baseline;" id="TBL-16-3-"><td style="white-space:normal; text-align:left;" id="TBL-16-3-1"
|
||||
class="td11"> </td> </tr></table> </div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 870--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 893--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu15.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -106,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. 870--><p class="indent" > <a
|
||||
<!--l. 893--><p class="indent" > <a
|
||||
id="tailuserhtmlsu14.html"></a>
|
||||
</body></html>
|
||||
|
||||
+56
-117
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 870--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 893--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu16.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -33,148 +33,87 @@ class="cmr-12">5.8 </span></span> <a
|
||||
class="cmr-12">Method descr</span></h4>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 872--><p class="noindent" >
|
||||
<!--l. 873--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">call</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">p</span><span
|
||||
class="cmtt-12">%</span><span
|
||||
class="cmtt-12">descr</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">info</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">[</span><span
|
||||
class="cmtt-12">iout</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">root</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">verbosity</span><span
|
||||
class="cmtt-12">])</span><br />
|
||||
<!--l. 895--><p class="noindent" >
|
||||
<!--l. 896--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">descr</span><span style="color:#000000">(</span><span style="color:#000000">info</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">[</span><span style="color:#000000">iout</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">root</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">verbosity</span><span style="color:#000000">])</span></code><br />
|
||||
</div>
|
||||
<!--l. 876--><p class="noindent" ><span
|
||||
class="cmr-12">This method prints a description of the preconditioner </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">p</span> <span
|
||||
<!--l. 899--><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
|
||||
class="cmr-12">file. It must be called after </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">hierachy_build</span> <span
|
||||
class="cmr-12">and </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">smoothers_build</span><span
|
||||
class="cmr-12">, or </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">build</span><span
|
||||
class="cmr-12">file. It must be called after </span><code class="lstinline"><span style="color:#000000">hierachy_build</span></code> <span
|
||||
class="cmr-12">and </span><code class="lstinline"><span style="color:#000000">smoothers_build</span></code><span
|
||||
class="cmr-12">, or </span><code class="lstinline"><span style="color:#000000">build</span></code><span
|
||||
class="cmr-12">, have</span>
|
||||
<span
|
||||
class="cmr-12">been called.</span>
|
||||
<!--l. 881--><p class="noindent" ><span
|
||||
<!--l. 904--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<div class="tabular"> <table id="TBL-16" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-16-1g"><col
|
||||
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. 884--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-1-2"
|
||||
class="td11"><!--l. 884--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">integer</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">out</span><span
|
||||
class="cmtt-12">)</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
<div class="tabular"> <table id="TBL-17" class="tabular"
|
||||
|
||||
><colgroup id="TBL-17-1g"><col
|
||||
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. 907--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-17-1-2"
|
||||
class="td11"> <!--l. 907--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
|
||||
class="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. 885--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-2-2"
|
||||
class="td11"><!--l. 885--><p class="noindent" ><span
|
||||
style="vertical-align:baseline;" id="TBL-17-2-"><td style="white-space:normal; text-align:left;" id="TBL-17-2-1"
|
||||
class="td11"> <!--l. 908--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-2-2"
|
||||
class="td11"> <!--l. 908--><p class="noindent" ><span
|
||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlse7.html#x28-320007"><span
|
||||
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
||||
class="cmr-12">for details.</span></td>
|
||||
class="cmr-12">for details.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-16-3-"><td style="white-space:normal; text-align:left;" id="TBL-16-3-1"
|
||||
class="td11"><!--l. 886--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">iout</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-3-2"
|
||||
class="td11"><!--l. 886--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">integer</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">in</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">optional</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
style="vertical-align:baseline;" id="TBL-17-3-"><td style="white-space:normal; text-align:left;" id="TBL-17-3-1"
|
||||
class="td11"> <!--l. 909--><p class="noindent" ><code class="lstinline"><span style="color:#000000">iout</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-17-3-2"
|
||||
class="td11"> <!--l. 909--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-16-4-"><td style="white-space:normal; text-align:left;" id="TBL-16-4-1"
|
||||
class="td11"><!--l. 887--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-4-2"
|
||||
class="td11"><!--l. 887--><p class="noindent" ><span
|
||||
style="vertical-align:baseline;" id="TBL-17-4-"><td style="white-space:normal; text-align:left;" id="TBL-17-4-1"
|
||||
class="td11"> <!--l. 910--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-4-2"
|
||||
class="td11"> <!--l. 910--><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>
|
||||
<span
|
||||
class="cmr-12">printed; the default is the standard output.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-16-5-"><td style="white-space:normal; text-align:left;" id="TBL-16-5-1"
|
||||
class="td11"><!--l. 889--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">root</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-5-2"
|
||||
class="td11"><!--l. 889--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">integer</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">in</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">optional</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
style="vertical-align:baseline;" id="TBL-17-5-"><td style="white-space:normal; text-align:left;" id="TBL-17-5-1"
|
||||
class="td11"> <!--l. 912--><p class="noindent" ><code class="lstinline"><span style="color:#000000">root</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-17-5-2"
|
||||
class="td11"> <!--l. 912--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-16-6-"><td style="white-space:normal; text-align:left;" id="TBL-16-6-1"
|
||||
class="td11"><!--l. 890--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-6-2"
|
||||
class="td11"><!--l. 890--><p class="noindent" ><span
|
||||
style="vertical-align:baseline;" id="TBL-17-6-"><td style="white-space:normal; text-align:left;" id="TBL-17-6-1"
|
||||
class="td11"> <!--l. 913--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-6-2"
|
||||
class="td11"> <!--l. 913--><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><span class="lstinline"></span><span
|
||||
class="cmtt-12">psb_root_</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
<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-16-7-"><td style="white-space:normal; text-align:left;" id="TBL-16-7-1"
|
||||
class="td11"><!--l. 892--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">verbosity</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-7-2"
|
||||
class="td11"><!--l. 892--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">integer</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">in</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">optional</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
style="vertical-align:baseline;" id="TBL-17-7-"><td style="white-space:normal; text-align:left;" id="TBL-17-7-1"
|
||||
class="td11"> <!--l. 915--><p class="noindent" ><code class="lstinline"><span style="color:#000000">verbosity</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-17-7-2"
|
||||
class="td11"> <!--l. 915--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-16-8-"><td style="white-space:normal; text-align:left;" id="TBL-16-8-1"
|
||||
class="td11"><!--l. 893--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-8-2"
|
||||
class="td11"><!--l. 893--><p class="noindent" ><span
|
||||
style="vertical-align:baseline;" id="TBL-17-8-"><td style="white-space:normal; text-align:left;" id="TBL-17-8-1"
|
||||
class="td11"> <!--l. 916--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-8-2"
|
||||
class="td11"> <!--l. 916--><p class="noindent" ><span
|
||||
class="cmr-12">The verbosity level of the description. Default value is 0. For</span>
|
||||
<span
|
||||
<span
|
||||
class="cmr-12">values higher than 0, it prints out further information, e.g., for</span>
|
||||
<span
|
||||
<span
|
||||
class="cmr-12">a distributed multilevel preconditioner the size of the coarse</span>
|
||||
<span
|
||||
class="cmr-12">matrices on every process.</span> </td>
|
||||
<span
|
||||
class="cmr-12">matrices on every process.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-16-9-"><td style="white-space:normal; text-align:left;" id="TBL-16-9-1"
|
||||
class="td11"> </td> </tr></table></div>
|
||||
style="vertical-align:baseline;" id="TBL-17-9-"><td style="white-space:normal; text-align:left;" id="TBL-17-9-1"
|
||||
class="td11"> </td> </tr></table> </div>
|
||||
|
||||
|
||||
|
||||
<!--l. 900--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 923--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu16.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -191,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. 900--><p class="indent" > <a
|
||||
<!--l. 923--><p class="indent" > <a
|
||||
id="tailuserhtmlsu15.html"></a>
|
||||
</body></html>
|
||||
|
||||
+146
-290
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 900--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 923--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu15.html" ><span
|
||||
class="cmr-12">prev</span></a><span
|
||||
@@ -28,251 +28,155 @@ class="cmr-12">] </span></p></div>
|
||||
class="cmr-12">5.9 </span></span> <a
|
||||
id="x26-250005.9"></a><span
|
||||
class="cmr-12">Auxiliary Methods</span></h4>
|
||||
<!--l. 901--><p class="noindent" ><span
|
||||
<!--l. 924--><p class="noindent" ><span
|
||||
class="cmr-12">Various functionalities are implemented as additional methods of the preconditioner</span>
|
||||
<span
|
||||
class="cmr-12">object.</span>
|
||||
<!--l. 904--><p class="noindent" >
|
||||
<!--l. 927--><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. 906--><p class="noindent" >
|
||||
<!--l. 907--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">call</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">p</span><span
|
||||
class="cmtt-12">%</span><span
|
||||
class="cmtt-12">dump</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">info</span><span
|
||||
class="cmtt-12">[,</span><span
|
||||
class="cmtt-12">istart</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">iend</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">prefix</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">head</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">ac</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">rp</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">smoother</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">solver</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">global_num</span><span
|
||||
class="cmtt-12">])</span><br />
|
||||
<!--l. 929--><p class="noindent" >
|
||||
<!--l. 930--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">dump</span><span style="color:#000000">(</span><span style="color:#000000">info</span><span style="color:#000000">[,</span><span style="color:#000000">istart</span><span style="color:#000000">,</span><span style="color:#000000">iend</span><span style="color:#000000">,</span><span style="color:#000000">prefix</span><span style="color:#000000">,</span><span style="color:#000000">head</span><span style="color:#000000">,</span><span style="color:#000000">ac</span><span style="color:#000000">,</span><span style="color:#000000">rp</span><span style="color:#000000">,</span><span style="color:#000000">smoother</span><span style="color:#000000">,</span><span style="color:#000000">solver</span><span style="color:#000000">,</span><span style="color:#000000">global_num</span><span style="color:#000000">])</span></code><br />
|
||||
</div>
|
||||
<!--l. 910--><p class="noindent" ><span
|
||||
<!--l. 933--><p class="noindent" ><span
|
||||
class="cmr-12">Dump on file.</span>
|
||||
<!--l. 913--><p class="noindent" ><span
|
||||
<!--l. 936--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<div class="tabular"> <table id="TBL-17" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-17-1g"><col
|
||||
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" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-17-1-2"
|
||||
class="td11"><!--l. 916--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">integer</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">out</span><span
|
||||
class="cmtt-12">)</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
<div class="tabular"> <table id="TBL-18" class="tabular"
|
||||
|
||||
><colgroup id="TBL-18-1g"><col
|
||||
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. 939--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-18-1-2"
|
||||
class="td11"> <!--l. 939--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
|
||||
class="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
|
||||
style="vertical-align:baseline;" id="TBL-18-2-"><td style="white-space:normal; text-align:left;" id="TBL-18-2-1"
|
||||
class="td11"> <!--l. 940--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-2-2"
|
||||
class="td11"> <!--l. 940--><p class="noindent" ><span
|
||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlse7.html#x28-320007"><span
|
||||
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
||||
class="cmr-12">for details.</span> </td>
|
||||
class="cmr-12">for details.</span> </td>
|
||||
</tr><tr
|
||||
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" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">amold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-17-3-2"
|
||||
class="td11"><!--l. 918--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">class</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">psb_</span><span
|
||||
class="cmti-12">x</span><span class="lstinline"></span><span
|
||||
class="cmtt-12">_base_sparse_mat</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">in</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">optional</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
style="vertical-align:baseline;" id="TBL-18-3-"><td style="white-space:normal; text-align:left;" id="TBL-18-3-1"
|
||||
class="td11"> <!--l. 941--><p class="noindent" ><code class="lstinline"><span style="color:#000000">amold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-18-3-2"
|
||||
class="td11"> <!--l. 941--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
|
||||
class="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-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
|
||||
style="vertical-align:baseline;" id="TBL-18-4-"><td style="white-space:normal; text-align:left;" id="TBL-18-4-1"
|
||||
class="td11"> <!--l. 942--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-4-2"
|
||||
class="td11"> <!--l. 942--><p class="noindent" ><span
|
||||
class="cmr-12">The desired dynamic type for internal matrix components; this</span>
|
||||
<span
|
||||
<span
|
||||
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
|
||||
<span
|
||||
<span
|
||||
class="cmr-12">processes. See the PSBLAS User’s Guide for details </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli5.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">20</span></a><span
|
||||
class="cmr-12">21</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
class="cmr-12">.</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"> </td> </tr></table></div>
|
||||
<!--l. 926--><p class="noindent" >
|
||||
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. 949--><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. 928--><p class="noindent" >
|
||||
<!--l. 929--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">call</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">p</span><span
|
||||
class="cmtt-12">%</span><span
|
||||
class="cmtt-12">clone</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">pout</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">info</span><span
|
||||
class="cmtt-12">)</span><br />
|
||||
<!--l. 951--><p class="noindent" >
|
||||
<!--l. 952--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">clone</span><span style="color:#000000">(</span><span style="color:#000000">pout</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">)</span></code><br />
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!--l. 932--><p class="noindent" ><span
|
||||
<!--l. 955--><p class="noindent" ><span
|
||||
class="cmr-12">Create a (deep) copy of the preconditioner object.</span>
|
||||
<!--l. 935--><p class="noindent" ><span
|
||||
<!--l. 958--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<div class="tabular"> <table id="TBL-18" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-18-1g"><col
|
||||
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. 938--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">pout</span> </td><td style="white-space:normal; text-align:left;" id="TBL-18-1-2"
|
||||
class="td11"><!--l. 938--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">type</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">amg_</span><span
|
||||
class="cmti-12">x</span><span class="lstinline"></span><span
|
||||
class="cmtt-12">prec_type</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">out</span><span
|
||||
class="cmtt-12">)</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
<div class="tabular"> <table id="TBL-19" class="tabular"
|
||||
|
||||
><colgroup id="TBL-19-1g"><col
|
||||
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. 961--><p class="noindent" ><code class="lstinline"><span style="color:#000000">pout</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-19-1-2"
|
||||
class="td11"> <!--l. 961--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">amg_</span></code><span
|
||||
class="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-18-2-"><td style="white-space:normal; text-align:left;" id="TBL-18-2-1"
|
||||
class="td11"><!--l. 939--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-2-2"
|
||||
class="td11"><!--l. 939--><p class="noindent" ><span
|
||||
style="vertical-align:baseline;" id="TBL-19-2-"><td style="white-space:normal; text-align:left;" id="TBL-19-2-1"
|
||||
class="td11"> <!--l. 962--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-2-2"
|
||||
class="td11"> <!--l. 962--><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>
|
||||
<span
|
||||
class="cmr-12">be chosen according to the </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">real</span><span
|
||||
class="cmr-12">/</span><span class="lstinline"></span><span
|
||||
class="cmtt-12">complex</span><span
|
||||
<span
|
||||
class="cmr-12">be chosen according to the </span><code class="lstinline"><span style="color:#000000">real</span></code><span
|
||||
class="cmr-12">/</span><code class="lstinline"><span style="color:#000000">complex</span></code><span
|
||||
class="cmr-12">, single/double precision</span>
|
||||
<span
|
||||
class="cmr-12">version of AMG4PSBLAS under use.</span> </td>
|
||||
<span
|
||||
class="cmr-12">version of AMG4PSBLAS under use.</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. 942--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-18-3-2"
|
||||
class="td11"><!--l. 942--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">integer</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">out</span><span
|
||||
class="cmtt-12">)</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
style="vertical-align:baseline;" id="TBL-19-3-"><td style="white-space:normal; text-align:left;" id="TBL-19-3-1"
|
||||
class="td11"> <!--l. 965--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-19-3-2"
|
||||
class="td11"> <!--l. 965--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
|
||||
class="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. 943--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-4-2"
|
||||
class="td11"><!--l. 943--><p class="noindent" ><span
|
||||
style="vertical-align:baseline;" id="TBL-19-4-"><td style="white-space:normal; text-align:left;" id="TBL-19-4-1"
|
||||
class="td11"> <!--l. 966--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-4-2"
|
||||
class="td11"> <!--l. 966--><p class="noindent" ><span
|
||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlse7.html#x28-320007"><span
|
||||
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
||||
class="cmr-12">for details.</span> </td>
|
||||
class="cmr-12">for details.</span> </td>
|
||||
</tr><tr
|
||||
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. 948--><p class="noindent" >
|
||||
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. 971--><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. 950--><p class="noindent" >
|
||||
<!--l. 951--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">sz</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">=</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">p</span><span
|
||||
class="cmtt-12">%</span><span
|
||||
class="cmtt-12">sizeof</span><span
|
||||
class="cmtt-12">([</span><span
|
||||
class="cmtt-12">global</span><span
|
||||
class="cmtt-12">])</span><br />
|
||||
<!--l. 973--><p class="noindent" >
|
||||
<!--l. 974--><p class="noindent" ><code class="lstinline"><span style="color:#000000">sz</span><span style="color:#000000"> </span><span style="color:#000000">=</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">sizeof</span><span style="color:#000000">([</span><span style="color:#000000">global</span><span style="color:#000000">])</span></code><br />
|
||||
</div>
|
||||
<div class="tabular"> <table id="TBL-19" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-19-1g"><col
|
||||
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. 955--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">global</span> </td> <td style="white-space:normal; text-align:left;" id="TBL-19-1-2"
|
||||
class="td11"><!--l. 955--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">logical</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">optional</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
<div class="tabular"> <table id="TBL-20" class="tabular"
|
||||
|
||||
><colgroup id="TBL-20-1g"><col
|
||||
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. 978--><p class="noindent" ><code class="lstinline"><span style="color:#000000">global</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-20-1-2"
|
||||
class="td11"> <!--l. 978--><p class="noindent" ><code class="lstinline"><span style="color:#000000">logical</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">optional</span></code><span
|
||||
class="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. 956--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-2-2"
|
||||
class="td11"><!--l. 956--><p class="noindent" ><span
|
||||
style="vertical-align:baseline;" id="TBL-20-2-"><td style="white-space:normal; text-align:left;" id="TBL-20-2-1"
|
||||
class="td11"> <!--l. 979--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-20-2-2"
|
||||
class="td11"> <!--l. 979--><p class="noindent" ><span
|
||||
class="cmr-12">Whether the global or local preconditioner memory occupation is</span>
|
||||
<span
|
||||
class="cmr-12">desired. Default: </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">.</span><span
|
||||
class="cmtt-12">false</span><span
|
||||
class="cmtt-12">.</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
<span
|
||||
class="cmr-12">desired. Default: </span><code class="lstinline"><span style="color:#000000">.</span><span style="color:#000000">false</span><span style="color:#000000">.</span></code><span
|
||||
class="cmr-12">.</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"> </td> </tr></table>
|
||||
</div> <span
|
||||
style="vertical-align:baseline;" id="TBL-20-3-"><td style="white-space:normal; text-align:left;" id="TBL-20-3-1"
|
||||
class="td11"> </td> </tr></table> </div>
|
||||
<span
|
||||
class="cmr-12">Return memory footprint in bytes.</span>
|
||||
<!--l. 963--><p class="noindent" >
|
||||
<!--l. 986--><p class="noindent" >
|
||||
<h5 class="subsubsectionHead"><span class="titlemark"><span
|
||||
class="cmr-12">5.9.4 </span></span> <a
|
||||
id="x26-290005.9.4"></a><span
|
||||
@@ -280,21 +184,10 @@ class="cmr-12">Method: allocate</span><span
|
||||
class="cmr-12">_wrk</span></h5>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 965--><p class="noindent" >
|
||||
<!--l. 966--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">call</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">p</span><span
|
||||
class="cmtt-12">%</span><span
|
||||
class="cmtt-12">allocate_wrk</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">info</span><span
|
||||
class="cmtt-12">[,</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">vmold</span><span
|
||||
class="cmtt-12">])</span><br />
|
||||
<!--l. 988--><p class="noindent" >
|
||||
<!--l. 989--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">allocate_wrk</span><span style="color:#000000">(</span><span style="color:#000000">info</span><span style="color:#000000">[,</span><span style="color:#000000"> </span><span style="color:#000000">vmold</span><span style="color:#000000">])</span></code><br />
|
||||
</div>
|
||||
<!--l. 969--><p class="noindent" ><span
|
||||
<!--l. 992--><p class="noindent" ><span
|
||||
class="cmr-12">Allocate internal work vectors. Each application of the preconditioner uses a number of</span>
|
||||
<span
|
||||
class="cmr-12">work vectors which are allocated internally as necessary; therefore allocation and</span>
|
||||
@@ -308,82 +201,58 @@ class="cmr-12">notably GPUs, memory allocation is a slow operation, and the defa
|
||||
class="cmr-12">lead to a slowdown. This method allows to trade space for time by preallocating</span>
|
||||
<span
|
||||
class="cmr-12">the internal workspace outside of the invocation of a Krylov method. When</span>
|
||||
<span
|
||||
class="cmr-12">using GPUs or other specialized devices, the </span><code class="lstinline"><span style="color:#000000">vmold</span></code> <span
|
||||
class="cmr-12">argument is also necessary</span>
|
||||
|
||||
|
||||
|
||||
<span
|
||||
class="cmr-12">using GPUs or other specialized devices, the </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">vmold</span> <span
|
||||
class="cmr-12">argument is also necessary</span>
|
||||
<span
|
||||
class="cmr-12">to ensure the internal work vectors are of the appropriate dynamic type to</span>
|
||||
<span
|
||||
class="cmr-12">exploit the accelerator hardware; when allocation occurs internally this is</span>
|
||||
<span
|
||||
class="cmr-12">taken care of based on the dynamic type of the </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">x</span> <span
|
||||
class="cmr-12">argument to the </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">apply</span>
|
||||
class="cmr-12">taken care of based on the dynamic type of the </span><code class="lstinline"><span style="color:#000000">x</span></code> <span
|
||||
class="cmr-12">argument to the </span><code class="lstinline"><span style="color:#000000">apply</span></code>
|
||||
<span
|
||||
class="cmr-12">method.</span>
|
||||
<!--l. 985--><p class="noindent" ><span
|
||||
<!--l. 1008--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<div class="tabular"> <table id="TBL-20" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-20-1g"><col
|
||||
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. 988--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-20-1-2"
|
||||
class="td11"><!--l. 988--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">integer</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">out</span><span
|
||||
class="cmtt-12">)</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
<div class="tabular"> <table id="TBL-21" class="tabular"
|
||||
|
||||
><colgroup id="TBL-21-1g"><col
|
||||
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. 1011--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-21-1-2"
|
||||
class="td11"> <!--l. 1011--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
|
||||
class="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. 989--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-20-2-2"
|
||||
class="td11"><!--l. 989--><p class="noindent" ><span
|
||||
style="vertical-align:baseline;" id="TBL-21-2-"><td style="white-space:normal; text-align:left;" id="TBL-21-2-1"
|
||||
class="td11"> <!--l. 1012--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-21-2-2"
|
||||
class="td11"> <!--l. 1012--><p class="noindent" ><span
|
||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlse7.html#x28-320007"><span
|
||||
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
||||
class="cmr-12">for details.</span> </td>
|
||||
class="cmr-12">for details.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-20-3-"><td style="white-space:normal; text-align:left;" id="TBL-20-3-1"
|
||||
class="td11"><!--l. 990--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">vmold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-20-3-2"
|
||||
class="td11"><!--l. 990--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">class</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">psb_</span><span
|
||||
class="cmti-12">x</span><span class="lstinline"></span><span
|
||||
class="cmtt-12">_base_vect_type</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">in</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">optional</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
style="vertical-align:baseline;" id="TBL-21-3-"><td style="white-space:normal; text-align:left;" id="TBL-21-3-1"
|
||||
class="td11"> <!--l. 1013--><p class="noindent" ><code class="lstinline"><span style="color:#000000">vmold</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-21-3-2"
|
||||
class="td11"> <!--l. 1013--><p class="noindent" ><code class="lstinline"><span style="color:#000000">class</span><span style="color:#000000">(</span><span style="color:#000000">psb_</span></code><span
|
||||
class="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-20-4-"><td style="white-space:normal; text-align:left;" id="TBL-20-4-1"
|
||||
class="td11"><!--l. 991--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-20-4-2"
|
||||
class="td11"><!--l. 991--><p class="noindent" ><span
|
||||
style="vertical-align:baseline;" id="TBL-21-4-"><td style="white-space:normal; text-align:left;" id="TBL-21-4-1"
|
||||
class="td11"> <!--l. 1014--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-21-4-2"
|
||||
class="td11"> <!--l. 1014--><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>
|
||||
<span
|
||||
class="cmr-12">allows e.g. running on GPUs.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-20-5-"><td style="white-space:normal; text-align:left;" id="TBL-20-5-1"
|
||||
class="td11"> </td> </tr></table></div>
|
||||
<!--l. 997--><p class="noindent" >
|
||||
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. 1020--><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
|
||||
@@ -391,50 +260,37 @@ class="cmr-12">Method: free</span><span
|
||||
class="cmr-12">_wrk</span></h5>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 999--><p class="noindent" >
|
||||
<!--l. 1000--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">call</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">p</span><span
|
||||
class="cmtt-12">%</span><span
|
||||
class="cmtt-12">free_wrk</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">info</span><span
|
||||
class="cmtt-12">)</span><br />
|
||||
<!--l. 1022--><p class="noindent" >
|
||||
<!--l. 1023--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">free_wrk</span><span style="color:#000000">(</span><span style="color:#000000">info</span><span style="color:#000000">)</span></code><br />
|
||||
</div>
|
||||
<!--l. 1003--><p class="noindent" ><span
|
||||
<!--l. 1026--><p class="noindent" ><span
|
||||
class="cmr-12">Deallocate internal work vectors.</span>
|
||||
<!--l. 1006--><p class="noindent" ><span
|
||||
<!--l. 1029--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<div class="tabular"> <table id="TBL-21" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
><colgroup id="TBL-21-1g"><col
|
||||
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. 1009--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-21-1-2"
|
||||
class="td11"><!--l. 1009--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">integer</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">out</span><span
|
||||
class="cmtt-12">)</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
<div class="tabular"> <table id="TBL-22" class="tabular"
|
||||
|
||||
><colgroup id="TBL-22-1g"><col
|
||||
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. 1032--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-22-1-2"
|
||||
class="td11"> <!--l. 1032--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
|
||||
class="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. 1010--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-21-2-2"
|
||||
class="td11"><!--l. 1010--><p class="noindent" ><span
|
||||
style="vertical-align:baseline;" id="TBL-22-2-"><td style="white-space:normal; text-align:left;" id="TBL-22-2-1"
|
||||
class="td11"> <!--l. 1033--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-22-2-2"
|
||||
class="td11"> <!--l. 1033--><p class="noindent" ><span
|
||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlse7.html#x28-320007"><span
|
||||
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
||||
class="cmr-12">for details.</span> </td>
|
||||
class="cmr-12">for details.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-21-3-"><td style="white-space:normal; text-align:left;" id="TBL-21-3-1"
|
||||
class="td11"> </td> </tr></table></div>
|
||||
style="vertical-align:baseline;" id="TBL-22-3-"><td style="white-space:normal; text-align:left;" id="TBL-22-3-1"
|
||||
class="td11"> </td> </tr></table> </div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
+41
-36
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 79--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 96--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu3.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -31,24 +31,25 @@ class="cmr-12">] </span></p></div>
|
||||
class="cmr-12">3.2 </span></span> <a
|
||||
id="x10-90003.2"></a><span
|
||||
class="cmr-12">Optional third party libraries</span></h4>
|
||||
<!--l. 81--><p class="noindent" ><span
|
||||
<!--l. 98--><p class="noindent" ><span
|
||||
class="cmr-12">We provide interfaces to the following third-party software libraries; note that these are</span>
|
||||
<span
|
||||
class="cmr-12">optional, but if you enable them some defaults for multilevel preconditioners may</span>
|
||||
<span
|
||||
class="cmr-12">change to reflect their presence.</span>
|
||||
<!--l. 85--><p class="indent" >
|
||||
<!--l. 102--><p class="indent" >
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmbx-12">UMFPACK</span> </dt><dd
|
||||
class="description"><span class="cite"><span
|
||||
class="description">
|
||||
<!--l. 103--><p class="noindent" ><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli5.html#XUMFPACK"><span
|
||||
class="cmr-12">15</span></a><span
|
||||
class="cmr-12">16</span></a><span
|
||||
class="cmr-12">]</span></span> <span
|
||||
class="cmr-12">A sparse LU factorization package included in the SuiteSparse</span>
|
||||
class="cmr-12">A sparse LU factorization package included in the SuiteSparse library,</span>
|
||||
<span
|
||||
class="cmr-12">library, available from </span><a
|
||||
class="cmr-12">available from </span><a
|
||||
href="faculty.cse.tamu.edu/davis/suitesparse.html" class="url" ><span
|
||||
class="cmtt-12">faculty.cse.tamu.edu/davis/suitesparse.html</span></a><span
|
||||
class="cmr-12">;</span>
|
||||
@@ -60,36 +61,38 @@ class="cmr-12">double precision real and complex data. We tested
|
||||
class="cmr-12">of SuiteSparse. Note that for configuring SuiteSparse you should</span>
|
||||
<span
|
||||
class="cmr-12">provide the right path to the BLAS and LAPACK libraries in the</span>
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">SuiteSparse_config/SuiteSparse_config.mk</span></span></span> <span
|
||||
<span class="obeylines-h"><code class="verb">SuiteSparse_config/SuiteSparse_config.mk</code></span> <span
|
||||
class="cmr-12">file.</span>
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-12">MUMPS</span> </dt><dd
|
||||
class="description"><span class="cite"><span
|
||||
class="description">
|
||||
<!--l. 110--><p class="noindent" ><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
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
|
||||
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">; it provides sequential and parallel factorizations and</span>
|
||||
class="cmr-12">;</span>
|
||||
<span
|
||||
class="cmr-12">triangular system solution for single and double precision, real and complex</span>
|
||||
class="cmr-12">it provides sequential and parallel factorizations and triangular system</span>
|
||||
<span
|
||||
class="cmr-12">data. We tested versions 4.10.0 and 5.0.1.</span>
|
||||
class="cmr-12">solution for single and double precision, real and complex data. We tested</span>
|
||||
<span
|
||||
class="cmr-12">versions 4.10.0 and 5.0.1.</span>
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmbx-12">SuperLU</span> </dt><dd
|
||||
class="description"><span class="cite"><span
|
||||
class="description">
|
||||
<!--l. 115--><p class="noindent" ><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli5.html#XSUPERLU"><span
|
||||
class="cmr-12">16</span></a><span
|
||||
class="cmr-12">17</span></a><span
|
||||
class="cmr-12">]</span></span> <span
|
||||
class="cmr-12">A sparse LU factorization package available from</span>
|
||||
<a
|
||||
class="cmr-12">A sparse LU factorization package available from </span>
|
||||
<a
|
||||
href="crd.lbl.gov/~xiaoye/SuperLU/" class="url" ><span
|
||||
class="cmtt-12">crd.lbl.gov/</span><span
|
||||
class="cmtt-12">~</span><span
|
||||
@@ -105,35 +108,37 @@ class="cmr-12">remember to define the BLASLIB variable in the make.inc file.</sp
|
||||
<span
|
||||
class="cmbx-12">SuperLU</span><span
|
||||
class="cmbx-12">_Dist</span> </dt><dd
|
||||
class="description"><span class="cite"><span
|
||||
class="description">
|
||||
<!--l. 121--><p class="noindent" ><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli5.html#XSUPERLUDIST"><span
|
||||
class="cmr-12">26</span></a><span
|
||||
class="cmr-12">]</span></span> <span
|
||||
class="cmr-12">A sparse LU factorization package available from the same</span>
|
||||
class="cmr-12">28</span></a><span
|
||||
class="cmr-12">]</span></span> <span
|
||||
class="cmr-12">A sparse LU factorization package available from the same site as</span>
|
||||
<span
|
||||
class="cmr-12">site as SuperLU; it provides parallel factorization and triangular system</span>
|
||||
class="cmr-12">SuperLU; it provides parallel factorization and triangular system solution</span>
|
||||
<span
|
||||
class="cmr-12">solution for double precision real and complex data. We tested versions</span>
|
||||
class="cmr-12">for double precision real and complex data. We tested versions 3.3 and</span>
|
||||
<span
|
||||
class="cmr-12">3.3 and 4.2. If you installed BLAS from ATLAS, remember to define the</span>
|
||||
class="cmr-12">4.2. If you installed BLAS from ATLAS, remember to define the BLASLIB</span>
|
||||
|
||||
|
||||
|
||||
<span
|
||||
class="cmr-12">BLASLIB variable in the make.inc file and to add the </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">-std=c99</span></span></span> <span
|
||||
class="cmr-12">option to</span>
|
||||
class="cmr-12">variable in the make.inc file and to add the </span><span class="obeylines-h"><code class="verb">-std=c99</code></span> <span
|
||||
class="cmr-12">option to the C</span>
|
||||
<span
|
||||
class="cmr-12">the C compiler options. Note that this library requires the ParMETIS library</span>
|
||||
class="cmr-12">compiler options. Note that this library requires the ParMETIS library for</span>
|
||||
<span
|
||||
class="cmr-12">for parallel graph partitioning and fill-reducing matrix ordering, available</span>
|
||||
<span
|
||||
class="cmr-12">from </span><a
|
||||
class="cmr-12">parallel graph partitioning and fill-reducing matrix ordering, available from</span>
|
||||
<a
|
||||
href="glaros.dtc.umn.edu/gkhome/metis/parmetis/overview" class="url" ><span
|
||||
class="cmtt-12">glaros.dtc.umn.edu/gkhome/metis/parmetis/overview</span></a><span
|
||||
class="cmr-12">.</span></dd></dl>
|
||||
|
||||
|
||||
|
||||
<!--l. 116--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 133--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu3.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -150,6 +155,6 @@ class="cmr-12">] [</span><a
|
||||
href="userhtmlse3.html#userhtmlsu2.html" ><span
|
||||
class="cmr-12">up</span></a><span
|
||||
class="cmr-12">] </span></p></div>
|
||||
<!--l. 116--><p class="indent" > <a
|
||||
<!--l. 133--><p class="indent" > <a
|
||||
id="tailuserhtmlsu2.html"></a>
|
||||
</body></html>
|
||||
|
||||
+1922
-2576
File diff suppressed because it is too large
Load Diff
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 190--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 207--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu5.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -31,7 +31,7 @@ class="cmr-12">] </span></p></div>
|
||||
class="cmr-12">3.4 </span></span> <a
|
||||
id="x12-110003.4"></a><span
|
||||
class="cmr-12">Bug reporting</span></h4>
|
||||
<!--l. 191--><p class="noindent" ><span
|
||||
<!--l. 208--><p class="noindent" ><span
|
||||
class="cmr-12">If you find any bugs in our codes, please report them through our issues page</span>
|
||||
<span
|
||||
class="cmr-12">on</span><br
|
||||
@@ -39,7 +39,7 @@ class="newline" /> <a
|
||||
href="https://github.com/psctoolkit/psctoolkit/issues" class="url" ><span
|
||||
class="cmtt-12">https://github.com/psctoolkit/psctoolkit/issues</span></a><br
|
||||
class="newline" />
|
||||
<!--l. 195--><p class="indent" > <span
|
||||
<!--l. 212--><p class="indent" > <span
|
||||
class="cmr-12">To enable us to track the bug, please provide a log from the failing application, the</span>
|
||||
<span
|
||||
class="cmr-12">test conditions, and ideally a self-contained test program reproducing the</span>
|
||||
@@ -48,7 +48,7 @@ class="cmr-12">issue.</span>
|
||||
|
||||
|
||||
|
||||
<!--l. 199--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 216--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu5.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -65,6 +65,6 @@ class="cmr-12">] [</span><a
|
||||
href="userhtmlse3.html#userhtmlsu4.html" ><span
|
||||
class="cmr-12">up</span></a><span
|
||||
class="cmr-12">] </span></p></div>
|
||||
<!--l. 199--><p class="indent" > <a
|
||||
<!--l. 216--><p class="indent" > <a
|
||||
id="tailuserhtmlsu4.html"></a>
|
||||
</body></html>
|
||||
|
||||
+25
-25
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 199--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 216--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu4.html" ><span
|
||||
class="cmr-12">prev</span></a><span
|
||||
@@ -28,26 +28,22 @@ class="cmr-12">] </span></p></div>
|
||||
class="cmr-12">3.5 </span></span> <a
|
||||
id="x13-120003.5"></a><span
|
||||
class="cmr-12">Example and test programs</span></h4>
|
||||
<!--l. 200--><p class="noindent" ><span
|
||||
class="cmr-12">The package contains a </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">samples</span></span></span> <span
|
||||
class="cmr-12">directory, divided in two subdirs </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">simple</span></span></span> <span
|
||||
<!--l. 217--><p class="noindent" ><span
|
||||
class="cmr-12">The package contains a </span><span class="obeylines-h"><code class="verb">samples</code></span> <span
|
||||
class="cmr-12">directory, divided in two subdirs </span><span class="obeylines-h"><code class="verb">simple</code></span> <span
|
||||
class="cmr-12">and</span>
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">advanced</span></span></span><span
|
||||
class="cmr-12">; both of them are further divided into </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">fileread</span></span></span> <span
|
||||
class="cmr-12">and </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">pdegen</span></span></span> <span
|
||||
<span class="obeylines-h"><code class="verb">advanced</code></span><span
|
||||
class="cmr-12">; both of them are further divided into </span><span class="obeylines-h"><code class="verb">fileread</code></span> <span
|
||||
class="cmr-12">and </span><span class="obeylines-h"><code class="verb">pdegen</code></span> <span
|
||||
class="cmr-12">subdirectories.</span>
|
||||
<span
|
||||
class="cmr-12">Their purpose is as follows:</span>
|
||||
<dl class="description"><dt class="description">
|
||||
<span
|
||||
class="cmtt-12">simple</span> </dt><dd
|
||||
class="description"><span
|
||||
class="cmr-12">contains a set of simple example programs with a predefined choice of</span>
|
||||
class="description">
|
||||
<!--l. 222--><p class="noindent" ><span
|
||||
class="cmr-12">contains a set of simple example programs with a predefined choice of</span>
|
||||
<span
|
||||
class="cmr-12">preconditioners, selectable via integer values. These are intended to get</span>
|
||||
<span
|
||||
@@ -55,21 +51,19 @@ class="cmr-12">acquainted with the multilevel preconditioners available in AMG4P
|
||||
</dd><dt class="description">
|
||||
<span
|
||||
class="cmtt-12">advanced</span> </dt><dd
|
||||
class="description"><span
|
||||
class="cmr-12">contains a set of more sophisticated examples that will allow the user,</span>
|
||||
class="description">
|
||||
<!--l. 226--><p class="noindent" ><span
|
||||
class="cmr-12">contains a set of more sophisticated examples that will allow the user, via</span>
|
||||
<span
|
||||
class="cmr-12">via the input files in the </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">runs</span></span></span> <span
|
||||
class="cmr-12">subdirectories, to experiment with the full</span>
|
||||
class="cmr-12">the input files in the </span><span class="obeylines-h"><code class="verb">runs</code></span> <span
|
||||
class="cmr-12">subdirectories, to experiment with the full range</span>
|
||||
<span
|
||||
class="cmr-12">range of preconditioners implemented in the package.</span></dd></dl>
|
||||
<!--l. 214--><p class="noindent" ><span
|
||||
class="cmr-12">The </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">fileread</span></span></span> <span
|
||||
class="cmr-12">of preconditioners implemented in the package.</span></dd></dl>
|
||||
<!--l. 231--><p class="noindent" ><span
|
||||
class="cmr-12">The </span><span class="obeylines-h"><code class="verb">fileread</code></span> <span
|
||||
class="cmr-12">directories contain sample programs that read sparse matrices from files,</span>
|
||||
<span
|
||||
class="cmr-12">according to the Matrix Market or the Harwell-Boeing storage format; the </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">pdegen</span></span></span>
|
||||
class="cmr-12">according to the Matrix Market or the Harwell-Boeing storage format; the </span><span class="obeylines-h"><code class="verb">pdegen</code></span>
|
||||
<span
|
||||
class="cmr-12">programs generate matrices in full parallel mode from the discretization of a sample</span>
|
||||
<span
|
||||
@@ -86,6 +80,12 @@ class="cmr-12">partial differential equation.</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu4.html" ><span
|
||||
|
||||
+25
-48
@@ -38,31 +38,19 @@ class="cmr-12">(see Table</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlse4.html#x14-13015r1"><span
|
||||
class="cmr-12">1</span><!--tex4ht:ref: tab:precinit --></a><span
|
||||
class="cmr-12">). This preconditioner is chosen by simply specifying </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">’</span><span
|
||||
class="cmtt-12">ML</span><span
|
||||
class="cmtt-12">’</span> <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><span class="lstinline"></span><span
|
||||
class="cmtt-12">P</span><span
|
||||
class="cmtt-12">%</span><span
|
||||
class="cmtt-12">init</span> <span
|
||||
class="cmr-12">(a call to </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">P</span><span
|
||||
class="cmtt-12">%</span><span
|
||||
class="cmtt-12">set</span> <span
|
||||
class="cmr-12">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>
|
||||
<span class="lstinline"></span><span
|
||||
class="cmtt-12">psb_base_mod</span><span
|
||||
class="cmr-12">, </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">amg_prec_mod</span> <span
|
||||
class="cmr-12">and </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">psb_krylov_mod</span> <span
|
||||
<code class="lstinline"><span style="color:#000000">psb_base_mod</span></code><span
|
||||
class="cmr-12">, </span><code class="lstinline"><span style="color:#000000">amg_prec_mod</span></code> <span
|
||||
class="cmr-12">and </span><code class="lstinline"><span style="color:#000000">psb_krylov_mod</span></code> <span
|
||||
class="cmr-12">must be used by the example</span>
|
||||
<span
|
||||
class="cmr-12">program.</span>
|
||||
@@ -75,12 +63,9 @@ class="cmr-12">through the PSBLAS routines for sparse matrix and vector manageme
|
||||
<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">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"><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
|
||||
<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
|
||||
href="userhtmlsu5.html#x13-120003.5"><span
|
||||
@@ -88,15 +73,14 @@ class="cmr-12">3.5</span><!--tex4ht:ref: sec:ex_and_test --></a><span
|
||||
class="cmr-12">). A</span>
|
||||
<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
|
||||
<span class="obeylines-h"><code class="verb">samples/simple/fileread/runs</code></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="userhtmlli5.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">20</span></a><span
|
||||
class="cmr-12">21</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span>
|
||||
|
||||
@@ -114,9 +98,7 @@ class="cmr-12">5</span><!--tex4ht:ref: sec:userinterface --></a> <span
|
||||
class="cmr-12">for</span>
|
||||
<span
|
||||
class="cmr-12">details). If these versions are installed, the corresponding codes are available in</span>
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">samples/simple/file</span></span></span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">read</span></span></span><span
|
||||
<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">.</span>
|
||||
|
||||
|
||||
@@ -133,7 +115,7 @@ class="cmr-12">.</span>
|
||||
|
||||
|
||||
|
||||
<div class="minipage"><pre class="verbatim" id="verbatim-6">
|
||||
<div class="minipage"><pre class="verbatim" id="verbatim-7">
|
||||
  use psb_base_mod
|
||||
  use amg_prec_mod
|
||||
  use psb_krylov_mod
|
||||
@@ -167,6 +149,7 @@ class="cmr-12">.</span>
|
||||
! 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
|
||||
  ... ...
|
||||
@@ -185,10 +168,10 @@ class="cmr-12">.</span>
|
||||
  call psb_exit(ctxt)
|
||||
  stop
|
||||
</pre>
|
||||
<!--l. 255--><p class="nopar" >
|
||||
<!--l. 255--><p class="nopar" > </div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Listing 1: </span><span
|
||||
class="content">setup and application of the default multilevel preconditioner (example 1).
|
||||
@@ -216,10 +199,7 @@ class="cmr-12">sweeps. Note that the ILU(0) factorization (plus triangular solve
|
||||
class="cmr-12">local solver for the block-Jacobi sweeps, since this is the default associated</span>
|
||||
<span
|
||||
class="cmr-12">with block-Jacobi and set by</span><span
|
||||
class="cmr-12"> </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">P</span><span
|
||||
class="cmtt-12">%</span><span
|
||||
class="cmtt-12">init</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>
|
||||
<span
|
||||
class="cmr-12">coarsest-level solver implies that the coarsest-level matrix is distributed among</span>
|
||||
@@ -255,8 +235,7 @@ href="#x15-14003r3"><span
|
||||
class="cmr-12">3</span><!--tex4ht:ref: fig:ex3 --></a> <span
|
||||
class="cmr-12">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">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
|
||||
class="cmr-12">Finally, Figure</span><span
|
||||
@@ -270,16 +249,14 @@ class="cmr-12">i.e., RAS with overlap 2. Note also that a Krylov method differen
|
||||
class="cmr-12">must be used to solve the preconditioned system, since the preconditione in</span>
|
||||
<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
|
||||
<span class="obeylines-h"><code class="verb">amg_dexample_1lev.f90</code></span><span
|
||||
class="cmr-12">.</span>
|
||||
<!--l. 301--><p class="indent" > <span
|
||||
class="cmr-12">For all the previous preconditioners, example programs where the sparse matrix</span>
|
||||
<span
|
||||
class="cmr-12">and the right-hand side are generated by discretizing a PDE with Dirichlet</span>
|
||||
<span
|
||||
class="cmr-12">boundary conditions are also available in the directory </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">samples/simple/pdegen</span></span></span><span
|
||||
class="cmr-12">boundary conditions are also available in the directory </span><span class="obeylines-h"><code class="verb">samples/simple/pdegen</code></span><span
|
||||
class="cmr-12">.</span>
|
||||
|
||||
|
||||
@@ -293,7 +270,7 @@ class="cmr-12">.</span>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 318--><p class="noindent" >
|
||||
<div class="minipage"><pre class="verbatim" id="verbatim-7">
|
||||
<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
|
||||
@@ -306,7 +283,7 @@ class="cmr-12">.</span>
|
||||
  call P%smoothers_build(A,desc_A,info)
|
||||
... ...
|
||||
</pre>
|
||||
<!--l. 333--><p class="nopar" ></div></div>
|
||||
<!--l. 333--><p class="nopar" > </div></div>
|
||||
<br /><div class="caption"
|
||||
><span class="id">Listing 2: </span><span
|
||||
class="content">setup of a multilevel preconditioner based on the default decoupled coarsening</span></div><!--tex4ht:label?: x15-14002r2 -->
|
||||
@@ -326,7 +303,7 @@ class="content">setup of a multilevel preconditioner based on the default decoup
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 362--><p class="noindent" >
|
||||
<div class="minipage"><pre class="verbatim" id="verbatim-8">
|
||||
<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
|
||||
@@ -345,7 +322,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. 383--><p class="nopar" > </div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Listing 3: </span><span
|
||||
class="content">setup of a multilevel preconditioner based on the coupled coarsening using
|
||||
@@ -366,7 +343,7 @@ weighted matching</span></div><!--tex4ht:label?: x15-14003r3 -->
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 402--><p class="noindent" >
|
||||
<div class="minipage"><pre class="verbatim" id="verbatim-9">
|
||||
<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)
|
||||
@@ -376,7 +353,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. 414--><p class="nopar" > </div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Listing 4: </span><span
|
||||
class="content">setup of a one-level Schwarz preconditioner.</span></div><!--tex4ht:label?: x15-14004r4 -->
|
||||
|
||||
+26
-20
@@ -33,8 +33,7 @@ class="cmr-12">The code discussed here shows how to set up a program exploiting
|
||||
<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">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
|
||||
class="cmr-12">First of all, we need to include the appropriate modules and declare some auxiliary</span>
|
||||
@@ -52,7 +51,7 @@ class="cmr-12">variables:</span>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 452--><p class="noindent" >
|
||||
<div class="minipage"><pre class="verbatim" id="verbatim-10">
|
||||
<div class="minipage"><pre class="verbatim" id="verbatim-11">
|
||||
program amg_dexample_gpu
|
||||
  use psb_base_mod
|
||||
  use amg_prec_mod
|
||||
@@ -67,9 +66,10 @@ program amg_dexample_gpu
|
||||
  type(psb_d_hlg_sparse_mat) :: agmold
|
||||
  type(psb_d_vect_gpu)       :: vgmold
|
||||
  type(psb_i_vect_gpu)       :: igmold
|
||||
|
||||
 
|
||||
</pre>
|
||||
<!--l. 471--><p class="nopar" ></div></div>
|
||||
<!--l. 471--><p class="nopar" > </div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Listing 5: </span><span
|
||||
class="content">setup of a GPU-enabled test program part one.</span></div><!--tex4ht:label?: x16-15001r5 -->
|
||||
@@ -78,8 +78,7 @@ class="content">setup of a GPU-enabled test program part one.</span></div><!--te
|
||||
|
||||
</div><hr class="endfloat" />
|
||||
<!--l. 478--><p class="indent" > <span
|
||||
class="cmr-12">In this particular example we are choosing to employ a </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">HLG</span></span></span> <span
|
||||
class="cmr-12">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>
|
||||
@@ -103,7 +102,7 @@ class="cmr-12">guides).</span>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 501--><p class="noindent" >
|
||||
<div class="minipage"><pre class="verbatim" id="verbatim-11">
|
||||
<div class="minipage"><pre class="verbatim" id="verbatim-12">
|
||||
  call psb_init(ctxt)
|
||||
  call psb_info(ctxt,iam,np)
|
||||
  !
|
||||
@@ -114,9 +113,10 @@ class="cmr-12">guides).</span>
|
||||
  ......
|
||||
  t1 = psb_wtime()
|
||||
  call prec%smoothers_build(a,desc_a,info, amold=agmold, vmold=vgmold, imold=igmold)
|
||||
|
||||
 
|
||||
</pre>
|
||||
<!--l. 516--><p class="nopar" ></div></div>
|
||||
<!--l. 516--><p class="nopar" > </div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Listing 6: </span><span
|
||||
class="content">setup of a GPU-enabled test program part two.</span></div><!--tex4ht:label?: x16-15002r6 -->
|
||||
@@ -144,11 +144,12 @@ class="cmr-12">GPU environment</span>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 557--><p class="noindent" >
|
||||
<div class="minipage"><pre class="verbatim" id="verbatim-12">
|
||||
<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
|
||||
  !
|
||||
@@ -161,13 +162,15 @@ class="cmr-12">GPU environment</span>
|
||||
  call prec%deallocate_wrk(info)
|
||||
  call psb_barrier(ctxt)
|
||||
  tslv = psb_wtime() - t1
|
||||
|
||||
  ......
|
||||
  call psb_gpu_exit()
|
||||
  call psb_exit(ctxt)
|
||||
  stop
|
||||
|
||||
 
|
||||
</pre>
|
||||
<!--l. 584--><p class="nopar" ></div></div>
|
||||
<!--l. 584--><p class="nopar" > </div></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Listing 7: </span><span
|
||||
class="content">setup of a GPU-enabled test program part three.</span></div><!--tex4ht:label?: x16-15003r7 -->
|
||||
@@ -182,21 +185,21 @@ class="cmr-12">GPU, i.e. methods that do NOT employ triangular system solve kern
|
||||
<span
|
||||
class="cmr-12">satisfy this constraint include:</span>
|
||||
<ul class="itemize1">
|
||||
<li class="itemize"><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">JACOBI</span></span></span>
|
||||
<li class="itemize">
|
||||
<!--l. 596--><p class="noindent" ><span class="obeylines-h"><code class="verb">JACOBI</code></span>
|
||||
</li>
|
||||
<li class="itemize"><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">BJAC</span></span></span> <span
|
||||
<li class="itemize">
|
||||
<!--l. 597--><p class="noindent" ><span class="obeylines-h"><code class="verb">BJAC</code></span> <span
|
||||
class="cmr-12">with the following methods on the local blocks:</span>
|
||||
<ul class="itemize2">
|
||||
<li class="itemize"><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">INVK</span></span></span>
|
||||
<li class="itemize">
|
||||
<!--l. 599--><p class="noindent" ><span class="obeylines-h"><code class="verb">INVK</code></span>
|
||||
</li>
|
||||
<li class="itemize"><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">INVT</span></span></span>
|
||||
<li class="itemize">
|
||||
<!--l. 600--><p class="noindent" ><span class="obeylines-h"><code class="verb">INVT</code></span>
|
||||
</li>
|
||||
<li class="itemize"><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">AINV</span></span></span></li></ul>
|
||||
<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
|
||||
class="cmr-12">and their </span><span
|
||||
@@ -209,6 +212,9 @@ class="cmr-12">variants.</span>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu6.html" ><span
|
||||
|
||||
+24
-65
@@ -28,104 +28,63 @@ class="cmr-12">Method init</span></h4>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 44--><p class="noindent" >
|
||||
<!--l. 45--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">call</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">p</span><span
|
||||
class="cmtt-12">%</span><span
|
||||
class="cmtt-12">init</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">contxt</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">ptype</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12">info</span><span
|
||||
class="cmtt-12">)</span></div>
|
||||
<!--l. 45--><p class="noindent" ><code class="lstinline"><span style="color:#000000">call</span><span style="color:#000000"> </span><span style="color:#000000">p</span><span style="color:#000000">%</span><span style="color:#000000">init</span><span style="color:#000000">(</span><span style="color:#000000">contxt</span><span style="color:#000000">,</span><span style="color:#000000">ptype</span><span style="color:#000000">,</span><span style="color:#000000">info</span><span style="color:#000000">)</span></code></div>
|
||||
<!--l. 48--><p class="noindent" ><span
|
||||
class="cmr-12">This method allocates and initializes the preconditioner </span><span class="lstinline"></span><span
|
||||
class="cmtt-12">p</span><span
|
||||
class="cmr-12">This method allocates and initializes the preconditioner </span><code class="lstinline"><span style="color:#000000">p</span></code><span
|
||||
class="cmr-12">, according to the</span>
|
||||
<span
|
||||
class="cmr-12">preconditioner type chosen by the user.</span>
|
||||
<!--l. 52--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<div class="tabular"> <table id="TBL-2" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
|
||||
><colgroup id="TBL-2-1g"><col
|
||||
id="TBL-2-1"><col
|
||||
id="TBL-2-2"></colgroup><tr
|
||||
style="vertical-align:baseline;" id="TBL-2-1-"><td style="white-space:normal; text-align:left;" id="TBL-2-1-1"
|
||||
class="td11"><!--l. 56--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">contxt</span> </td> <td style="white-space:normal; text-align:left;" id="TBL-2-1-2"
|
||||
class="td11"><!--l. 56--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">type</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">psb_ctxt_type</span><span
|
||||
class="cmtt-12">),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">in</span><span
|
||||
class="cmtt-12">)</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
class="td11"> <!--l. 56--><p class="noindent" ><code class="lstinline"><span style="color:#000000">contxt</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-2-1-2"
|
||||
class="td11"> <!--l. 56--><p class="noindent" ><code class="lstinline"><span style="color:#000000">type</span><span style="color:#000000">(</span><span style="color:#000000">psb_ctxt_type</span><span style="color:#000000">),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">)</span></code><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-2-2-"><td style="white-space:normal; text-align:left;" id="TBL-2-2-1"
|
||||
class="td11"><!--l. 57--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-2-2-2"
|
||||
class="td11"><!--l. 57--><p class="noindent" ><span
|
||||
class="cmr-12">The communication context.</span> </td></tr><tr
|
||||
class="td11"> <!--l. 57--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-2-2-2"
|
||||
class="td11"> <!--l. 57--><p class="noindent" ><span
|
||||
class="cmr-12">The communication context.</span> </td></tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-2-3-"><td style="white-space:normal; text-align:left;" id="TBL-2-3-1"
|
||||
class="td11"><!--l. 58--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">ptype</span> </td> <td style="white-space:normal; text-align:left;" id="TBL-2-3-2"
|
||||
class="td11"><!--l. 58--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">character</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">len</span><span
|
||||
class="cmtt-12">=*),</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">in</span><span
|
||||
class="cmtt-12">)</span> <span
|
||||
class="td11"> <!--l. 58--><p class="noindent" ><code class="lstinline"><span style="color:#000000">ptype </span></code> </td> <td style="white-space:normal; text-align:left;" id="TBL-2-3-2"
|
||||
class="td11"> <!--l. 58--><p class="noindent" ><code class="lstinline"><span style="color:#000000">character</span><span style="color:#000000">(</span><span style="color:#000000">len</span><span style="color:#000000">=*),</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">in</span><span style="color:#000000">) </span></code><span
|
||||
class="cmr-12">.</span></td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-2-4-"><td style="white-space:normal; text-align:left;" id="TBL-2-4-1"
|
||||
class="td11"><!--l. 59--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-2-4-2"
|
||||
class="td11"><!--l. 59--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 59--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-2-4-2"
|
||||
class="td11"> <!--l. 59--><p class="noindent" ><span
|
||||
class="cmr-12">The type of preconditioner. Its values are specified in Table</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlse4.html#x14-13015r1"><span
|
||||
class="cmr-12">1</span><!--tex4ht:ref: tab:precinit --></a><span
|
||||
class="cmr-12">.</span> </td>
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-2-5-"><td style="white-space:normal; text-align:left;" id="TBL-2-5-1"
|
||||
class="td11"><!--l. 61--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-2-5-2"
|
||||
class="td11"><!--l. 61--><p class="noindent" ><span
|
||||
class="cmr-12">Note that strings are case insensitive.</span> </td>
|
||||
class="td11"> <!--l. 61--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-2-5-2"
|
||||
class="td11"> <!--l. 61--><p class="noindent" ><span
|
||||
class="cmr-12">Note that strings are case insensitive.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-2-6-"><td style="white-space:normal; text-align:left;" id="TBL-2-6-1"
|
||||
class="td11"><!--l. 62--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-2-6-2"
|
||||
class="td11"><!--l. 62--><p class="noindent" ><span class="lstinline"></span><span
|
||||
class="cmtt-12">integer</span><span
|
||||
class="cmtt-12">,</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12">intent</span><span
|
||||
class="cmtt-12">(</span><span
|
||||
class="cmtt-12">out</span><span
|
||||
class="cmtt-12">)</span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
class="td11"> <!--l. 62--><p class="noindent" ><code class="lstinline"><span style="color:#000000">info</span></code> </td><td style="white-space:normal; text-align:left;" id="TBL-2-6-2"
|
||||
class="td11"> <!--l. 62--><p class="noindent" ><code class="lstinline"><span style="color:#000000">integer</span><span style="color:#000000">,</span><span style="color:#000000"> </span><span style="color:#000000">intent</span><span style="color:#000000">(</span><span style="color:#000000">out</span><span style="color:#000000">)</span></code><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-2-7-"><td style="white-space:normal; text-align:left;" id="TBL-2-7-1"
|
||||
class="td11"><!--l. 63--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-2-7-2"
|
||||
class="td11"><!--l. 63--><p class="noindent" ><span
|
||||
class="td11"> <!--l. 63--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-2-7-2"
|
||||
class="td11"> <!--l. 63--><p class="noindent" ><span
|
||||
class="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
|
||||
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
||||
class="cmr-12">for details.</span> </td>
|
||||
class="cmr-12">for details.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-2-8-"><td style="white-space:normal; text-align:left;" id="TBL-2-8-1"
|
||||
class="td11"> </td> </tr></table></div>
|
||||
class="td11"> </td> </tr></table> </div>
|
||||
|
||||
|
||||
|
||||
|
||||
+1262
-1517
File diff suppressed because it is too large
Load Diff
@@ -92,8 +92,14 @@ P.~D'Ambra, S.~Filippone and P.\,S.~Vassilevski,
|
||||
ACM Transactions on Mathematical Software, 44, (2018) 39:1--39:25.
|
||||
%
|
||||
\bibitem{DDF2020}
|
||||
P.~D'Ambra, F~Durastante, S.~Filippone,
|
||||
\emph{AMG preconditioners for Linear Solvers towards Extreme Scale}, 2020, \href{https://arxiv.org/abs/2006.16147v3arXiv:2006.16147v2}{arXiv:2006.16147v3}.
|
||||
P.~D'Ambra, F.~Durastante, S.~Filippone,
|
||||
\emph{AMG preconditioners for Linear Solvers towards Extreme Scale},
|
||||
SIAM Journal on Scientific Computing 43, no. 5 (2021): S679-S703.
|
||||
%
|
||||
\bibitem{DDFMT2024}
|
||||
P.~D'Ambra, F.~Durastante, S.~Filippone, S.~Massei, S.~Thomas
|
||||
\emph{Optimal Polynomial Smoothers for Parallel AMG}, 2024,
|
||||
\href{https://arxiv.org/abs/2407.09848}{arXiv:2407.09848}.
|
||||
%
|
||||
\bibitem{UMFPACK}
|
||||
T.~A.~Davis,
|
||||
@@ -165,6 +171,11 @@ C.~L.~Lawson, R.~J.~Hanson, D.~Kincaid, F.~T.~Krogh,
|
||||
\emph{Basic Linear Algebra Subprograms for FORTRAN usage},
|
||||
ACM Transactions on Mathematical Software, 5 (3), 1979, 308--323.
|
||||
%
|
||||
\bibitem{LOTTES}
|
||||
J.~Lottes,
|
||||
\emph{Optimal polynomial smoothers for multigrid V‐cycles},
|
||||
Numerical Linear Algebra with Applications 30.6 (2023): e2518.
|
||||
%
|
||||
\bibitem{SUPERLUDIST}
|
||||
X.~S.~Li, J.~W.~Demmel,
|
||||
{\em SuperLU\_DIST: A Scalable Distributed-memory
|
||||
|
||||
+31
-14
@@ -62,20 +62,37 @@ interfaces compatible with AMG4PSBLAS; usually this means that they
|
||||
should all be built with the same compiler being used for AMG4PSBLAS.
|
||||
|
||||
If you want to use the PSBLAS support for NVIDIA GPUs, you will also
|
||||
need:
|
||||
\begingroup
|
||||
\sloppy
|
||||
\begin{description}
|
||||
\item[PSBLAS-EXT] Parallel Sparse BLAS (PSBLAS) Extensions,
|
||||
available from
|
||||
\href{https://psctoolkit.github.io/products/psblasext/}{psctoolkit.github.io/products/psblasext/}; version 1.3.0 (or later).
|
||||
\item[SPGPU] Sparse CUDA kernels for NVIDIA GPUs; available from
|
||||
GitHub, see also
|
||||
\href{https://psctoolkit.github.io/products/psblasext/}{psctoolkit.github.io/products/psblasext/}.
|
||||
\end{description}
|
||||
See also Sec~\ref{sec:gpu-example}.
|
||||
\endgroup
|
||||
|
||||
need a working version of the CUDA Toolkit that is compatible with the
|
||||
compiler choice made to compile PSBLAS and AMG4PSBLAS.
|
||||
After that you will need to have configured and compiled the PSBLAS library
|
||||
with the options:
|
||||
%\begingroup
|
||||
%\sloppy
|
||||
%\begin{description}
|
||||
% \item[PSBLAS-EXT] Parallel Sparse BLAS (PSBLAS) Extensions,
|
||||
% available from
|
||||
% \href{https://psctoolkit.github.io/products/psblasext/}{psctoolkit.github.io/products/psblasext/}; version 1.3.0 (or later).
|
||||
% \item[SPGPU] Sparse CUDA kernels for NVIDIA GPUs; available from
|
||||
% GitHub, see also
|
||||
% \href{https://psctoolkit.github.io/products/psblasext/}{psctoolkit.github.io/products/psblasext/}.
|
||||
% \end{description}
|
||||
%
|
||||
%\endgroup
|
||||
\ifpdf
|
||||
\begin{minted}[breaklines=true,bgcolor=bg,fontsize=\small]{fortran}
|
||||
./configure --enable-cuda --with-cudadir=${CUDA_HOME} --with-cudacc=xx,yy,zz
|
||||
\end{minted}
|
||||
\else
|
||||
{\small
|
||||
\begin{verbatim}
|
||||
./configure --enable-cuda --with-cudadir=${CUDA_HOME} --with-cudacc=xx,yy,zz
|
||||
\end{verbatim}
|
||||
}
|
||||
\fi
|
||||
Previous versions required you to have the auxiliary libraries SPGPU and PSBLAS-EXT compiled,
|
||||
this is no longer necessary because they have been integrated into PSBLAS and are compiled
|
||||
by activating the previous flags during configuration. See also Sec~\ref{sec:gpu-example}.
|
||||
|
||||
\subsection{Optional third party libraries\label{sec:third-party}}
|
||||
|
||||
We provide interfaces to the following third-party software libraries;
|
||||
|
||||
@@ -573,12 +573,12 @@ level (continued).\label{tab:p_coarse_1}}
|
||||
|
||||
\fortinline|'SMOOTHER_TYPE'| & \fortinline|character(len=*)|
|
||||
& \fortinline|'JACOBI'| \par \fortinline|'GS'| \par \fortinline|'BGS'| \par \fortinline|'BJAC'|
|
||||
\par \fortinline|'AS'| \par \fortinline|'L1-JACOBI'| \par \fortinline|'L1-BJAC'| \par \fortinline|'L1-FBGS'|
|
||||
& \fortinline|'FBGS'|
|
||||
\par \fortinline|'AS'| \par \fortinline|'L1-JACOBI'| \par \fortinline|'L1-BJAC'| \par \fortinline|'L1-FBGS'| \par \fortinline|'POLY'|
|
||||
& \fortinline|'FBGS'|
|
||||
& Type of smoother used in the multilevel preconditioner:
|
||||
point-Jacobi, hybrid (forward) Gauss-Seidel,
|
||||
hybrid backward Gauss-Seidel, block-Jacobi, $\ell_1$-Jacobi, $\ell_1$--hybrid (forward) Gauss-Seidel, $\ell_1$-point-Jacobi and
|
||||
Additive Schwarz. \par
|
||||
Additive Schwarz, polynomial accelerators; see~\cite{DDFMT2024} \par
|
||||
It is ignored by one-level preconditioners. \\ \hline
|
||||
\fortinline|'SUB_SOLVE'| & \fortinline|character(len=*)|
|
||||
& \fortinline|'JACOBI'|
|
||||
@@ -612,12 +612,11 @@ level (continued).\label{tab:p_coarse_1}}
|
||||
In the multilevel case, no pre-smother or
|
||||
post-smoother is used if this parameter is set to 0
|
||||
together with \fortinline|pos='PRE'| or \fortinline|pos='POST'|,
|
||||
respectively. \\ \hline
|
||||
\fortinline|'SUB_OVR'| & \fortinline|integer|
|
||||
& Any integer \par number~$\ge 0$
|
||||
& 1
|
||||
& Number of overlap layers, for Additive Schwarz only. \\
|
||||
\hline
|
||||
respectively. Is ignored if the smoother is \fortinline|'POLY'| \\ \hline
|
||||
\fortinline|'POLY_DEGREE'| & \fortinline|integer|
|
||||
& Any integer \par number~$\ge 1$ and~$\le 30$
|
||||
& 1
|
||||
& Degree of the polynomial accelerator, is equal to the number of matrix-vector products performed by the smoother. Is ignored if the smoother is not \fortinline|'POLY'|\\ \hline
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
\caption{Parameters defining the smoother or the details of the one-level preconditioner.
|
||||
@@ -631,6 +630,10 @@ level (continued).\label{tab:p_coarse_1}}
|
||||
\hline
|
||||
\fortinline|what| & \textsc{data type} & \fortinline|val| & \textsc{default} &
|
||||
\textsc{comments} \\ \hline
|
||||
\fortinline|'SUB_OVR'| & \fortinline|integer|
|
||||
& Any integer \par number~$\ge 0$
|
||||
& 1
|
||||
& Number of overlap layers, for Additive Schwarz only. \\
|
||||
\fortinline|'SUB_RESTR'| & \fortinline|character(len=*)|
|
||||
& \fortinline|'HALO'| \par \fortinline|'NONE'|
|
||||
& \fortinline|'HALO'|
|
||||
@@ -679,6 +682,26 @@ level (continued).\label{tab:p_coarse_1}}
|
||||
(continued).\label{tab:p_smoother_1}}
|
||||
\esideways
|
||||
|
||||
\bsideways
|
||||
\begin{center}
|
||||
\small
|
||||
\begin{tabular}{|p{5.4cm}|l|p{3.5cm}|p{3.5cm}|p{3.55cm}|}
|
||||
\hline
|
||||
\fortinline|what| & \textsc{data type} & \fortinline|val| & \textsc{default} &
|
||||
\textsc{comments} \\ \hline
|
||||
\fortinline|'POLY_VARIANT'| & \fortinline|character(len=*)|
|
||||
& \fortinline|'CHEB_4'| \par \fortinline|'CHEB_4_OPT'| \par \fortinline|'CHEB_1_OPT'|
|
||||
& \fortinline|'CHEB_4'|
|
||||
& Select the type of polynomial accelerator. The \fortinline|'CHEB_4'| and \fortinline|'CHEB_4_OPT'| types are those based on the Chebyshev polynomials of the 4\textsuperscript{th}-kind described in~\cite{LOTTES}. The \fortinline|'CHEB_1_OPT'| version is the one described in~\cite{DDFMT2024} and based on the Chebyshev polynomials of the 1\textsuperscript{st}-kind.\\ \hline
|
||||
\fortinline|'POLY_RHO_ESTIMATE'| & \fortinline|character(len=*)| & \fortinline|'POLY_RHO_EST_POWER'| & \fortinline|'POLY_RHO_EST_POWER'| & Algorithm for estimating the spectral radius of the smoother to which the polynomial acceleration is applied. The only implemented algorithm is the power method; see also the two following options. \\ \hline
|
||||
\fortinline|'POLY_RHO_ESTIMATE_ITERATIONS'| & \fortinline|integer| & Any integer\par number $\ge 1$ & 20 & Number of iterations for the spectral radius estimate.\\ \hline
|
||||
\fortinline|'POLY_RHO_BA'| & \fortinline|real(kind_parameter)| & Any real\par number $\in (0,1]$ & 1 & Sets an estimate of the spectral radius of the base smoother to which the polynomial accelerator is applied.\\
|
||||
\hline
|
||||
\end{tabular}
|
||||
\end{center}
|
||||
\caption{Parameters defining the smoother or the details of the one-level preconditioner
|
||||
(continued).\label{tab:p_smoother_2}}
|
||||
\esideways
|
||||
|
||||
\clearpage
|
||||
|
||||
|
||||
Reference in New Issue
Block a user