Moved from latex2html to htlatex.

stopcriterion
Salvatore Filippone 5 years ago
parent a0854f326e
commit 7ca5e5aabc

@ -0,0 +1,213 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 93--><p class="noindent" ><span
class="cmbx-12x-x-144">MLD2P4</span><br
class="newline" /> <span
class="cmbx-12x-x-144">User&#8217;s and Reference Guide</span><br
class="newline" /> <span
class="cmti-12">A guide for the MultiLevel Domain Decomposition Parallel Preconditioners Package</span>
<span
class="cmti-12">based on PSBLAS</span><br
class="newline" /> <span
class="cmbx-12">Pasqua D&#8217;Ambra</span><br
class="newline" /><span
class="cmr-12">IAC-CNR, Naples, Italy</span><br
class="newline" /> <span
class="cmbx-12">Daniela di Serafino</span><br
class="newline" /><span
class="cmr-12">University of Campania &#8220;Luigi Vanvitelli&#8221;, Caserta, Italy</span><br
class="newline" /> <span
class="cmbx-12">Salvatore Filippone </span><br
class="newline" /><span
class="cmr-12">Cranfield University, Cranfield, United Kingdom</span><br
class="newline" /> <span
class="cmr-12">Software version: 2.2</span><br
class="newline" /><span
class="cmr-12">July 31, 2018</span>
<span
class="cmr-12">&#x00A0;</span><br
class="newline" />
<div class="tableofcontents">
<span class="likesectionToc" ><a
href="userhtmlli1.html#x2-1000" id="QQ2-2-1"><span
class="cmr-12">Abstract</span></a></span>
<br /> <span class="sectionToc" ><a
href="userhtmlli1.html#Q1-2-2"><span
class="cmr-12">Abstract</span></a></span>
<br /> <span class="likesectionToc" ><a
href="userhtmlli2.html#x3-2000" id="QQ2-3-3"><span
class="cmr-12">Contents</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">1 </span><a
href="userhtmlse1.html#x4-30001" id="QQ2-4-4"><span
class="cmr-12">General Overview</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">2 </span><a
href="userhtmlse2.html#x5-40002" id="QQ2-5-5"><span
class="cmr-12">Code Distribution</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="likesubsectionToc" ><a
href="userhtmlli3.html#x6-50002" id="QQ2-6-6"><span
class="cmr-12">Contributors</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">3 </span><a
href="userhtmlse3.html#x7-60003" id="QQ2-7-7"><span
class="cmr-12">Configuring and Building MLD2P4</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.1 </span><a
href="userhtmlsu1.html#x8-70003.1" id="QQ2-8-8"><span
class="cmr-12">Prerequisites</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.2 </span><a
href="userhtmlsu2.html#x9-80003.2" id="QQ2-9-9"><span
class="cmr-12">Optional third party libraries</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.3 </span><a
href="userhtmlsu3.html#x10-90003.3" id="QQ2-10-10"><span
class="cmr-12">Configuration options</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.4 </span><a
href="userhtmlsu4.html#x11-100003.4" id="QQ2-11-11"><span
class="cmr-12">Bug reporting</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.5 </span><a
href="userhtmlsu5.html#x12-110003.5" id="QQ2-12-12"><span
class="cmr-12">Example and test programs</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">4 </span><a
href="userhtmlse4.html#x13-120004" id="QQ2-13-13"><span
class="cmr-12">Multigrid Background</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">4.1 </span><a
href="userhtmlsu6.html#x14-130004.1" id="QQ2-14-14"><span
class="cmr-12">AMG preconditioners</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">4.2 </span><a
href="userhtmlsu7.html#x15-140004.2" id="QQ2-15-16"><span
class="cmr-12">Smoothed Aggregation</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">4.3 </span><a
href="userhtmlsu8.html#x16-150004.3" id="QQ2-16-17"><span
class="cmr-12">Smoothers and coarsest-level solvers</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">5 </span><a
href="userhtmlse5.html#x17-160005" id="QQ2-17-18"><span
class="cmr-12">Getting Started</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.1 </span><a
href="userhtmlsu9.html#x18-170005.1" id="QQ2-18-20"><span
class="cmr-12">Examples</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">6 </span><a
href="userhtmlse6.html#x19-180006" id="QQ2-19-25"><span
class="cmr-12">User Interface</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.1 </span><a
href="userhtmlsu10.html#x20-190006.1" id="QQ2-20-26"><span
class="cmr-12">Method init</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.2 </span><a
href="userhtmlsu11.html#x21-200006.2" id="QQ2-21-27"><span
class="cmr-12">Method set</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.3 </span><a
href="userhtmlsu12.html#x22-210006.3" id="QQ2-22-35"><span
class="cmr-12">Method hierarchy</span><span
class="cmr-12">_build</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.4 </span><a
href="userhtmlsu13.html#x23-220006.4" id="QQ2-23-36"><span
class="cmr-12">Method smoothers</span><span
class="cmr-12">_build</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.5 </span><a
href="userhtmlsu14.html#x24-230006.5" id="QQ2-24-37"><span
class="cmr-12">Method build</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.6 </span><a
href="userhtmlsu15.html#x25-240006.6" id="QQ2-25-38"><span
class="cmr-12">Method apply</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.7 </span><a
href="userhtmlsu16.html#x26-250006.7" id="QQ2-26-39"><span
class="cmr-12">Method free</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.8 </span><a
href="userhtmlsu17.html#x27-260006.8" id="QQ2-27-40"><span
class="cmr-12">Method descr</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.9 </span><a
href="userhtmlsu18.html#x28-270006.9" id="QQ2-28-41"><span
class="cmr-12">Auxiliary Methods</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">7 </span><a
href="userhtmlse7.html#x29-330007" id="QQ2-29-47"><span
class="cmr-12">Adding new smoother and solver objects to MLD2P4</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">8 </span><a
href="userhtmlse8.html#x30-340008" id="QQ2-30-48"><span
class="cmr-12">Error Handling</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">A </span><a
href="userhtmlse9.html#x31-35000A" id="QQ2-31-49"><span
class="cmr-12">License</span></a></span>
<br /> <span class="likesectionToc" ><a
href="userhtmlli4.html#x32-36000A" id="QQ2-32-50"><span
class="cmr-12">References</span></a></span>
<br /> <span class="sectionToc" ><a
href="userhtmlli4.html#Q1-32-51"><span
class="cmr-12">References</span></a></span>
</div>
</body></html>

@ -0,0 +1,260 @@
/* start css.sty */
.cmr-10{font-size:90%;}
.cmmi-10{font-size:90%;font-style: italic;}
.cmsy-10{font-size:90%;}
.cmr-10x-x-109{}
.cmbx-12x-x-144{font-size:157%; font-weight: bold;}
.cmbx-12x-x-144{ font-weight: bold;}
.cmbx-12x-x-144{ font-weight: bold;}
.cmti-10x-x-109{ font-style: italic;}
.cmti-12{font-size:109%; font-style: italic;}
.cmr-12{font-size:109%;}
.cmbx-12{font-size:109%; font-weight: bold;}
.cmbx-12{ font-weight: bold;}
.cmbx-12{ font-weight: bold;}
.cmtt-12{font-size:109%;font-family: monospace;}
.cmtt-12{font-family: monospace;}
.cmtt-12{font-family: monospace;}
.cmcsc-10x-x-120{font-size:109%;}
.cmr-8{font-size:72%;}
.cmr-6{font-size:54%;}
.cmmi-12{font-size:109%;font-style: italic;}
.cmmi-8{font-size:72%;font-style: italic;}
.cmmi-6{font-size:54%;font-style: italic;}
.cmsy-10x-x-120{font-size:109%;}
.cmsy-8{font-size:72%;}
.cmex-10x-x-120{font-size:109%;}
.msbm-10x-x-120{font-size:109%;}
.cmmi-10x-x-109{font-style: italic;}
.cmsy-10x-x-109{}
.cmex-10x-x-109{}
.cmtt-10x-x-109{font-family: monospace;}
.cmtt-10x-x-109{font-family: monospace;}
.cmtt-10x-x-109{font-family: monospace;}
.cmcsc-10x-x-109{}
.cmtt-10{font-size:90%;font-family: monospace;}
.cmtt-10{font-family: monospace;}
.cmtt-10{font-family: monospace;}
.cmbx-10x-x-109{ font-weight: bold;}
.cmbx-10x-x-109{ font-weight: bold;}
.cmbx-10x-x-109{ font-weight: bold;}
.cmcsc-10{font-size:90%;}
.cmti-10{font-size:90%; font-style: italic;}
.small-caps{font-variant: small-caps; }
p.noindent { text-indent: 0em }
td p.noindent { text-indent: 0em; margin-top:0em; }
p.nopar { text-indent: 0em; }
p.indent{ text-indent: 1.5em }
@media print {div.crosslinks {visibility:hidden;}}
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;}
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~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;}
.obeylines-h,.obeylines-v {white-space: nowrap; }
div.obeylines-v p { margin-top:0; margin-bottom:0; }
.overline{ text-decoration:overline; }
.overline img{ border-top: 1px solid black; }
td.displaylines {text-align:center; white-space:nowrap;}
.centerline {text-align:center;}
.rightline {text-align:right;}
div.verbatim {font-family: monospace; white-space: nowrap; text-align:left; clear:both; }
.fbox {padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; }
div.fbox {display:table}
div.center div.fbox {text-align:center; clear:both; padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; }
div.minipage{width:100%;}
div.center, div.center div.center {text-align: center; margin-left:1em; margin-right:1em;}
div.center div {text-align: left;}
div.flushright, div.flushright div.flushright {text-align: right;}
div.flushright div {text-align: left;}
div.flushleft {text-align: left;}
.underline{ text-decoration:underline; }
.underline img{ border-bottom: 1px solid black; margin-bottom:1pt; }
.framebox-c, .framebox-l, .framebox-r { padding-left:3.0pt; padding-right:3.0pt; text-indent:0pt; border:solid black 0.4pt; }
.framebox-c {text-align:center;}
.framebox-l {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%; }
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;}
td p:first-child{ margin-top:0em; }
td p:last-child{ margin-bottom:0em; }
div.td00{ margin-left:0pt; margin-right:0pt; }
div.td01{ margin-left:0pt; margin-right:5pt; }
div.td10{ margin-left:5pt; margin-right:0pt; }
div.td11{ margin-left:5pt; margin-right:5pt; }
table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
td.td00{ padding-left:0pt; padding-right:0pt; }
td.td01{ padding-left:0pt; padding-right:5pt; }
td.td10{ padding-left:5pt; padding-right:0pt; }
td.td11{ padding-left:5pt; padding-right:5pt; }
table[rules] {border-left:solid black 0.4pt; border-right:solid black 0.4pt; }
.hline hr, .cline hr{ height : 1px; margin:0px; }
.tabbing-right {text-align:right;}
span.TEX {letter-spacing: -0.125em; }
span.TEX span.E{ position:relative;top:0.5ex;left:-0.0417em;}
a span.TEX span.E {text-decoration: none; }
span.LATEX span.A{ position:relative; top:-0.5ex; left:-0.4em; font-size:85%;}
span.LATEX span.TEX{ position:relative; left: -0.4em; }
div.float, div.figure {margin-left: auto; margin-right: auto;}
div.float img {text-align:center;}
div.figure img {text-align:center;}
.marginpar {width:20%; float:right; text-align:left; margin-left:auto; margin-top:0.5em; font-size:85%; text-decoration:underline;}
.marginpar p{margin-top:0.4em; margin-bottom:0.4em;}
table.equation {width:100%;}
.equation td{text-align:center; }
td.equation { margin-top:1em; margin-bottom:1em; }
td.equation-label { width:5%; text-align:center; }
td.eqnarray4 { width:5%; white-space: normal; }
td.eqnarray2 { width:5%; }
table.eqnarray-star, table.eqnarray {width:100%;}
div.eqnarray{text-align:center;}
div.array {text-align:center;}
div.pmatrix {text-align:center;}
table.pmatrix {width:100%;}
span.pmatrix img{vertical-align:middle;}
div.pmatrix {text-align:center;}
table.pmatrix {width:100%;}
span.bar-css {text-decoration:overline;}
img.cdots{vertical-align:middle;}
.partToc a, .partToc, .likepartToc a, .likepartToc {line-height: 200%; font-weight:bold; font-size:110%;}
.index-item, .index-subitem, .index-subsubitem {display:block}
div.caption {text-indent:-2em; margin-left:3em; margin-right:1em; text-align:left;}
div.caption span.id{font-weight: bold; white-space: nowrap; }
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; }
.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;}
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 {width:100%;}
.subsectionToc, .likesubsectionToc {margin-left:2em;}
.subsubsectionToc, .likesubsubsectionToc {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; }
.figure img.graphics {margin-left:10%;}
#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;}
td#TBL-5-8-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
td#TBL-5-9-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;}
#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-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-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-7-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;}
/* end css.sty */

@ -0,0 +1,213 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 93--><p class="noindent" ><span
class="cmbx-12x-x-144">MLD2P4</span><br
class="newline" /> <span
class="cmbx-12x-x-144">User&#8217;s and Reference Guide</span><br
class="newline" /> <span
class="cmti-12">A guide for the MultiLevel Domain Decomposition Parallel Preconditioners Package</span>
<span
class="cmti-12">based on PSBLAS</span><br
class="newline" /> <span
class="cmbx-12">Pasqua D&#8217;Ambra</span><br
class="newline" /><span
class="cmr-12">IAC-CNR, Naples, Italy</span><br
class="newline" /> <span
class="cmbx-12">Daniela di Serafino</span><br
class="newline" /><span
class="cmr-12">University of Campania &#8220;Luigi Vanvitelli&#8221;, Caserta, Italy</span><br
class="newline" /> <span
class="cmbx-12">Salvatore Filippone </span><br
class="newline" /><span
class="cmr-12">Cranfield University, Cranfield, United Kingdom</span><br
class="newline" /> <span
class="cmr-12">Software version: 2.2</span><br
class="newline" /><span
class="cmr-12">July 31, 2018</span>
<span
class="cmr-12">&#x00A0;</span><br
class="newline" />
<div class="tableofcontents">
<span class="likesectionToc" ><a
href="userhtmlli1.html#x2-1000" id="QQ2-2-1"><span
class="cmr-12">Abstract</span></a></span>
<br /> <span class="sectionToc" ><a
href="userhtmlli1.html#Q1-2-2"><span
class="cmr-12">Abstract</span></a></span>
<br /> <span class="likesectionToc" ><a
href="userhtmlli2.html#x3-2000" id="QQ2-3-3"><span
class="cmr-12">Contents</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">1 </span><a
href="userhtmlse1.html#x4-30001" id="QQ2-4-4"><span
class="cmr-12">General Overview</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">2 </span><a
href="userhtmlse2.html#x5-40002" id="QQ2-5-5"><span
class="cmr-12">Code Distribution</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="likesubsectionToc" ><a
href="userhtmlli3.html#x6-50002" id="QQ2-6-6"><span
class="cmr-12">Contributors</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">3 </span><a
href="userhtmlse3.html#x7-60003" id="QQ2-7-7"><span
class="cmr-12">Configuring and Building MLD2P4</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.1 </span><a
href="userhtmlsu1.html#x8-70003.1" id="QQ2-8-8"><span
class="cmr-12">Prerequisites</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.2 </span><a
href="userhtmlsu2.html#x9-80003.2" id="QQ2-9-9"><span
class="cmr-12">Optional third party libraries</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.3 </span><a
href="userhtmlsu3.html#x10-90003.3" id="QQ2-10-10"><span
class="cmr-12">Configuration options</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.4 </span><a
href="userhtmlsu4.html#x11-100003.4" id="QQ2-11-11"><span
class="cmr-12">Bug reporting</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.5 </span><a
href="userhtmlsu5.html#x12-110003.5" id="QQ2-12-12"><span
class="cmr-12">Example and test programs</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">4 </span><a
href="userhtmlse4.html#x13-120004" id="QQ2-13-13"><span
class="cmr-12">Multigrid Background</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">4.1 </span><a
href="userhtmlsu6.html#x14-130004.1" id="QQ2-14-14"><span
class="cmr-12">AMG preconditioners</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">4.2 </span><a
href="userhtmlsu7.html#x15-140004.2" id="QQ2-15-16"><span
class="cmr-12">Smoothed Aggregation</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">4.3 </span><a
href="userhtmlsu8.html#x16-150004.3" id="QQ2-16-17"><span
class="cmr-12">Smoothers and coarsest-level solvers</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">5 </span><a
href="userhtmlse5.html#x17-160005" id="QQ2-17-18"><span
class="cmr-12">Getting Started</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.1 </span><a
href="userhtmlsu9.html#x18-170005.1" id="QQ2-18-20"><span
class="cmr-12">Examples</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">6 </span><a
href="userhtmlse6.html#x19-180006" id="QQ2-19-25"><span
class="cmr-12">User Interface</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.1 </span><a
href="userhtmlsu10.html#x20-190006.1" id="QQ2-20-26"><span
class="cmr-12">Method init</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.2 </span><a
href="userhtmlsu11.html#x21-200006.2" id="QQ2-21-27"><span
class="cmr-12">Method set</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.3 </span><a
href="userhtmlsu12.html#x22-210006.3" id="QQ2-22-35"><span
class="cmr-12">Method hierarchy</span><span
class="cmr-12">_build</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.4 </span><a
href="userhtmlsu13.html#x23-220006.4" id="QQ2-23-36"><span
class="cmr-12">Method smoothers</span><span
class="cmr-12">_build</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.5 </span><a
href="userhtmlsu14.html#x24-230006.5" id="QQ2-24-37"><span
class="cmr-12">Method build</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.6 </span><a
href="userhtmlsu15.html#x25-240006.6" id="QQ2-25-38"><span
class="cmr-12">Method apply</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.7 </span><a
href="userhtmlsu16.html#x26-250006.7" id="QQ2-26-39"><span
class="cmr-12">Method free</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.8 </span><a
href="userhtmlsu17.html#x27-260006.8" id="QQ2-27-40"><span
class="cmr-12">Method descr</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.9 </span><a
href="userhtmlsu18.html#x28-270006.9" id="QQ2-28-41"><span
class="cmr-12">Auxiliary Methods</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">7 </span><a
href="userhtmlse7.html#x29-330007" id="QQ2-29-47"><span
class="cmr-12">Adding new smoother and solver objects to MLD2P4</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">8 </span><a
href="userhtmlse8.html#x30-340008" id="QQ2-30-48"><span
class="cmr-12">Error Handling</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">A </span><a
href="userhtmlse9.html#x31-35000A" id="QQ2-31-49"><span
class="cmr-12">License</span></a></span>
<br /> <span class="likesectionToc" ><a
href="userhtmlli4.html#x32-36000A" id="QQ2-32-50"><span
class="cmr-12">References</span></a></span>
<br /> <span class="sectionToc" ><a
href="userhtmlli4.html#Q1-32-51"><span
class="cmr-12">References</span></a></span>
</div>
</body></html>

Binary file not shown.

After

Width:  |  Height:  |  Size: 894 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 800 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1023 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 646 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 894 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

@ -0,0 +1,162 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>Abstract</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlli2.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlli1.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtml.html#userhtmlli1.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h3 class="likesectionHead"><a
id="x2-1000"></a><span
class="cmr-12">Abstract</span></h3>
<a
id="Q1-2-2"></a>
<!--l. 5--><p class="noindent" ><span
class="cmcsc-10x-x-120">MLD2P4 (M<span
class="small-caps">u</span><span
class="small-caps">l</span><span
class="small-caps">t</span><span
class="small-caps">i</span>L<span
class="small-caps">e</span><span
class="small-caps">v</span><span
class="small-caps">e</span><span
class="small-caps">l</span> D<span
class="small-caps">o</span><span
class="small-caps">m</span><span
class="small-caps">a</span><span
class="small-caps">i</span><span
class="small-caps">n</span> D<span
class="small-caps">e</span><span
class="small-caps">c</span><span
class="small-caps">o</span><span
class="small-caps">m</span><span
class="small-caps">p</span><span
class="small-caps">o</span><span
class="small-caps">s</span><span
class="small-caps">i</span><span
class="small-caps">t</span><span
class="small-caps">i</span><span
class="small-caps">o</span><span
class="small-caps">n</span> P<span
class="small-caps">a</span><span
class="small-caps">r</span><span
class="small-caps">a</span><span
class="small-caps">l</span><span
class="small-caps">l</span><span
class="small-caps">e</span><span
class="small-caps">l</span> P<span
class="small-caps">r</span><span
class="small-caps">e</span><span
class="small-caps">c</span><span
class="small-caps">o</span><span
class="small-caps">n</span><span
class="small-caps">d</span><span
class="small-caps">i</span><span
class="small-caps">t</span><span
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
class="small-caps">s</span></span>
<span
class="cmcsc-10x-x-120">P<span
class="small-caps">a</span><span
class="small-caps">c</span><span
class="small-caps">k</span><span
class="small-caps">a</span><span
class="small-caps">g</span><span
class="small-caps">e</span> <span
class="small-caps">b</span><span
class="small-caps">a</span><span
class="small-caps">s</span><span
class="small-caps">e</span><span
class="small-caps">d</span> <span
class="small-caps">o</span><span
class="small-caps">n</span> PSBLAS</span><span
class="cmr-12">) is a package of parallel algebraic multilevel</span>
<span
class="cmr-12">preconditioners. The first release of MLD2P4 made available multilevel additive and</span>
<span
class="cmr-12">hybrid Schwarz preconditioners, as well as one-level additive Schwarz preconditioners.</span>
<span
class="cmr-12">The package has been extended to include further multilevel cycles and smoothers</span>
<span
class="cmr-12">widely used in multigrid methods. In the multilevel case, a purely algebraic approach is</span>
<span
class="cmr-12">applied to generate coarse-level corrections, so that no geometric background is needed</span>
<span
class="cmr-12">concerning the matrix to be preconditioned. The matrix is assumed to be square, real</span>
<span
class="cmr-12">or complex.</span>
<!--l. 14--><p class="indent" > <span
class="cmr-12">MLD2P4 has been designed to provide scalable and easy-to-use preconditioners in</span>
<span
class="cmr-12">the context of the PSBLAS (Parallel Sparse Basic Linear Algebra Subprograms)</span>
<span
class="cmr-12">computational framework and can be used in conjuction with the Krylov solvers</span>
<span
class="cmr-12">available in this framework. MLD2P4 enables the user to easily specify different</span>
<span
class="cmr-12">features of an algebraic multilevel preconditioner, thus allowing to search for the &#8220;best&#8221;</span>
<span
class="cmr-12">preconditioner for the problem at hand.</span>
<!--l. 21--><p class="indent" > <span
class="cmr-12">The package employs object-oriented design techniques in Fortran</span><span
class="cmr-12">&#x00A0;2003, with</span>
<span
class="cmr-12">interfaces to additional third party libraries such as MUMPS, UMFPACK, SuperLU,</span>
<span
class="cmr-12">and SuperLU</span><span
class="cmr-12">_Dist, which can be exploited in building multilevel preconditioners. The</span>
<span
class="cmr-12">parallel implementation is based on a Single Program Multiple Data (SPMD)</span>
<span
class="cmr-12">paradigm; the inter-process communication is based on MPI and is managed mainly</span>
<span
class="cmr-12">through PSBLAS.</span>
<!--l. 29--><p class="indent" > <span
class="cmr-12">This guide provides a brief description of the functionalities and the user interface</span>
<span
class="cmr-12">of MLD2P4.</span>
<!--l. 123--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlli2.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlli1.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtml.html#userhtmlli1.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 123--><p class="indent" > <a
id="tailuserhtmlli1.html"></a>
</body></html>

@ -0,0 +1,235 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>Contents</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 123--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlse1.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlli1.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlli1.html#tailuserhtmlli1.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlli2.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtml.html#userhtmlli2.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h3 class="likesectionHead"><a
id="x3-2000"></a><span
class="cmr-12">Contents</span></h3>
<div class="tableofcontents">
<span class="sectionToc" ><a
href="userhtmlli1.html#Q1-2-2"><span
class="cmr-12">Abstract</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">1 </span><a
href="userhtmlse1.html#x4-30001"><span
class="cmr-12">General Overview</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">2 </span><a
href="userhtmlse2.html#x5-40002"><span
class="cmr-12">Code Distribution</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">3 </span><a
href="userhtmlse3.html#x7-60003"><span
class="cmr-12">Configuring and Building MLD2P4</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.1 </span><a
href="userhtmlsu1.html#x8-70003.1"><span
class="cmr-12">Prerequisites</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.2 </span><a
href="userhtmlsu2.html#x9-80003.2"><span
class="cmr-12">Optional third party libraries</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.3 </span><a
href="userhtmlsu3.html#x10-90003.3"><span
class="cmr-12">Configuration options</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.4 </span><a
href="userhtmlsu4.html#x11-100003.4"><span
class="cmr-12">Bug reporting</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.5 </span><a
href="userhtmlsu5.html#x12-110003.5"><span
class="cmr-12">Example and test programs</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">4 </span><a
href="userhtmlse4.html#x13-120004"><span
class="cmr-12">Multigrid Background</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">4.1 </span><a
href="userhtmlsu6.html#x14-130004.1"><span
class="cmr-12">AMG preconditioners</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">4.2 </span><a
href="userhtmlsu7.html#x15-140004.2"><span
class="cmr-12">Smoothed Aggregation</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">4.3 </span><a
href="userhtmlsu8.html#x16-150004.3"><span
class="cmr-12">Smoothers and coarsest-level solvers</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">5 </span><a
href="userhtmlse5.html#x17-160005"><span
class="cmr-12">Getting Started</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.1 </span><a
href="userhtmlsu9.html#x18-170005.1"><span
class="cmr-12">Examples</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">6 </span><a
href="userhtmlse6.html#x19-180006"><span
class="cmr-12">User Interface</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.1 </span><a
href="userhtmlsu10.html#x20-190006.1"><span
class="cmr-12">Method init</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.2 </span><a
href="userhtmlsu11.html#x21-200006.2"><span
class="cmr-12">Method set</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.3 </span><a
href="userhtmlsu12.html#x22-210006.3"><span
class="cmr-12">Method hierarchy</span><span
class="cmr-12">_build</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.4 </span><a
href="userhtmlsu13.html#x23-220006.4"><span
class="cmr-12">Method smoothers</span><span
class="cmr-12">_build</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.5 </span><a
href="userhtmlsu14.html#x24-230006.5"><span
class="cmr-12">Method build</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.6 </span><a
href="userhtmlsu15.html#x25-240006.6"><span
class="cmr-12">Method apply</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.7 </span><a
href="userhtmlsu16.html#x26-250006.7"><span
class="cmr-12">Method free</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.8 </span><a
href="userhtmlsu17.html#x27-260006.8"><span
class="cmr-12">Method descr</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.9 </span><a
href="userhtmlsu18.html#x28-270006.9"><span
class="cmr-12">Auxiliary Methods</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span
class="cmr-12">6.9.1 </span><a
href="userhtmlsu18.html#x28-280006.9.1" id="QQ2-28-42"><span
class="cmr-12">Method: dump</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span
class="cmr-12">6.9.2 </span><a
href="userhtmlsu18.html#x28-290006.9.2" id="QQ2-28-43"><span
class="cmr-12">Method: clone</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span
class="cmr-12">6.9.3 </span><a
href="userhtmlsu18.html#x28-300006.9.3" id="QQ2-28-44"><span
class="cmr-12">Method: sizeof</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span
class="cmr-12">6.9.4 </span><a
href="userhtmlsu18.html#x28-310006.9.4" id="QQ2-28-45"><span
class="cmr-12">Method: allocate</span><span
class="cmr-12">_wrk</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span
class="cmr-12">6.9.5 </span><a
href="userhtmlsu18.html#x28-320006.9.5" id="QQ2-28-46"><span
class="cmr-12">Method: free</span><span
class="cmr-12">_wrk</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">7 </span><a
href="userhtmlse7.html#x29-330007"><span
class="cmr-12">Adding new smoother and solver objects to MLD2P4</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">8 </span><a
href="userhtmlse8.html#x30-340008"><span
class="cmr-12">Error Handling</span></a></span>
<br /> <span class="sectionToc" ><span
class="cmr-12">A </span><a
href="userhtmlse9.html#x31-35000A"><span
class="cmr-12">License</span></a></span>
<br /> <span class="sectionToc" ><a
href="userhtmlli4.html#Q1-32-51"><span
class="cmr-12">References</span></a></span>
</div>
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlse1.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlli1.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlli1.html#tailuserhtmlli1.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlli2.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtml.html#userhtmlli2.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 1--><p class="indent" > <a
id="tailuserhtmlli2.html"></a>
</body></html>

@ -0,0 +1,68 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>Contributors</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 23--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="#tailuserhtmlli3.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
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
class="cmr-12">Contributors</span></h4>
<!--l. 24--><p class="noindent" ><span
class="cmr-12">Contributors to version 2:</span>
<ul class="itemize1">
<li class="itemize"><span
class="cmr-12">Salvatore Filippone, Cranfield University, UK;</span>
</li>
<li class="itemize"><span
class="cmr-12">Pasqua D&#8217;Ambra, IAC-CNR, Naples, IT;</span>
</li>
<li class="itemize"><span
class="cmr-12">Daniela di Serafino, University of Campania &#8220;L. Vanvitelli&#8221;, Caserta, IT;</span>
</li>
<li class="itemize"><span
class="cmr-12">Ambra Abdullahi Hassan, University of Rome &#8220;Tor Vergata&#8221;, IT.</span></li></ul>
<!--l. 31--><p class="noindent" ><span
class="cmr-12">Contributors to version 1:</span>
<ul class="itemize1">
<li class="itemize"><span
class="cmr-12">Salvatore Filippone;</span>
</li>
<li class="itemize"><span
class="cmr-12">Pasqua D&#8217;Ambra;</span>
</li>
<li class="itemize"><span
class="cmr-12">Daniela di Serafino;</span>
</li>
<li class="itemize"><span
class="cmr-12">Alfredo Buttari, CNRS-IRIT, Toulouse, F.</span></li></ul>
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlli3.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse2.html#userhtmlli3.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 1--><p class="indent" > <a
id="tailuserhtmlli3.html"></a>
</body></html>

@ -0,0 +1,579 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>References</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 2--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlse9.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse9.html#tailuserhtmlse9.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlli4.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtml.html#userhtmlli4.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h3 class="likesectionHead"><a
id="x32-36000A"></a><span
class="cmr-12">References</span></h3>
<!--l. 2--><p class="noindent" >
<a
id="Q1-32-51"></a>
<div class="thebibliography">
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[1]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="XMUMPS"></a><span
class="cmr-12">P.</span><span
class="cmr-12">&#x00A0;R.</span><span
class="cmr-12">&#x00A0;Amestoy, C.</span><span
class="cmr-12">&#x00A0;Ashcraft, O.</span><span
class="cmr-12">&#x00A0;Boiteau, A.</span><span
class="cmr-12">&#x00A0;Buttari, J.</span><span
class="cmr-12">&#x00A0;L&#8217;Excellent,</span>
<span
class="cmr-12">C.</span><span
class="cmr-12">&#x00A0;Weisbecker, </span><span
class="cmti-12">Improving multifrontal methods by means of block low-rank</span>
<span
class="cmti-12">representations</span><span
class="cmr-12">, SIAM Journal on Scientific Computing, volume 37 (3), 2015,</span>
<span
class="cmr-12">A1452&#8211;A1474. See also </span><span
class="cmtt-12">http://mumps.enseeiht.fr</span><span
class="cmr-12">.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[2]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="XBREZINA_VANEK"></a><span
class="cmr-12">M.</span><span
class="cmr-12">&#x00A0;Brezina, P.</span><span
class="cmr-12">&#x00A0;Van</span><span
class="cmr-12">&#x011B;k, </span><span
class="cmti-12">A Black-Box Iterative Solver Based on a</span>
<span
class="cmti-12">Two-Level Schwarz Method</span><span
class="cmr-12">, Computing, 63, 1999, 233&#8211;263.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[3]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="XBriggs2000"></a><span
class="cmr-12">W.</span><span
class="cmr-12">&#x00A0;L.</span><span
class="cmr-12">&#x00A0;Briggs, V.</span><span
class="cmr-12">&#x00A0;E.</span><span
class="cmr-12">&#x00A0;Henson, S.</span><span
class="cmr-12">&#x00A0;F.</span><span
class="cmr-12">&#x00A0;McCormick, </span><span
class="cmti-12">A Multigrid Tutorial,</span>
<span
class="cmti-12">Second Edition</span><span
class="cmr-12">, SIAM, 2000.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[4]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="Xpara_04"></a><span
class="cmr-12">A.</span><span
class="cmr-12">&#x00A0;Buttari, P.</span><span
class="cmr-12">&#x00A0;D&#8217;Ambra, D.</span><span
class="cmr-12">&#x00A0;di Serafino, S.</span><span
class="cmr-12">&#x00A0;Filippone, </span><span
class="cmti-12">Extending</span>
<span
class="cmti-12">PSBLAS to Build Parallel Schwarz Preconditioners</span><span
class="cmr-12">, in J.</span><span
class="cmr-12">&#x00A0;Dongarra,</span>
<span
class="cmr-12">K.</span><span
class="cmr-12">&#x00A0;Madsen, J.</span><span
class="cmr-12">&#x00A0;Wasniewski, editors, Proceedings of PARA</span><span
class="cmr-12">&#x00A0;04 Workshop on</span>
<span
class="cmr-12">State of the Art in Scientific Computing, Lecture Notes in Computer Science,</span>
<span
class="cmr-12">Springer, 2005, 593&#8211;602.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[5]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="Xaaecc_07"></a><span
class="cmr-12">A.</span><span
class="cmr-12">&#x00A0;Buttari, P.</span><span
class="cmr-12">&#x00A0;D&#8217;Ambra, D.</span><span
class="cmr-12">&#x00A0;di</span><span
class="cmr-12">&#x00A0;Serafino, S.</span><span
class="cmr-12">&#x00A0;Filippone, </span><span
class="cmti-12">2LEV-D2P4: a</span>
<span
class="cmti-12">package of high-performance preconditioners for scientific and engineering</span>
<span
class="cmti-12">applications</span><span
class="cmr-12">, Applicable Algebra in Engineering, Communications and</span>
<span
class="cmr-12">Computing, 18 (3) 2007, 223&#8211;239.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[6]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="XCAI_SARKIS"></a><span
class="cmr-12">X.</span><span
class="cmr-12">&#x00A0;C.</span><span
class="cmr-12">&#x00A0;Cai, M.</span><span
class="cmr-12">&#x00A0;Sarkis, </span><span
class="cmti-12">A Restricted Additive Schwarz Preconditioner for</span>
<span
class="cmti-12">General Sparse Linear Systems</span><span
class="cmr-12">, SIAM Journal on Scientific Computing, 21</span>
<span
class="cmr-12">(2), 1999, 792&#8211;797.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[7]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="Xapnum_07"></a><span
class="cmr-12">P.</span><span
class="cmr-12">&#x00A0;D&#8217;Ambra, S.</span><span
class="cmr-12">&#x00A0;Filippone,</span>
<span
class="cmr-12">D.</span><span
class="cmr-12">&#x00A0;di</span><span
class="cmr-12">&#x00A0;Serafino, </span><span
class="cmti-12">On the Development of PSBLAS-based Parallel Two-level</span>
<span
class="cmti-12">Schwarz Preconditioners</span><span
class="cmr-12">, Applied Numerical Mathematics, Elsevier Science,</span>
<span
class="cmr-12">57 (11-12), 2007, 1181-1196.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[8]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="XMLD2P4_TOMS"></a><span
class="cmr-12">P.</span><span
class="cmr-12">&#x00A0;D&#8217;Ambra, D.</span><span
class="cmr-12">&#x00A0;di</span><span
class="cmr-12">&#x00A0;Serafino, S.</span><span
class="cmr-12">&#x00A0;Filippone, </span><span
class="cmti-12">MLD2P4: a Package of</span>
<span
class="cmti-12">Parallel Multilevel Algebraic Domain Decomposition Preconditioners in</span>
<span
class="cmti-12">Fortran 95</span><span
class="cmr-12">, ACM Trans. Math. Softw., 37(3), 2010, art. 30.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[9]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="XUMFPACK"></a><span
class="cmr-12">T.</span><span
class="cmr-12">&#x00A0;A.</span><span
class="cmr-12">&#x00A0;Davis, </span><span
class="cmti-12">Algorithm 832: UMFPACK</span>
<span
class="cmti-12">- an Unsymmetric-pattern Multifrontal Method with a Column Pre-ordering</span>
<span
class="cmti-12">Strategy</span><span
class="cmr-12">, ACM Transactions on Mathematical Software, 30, 2004, 196&#8211;199.</span>
<span
class="cmr-12">(See also </span><span
class="cmtt-12">http://www.cise.ufl.edu/~davis/</span><span
class="cmr-12">)</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[10]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="XSUPERLU"></a><span
class="cmr-12">J.</span><span
class="cmr-12">&#x00A0;W.</span><span
class="cmr-12">&#x00A0;Demmel, S.</span><span
class="cmr-12">&#x00A0;C.</span><span
class="cmr-12">&#x00A0;Eisenstat, J.</span><span
class="cmr-12">&#x00A0;R.</span><span
class="cmr-12">&#x00A0;Gilbert,</span>
<span
class="cmr-12">X.</span><span
class="cmr-12">&#x00A0;S.</span><span
class="cmr-12">&#x00A0;Li, J.</span><span
class="cmr-12">&#x00A0;W.</span><span
class="cmr-12">&#x00A0;H.</span><span
class="cmr-12">&#x00A0;Liu, </span><span
class="cmti-12">A supernodal approach to sparse partial pivoting</span><span
class="cmr-12">,</span>
<span
class="cmr-12">SIAM Journal on Matrix Analysis and Applications, 20 (3), 1999, 720&#8211;755.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[11]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="Xblas3"></a><span
class="cmr-12">J.</span><span
class="cmr-12">&#x00A0;J.</span><span
class="cmr-12">&#x00A0;Dongarra, J.</span><span
class="cmr-12">&#x00A0;Du Croz, I.</span><span
class="cmr-12">&#x00A0;S.</span><span
class="cmr-12">&#x00A0;Duff, S.</span><span
class="cmr-12">&#x00A0;Hammarling, </span><span
class="cmti-12">A set of Level</span>
<span
class="cmti-12">3 Basic Linear Algebra Subprograms</span><span
class="cmr-12">, ACM Transactions on Mathematical</span>
<span
class="cmr-12">Software, 16 (1) 1990, 1&#8211;17.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[12]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="Xblas2"></a><span
class="cmr-12">J.</span><span
class="cmr-12">&#x00A0;J.</span><span
class="cmr-12">&#x00A0;Dongarra, J.</span><span
class="cmr-12">&#x00A0;Du Croz, S.</span><span
class="cmr-12">&#x00A0;Hammarling, R.</span><span
class="cmr-12">&#x00A0;J.</span><span
class="cmr-12">&#x00A0;Hanson, </span><span
class="cmti-12">An</span>
<span
class="cmti-12">extended set of FORTRAN Basic Linear Algebra Subprograms</span><span
class="cmr-12">, ACM</span>
<span
class="cmr-12">Transactions on Mathematical Software, 14 (1) 1988, 1&#8211;17.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[13]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="XPSBLASGUIDE"></a><span
class="cmr-12">S.</span><span
class="cmr-12">&#x00A0;Filippone, A.</span><span
class="cmr-12">&#x00A0;Buttari, </span><span
class="cmti-12">PSBLAS 3.5.0 User&#8217;s Guide. A Reference</span>
<span
class="cmti-12">Guide for the Parallel Sparse BLAS Library</span><span
class="cmr-12">, 2012, available from</span>
<span
class="cmtt-12">https://github.com/sfilippone/psblas3/tree/master/docs</span><span
class="cmr-12">.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[14]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="XPSBLAS3"></a><span
class="cmr-12">S.</span><span
class="cmr-12">&#x00A0;Filippone, A.</span><span
class="cmr-12">&#x00A0;Buttari, </span><span
class="cmti-12">Object-Oriented Techniques for Sparse Matrix</span>
<span
class="cmti-12">Computations in Fortran 2003</span><span
class="cmr-12">. ACM Transactions on on Mathematical</span>
<span
class="cmr-12">Software, 38 (4), 2012, art.</span><span
class="cmr-12">&#x00A0;23.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[15]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="Xpsblas_00"></a><span
class="cmr-12">S.</span><span
class="cmr-12">&#x00A0;Filippone, M.</span><span
class="cmr-12">&#x00A0;Colajanni, </span><span
class="cmti-12">PSBLAS: A</span>
<span
class="cmti-12">Library for Parallel Linear Algebra Computation on Sparse Matrices</span><span
class="cmr-12">, ACM</span>
<span
class="cmr-12">Transactions on Mathematical Software, 26 (4), 2000, 527&#8211;550.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[16]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="XGrHeJi:16"></a><span
class="cmr-12">S. Gratton, P. Henon, P. Jiranek and X. Vasseur, </span><span
class="cmti-12">Reducing complexity of</span>
<span
class="cmti-12">algebraic multigrid by aggregation</span><span
class="cmr-12">, Numerical Lin. Algebra with Applications,</span>
<span
class="cmr-12">2016, 23:501-518</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[17]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="XMPI2"></a><span
class="cmr-12">W.</span><span
class="cmr-12">&#x00A0;Gropp, S.</span><span
class="cmr-12">&#x00A0;Huss-Lederman, A.</span><span
class="cmr-12">&#x00A0;Lumsdaine, E.</span><span
class="cmr-12">&#x00A0;Lusk, B.</span><span
class="cmr-12">&#x00A0;Nitzberg,</span>
<span
class="cmr-12">W.</span><span
class="cmr-12">&#x00A0;Saphir, M.</span><span
class="cmr-12">&#x00A0;Snir, </span><span
class="cmti-12">MPI: The Complete Reference. Volume 2 - The MPI-2</span>
<span
class="cmti-12">Extensions</span><span
class="cmr-12">, MIT Press, 1998.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[18]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="Xblas1"></a><span
class="cmr-12">C.</span><span
class="cmr-12">&#x00A0;L.</span><span
class="cmr-12">&#x00A0;Lawson, R.</span><span
class="cmr-12">&#x00A0;J.</span><span
class="cmr-12">&#x00A0;Hanson, D.</span><span
class="cmr-12">&#x00A0;Kincaid, F.</span><span
class="cmr-12">&#x00A0;T.</span><span
class="cmr-12">&#x00A0;Krogh, </span><span
class="cmti-12">Basic Linear</span>
<span
class="cmti-12">Algebra Subprograms for FORTRAN usage</span><span
class="cmr-12">, ACM Transactions on</span>
<span
class="cmr-12">Mathematical Software, 5 (3), 1979, 308&#8211;323.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[19]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="XSUPERLUDIST"></a><span
class="cmr-12">X.</span><span
class="cmr-12">&#x00A0;S.</span><span
class="cmr-12">&#x00A0;Li, J.</span><span
class="cmr-12">&#x00A0;W.</span><span
class="cmr-12">&#x00A0;Demmel, </span><span
class="cmti-12">SuperLU</span><span
class="cmti-12">_DIST: A Scalable</span>
<span
class="cmti-12">Distributed-memory Sparse Direct Solver for Unsymmetric Linear Systems</span><span
class="cmr-12">,</span>
<span
class="cmr-12">ACM Transactions on Mathematical Software, 29 (2), 2003, 110&#8211;140.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[20]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="XNotay2008"></a><span
class="cmr-12">Y.</span><span
class="cmr-12">&#x00A0;Notay, P.</span><span
class="cmr-12">&#x00A0;S.</span><span
class="cmr-12">&#x00A0;Vassilevski, </span><span
class="cmti-12">Recursive Krylov-based multigrid cycles</span><span
class="cmr-12">,</span>
<span
class="cmr-12">Numerical Linear Algebra with Applications, 15 (5), 2008, 473&#8211;487.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[21]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="XSaad_book"></a><span
class="cmr-12">Y.</span><span
class="cmr-12">&#x00A0;Saad, </span><span
class="cmti-12">Iterative methods for sparse linear systems</span><span
class="cmr-12">, 2nd edition, SIAM,</span>
<span
class="cmr-12">2003.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[22]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="Xdd2_96"></a><span
class="cmr-12">B.</span><span
class="cmr-12">&#x00A0;Smith, P.</span><span
class="cmr-12">&#x00A0;Bjorstad, W.</span><span
class="cmr-12">&#x00A0;Gropp, </span><span
class="cmti-12">Domain Decomposition: Parallel</span>
<span
class="cmti-12">Multilevel Methods for Elliptic Partial Differential Equations</span><span
class="cmr-12">, Cambridge</span>
<span
class="cmr-12">University Press, 1996.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[23]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="XMPI1"></a><span
class="cmr-12">M.</span><span
class="cmr-12">&#x00A0;Snir, S.</span><span
class="cmr-12">&#x00A0;Otto, S.</span><span
class="cmr-12">&#x00A0;Huss-Lederman, D.</span><span
class="cmr-12">&#x00A0;Walker, J.</span><span
class="cmr-12">&#x00A0;Dongarra, </span><span
class="cmti-12">MPI:</span>
<span
class="cmti-12">The Complete Reference. Volume 1 - The MPI Core</span><span
class="cmr-12">, second edition, MIT</span>
<span
class="cmr-12">Press, 1998.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[24]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="XStuben_01"></a><span
class="cmr-12">K.</span><span
class="cmr-12">&#x00A0;St</span><span
class="cmr-12">üben, </span><span
class="cmti-12">An Introduction to Algebraic Multigrid</span><span
class="cmr-12">, in A.</span><span
class="cmr-12">&#x00A0;Sch</span><span
class="cmr-12">üller,</span>
<span
class="cmr-12">U.</span><span
class="cmr-12">&#x00A0;Trottenberg, C.</span><span
class="cmr-12">&#x00A0;Oosterlee, Multigrid, Academic Press, 2001.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[25]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="XTUMINARO_TONG"></a><span
class="cmr-12">R.</span><span
class="cmr-12">&#x00A0;S.</span><span
class="cmr-12">&#x00A0;Tuminaro, C.</span><span
class="cmr-12">&#x00A0;Tong, </span><span
class="cmti-12">Parallel Smoothed Aggregation Multigrid:</span>
<span
class="cmti-12">Aggregation Strategies on Massively Parallel Machines</span><span
class="cmr-12">, in J. Donnelley,</span>
<span
class="cmr-12">editor, Proceedings of SuperComputing 2000, Dallas, 2000.</span>
</p>
<p class="bibitem" ><span class="biblabel">
<span
class="cmr-12">[26]</span><span class="bibsp"><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span></span></span><a
id="XVANEK_MANDEL_BREZINA"></a><span
class="cmr-12">P.</span><span
class="cmr-12">&#x00A0;Van</span><span
class="cmr-12">&#x011B;k, J.</span><span
class="cmr-12">&#x00A0;Mandel, M.</span><span
class="cmr-12">&#x00A0;Brezina, </span><span
class="cmti-12">Algebraic Multigrid by Smoothed</span>
<span
class="cmti-12">Aggregation for Second and Fourth Order Elliptic Problems</span><span
class="cmr-12">, Computing, 56</span>
<span
class="cmr-12">(3) 1996, 179&#8211;196.</span>
</p>
</div>
<!--l. 145--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlse9.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse9.html#tailuserhtmlse9.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlli4.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtml.html#userhtmlli4.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 145--><p class="indent" > <a
id="tailuserhtmlli4.html"></a>
</body></html>

@ -0,0 +1,372 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>General Overview</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlse2.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlli2.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlli2.html#tailuserhtmlli2.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlse1.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtml.html#userhtmlse1.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h3 class="sectionHead"><span class="titlemark"><span
class="cmr-12">1 </span></span> <a
id="x4-30001"></a><span
class="cmr-12">General Overview</span></h3>
<!--l. 5--><p class="noindent" ><span
class="cmr-12">The </span><span
class="cmcsc-10x-x-120">M<span
class="small-caps">u</span><span
class="small-caps">l</span><span
class="small-caps">t</span><span
class="small-caps">i</span>L<span
class="small-caps">e</span><span
class="small-caps">v</span><span
class="small-caps">e</span><span
class="small-caps">l</span> D<span
class="small-caps">o</span><span
class="small-caps">m</span><span
class="small-caps">a</span><span
class="small-caps">i</span><span
class="small-caps">n</span> D<span
class="small-caps">e</span><span
class="small-caps">c</span><span
class="small-caps">o</span><span
class="small-caps">m</span><span
class="small-caps">p</span><span
class="small-caps">o</span><span
class="small-caps">s</span><span
class="small-caps">i</span><span
class="small-caps">t</span><span
class="small-caps">i</span><span
class="small-caps">o</span><span
class="small-caps">n</span> P<span
class="small-caps">a</span><span
class="small-caps">r</span><span
class="small-caps">a</span><span
class="small-caps">l</span><span
class="small-caps">l</span><span
class="small-caps">e</span><span
class="small-caps">l</span> P<span
class="small-caps">r</span><span
class="small-caps">e</span><span
class="small-caps">c</span><span
class="small-caps">o</span><span
class="small-caps">n</span><span
class="small-caps">d</span><span
class="small-caps">i</span><span
class="small-caps">t</span><span
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
class="small-caps">s</span></span>
<span
class="cmcsc-10x-x-120">P<span
class="small-caps">a</span><span
class="small-caps">c</span><span
class="small-caps">k</span><span
class="small-caps">a</span><span
class="small-caps">g</span><span
class="small-caps">e</span> <span
class="small-caps">b</span><span
class="small-caps">a</span><span
class="small-caps">s</span><span
class="small-caps">e</span><span
class="small-caps">d</span> <span
class="small-caps">o</span><span
class="small-caps">n</span> PSBLAS (MLD2P4</span><span
class="cmr-12">) provides parallel Algebraic MultiGrid</span>
<span
class="cmr-12">(AMG) and Domain Decomposition preconditioners (see, e.g., </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XBriggs2000"><span
class="cmr-12">3</span></a><span
class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlli4.html#XStuben_01"><span
class="cmr-12">24</span></a><span
class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlli4.html#Xdd2_96"><span
class="cmr-12">22</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">), to be used</span>
<span
class="cmr-12">in the iterative solution of linear systems,</span>
<table
class="equation"><tr><td>
<center 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
class="cmr-12">(1)</span></td></tr></table>
<!--l. 12--><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 matrix. The name of the package comes</span>
<span
class="cmr-12">from its original implementation, containing multilevel additive and hybrid Schwarz</span>
<span
class="cmr-12">preconditioners, as well as one-level additive Schwarz preconditioners. The current</span>
<span
class="cmr-12">version extends the original plan by including multilevel cycles and smoothers widely</span>
<span
class="cmr-12">used in multigrid methods.</span>
<!--l. 24--><p class="indent" > <span
class="cmr-12">The multilevel preconditioners implemented in MLD2P4 are obtained by</span>
<span
class="cmr-12">combining AMG cycles with smoothers and coarsest-level solvers. The V-, W-, and</span>
<span
class="cmr-12">K-cycles</span><span
class="cmr-12">&#x00A0;</span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XBriggs2000"><span
class="cmr-12">3</span></a><span
class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlli4.html#XNotay2008"><span
class="cmr-12">20</span></a><span
class="cmr-12">]</span></span> <span
class="cmr-12">are available, which allow to define almost all the preconditioners in</span>
<span
class="cmr-12">the package, including the multilevel hybrid Schwarz ones; a specific cycle is</span>
<span
class="cmr-12">implemented to obtain multilevel additive Schwarz preconditioners. The Jacobi,</span>
<span
class="cmr-12">hybrid forward/backward Gauss-Seidel, block-Jacobi, and additive Schwarz</span>
<span
class="cmr-12">methods are available as smoothers. An algebraic approach is used to generate a</span>
<span
class="cmr-12">hierarchy of coarse-level matrices and operators, without explicitly using any</span>
<span
class="cmr-12">information on the geometry of the original problem, e.g., the discretization of a</span>
<span
class="cmr-12">PDE. To this end, the smoothed aggregation technique</span><span
class="cmr-12">&#x00A0;</span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XBREZINA_VANEK"><span
class="cmr-12">2</span></a><span
class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlli4.html#XVANEK_MANDEL_BREZINA"><span
class="cmr-12">26</span></a><span
class="cmr-12">]</span></span> <span
class="cmr-12">is applied.</span>
<span
class="cmr-12">Either exact or approximate solvers can be used on the coarsest-level system.</span>
<span
class="cmr-12">Specifically, different sparse LU factorizations from external packages, and</span>
<span
class="cmr-12">native incomplete LU factorizations and Jacobi, hybrid Gauss-Seidel, and</span>
<span
class="cmr-12">block-Jacobi solvers are available. All smoothers can be also exploited as one-level</span>
<span
class="cmr-12">preconditioners.</span>
<!--l. 42--><p class="indent" > <span
class="cmr-12">MLD2P4 is written in Fortran</span><span
class="cmr-12">&#x00A0;2003, following an object-oriented design</span>
<span
class="cmr-12">through the exploitation of features such as abstract data type creation, type</span>
<span
class="cmr-12">extension, functional overloading, and dynamic memory management. The</span>
<span
class="cmr-12">parallel implementation is based on a Single Program Multiple Data (SPMD)</span>
<span
class="cmr-12">paradigm. Single and double precision implementations of MLD2P4 are available</span>
<span
class="cmr-12">for both the real and the complex case, which can be used through a single</span>
<span
class="cmr-12">interface.</span>
<!--l. 53--><p class="indent" > <span
class="cmr-12">MLD2P4 has been designed to implement scalable and easy-to-use multilevel</span>
<span
class="cmr-12">preconditioners in the context of the PSBLAS (Parallel Sparse BLAS) computational</span>
<span
class="cmr-12">framework</span><span
class="cmr-12">&#x00A0;</span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#Xpsblas_00"><span
class="cmr-12">15</span></a><span
class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlli4.html#XPSBLAS3"><span
class="cmr-12">14</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">. PSBLAS provides basic linear algebra operators and data</span>
<span
class="cmr-12">management facilities for distributed sparse matrices, as well as parallel Krylov solvers</span>
<span
class="cmr-12">which can be used with the MLD2P4 preconditioners. The choice of PSBLAS has been</span>
<span
class="cmr-12">mainly motivated by the need of having a portable and efficient software infrastructure</span>
<span
class="cmr-12">implementing &#8220;de facto&#8221; standard parallel sparse linear algebra kernels, to pursue goals</span>
<span
class="cmr-12">such as performance, portability, modularity ed extensibility in the development of the</span>
<span
class="cmr-12">preconditioner package. On the other hand, the implementation of MLD2P4 has led to</span>
<span
class="cmr-12">some revisions and extentions of the original PSBLAS kernels. The inter-process</span>
<span
class="cmr-12">comunication required by MLD2P4 is encapsulated in the PSBLAS routines; therefore,</span>
<span
class="cmr-12">MLD2P4 can be run on any parallel machine where PSBLAS implementations are</span>
<span
class="cmr-12">available.</span>
<!--l. 70--><p class="indent" > <span
class="cmr-12">MLD2P4 has a layered and modular software architecture where three main layers</span>
<span
class="cmr-12">can be identified. The lower layer consists of the PSBLAS kernels, the middle one</span>
<span
class="cmr-12">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">allows for different levels of use of the package: few black-box routines at the upper</span>
<span
class="cmr-12">layer allow all users to easily build and apply any preconditioner available in</span>
<span
class="cmr-12">MLD2P4; facilities are also available allowing expert users to extend the set of</span>
<span
class="cmr-12">smoothers and solvers for building new versions of the preconditioners (see</span>
<span
class="cmr-12">Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x29-330007"><span
class="cmr-12">7</span><!--tex4ht:ref: sec:adding --></a><span
class="cmr-12">).</span>
<!--l. 81--><p class="indent" > <span
class="cmr-12">We note that the user interface of MLD2P4 2.1 has been extended with respect to</span>
<span
class="cmr-12">the previous versions in order to separate the construction of the multilevel</span>
<span
class="cmr-12">hierarchy from the construction of the smoothers and solvers, and to allow for</span>
<span
class="cmr-12">more flexibility at each level. The software architecture described in</span><span
class="cmr-12">&#x00A0;</span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XMLD2P4_TOMS"><span
class="cmr-12">8</span></a><span
class="cmr-12">]</span></span> <span
class="cmr-12">has</span>
<span
class="cmr-12">significantly evolved too, in order to fully exploit the Fortran</span><span
class="cmr-12">&#x00A0;2003 features</span>
<span
class="cmr-12">implemented in PSBLAS 3. However, compatibility with previous versions has been</span>
<span
class="cmr-12">preserved.</span>
<!--l. 88--><p class="indent" > <span
class="cmr-12">This guide is organized as follows. General information on the distribution of the</span>
<span
class="cmr-12">source code is reported in Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse2.html#x5-40002"><span
class="cmr-12">2</span><!--tex4ht:ref: sec:distribution --></a><span
class="cmr-12">, while details on the configuration and installation</span>
<span
class="cmr-12">of the package are given in Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse3.html#x7-60003"><span
class="cmr-12">3</span><!--tex4ht:ref: sec:building --></a><span
class="cmr-12">. A short description of the preconditioners</span>
<span
class="cmr-12">implemented in MLD2P4 is provided in Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse4.html#x13-120004"><span
class="cmr-12">4</span><!--tex4ht:ref: sec:background --></a><span
class="cmr-12">, to help the users in choosing among</span>
<span
class="cmr-12">them. The basics for building and applying the preconditioners with the Krylov solvers</span>
<span
class="cmr-12">implemented in PSBLAS are reported in</span><span
class="cmr-12">&#x00A0;Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse5.html#x17-160005"><span
class="cmr-12">5</span><!--tex4ht:ref: sec:started --></a><span
class="cmr-12">, where the Fortran codes of a few</span>
<span
class="cmr-12">sample programs are also shown. A reference guide for the user interface routines is</span>
<span
class="cmr-12">provided in Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse6.html#x19-180006"><span
class="cmr-12">6</span><!--tex4ht:ref: sec:userinterface --></a><span
class="cmr-12">. Information on the extension of the package through the</span>
<span
class="cmr-12">addition of new smoothers and solvers is reported in Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x29-330007"><span
class="cmr-12">7</span><!--tex4ht:ref: sec:adding --></a><span
class="cmr-12">. The error handling</span>
<span
class="cmr-12">mechanism used by the package is briefly described in Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse8.html#x30-340008"><span
class="cmr-12">8</span><!--tex4ht:ref: sec:errors --></a><span
class="cmr-12">. The copyright</span>
<span
class="cmr-12">terms concerning the distribution and modification of MLD2P4 are reported in</span>
<span
class="cmr-12">Appendix</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse9.html#x31-35000A"><span
class="cmr-12">A</span><!--tex4ht:ref: sec:license --></a><span
class="cmr-12">.</span>
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlse2.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlli2.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlli2.html#tailuserhtmlli2.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse1.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtml.html#userhtmlse1.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 1--><p class="indent" > <a
id="tailuserhtmlse1.html"></a>
</body></html>

@ -0,0 +1,88 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>Code Distribution</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlse3.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse1.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse1.html#tailuserhtmlse1.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlse2.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtml.html#userhtmlse2.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h3 class="sectionHead"><span class="titlemark"><span
class="cmr-12">2 </span></span> <a
id="x5-40002"></a><span
class="cmr-12">Code Distribution</span></h3>
<!--l. 5--><p class="noindent" ><span
class="cmr-12">MLD2P4 is available from the web site</span>
<div class="quotation">
<!--l. 8--><p class="indent" > <span
class="cmtt-12">https://github.com/sfilippone/mld2p4-2</span></div>
<!--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
class="cmr-12">The software is available under a modified BSD license, as specified in Appendix</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse9.html#x31-35000A"><span
class="cmr-12">A</span><!--tex4ht:ref: sec:license --></a><span
class="cmr-12">;</span>
<span
class="cmr-12">please note that some of the optional third party libraries may be licensed under a</span>
<span
class="cmr-12">different and more stringent license, most notably the GPL, and this should be taken</span>
<span
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" >
<img
src="userhtml1x.png" alt="mld_version_string_
" class="math-display" ></center>
<!--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">2.1.0</span></span></span><span
class="cmr-12">.</span>
<!--l. 23--><p class="noindent" >
<div class="likesubsectionTOCS">
<span
class="cmr-12">&#x00A0;</span><span class="likesubsectionToc" ><a
href="userhtmlli3.html#x6-50002"><span
class="cmr-12">Contributors</span></a></span>
</div><!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlse3.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse1.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse1.html#tailuserhtmlse1.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse2.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtml.html#userhtmlse2.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 1--><p class="indent" > <a
id="tailuserhtmlse2.html"></a>
</body></html>

@ -0,0 +1,136 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>Configuring and Building MLD2P4</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlse4.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse2.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse2.html#tailuserhtmlse2.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlse3.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtml.html#userhtmlse3.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h3 class="sectionHead"><span class="titlemark"><span
class="cmr-12">3 </span></span> <a
id="x7-60003"></a><span
class="cmr-12">Configuring and Building MLD2P4</span></h3>
<!--l. 4--><p class="noindent" ><span
class="cmr-12">In order to build MLD2P4 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">script. The</span>
<span
class="cmr-12">distribution also includes the autoconf and automake sources employed to generate the</span>
<span
class="cmr-12">script, but usually this is not needed to build the software.</span>
<!--l. 10--><p class="indent" > <span
class="cmr-12">MLD2P4 is implemented almost entirely in Fortran</span><span
class="cmr-12">&#x00A0;2003, with some interfaces to</span>
<span
class="cmr-12">external libraries in C; the Fortran compiler must support the Fortran</span><span
class="cmr-12">&#x00A0;2003 standard</span>
<span
class="cmr-12">plus the extension </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">MOLD=</span></span></span> <span
class="cmr-12">feature, which enhances the usability of </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">ALLOCATE</span></span></span><span
class="cmr-12">. Many</span>
<span
class="cmr-12">compilers do this; in particular, this is supported by the GNU Fortran compiler, for</span>
<span
class="cmr-12">which we recommend to use at least version 4.8. The software defines data</span>
<span
class="cmr-12">types and interfaces for real and complex data, in both single and double</span>
<span
class="cmr-12">precision.</span>
<!--l. 20--><p class="indent" > <span
class="cmr-12">Building MLD2P4 requires some base libraries (see Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlsu1.html#x8-70003.1"><span
class="cmr-12">3.1</span><!--tex4ht:ref: sec:prerequisites --></a><span
class="cmr-12">); interfaces to</span>
<span
class="cmr-12">optional third-party libraries, which extend the functionalities of MLD2P4 (see</span>
<span
class="cmr-12">Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlsu2.html#x9-80003.2"><span
class="cmr-12">3.2</span><!--tex4ht:ref: sec:third-party --></a><span
class="cmr-12">), are also available. Many Linux distributions (e.g., Ubuntu, Fedora,</span>
<span
class="cmr-12">CentOS) provide precompiled packages for the prerequisite and optional software. In</span>
<span
class="cmr-12">many cases these packages are split between a runtime part and a &#8220;developer&#8221; part; in</span>
<span
class="cmr-12">order to build MLD2P4 you need both. A description of the base and optional software</span>
<span
class="cmr-12">used by MLD2P4 is given in the next sections.</span>
<!--l. 28--><p class="noindent" >
<div class="subsectionTOCS">
<span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.1 </span><a
href="userhtmlsu1.html#x8-70003.1"><span
class="cmr-12">Prerequisites</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.2 </span><a
href="userhtmlsu2.html#x9-80003.2"><span
class="cmr-12">Optional third party libraries</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.3 </span><a
href="userhtmlsu3.html#x10-90003.3"><span
class="cmr-12">Configuration options</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.4 </span><a
href="userhtmlsu4.html#x11-100003.4"><span
class="cmr-12">Bug reporting</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">3.5 </span><a
href="userhtmlsu5.html#x12-110003.5"><span
class="cmr-12">Example and test programs</span></a></span>
</div>
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlse4.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse2.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse2.html#tailuserhtmlse2.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse3.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtml.html#userhtmlse3.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 1--><p class="indent" > <a
id="tailuserhtmlse3.html"></a>
</body></html>

@ -0,0 +1,221 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>Multigrid Background</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlse5.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse3.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse3.html#tailuserhtmlse3.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlse4.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtml.html#userhtmlse4.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h3 class="sectionHead"><span class="titlemark"><span
class="cmr-12">4 </span></span> <a
id="x13-120004"></a><span
class="cmr-12">Multigrid Background</span></h3>
<!--l. 5--><p class="noindent" ><span
class="cmr-12">Multigrid preconditioners, coupled with Krylov iterative solvers, are widely used in the</span>
<span
class="cmr-12">parallel solution of large and sparse linear systems, because of their optimality in the</span>
<span
class="cmr-12">solution of linear systems arising from the discretization of scalar elliptic Partial</span>
<span
class="cmr-12">Differential Equations (PDEs) on regular grids. Optimality, also known as algorithmic</span>
<span
class="cmr-12">scalability, is the property of having a computational cost per iteration that depends</span>
<span
class="cmr-12">linearly on the problem size, and a convergence rate that is independent of the problem</span>
<span
class="cmr-12">size.</span>
<!--l. 13--><p class="indent" > <span
class="cmr-12">Multigrid preconditioners are based on a recursive application of a two-grid process</span>
<span
class="cmr-12">consisting of smoother iterations and a coarse-space (or coarse-level) correction. The</span>
<span
class="cmr-12">smoothers may be either basic iterative methods, such as the Jacobi and Gauss-Seidel</span>
<span
class="cmr-12">ones, or more complex subspace-correction methods, such as the Schwarz ones. The</span>
<span
class="cmr-12">coarse-space correction consists of solving, in an appropriately chosen coarse space, the</span>
<span
class="cmr-12">residual equation associated with the approximate solution computed by the</span>
<span
class="cmr-12">smoother, and of using the solution of this equation to correct the previous</span>
<span
class="cmr-12">approximation. The transfer of information between the original (fine) space and</span>
<span
class="cmr-12">the coarse one is performed by using suitable restriction and prolongation</span>
<span
class="cmr-12">operators. The construction of the coarse space and the corresponding transfer</span>
<span
class="cmr-12">operators is carried out by applying a so-called coarsening algorithm to the</span>
<span
class="cmr-12">system matrix. Two main approaches can be used to perform coarsening:</span>
<span
class="cmr-12">the geometric approach, which exploits the knowledge of some physical grid</span>
<span
class="cmr-12">associated with the matrix and requires the user to define transfer operators</span>
<span
class="cmr-12">from the fine to the coarse level and vice versa, and the algebraic approach,</span>
<span
class="cmr-12">which builds the coarse-space correction and the associate transfer operators</span>
<span
class="cmr-12">using only matrix information. The first approach may be difficult when the</span>
<span
class="cmr-12">system comes from discretizations on complex geometries; furthermore, ad hoc</span>
<span
class="cmr-12">one-level smoothers may be required to get an efficient interplay between</span>
<span
class="cmr-12">fine and coarse levels, e.g., when matrices with highly varying coefficients are</span>
<span
class="cmr-12">considered. The second approach performs a fully automatic coarsening and</span>
<span
class="cmr-12">enforces the interplay between fine and coarse level by suitably choosing the</span>
<span
class="cmr-12">coarse space and the coarse-to-fine interpolation (see, e.g., </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XBriggs2000"><span
class="cmr-12">3</span></a><span
class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlli4.html#XStuben_01"><span
class="cmr-12">24</span></a><span
class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlli4.html#Xdd2_96"><span
class="cmr-12">22</span></a><span
class="cmr-12">]</span></span> <span
class="cmr-12">for</span>
<span
class="cmr-12">details.)</span>
<!--l. 37--><p class="indent" > <span
class="cmr-12">MLD2P4 uses a pure algebraic approach, based on the smoothed aggregation</span>
<span
class="cmr-12">algorithm </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XBREZINA_VANEK"><span
class="cmr-12">2</span></a><span
class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlli4.html#XVANEK_MANDEL_BREZINA"><span
class="cmr-12">26</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">, for building the sequence of coarse matrices and transfer</span>
<span
class="cmr-12">operators, starting from the original one. A decoupled version of this algorithm</span>
<span
class="cmr-12">is implemented, where the smoothed aggregation is applied locally to each</span>
<span
class="cmr-12">submatrix </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XTUMINARO_TONG"><span
class="cmr-12">25</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">. A brief description of the AMG preconditioners implemented in</span>
<span
class="cmr-12">MLD2P4 is given in Sections</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlsu6.html#x14-130004.1"><span
class="cmr-12">4.1</span><!--tex4ht:ref: sec:multilevel --></a><span
class="cmr-12">-</span><a
href="userhtmlsu8.html#x16-150004.3"><span
class="cmr-12">4.3</span><!--tex4ht:ref: sec:smoothers --></a><span
class="cmr-12">. For further details the reader is referred to</span>
<span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#Xpara_04"><span
class="cmr-12">4</span></a><span
class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlli4.html#Xaaecc_07"><span
class="cmr-12">5</span></a><span
class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlli4.html#Xapnum_07"><span
class="cmr-12">7</span></a><span
class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlli4.html#XMLD2P4_TOMS"><span
class="cmr-12">8</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span>
<!--l. 47--><p class="indent" > <span
class="cmr-12">We note that optimal multigrid preconditioners do not necessarily correspond to</span>
<span
class="cmr-12">minimum execution times in a parallel setting. Indeed, to obtain effective parallel</span>
<span
class="cmr-12">multigrid preconditioners, a tradeoff between the optimality and the cost of</span>
<span
class="cmr-12">building and applying the smoothers and the coarse-space corrections must be</span>
<span
class="cmr-12">achieved. Effective parallel preconditioners require algorithmic scalability to</span>
<span
class="cmr-12">be coupled with implementation scalability, i.e., a computational cost per</span>
<span
class="cmr-12">iteration which remains (almost) constant as the number of parallel processors</span>
<span
class="cmr-12">increases.</span>
<!--l. 56--><p class="noindent" >
<div class="subsectionTOCS">
<span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">4.1 </span><a
href="userhtmlsu6.html#x14-130004.1"><span
class="cmr-12">AMG preconditioners</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">4.2 </span><a
href="userhtmlsu7.html#x15-140004.2"><span
class="cmr-12">Smoothed Aggregation</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">4.3 </span><a
href="userhtmlsu8.html#x16-150004.3"><span
class="cmr-12">Smoothers and coarsest-level solvers</span></a></span>
</div>
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlse5.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse3.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse3.html#tailuserhtmlse3.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse4.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtml.html#userhtmlse4.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 1--><p class="indent" > <a
id="tailuserhtmlse4.html"></a>
</body></html>

@ -0,0 +1,419 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>Getting Started</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlse6.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse4.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse4.html#tailuserhtmlse4.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlse5.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtml.html#userhtmlse5.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h3 class="sectionHead"><span class="titlemark"><span
class="cmr-12">5 </span></span> <a
id="x17-160005"></a><span
class="cmr-12">Getting Started</span></h3>
<!--l. 5--><p class="noindent" ><span
class="cmr-12">We describe the basics for building and applying MLD2P4 one-level and multilevel</span>
<span
class="cmr-12">(i.e., AMG) preconditioners with the Krylov solvers included in PSBLAS </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XPSBLASGUIDE"><span
class="cmr-12">13</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">. The</span>
<span
class="cmr-12">following steps are required:</span>
<ol class="enumerate1" >
<li
class="enumerate" id="x17-16002x1"><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">mld_</span></span></span><span
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">prec_</span></span></span> <span class="obeylines-h"><span class="verb"><span
class="cmtt-12">type</span></span></span><span
class="cmr-12">, where </span><span
class="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">, according to the basic</span>
<span
class="cmr-12">data 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">= real double</span>
<span
class="cmr-12">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
class="cmr-12">= complex double precision). This</span>
<span
class="cmr-12">data structure is accessed by the user only through the MLD2P4 routines,</span>
<span
class="cmr-12">following an object-oriented approach.</span>
</li>
<li
class="enumerate" id="x17-16004x2"><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="obeylines-h"><span class="verb"><span
class="cmtt-12">init</span></span></span><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>
<span
class="cmr-12">are given in Table</span><span
class="cmr-12">&#x00A0;</span><a
href="#x17-160151"><span
class="cmr-12">1</span><!--tex4ht:ref: tab:precinit --></a><span
class="cmr-12">, where the strings used by </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">init</span></span></span> <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="x17-16006x3"><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="obeylines-h"><span class="verb"><span
class="cmtt-12">set</span></span></span><span
class="cmr-12">. This routine must be</span>
<span
class="cmr-12">called only 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="obeylines-h"><span class="verb"><span
class="cmtt-12">set</span></span></span> <span
class="cmr-12">are given in Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlsu9.html#x18-170005.1"><span
class="cmr-12">5.1</span><!--tex4ht:ref: sec:examples --></a><span
class="cmr-12">; a complete</span>
<span
class="cmr-12">list of all the preconditioner parameters and their allowed and default values</span>
<span
class="cmr-12">is provided in Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse6.html#x19-180006"><span
class="cmr-12">6</span><!--tex4ht:ref: sec:userinterface --></a><span
class="cmr-12">, Tables</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlsu11.html#x21-200092"><span
class="cmr-12">2</span><!--tex4ht:ref: tab:p_cycle --></a><span
class="cmr-12">-</span><a
href="userhtmlsu11.html#x21-200158"><span
class="cmr-12">8</span><!--tex4ht:ref: tab:p_smoother_1 --></a><span
class="cmr-12">.</span>
</li>
<li
class="enumerate" id="x17-16008x4"><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="x17-16009x0"><span
class="cmti-12">Build the aggregation hierarchy for a given matrix. </span><span
class="cmr-12">This is performed</span>
<span
class="cmr-12">by the routine </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">hierarchy_build</span></span></span><span
class="cmr-12">.</span>
</li>
<li
class="enumerate" id="x17-16010x0"><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="obeylines-h"><span class="verb"><span
class="cmtt-12">smoothers_build</span></span></span><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="obeylines-h"><span class="verb"><span
class="cmtt-12">bld</span></span></span><span
class="cmr-12">.</span>
</li>
<li
class="enumerate" id="x17-16012x5"><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="obeylines-h"><span class="verb"><span
class="cmtt-12">apply</span></span></span><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="obeylines-h"><span class="verb"><span
class="cmtt-12">apply</span></span></span> <span
class="cmr-12">is called by the PSBLAS routine</span>
<span
class="cmr-12">implementing the Krylov solver (</span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">psb_krylov</span></span></span><span
class="cmr-12">).</span>
</li>
<li
class="enumerate" id="x17-16014x6"><span
class="cmti-12">Free the preconditioner data structure</span><span
class="cmr-12">. This is performed by the routine </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">free</span></span></span><span
class="cmr-12">.</span>
<span
class="cmr-12">This step is complementary to step 1 and should be performed when the</span>
<span
class="cmr-12">preconditioner is no more used.</span></li></ol>
<!--l. 59--><p class="indent" > <span
class="cmr-12">All the previous routines are available as methods of the preconditioner object. A</span>
<span
class="cmr-12">detailed description of them is given in Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse6.html#x19-180006"><span
class="cmr-12">6</span><!--tex4ht:ref: sec:userinterface --></a><span
class="cmr-12">. Examples showing the basic use of</span>
<span
class="cmr-12">MLD2P4 are reported in Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlsu9.html#x18-170005.1"><span
class="cmr-12">5.1</span><!--tex4ht:ref: sec:examples --></a><span
class="cmr-12">.</span>
<div class="table">
<!--l. 63--><p class="indent" > <a
id="x17-160151"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--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="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:wrap; 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:wrap; 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
class="small-caps">f</span><span
class="small-caps">a</span><span
class="small-caps">u</span><span
class="small-caps">l</span><span
class="small-caps">t</span> <span
class="small-caps">p</span><span
class="small-caps">r</span><span
class="small-caps">e</span><span
class="small-caps">c</span><span
class="small-caps">o</span><span
class="small-caps">n</span><span
class="small-caps">d</span><span
class="small-caps">i</span><span
class="small-caps">t</span><span
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="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:wrap; text-align:left;" id="TBL-1-2-2"
class="td11"><!--l. 69--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-10x-x-109">&#8217;NONE&#8217;</span></span></span> </td><td style="white-space:wrap; 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:wrap; text-align:left;" id="TBL-1-3-2"
class="td11"><!--l. 71--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-10x-x-109">&#8217;DIAG&#8217;</span></span></span> or
<span class="obeylines-h"><span class="verb"><span
class="cmtt-10x-x-109">&#8217;JACOBI&#8217;</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-1-3-3"
class="td11"><!--l. 71--><p class="noindent" >Diagonal preconditioner. For any zero diagonal
entry of the matrix to be preconditioned, the
corresponding entry of the preconditioner is set
to&#x00A0;1. </td>
</tr><tr
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:wrap; text-align:left;" id="TBL-1-4-2"
class="td11"><!--l. 74--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-10x-x-109">&#8217;GS&#8217;</span></span></span> </td><td style="white-space:wrap; 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:wrap; text-align:left;" id="TBL-1-5-2"
class="td11"><!--l. 77--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-10x-x-109">&#8217;FBGS&#8217;</span></span></span> </td><td style="white-space:wrap; 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:wrap; text-align:left;" id="TBL-1-6-2"
class="td11"><!--l. 80--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-10x-x-109">&#8217;BJAC&#8217;</span></span></span> </td><td style="white-space:wrap; 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:wrap; text-align:left;" id="TBL-1-7-2"
class="td11"><!--l. 81--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-10x-x-109">&#8217;AS&#8217;</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-1-7-3"
class="td11"><!--l. 81--><p class="noindent" >Additive Schwarz (AS), with overlap&#x00A0;1 and
ILU(0) on the local blocks. </td>
</tr><tr
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:wrap; text-align:left;" id="TBL-1-8-2"
class="td11"><!--l. 83--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-10x-x-109">&#8217;ML&#8217;</span></span></span> </td><td style="white-space:wrap; 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, basic
smoothed aggregation as coarsening algorithm,
and LU (plus triangular solve) as coarsest-level
solver. See the default values in Tables&#x00A0;<a
href="userhtmlsu11.html#x21-200092">2<!--tex4ht:ref: tab:p_cycle --></a>-<a
href="userhtmlsu11.html#x21-200158">8<!--tex4ht:ref: tab:p_smoother_1 --></a> for
further details of the preconditioner. </td>
</tr><tr
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
style="vertical-align:baseline;" id="TBL-1-9-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-9-1"
class="td11"> </td></tr></table></div>
<br /> <div class="caption"
><span class="id">Table&#x00A0;1: </span><span
class="content">Preconditioner types, corresponding strings and default choices. </span></div><!--tex4ht:label?: x17-160151 -->
</div>
</div><hr class="endfloat" />
</div>
<!--l. 98--><p class="indent" > <span
class="cmr-12">Note that the module </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">mld_prec_mod</span></span></span><span
class="cmr-12">, containing the definition of the preconditioner</span>
<span
class="cmr-12">data type and the interfaces to the routines of MLD2P4, must be used in any program</span>
<span
class="cmr-12">calling such routines. The modules </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">psb_base_mod</span></span></span><span
class="cmr-12">, for the sparse matrix and</span>
<span
class="cmr-12">communication descriptor data types, and </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">psb_krylov_mod</span></span></span><span
class="cmr-12">, for interfacing with the</span>
<span
class="cmr-12">Krylov solvers, must be also used (see Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlsu9.html#x18-170005.1"><span
class="cmr-12">5.1</span><!--tex4ht:ref: sec:examples --></a><span
class="cmr-12">). </span><br
class="newline" />
<!--l. 105--><p class="indent" > <span
class="cmbx-12">Remark 1. </span><span
class="cmr-12">Coarsest-level solvers based on the LU factorization, such as those</span>
<span
class="cmr-12">implemented in UMFPACK, MUMPS, SuperLU, and SuperLU</span><span
class="cmr-12">_Dist, usually lead to</span>
<span
class="cmr-12">smaller numbers of preconditioned Krylov iterations than inexact solvers, when the</span>
<span
class="cmr-12">linear system comes from a standard discretization of basic scalar elliptic PDE</span>
<span
class="cmr-12">problems. However, this does not necessarily correspond to the smallest execution time</span>
<span
class="cmr-12">on parallel computers.</span>
<div class="subsectionTOCS">
<span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.1 </span><a
href="userhtmlsu9.html#x18-170005.1"><span
class="cmr-12">Examples</span></a></span>
</div>
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlse6.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse4.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse4.html#tailuserhtmlse4.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse5.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtml.html#userhtmlse5.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 1--><p class="indent" > <a
id="tailuserhtmlse5.html"></a>
</body></html>

@ -0,0 +1,273 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>User Interface</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlse7.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse5.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse5.html#tailuserhtmlse5.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlse6.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtml.html#userhtmlse6.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h3 class="sectionHead"><span class="titlemark"><span
class="cmr-12">6 </span></span> <a
id="x19-180006"></a><span
class="cmr-12">User Interface</span></h3>
<!--l. 5--><p class="noindent" ><span
class="cmr-12">The basic user interface of MLD2P4 consists of eight methods. The six methods </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">init</span></span></span><span
class="cmr-12">,</span>
<span class="obeylines-h"><span class="verb"><span
class="cmtt-12">set</span></span></span><span
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">build</span></span></span><span
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">hierarchy_build</span></span></span><span
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">smoothers_build</span></span></span> <span
class="cmr-12">and </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">apply</span></span></span> <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="obeylines-h"><span class="verb"><span
class="cmtt-12">free</span></span></span> <span
class="cmr-12">deallocates the</span>
<span
class="cmr-12">preconditioner data structure, while </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">descr</span></span></span> <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>
<span
class="cmr-12">stand-alone subroutines.</span>
<!--l. 16--><p class="indent" > <span
class="cmr-12">For each method, the same user interface is overloaded with respect to the real/</span>
<span
class="cmr-12">complex case and the single/double precision; arguments with appropriate data types</span>
<span
class="cmr-12">must be passed to the method, i.e.,</span>
<ul class="itemize1">
<li class="itemize"><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">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">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">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">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">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">mld_</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
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">, according to the sparse matrix data structure;</span>
</li>
<li class="itemize"><span
class="cmr-12">the arrays containing the vectors </span><span
class="cmmi-12">v </span><span
class="cmr-12">and </span><span
class="cmmi-12">w </span><span
class="cmr-12">involved in the preconditioner</span>
<span
class="cmr-12">application </span><span
class="cmmi-12">w </span><span
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="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">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">, in a manner completely analogous to the sparse matrix type;</span>
</li>
<li class="itemize"><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>
<span
class="cmr-12">Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlsu11.html#x21-200006.2"><span
class="cmr-12">6.2</span><!--tex4ht:ref: sec:precset --></a><span
class="cmr-12">).</span></li></ul>
<!--l. 39--><p class="noindent" ><span
class="cmr-12">A description of each method is given in the remainder of this section.</span>
<div class="subsectionTOCS">
<span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.1 </span><a
href="userhtmlsu10.html#x20-190006.1"><span
class="cmr-12">Method init</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.2 </span><a
href="userhtmlsu11.html#x21-200006.2"><span
class="cmr-12">Method set</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.3 </span><a
href="userhtmlsu12.html#x22-210006.3"><span
class="cmr-12">Method hierarchy</span><span
class="cmr-12">_build</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.4 </span><a
href="userhtmlsu13.html#x23-220006.4"><span
class="cmr-12">Method smoothers</span><span
class="cmr-12">_build</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.5 </span><a
href="userhtmlsu14.html#x24-230006.5"><span
class="cmr-12">Method build</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.6 </span><a
href="userhtmlsu15.html#x25-240006.6"><span
class="cmr-12">Method apply</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.7 </span><a
href="userhtmlsu16.html#x26-250006.7"><span
class="cmr-12">Method free</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.8 </span><a
href="userhtmlsu17.html#x27-260006.8"><span
class="cmr-12">Method descr</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">6.9 </span><a
href="userhtmlsu18.html#x28-270006.9"><span
class="cmr-12">Auxiliary Methods</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span
class="cmr-12">6.9.1 </span><a
href="userhtmlsu18.html#x28-280006.9.1"><span
class="cmr-12">Method: dump</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span
class="cmr-12">6.9.2 </span><a
href="userhtmlsu18.html#x28-290006.9.2"><span
class="cmr-12">Method: clone</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span
class="cmr-12">6.9.3 </span><a
href="userhtmlsu18.html#x28-300006.9.3"><span
class="cmr-12">Method: sizeof</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span
class="cmr-12">6.9.4 </span><a
href="userhtmlsu18.html#x28-310006.9.4"><span
class="cmr-12">Method: allocate</span><span
class="cmr-12">_wrk</span></a></span>
<br /> <span
class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span
class="cmr-12">6.9.5 </span><a
href="userhtmlsu18.html#x28-320006.9.5"><span
class="cmr-12">Method: free</span><span
class="cmr-12">_wrk</span></a></span>
</div>
<!--l. 4--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlse7.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse5.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse5.html#tailuserhtmlse5.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse6.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtml.html#userhtmlse6.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 4--><p class="indent" > <a
id="tailuserhtmlse6.html"></a>
</body></html>

@ -0,0 +1,229 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>Adding new smoother and solver objects to MLD2P4</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 4--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlse8.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse6.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse6.html#tailuserhtmlse6.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlse7.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtml.html#userhtmlse7.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h3 class="sectionHead"><span class="titlemark"><span
class="cmr-12">7 </span></span> <a
id="x29-330007"></a><span
class="cmr-12">Adding new smoother and solver objects to MLD2P4</span></h3>
<!--l. 6--><p class="noindent" ><span
class="cmr-12">Developers can add completely new smoother and/or solver classes derived from the</span>
<span
class="cmr-12">base objects in the library (see Remark</span><span
class="cmr-12">&#x00A0;2 in Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlsu11.html#x21-200006.2"><span
class="cmr-12">6.2</span><!--tex4ht:ref: sec:precset --></a><span
class="cmr-12">), without recompiling the</span>
<span
class="cmr-12">library itself.</span>
<!--l. 10--><p class="indent" > <span
class="cmr-12">To do so, it is necessary first to select the base type to be extended. In our</span>
<span
class="cmr-12">experience, it is quite likely that the new application needs only the definition of a</span>
<span
class="cmr-12">&#8220;solver&#8221; object, which is almost always acting only on the local part of the distributed</span>
<span
class="cmr-12">matrix. The parallel actions required to connect the various solver objects are most</span>
<span
class="cmr-12">often already provided by the block-Jacobi or the additive Schwarz smoothers. To</span>
<span
class="cmr-12">define a new solver, the developer will then have to define its components and</span>
<span
class="cmr-12">methods, perhaps taking one of the predefined solvers as a starting point, if</span>
<span
class="cmr-12">possible.</span>
<!--l. 20--><p class="indent" > <span
class="cmr-12">Once the new smoother/solver class has been developed, to use it in the context of</span>
<span
class="cmr-12">the multilevel preconditioners it is necessary to:</span>
<ul class="itemize1">
<li class="itemize"><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
class="cmr-12">routine as in the following:</span>
<div class="center"
>
<!--l. 26--><p class="noindent" >
<!--l. 27--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;p%set(smoother,info</span><span
class="cmtt-12">&#x00A0;[,ilev,ilmax,pos])</span></span></span><br />
<span class="obeylines-h"><span class="verb"><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;p%set(solver,info</span><span
class="cmtt-12">&#x00A0;[,ilev,ilmax,pos])</span></span></span></div>
</li>
<li class="itemize"><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, and</span>
<span
class="cmr-12">acts as a </span><span
class="cmti-12">mold </span><span
class="cmr-12">to which the preconditioner will conform, even though the MLD2P4</span>
<span
class="cmr-12">library has not been modified to account for this new 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">routine; if the</span>
<span
class="cmr-12">library code does not recognize a keyword, it passes it down the composition hierarchy</span>
<span
class="cmr-12">(levels containing smoothers containing in turn solvers), so that it can be eventually</span>
<span
class="cmr-12">caught by the new solver. By the same token, any keyword/value pair that does not</span>
<span
class="cmr-12">pertain to a given smoother should be passed down to the contained solver, and</span>
<span
class="cmr-12">any keyword/value pair that does not pertain to a given solver is by default</span>
<span
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
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>
<span
class="cmr-12">specifics of this case, it is possible to reuse the basic structure of the ILU solver, with</span>
<span
class="cmr-12">its L/D/U components and the methods needed to apply the solver; only a few</span>
<span
class="cmr-12">methods, such as the description and most importantly the build, need to be</span>
<span
class="cmr-12">ovverridden (rewritten).</span>
<!--l. 55--><p class="indent" > <span
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-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:wrap; text-align:left;" id="TBL-21-1-1"
class="td11"><!--l. 58--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">smoother</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-21-1-2"
class="td11"><!--l. 58--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">class(mld_x_base_smoother_type)</span></span></span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-21-2-"><td style="white-space:wrap; text-align:left;" id="TBL-21-2-1"
class="td11"><!--l. 59--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-21-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>
</tr><tr
style="vertical-align:baseline;" id="TBL-21-3-"><td style="white-space:wrap; text-align:left;" id="TBL-21-3-1"
class="td11"><!--l. 61--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">solver</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-21-3-2"
class="td11"><!--l. 61--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">class(mld_x_base_solver_type)</span></span></span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-21-4-"><td style="white-space:wrap; text-align:left;" id="TBL-21-4-1"
class="td11"><!--l. 62--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-21-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">&#x00A0;</span><a
href="userhtmlsu11.html#x21-200006.2"><span
class="cmr-12">6.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">mld_d_tlu_solver_type</span></span></span><span
class="cmr-12">, and we</span>
<span
class="cmr-12">pass it as follows:</span>
<div class="verbatim" id="verbatim-10">
&#x00A0;<br />&#x00A0;&#x00A0;!&#x00A0;sparse&#x00A0;matrix&#x00A0;and&#x00A0;preconditioner
&#x00A0;<br />&#x00A0;&#x00A0;type(psb_dspmat_type)&#x00A0;::&#x00A0;a
&#x00A0;<br />&#x00A0;&#x00A0;type(mld_dprec_type)&#x00A0;&#x00A0;::&#x00A0;prec
&#x00A0;<br />&#x00A0;&#x00A0;type(mld_d_tlu_solver_type)&#x00A0;::&#x00A0;tlusv
&#x00A0;<br />
&#x00A0;<br />......
&#x00A0;<br />&#x00A0;&#x00A0;!
&#x00A0;<br />&#x00A0;&#x00A0;!&#x00A0;&#x00A0;prepare&#x00A0;the&#x00A0;preconditioner:&#x00A0;an&#x00A0;ML&#x00A0;with&#x00A0;defaults,&#x00A0;but&#x00A0;with&#x00A0;TLU&#x00A0;solver&#x00A0;at
&#x00A0;<br />&#x00A0;&#x00A0;!&#x00A0;&#x00A0;intermediate&#x00A0;levels.&#x00A0;All&#x00A0;other&#x00A0;parameters&#x00A0;are&#x00A0;at&#x00A0;default&#x00A0;values.
&#x00A0;<br />&#x00A0;&#x00A0;!
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;prec%init(&#8217;ML&#8217;,&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;info)
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;prec%hierarchy_build(a,desc_a,info)
&#x00A0;<br />&#x00A0;&#x00A0;nlv&#x00A0;=&#x00A0;prec%get_nlevs()
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;prec%set(tlusv,&#x00A0;&#x00A0;&#x00A0;info,ilev=1,ilmax=max(1,nlv-1))
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;prec%smoothers_build(a,desc_a,info)
&#x00A0;<br />
</div>
<!--l. 88--><p class="nopar" >
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlse8.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse6.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse6.html#tailuserhtmlse6.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse7.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtml.html#userhtmlse7.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 1--><p class="indent" > <a
id="tailuserhtmlse7.html"></a>
</body></html>

@ -0,0 +1,89 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>Error Handling</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlse9.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse7.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse7.html#tailuserhtmlse7.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlse8.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtml.html#userhtmlse8.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h3 class="sectionHead"><span class="titlemark"><span
class="cmr-12">8 </span></span> <a
id="x30-340008"></a><span
class="cmr-12">Error Handling</span></h3>
<!--l. 5--><p class="noindent" ><span
class="cmr-12">The error handling in MLD2P4 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">; 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>
<span
class="cmr-12">routine. This routine will then decide, according to the user preferences, whether</span>
<span
class="cmr-12">the error should be handled by terminating the program or by returning the</span>
<span
class="cmr-12">error condition to the user code, which will then take action, and whether</span>
<span
class="cmr-12">an error message should be printed. These options may be set by using the</span>
<span
class="cmr-12">PSBLAS error handling routines; for further details see the PSBLAS User&#8217;s Guide</span>
<span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XPSBLASGUIDE"><span
class="cmr-12">13</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span>
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlse9.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse7.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse7.html#tailuserhtmlse7.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse8.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtml.html#userhtmlse8.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 1--><p class="indent" > <a
id="tailuserhtmlse8.html"></a>
</body></html>

@ -0,0 +1,111 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>License</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlli4.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse8.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse8.html#tailuserhtmlse8.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlse9.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtml.html#userhtmlse9.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h3 class="sectionHead"><span class="titlemark"><span
class="cmr-12">A </span></span> <a
id="x31-35000A"></a><span
class="cmr-12">License</span></h3>
<!--l. 5--><p class="noindent" ><span
class="cmr-12">The MLD2P4 is freely distributable under the following copyright terms:</span>
<div class="verbatim" id="verbatim-11">
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;MLD2P4&#x00A0;&#x00A0;version&#x00A0;2.1
&#x00A0;<br />&#x00A0;&#x00A0;MultiLevel&#x00A0;Domain&#x00A0;Decomposition&#x00A0;Parallel&#x00A0;Preconditioners&#x00A0;Package
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;based&#x00A0;on&#x00A0;PSBLAS&#x00A0;(Parallel&#x00A0;Sparse&#x00A0;BLAS&#x00A0;version&#x00A0;3.5)
&#x00A0;<br />
&#x00A0;<br />&#x00A0;&#x00A0;(C)&#x00A0;Copyright&#x00A0;2008,&#x00A0;2010,&#x00A0;2012,&#x00A0;2015,&#x00A0;2017
&#x00A0;<br />
&#x00A0;<br />&#x00A0;&#x00A0;Salvatore&#x00A0;Filippone&#x00A0;&#x00A0;&#x00A0;&#x00A0;Cranfield&#x00A0;University,&#x00A0;Cranfield,&#x00A0;UK
&#x00A0;<br />&#x00A0;&#x00A0;Pasqua&#x00A0;D&#8217;Ambra&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;IAC-CNR,&#x00A0;Naples,&#x00A0;IT
&#x00A0;<br />&#x00A0;&#x00A0;Daniela&#x00A0;di&#x00A0;Serafino&#x00A0;&#x00A0;&#x00A0;&#x00A0;University&#x00A0;of&#x00A0;Campania&#x00A0;L.&#x00A0;Vanvitelli,&#x00A0;Caserta,&#x00A0;IT
&#x00A0;<br />
&#x00A0;<br />&#x00A0;&#x00A0;Redistribution&#x00A0;and&#x00A0;use&#x00A0;in&#x00A0;source&#x00A0;and&#x00A0;binary&#x00A0;forms,&#x00A0;with&#x00A0;or&#x00A0;without
&#x00A0;<br />&#x00A0;&#x00A0;modification,&#x00A0;are&#x00A0;permitted&#x00A0;provided&#x00A0;that&#x00A0;the&#x00A0;following&#x00A0;conditions
&#x00A0;<br />&#x00A0;&#x00A0;are&#x00A0;met:
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;1.&#x00A0;Redistributions&#x00A0;of&#x00A0;source&#x00A0;code&#x00A0;must&#x00A0;retain&#x00A0;the&#x00A0;above&#x00A0;copyright
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;notice,&#x00A0;this&#x00A0;list&#x00A0;of&#x00A0;conditions&#x00A0;and&#x00A0;the&#x00A0;following&#x00A0;disclaimer.
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;2.&#x00A0;Redistributions&#x00A0;in&#x00A0;binary&#x00A0;form&#x00A0;must&#x00A0;reproduce&#x00A0;the&#x00A0;above&#x00A0;copyright
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;notice,&#x00A0;this&#x00A0;list&#x00A0;of&#x00A0;conditions,&#x00A0;and&#x00A0;the&#x00A0;following&#x00A0;disclaimer&#x00A0;in&#x00A0;the
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;documentation&#x00A0;and/or&#x00A0;other&#x00A0;materials&#x00A0;provided&#x00A0;with&#x00A0;the&#x00A0;distribution.
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;3.&#x00A0;The&#x00A0;name&#x00A0;of&#x00A0;the&#x00A0;MLD2P4&#x00A0;group&#x00A0;or&#x00A0;the&#x00A0;names&#x00A0;of&#x00A0;its&#x00A0;contributors&#x00A0;may
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;not&#x00A0;be&#x00A0;used&#x00A0;to&#x00A0;endorse&#x00A0;or&#x00A0;promote&#x00A0;products&#x00A0;derived&#x00A0;from&#x00A0;this
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;software&#x00A0;without&#x00A0;specific&#x00A0;written&#x00A0;permission.
&#x00A0;<br />
&#x00A0;<br />&#x00A0;&#x00A0;THIS&#x00A0;SOFTWARE&#x00A0;IS&#x00A0;PROVIDED&#x00A0;BY&#x00A0;THE&#x00A0;COPYRIGHT&#x00A0;HOLDERS&#x00A0;AND&#x00A0;CONTRIBUTORS
&#x00A0;<br />&#x00A0;&#x00A0;&#8216;&#8216;AS&#x00A0;IS&#8217;&#8217;&#x00A0;AND&#x00A0;ANY&#x00A0;EXPRESS&#x00A0;OR&#x00A0;IMPLIED&#x00A0;WARRANTIES,&#x00A0;INCLUDING,&#x00A0;BUT&#x00A0;NOT&#x00A0;LIMITED
&#x00A0;<br />&#x00A0;&#x00A0;TO,&#x00A0;THE&#x00A0;IMPLIED&#x00A0;WARRANTIES&#x00A0;OF&#x00A0;MERCHANTABILITY&#x00A0;AND&#x00A0;FITNESS&#x00A0;FOR&#x00A0;A&#x00A0;PARTICULAR
&#x00A0;<br />&#x00A0;&#x00A0;PURPOSE&#x00A0;ARE&#x00A0;DISCLAIMED.&#x00A0;IN&#x00A0;NO&#x00A0;EVENT&#x00A0;SHALL&#x00A0;THE&#x00A0;MLD2P4&#x00A0;GROUP&#x00A0;OR&#x00A0;ITS&#x00A0;CONTRIBUTORS
&#x00A0;<br />&#x00A0;&#x00A0;BE&#x00A0;LIABLE&#x00A0;FOR&#x00A0;ANY&#x00A0;DIRECT,&#x00A0;INDIRECT,&#x00A0;INCIDENTAL,&#x00A0;SPECIAL,&#x00A0;EXEMPLARY,&#x00A0;OR
&#x00A0;<br />&#x00A0;&#x00A0;CONSEQUENTIAL&#x00A0;DAMAGES&#x00A0;(INCLUDING,&#x00A0;BUT&#x00A0;NOT&#x00A0;LIMITED&#x00A0;TO,&#x00A0;PROCUREMENT&#x00A0;OF
&#x00A0;<br />&#x00A0;&#x00A0;SUBSTITUTE&#x00A0;GOODS&#x00A0;OR&#x00A0;SERVICES;&#x00A0;LOSS&#x00A0;OF&#x00A0;USE,&#x00A0;DATA,&#x00A0;OR&#x00A0;PROFITS;&#x00A0;OR&#x00A0;BUSINESS
&#x00A0;<br />&#x00A0;&#x00A0;INTERRUPTION)&#x00A0;HOWEVER&#x00A0;CAUSED&#x00A0;AND&#x00A0;ON&#x00A0;ANY&#x00A0;THEORY&#x00A0;OF&#x00A0;LIABILITY,&#x00A0;WHETHER&#x00A0;IN
&#x00A0;<br />&#x00A0;&#x00A0;CONTRACT,&#x00A0;STRICT&#x00A0;LIABILITY,&#x00A0;OR&#x00A0;TORT&#x00A0;(INCLUDING&#x00A0;NEGLIGENCE&#x00A0;OR&#x00A0;OTHERWISE)
&#x00A0;<br />&#x00A0;&#x00A0;ARISING&#x00A0;IN&#x00A0;ANY&#x00A0;WAY&#x00A0;OUT&#x00A0;OF&#x00A0;THE&#x00A0;USE&#x00A0;OF&#x00A0;THIS&#x00A0;SOFTWARE,&#x00A0;EVEN&#x00A0;IF&#x00A0;ADVISED&#x00A0;OF&#x00A0;THE
&#x00A0;<br />&#x00A0;&#x00A0;POSSIBILITY&#x00A0;OF&#x00A0;SUCH&#x00A0;DAMAGE.
&#x00A0;<br />
</div>
<!--l. 43--><p class="nopar" >
<!--l. 141--><p class="indent" >
<!--l. 2--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlli4.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse8.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse8.html#tailuserhtmlse8.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse9.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtml.html#userhtmlse9.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 2--><p class="indent" > <a
id="tailuserhtmlse9.html"></a>
</body></html>

@ -0,0 +1,142 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>Prerequisites</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 28--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu2.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlsu1.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse3.html#userhtmlsu1.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">3.1 </span></span> <a
id="x8-70003.1"></a><span
class="cmr-12">Prerequisites</span></h4>
<!--l. 30--><p class="noindent" ><span
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="cmr-12">[</span><a
href="userhtmlli4.html#Xblas3"><span
class="cmr-12">11</span></a><span
class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlli4.html#Xblas2"><span
class="cmr-12">12</span></a><span
class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlli4.html#Xblas1"><span
class="cmr-12">18</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
href="math-atlas.sourceforge.net" class="url" ><span
class="cmtt-12">math-atlas.sourceforge.net</span></a><span
class="cmr-12">) may be employed. The reference BLAS</span>
<span
class="cmr-12">from Netlib (</span><a
href="www.netlib.org/blas" class="url" ><span
class="cmtt-12">www.netlib.org/blas</span></a><span
class="cmr-12">) are meant to define the standard</span>
<span
class="cmr-12">behaviour of the BLAS interface, so they are not optimized for any</span>
<span
class="cmr-12">particular plaftorm, and should only be used as a last resort. Note that</span>
<span
class="cmr-12">BLAS computations form a relatively small part of the MLD2P4/PSBLAS</span>
<span
class="cmr-12">computations; they are however critical when using preconditioners based</span>
<span
class="cmr-12">on MUMPS, UMFPACK or SuperLU third party libraries. Note that</span>
<span
class="cmr-12">UMFPACK requires a full LAPACK library; our experience is that</span>
<span
class="cmr-12">configuring ATLAS for building full LAPACK does not work in the</span>
<span
class="cmr-12">correct way. Our advice is first to download the LAPACK tarfile from</span>
<a
href="www.netlib.org/lapack" class="url" ><span
class="cmtt-12">www.netlib.org/lapack</span></a> <span
class="cmr-12">and install it independently of ATLAS. In this</span>
<span
class="cmr-12">case, you need to modify the OPTS and NOOPT definitions for including</span>
<span
class="cmr-12">-fPIC compilation option in the make.inc file of the LAPACK library.</span>
</dd><dt class="description">
<span
class="cmbx-12">MPI</span> </dt><dd
class="description"><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XMPI2"><span
class="cmr-12">17</span></a><span
class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlli4.html#XMPI1"><span
class="cmr-12">23</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
class="cmr-12">systems.</span>
</dd><dt class="description">
<span
class="cmbx-12">PSBLAS</span> </dt><dd
class="description"><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XPSBLASGUIDE"><span
class="cmr-12">13</span></a><span
class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlli4.html#Xpsblas_00"><span
class="cmr-12">15</span></a><span
class="cmr-12">]</span></span> <span
class="cmr-12">Parallel Sparse BLAS (PSBLAS) is available from</span>
<a
href="github.com/sfilippone/psblas3" class="url" ><span
class="cmtt-12">github.com/sfilippone/psblas3</span></a><span
class="cmr-12">; version 3.5.0 (or later) is required.</span>
<span
class="cmr-12">Indeed, all the prerequisites listed so far are also prerequisites of PSBLAS.</span></dd></dl>
<!--l. 56--><p class="noindent" ><span
class="cmr-12">Please note that the four previous libraries must have Fortran interfaces compatible with</span>
<span
class="cmr-12">MLD2P4; usually this means that they should all be built with the same compiler as</span>
<span
class="cmr-12">MLD2P4.</span>
<!--l. 61--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu2.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu1.html" ><span
class="cmr-12">front</span></a><span
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. 61--><p class="indent" > <a
id="tailuserhtmlsu1.html"></a>
</body></html>

@ -0,0 +1,132 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>Method init</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 43--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu11.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlsu10.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse6.html#userhtmlsu10.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">6.1 </span></span> <a
id="x20-190006.1"></a><span
class="cmr-12">Method init</span></h4>
<div class="center"
>
<!--l. 45--><p class="noindent" >
<!--l. 46--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;p%init(icontx,ptype,info)</span></span></span></div>
<!--l. 49--><p class="noindent" ><span
class="cmr-12">This method allocates and initializes the preconditioner </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">p</span></span></span><span
class="cmr-12">, according to the</span>
<span
class="cmr-12">preconditioner type chosen by the user.</span>
<!--l. 53--><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:wrap; text-align:left;" id="TBL-2-1-1"
class="td11"><!--l. 60--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">icontxt</span></span></span> </td> <td style="white-space:wrap; text-align:left;" id="TBL-2-1-2"
class="td11"><!--l. 60--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">integer,</span><span
class="cmtt-12">&#x00A0;intent(in)</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-2-"><td style="white-space:wrap; text-align:left;" id="TBL-2-2-1"
class="td11"><!--l. 61--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-2-2-2"
class="td11"><!--l. 61--><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:wrap; text-align:left;" id="TBL-2-3-1"
class="td11"><!--l. 62--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">ptype</span></span></span> </td> <td style="white-space:wrap; text-align:left;" id="TBL-2-3-2"
class="td11"><!--l. 62--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">character(len=*),</span><span
class="cmtt-12">&#x00A0;intent(in)</span></span></span><span
class="cmr-12">.</span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-4-"><td style="white-space:wrap; text-align:left;" id="TBL-2-4-1"
class="td11"><!--l. 63--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-2-4-2"
class="td11"><!--l. 63--><p class="noindent" ><span
class="cmr-12">The type of preconditioner. Its values are specified in Table</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse5.html#x17-160151"><span
class="cmr-12">1</span><!--tex4ht:ref: tab:precinit --></a><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-5-"><td style="white-space:wrap; text-align:left;" id="TBL-2-5-1"
class="td11"><!--l. 65--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-2-5-2"
class="td11"><!--l. 65--><p class="noindent" ><span
class="cmr-12">Note that the strings are case insensitive.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-6-"><td style="white-space:wrap; text-align:left;" id="TBL-2-6-1"
class="td11"><!--l. 66--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">info</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-2-6-2"
class="td11"><!--l. 66--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">integer,</span><span
class="cmtt-12">&#x00A0;intent(out)</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-7-"><td style="white-space:wrap; text-align:left;" id="TBL-2-7-1"
class="td11"><!--l. 67--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-2-7-2"
class="td11"><!--l. 67--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse8.html#x30-340008"><span
class="cmr-12">8</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-8-"><td style="white-space:wrap; text-align:left;" id="TBL-2-8-1"
class="td11"> </td> </tr></table></div>
<!--l. 77--><p class="indent" > <span
class="cmr-12">For compatibility with the previous versions of MLD2P4, this method can be also</span>
<span
class="cmr-12">invoked as follows:</span>
<div class="center"
>
<!--l. 80--><p class="noindent" >
<!--l. 81--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;mld_precinit(p,ptype,info)</span></span></span></div>
<!--l. 87--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu11.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu10.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse6.html#userhtmlsu10.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 87--><p class="indent" > <a
id="tailuserhtmlsu10.html"></a>
</body></html>

File diff suppressed because it is too large Load Diff

@ -0,0 +1,155 @@
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 662--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu13.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu11.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu11.html#tailuserhtmlsu11.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlsu12.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse6.html#userhtmlsu12.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">6.3 </span></span> <a
id="x22-210006.3"></a><span
class="cmr-12">Method hierarchy</span><span
class="cmr-12">_build</span></h4>
<div class="center"
>
<!--l. 664--><p class="noindent" >
<!--l. 665--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;p%hierarchy_build(a,desc_a,info)</span></span></span><br />
</div>
<!--l. 668--><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="obeylines-h"><span class="verb"><span
class="cmtt-12">p</span></span></span><span
class="cmr-12">, according to the requirements made by the user</span>
<span
class="cmr-12">through the methods </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">init</span></span></span> <span
class="cmr-12">and </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">set</span></span></span><span
class="cmr-12">.</span>
<!--l. 673--><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:wrap; text-align:left;" id="TBL-11-1-1"
class="td11"><!--l. 676--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">a</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-11-1-2"
class="td11"><!--l. 676--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">type(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
class="cmtt-12">&#x00A0;intent(in)</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-11-2-"><td style="white-space:wrap; text-align:left;" id="TBL-11-2-1"
class="td11"><!--l. 677--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-11-2-2"
class="td11"><!--l. 677--><p class="noindent" ><span
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
<span
class="cmr-12">to be preconditioned. Note that </span><span
class="cmti-12">x </span><span
class="cmr-12">must be chosen according to</span>
<span
class="cmr-12">the real/complex, single/double precision version of MLD2P4 under</span>
<span
class="cmr-12">use. See the PSBLAS User&#8217;s Guide for details </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XPSBLASGUIDE"><span
class="cmr-12">13</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-11-3-"><td style="white-space:wrap; text-align:left;" id="TBL-11-3-1"
class="td11"><!--l. 682--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">desc_a</span></span></span></td><td style="white-space:wrap; text-align:left;" id="TBL-11-3-2"
class="td11"><!--l. 682--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">type(psb_desc_type),</span><span
class="cmtt-12">&#x00A0;intent(in)</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-11-4-"><td style="white-space:wrap; text-align:left;" id="TBL-11-4-1"
class="td11"><!--l. 683--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-11-4-2"
class="td11"><!--l. 683--><p class="noindent" ><span
class="cmr-12">The communication descriptor of </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">a</span></span></span><span
class="cmr-12">. See the PSBLAS User&#8217;s Guide</span>
<span
class="cmr-12">for details </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XPSBLASGUIDE"><span
class="cmr-12">13</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-11-5-"><td style="white-space:wrap; text-align:left;" id="TBL-11-5-1"
class="td11"><!--l. 688--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">info</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-11-5-2"
class="td11"><!--l. 688--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">integer,</span><span
class="cmtt-12">&#x00A0;intent(out)</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-11-6-"><td style="white-space:wrap; text-align:left;" id="TBL-11-6-1"
class="td11"><!--l. 689--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-11-6-2"
class="td11"><!--l. 689--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse8.html#x30-340008"><span
class="cmr-12">8</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-11-7-"><td style="white-space:wrap; text-align:left;" id="TBL-11-7-1"
class="td11"> </td> </tr></table></div>
<!--l. 695--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu13.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu11.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu11.html#tailuserhtmlsu11.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu12.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse6.html#userhtmlsu12.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 695--><p class="indent" > <a
id="tailuserhtmlsu12.html"></a>
</body></html>

@ -0,0 +1,220 @@
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 695--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu14.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu12.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu12.html#tailuserhtmlsu12.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlsu13.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse6.html#userhtmlsu13.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">6.4 </span></span> <a
id="x23-220006.4"></a><span
class="cmr-12">Method smoothers</span><span
class="cmr-12">_build</span></h4>
<div class="center"
>
<!--l. 698--><p class="noindent" >
<!--l. 699--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;p%smoothers_build(a,desc_a,p,info[,amold,vmold,imold])</span></span></span><br />
</div>
<!--l. 702--><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="obeylines-h"><span class="verb"><span
class="cmtt-12">p</span></span></span><span
class="cmr-12">, according to the requirements made by the user through the methods</span>
<span class="obeylines-h"><span class="verb"><span
class="cmtt-12">init</span></span></span> <span
class="cmr-12">and </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">set</span></span></span><span
class="cmr-12">, and based on the aggregation hierarchy produced by a previous call to</span>
<span class="obeylines-h"><span class="verb"><span
class="cmtt-12">hierarchy_build</span></span></span> <span
class="cmr-12">(see Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlsu12.html#x22-210006.3"><span
class="cmr-12">6.3</span><!--tex4ht:ref: sec:hier_bld --></a><span
class="cmr-12">).</span>
<!--l. 709--><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:wrap; text-align:left;" id="TBL-12-1-1"
class="td11"><!--l. 712--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">a</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-12-1-2"
class="td11"><!--l. 712--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">type(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
class="cmtt-12">&#x00A0;intent(in)</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-2-"><td style="white-space:wrap; text-align:left;" id="TBL-12-2-1"
class="td11"><!--l. 713--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-12-2-2"
class="td11"><!--l. 713--><p class="noindent" ><span
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
<span
class="cmr-12">to be preconditioned. Note that </span><span
class="cmti-12">x </span><span
class="cmr-12">must be chosen according to</span>
<span
class="cmr-12">the real/complex, single/double precision version of MLD2P4 under</span>
<span
class="cmr-12">use. See the PSBLAS User&#8217;s Guide for details </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XPSBLASGUIDE"><span
class="cmr-12">13</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-3-"><td style="white-space:wrap; text-align:left;" id="TBL-12-3-1"
class="td11"><!--l. 717--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">desc_a</span></span></span></td><td style="white-space:wrap; text-align:left;" id="TBL-12-3-2"
class="td11"><!--l. 717--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">type(psb_desc_type),</span><span
class="cmtt-12">&#x00A0;intent(in)</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-4-"><td style="white-space:wrap; text-align:left;" id="TBL-12-4-1"
class="td11"><!--l. 718--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-12-4-2"
class="td11"><!--l. 718--><p class="noindent" ><span
class="cmr-12">The communication descriptor of </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">a</span></span></span><span
class="cmr-12">. See the PSBLAS User&#8217;s Guide</span>
<span
class="cmr-12">for details </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XPSBLASGUIDE"><span
class="cmr-12">13</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-5-"><td style="white-space:wrap; text-align:left;" id="TBL-12-5-1"
class="td11"><!--l. 723--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">info</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-12-5-2"
class="td11"><!--l. 723--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">integer,</span><span
class="cmtt-12">&#x00A0;intent(out)</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-6-"><td style="white-space:wrap; text-align:left;" id="TBL-12-6-1"
class="td11"><!--l. 724--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-12-6-2"
class="td11"><!--l. 724--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse8.html#x30-340008"><span
class="cmr-12">8</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-7-"><td style="white-space:wrap; text-align:left;" id="TBL-12-7-1"
class="td11"><!--l. 725--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">amold</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-12-7-2"
class="td11"><!--l. 725--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">class(psb_</span></span></span><span
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">_base_sparse_mat),</span><span
class="cmtt-12">&#x00A0;intent(in),</span><span
class="cmtt-12">&#x00A0;optional</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-8-"><td style="white-space:wrap; text-align:left;" id="TBL-12-8-1"
class="td11"><!--l. 726--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-12-8-2"
class="td11"><!--l. 726--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal matrix components; this</span>
<span
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
<span
class="cmr-12">processes. See the PSBLAS User&#8217;s Guide for details </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XPSBLASGUIDE"><span
class="cmr-12">13</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-9-"><td style="white-space:wrap; text-align:left;" id="TBL-12-9-1"
class="td11"><!--l. 730--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">vmold</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-12-9-2"
class="td11"><!--l. 730--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">class(psb_</span></span></span><span
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">_base_vect_type),</span><span
class="cmtt-12">&#x00A0;intent(in),</span><span
class="cmtt-12">&#x00A0;optional</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-10-"><td style="white-space:wrap; text-align:left;" id="TBL-12-10-1"
class="td11"><!--l. 731--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-12-10-2"
class="td11"><!--l. 731--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal vector components; this</span>
<span
class="cmr-12">allows e.g. running on GPUs.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-11-"><td style="white-space:wrap; text-align:left;" id="TBL-12-11-1"
class="td11"><!--l. 733--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">imold</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-12-11-2"
class="td11"><!--l. 733--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">class(psb_i_base_vect_type),</span><span
class="cmtt-12">&#x00A0;intent(in),</span><span
class="cmtt-12">&#x00A0;optional</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-12-"><td style="white-space:wrap; text-align:left;" id="TBL-12-12-1"
class="td11"><!--l. 734--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-12-12-2"
class="td11"><!--l. 734--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal integer vector components;</span>
<span
class="cmr-12">this allows e.g. running on GPUs.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-13-"><td style="white-space:wrap; text-align:left;" id="TBL-12-13-1"
class="td11"> </td> </tr></table></div>
<!--l. 740--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu14.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu12.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu12.html#tailuserhtmlsu12.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu13.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse6.html#userhtmlsu13.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 740--><p class="indent" > <a
id="tailuserhtmlsu13.html"></a>
</body></html>

@ -0,0 +1,245 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>Method build</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 740--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu15.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu13.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu13.html#tailuserhtmlsu13.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlsu14.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse6.html#userhtmlsu14.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">6.5 </span></span> <a
id="x24-230006.5"></a><span
class="cmr-12">Method build</span></h4>
<div class="center"
>
<!--l. 742--><p class="noindent" >
<!--l. 743--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;p%build(a,desc_a,info[,amold,vmold,imold])</span></span></span><br />
</div>
<!--l. 746--><p class="noindent" ><span
class="cmr-12">This method builds the preconditioner </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">p</span></span></span> <span
class="cmr-12">according to the requirements made by the</span>
<span
class="cmr-12">user through the methods </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">init</span></span></span> <span
class="cmr-12">and </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">set</span></span></span> <span
class="cmr-12">(see Sections</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlsu12.html#x22-210006.3"><span
class="cmr-12">6.3</span><!--tex4ht:ref: sec:hier_bld --></a> <span
class="cmr-12">and</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlsu13.html#x23-220006.4"><span
class="cmr-12">6.4</span><!--tex4ht:ref: sec:smooth_bld --></a> <span
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="obeylines-h"><span class="verb"><span
class="cmtt-12">hierarchy_build</span></span></span> <span
class="cmr-12">and</span>
<span class="obeylines-h"><span class="verb"><span
class="cmtt-12">smoothers_build</span></span></span><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. 756--><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:wrap; text-align:left;" id="TBL-13-1-1"
class="td11"><!--l. 759--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">a</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-13-1-2"
class="td11"><!--l. 759--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">type(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
class="cmtt-12">&#x00A0;intent(in)</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-2-"><td style="white-space:wrap; text-align:left;" id="TBL-13-2-1"
class="td11"><!--l. 760--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-13-2-2"
class="td11"><!--l. 760--><p class="noindent" ><span
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
<span
class="cmr-12">to be preconditioned. Note that </span><span
class="cmti-12">x </span><span
class="cmr-12">must be chosen according to</span>
<span
class="cmr-12">the real/complex, single/double precision version of MLD2P4 under</span>
<span
class="cmr-12">use. See the PSBLAS User&#8217;s Guide for details </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XPSBLASGUIDE"><span
class="cmr-12">13</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-3-"><td style="white-space:wrap; text-align:left;" id="TBL-13-3-1"
class="td11"><!--l. 764--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">desc_a</span></span></span></td><td style="white-space:wrap; text-align:left;" id="TBL-13-3-2"
class="td11"><!--l. 764--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">type(psb_desc_type),</span><span
class="cmtt-12">&#x00A0;intent(in)</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-4-"><td style="white-space:wrap; text-align:left;" id="TBL-13-4-1"
class="td11"><!--l. 765--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-13-4-2"
class="td11"><!--l. 765--><p class="noindent" ><span
class="cmr-12">The communication descriptor of </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">a</span></span></span><span
class="cmr-12">. See the PSBLAS User&#8217;s Guide</span>
<span
class="cmr-12">for details </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XPSBLASGUIDE"><span
class="cmr-12">13</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-5-"><td style="white-space:wrap; text-align:left;" id="TBL-13-5-1"
class="td11"><!--l. 770--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">info</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-13-5-2"
class="td11"><!--l. 770--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">integer,</span><span
class="cmtt-12">&#x00A0;intent(out)</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-6-"><td style="white-space:wrap; text-align:left;" id="TBL-13-6-1"
class="td11"><!--l. 771--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-13-6-2"
class="td11"><!--l. 771--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse8.html#x30-340008"><span
class="cmr-12">8</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-7-"><td style="white-space:wrap; text-align:left;" id="TBL-13-7-1"
class="td11"><!--l. 772--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">amold</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-13-7-2"
class="td11"><!--l. 772--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">class(psb_</span></span></span><span
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">_base_sparse_mat),</span><span
class="cmtt-12">&#x00A0;intent(in),</span><span
class="cmtt-12">&#x00A0;optional</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-8-"><td style="white-space:wrap; text-align:left;" id="TBL-13-8-1"
class="td11"><!--l. 773--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-13-8-2"
class="td11"><!--l. 773--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal matrix components; this</span>
<span
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
<span
class="cmr-12">processes. See the PSBLAS User&#8217;s Guide for details </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XPSBLASGUIDE"><span
class="cmr-12">13</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-9-"><td style="white-space:wrap; text-align:left;" id="TBL-13-9-1"
class="td11"><!--l. 777--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">vmold</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-13-9-2"
class="td11"><!--l. 777--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">class(psb_</span></span></span><span
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">_base_vect_type),</span><span
class="cmtt-12">&#x00A0;intent(in),</span><span
class="cmtt-12">&#x00A0;optional</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-10-"><td style="white-space:wrap; text-align:left;" id="TBL-13-10-1"
class="td11"><!--l. 778--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-13-10-2"
class="td11"><!--l. 778--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal vector components; this</span>
<span
class="cmr-12">allows e.g. running on GPUs.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-11-"><td style="white-space:wrap; text-align:left;" id="TBL-13-11-1"
class="td11"><!--l. 780--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">imold</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-13-11-2"
class="td11"><!--l. 780--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">class(psb_i_base_vect_type),</span><span
class="cmtt-12">&#x00A0;intent(in),</span><span
class="cmtt-12">&#x00A0;optional</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-12-"><td style="white-space:wrap; text-align:left;" id="TBL-13-12-1"
class="td11"><!--l. 781--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-13-12-2"
class="td11"><!--l. 781--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal integer vector components;</span>
<span
class="cmr-12">this allows e.g. running on GPUs.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-13-13-"><td style="white-space:wrap; text-align:left;" id="TBL-13-13-1"
class="td11"> </td> </tr></table></div>
<!--l. 786--><p class="indent" > <span
class="cmr-12">For compatibility with the previous versions of MLD2P4, this method can be also</span>
<span
class="cmr-12">invoked as follows:</span>
<div class="center"
>
<!--l. 789--><p class="noindent" >
<!--l. 790--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;mld_precbld(p,what,val,info[,amold,vmold,imold])</span></span></span></div>
<!--l. 793--><p class="noindent" ><span
class="cmr-12">The method can be used to build multilevel preconditioners too.</span>
<!--l. 798--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu15.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu13.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu13.html#tailuserhtmlsu13.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu14.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse6.html#userhtmlsu14.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 798--><p class="indent" > <a
id="tailuserhtmlsu14.html"></a>
</body></html>

@ -0,0 +1,306 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>Method apply</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 798--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu16.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu14.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu14.html#tailuserhtmlsu14.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlsu15.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse6.html#userhtmlsu15.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">6.6 </span></span> <a
id="x25-240006.6"></a><span
class="cmr-12">Method apply</span></h4>
<div class="center"
>
<!--l. 800--><p class="noindent" >
<!--l. 801--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;p%apply(x,y,desc_a,info</span><span
class="cmtt-12">&#x00A0;[,trans,work])</span></span></span><br />
</div>
<!--l. 804--><p class="noindent" ><span
class="cmr-12">This method computes </span><span
class="cmmi-12">y </span><span
class="cmr-12">= </span><span
class="cmmi-12">op</span><span
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">) </span><span
class="cmmi-12">x</span><span
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="obeylines-h"><span class="verb"><span
class="cmtt-12">p</span></span></span><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="obeylines-h"><span class="verb"><span
class="cmtt-12">trans</span></span></span><span
class="cmr-12">. Note that, when MLD2P4 is used with a Krylov solver from PSBLAS,</span>
<span class="obeylines-h"><span class="verb"><span
class="cmtt-12">p%apply</span></span></span> <span
class="cmr-12">is called within the PSBLAS method </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">psb_krylov</span></span></span> <span
class="cmr-12">and hence it is completely</span>
<span
class="cmr-12">transparent to the user.</span>
<!--l. 813--><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:wrap; text-align:left;" id="TBL-14-1-1"
class="td11"><!--l. 820--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">x</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-14-1-2"
class="td11"><!--l. 820--><p class="noindent" ><span
class="cmti-12">type</span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">(</span></span></span><span
class="cmti-12">kind</span><span
class="cmti-12">_parameter</span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;dimension(:),</span><span
class="cmtt-12">&#x00A0;intent(in)</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-14-2-"><td style="white-space:wrap; text-align:left;" id="TBL-14-2-1"
class="td11"><!--l. 821--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-14-2-2"
class="td11"><!--l. 821--><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
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 real/complex, single/double</span>
<span
class="cmr-12">precision version of MLD2P4 under use.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-14-3-"><td style="white-space:wrap; text-align:left;" id="TBL-14-3-1"
class="td11"><!--l. 824--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">y</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-14-3-2"
class="td11"><!--l. 824--><p class="noindent" ><span
class="cmti-12">type</span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">(</span></span></span><span
class="cmti-12">kind</span><span
class="cmti-12">_parameter</span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;dimension(:),</span><span
class="cmtt-12">&#x00A0;intent(out)</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-14-4-"><td style="white-space:wrap; text-align:left;" id="TBL-14-4-1"
class="td11"><!--l. 825--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-14-4-2"
class="td11"><!--l. 825--><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
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 real/complex, single/double</span>
<span
class="cmr-12">precision version of MLD2P4 under use.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-14-5-"><td style="white-space:wrap; text-align:left;" id="TBL-14-5-1"
class="td11"><!--l. 828--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">desc_a</span></span></span></td><td style="white-space:wrap; text-align:left;" id="TBL-14-5-2"
class="td11"><!--l. 828--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">type(psb_desc_type),</span><span
class="cmtt-12">&#x00A0;intent(in)</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-14-6-"><td style="white-space:wrap; text-align:left;" id="TBL-14-6-1"
class="td11"><!--l. 829--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-14-6-2"
class="td11"><!--l. 829--><p class="noindent" ><span
class="cmr-12">The communication descriptor associated to the matrix to be</span>
<span
class="cmr-12">preconditioned.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-14-7-"><td style="white-space:wrap; text-align:left;" id="TBL-14-7-1"
class="td11"><!--l. 831--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">info</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-14-7-2"
class="td11"><!--l. 831--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">integer,</span><span
class="cmtt-12">&#x00A0;intent(out)</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-14-8-"><td style="white-space:wrap; text-align:left;" id="TBL-14-8-1"
class="td11"><!--l. 832--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-14-8-2"
class="td11"><!--l. 832--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse8.html#x30-340008"><span
class="cmr-12">8</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-14-9-"><td style="white-space:wrap; text-align:left;" id="TBL-14-9-1"
class="td11"><!--l. 833--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">trans</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-14-9-2"
class="td11"><!--l. 833--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">character(len=1),</span><span
class="cmtt-12">&#x00A0;optional,</span><span
class="cmtt-12">&#x00A0;intent(in).</span></span></span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-14-10-"><td style="white-space:wrap; text-align:left;" id="TBL-14-10-1"
class="td11"><!--l. 834--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-14-10-2"
class="td11"><!--l. 834--><p class="noindent" ><span
class="cmr-12">If </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">trans</span></span></span> <span
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">&#8217;N&#8217;,&#8217;n&#8217;</span></span></span> <span
class="cmr-12">then </span><span
class="cmmi-12">op</span><span
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">) = </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="obeylines-h"><span class="verb"><span
class="cmtt-12">trans</span></span></span> <span
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">&#8217;T&#8217;,&#8217;t&#8217;</span></span></span>
<span
class="cmr-12">then </span><span
class="cmmi-12">op</span><span
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">) = </span><span
class="cmmi-12">B</span><sup><span
class="cmsy-8">-</span><span
class="cmmi-8">T</span> </sup> <span
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="obeylines-h"><span class="verb"><span
class="cmtt-12">trans</span></span></span> <span
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">&#8217;C&#8217;,&#8217;c&#8217;</span></span></span> <span
class="cmr-12">then</span>
<span
class="cmmi-12">op</span><span
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">) = </span><span
class="cmmi-12">B</span><sup><span
class="cmsy-8">-</span><span
class="cmmi-8">C</span></sup> <span
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>
</tr><tr
style="vertical-align:baseline;" id="TBL-14-11-"><td style="white-space:wrap; text-align:left;" id="TBL-14-11-1"
class="td11"><!--l. 838--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">work</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-14-11-2"
class="td11"><!--l. 838--><p class="noindent" ><span
class="cmti-12">type</span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">(</span></span></span><span
class="cmti-12">kind</span><span
class="cmti-12">_parameter</span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;dimension(:),</span><span
class="cmtt-12">&#x00A0;optional,</span><span
class="cmtt-12">&#x00A0;target</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-14-12-"><td style="white-space:wrap; text-align:left;" id="TBL-14-12-1"
class="td11"><!--l. 839--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-14-12-2"
class="td11"><!--l. 839--><p class="noindent" ><span
class="cmr-12">Workspace. Its size should be at least </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">4</span><span
class="cmtt-12">&#x00A0;*</span><span
class="cmtt-12">&#x00A0;psb_cd_get_local_</span></span></span>
<span class="obeylines-h"><span class="verb"><span
class="cmtt-12">cols(desc_a)</span></span></span> <span
class="cmr-12">(see the PSBLAS User&#8217;s Guide). Note that </span><span
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 real/complex,</span>
<span
class="cmr-12">single/double precision version of MLD2P4 under use.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-14-13-"><td style="white-space:wrap; text-align:left;" id="TBL-14-13-1"
class="td11"> </td> </tr></table></div>
<!--l. 846--><p class="indent" > <span
class="cmr-12">For compatibility with the previous versions of MLD2P4, this method can be also</span>
<span
class="cmr-12">invoked as follows:</span>
<div class="center"
>
<!--l. 849--><p class="noindent" >
<!--l. 850--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;mld_precaply(p,what,val,info)</span></span></span></div>
<!--l. 855--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu16.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu14.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu14.html#tailuserhtmlsu14.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu15.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse6.html#userhtmlsu15.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 855--><p class="indent" > <a
id="tailuserhtmlsu15.html"></a>
</body></html>

@ -0,0 +1,108 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>Method free</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 855--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu17.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu15.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu15.html#tailuserhtmlsu15.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlsu16.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse6.html#userhtmlsu16.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">6.7 </span></span> <a
id="x26-250006.7"></a><span
class="cmr-12">Method free</span></h4>
<div class="center"
>
<!--l. 857--><p class="noindent" >
<!--l. 858--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;p%free(p,info)</span></span></span><br />
</div>
<!--l. 861--><p class="noindent" ><span
class="cmr-12">This method deallocates the preconditioner data structure </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">p</span></span></span><span
class="cmr-12">.</span>
<!--l. 864--><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:wrap; text-align:left;" id="TBL-15-1-1"
class="td11"><!--l. 870--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">info</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-15-1-2"
class="td11"><!--l. 870--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">integer,</span><span
class="cmtt-12">&#x00A0;intent(out)</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-15-2-"><td style="white-space:wrap; text-align:left;" id="TBL-15-2-1"
class="td11"><!--l. 871--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-15-2-2"
class="td11"><!--l. 871--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse8.html#x30-340008"><span
class="cmr-12">8</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for</span>
<span
class="cmr-12">details.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-15-3-"><td style="white-space:wrap; text-align:left;" id="TBL-15-3-1"
class="td11"> </td> </tr></table></div>
<!--l. 875--><p class="indent" > <span
class="cmr-12">For compatibility with the previous versions of MLD2P4, this method can be also</span>
<span
class="cmr-12">invoked as follows:</span>
<div class="center"
>
<!--l. 878--><p class="noindent" >
<!--l. 879--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;mld_precfree(p,info)</span></span></span></div>
<!--l. 885--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu17.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu15.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu15.html#tailuserhtmlsu15.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu16.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse6.html#userhtmlsu16.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 885--><p class="indent" > <a
id="tailuserhtmlsu16.html"></a>
</body></html>

@ -0,0 +1,131 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>Method descr</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 885--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu18.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu16.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu16.html#tailuserhtmlsu16.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlsu17.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse6.html#userhtmlsu17.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">6.8 </span></span> <a
id="x27-260006.8"></a><span
class="cmr-12">Method descr</span></h4>
<div class="center"
>
<!--l. 887--><p class="noindent" >
<!--l. 888--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;p%descr(info,</span><span
class="cmtt-12">&#x00A0;[iout])</span></span></span><br />
</div>
<!--l. 891--><p class="noindent" ><span
class="cmr-12">This method prints a description of the preconditioner </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">p</span></span></span> <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="obeylines-h"><span class="verb"><span
class="cmtt-12">hierachy_build</span></span></span> <span
class="cmr-12">and </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">smoothers_build</span></span></span><span
class="cmr-12">, or </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">build</span></span></span><span
class="cmr-12">, have</span>
<span
class="cmr-12">been called.</span>
<!--l. 896--><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:wrap; text-align:left;" id="TBL-16-1-1"
class="td11"><!--l. 902--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">info</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-16-1-2"
class="td11"><!--l. 902--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">integer,</span><span
class="cmtt-12">&#x00A0;intent(out)</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-16-2-"><td style="white-space:wrap; text-align:left;" id="TBL-16-2-1"
class="td11"><!--l. 903--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-16-2-2"
class="td11"><!--l. 903--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse8.html#x30-340008"><span
class="cmr-12">8</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-16-3-"><td style="white-space:wrap; text-align:left;" id="TBL-16-3-1"
class="td11"><!--l. 904--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">iout</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-16-3-2"
class="td11"><!--l. 904--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">integer,</span><span
class="cmtt-12">&#x00A0;intent(in),</span><span
class="cmtt-12">&#x00A0;optional</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-16-4-"><td style="white-space:wrap; text-align:left;" id="TBL-16-4-1"
class="td11"><!--l. 905--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-16-4-2"
class="td11"><!--l. 905--><p class="noindent" ><span
class="cmr-12">The id of the file where the preconditioner description will be</span>
<span
class="cmr-12">printed; the default is the standard output.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-16-5-"><td style="white-space:wrap; text-align:left;" id="TBL-16-5-1"
class="td11"> </td> </tr></table></div>
<!--l. 910--><p class="indent" > <span
class="cmr-12">For compatibility with the previous versions of MLD2P4, this method can be also</span>
<span
class="cmr-12">invoked as follows:</span>
<div class="center"
>
<!--l. 913--><p class="noindent" >
<!--l. 914--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;mld_precdescr(p,info</span><span
class="cmtt-12">&#x00A0;[,iout])</span></span></span></div>
<!--l. 918--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu18.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu16.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu16.html#tailuserhtmlsu16.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu17.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse6.html#userhtmlsu17.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 918--><p class="indent" > <a
id="tailuserhtmlsu17.html"></a>
</body></html>

@ -0,0 +1,336 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>Auxiliary Methods</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 918--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu17.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu17.html#tailuserhtmlsu17.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlsu18.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse6.html#userhtmlsu18.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">6.9 </span></span> <a
id="x28-270006.9"></a><span
class="cmr-12">Auxiliary Methods</span></h4>
<!--l. 919--><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. 922--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">6.9.1 </span></span> <a
id="x28-280006.9.1"></a><span
class="cmr-12">Method: dump</span></h5>
<div class="center"
>
<!--l. 924--><p class="noindent" >
<!--l. 925--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;p%dump(info[,istart,iend,prefix,head,ac,rp,smoother,solver,global_num])</span></span></span><br />
</div>
<!--l. 928--><p class="noindent" ><span
class="cmr-12">Dump on file.</span>
<!--l. 931--><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:wrap; text-align:left;" id="TBL-17-1-1"
class="td11"><!--l. 937--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">info</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-17-1-2"
class="td11"><!--l. 937--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">integer,</span><span
class="cmtt-12">&#x00A0;intent(out)</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-17-2-"><td style="white-space:wrap; text-align:left;" id="TBL-17-2-1"
class="td11"><!--l. 938--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-17-2-2"
class="td11"><!--l. 938--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse8.html#x30-340008"><span
class="cmr-12">8</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-17-3-"><td style="white-space:wrap; text-align:left;" id="TBL-17-3-1"
class="td11"><!--l. 939--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">amold</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-17-3-2"
class="td11"><!--l. 939--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">class(psb_</span></span></span><span
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">_base_sparse_mat),</span><span
class="cmtt-12">&#x00A0;intent(in),</span><span
class="cmtt-12">&#x00A0;optional</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-17-4-"><td style="white-space:wrap; text-align:left;" id="TBL-17-4-1"
class="td11"><!--l. 940--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-17-4-2"
class="td11"><!--l. 940--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal matrix components; this</span>
<span
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
<span
class="cmr-12">processes. See the PSBLAS User&#8217;s Guide for details </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XPSBLASGUIDE"><span
class="cmr-12">13</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-17-5-"><td style="white-space:wrap; text-align:left;" id="TBL-17-5-1"
class="td11"> </td> </tr></table></div>
<!--l. 947--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">6.9.2 </span></span> <a
id="x28-290006.9.2"></a><span
class="cmr-12">Method: clone</span></h5>
<div class="center"
>
<!--l. 949--><p class="noindent" >
<!--l. 950--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;p%clone(pout,info)</span></span></span><br />
</div>
<!--l. 953--><p class="noindent" ><span
class="cmr-12">Create a (deep) copy of the preconditioner object.</span>
<!--l. 956--><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:wrap; text-align:left;" id="TBL-18-1-1"
class="td11"><!--l. 959--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">pout</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-18-1-2"
class="td11"><!--l. 959--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">type(mld_</span></span></span><span
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">prec_type),</span><span
class="cmtt-12">&#x00A0;intent(out)</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-18-2-"><td style="white-space:wrap; text-align:left;" id="TBL-18-2-1"
class="td11"><!--l. 960--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-18-2-2"
class="td11"><!--l. 960--><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 real/complex, single/double precision</span>
<span
class="cmr-12">version of MLD2P4 under use.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-18-3-"><td style="white-space:wrap; text-align:left;" id="TBL-18-3-1"
class="td11"><!--l. 963--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">info</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-18-3-2"
class="td11"><!--l. 963--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">integer,</span><span
class="cmtt-12">&#x00A0;intent(out)</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-18-4-"><td style="white-space:wrap; text-align:left;" id="TBL-18-4-1"
class="td11"><!--l. 964--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-18-4-2"
class="td11"><!--l. 964--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse8.html#x30-340008"><span
class="cmr-12">8</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-18-5-"><td style="white-space:wrap; text-align:left;" id="TBL-18-5-1"
class="td11"> </td> </tr></table></div>
<!--l. 969--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">6.9.3 </span></span> <a
id="x28-300006.9.3"></a><span
class="cmr-12">Method: sizeof</span></h5>
<div class="center"
>
<!--l. 971--><p class="noindent" >
<!--l. 972--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">sz</span><span
class="cmtt-12">&#x00A0;=</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">&#x00A0;p%sizeof()</span></span></span><br />
</div>
<!--l. 975--><p class="noindent" ><span
class="cmr-12">Return memory footprint in bytes.</span>
<!--l. 988--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">6.9.4 </span></span> <a
id="x28-310006.9.4"></a><span
class="cmr-12">Method: allocate</span><span
class="cmr-12">_wrk</span></h5>
<div class="center"
>
<!--l. 990--><p class="noindent" >
<!--l. 991--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;p%allocate_wrk(info[,</span><span
class="cmtt-12">&#x00A0;vmold])</span></span></span><br />
</div>
<!--l. 994--><p class="noindent" ><span
class="cmr-12">Allocate internal work vectors. Each application of the preconditioner uses a number of</span>
<span
class="cmr-12">work vectors which are allocated internally as necessary; therefore allocation and</span>
<span
class="cmr-12">deallocation of memory occurs multiple times during the execution of a Krylov method.</span>
<span
class="cmr-12">In most cases this strategy is perfectly acceptable, but on some platforms, most</span>
<span
class="cmr-12">notably GPUs, memory allocation is a slow operation, and the default behaviour would</span>
<span
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><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">vmold</span></span></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="obeylines-h"><span class="verb"><span
class="cmtt-12">x</span></span></span> <span
class="cmr-12">argument to the </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">apply</span></span></span>
<span
class="cmr-12">method.</span>
<!--l. 1010--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<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:wrap; text-align:left;" id="TBL-19-1-1"
class="td11"><!--l. 1016--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">info</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-19-1-2"
class="td11"><!--l. 1016--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">integer,</span><span
class="cmtt-12">&#x00A0;intent(out)</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-19-2-"><td style="white-space:wrap; text-align:left;" id="TBL-19-2-1"
class="td11"><!--l. 1017--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-19-2-2"
class="td11"><!--l. 1017--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse8.html#x30-340008"><span
class="cmr-12">8</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-19-3-"><td style="white-space:wrap; text-align:left;" id="TBL-19-3-1"
class="td11"><!--l. 1018--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">vmold</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-19-3-2"
class="td11"><!--l. 1018--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">class(psb_</span></span></span><span
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">_base_vect_type),</span><span
class="cmtt-12">&#x00A0;intent(in),</span><span
class="cmtt-12">&#x00A0;optional</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-19-4-"><td style="white-space:wrap; text-align:left;" id="TBL-19-4-1"
class="td11"><!--l. 1019--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-19-4-2"
class="td11"><!--l. 1019--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal vector components; this</span>
<span
class="cmr-12">allows e.g. running on GPUs.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-19-5-"><td style="white-space:wrap; text-align:left;" id="TBL-19-5-1"
class="td11"> </td> </tr></table></div>
<!--l. 1025--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">6.9.5 </span></span> <a
id="x28-320006.9.5"></a><span
class="cmr-12">Method: free</span><span
class="cmr-12">_wrk</span></h5>
<div class="center"
>
<!--l. 1027--><p class="noindent" >
<!--l. 1028--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;p%free_wrk(info)</span></span></span><br />
</div>
<!--l. 1031--><p class="noindent" ><span
class="cmr-12">Deallocate internal work vectors.</span>
<!--l. 1034--><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:wrap; text-align:left;" id="TBL-20-1-1"
class="td11"><!--l. 1040--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">info</span></span></span> </td><td style="white-space:wrap; text-align:left;" id="TBL-20-1-2"
class="td11"><!--l. 1040--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">integer,</span><span
class="cmtt-12">&#x00A0;intent(out)</span></span></span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-20-2-"><td style="white-space:wrap; text-align:left;" id="TBL-20-2-1"
class="td11"><!--l. 1041--><p class="noindent" > </td><td style="white-space:wrap; text-align:left;" id="TBL-20-2-2"
class="td11"><!--l. 1041--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse8.html#x30-340008"><span
class="cmr-12">8</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-20-3-"><td style="white-space:wrap; text-align:left;" id="TBL-20-3-1"
class="td11"> </td> </tr></table></div>
<!--l. 4--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu17.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu17.html#tailuserhtmlsu17.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu18.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse6.html#userhtmlsu18.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 4--><p class="indent" > <a
id="tailuserhtmlsu18.html"></a>
</body></html>

@ -0,0 +1,155 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>Optional third party libraries</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 61--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu3.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu1.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu1.html#tailuserhtmlsu1.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlsu2.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse3.html#userhtmlsu2.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">3.2 </span></span> <a
id="x9-80003.2"></a><span
class="cmr-12">Optional third party libraries</span></h4>
<!--l. 63--><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. 67--><p class="indent" >
<dl class="description"><dt class="description">
<span
class="cmbx-12">UMFPACK</span> </dt><dd
class="description"><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XUMFPACK"><span
class="cmr-12">9</span></a><span
class="cmr-12">]</span></span> <span
class="cmr-12">A sparse LU factorization package included in the SuiteSparse</span>
<span
class="cmr-12">library, 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>
<span
class="cmr-12">it provides sequential factorization and triangular system solution for</span>
<span
class="cmr-12">double precision real and complex data. We tested version 4.5.4</span>
<span
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
class="cmr-12">file.</span>
</dd><dt class="description">
<span
class="cmbx-12">MUMPS</span> </dt><dd
class="description"><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XMUMPS"><span
class="cmr-12">1</span></a><span
class="cmr-12">]</span></span> <span
class="cmr-12">A sparse LU factorization package available from</span>
<a
href="mumps.enseeiht.fr" class="url" ><span
class="cmtt-12">mumps.enseeiht.fr</span></a><span
class="cmr-12">; it provides sequential and parallel factorizations and</span>
<span
class="cmr-12">triangular system solution for single and double precision, real and complex</span>
<span
class="cmr-12">data. We tested 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="cmr-12">[</span><a
href="userhtmlli4.html#XSUPERLU"><span
class="cmr-12">10</span></a><span
class="cmr-12">]</span></span> <span
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
class="cmtt-12">xiaoye/SuperLU/</span></a><span
class="cmr-12">; it provides sequential factorization and</span>
<span
class="cmr-12">triangular system solution for single and double precision, real and complex</span>
<span
class="cmr-12">data. We tested versions 4.3 and 5.0. If you installed BLAS from ATLAS,</span>
<span
class="cmr-12">remember to define the BLASLIB variable in the make.inc file.</span>
</dd><dt class="description">
<span
class="cmbx-12">SuperLU</span><span
class="cmbx-12">_Dist</span> </dt><dd
class="description"><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XSUPERLUDIST"><span
class="cmr-12">19</span></a><span
class="cmr-12">]</span></span> <span
class="cmr-12">A sparse LU factorization package available from the same</span>
<span
class="cmr-12">site as SuperLU; it provides parallel factorization and triangular system</span>
<span
class="cmr-12">solution for double precision real and complex data. We tested versions</span>
<span
class="cmr-12">3.3 and 4.2. If you installed BLAS from ATLAS, remember to define the</span>
<span
class="cmr-12">BLASLIB variable in the make.inc file and to add the </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">-std=c99</span></span></span> <span
class="cmr-12">option to</span>
<span
class="cmr-12">the C compiler options. Note that this library requires the ParMETIS library</span>
<span
class="cmr-12">for parallel graph partitioning and fill-reducing matrix ordering, available</span>
<span
class="cmr-12">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. 98--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu3.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu1.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu1.html#tailuserhtmlsu1.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu2.html" ><span
class="cmr-12">front</span></a><span
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. 98--><p class="indent" > <a
id="tailuserhtmlsu2.html"></a>
</body></html>

@ -0,0 +1,327 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>Configuration options</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 98--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu4.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu2.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu2.html#tailuserhtmlsu2.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlsu3.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse3.html#userhtmlsu3.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">3.3 </span></span> <a
id="x10-90003.3"></a><span
class="cmr-12">Configuration options</span></h4>
<!--l. 100--><p class="noindent" ><span
class="cmr-12">In order to build MLD2P4, the first step is to use the </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">configure</span></span></span> <span
class="cmr-12">script in the main</span>
<span
class="cmr-12">directory to generate the necessary makefile.</span>
<!--l. 104--><p class="indent" > <span
class="cmr-12">As a minimal example consider the following:</span>
<div class="verbatim" id="verbatim-1">
./configure&#x00A0;--with-psblas=PSB-INSTALL-DIR
</div>
<!--l. 107--><p class="nopar" > <span
class="cmr-12">which assumes that the various MPI compilers and support libraries are available in</span>
<span
class="cmr-12">the standard directories on the system, and specifies only the PSBLAS install directory</span>
<span
class="cmr-12">(note that the latter directory must be specified with an </span><span
class="cmti-12">absolute </span><span
class="cmr-12">path). The full set of</span>
<span
class="cmr-12">options may be looked at by issuing the command </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">./configure</span><span
class="cmtt-12">&#x00A0;--help</span></span></span><span
class="cmr-12">, which</span>
<span
class="cmr-12">produces:</span>
<div class="verbatim" id="verbatim-2">
&#8216;configure&#8217;&#x00A0;configures&#x00A0;MLD2P4&#x00A0;2.1.1&#x00A0;to&#x00A0;adapt&#x00A0;to&#x00A0;many&#x00A0;kinds&#x00A0;of&#x00A0;systems.
&#x00A0;<br />
&#x00A0;<br />Usage:&#x00A0;./configure&#x00A0;[OPTION]...&#x00A0;[VAR=VALUE]...
&#x00A0;<br />
&#x00A0;<br />To&#x00A0;assign&#x00A0;environment&#x00A0;variables&#x00A0;(e.g.,&#x00A0;CC,&#x00A0;CFLAGS...),&#x00A0;specify&#x00A0;them&#x00A0;as
&#x00A0;<br />VAR=VALUE.&#x00A0;&#x00A0;See&#x00A0;below&#x00A0;for&#x00A0;descriptions&#x00A0;of&#x00A0;some&#x00A0;of&#x00A0;the&#x00A0;useful&#x00A0;variables.
&#x00A0;<br />
&#x00A0;<br />Defaults&#x00A0;for&#x00A0;the&#x00A0;options&#x00A0;are&#x00A0;specified&#x00A0;in&#x00A0;brackets.
&#x00A0;<br />
&#x00A0;<br />Configuration:
&#x00A0;<br />&#x00A0;&#x00A0;-h,&#x00A0;--help&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;display&#x00A0;this&#x00A0;help&#x00A0;and&#x00A0;exit
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;--help=short&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;display&#x00A0;options&#x00A0;specific&#x00A0;to&#x00A0;this&#x00A0;package
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;--help=recursive&#x00A0;&#x00A0;&#x00A0;&#x00A0;display&#x00A0;the&#x00A0;short&#x00A0;help&#x00A0;of&#x00A0;all&#x00A0;the&#x00A0;included&#x00A0;packages
&#x00A0;<br />&#x00A0;&#x00A0;-V,&#x00A0;--version&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;display&#x00A0;version&#x00A0;information&#x00A0;and&#x00A0;exit
&#x00A0;<br />&#x00A0;&#x00A0;-q,&#x00A0;--quiet,&#x00A0;--silent&#x00A0;&#x00A0;&#x00A0;do&#x00A0;not&#x00A0;print&#x00A0;&#8216;checking&#x00A0;...&#8217;&#x00A0;messages
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;--cache-file=FILE&#x00A0;&#x00A0;&#x00A0;cache&#x00A0;test&#x00A0;results&#x00A0;in&#x00A0;FILE&#x00A0;[disabled]
&#x00A0;<br />&#x00A0;&#x00A0;-C,&#x00A0;--config-cache&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;alias&#x00A0;for&#x00A0;&#8216;--cache-file=config.cache&#8217;
&#x00A0;<br />&#x00A0;&#x00A0;-n,&#x00A0;--no-create&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;do&#x00A0;not&#x00A0;create&#x00A0;output&#x00A0;files
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;--srcdir=DIR&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;find&#x00A0;the&#x00A0;sources&#x00A0;in&#x00A0;DIR&#x00A0;[configure&#x00A0;dir&#x00A0;or&#x00A0;&#8216;..&#8217;]
&#x00A0;<br />
&#x00A0;<br />Installation&#x00A0;directories:
&#x00A0;<br />&#x00A0;&#x00A0;--prefix=PREFIX&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;install&#x00A0;architecture-independent&#x00A0;files&#x00A0;in&#x00A0;PREFIX
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;[/usr/local]
&#x00A0;<br />&#x00A0;&#x00A0;--exec-prefix=EPREFIX&#x00A0;&#x00A0;&#x00A0;install&#x00A0;architecture-dependent&#x00A0;files&#x00A0;in&#x00A0;EPREFIX
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;[PREFIX]
&#x00A0;<br />
&#x00A0;<br />By&#x00A0;default,&#x00A0;&#8216;make&#x00A0;install&#8217;&#x00A0;will&#x00A0;install&#x00A0;all&#x00A0;the&#x00A0;files&#x00A0;in
&#x00A0;<br />&#8216;/usr/local/bin&#8217;,&#x00A0;&#8216;/usr/local/lib&#8217;&#x00A0;etc.&#x00A0;&#x00A0;You&#x00A0;can&#x00A0;specify
&#x00A0;<br />an&#x00A0;installation&#x00A0;prefix&#x00A0;other&#x00A0;than&#x00A0;&#8216;/usr/local&#8217;&#x00A0;using&#x00A0;&#8216;--prefix&#8217;,
&#x00A0;<br />for&#x00A0;instance&#x00A0;&#8216;--prefix=$HOME&#8217;.
&#x00A0;<br />
&#x00A0;<br />For&#x00A0;better&#x00A0;control,&#x00A0;use&#x00A0;the&#x00A0;options&#x00A0;below.
&#x00A0;<br />
&#x00A0;<br />Fine&#x00A0;tuning&#x00A0;of&#x00A0;the&#x00A0;installation&#x00A0;directories:
&#x00A0;<br />&#x00A0;&#x00A0;--bindir=DIR&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;user&#x00A0;executables&#x00A0;[EPREFIX/bin]
&#x00A0;<br />&#x00A0;&#x00A0;--sbindir=DIR&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;system&#x00A0;admin&#x00A0;executables&#x00A0;[EPREFIX/sbin]
&#x00A0;<br />&#x00A0;&#x00A0;--libexecdir=DIR&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;program&#x00A0;executables&#x00A0;[EPREFIX/libexec]
&#x00A0;<br />&#x00A0;&#x00A0;--sysconfdir=DIR&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;read-only&#x00A0;single-machine&#x00A0;data&#x00A0;[PREFIX/etc]
&#x00A0;<br />&#x00A0;&#x00A0;--sharedstatedir=DIR&#x00A0;&#x00A0;&#x00A0;&#x00A0;modifiable&#x00A0;architecture-independent&#x00A0;data&#x00A0;[PREFIX/com]
&#x00A0;<br />&#x00A0;&#x00A0;--localstatedir=DIR&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;modifiable&#x00A0;single-machine&#x00A0;data&#x00A0;[PREFIX/var]
&#x00A0;<br />&#x00A0;&#x00A0;--libdir=DIR&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;object&#x00A0;code&#x00A0;libraries&#x00A0;[EPREFIX/lib]
&#x00A0;<br />&#x00A0;&#x00A0;--includedir=DIR&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;C&#x00A0;header&#x00A0;files&#x00A0;[PREFIX/include]
&#x00A0;<br />&#x00A0;&#x00A0;--oldincludedir=DIR&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;C&#x00A0;header&#x00A0;files&#x00A0;for&#x00A0;non-gcc&#x00A0;[/usr/include]
&#x00A0;<br />&#x00A0;&#x00A0;--datarootdir=DIR&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;read-only&#x00A0;arch.-independent&#x00A0;data&#x00A0;root&#x00A0;[PREFIX/share]
&#x00A0;<br />&#x00A0;&#x00A0;--datadir=DIR&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;read-only&#x00A0;architecture-independent&#x00A0;data&#x00A0;[DATAROOTDIR]
&#x00A0;<br />&#x00A0;&#x00A0;--infodir=DIR&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;info&#x00A0;documentation&#x00A0;[DATAROOTDIR/info]
&#x00A0;<br />&#x00A0;&#x00A0;--localedir=DIR&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;locale-dependent&#x00A0;data&#x00A0;[DATAROOTDIR/locale]
&#x00A0;<br />&#x00A0;&#x00A0;--mandir=DIR&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;man&#x00A0;documentation&#x00A0;[DATAROOTDIR/man]
&#x00A0;<br />&#x00A0;&#x00A0;--docdir=DIR&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;documentation&#x00A0;root&#x00A0;[DATAROOTDIR/doc/mld2p4]
&#x00A0;<br />&#x00A0;&#x00A0;--htmldir=DIR&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;html&#x00A0;documentation&#x00A0;[DOCDIR]
&#x00A0;<br />&#x00A0;&#x00A0;--dvidir=DIR&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;dvi&#x00A0;documentation&#x00A0;[DOCDIR]
&#x00A0;<br />&#x00A0;&#x00A0;--pdfdir=DIR&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;pdf&#x00A0;documentation&#x00A0;[DOCDIR]
&#x00A0;<br />&#x00A0;&#x00A0;--psdir=DIR&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;ps&#x00A0;documentation&#x00A0;[DOCDIR]
&#x00A0;<br />
&#x00A0;<br />Program&#x00A0;names:
&#x00A0;<br />&#x00A0;&#x00A0;--program-prefix=PREFIX&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;prepend&#x00A0;PREFIX&#x00A0;to&#x00A0;installed&#x00A0;program&#x00A0;names
&#x00A0;<br />&#x00A0;&#x00A0;--program-suffix=SUFFIX&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;append&#x00A0;SUFFIX&#x00A0;to&#x00A0;installed&#x00A0;program&#x00A0;names
&#x00A0;<br />&#x00A0;&#x00A0;--program-transform-name=PROGRAM&#x00A0;&#x00A0;&#x00A0;run&#x00A0;sed&#x00A0;PROGRAM&#x00A0;on&#x00A0;installed&#x00A0;program&#x00A0;names
&#x00A0;<br />
&#x00A0;<br />Optional&#x00A0;Features:
&#x00A0;<br />&#x00A0;&#x00A0;--disable-option-checking&#x00A0;&#x00A0;ignore&#x00A0;unrecognized&#x00A0;--enable/--with&#x00A0;options
&#x00A0;<br />&#x00A0;&#x00A0;--disable-FEATURE&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;do&#x00A0;not&#x00A0;include&#x00A0;FEATURE&#x00A0;(same&#x00A0;as&#x00A0;--enable-FEATURE=no)
&#x00A0;<br />&#x00A0;&#x00A0;--enable-FEATURE[=ARG]&#x00A0;&#x00A0;include&#x00A0;FEATURE&#x00A0;[ARG=yes]
&#x00A0;<br />&#x00A0;&#x00A0;--enable-silent-rules&#x00A0;&#x00A0;&#x00A0;less&#x00A0;verbose&#x00A0;build&#x00A0;output&#x00A0;(undo:&#x00A0;"make&#x00A0;V=1")
&#x00A0;<br />&#x00A0;&#x00A0;--disable-silent-rules&#x00A0;&#x00A0;verbose&#x00A0;build&#x00A0;output&#x00A0;(undo:&#x00A0;"make&#x00A0;V=0")
&#x00A0;<br />&#x00A0;&#x00A0;--enable-dependency-tracking
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;do&#x00A0;not&#x00A0;reject&#x00A0;slow&#x00A0;dependency&#x00A0;extractors
&#x00A0;<br />&#x00A0;&#x00A0;--disable-dependency-tracking
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;speeds&#x00A0;up&#x00A0;one-time&#x00A0;build
&#x00A0;<br />&#x00A0;&#x00A0;--enable-serial&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Specify&#x00A0;whether&#x00A0;to&#x00A0;enable&#x00A0;a&#x00A0;fake&#x00A0;mpi&#x00A0;library&#x00A0;to&#x00A0;run
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;in&#x00A0;serial&#x00A0;mode.
&#x00A0;<br />&#x00A0;&#x00A0;--enable-long-integers&#x00A0;&#x00A0;Specify&#x00A0;usage&#x00A0;of&#x00A0;64&#x00A0;bits&#x00A0;integers.
&#x00A0;<br />
&#x00A0;<br />Optional&#x00A0;Packages:
&#x00A0;<br />&#x00A0;&#x00A0;--with-PACKAGE[=ARG]&#x00A0;&#x00A0;&#x00A0;&#x00A0;use&#x00A0;PACKAGE&#x00A0;[ARG=yes]
&#x00A0;<br />&#x00A0;&#x00A0;--without-PACKAGE&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;do&#x00A0;not&#x00A0;use&#x00A0;PACKAGE&#x00A0;(same&#x00A0;as&#x00A0;--with-PACKAGE=no)
&#x00A0;<br />&#x00A0;&#x00A0;--with-psblas=DIR&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;The&#x00A0;install&#x00A0;directory&#x00A0;for&#x00A0;PSBLAS,&#x00A0;for&#x00A0;example,
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;--with-psblas=/opt/packages/psblas-3.5
&#x00A0;<br />&#x00A0;&#x00A0;--with-psblas-incdir=DIR
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Specify&#x00A0;the&#x00A0;directory&#x00A0;for&#x00A0;PSBLAS&#x00A0;C&#x00A0;includes.
&#x00A0;<br />&#x00A0;&#x00A0;--with-psblas-moddir=DIR
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Specify&#x00A0;the&#x00A0;directory&#x00A0;for&#x00A0;PSBLAS&#x00A0;Fortran&#x00A0;modules.
&#x00A0;<br />&#x00A0;&#x00A0;--with-psblas-libdir=DIR
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Specify&#x00A0;the&#x00A0;directory&#x00A0;for&#x00A0;PSBLAS&#x00A0;library.
&#x00A0;<br />&#x00A0;&#x00A0;--with-ccopt&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;additional&#x00A0;[CCOPT]&#x00A0;flags&#x00A0;to&#x00A0;be&#x00A0;added:&#x00A0;will&#x00A0;prepend
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;to&#x00A0;[CCOPT]
&#x00A0;<br />&#x00A0;&#x00A0;--with-fcopt&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;additional&#x00A0;[FCOPT]&#x00A0;flags&#x00A0;to&#x00A0;be&#x00A0;added:&#x00A0;will&#x00A0;prepend
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;to&#x00A0;[FCOPT]
&#x00A0;<br />&#x00A0;&#x00A0;--with-libs&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;List&#x00A0;additional&#x00A0;link&#x00A0;flags&#x00A0;here.&#x00A0;For&#x00A0;example,
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;--with-libs=-lspecial_system_lib&#x00A0;or
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;--with-libs=-L/path/to/libs
&#x00A0;<br />&#x00A0;&#x00A0;--with-clibs&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;additional&#x00A0;[CLIBS]&#x00A0;flags&#x00A0;to&#x00A0;be&#x00A0;added:&#x00A0;will&#x00A0;prepend
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;to&#x00A0;[CLIBS]
&#x00A0;<br />&#x00A0;&#x00A0;--with-flibs&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;additional&#x00A0;[FLIBS]&#x00A0;flags&#x00A0;to&#x00A0;be&#x00A0;added:&#x00A0;will&#x00A0;prepend
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;to&#x00A0;[FLIBS]
&#x00A0;<br />&#x00A0;&#x00A0;--with-library-path&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;additional&#x00A0;[LIBRARYPATH]&#x00A0;flags&#x00A0;to&#x00A0;be&#x00A0;added:&#x00A0;will
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;prepend&#x00A0;to&#x00A0;[LIBRARYPATH]
&#x00A0;<br />&#x00A0;&#x00A0;--with-include-path&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;additional&#x00A0;[INCLUDEPATH]&#x00A0;flags&#x00A0;to&#x00A0;be&#x00A0;added:&#x00A0;will
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;prepend&#x00A0;to&#x00A0;[INCLUDEPATH]
&#x00A0;<br />&#x00A0;&#x00A0;--with-module-path&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;additional&#x00A0;[MODULE_PATH]&#x00A0;flags&#x00A0;to&#x00A0;be&#x00A0;added:&#x00A0;will
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;prepend&#x00A0;to&#x00A0;[MODULE_PATH]
&#x00A0;<br />&#x00A0;&#x00A0;--with-extra-libs&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;List&#x00A0;additional&#x00A0;link&#x00A0;flags&#x00A0;here.&#x00A0;For&#x00A0;example,
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;--with-extra-libs=-lspecial_system_lib&#x00A0;or
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;--with-extra-libs=-L/path/to/libs
&#x00A0;<br />&#x00A0;&#x00A0;--with-blas=&#x003C;lib&#x003E;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;use&#x00A0;BLAS&#x00A0;library&#x00A0;&#x003C;lib&#x003E;
&#x00A0;<br />&#x00A0;&#x00A0;--with-blasdir=&#x003C;dir&#x003E;&#x00A0;&#x00A0;&#x00A0;&#x00A0;search&#x00A0;for&#x00A0;BLAS&#x00A0;library&#x00A0;in&#x00A0;&#x003C;dir&#x003E;
&#x00A0;<br />&#x00A0;&#x00A0;--with-lapack=&#x003C;lib&#x003E;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;use&#x00A0;LAPACK&#x00A0;library&#x00A0;&#x003C;lib&#x003E;
&#x00A0;<br />&#x00A0;&#x00A0;--with-mumps=LIBNAME&#x00A0;&#x00A0;&#x00A0;&#x00A0;Specify&#x00A0;the&#x00A0;libname&#x00A0;for&#x00A0;MUMPS.&#x00A0;Default:&#x00A0;autodetect
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;with&#x00A0;minimum&#x00A0;"-lmumps_common&#x00A0;-lpord"
&#x00A0;<br />&#x00A0;&#x00A0;--with-mumpsdir=DIR&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Specify&#x00A0;the&#x00A0;directory&#x00A0;for&#x00A0;MUMPS&#x00A0;library&#x00A0;and
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;includes.&#x00A0;Note:&#x00A0;you&#x00A0;will&#x00A0;need&#x00A0;to&#x00A0;add&#x00A0;auxiliary
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;libraries&#x00A0;with&#x00A0;--extra-libs;&#x00A0;this&#x00A0;depends&#x00A0;on&#x00A0;how
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;MUMPS&#x00A0;was&#x00A0;configured&#x00A0;and&#x00A0;installed,&#x00A0;at&#x00A0;a&#x00A0;minimum&#x00A0;you
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;will&#x00A0;need&#x00A0;SCALAPACK&#x00A0;and&#x00A0;BLAS
&#x00A0;<br />&#x00A0;&#x00A0;--with-mumpsincdir=DIR&#x00A0;&#x00A0;Specify&#x00A0;the&#x00A0;directory&#x00A0;for&#x00A0;MUMPS&#x00A0;includes.
&#x00A0;<br />&#x00A0;&#x00A0;--with-mumpsmoddir=DIR&#x00A0;&#x00A0;Specify&#x00A0;the&#x00A0;directory&#x00A0;for&#x00A0;MUMPS&#x00A0;Fortran&#x00A0;modules.
&#x00A0;<br />&#x00A0;&#x00A0;--with-mumpslibdir=DIR&#x00A0;&#x00A0;Specify&#x00A0;the&#x00A0;directory&#x00A0;for&#x00A0;MUMPS&#x00A0;library.
&#x00A0;<br />&#x00A0;&#x00A0;--with-umfpack=LIBNAME&#x00A0;&#x00A0;Specify&#x00A0;the&#x00A0;library&#x00A0;name&#x00A0;for&#x00A0;UMFPACK&#x00A0;and&#x00A0;its&#x00A0;support
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;libraries.&#x00A0;Default:&#x00A0;"-lumfpack&#x00A0;-lamd"
&#x00A0;<br />&#x00A0;&#x00A0;--with-umfpackdir=DIR&#x00A0;&#x00A0;&#x00A0;Specify&#x00A0;the&#x00A0;directory&#x00A0;for&#x00A0;UMFPACK&#x00A0;library&#x00A0;and
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;includes.
&#x00A0;<br />&#x00A0;&#x00A0;--with-umfpackincdir=DIR
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Specify&#x00A0;the&#x00A0;directory&#x00A0;for&#x00A0;UMFPACK&#x00A0;includes.
&#x00A0;<br />&#x00A0;&#x00A0;--with-umfpacklibdir=DIR
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Specify&#x00A0;the&#x00A0;directory&#x00A0;for&#x00A0;UMFPACK&#x00A0;library.
&#x00A0;<br />&#x00A0;&#x00A0;--with-superlu=LIBNAME&#x00A0;&#x00A0;Specify&#x00A0;the&#x00A0;library&#x00A0;name&#x00A0;for&#x00A0;SUPERLU&#x00A0;library.
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Default:&#x00A0;"-lsuperlu"
&#x00A0;<br />&#x00A0;&#x00A0;--with-superludir=DIR&#x00A0;&#x00A0;&#x00A0;Specify&#x00A0;the&#x00A0;directory&#x00A0;for&#x00A0;SUPERLU&#x00A0;library&#x00A0;and
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;includes.
&#x00A0;<br />&#x00A0;&#x00A0;--with-superluincdir=DIR
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Specify&#x00A0;the&#x00A0;directory&#x00A0;for&#x00A0;SUPERLU&#x00A0;includes.
&#x00A0;<br />&#x00A0;&#x00A0;--with-superlulibdir=DIR
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Specify&#x00A0;the&#x00A0;directory&#x00A0;for&#x00A0;SUPERLU&#x00A0;library.
&#x00A0;<br />&#x00A0;&#x00A0;--with-superludist=LIBNAME
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Specify&#x00A0;the&#x00A0;libname&#x00A0;for&#x00A0;SUPERLUDIST&#x00A0;library.
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Requires&#x00A0;you&#x00A0;also&#x00A0;specify&#x00A0;SuperLU.&#x00A0;Default:
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;"-lsuperlu_dist"
&#x00A0;<br />&#x00A0;&#x00A0;--with-superludistdir=DIR
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Specify&#x00A0;the&#x00A0;directory&#x00A0;for&#x00A0;SUPERLUDIST&#x00A0;library&#x00A0;and
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;includes.
&#x00A0;<br />&#x00A0;&#x00A0;--with-superludistincdir=DIR
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Specify&#x00A0;the&#x00A0;directory&#x00A0;for&#x00A0;SUPERLUDIST&#x00A0;includes.
&#x00A0;<br />&#x00A0;&#x00A0;--with-superludistlibdir=DIR
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Specify&#x00A0;the&#x00A0;directory&#x00A0;for&#x00A0;SUPERLUDIST&#x00A0;library.
&#x00A0;<br />
&#x00A0;<br />Some&#x00A0;influential&#x00A0;environment&#x00A0;variables:
&#x00A0;<br />&#x00A0;&#x00A0;FC&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Fortran&#x00A0;compiler&#x00A0;command
&#x00A0;<br />&#x00A0;&#x00A0;FCFLAGS&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Fortran&#x00A0;compiler&#x00A0;flags
&#x00A0;<br />&#x00A0;&#x00A0;LDFLAGS&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;linker&#x00A0;flags,&#x00A0;e.g.&#x00A0;-L&#x003C;lib&#x00A0;dir&#x003E;&#x00A0;if&#x00A0;you&#x00A0;have&#x00A0;libraries&#x00A0;in&#x00A0;a
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;nonstandard&#x00A0;directory&#x00A0;&#x003C;lib&#x00A0;dir&#x003E;
&#x00A0;<br />&#x00A0;&#x00A0;LIBS&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;libraries&#x00A0;to&#x00A0;pass&#x00A0;to&#x00A0;the&#x00A0;linker,&#x00A0;e.g.&#x00A0;-l&#x003C;library&#x003E;
&#x00A0;<br />&#x00A0;&#x00A0;CC&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;C&#x00A0;compiler&#x00A0;command
&#x00A0;<br />&#x00A0;&#x00A0;CFLAGS&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;C&#x00A0;compiler&#x00A0;flags
&#x00A0;<br />&#x00A0;&#x00A0;CPPFLAGS&#x00A0;&#x00A0;&#x00A0;&#x00A0;(Objective)&#x00A0;C/C++&#x00A0;preprocessor&#x00A0;flags,&#x00A0;e.g.&#x00A0;-I&#x003C;include&#x00A0;dir&#x003E;&#x00A0;if
&#x00A0;<br />&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;you&#x00A0;have&#x00A0;headers&#x00A0;in&#x00A0;a&#x00A0;nonstandard&#x00A0;directory&#x00A0;&#x003C;include&#x00A0;dir&#x003E;
&#x00A0;<br />&#x00A0;&#x00A0;MPICC&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;MPI&#x00A0;C&#x00A0;compiler&#x00A0;command
&#x00A0;<br />&#x00A0;&#x00A0;MPIFC&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;MPI&#x00A0;Fortran&#x00A0;compiler&#x00A0;command
&#x00A0;<br />&#x00A0;&#x00A0;CPP&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;C&#x00A0;preprocessor
&#x00A0;<br />
&#x00A0;<br />Use&#x00A0;these&#x00A0;variables&#x00A0;to&#x00A0;override&#x00A0;the&#x00A0;choices&#x00A0;made&#x00A0;by&#x00A0;&#8216;configure&#8217;&#x00A0;or&#x00A0;to&#x00A0;help
&#x00A0;<br />it&#x00A0;to&#x00A0;find&#x00A0;libraries&#x00A0;and&#x00A0;programs&#x00A0;with&#x00A0;nonstandard&#x00A0;names/locations.
&#x00A0;<br />
&#x00A0;<br />Report&#x00A0;bugs&#x00A0;to&#x00A0;&#x003C;https://github.com/sfilippone/mld2p4-2/issues&#x003E;.
</div>
<!--l. 278--><p class="nopar" >
<!--l. 280--><p class="indent" > <span
class="cmr-12">For instance, if a user has built and installed PSBLAS 3.5 under the </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">/opt</span></span></span> <span
class="cmr-12">directory</span>
<span
class="cmr-12">and is using the SuiteSparse package (which includes UMFPACK), then MLD2P4</span>
<span
class="cmr-12">might be configured with:</span>
<div class="verbatim" id="verbatim-3">
&#x00A0;./configure&#x00A0;--with-psblas=/opt/psblas-3.5/&#x00A0;\
&#x00A0;<br />&#x00A0;--with-umfpackincdir=/usr/include/suitesparse/
</div>
<!--l. 287--><p class="nopar" > <span
class="cmr-12">Once the configure script has completed execution, it will have generated the file</span>
<span class="obeylines-h"><span class="verb"><span
class="cmtt-12">Make.inc</span></span></span> <span
class="cmr-12">which will then be used by all Makefiles in the directory tree; this file will be</span>
<span
class="cmr-12">copied in the install directory under the name </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">Make.inc.MLD2P4</span></span></span><span
class="cmr-12">.</span>
<!--l. 293--><p class="indent" > <span
class="cmr-12">To use the MUMPS solver package, the user has to add the appropriate options to</span>
<span
class="cmr-12">the configure script; by default we are looking for the libraries </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">-ldmumps</span><span
class="cmtt-12">&#x00A0;-lsmumps</span></span></span>
<span class="obeylines-h"><span class="verb"><span
class="cmtt-12">&#x00A0;-lzmumps</span><span
class="cmtt-12">&#x00A0;-lcmumps</span><span
class="cmtt-12">&#x00A0;-mumps_common</span><span
class="cmtt-12">&#x00A0;-lpord</span></span></span><span
class="cmr-12">. MUMPS often uses additional</span>
<span
class="cmr-12">packages such as ScaLAPACK, ParMETIS, SCOTCH, as well as enabling OpenMP; in</span>
<span
class="cmr-12">such cases it is necessary to add linker options with the </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">--with-extra-libs</span></span></span> <span
class="cmr-12">configure</span>
<span
class="cmr-12">option.</span>
<!--l. 301--><p class="indent" > <span
class="cmr-12">To build the library the user will now enter</span>
<div class="verbatim" id="verbatim-4">
make
</div>
<!--l. 304--><p class="nopar" > <span
class="cmr-12">followed (optionally) by</span>
<div class="verbatim" id="verbatim-5">
make&#x00A0;install
</div>
<!--l. 308--><p class="nopar" >
<!--l. 309--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu4.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu2.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu2.html#tailuserhtmlsu2.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu3.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse3.html#userhtmlsu3.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 309--><p class="indent" > <a
id="tailuserhtmlsu3.html"></a>
</body></html>

@ -0,0 +1,69 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>Bug reporting</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 309--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu5.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu3.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu3.html#tailuserhtmlsu3.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlsu4.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse3.html#userhtmlsu4.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">3.4 </span></span> <a
id="x11-100003.4"></a><span
class="cmr-12">Bug reporting</span></h4>
<!--l. 310--><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
class="newline" /> <a
href="https://github.com/sfilippone/mld2p4-2/issues" class="url" ><span
class="cmtt-12">https://github.com/sfilippone/mld2p4-2/issues</span></a><br
class="newline" /><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>
<span
class="cmr-12">issue.</span>
<!--l. 326--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu5.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu3.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu3.html#tailuserhtmlsu3.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu4.html" ><span
class="cmr-12">front</span></a><span
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. 326--><p class="indent" > <a
id="tailuserhtmlsu4.html"></a>
</body></html>

@ -0,0 +1,98 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>Example and test programs</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 326--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu4.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu4.html#tailuserhtmlsu4.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlsu5.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse3.html#userhtmlsu5.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">3.5 </span></span> <a
id="x12-110003.5"></a><span
class="cmr-12">Example and test programs</span></h4>
<!--l. 327--><p class="noindent" ><span
class="cmr-12">The package contains the </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">examples</span></span></span> <span
class="cmr-12">and </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">tests</span></span></span> <span
class="cmr-12">directories; both of them are</span>
<span
class="cmr-12">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
class="cmr-12">subdirectories. Their purpose is as</span>
<span
class="cmr-12">follows:</span>
<dl class="description"><dt class="description">
<span
class="cmtt-12">examples</span> </dt><dd
class="description"><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 an</span>
<span
class="cmr-12">acquaintance with the multilevel preconditioners available in MLD2P4.</span>
</dd><dt class="description">
<span
class="cmtt-12">tests</span> </dt><dd
class="description"><span
class="cmr-12">contains a set of more sophisticated examples that will allow the user, via</span>
<span
class="cmr-12">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 range</span>
<span
class="cmr-12">of preconditioners implemented in the package.</span></dd></dl>
<!--l. 340--><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">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>
<span
class="cmr-12">programs generate matrices in full parallel mode from the discretization of a sample</span>
<span
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
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu4.html#tailuserhtmlsu4.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu5.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse3.html#userhtmlsu5.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 1--><p class="indent" > <a
id="tailuserhtmlsu5.html"></a>
</body></html>

@ -0,0 +1,399 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>AMG preconditioners</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 56--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu7.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlsu6.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse4.html#userhtmlsu6.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">4.1 </span></span> <a
id="x14-130004.1"></a><span
class="cmr-12">AMG preconditioners</span></h4>
<!--l. 58--><p class="noindent" ><span
class="cmr-12">In order to describe the AMG preconditioners available in MLD2P4, we consider a</span>
<span
class="cmr-12">linear system</span>
<table
class="equation"><tr><td>
<center class="math-display" >
<img
src="userhtml2x.png" alt="Ax = b,
" class="math-display" ><a
id="x14-13001r2"></a></center></td><td class="equation-label"><span
class="cmr-12">(2)</span></td></tr></table>
<!--l. 62--><p class="nopar" >
<span
class="cmr-12">where </span><span
class="cmmi-12">A </span><span
class="cmr-12">= (</span><span
class="cmmi-12">a</span><sub><span
class="cmmi-8">ij</span></sub><span
class="cmr-12">) </span><span
class="cmsy-10x-x-120">&#x2208; </span><span
class="msbm-10x-x-120">&#x211D;</span><sup><span
class="cmmi-8">n</span><span
class="cmsy-8">&#x00D7;</span><span
class="cmmi-8">n</span></sup> <span
class="cmr-12">is a nonsingular sparse matrix; for ease of presentation we</span>
<span
class="cmr-12">assume </span><span
class="cmmi-12">A </span><span
class="cmr-12">has a symmetric sparsity pattern.</span>
<!--l. 67--><p class="indent" > <span
class="cmr-12">Let us consider as finest index space the set of row (column) indices of </span><span
class="cmmi-12">A</span><span
class="cmr-12">,</span>
<span
class="cmr-12">i.e., &#x03A9; = </span><span
class="cmsy-10x-x-120">{</span><span
class="cmr-12">1</span><span
class="cmmi-12">, </span><span
class="cmr-12">2</span><span
class="cmmi-12">,</span><span
class="cmmi-12">&#x2026;</span><span
class="cmmi-12">,n</span><span
class="cmsy-10x-x-120">}</span><span
class="cmr-12">. Any algebraic multilevel preconditioners implemented in</span>
<span
class="cmr-12">MLD2P4 generates a hierarchy of index spaces and a corresponding hierarchy of</span>
<span
class="cmr-12">matrices,</span>
<center class="math-display" >
<img
src="userhtml3x.png" alt=" 1 2 nlev 1 2 nlev
&#x03A9; &#x2261; &#x03A9; &#x2283; &#x03A9; &#x2283; ...&#x2283; &#x03A9; , A &#x2261; A, A ,...,A ,
" class="math-display" ></center>
<!--l. 72--><p class="nopar" > <span
class="cmr-12">by using the information contained in </span><span
class="cmmi-12">A</span><span
class="cmr-12">, without assuming any knowledge of</span>
<span
class="cmr-12">the geometry of the problem from which </span><span
class="cmmi-12">A </span><span
class="cmr-12">originates. A vector space </span><span
class="msbm-10x-x-120">&#x211D;</span><sup><span
class="cmmi-8">n</span><sub><span
class="cmmi-6">k</span></sub></sup> <span
class="cmr-12">is</span>
<span
class="cmr-12">associated with &#x03A9;</span><sup><span
class="cmmi-8">k</span></sup><span
class="cmr-12">, where </span><span
class="cmmi-12">n</span><sub>
<span
class="cmmi-8">k</span></sub> <span
class="cmr-12">is the size of &#x03A9;</span><sup><span
class="cmmi-8">k</span></sup><span
class="cmr-12">. For all </span><span
class="cmmi-12">k &#x003C; nlev</span><span
class="cmr-12">, a restriction</span>
<span
class="cmr-12">operator and a prolongation one are built, which connect two levels </span><span
class="cmmi-12">k </span><span
class="cmr-12">and</span>
<span
class="cmmi-12">k </span><span
class="cmr-12">+ 1:</span>
<center class="math-display" >
<img
src="userhtml4x.png" alt="P k &#x2208; &#x211D;nk&#x00D7;nk+1, Rk &#x2208; &#x211D;nk+1&#x00D7;nk ;
" class="math-display" ></center>
<!--l. 82--><p class="nopar" > <span
class="cmr-12">the matrix </span><span
class="cmmi-12">A</span><sup><span
class="cmmi-8">k</span><span
class="cmr-8">+1</span></sup> <span
class="cmr-12">is computed by using the previous operators according to the</span>
<span
class="cmr-12">Galerkin approach, i.e.,</span>
<center class="math-display" >
<img
src="userhtml5x.png" alt=" k+1 k k k
A = R A P .
" class="math-display" ></center>
<!--l. 87--><p class="nopar" > <span
class="cmr-12">In the current implementation of MLD2P4 we have </span><span
class="cmmi-12">R</span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">= (</span><span
class="cmmi-12">P</span><sup><span
class="cmmi-8">k</span></sup><span
class="cmr-12">)</span><sup><span
class="cmmi-8">T</span> </sup> <span
class="cmr-12">A smoother with</span>
<span
class="cmr-12">iteration matrix </span><span
class="cmmi-12">M</span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">is set up at each level </span><span
class="cmmi-12">k &#x003C; nlev</span><span
class="cmr-12">, and a solver is set up at the</span>
<span
class="cmr-12">coarsest level, so that they are ready for application (for example, setting up a solver</span>
<span
class="cmr-12">based on the </span><span
class="cmmi-12">LU </span><span
class="cmr-12">factorization means computing and storing the </span><span
class="cmmi-12">L </span><span
class="cmr-12">and </span><span
class="cmmi-12">U </span><span
class="cmr-12">factors). The</span>
<span
class="cmr-12">construction of the hierarchy of AMG components described so far corresponds to the</span>
<span
class="cmr-12">so-called build phase of the preconditioner.</span>
<!--l. 95--><p class="indent" > <hr class="figure"><div class="figure"
>
<a
id="x14-130021"></a>
<div class="center"
>
<!--l. 96--><p class="noindent" >
<div class="fbox"> <div class="minipage"><table
cellpadding="0" border="0" cellspacing="0"
class="tabbing"><tr
style="vertical-align:baseline;" class="tabbing"><td style="width:16;"
class="tabbing"> </td><td style="width:16;"
class="tabbing"> </td><td style="width:16;"
class="tabbing"> </td><td
class="tabbing"></td></tr></table>
<!--l. 115--><p class="noindent" ><table
cellpadding="0" border="0" cellspacing="0"
class="tabbing"><tr
style="vertical-align:baseline;" class="tabbing"><td
class="tabbing">procedure V-cycle<img
src="userhtml6x.png" alt="( k k k)
k,A ,b ,u" class="left" align="middle">
</td></tr></table>
<!--l. 115--><p class="noindent" >
<table
cellpadding="0" border="0" cellspacing="0"
class="tabbing"><tr
style="vertical-align:baseline;" class="tabbing"><td style="width:16;"
class="tabbing"> </td><td
class="tabbing">if <img
src="userhtml7x.png" alt="(k &#x2044;= nlev)" class="left" align="middle"> then</td></tr></table>
<!--l. 115--><p class="noindent" >
<table
cellpadding="0" border="0" cellspacing="0"
class="tabbing"><tr
style="vertical-align:baseline;" class="tabbing"><td style="width:16;"
class="tabbing"> </td><td style="width:16;"
class="tabbing"> </td><td
class="tabbing"><span
class="cmmi-10x-x-109">u</span><sup><span
class="cmmi-8">k</span></sup> = <span
class="cmmi-10x-x-109">u</span><sup><span
class="cmmi-8">k</span></sup> + <span
class="cmmi-10x-x-109">M</span><sup><span
class="cmmi-8">k</span></sup><img
src="userhtml8x.png" alt="( )
bk - Akuk" class="left" align="middle"></td></tr></table>
<!--l. 115--><p class="noindent" >
<table
cellpadding="0" border="0" cellspacing="0"
class="tabbing"><tr
style="vertical-align:baseline;" class="tabbing"><td style="width:16;"
class="tabbing"> </td><td style="width:16;"
class="tabbing"> </td><td
class="tabbing"><span
class="cmmi-10x-x-109">b</span><sup><span
class="cmmi-8">k</span><span
class="cmr-8">+1</span></sup> = <span
class="cmmi-10x-x-109">R</span><sup><span
class="cmmi-8">k</span><span
class="cmr-8">+1</span></sup><img
src="userhtml9x.png" alt="(bk - Akuk )" class="left" align="middle"></td></tr></table>
<!--l. 115--><p class="noindent" >
<table
cellpadding="0" border="0" cellspacing="0"
class="tabbing"><tr
style="vertical-align:baseline;" class="tabbing"><td style="width:16;"
class="tabbing"> </td><td style="width:16;"
class="tabbing"> </td><td
class="tabbing"><span
class="cmmi-10x-x-109">u</span><sup><span
class="cmmi-8">k</span><span
class="cmr-8">+1</span></sup> = V-cycle<img
src="userhtml10x.png" alt="( )
k + 1,Ak+1,bk+1,0" class="left" align="middle"></td></tr></table>
<!--l. 115--><p class="noindent" >
<table
cellpadding="0" border="0" cellspacing="0"
class="tabbing"><tr
style="vertical-align:baseline;" class="tabbing"><td style="width:16;"
class="tabbing"> </td><td style="width:16;"
class="tabbing"> </td><td
class="tabbing"><span
class="cmmi-10x-x-109">u</span><sup><span
class="cmmi-8">k</span></sup> = <span
class="cmmi-10x-x-109">u</span><sup><span
class="cmmi-8">k</span></sup> + <span
class="cmmi-10x-x-109">P</span><sup><span
class="cmmi-8">k</span><span
class="cmr-8">+1</span></sup><span
class="cmmi-10x-x-109">u</span><sup><span
class="cmmi-8">k</span><span
class="cmr-8">+1</span></sup></td></tr></table>
<!--l. 115--><p class="noindent" >
<table
cellpadding="0" border="0" cellspacing="0"
class="tabbing"><tr
style="vertical-align:baseline;" class="tabbing"><td style="width:16;"
class="tabbing"> </td><td style="width:16;"
class="tabbing"> </td><td
class="tabbing"><span
class="cmmi-10x-x-109">u</span><sup><span
class="cmmi-8">k</span></sup> = <span
class="cmmi-10x-x-109">u</span><sup><span
class="cmmi-8">k</span></sup> + <span
class="cmmi-10x-x-109">M</span><sup><span
class="cmmi-8">k</span></sup><img
src="userhtml11x.png" alt="( )
bk - Akuk" class="left" align="middle"></td></tr></table>
<!--l. 115--><p class="noindent" >
<table
cellpadding="0" border="0" cellspacing="0"
class="tabbing"><tr
style="vertical-align:baseline;" class="tabbing"><td style="width:16;"
class="tabbing"> </td><td
class="tabbing">else</td></tr></table>
<!--l. 115--><p class="noindent" >
<table
cellpadding="0" border="0" cellspacing="0"
class="tabbing"><tr
style="vertical-align:baseline;" class="tabbing"><td style="width:16;"
class="tabbing"> </td><td style="width:16;"
class="tabbing"> </td><td
class="tabbing"><span
class="cmmi-10x-x-109">u</span><sup><span
class="cmmi-8">k</span></sup> = <img
src="userhtml12x.png" alt="( )
Ak" class="left" align="middle"><sup><span
class="cmsy-8">-</span><span
class="cmr-8">1</span></sup><span
class="cmmi-10x-x-109">b</span><sup><span
class="cmmi-8">k</span></sup></td></tr></table>
<!--l. 115--><p class="noindent" >
<table
cellpadding="0" border="0" cellspacing="0"
class="tabbing"><tr
style="vertical-align:baseline;" class="tabbing"><td style="width:16;"
class="tabbing"> </td><td
class="tabbing">endif</td></tr></table>
<!--l. 115--><p class="noindent" >
<table
cellpadding="0" border="0" cellspacing="0"
class="tabbing"><tr
style="vertical-align:baseline;" class="tabbing"><td style="width:16;"
class="tabbing"> </td><td
class="tabbing">return <span
class="cmmi-10x-x-109">u</span><sup><span
class="cmmi-8">k</span></sup></td></tr></table>
<!--l. 115--><p class="noindent" >
<table
cellpadding="0" border="0" cellspacing="0"
class="tabbing"><tr
style="vertical-align:baseline;" class="tabbing"><td
class="tabbing">end</td></tr></table>
<!--l. 115--><p class="noindent" > </div> </div>
<br /> <div class="caption"
><span class="id">Figure&#x00A0;1: </span><span
class="content">Application phase of a V-cycle preconditioner.</span></div><!--tex4ht:label?: x14-130021 -->
</div>
<!--l. 118--><p class="indent" > </div><hr class="endfigure">
<!--l. 120--><p class="indent" > <span
class="cmr-12">The components produced in the build phase may be combined in several ways to</span>
<span
class="cmr-12">obtain different multilevel preconditioners; this is done in the application phase, i.e., in</span>
<span
class="cmr-12">the computation of a vector of type </span><span
class="cmmi-12">w </span><span
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="cmmi-12">v</span><span
class="cmr-12">, where </span><span
class="cmmi-12">B </span><span
class="cmr-12">denotes the preconditioner,</span>
<span
class="cmr-12">usually within an iteration of a Krylov solver </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XSaad_book"><span
class="cmr-12">21</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">. An example of such a combination,</span>
<span
class="cmr-12">known as V-cycle, is given in Figure</span><span
class="cmr-12">&#x00A0;</span><a
href="#x14-130021"><span
class="cmr-12">1</span><!--tex4ht:ref: fig:application_alg --></a><span
class="cmr-12">. In this case, a single iteration of the same</span>
<span
class="cmr-12">smoother is used before and after the the recursive call to the V-cycle (i.e., in the</span>
<span
class="cmr-12">pre-smoothing and post-smoothing phases); however, different choices can be</span>
<span
class="cmr-12">performed. Other cycles can be defined; in MLD2P4, we implemented the</span>
<span
class="cmr-12">standard V-cycle and W-cycle</span><span
class="cmr-12">&#x00A0;</span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XBriggs2000"><span
class="cmr-12">3</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">, and a version of the K-cycle described</span>
<span
class="cmr-12">in</span><span
class="cmr-12">&#x00A0;</span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XNotay2008"><span
class="cmr-12">20</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span>
<!--l. 133--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu7.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu6.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse4.html#userhtmlsu6.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 133--><p class="indent" > <a
id="tailuserhtmlsu6.html"></a>
</body></html>

@ -0,0 +1,395 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>Smoothed Aggregation</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 133--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu8.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu6.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu6.html#tailuserhtmlsu6.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlsu7.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse4.html#userhtmlsu7.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">4.2 </span></span> <a
id="x15-140004.2"></a><span
class="cmr-12">Smoothed Aggregation</span></h4>
<!--l. 135--><p class="noindent" ><span
class="cmr-12">In order to define the prolongator </span><span
class="cmmi-12">P</span><sup><span
class="cmmi-8">k</span></sup><span
class="cmr-12">, used to compute the coarse-level matrix </span><span
class="cmmi-12">A</span><sup><span
class="cmmi-8">k</span><span
class="cmr-8">+1</span></sup><span
class="cmr-12">,</span>
<span
class="cmr-12">MLD2P4 uses the smoothed aggregation algorithm described in </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XBREZINA_VANEK"><span
class="cmr-12">2</span></a><span
class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlli4.html#XVANEK_MANDEL_BREZINA"><span
class="cmr-12">26</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">. The basic idea</span>
<span
class="cmr-12">of this algorithm is to build a coarse set of indices &#x03A9;</span><sup><span
class="cmmi-8">k</span><span
class="cmr-8">+1</span></sup> <span
class="cmr-12">by suitably grouping the</span>
<span
class="cmr-12">indices of &#x03A9;</span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">into disjoint subsets (aggregates), and to define the coarse-to-fine space</span>
<span
class="cmr-12">transfer operator </span><span
class="cmmi-12">P</span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">by applying a suitable smoother to a simple piecewise constant</span>
<span
class="cmr-12">prolongation operator, with the aim of improving the quality of the coarse-space</span>
<span
class="cmr-12">correction.</span>
<!--l. 144--><p class="indent" > <span
class="cmr-12">Three main steps can be identified in the smoothed aggregation procedure:</span>
<ol class="enumerate1" >
<li
class="enumerate" id="x15-14002x1"><span
class="cmr-12">aggregation of the indices of &#x03A9;</span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">to obtain &#x03A9;</span><sup><span
class="cmmi-8">k</span><span
class="cmr-8">+1</span></sup><span
class="cmr-12">;</span>
</li>
<li
class="enumerate" id="x15-14004x2"><span
class="cmr-12">construction of the prolongator </span><span
class="cmmi-12">P</span><sup><span
class="cmmi-8">k</span></sup><span
class="cmr-12">;</span>
</li>
<li
class="enumerate" id="x15-14006x3"><span
class="cmr-12">application of </span><span
class="cmmi-12">P</span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">and </span><span
class="cmmi-12">R</span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">= (</span><span
class="cmmi-12">P</span><sup><span
class="cmmi-8">k</span></sup><span
class="cmr-12">)</span><sup><span
class="cmmi-8">T</span> </sup> <span
class="cmr-12">to build </span><span
class="cmmi-12">A</span><sup><span
class="cmmi-8">k</span><span
class="cmr-8">+1</span></sup><span
class="cmr-12">.</span></li></ol>
<!--l. 151--><p class="indent" > <span
class="cmr-12">In order to perform the coarsening step, the smoothed aggregation algorithm</span>
<span
class="cmr-12">described in</span><span
class="cmr-12">&#x00A0;</span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XVANEK_MANDEL_BREZINA"><span
class="cmr-12">26</span></a><span
class="cmr-12">]</span></span> <span
class="cmr-12">is used. In this algorithm, each index </span><span
class="cmmi-12">j </span><span
class="cmsy-10x-x-120">&#x2208; </span><span
class="cmr-12">&#x03A9;</span><sup><span
class="cmmi-8">k</span><span
class="cmr-8">+1</span></sup> <span
class="cmr-12">corresponds</span>
<span
class="cmr-12">to an aggregate &#x03A9;</span><sub><span
class="cmmi-8">j</span></sub><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">of &#x03A9;</span><sup><span
class="cmmi-8">k</span></sup><span
class="cmr-12">, consisting of a suitably chosen index </span><span
class="cmmi-12">i </span><span
class="cmsy-10x-x-120">&#x2208; </span><span
class="cmr-12">&#x03A9;</span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">and</span>
<span
class="cmr-12">indices that are (usually) contained in a strongly-coupled neighborood of </span><span
class="cmmi-12">i</span><span
class="cmr-12">,</span>
<span
class="cmr-12">i.e.,</span>
<table
class="equation"><tr><td>
<center class="math-display" >
<img
src="userhtml13x.png" alt=" { &#x2218; -------}
&#x03A9;kj &#x2282; N ki (&#x03B8;) = r &#x2208; &#x03A9;k : |akir| &#x003E; &#x03B8; |akiiakrr| &#x222A; {i} ,
" class="math-display" ><a
id="x15-14007r3"></a></center></td><td class="equation-label"><span
class="cmr-12">(3)</span></td></tr></table>
<!--l. 160--><p class="nopar" >
<span
class="cmr-12">for a given threshold </span><span
class="cmmi-12">&#x03B8; </span><span
class="cmsy-10x-x-120">&#x2208; </span><span
class="cmr-12">[0</span><span
class="cmmi-12">, </span><span
class="cmr-12">1] (see</span><span
class="cmr-12">&#x00A0;</span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XVANEK_MANDEL_BREZINA"><span
class="cmr-12">26</span></a><span
class="cmr-12">]</span></span> <span
class="cmr-12">for the details). Since this algorithm has a</span>
<span
class="cmr-12">sequential nature, a decoupled version of it is applied, where each processor</span>
<span
class="cmr-12">independently executes the algorithm on the set of indices assigned to it in the initial</span>
<span
class="cmr-12">data distribution. This version is embarrassingly parallel, since it does not require any</span>
<span
class="cmr-12">data communication. On the other hand, it may produce some nonuniform aggregates</span>
<span
class="cmr-12">and is strongly dependent on the number of processors and on the initial</span>
<span
class="cmr-12">partitioning of the matrix </span><span
class="cmmi-12">A</span><span
class="cmr-12">. Nevertheless, this parallel algorithm has been chosen</span>
<span
class="cmr-12">for MLD2P4, since it has been shown to produce good results in practice</span>
<span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#Xaaecc_07"><span
class="cmr-12">5</span></a><span
class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlli4.html#Xapnum_07"><span
class="cmr-12">7</span></a><span
class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlli4.html#XTUMINARO_TONG"><span
class="cmr-12">25</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span>
<!--l. 172--><p class="indent" > <span
class="cmr-12">The prolongator </span><span
class="cmmi-12">P</span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">is built starting from a tentative prolongator</span> <span class="bar-css"><span
class="cmmi-12">P</span></span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmsy-10x-x-120">&#x2208; </span><span
class="msbm-10x-x-120">&#x211D;</span><sup><span
class="cmmi-8">n</span><sub><span
class="cmmi-6">k</span></sub><span
class="cmsy-8">&#x00D7;</span><span
class="cmmi-8">n</span><sub><span
class="cmmi-6">k</span><span
class="cmr-6">+1</span></sub></sup><span
class="cmr-12">,</span>
<span
class="cmr-12">defined as</span>
<table
class="equation"><tr><td>
<center class="math-display" >
<img
src="userhtml14x.png" alt=" { k
P¯k = (¯pkij), p¯kij = 1 if i &#x2208; &#x03A9; j,
0 otherwise,
" class="math-display" ><a
id="x15-14008r4"></a></center></td><td class="equation-label"><span
class="cmr-12">(4)</span></td></tr></table>
<!--l. 181--><p class="nopar" >
<span
class="cmr-12">where &#x03A9;</span><sub><span
class="cmmi-8">j</span></sub><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">is the aggregate of &#x03A9;</span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">corresponding to the index </span><span
class="cmmi-12">j </span><span
class="cmsy-10x-x-120">&#x2208; </span><span
class="cmr-12">&#x03A9;</span><sup><span
class="cmmi-8">k</span><span
class="cmr-8">+1</span></sup><span
class="cmr-12">. </span><span
class="cmmi-12">P</span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">is obtained</span>
<span
class="cmr-12">by applying to</span> <span class="bar-css"><span
class="cmmi-12">P</span></span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">a smoother </span><span
class="cmmi-12">S</span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmsy-10x-x-120">&#x2208; </span><span
class="msbm-10x-x-120">&#x211D;</span><sup><span
class="cmmi-8">n</span><sub><span
class="cmmi-6">k</span></sub><span
class="cmsy-8">&#x00D7;</span><span
class="cmmi-8">n</span><sub><span
class="cmmi-6">k</span></sub></sup><span
class="cmr-12">:</span>
<center class="math-display" >
<img
src="userhtml15x.png" alt="Pk = Sk ¯Pk, " class="math-display" ></center> <span
class="cmr-12">in</span>
<span
class="cmr-12">order to remove nonsmooth components from the range of the prolongator, and hence</span>
<span
class="cmr-12">to improve the convergence properties of the multilevel method</span><span
class="cmr-12">&#x00A0;</span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XBREZINA_VANEK"><span
class="cmr-12">2</span></a><span
class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlli4.html#XStuben_01"><span
class="cmr-12">24</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">. A simple</span>
<span
class="cmr-12">choice for </span><span
class="cmmi-12">S</span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">is the damped Jacobi smoother:</span>
<center class="math-display" >
<img
src="userhtml16x.png" alt=" k k k -1 k
S = I - &#x03C9; (D ) A F,
" class="math-display" ></center>
<!--l. 195--><p class="nopar" > <span
class="cmr-12">where </span><span
class="cmmi-12">D</span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">is the diagonal matrix with the same diagonal entries as </span><span
class="cmmi-12">A</span><sup><span
class="cmmi-8">k</span></sup><span
class="cmr-12">, </span><span
class="cmmi-12">A</span><sub>
<span
class="cmmi-8">F</span> </sub><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">= (</span><span class="bar-css"><span
class="cmmi-12">a</span></span><sub>
<span
class="cmmi-8">ij</span></sub><sup><span
class="cmmi-8">k</span></sup><span
class="cmr-12">) is</span>
<span
class="cmr-12">the filtered matrix defined as</span>
<table
class="equation"><tr><td>
<center class="math-display" >
<img
src="userhtml17x.png" alt=" { k k &#x2211;
a¯kij = aij if j &#x2208; N i (&#x03B8;), (j &#x2044;= i), ¯akii = akii - (akij - ¯akij),
0 otherwise, j&#x2044;=i
" class="math-display" ><a
id="x15-14009r5"></a></center></td><td class="equation-label"><span
class="cmr-12">(5)</span></td></tr></table>
<!--l. 208--><p class="nopar" >
<span
class="cmr-12">and </span><span
class="cmmi-12">&#x03C9;</span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">is an approximation of 4</span><span
class="cmmi-12">&#x2215;</span><span
class="cmr-12">(3</span><span
class="cmmi-12">&#x03C1;</span><sup><span
class="cmmi-8">k</span></sup><span
class="cmr-12">), where </span><span
class="cmmi-12">&#x03C1;</span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">is the spectral radius of (</span><span
class="cmmi-12">D</span><sup><span
class="cmmi-8">k</span></sup><span
class="cmr-12">)</span><sup><span
class="cmsy-8">-</span><span
class="cmr-8">1</span></sup><span
class="cmmi-12">A</span><sub>
<span
class="cmmi-8">F</span> </sub><sup><span
class="cmmi-8">k</span></sup>
<span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XBREZINA_VANEK"><span
class="cmr-12">2</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">. In MLD2P4 this approximation is obtained by using </span><span
class="cmsy-10x-x-120">&#x2225;</span><span
class="cmmi-12">A</span><sub><span
class="cmmi-8">F</span> </sub><sup><span
class="cmmi-8">k</span></sup><span
class="cmsy-10x-x-120">&#x2225;</span><sub>
<span
class="cmsy-8">&#x221E;</span></sub> <span
class="cmr-12">as an estimate of </span><span
class="cmmi-12">&#x03C1;</span><sup><span
class="cmmi-8">k</span></sup><span
class="cmr-12">.</span>
<span
class="cmr-12">Note that for systems coming from uniformly elliptic problems, filtering the matrix </span><span
class="cmmi-12">A</span><sup><span
class="cmmi-8">k</span></sup>
<span
class="cmr-12">has little or no effect, and </span><span
class="cmmi-12">A</span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">can be used instead of </span><span
class="cmmi-12">A</span><sub>
<span
class="cmmi-8">F</span> </sub><sup><span
class="cmmi-8">k</span></sup><span
class="cmr-12">. The latter choice is the</span>
<span
class="cmr-12">default in MLD2P4.</span>
<!--l. 216--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu8.html" ><span
class="cmr-12">next</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu6.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu6.html#tailuserhtmlsu6.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu7.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse4.html#userhtmlsu7.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 216--><p class="indent" > <a
id="tailuserhtmlsu7.html"></a>
</body></html>

@ -0,0 +1,355 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>Smoothers and coarsest-level solvers</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 216--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu7.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu7.html#tailuserhtmlsu7.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="#tailuserhtmlsu8.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse4.html#userhtmlsu8.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">4.3 </span></span> <a
id="x16-150004.3"></a><span
class="cmr-12">Smoothers and coarsest-level solvers</span></h4>
<!--l. 218--><p class="noindent" ><span
class="cmr-12">The smoothers implemented in MLD2P4 include the Jacobi and block-Jacobi methods,</span>
<span
class="cmr-12">a hybrid version of the forward and backward Gauss-Seidel methods, and the additive</span>
<span
class="cmr-12">Schwarz (AS) ones (see, e.g., </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XSaad_book"><span
class="cmr-12">21</span></a><span
class="cmr-12">,</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlli4.html#Xdd2_96"><span
class="cmr-12">22</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">).</span>
<!--l. 222--><p class="indent" > <span
class="cmr-12">The hybrid Gauss-Seidel version is considered because the original Gauss-Seidel</span>
<span
class="cmr-12">method is inherently sequential. At each iteration of the hybrid version, each parallel</span>
<span
class="cmr-12">process uses the most recent values of its own local variables and the values</span>
<span
class="cmr-12">of the non-local variables computed at the previous iteration, obtained by</span>
<span
class="cmr-12">exchanging data with other processes before the beginning of the current</span>
<span
class="cmr-12">iteration.</span>
<!--l. 229--><p class="indent" > <span
class="cmr-12">In the AS methods, the index space &#x03A9;</span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">is divided into </span><span
class="cmmi-12">m</span><sub>
<span
class="cmmi-8">k</span></sub> <span
class="cmr-12">subsets &#x03A9;</span><sub><span
class="cmmi-8">i</span></sub><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">of</span>
<span
class="cmr-12">size </span><span
class="cmmi-12">n</span><sub><span
class="cmmi-8">k,i</span></sub><span
class="cmr-12">, possibly overlapping. For each </span><span
class="cmmi-12">i </span><span
class="cmr-12">we consider the restriction operator</span>
<span
class="cmmi-12">R</span><sub><span
class="cmmi-8">i</span></sub><sup><span
class="cmmi-8">k</span></sup> <span
class="cmsy-10x-x-120">&#x2208; </span><span
class="msbm-10x-x-120">&#x211D;</span><sup><span
class="cmmi-8">n</span><sub><span
class="cmmi-6">k,i</span></sub><span
class="cmsy-8">&#x00D7;</span><span
class="cmmi-8">n</span><sub><span
class="cmmi-6">k</span></sub></sup> <span
class="cmr-12">that maps a vector </span><span
class="cmmi-12">x</span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">to the vector </span><span
class="cmmi-12">x</span><sub>
<span
class="cmmi-8">i</span></sub><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">made of the components of</span>
<span
class="cmmi-12">x</span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">with indices in &#x03A9;</span><sub>
<span
class="cmmi-8">i</span></sub><sup><span
class="cmmi-8">k</span></sup><span
class="cmr-12">, and the prolongation operator </span><span
class="cmmi-12">P</span><sub>
<span
class="cmmi-8">i</span></sub><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">= (</span><span
class="cmmi-12">R</span><sub>
<span
class="cmmi-8">i</span></sub><sup><span
class="cmmi-8">k</span></sup><span
class="cmr-12">)</span><sup><span
class="cmmi-8">T</span> </sup><span
class="cmr-12">. These</span>
<span
class="cmr-12">operators are then used to build </span><span
class="cmmi-12">A</span><sub><span
class="cmmi-8">i</span></sub><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">= </span><span
class="cmmi-12">R</span><sub>
<span
class="cmmi-8">i</span></sub><sup><span
class="cmmi-8">k</span></sup><span
class="cmmi-12">A</span><sup><span
class="cmmi-8">k</span></sup><span
class="cmmi-12">P</span><sub>
<span
class="cmmi-8">i</span></sub><sup><span
class="cmmi-8">k</span></sup><span
class="cmr-12">, which is the restriction of</span>
<span
class="cmmi-12">A</span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">to the index space &#x03A9;</span><sub>
<span
class="cmmi-8">i</span></sub><sup><span
class="cmmi-8">k</span></sup><span
class="cmr-12">. The classical AS preconditioner </span><span
class="cmmi-12">M</span><sub>
<span
class="cmmi-8">AS</span></sub><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">is defined</span>
<span
class="cmr-12">as</span>
<center class="math-display" >
<img
src="userhtml18x.png" alt=" m&#x2211;k
(M AkS )-1 = Pki (Aki)-1Rki,
i=1
" class="math-display" ></center>
<!--l. 241--><p class="nopar" > <span
class="cmr-12">where </span><span
class="cmmi-12">A</span><sub><span
class="cmmi-8">i</span></sub><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">is supposed to be nonsingular. We observe that an approximate inverse of</span>
<span
class="cmmi-12">A</span><sub><span
class="cmmi-8">i</span></sub><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">is usually considered instead of (</span><span
class="cmmi-12">A</span><sub>
<span
class="cmmi-8">i</span></sub><sup><span
class="cmmi-8">k</span></sup><span
class="cmr-12">)</span><sup><span
class="cmsy-8">-</span><span
class="cmr-8">1</span></sup><span
class="cmr-12">. The setup of </span><span
class="cmmi-12">M</span><sub>
<span
class="cmmi-8">AS</span></sub><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">during the multilevel</span>
<span
class="cmr-12">build phase involves</span>
<ul class="itemize1">
<li class="itemize"><span
class="cmr-12">the definition of the index subspaces &#x03A9;</span><sub><span
class="cmmi-8">i</span></sub><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">and of the corresponding operators</span>
<span
class="cmmi-12">R</span><sub><span
class="cmmi-8">i</span></sub><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">(and </span><span
class="cmmi-12">P</span><sub>
<span
class="cmmi-8">i</span></sub><sup><span
class="cmmi-8">k</span></sup><span
class="cmr-12">);</span>
</li>
<li class="itemize"><span
class="cmr-12">the computation of the submatrices </span><span
class="cmmi-12">A</span><sub><span
class="cmmi-8">i</span></sub><sup><span
class="cmmi-8">k</span></sup><span
class="cmr-12">;</span>
</li>
<li class="itemize"><span
class="cmr-12">the computation of their inverses (usually approximated through some form</span>
<span
class="cmr-12">of incomplete factorization).</span></li></ul>
<!--l. 253--><p class="noindent" ><span
class="cmr-12">The computation of </span><span
class="cmmi-12">z</span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">= </span><span
class="cmmi-12">M</span><sub>
<span
class="cmmi-8">AS</span></sub><sup><span
class="cmmi-8">k</span></sup><span
class="cmmi-12">w</span><sup><span
class="cmmi-8">k</span></sup><span
class="cmr-12">, with </span><span
class="cmmi-12">w</span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmsy-10x-x-120">&#x2208; </span><span
class="msbm-10x-x-120">&#x211D;</span><sup><span
class="cmmi-8">n</span><sub><span
class="cmmi-6">k</span></sub></sup><span
class="cmr-12">, during the multilevel application</span>
<span
class="cmr-12">phase, requires</span>
<ul class="itemize1">
<li class="itemize"><span
class="cmr-12">the restriction of </span><span
class="cmmi-12">w</span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">to the subspaces </span><span
class="msbm-10x-x-120">&#x211D;</span><sup><span
class="cmmi-8">n</span><sub><span
class="cmmi-6">k,i</span></sub></sup><span
class="cmr-12">, i.e.</span><span
class="cmr-12">&#x00A0;</span><span
class="cmmi-12">w</span><sub>
<span
class="cmmi-8">i</span></sub><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">= </span><span
class="cmmi-12">R</span><sub>
<span
class="cmmi-8">i</span></sub><sup><span
class="cmmi-8">k</span></sup><span
class="cmmi-12">w</span><sup><span
class="cmmi-8">k</span></sup><span
class="cmr-12">;</span>
</li>
<li class="itemize"><span
class="cmr-12">the computation of the vectors </span><span
class="cmmi-12">z</span><sub><span
class="cmmi-8">i</span></sub><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">= (</span><span
class="cmmi-12">A</span><sub>
<span
class="cmmi-8">i</span></sub><sup><span
class="cmmi-8">k</span></sup><span
class="cmr-12">)</span><sup><span
class="cmsy-8">-</span><span
class="cmr-8">1</span></sup><span
class="cmmi-12">w</span><sub>
<span
class="cmmi-8">i</span></sub><sup><span
class="cmmi-8">k</span></sup><span
class="cmr-12">;</span>
</li>
<li class="itemize"><span
class="cmr-12">the prolongation and the sum of the previous vectors, i.e.</span><span
class="cmr-12">&#x00A0;</span><span
class="cmmi-12">z</span><sup><span
class="cmmi-8">k</span></sup> <span
class="cmr-12">=</span>
<span
class="cmex-10x-x-120">&#x2211;</span>
<sub><span
class="cmmi-8">i</span><span
class="cmr-8">=1</span></sub><sup><span
class="cmmi-8">m</span><sub><span
class="cmmi-6">k</span></sub></sup><span
class="cmmi-12">P</span><sub>
<span
class="cmmi-8">i</span></sub><sup><span
class="cmmi-8">k</span></sup><span
class="cmmi-12">z</span><sub>
<span
class="cmmi-8">i</span></sub><sup><span
class="cmmi-8">k</span></sup><span
class="cmr-12">.</span></li></ul>
<!--l. 262--><p class="noindent" ><span
class="cmr-12">Variants of the classical AS method, which use modifications of the restriction and</span>
<span
class="cmr-12">prolongation operators, are also implemented in MLD2P4. Among them, the Restricted</span>
<span
class="cmr-12">AS (RAS) preconditioner usually outperforms the classical AS preconditioner in terms</span>
<span
class="cmr-12">of convergence rate and of computation and communication time on parallel</span>
<span
class="cmr-12">distributed-memory computers, and is therefore the most widely used among the AS</span>
<span
class="cmr-12">preconditioners</span><span
class="cmr-12">&#x00A0;</span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XCAI_SARKIS"><span
class="cmr-12">6</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span>
<!--l. 270--><p class="indent" > <span
class="cmr-12">Direct solvers based on sparse LU factorizations, implemented in the third-party</span>
<span
class="cmr-12">libraries reported in Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlsu2.html#x9-80003.2"><span
class="cmr-12">3.2</span><!--tex4ht:ref: sec:third-party --></a><span
class="cmr-12">, can be applied as coarsest-level solvers by</span>
<span
class="cmr-12">MLD2P4. Native inexact solvers based on incomplete LU factorizations, as well as</span>
<span
class="cmr-12">Jacobi, hybrid (forward) Gauss-Seidel, and block Jacobi preconditioners are</span>
<span
class="cmr-12">also available. Direct solvers usually lead to more effective preconditioners in</span>
<span
class="cmr-12">terms of algorithmic scalability; however, this does not guarantee parallel</span>
<span
class="cmr-12">efficiency.</span>
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu7.html" ><span
class="cmr-12">prev</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu7.html#tailuserhtmlsu7.html" ><span
class="cmr-12">prev-tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlsu8.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse4.html#userhtmlsu8.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 1--><p class="indent" > <a
id="tailuserhtmlsu8.html"></a>
</body></html>

@ -0,0 +1,381 @@
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>Examples</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="generator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<meta name="originator" content="TeX4ht (http://www.tug.org/tex4ht/)">
<!-- html,3 -->
<meta name="src" content="userhtml.tex">
<link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body
>
<!--l. 122--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="#tailuserhtmlsu9.html"><span
class="cmr-12">tail</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu9.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<h4 class="subsectionHead"><span class="titlemark"><span
class="cmr-12">5.1 </span></span> <a
id="x18-170005.1"></a><span
class="cmr-12">Examples</span></h4>
<!--l. 124--><p class="noindent" ><span
class="cmr-12">The code reported in Figure</span><span
class="cmr-12">&#x00A0;</span><a
href="#x18-170012"><span
class="cmr-12">2</span><!--tex4ht:ref: fig:ex1 --></a> <span
class="cmr-12">shows how to set and apply the default multilevel</span>
<span
class="cmr-12">preconditioner available in the real double precision version of MLD2P4 (see Table</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse5.html#x17-160151"><span
class="cmr-12">1</span><!--tex4ht:ref: tab:precinit --></a><span
class="cmr-12">).</span>
<span
class="cmr-12">This preconditioner is chosen by simply specifying </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">&#8217;ML&#8217;</span></span></span> <span
class="cmr-12">as the second argument of</span>
<span class="obeylines-h"><span class="verb"><span
class="cmtt-12">P%init</span></span></span> <span
class="cmr-12">(a call to </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">P%set</span></span></span> <span
class="cmr-12">is not needed) and is applied with the CG solver provided by</span>
<span
class="cmr-12">PSBLAS (the matrix of the system to be solved is assumed to be positive definite). As</span>
<span
class="cmr-12">previously observed, the modules </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">psb_base_mod</span></span></span><span
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">mld_prec_mod</span></span></span> <span
class="cmr-12">and </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">psb_krylov_mod</span></span></span>
<span
class="cmr-12">must be used by the example program.</span>
<!--l. 134--><p class="indent" > <span
class="cmr-12">The part of the code concerning the reading and assembling of the sparse matrix</span>
<span
class="cmr-12">and the right-hand side vector, performed through the PSBLAS routines for sparse</span>
<span
class="cmr-12">matrix and vector management, is not reported here for brevity; the statements</span>
<span
class="cmr-12">concerning the deallocation of the PSBLAS data structure are neglected too. The</span>
<span
class="cmr-12">complete code can be found in the example program file </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">mld_dexample_ml.f90</span></span></span><span
class="cmr-12">,</span>
<span
class="cmr-12">in the directory </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">examples/fileread</span></span></span> <span
class="cmr-12">of the MLD2P4 implementation (see</span>
<span
class="cmr-12">Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlsu5.html#x12-110003.5"><span
class="cmr-12">3.5</span><!--tex4ht:ref: sec:ex_and_test --></a><span
class="cmr-12">). A sample test problem along with the relevant input data is available in</span>
<span class="obeylines-h"><span class="verb"><span
class="cmtt-12">examples/fileread/runs</span></span></span><span
class="cmr-12">. For details on the use of the PSBLAS routines, see the</span>
<span
class="cmr-12">PSBLAS User&#8217;s Guide</span><span
class="cmr-12">&#x00A0;</span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli4.html#XPSBLASGUIDE"><span
class="cmr-12">13</span></a><span
class="cmr-12">]</span></span><span
class="cmr-12">.</span>
<!--l. 146--><p class="indent" > <span
class="cmr-12">The setup and application of the default multilevel preconditioner for the real single</span>
<span
class="cmr-12">precision and the complex, single and double precision, versions are obtained</span>
<span
class="cmr-12">with straightforward modifications of the previous example (see Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse6.html#x19-180006"><span
class="cmr-12">6</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">examples/fileread/</span></span></span><span
class="cmr-12">.</span>
<!--l. 152--><p class="indent" > <hr class="figure"><div class="figure"
>
<a
id="x18-170012"></a>
<div class="center"
>
<!--l. 153--><p class="noindent" >
<div class="minipage"><div class="verbatim" id="verbatim-6">
&#x00A0;&#x00A0;use&#x00A0;psb_base_mod
&#x00A0;<br />&#x00A0;&#x00A0;use&#x00A0;mld_prec_mod
&#x00A0;<br />&#x00A0;&#x00A0;use&#x00A0;psb_krylov_mod
&#x00A0;<br />...&#x00A0;...
&#x00A0;<br />!
&#x00A0;<br />!&#x00A0;sparse&#x00A0;matrix
&#x00A0;<br />&#x00A0;&#x00A0;type(psb_dspmat_type)&#x00A0;::&#x00A0;A
&#x00A0;<br />!&#x00A0;sparse&#x00A0;matrix&#x00A0;descriptor
&#x00A0;<br />&#x00A0;&#x00A0;type(psb_desc_type)&#x00A0;&#x00A0;&#x00A0;::&#x00A0;desc_A
&#x00A0;<br />!&#x00A0;preconditioner
&#x00A0;<br />&#x00A0;&#x00A0;type(mld_dprec_type)&#x00A0;&#x00A0;::&#x00A0;P
&#x00A0;<br />!&#x00A0;right-hand&#x00A0;side&#x00A0;and&#x00A0;solution&#x00A0;vectors
&#x00A0;<br />&#x00A0;&#x00A0;type(psb_d_vect_type)&#x00A0;::&#x00A0;b,&#x00A0;x
&#x00A0;<br />...&#x00A0;...
&#x00A0;<br />!
&#x00A0;<br />!&#x00A0;initialize&#x00A0;the&#x00A0;parallel&#x00A0;environment
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;psb_init(ictxt)
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;psb_info(ictxt,iam,np)
&#x00A0;<br />...&#x00A0;...
&#x00A0;<br />!
&#x00A0;<br />!&#x00A0;read&#x00A0;and&#x00A0;assemble&#x00A0;the&#x00A0;spd&#x00A0;matrix&#x00A0;A&#x00A0;and&#x00A0;the&#x00A0;right-hand&#x00A0;side&#x00A0;b
&#x00A0;<br />!&#x00A0;using&#x00A0;PSBLAS&#x00A0;routines&#x00A0;for&#x00A0;sparse&#x00A0;matrix&#x00A0;/&#x00A0;vector&#x00A0;management
&#x00A0;<br />...&#x00A0;...
&#x00A0;<br />!
&#x00A0;<br />!&#x00A0;initialize&#x00A0;the&#x00A0;default&#x00A0;multilevel&#x00A0;preconditioner,&#x00A0;i.e.&#x00A0;V-cycle
&#x00A0;<br />!&#x00A0;with&#x00A0;basic&#x00A0;smoothed&#x00A0;aggregation,&#x00A0;1&#x00A0;hybrid&#x00A0;forward/backward
&#x00A0;<br />!&#x00A0;GS&#x00A0;sweep&#x00A0;as&#x00A0;pre/post-smoother&#x00A0;and&#x00A0;UMFPACK&#x00A0;as&#x00A0;coarsest-level
&#x00A0;<br />!&#x00A0;solver
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%init(&#8217;ML&#8217;,info)
&#x00A0;<br />!
&#x00A0;<br />!&#x00A0;build&#x00A0;the&#x00A0;preconditioner
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%hierarchy_build(A,desc_A,info)
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%smoothers_build(A,desc_A,info)
&#x00A0;<br />
&#x00A0;<br />!
&#x00A0;<br />!&#x00A0;set&#x00A0;the&#x00A0;solver&#x00A0;parameters&#x00A0;and&#x00A0;the&#x00A0;initial&#x00A0;guess
&#x00A0;<br />&#x00A0;&#x00A0;...&#x00A0;...
&#x00A0;<br />!
&#x00A0;<br />!&#x00A0;solve&#x00A0;Ax=b&#x00A0;with&#x00A0;preconditioned&#x00A0;CG
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;psb_krylov(&#8217;CG&#8217;,A,P,b,x,tol,desc_A,info)
&#x00A0;<br />&#x00A0;&#x00A0;...&#x00A0;...
&#x00A0;<br />!
&#x00A0;<br />!&#x00A0;deallocate&#x00A0;the&#x00A0;preconditioner
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%free(info)
&#x00A0;<br />!
&#x00A0;<br />!&#x00A0;deallocate&#x00A0;other&#x00A0;data&#x00A0;structures
&#x00A0;<br />&#x00A0;&#x00A0;...&#x00A0;...
&#x00A0;<br />!
&#x00A0;<br />!&#x00A0;exit&#x00A0;the&#x00A0;parallel&#x00A0;environment
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;psb_exit(ictxt)
&#x00A0;<br />&#x00A0;&#x00A0;stop
</div>
<!--l. 208--><p class="nopar" >
</div>
<br /> <div class="caption"
><span class="id">Figure&#x00A0;2: </span><span
class="content">setup and application of the default multilevel preconditioner (example 1). </span></div><!--tex4ht:label?: x18-170012 -->
</div>
<!--l. 214--><p class="indent" > </div><hr class="endfigure">
<!--l. 216--><p class="indent" > <span
class="cmr-12">Different versions of the multilevel preconditioner can be obtained by changing the</span>
<span
class="cmr-12">default values of the preconditioner parameters. The code reported in Figure</span><span
class="cmr-12">&#x00A0;</span><a
href="#x18-170023"><span
class="cmr-12">3</span><!--tex4ht:ref: fig:ex2 --></a> <span
class="cmr-12">shows</span>
<span
class="cmr-12">how to set a V-cycle preconditioner which applies 1 block-Jacobi sweep as pre- and</span>
<span
class="cmr-12">post-smoother, and solves the coarsest-level system with 8 block-Jacobi sweeps. Note</span>
<span
class="cmr-12">that the ILU(0) factorization (plus triangular solve) is used as local solver for the</span>
<span
class="cmr-12">block-Jacobi sweeps, since this is the default associated with block-Jacobi and set</span>
<span
class="cmr-12">by</span><span
class="cmr-12">&#x00A0;</span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">P%init</span></span></span><span
class="cmr-12">. Furthermore, specifying block-Jacobi as coarsest-level solver implies that</span>
<span
class="cmr-12">the coarsest-level matrix is distributed among the processes. Figure</span><span
class="cmr-12">&#x00A0;</span><a
href="#x18-170034"><span
class="cmr-12">4</span><!--tex4ht:ref: fig:ex3 --></a> <span
class="cmr-12">shows how to set</span>
<span
class="cmr-12">a W-cycle preconditioner which applies 2 hybrid Gauss-Seidel sweeps as pre- and</span>
<span
class="cmr-12">post-smoother, and solves the coarsest-level system with the multifrontal LU</span>
<span
class="cmr-12">factorization implemented in MUMPS. It is specified that the coarsest-level matrix is</span>
<span
class="cmr-12">distributed, since MUMPS can be used on both replicated and distributed matrices,</span>
<span
class="cmr-12">and by default it is used on replicated ones. The code fragments shown in</span>
<span
class="cmr-12">Figures</span><span
class="cmr-12">&#x00A0;</span><a
href="#x18-170023"><span
class="cmr-12">3</span><!--tex4ht:ref: fig:ex2 --></a> <span
class="cmr-12">and </span><a
href="#x18-170034"><span
class="cmr-12">4</span><!--tex4ht:ref: fig:ex3 --></a> <span
class="cmr-12">are included in the example program file </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">mld_dexample_ml.f90</span></span></span>
<span
class="cmr-12">too.</span>
<!--l. 240--><p class="indent" > <span
class="cmr-12">Finally, Figure</span><span
class="cmr-12">&#x00A0;</span><a
href="#x18-170045"><span
class="cmr-12">5</span><!--tex4ht:ref: fig:ex4 --></a> <span
class="cmr-12">shows the setup of a one-level additive Schwarz preconditioner,</span>
<span
class="cmr-12">i.e., RAS with overlap 2. Note also that a Krylov method different from CG</span>
<span
class="cmr-12">must be used to solve the preconditioned system, since the preconditione in</span>
<span
class="cmr-12">nonsymmetric. The corresponding example program is available in the file</span>
<span class="obeylines-h"><span class="verb"><span
class="cmtt-12">mld_dexample_1lev.f90</span></span></span><span
class="cmr-12">.</span>
<!--l. 247--><p class="indent" > <span
class="cmr-12">For all the previous preconditioners, example programs where the sparse matrix and</span>
<span
class="cmr-12">the right-hand side are generated by discretizing a PDE with Dirichlet boundary</span>
<span
class="cmr-12">conditions are also available in the directory </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">examples/pdegen</span></span></span><span
class="cmr-12">.</span>
<!--l. 261--><p class="indent" > <hr class="figure"><div class="figure"
>
<a
id="x18-170023"></a>
<div class="center"
>
<!--l. 262--><p class="noindent" >
<div class="minipage"><div class="verbatim" id="verbatim-7">
...&#x00A0;...
&#x00A0;<br />!&#x00A0;build&#x00A0;a&#x00A0;V-cycle&#x00A0;preconditioner&#x00A0;with&#x00A0;1&#x00A0;block-Jacobi&#x00A0;sweep&#x00A0;(with
&#x00A0;<br />!&#x00A0;ILU(0)&#x00A0;on&#x00A0;the&#x00A0;blocks)&#x00A0;as&#x00A0;pre-&#x00A0;and&#x00A0;post-smoother,&#x00A0;and&#x00A0;8&#x00A0;&#x00A0;block-Jacobi
&#x00A0;<br />!&#x00A0;sweeps&#x00A0;(with&#x00A0;ILU(0)&#x00A0;on&#x00A0;the&#x00A0;blocks)&#x00A0;as&#x00A0;coarsest-level&#x00A0;solver
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%init(&#8217;ML&#8217;,info)
&#x00A0;<br />&#x00A0;&#x00A0;call_P%set(&#8217;SMOOTHER_TYPE&#8217;,&#8217;BJAC&#8217;,info)
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;COARSE_SOLVE&#8217;,&#8217;BJAC&#8217;,info)
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;COARSE_SWEEPS&#8217;,8,info)
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%hierarchy_build(A,desc_A,info)
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%smoothers_build(A,desc_A,info)
&#x00A0;<br />...&#x00A0;...
</div>
<!--l. 277--><p class="nopar" ></div>
<br /> <div class="caption"
><span class="id">Figure&#x00A0;3: </span><span
class="content">setup of a multilevel preconditioner</span></div><!--tex4ht:label?: x18-170023 -->
</div>
<!--l. 283--><p class="indent" > </div><hr class="endfigure">
<!--l. 285--><p class="indent" > <hr class="figure"><div class="figure"
>
<a
id="x18-170034"></a>
<div class="center"
>
<!--l. 286--><p class="noindent" >
<div class="minipage"><div class="verbatim" id="verbatim-8">
...&#x00A0;...
&#x00A0;<br />!&#x00A0;build&#x00A0;a&#x00A0;W-cycle&#x00A0;preconditioner&#x00A0;with&#x00A0;2&#x00A0;hybrid&#x00A0;Gauss-Seidel&#x00A0;sweeps
&#x00A0;<br />!&#x00A0;as&#x00A0;pre-&#x00A0;and&#x00A0;post-smoother,&#x00A0;a&#x00A0;distributed&#x00A0;coarsest
&#x00A0;<br />!&#x00A0;matrix,&#x00A0;and&#x00A0;MUMPS&#x00A0;as&#x00A0;coarsest-level&#x00A0;solver
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%init(&#8217;ML&#8217;,info)
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;ML_CYCLE&#8217;,&#8217;WCYCLE&#8217;,info)
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;SMOOTHER_TYPE&#8217;,&#8217;FBGS&#8217;,info)
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;SMOOTHER_SWEEPS&#8217;,2,info)
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;COARSE_SOLVE&#8217;,&#8217;MUMPS&#8217;,info)
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;COARSE_MAT&#8217;,&#8217;DIST&#8217;,info)
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%hierarchy_build(A,desc_A,info)
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%smoothers_build(A,desc_A,info)
&#x00A0;<br />...&#x00A0;...
</div>
<!--l. 303--><p class="nopar" ></div>
<br /> <div class="caption"
><span class="id">Figure&#x00A0;4: </span><span
class="content">setup of a multilevel preconditioner</span></div><!--tex4ht:label?: x18-170034 -->
</div>
<!--l. 308--><p class="indent" > </div><hr class="endfigure">
<!--l. 310--><p class="indent" > <hr class="figure"><div class="figure"
>
<a
id="x18-170045"></a>
<div class="center"
>
<!--l. 311--><p class="noindent" >
<div class="minipage"><div class="verbatim" id="verbatim-9">
...&#x00A0;...
&#x00A0;<br />!&#x00A0;set&#x00A0;RAS&#x00A0;with&#x00A0;overlap&#x00A0;2&#x00A0;and&#x00A0;ILU(0)&#x00A0;on&#x00A0;the&#x00A0;local&#x00A0;blocks
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%init(&#8217;AS&#8217;,info)
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%set(&#8217;SUB_OVR&#8217;,2,info)
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;P%bld(A,desc_A,info)
&#x00A0;<br />...&#x00A0;...
&#x00A0;<br />!&#x00A0;solve&#x00A0;Ax=b&#x00A0;with&#x00A0;preconditioned&#x00A0;BiCGSTAB
&#x00A0;<br />&#x00A0;&#x00A0;call&#x00A0;psb_krylov(&#8217;BICGSTAB&#8217;,A,P,b,x,tol,desc_A,info)
</div>
<!--l. 323--><p class="nopar" ></div>
<br /> <div class="caption"
><span class="id">Figure&#x00A0;5: </span><span
class="content">setup of a one-level Schwarz preconditioner.</span></div><!--tex4ht:label?: x18-170045 -->
</div>
<!--l. 328--><p class="indent" > </div><hr class="endfigure">
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a
href="userhtmlsu9.html" ><span
class="cmr-12">front</span></a><span
class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu9.html" ><span
class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div>
<!--l. 1--><p class="indent" > <a
id="tailuserhtmlsu9.html"></a>
</body></html>

@ -2,7 +2,7 @@
%ÐÔÅØ
145 0 obj
<<
/Length 1211
/Length 1210
>>
stream
0 g 0 G
@ -11,20 +11,20 @@ stream
0 g 0 G
0 g 0 G
BT
/F17 24.7871 Tf 394.538 618.833 Td [(MLD2P4)]TJ -229.059 -27.023 Td [(User's)-375(and)-375(Reference)-375(Guide)]TJ
/F17 24.7871 Tf 394.538 617.737 Td [(MLD2P4)]TJ -229.059 -27.023 Td [(User's)-375(and)-375(Reference)-375(Guide)]TJ
ET
q
1 0 0 1 93.6 573.564 cm
1 0 0 1 93.6 572.468 cm
0 0 412.451 4.981 re f
Q
BT
/F19 14.3462 Tf 197.154 548.586 Td [(A)-350(guide)-350(for)-350(the)-350(MultiL)50(evel)-350(Domain)-350(De)50(c)50(omp)50(osition)]TJ -10.534 -17.256 Td [(Par)50(al)-50(lel)-350(Pr)50(e)50(c)50(onditioners)-350(Package)-350(b)50(ase)50(d)-350(on)-350(PSBLAS)]TJ
/F19 14.3462 Tf 197.154 547.49 Td [(A)-350(guide)-350(for)-350(the)-350(MultiL)50(evel)-350(Domain)-350(De)50(c)50(omp)50(osition)]TJ -10.534 -17.256 Td [(Par)50(al)-50(lel)-350(Pr)50(e)50(c)50(onditioners)-350(Package)-350(b)50(ase)50(d)-350(on)-350(PSBLAS)]TJ
0 g 0 G
0 g 0 G
/F17 11.9552 Tf 218.644 -79.389 Td [(P)31(asqua)-375(D'Am)31(bra)]TJ/F37 11.9552 Tf -22.655 -13.947 Td [(IA)27(C-CNR,)-326(Naples,)-326(Italy)]TJ/F17 11.9552 Tf 11.494 -29.39 Td [(Daniela)-375(di)-375(Sera\014no)]TJ/F37 11.9552 Tf -181.63 -13.948 Td [(Univ)27(ersit)27(y)-326(of)-326(Campania)-326(\134Luigi)-327(V)82(an)27(vitelli",)-326(Caserta,)-326(Italy)]TJ/F17 11.9552 Tf 179.561 -29.39 Td [(Salv)62(atore)-375(Filipp)-31(one)]TJ/F37 11.9552 Tf -134.787 -13.947 Td [(Cran\014eld)-326(Univ)27(ersit)27(y)82(,)-326(Cran\014eld,)-327(United)-326(Kingdom)]TJ
/F17 11.9552 Tf 218.644 -80.484 Td [(P)31(asqua)-375(D'Am)31(bra)]TJ/F37 11.9552 Tf -22.655 -13.948 Td [(IA)27(C-CNR,)-326(Naples,)-326(Italy)]TJ/F17 11.9552 Tf 11.494 -29.39 Td [(Daniela)-375(di)-375(Sera\014no)]TJ/F37 11.9552 Tf -181.63 -13.948 Td [(Univ)27(ersit)27(y)-326(of)-326(Campania)-326(\134Luigi)-327(V)82(an)27(vitelli",)-326(Caserta,)-326(Italy)]TJ/F17 11.9552 Tf 179.561 -29.389 Td [(Salv)62(atore)-375(Filipp)-31(one)]TJ/F37 11.9552 Tf -134.787 -13.948 Td [(Cran\014eld)-326(Univ)27(ersit)27(y)82(,)-326(Cran\014eld,)-327(United)-326(Kingdom)]TJ
0 g 0 G
0 g 0 G
141.76 -78.924 Td [(Soft)27(w)28(are)-327(v)27(ersion)1(:)-436(2.2)]TJ 38.924 -13.948 Td [(July)-326(31,)-327(2018)]TJ
141.76 -80.02 Td [(Soft)27(w)28(are)-327(v)27(ersion)1(:)-436(2.2)]TJ 38.924 -13.948 Td [(July)-326(31,)-327(2018)]TJ
0 g 0 G
0 g 0 G
ET
@ -4889,7 +4889,7 @@ endobj
/Type /ObjStm
/N 100
/First 898
/Length 12335
/Length 12333
>>
stream
434 0 422 54 431 111 445 217 428 423 429 569 436 713 437 865 438 1018 439 1165
@ -4901,7 +4901,7 @@ stream
493 7158 497 7303 498 7357 499 7411 500 7465 501 7519 494 7573 514 7692 512 7834 504 7980
516 8125 513 8179 519 8298 521 8412 423 8466 518 8525 524 8631 522 8781 505 8927 506 9090
526 9242 527 9296 523 9354 530 9512 507 9678 508 9828 509 9980 510 10128 511 10278 532 10440
533 10494 529 10553 536 10698 534 10832 538 10978 503 11032 535 11091 540 11210 542 11324 543 11378
533 10494 529 10553 536 10698 534 10832 538 10978 503 11032 535 11089 540 11208 542 11322 543 11376
% 434 0 obj
<<
/D [432 0 R /XYZ 92.6 752.957 null]
@ -5430,7 +5430,7 @@ stream
>>
% 527 0 obj
<<
/D [524 0 R /XYZ 496.468 4405.505 null]
/D [524 0 R /XYZ 496.319 4405.505 null]
>>
% 523 0 obj
<<
@ -5522,7 +5522,7 @@ stream
>>
% 503 0 obj
<<
/D [536 0 R /XYZ -3605.131 276.131 null]
/D [536 0 R /XYZ 475.567 285.353 null]
>>
% 535 0 obj
<<
@ -6712,19 +6712,19 @@ endobj
/Type /ObjStm
/N 100
/First 893
/Length 11664
/Length 11666
>>
stream
539 0 547 132 545 266 549 412 502 466 546 522 552 641 554 755 424 809 551 868
560 1000 558 1158 555 1304 556 1458 557 1612 562 1759 79 1813 559 1866 569 1985 563 2151
564 2303 565 2456 566 2610 567 2757 571 2910 83 2964 568 3017 580 3136 578 3318 572 3464
573 3615 574 3767 575 3921 576 4075 577 4222 582 4376 87 4430 579 4483 585 4602 583 4736
587 4883 91 4937 584 4990 591 5161 589 5303 588 5449 593 5595 95 5649 590 5702 599 5808
595 5958 596 6105 597 6252 601 6405 99 6459 103 6512 107 6566 111 6620 598 6674 606 6806
604 6956 602 7102 603 7249 608 7396 115 7450 119 7504 123 7558 605 7612 611 7744 609 7878
613 8025 610 8079 618 8185 616 8327 614 8473 620 8625 127 8679 617 8733 622 8865 615 8999
624 9151 621 9205 628 9298 626 9440 625 9586 630 9740 131 9794 627 9848 633 9954 635 10068
135 10122 632 10176 637 10282 639 10396 139 10450 300 10504 231 10558 227 10611 347 10663 348 10717
539 0 547 132 545 266 549 412 502 466 546 524 552 643 554 757 424 811 551 870
560 1002 558 1160 555 1306 556 1460 557 1614 562 1761 79 1815 559 1868 569 1987 563 2153
564 2305 565 2458 566 2612 567 2759 571 2912 83 2966 568 3019 580 3138 578 3320 572 3466
573 3617 574 3769 575 3923 576 4077 577 4224 582 4378 87 4432 579 4485 585 4604 583 4738
587 4885 91 4939 584 4992 591 5163 589 5305 588 5451 593 5597 95 5651 590 5704 599 5810
595 5960 596 6107 597 6254 601 6407 99 6461 103 6514 107 6568 111 6622 598 6676 606 6808
604 6958 602 7104 603 7251 608 7398 115 7452 119 7506 123 7560 605 7614 611 7746 609 7880
613 8027 610 8081 618 8187 616 8329 614 8475 620 8627 127 8681 617 8735 622 8867 615 9001
624 9153 621 9207 628 9300 626 9442 625 9588 630 9742 131 9796 627 9850 633 9956 635 10070
135 10124 632 10178 637 10284 639 10398 139 10452 300 10506 231 10560 227 10613 347 10665 348 10719
% 539 0 obj
<<
/Font << /F15 160 0 R /F42 161 0 R /F45 255 0 R /F22 225 0 R /F25 257 0 R /F18 307 0 R >>
@ -6753,7 +6753,7 @@ stream
>>
% 502 0 obj
<<
/D [547 0 R /XYZ 435.9 4328.445 null]
/D [547 0 R /XYZ 435.906 4328.445 null]
>>
% 546 0 obj
<<
@ -10310,11 +10310,11 @@ endstream
endobj
738 0 obj
<<
/Title (MultiLevel Domain Decomposition Parallel Preconditioners Package based on PSBLAS, V. 2.2) /Subject (MultiLevel Domain Decomposition Parallel Preconditioners Package) /Keywords (Parallel Numerical Software, Algebraic Multilevel Preconditioners, Sparse Iterative Solvers, PSBLAS, MPI) /Creator (pdfLaTeX) /Producer ($Id: userguide.tex 2008-04-08 Pasqua D'Ambra, Daniela di Serafino, Salvatore Filippone$) /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.17)/Keywords()
/CreationDate (D:20181129132524Z)
/ModDate (D:20181129132524Z)
/Title (MultiLevel Domain Decomposition Parallel Preconditioners Package based on PSBLAS, V. 2.2) /Subject (MultiLevel Domain Decomposition Parallel Preconditioners Package) /Keywords (Parallel Numerical Software, Algebraic Multilevel Preconditioners, Sparse Iterative Solvers, PSBLAS, MPI) /Creator (pdfLaTeX) /Producer ($Id: userguide.tex 2008-04-08 Pasqua D'Ambra, Daniela di Serafino, Salvatore Filippone$) /Author()/Title()/Subject()/Creator(LaTeX with hyperref package)/Producer(pdfTeX-1.40.19)/Keywords()
/CreationDate (D:20191218133440Z)
/ModDate (D:20191218133440Z)
/Trapped /False
/PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.17 (TeX Live 2016) kpathsea version 6.2.2)
/PTEX.Fullbanner (This is pdfTeX, Version 3.14159265-2.6-1.40.19 (TeX Live 2018) kpathsea version 6.3.0)
>>
endobj
704 0 obj
@ -10732,21 +10732,21 @@ endobj
/W [1 3 1]
/Root 737 0 R
/Info 738 0 R
/ID [<3D69ACC7863087AAA099909677317365> <3D69ACC7863087AAA099909677317365>]
/ID [<D95389CF9ED4A2AD316610F49DD36D4E> <D95389CF9ED4A2AD316610F49DD36D4E>]
/Length 3700
>>
stream
ÿ;&JÀQÀÎ&ÀÎ9ÀÎNÀ 
ÿ;%JÀQÀÎ&ÀÎ9ÀÎNÀ 
ÎOÀ  Î^À Î_À9À9À9 À9*À9,À9EÀ 9UÀ ³À  ³ À
!"³&À #$³2À%& À'( À)* $À+, )À-. /À/0 6À12 7À34 8À56 9€c78 @€b9: A€a;< B€`=> L€_?@ V€^AB Z€]CD ^€\EFGKHI€?€L€F€ONLMROÑP€E€@US=TWXYZ[\]^_`abcÎÎÎÎÎÎÎÎÎÎ Î
Î Î Î ÎÎÎÎÎÎÎÎVÎ΀>á ÎÎW”ÎÎÎÎÎ Î!Î"Î#Î$Î%ÎÎ(ÎX_Î'€B€P a `  Î*Î+Î,Î-Î.Î/Î0Î1Î2Î3Î4Î)wÎ7Î6Î;Î5Œ‚Î8€MÎ:€IÎ=Î>Î?Î@ÎAÎBÎDÎFÎGÎHÎIÎJÎKÎPÎ<™ÊÎMÎCÎEÎL
ÎSÎTÎUÎVÎWÎXÎZÎ[ÎRÎ`ÎQ·³Î]ÎYÎ\ _ÎcÎaÐÆÎb€K999R9x<>€Q99*999
99 9 99 Ii9 99999999999999!9_9 b c9#9$9%9&9'9(9-9";9)9+€D€N€J€H€C€G9690919293949/9;9.«ú95€A9798999:€R9=9>9?9@9A9F9<Øó9B9C9D9I9J9H9L9G9K9N9O9P9Q9R9S9_9`9\9M9T9V9W9X9Y9Z9[³³J 9a9b9c³³9^³9]³Ü9³³³³ ³
³ ³ ³ ³³«–³³³³³³³³Íê³€S³³Û/³³³³!³çå³³#³$³'³"ó%³*³+³,³-³.³/³0³)³3³( ³1³5³6³7³8³9³:³;³<³B³4³=³>³?³@³A ³_³E³N³O³T³U³V³W³X³D³G³CD'³F€T³K³HS³I³M³R³Lb…³P³Q³[³SŒA³Y³Z³]³`³\¤k³^ ³aÈ°³b³c    Ä €U  *×      
S
        ^.      ! "  % p˜ # ' * &†p ( - , 0 +¨  .€V 2 3 4 : 1­K 5 = > < C ;½  ? E G DÑ“ F J O I M HÔa K Q Nñ— P T S W Rù  U€W [ X; Y \ ] ~W<>qI€!€"€#€$€%€&€'€(€)€*€+€,v,€-Ãd€.~€/IO€0€1¥ô€2ÅC€3îó€4UU€5<07>ï€6¯%€7Í €8ô„€9N€:€;ž€<öÀ€=€X€Y€Z€[ SzÀÀÀÀÀÀ À!À"À#À$À%À&À'À(À)À*À+À,À-À.À/À0À1À2À3À4À5À6À7À8À9À:À; Pª s
!"³&À #$³2À%& À'( À)* $À+, )À-. /À/0 6À12 7À34 8À56 9€c78 @€b9: A€a;< B€`=> L€_?@ V€^AB Z€]CD ^€\EFGKHI€?€L€F€ONLMROÐP€E€@US<TWXYZ[\]^_`abcÎÎÎÎÎÎÎÎÎÎ Î
Î Î Î ÎÎÎÎÎÎÎÎVÎ΀>á
ÎÎW“ÎÎÎÎÎ Î!Î"Î#Î$Î%ÎÎ(ÎX^Î'€B€P a `  Î*Î+Î,Î-Î.Î/Î0Î1Î2Î3Î4Î)w~Î7Î6Î;Î5Œ<>Î8€MÎ:€IÎ=Î>Î?Î@ÎAÎBÎDÎFÎGÎHÎIÎJÎKÎPÎ<™ÉÎMÎCÎEÎL
ÎSÎTÎUÎVÎWÎXÎZÎ[ÎRÎ`ÎQ·²Î]ÎYÎ\ _ÎcÎaÐÅÎb€K999Q9x<>€Q99* 999
99 9 99 Ih9 99999999999999!9_9 b c9#9$9%9&9'9(9-9":9)9+€D€N€J€H€C€G9690919293949/9;9.«ù95€A9798999:€R9=9>9?9@9A9F9<Øò9B9C9D9I9J9H9L9G9K9N9O9P9Q9R9S9_9`9\9M9T9V9W9X9Y9Z9[³³J 9a9b9c³³9^³9]³Ü8³³³³ ³
³ ³ ³ ³³«•³³³³³³³³Íé³€S³³Û.³³³³!³çä³³#³$³'³"³%³*³+³,³-³.³/³0³)³3³( ³1³5³6³7³8³9³:³;³<³B³4³=³>³?³@³A ³_³E³N³O³T³U³V³W³X³D³G³CD&³F€T³K³H³I³M³R³Lb„³P³Q³[³SŒ@³Y³Z³]³`³\¤j³^ ³aȯ³b³c    Á €U        
S        ^+      ! "  % p• # ' * &†m ( - , 0 +¨ .€V 2 3 4 : 1­H 5 = > < C ;½ ? E G DÑ<> F J O I M HÔ^ K Q Nñ” P T S W Rù U€W [ X8 Y \þ ] }W<>qH€!€"€#€$€%€&€'€(€)€*€+€,v+€-Ãc€.}€/IN€0€1¥ó€2ÅB€3îò€4UT€5<07>î€6¯$€7ÍŸ€8ôƒ€9M€:€;ž€<ö¿€=€X€Y€Z€[ SyÀÀÀÀÀÀ À!À"À#À$À%À&À'À(À)À*À+À,À-À.À/À0À1À2À3À4À5À6À7À8À9À:À; P© s•
endstream
endobj
startxref
619414
619413
%%EOF

@ -114,6 +114,7 @@ DATE = $(shell date +%Y-%m-%d)
#
LATEX = latex
LTX2HTML = latex2html -local_icons
LTX2HTML = htlatex
PDFLATEX = pdflatex
ACRO = evince
XPDF = xpdf
@ -141,9 +142,10 @@ GXS = $(join $(BASEFILE),.gxs)
GLX = $(join $(BASEFILE),.glx)
TARGETPDF= ../mld2p4-2.2-guide.pdf
BASEHTML = $(patsubst %.tex,%,$(HTMLFILE))
HTML = $(join $(HTMLFILE),.html)
HTML = $(join $(BASEHTML),.html)
HTMLDIR = ../html
HTMLFLAGS = -noaddress
HTMLFLAGS = "html,3"
FIGURES = $(sort $(wildcard $(FIGDIR)/*))
GLOFILES:= $(sort $(wildcard lib/*.gdf))
@ -162,7 +164,7 @@ TEXLNFIL = $(addprefix $(PWD)/,$(TEXFILES))
all: pdf html
pdf: $(PDF) copypdf
html: $(HTML)
html: $(HTML) copyhtml
$(PDF): $(TEXFILES) $(LIBFILES) $(FIGURES) Makefile
$(header)
@ -185,19 +187,21 @@ copypdf:
$(HTML): $(TEXFILES) $(LIBFILES) $(FIGURES) Makefile
$(header)
$(initialize)
$(latex-filter)
$(pdflatex-filter)
ifneq ($(BIBFILES),)
$(bibtex)
$(latex-filter)
$(pdflatex-filter)
endif
ifneq ($(GLOFILES),)
$(glosstex)
$(latex-filter)
$(pdflatex-filter)
endif
# $(makeindex)
$(latex-filter)
$(ltx2html-filter)
copyhtml:
$(ltx2html-cpy)
$(PS): $(PDF)
$(PDF2PS) $< $(PS)
@ -329,7 +333,16 @@ define ltx2html-filter
@echo "----- latex -------------------------------------------------------"
@echo -n "Starting: "; date
@echo
cd tmp; ($(LTX2HTML) $(HTMLFLAGS) -dir ../$(HTMLDIR) $(HTMLFILE) 2>&1) | $(FILTER)
# cd tmp; ($(LTX2HTML) $(HTMLFLAGS) -dir ../$(HTMLDIR) $(HTMLFILE) 2>&1) | $(FILTER)
cd tmp; ($(LTX2HTML) $(HTMLFILE) $(HTMLFLAGS) 2>&1) | $(FILTER)
endef
define ltx2html-cpy
@echo
@echo "----- latex -------------------------------------------------------"
@echo -n "Starting: "; date
@echo
cd tmp; (cp *.css *.html *.png ../$(HTMLDIR)); (cp $(HTML) ../$(HTMLDIR)/index.html)
endef
#----------------------------------------------------------------------------

@ -1,5 +1,6 @@
\section*{Abstract}
\addcontentsline{toc}{section}{Abstract}
\textsc{MLD2P4 (MultiLevel Domain Decomposition Parallel Preconditioners Package
based on PSBLAS}) is a package of parallel algebraic multilevel preconditioners.
The first release of MLD2P4 made available multilevel additive and hybrid Schwarz

Loading…
Cancel
Save