Moved from latex2html to htlatex.
@ -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’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’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 “Luigi Vanvitelli”, 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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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’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’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 “Luigi Vanvitelli”, 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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
After Width: | Height: | Size: 894 B |
After Width: | Height: | Size: 1.9 KiB |
After Width: | Height: | Size: 1.3 KiB |
After Width: | Height: | Size: 800 B |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 5.1 KiB |
After Width: | Height: | Size: 1023 B |
After Width: | Height: | Size: 2.3 KiB |
After Width: | Height: | Size: 8.6 KiB |
After Width: | Height: | Size: 4.1 KiB |
After Width: | Height: | Size: 646 B |
After Width: | Height: | Size: 2.1 KiB |
After Width: | Height: | Size: 894 B |
After Width: | Height: | Size: 2.6 KiB |
After Width: | Height: | Size: 2.2 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.5 KiB |
After Width: | Height: | Size: 1.4 KiB |
After Width: | Height: | Size: 1.3 KiB |
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 “best”</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"> 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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </span><span
|
||||||
|
class="cmr-12"> </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"> </span><span
|
||||||
|
class="cmr-12"> </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"> </span><span
|
||||||
|
class="cmr-12"> </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"> </span><span
|
||||||
|
class="cmr-12"> </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"> </span><span
|
||||||
|
class="cmr-12"> </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’Ambra, IAC-CNR, Naples, IT;</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</li>
|
||||||
|
<li class="itemize"><span
|
||||||
|
class="cmr-12">Daniela di Serafino, University of Campania “L. Vanvitelli”, Caserta, IT;</span>
|
||||||
|
</li>
|
||||||
|
<li class="itemize"><span
|
||||||
|
class="cmr-12">Ambra Abdullahi Hassan, University of Rome “Tor Vergata”, 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’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"> </span><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="XMUMPS"></a><span
|
||||||
|
class="cmr-12">P.</span><span
|
||||||
|
class="cmr-12"> R.</span><span
|
||||||
|
class="cmr-12"> Amestoy, C.</span><span
|
||||||
|
class="cmr-12"> Ashcraft, O.</span><span
|
||||||
|
class="cmr-12"> Boiteau, A.</span><span
|
||||||
|
class="cmr-12"> Buttari, J.</span><span
|
||||||
|
class="cmr-12"> L’Excellent,</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">C.</span><span
|
||||||
|
class="cmr-12"> Weisbecker, </span><span
|
||||||
|
class="cmti-12">Improving multifrontal methods by means of block low-rank</span>
|
||||||
|
<span
|
||||||
|
class="cmti-12">representations</span><span
|
||||||
|
class="cmr-12">, SIAM Journal on Scientific Computing, volume 37 (3), 2015,</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">A1452–A1474. See also </span><span
|
||||||
|
class="cmtt-12">http://mumps.enseeiht.fr</span><span
|
||||||
|
class="cmr-12">.</span>
|
||||||
|
</p>
|
||||||
|
<p class="bibitem" ><span class="biblabel">
|
||||||
|
<span
|
||||||
|
class="cmr-12">[2]</span><span class="bibsp"><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="XBREZINA_VANEK"></a><span
|
||||||
|
class="cmr-12">M.</span><span
|
||||||
|
class="cmr-12"> Brezina, P.</span><span
|
||||||
|
class="cmr-12"> Van</span><span
|
||||||
|
class="cmr-12">ěk, </span><span
|
||||||
|
class="cmti-12">A Black-Box Iterative Solver Based on a</span>
|
||||||
|
<span
|
||||||
|
class="cmti-12">Two-Level Schwarz Method</span><span
|
||||||
|
class="cmr-12">, Computing, 63, 1999, 233–263.</span>
|
||||||
|
</p>
|
||||||
|
<p class="bibitem" ><span class="biblabel">
|
||||||
|
<span
|
||||||
|
class="cmr-12">[3]</span><span class="bibsp"><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="XBriggs2000"></a><span
|
||||||
|
class="cmr-12">W.</span><span
|
||||||
|
class="cmr-12"> L.</span><span
|
||||||
|
class="cmr-12"> Briggs, V.</span><span
|
||||||
|
class="cmr-12"> E.</span><span
|
||||||
|
class="cmr-12"> Henson, S.</span><span
|
||||||
|
class="cmr-12"> F.</span><span
|
||||||
|
class="cmr-12"> McCormick, </span><span
|
||||||
|
class="cmti-12">A Multigrid Tutorial,</span>
|
||||||
|
<span
|
||||||
|
class="cmti-12">Second Edition</span><span
|
||||||
|
class="cmr-12">, SIAM, 2000.</span>
|
||||||
|
</p>
|
||||||
|
<p class="bibitem" ><span class="biblabel">
|
||||||
|
<span
|
||||||
|
class="cmr-12">[4]</span><span class="bibsp"><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="Xpara_04"></a><span
|
||||||
|
class="cmr-12">A.</span><span
|
||||||
|
class="cmr-12"> Buttari, P.</span><span
|
||||||
|
class="cmr-12"> D’Ambra, D.</span><span
|
||||||
|
class="cmr-12"> di Serafino, S.</span><span
|
||||||
|
class="cmr-12"> Filippone, </span><span
|
||||||
|
class="cmti-12">Extending</span>
|
||||||
|
<span
|
||||||
|
class="cmti-12">PSBLAS to Build Parallel Schwarz Preconditioners</span><span
|
||||||
|
class="cmr-12">, in J.</span><span
|
||||||
|
class="cmr-12"> Dongarra,</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">K.</span><span
|
||||||
|
class="cmr-12"> Madsen, J.</span><span
|
||||||
|
class="cmr-12"> Wasniewski, editors, Proceedings of PARA</span><span
|
||||||
|
class="cmr-12"> 04 Workshop on</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">State of the Art in Scientific Computing, Lecture Notes in Computer Science,</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">Springer, 2005, 593–602.</span>
|
||||||
|
</p>
|
||||||
|
<p class="bibitem" ><span class="biblabel">
|
||||||
|
<span
|
||||||
|
class="cmr-12">[5]</span><span class="bibsp"><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="Xaaecc_07"></a><span
|
||||||
|
class="cmr-12">A.</span><span
|
||||||
|
class="cmr-12"> Buttari, P.</span><span
|
||||||
|
class="cmr-12"> D’Ambra, D.</span><span
|
||||||
|
class="cmr-12"> di</span><span
|
||||||
|
class="cmr-12"> Serafino, S.</span><span
|
||||||
|
class="cmr-12"> Filippone, </span><span
|
||||||
|
class="cmti-12">2LEV-D2P4: a</span>
|
||||||
|
<span
|
||||||
|
class="cmti-12">package of high-performance preconditioners for scientific and engineering</span>
|
||||||
|
<span
|
||||||
|
class="cmti-12">applications</span><span
|
||||||
|
class="cmr-12">, Applicable Algebra in Engineering, Communications and</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">Computing, 18 (3) 2007, 223–239.</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</p>
|
||||||
|
<p class="bibitem" ><span class="biblabel">
|
||||||
|
<span
|
||||||
|
class="cmr-12">[6]</span><span class="bibsp"><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="XCAI_SARKIS"></a><span
|
||||||
|
class="cmr-12">X.</span><span
|
||||||
|
class="cmr-12"> C.</span><span
|
||||||
|
class="cmr-12"> Cai, M.</span><span
|
||||||
|
class="cmr-12"> Sarkis, </span><span
|
||||||
|
class="cmti-12">A Restricted Additive Schwarz Preconditioner for</span>
|
||||||
|
<span
|
||||||
|
class="cmti-12">General Sparse Linear Systems</span><span
|
||||||
|
class="cmr-12">, SIAM Journal on Scientific Computing, 21</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">(2), 1999, 792–797.</span>
|
||||||
|
</p>
|
||||||
|
<p class="bibitem" ><span class="biblabel">
|
||||||
|
<span
|
||||||
|
class="cmr-12">[7]</span><span class="bibsp"><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="Xapnum_07"></a><span
|
||||||
|
class="cmr-12">P.</span><span
|
||||||
|
class="cmr-12"> D’Ambra, S.</span><span
|
||||||
|
class="cmr-12"> Filippone,</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">D.</span><span
|
||||||
|
class="cmr-12"> di</span><span
|
||||||
|
class="cmr-12"> Serafino, </span><span
|
||||||
|
class="cmti-12">On the Development of PSBLAS-based Parallel Two-level</span>
|
||||||
|
<span
|
||||||
|
class="cmti-12">Schwarz Preconditioners</span><span
|
||||||
|
class="cmr-12">, Applied Numerical Mathematics, Elsevier Science,</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">57 (11-12), 2007, 1181-1196.</span>
|
||||||
|
</p>
|
||||||
|
<p class="bibitem" ><span class="biblabel">
|
||||||
|
<span
|
||||||
|
class="cmr-12">[8]</span><span class="bibsp"><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="XMLD2P4_TOMS"></a><span
|
||||||
|
class="cmr-12">P.</span><span
|
||||||
|
class="cmr-12"> D’Ambra, D.</span><span
|
||||||
|
class="cmr-12"> di</span><span
|
||||||
|
class="cmr-12"> Serafino, S.</span><span
|
||||||
|
class="cmr-12"> Filippone, </span><span
|
||||||
|
class="cmti-12">MLD2P4: a Package of</span>
|
||||||
|
<span
|
||||||
|
class="cmti-12">Parallel Multilevel Algebraic Domain Decomposition Preconditioners in</span>
|
||||||
|
<span
|
||||||
|
class="cmti-12">Fortran 95</span><span
|
||||||
|
class="cmr-12">, ACM Trans. Math. Softw., 37(3), 2010, art. 30.</span>
|
||||||
|
</p>
|
||||||
|
<p class="bibitem" ><span class="biblabel">
|
||||||
|
<span
|
||||||
|
class="cmr-12">[9]</span><span class="bibsp"><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="XUMFPACK"></a><span
|
||||||
|
class="cmr-12">T.</span><span
|
||||||
|
class="cmr-12"> A.</span><span
|
||||||
|
class="cmr-12"> Davis, </span><span
|
||||||
|
class="cmti-12">Algorithm 832: UMFPACK</span>
|
||||||
|
<span
|
||||||
|
class="cmti-12">- an Unsymmetric-pattern Multifrontal Method with a Column Pre-ordering</span>
|
||||||
|
<span
|
||||||
|
class="cmti-12">Strategy</span><span
|
||||||
|
class="cmr-12">, ACM Transactions on Mathematical Software, 30, 2004, 196–199.</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">(See also </span><span
|
||||||
|
class="cmtt-12">http://www.cise.ufl.edu/~davis/</span><span
|
||||||
|
class="cmr-12">)</span>
|
||||||
|
</p>
|
||||||
|
<p class="bibitem" ><span class="biblabel">
|
||||||
|
<span
|
||||||
|
class="cmr-12">[10]</span><span class="bibsp"><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="XSUPERLU"></a><span
|
||||||
|
class="cmr-12">J.</span><span
|
||||||
|
class="cmr-12"> W.</span><span
|
||||||
|
class="cmr-12"> Demmel, S.</span><span
|
||||||
|
class="cmr-12"> C.</span><span
|
||||||
|
class="cmr-12"> Eisenstat, J.</span><span
|
||||||
|
class="cmr-12"> R.</span><span
|
||||||
|
class="cmr-12"> Gilbert,</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">X.</span><span
|
||||||
|
class="cmr-12"> S.</span><span
|
||||||
|
class="cmr-12"> Li, J.</span><span
|
||||||
|
class="cmr-12"> W.</span><span
|
||||||
|
class="cmr-12"> H.</span><span
|
||||||
|
class="cmr-12"> Liu, </span><span
|
||||||
|
class="cmti-12">A supernodal approach to sparse partial pivoting</span><span
|
||||||
|
class="cmr-12">,</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">SIAM Journal on Matrix Analysis and Applications, 20 (3), 1999, 720–755.</span>
|
||||||
|
</p>
|
||||||
|
<p class="bibitem" ><span class="biblabel">
|
||||||
|
<span
|
||||||
|
class="cmr-12">[11]</span><span class="bibsp"><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="Xblas3"></a><span
|
||||||
|
class="cmr-12">J.</span><span
|
||||||
|
class="cmr-12"> J.</span><span
|
||||||
|
class="cmr-12"> Dongarra, J.</span><span
|
||||||
|
class="cmr-12"> Du Croz, I.</span><span
|
||||||
|
class="cmr-12"> S.</span><span
|
||||||
|
class="cmr-12"> Duff, S.</span><span
|
||||||
|
class="cmr-12"> Hammarling, </span><span
|
||||||
|
class="cmti-12">A set of Level</span>
|
||||||
|
<span
|
||||||
|
class="cmti-12">3 Basic Linear Algebra Subprograms</span><span
|
||||||
|
class="cmr-12">, ACM Transactions on Mathematical</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">Software, 16 (1) 1990, 1–17.</span>
|
||||||
|
</p>
|
||||||
|
<p class="bibitem" ><span class="biblabel">
|
||||||
|
<span
|
||||||
|
class="cmr-12">[12]</span><span class="bibsp"><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="Xblas2"></a><span
|
||||||
|
class="cmr-12">J.</span><span
|
||||||
|
class="cmr-12"> J.</span><span
|
||||||
|
class="cmr-12"> Dongarra, J.</span><span
|
||||||
|
class="cmr-12"> Du Croz, S.</span><span
|
||||||
|
class="cmr-12"> Hammarling, R.</span><span
|
||||||
|
class="cmr-12"> J.</span><span
|
||||||
|
class="cmr-12"> Hanson, </span><span
|
||||||
|
class="cmti-12">An</span>
|
||||||
|
<span
|
||||||
|
class="cmti-12">extended set of FORTRAN Basic Linear Algebra Subprograms</span><span
|
||||||
|
class="cmr-12">, ACM</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">Transactions on Mathematical Software, 14 (1) 1988, 1–17.</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</p>
|
||||||
|
<p class="bibitem" ><span class="biblabel">
|
||||||
|
<span
|
||||||
|
class="cmr-12">[13]</span><span class="bibsp"><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="XPSBLASGUIDE"></a><span
|
||||||
|
class="cmr-12">S.</span><span
|
||||||
|
class="cmr-12"> Filippone, A.</span><span
|
||||||
|
class="cmr-12"> Buttari, </span><span
|
||||||
|
class="cmti-12">PSBLAS 3.5.0 User’s Guide. A Reference</span>
|
||||||
|
<span
|
||||||
|
class="cmti-12">Guide for the Parallel Sparse BLAS Library</span><span
|
||||||
|
class="cmr-12">, 2012, available from</span>
|
||||||
|
<span
|
||||||
|
class="cmtt-12">https://github.com/sfilippone/psblas3/tree/master/docs</span><span
|
||||||
|
class="cmr-12">.</span>
|
||||||
|
</p>
|
||||||
|
<p class="bibitem" ><span class="biblabel">
|
||||||
|
<span
|
||||||
|
class="cmr-12">[14]</span><span class="bibsp"><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="XPSBLAS3"></a><span
|
||||||
|
class="cmr-12">S.</span><span
|
||||||
|
class="cmr-12"> Filippone, A.</span><span
|
||||||
|
class="cmr-12"> Buttari, </span><span
|
||||||
|
class="cmti-12">Object-Oriented Techniques for Sparse Matrix</span>
|
||||||
|
<span
|
||||||
|
class="cmti-12">Computations in Fortran 2003</span><span
|
||||||
|
class="cmr-12">. ACM Transactions on on Mathematical</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">Software, 38 (4), 2012, art.</span><span
|
||||||
|
class="cmr-12"> 23.</span>
|
||||||
|
</p>
|
||||||
|
<p class="bibitem" ><span class="biblabel">
|
||||||
|
<span
|
||||||
|
class="cmr-12">[15]</span><span class="bibsp"><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="Xpsblas_00"></a><span
|
||||||
|
class="cmr-12">S.</span><span
|
||||||
|
class="cmr-12"> Filippone, M.</span><span
|
||||||
|
class="cmr-12"> Colajanni, </span><span
|
||||||
|
class="cmti-12">PSBLAS: A</span>
|
||||||
|
<span
|
||||||
|
class="cmti-12">Library for Parallel Linear Algebra Computation on Sparse Matrices</span><span
|
||||||
|
class="cmr-12">, ACM</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">Transactions on Mathematical Software, 26 (4), 2000, 527–550.</span>
|
||||||
|
</p>
|
||||||
|
<p class="bibitem" ><span class="biblabel">
|
||||||
|
<span
|
||||||
|
class="cmr-12">[16]</span><span class="bibsp"><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="XGrHeJi:16"></a><span
|
||||||
|
class="cmr-12">S. Gratton, P. Henon, P. Jiranek and X. Vasseur, </span><span
|
||||||
|
class="cmti-12">Reducing complexity of</span>
|
||||||
|
<span
|
||||||
|
class="cmti-12">algebraic multigrid by aggregation</span><span
|
||||||
|
class="cmr-12">, Numerical Lin. Algebra with Applications,</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">2016, 23:501-518</span>
|
||||||
|
</p>
|
||||||
|
<p class="bibitem" ><span class="biblabel">
|
||||||
|
<span
|
||||||
|
class="cmr-12">[17]</span><span class="bibsp"><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="XMPI2"></a><span
|
||||||
|
class="cmr-12">W.</span><span
|
||||||
|
class="cmr-12"> Gropp, S.</span><span
|
||||||
|
class="cmr-12"> Huss-Lederman, A.</span><span
|
||||||
|
class="cmr-12"> Lumsdaine, E.</span><span
|
||||||
|
class="cmr-12"> Lusk, B.</span><span
|
||||||
|
class="cmr-12"> Nitzberg,</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">W.</span><span
|
||||||
|
class="cmr-12"> Saphir, M.</span><span
|
||||||
|
class="cmr-12"> Snir, </span><span
|
||||||
|
class="cmti-12">MPI: The Complete Reference. Volume 2 - The MPI-2</span>
|
||||||
|
<span
|
||||||
|
class="cmti-12">Extensions</span><span
|
||||||
|
class="cmr-12">, MIT Press, 1998.</span>
|
||||||
|
</p>
|
||||||
|
<p class="bibitem" ><span class="biblabel">
|
||||||
|
<span
|
||||||
|
class="cmr-12">[18]</span><span class="bibsp"><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="Xblas1"></a><span
|
||||||
|
class="cmr-12">C.</span><span
|
||||||
|
class="cmr-12"> L.</span><span
|
||||||
|
class="cmr-12"> Lawson, R.</span><span
|
||||||
|
class="cmr-12"> J.</span><span
|
||||||
|
class="cmr-12"> Hanson, D.</span><span
|
||||||
|
class="cmr-12"> Kincaid, F.</span><span
|
||||||
|
class="cmr-12"> T.</span><span
|
||||||
|
class="cmr-12"> Krogh, </span><span
|
||||||
|
class="cmti-12">Basic Linear</span>
|
||||||
|
<span
|
||||||
|
class="cmti-12">Algebra Subprograms for FORTRAN usage</span><span
|
||||||
|
class="cmr-12">, ACM Transactions on</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">Mathematical Software, 5 (3), 1979, 308–323.</span>
|
||||||
|
</p>
|
||||||
|
<p class="bibitem" ><span class="biblabel">
|
||||||
|
<span
|
||||||
|
class="cmr-12">[19]</span><span class="bibsp"><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="XSUPERLUDIST"></a><span
|
||||||
|
class="cmr-12">X.</span><span
|
||||||
|
class="cmr-12"> S.</span><span
|
||||||
|
class="cmr-12"> Li, J.</span><span
|
||||||
|
class="cmr-12"> W.</span><span
|
||||||
|
class="cmr-12"> Demmel, </span><span
|
||||||
|
class="cmti-12">SuperLU</span><span
|
||||||
|
class="cmti-12">_DIST: A Scalable</span>
|
||||||
|
<span
|
||||||
|
class="cmti-12">Distributed-memory Sparse Direct Solver for Unsymmetric Linear Systems</span><span
|
||||||
|
class="cmr-12">,</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">ACM Transactions on Mathematical Software, 29 (2), 2003, 110–140.</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</p>
|
||||||
|
<p class="bibitem" ><span class="biblabel">
|
||||||
|
<span
|
||||||
|
class="cmr-12">[20]</span><span class="bibsp"><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="XNotay2008"></a><span
|
||||||
|
class="cmr-12">Y.</span><span
|
||||||
|
class="cmr-12"> Notay, P.</span><span
|
||||||
|
class="cmr-12"> S.</span><span
|
||||||
|
class="cmr-12"> Vassilevski, </span><span
|
||||||
|
class="cmti-12">Recursive Krylov-based multigrid cycles</span><span
|
||||||
|
class="cmr-12">,</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">Numerical Linear Algebra with Applications, 15 (5), 2008, 473–487.</span>
|
||||||
|
</p>
|
||||||
|
<p class="bibitem" ><span class="biblabel">
|
||||||
|
<span
|
||||||
|
class="cmr-12">[21]</span><span class="bibsp"><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="XSaad_book"></a><span
|
||||||
|
class="cmr-12">Y.</span><span
|
||||||
|
class="cmr-12"> Saad, </span><span
|
||||||
|
class="cmti-12">Iterative methods for sparse linear systems</span><span
|
||||||
|
class="cmr-12">, 2nd edition, SIAM,</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">2003.</span>
|
||||||
|
</p>
|
||||||
|
<p class="bibitem" ><span class="biblabel">
|
||||||
|
<span
|
||||||
|
class="cmr-12">[22]</span><span class="bibsp"><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="Xdd2_96"></a><span
|
||||||
|
class="cmr-12">B.</span><span
|
||||||
|
class="cmr-12"> Smith, P.</span><span
|
||||||
|
class="cmr-12"> Bjorstad, W.</span><span
|
||||||
|
class="cmr-12"> Gropp, </span><span
|
||||||
|
class="cmti-12">Domain Decomposition: Parallel</span>
|
||||||
|
<span
|
||||||
|
class="cmti-12">Multilevel Methods for Elliptic Partial Differential Equations</span><span
|
||||||
|
class="cmr-12">, Cambridge</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">University Press, 1996.</span>
|
||||||
|
</p>
|
||||||
|
<p class="bibitem" ><span class="biblabel">
|
||||||
|
<span
|
||||||
|
class="cmr-12">[23]</span><span class="bibsp"><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="XMPI1"></a><span
|
||||||
|
class="cmr-12">M.</span><span
|
||||||
|
class="cmr-12"> Snir, S.</span><span
|
||||||
|
class="cmr-12"> Otto, S.</span><span
|
||||||
|
class="cmr-12"> Huss-Lederman, D.</span><span
|
||||||
|
class="cmr-12"> Walker, J.</span><span
|
||||||
|
class="cmr-12"> Dongarra, </span><span
|
||||||
|
class="cmti-12">MPI:</span>
|
||||||
|
<span
|
||||||
|
class="cmti-12">The Complete Reference. Volume 1 - The MPI Core</span><span
|
||||||
|
class="cmr-12">, second edition, MIT</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">Press, 1998.</span>
|
||||||
|
</p>
|
||||||
|
<p class="bibitem" ><span class="biblabel">
|
||||||
|
<span
|
||||||
|
class="cmr-12">[24]</span><span class="bibsp"><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="XStuben_01"></a><span
|
||||||
|
class="cmr-12">K.</span><span
|
||||||
|
class="cmr-12"> St</span><span
|
||||||
|
class="cmr-12">üben, </span><span
|
||||||
|
class="cmti-12">An Introduction to Algebraic Multigrid</span><span
|
||||||
|
class="cmr-12">, in A.</span><span
|
||||||
|
class="cmr-12"> Sch</span><span
|
||||||
|
class="cmr-12">üller,</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">U.</span><span
|
||||||
|
class="cmr-12"> Trottenberg, C.</span><span
|
||||||
|
class="cmr-12"> Oosterlee, Multigrid, Academic Press, 2001.</span>
|
||||||
|
</p>
|
||||||
|
<p class="bibitem" ><span class="biblabel">
|
||||||
|
<span
|
||||||
|
class="cmr-12">[25]</span><span class="bibsp"><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="XTUMINARO_TONG"></a><span
|
||||||
|
class="cmr-12">R.</span><span
|
||||||
|
class="cmr-12"> S.</span><span
|
||||||
|
class="cmr-12"> Tuminaro, C.</span><span
|
||||||
|
class="cmr-12"> Tong, </span><span
|
||||||
|
class="cmti-12">Parallel Smoothed Aggregation Multigrid:</span>
|
||||||
|
<span
|
||||||
|
class="cmti-12">Aggregation Strategies on Massively Parallel Machines</span><span
|
||||||
|
class="cmr-12">, in J. Donnelley,</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">editor, Proceedings of SuperComputing 2000, Dallas, 2000.</span>
|
||||||
|
</p>
|
||||||
|
<p class="bibitem" ><span class="biblabel">
|
||||||
|
<span
|
||||||
|
class="cmr-12">[26]</span><span class="bibsp"><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="XVANEK_MANDEL_BREZINA"></a><span
|
||||||
|
class="cmr-12">P.</span><span
|
||||||
|
class="cmr-12"> Van</span><span
|
||||||
|
class="cmr-12">ěk, J.</span><span
|
||||||
|
class="cmr-12"> Mandel, M.</span><span
|
||||||
|
class="cmr-12"> Brezina, </span><span
|
||||||
|
class="cmti-12">Algebraic Multigrid by Smoothed</span>
|
||||||
|
<span
|
||||||
|
class="cmti-12">Aggregation for Second and Fourth Order Elliptic Problems</span><span
|
||||||
|
class="cmr-12">, Computing, 56</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">(3) 1996, 179–196.</span>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!--l. 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"> </span><a
|
||||||
|
href="userhtmlli4.html#XStuben_01"><span
|
||||||
|
class="cmr-12">24</span></a><span
|
||||||
|
class="cmr-12">,</span><span
|
||||||
|
class="cmr-12"> </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"> </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"> </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"> </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"> </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"> 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"> </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"> </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 “de facto” 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"> </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"> </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"> 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"> </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"> </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"> </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"> Section</span><span
|
||||||
|
class="cmr-12"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> 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"> 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"> </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"> </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 “developer” 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"> </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"> </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"> </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"> </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"> </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"> </span><a
|
||||||
|
href="userhtmlli4.html#XStuben_01"><span
|
||||||
|
class="cmr-12">24</span></a><span
|
||||||
|
class="cmr-12">,</span><span
|
||||||
|
class="cmr-12"> </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"> </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"> </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"> </span><a
|
||||||
|
href="userhtmlli4.html#Xaaecc_07"><span
|
||||||
|
class="cmr-12">5</span></a><span
|
||||||
|
class="cmr-12">,</span><span
|
||||||
|
class="cmr-12"> </span><a
|
||||||
|
href="userhtmlli4.html#Xapnum_07"><span
|
||||||
|
class="cmr-12">7</span></a><span
|
||||||
|
class="cmr-12">,</span><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">.</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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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">’NONE’</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">’DIAG’</span></span></span> or
|
||||||
|
<span class="obeylines-h"><span class="verb"><span
|
||||||
|
class="cmtt-10x-x-109">’JACOBI’</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 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">’GS’</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">’FBGS’</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">’BJAC’</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">’AS’</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 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">’ML’</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 <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 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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </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"> </span><span
|
||||||
|
class="cmr-12"> </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"> </span><span
|
||||||
|
class="cmr-12"> </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"> </span><span
|
||||||
|
class="cmr-12"> </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"> </span><span
|
||||||
|
class="cmr-12"> </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"> </span><span
|
||||||
|
class="cmr-12"> </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"> 2 in Section</span><span
|
||||||
|
class="cmr-12"> </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">“solver” 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"> p%set(smoother,info</span><span
|
||||||
|
class="cmtt-12"> [,ilev,ilmax,pos])</span></span></span><br />
|
||||||
|
<span class="obeylines-h"><span class="verb"><span
|
||||||
|
class="cmtt-12">call</span><span
|
||||||
|
class="cmtt-12"> p%set(solver,info</span><span
|
||||||
|
class="cmtt-12"> [,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"> </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">
|
||||||
|
 <br />  ! sparse matrix and preconditioner
|
||||||
|
 <br />  type(psb_dspmat_type) :: a
|
||||||
|
 <br />  type(mld_dprec_type)  :: prec
|
||||||
|
 <br />  type(mld_d_tlu_solver_type) :: tlusv
|
||||||
|
 <br />
|
||||||
|
 <br />......
|
||||||
|
 <br />  !
|
||||||
|
 <br />  !  prepare the preconditioner: an ML with defaults, but with TLU solver at
|
||||||
|
 <br />  !  intermediate levels. All other parameters are at default values.
|
||||||
|
 <br />  !
|
||||||
|
 <br />  call prec%init(’ML’,       info)
|
||||||
|
 <br />  call prec%hierarchy_build(a,desc_a,info)
|
||||||
|
 <br />  nlv = prec%get_nlevs()
|
||||||
|
 <br />  call prec%set(tlusv,   info,ilev=1,ilmax=max(1,nlv-1))
|
||||||
|
 <br />  call prec%smoothers_build(a,desc_a,info)
|
||||||
|
 <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’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">
|
||||||
|
 <br />                           MLD2P4  version 2.1
|
||||||
|
 <br />  MultiLevel Domain Decomposition Parallel Preconditioners Package
|
||||||
|
 <br />             based on PSBLAS (Parallel Sparse BLAS version 3.5)
|
||||||
|
 <br />
|
||||||
|
 <br />  (C) Copyright 2008, 2010, 2012, 2015, 2017
|
||||||
|
 <br />
|
||||||
|
 <br />  Salvatore Filippone    Cranfield University, Cranfield, UK
|
||||||
|
 <br />  Pasqua D’Ambra         IAC-CNR, Naples, IT
|
||||||
|
 <br />  Daniela di Serafino    University of Campania L. Vanvitelli, Caserta, IT
|
||||||
|
 <br />
|
||||||
|
 <br />  Redistribution and use in source and binary forms, with or without
|
||||||
|
 <br />  modification, are permitted provided that the following conditions
|
||||||
|
 <br />  are met:
|
||||||
|
 <br />    1. Redistributions of source code must retain the above copyright
|
||||||
|
 <br />       notice, this list of conditions and the following disclaimer.
|
||||||
|
 <br />    2. Redistributions in binary form must reproduce the above copyright
|
||||||
|
 <br />       notice, this list of conditions, and the following disclaimer in the
|
||||||
|
 <br />       documentation and/or other materials provided with the distribution.
|
||||||
|
 <br />    3. The name of the MLD2P4 group or the names of its contributors may
|
||||||
|
 <br />       not be used to endorse or promote products derived from this
|
||||||
|
 <br />       software without specific written permission.
|
||||||
|
 <br />
|
||||||
|
 <br />  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||||
|
 <br />  ‘‘AS IS’’ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||||
|
 <br />  TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
 <br />  PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE MLD2P4 GROUP OR ITS CONTRIBUTORS
|
||||||
|
 <br />  BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||||
|
 <br />  CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||||
|
 <br />  SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||||
|
 <br />  INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||||
|
 <br />  CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||||
|
 <br />  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||||
|
 <br />  POSSIBILITY OF SUCH DAMAGE.
|
||||||
|
 <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"> </span><a
|
||||||
|
href="userhtmlli4.html#Xblas2"><span
|
||||||
|
class="cmr-12">12</span></a><span
|
||||||
|
class="cmr-12">,</span><span
|
||||||
|
class="cmr-12"> </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"> </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"> </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"> 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"> 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"> 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"> </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"> 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"> </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"> 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>
|
@ -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"> 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"> 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’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"> 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’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"> 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"> </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"> 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"> </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"> 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’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"> 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’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"> 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"> </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"> intent(in),</span><span
|
||||||
|
class="cmtt-12"> 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’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"> intent(in),</span><span
|
||||||
|
class="cmtt-12"> 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"> intent(in),</span><span
|
||||||
|
class="cmtt-12"> 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"> 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"> </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"> </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"> 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’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"> 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’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"> 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"> </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"> intent(in),</span><span
|
||||||
|
class="cmtt-12"> 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’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"> intent(in),</span><span
|
||||||
|
class="cmtt-12"> 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"> intent(in),</span><span
|
||||||
|
class="cmtt-12"> 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"> 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"> p%apply(x,y,desc_a,info</span><span
|
||||||
|
class="cmtt-12"> [,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"> dimension(:),</span><span
|
||||||
|
class="cmtt-12"> 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"> dimension(:),</span><span
|
||||||
|
class="cmtt-12"> 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"> 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"> 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"> </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"> optional,</span><span
|
||||||
|
class="cmtt-12"> 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">’N’,’n’</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">’T’,’t’</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">’C’,’c’</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"> dimension(:),</span><span
|
||||||
|
class="cmtt-12"> optional,</span><span
|
||||||
|
class="cmtt-12"> 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"> *</span><span
|
||||||
|
class="cmtt-12"> 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’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"> 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"> 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"> 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"> </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"> 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"> p%descr(info,</span><span
|
||||||
|
class="cmtt-12"> [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"> 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"> </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"> intent(in),</span><span
|
||||||
|
class="cmtt-12"> 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"> mld_precdescr(p,info</span><span
|
||||||
|
class="cmtt-12"> [,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"> 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"> 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"> </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"> intent(in),</span><span
|
||||||
|
class="cmtt-12"> 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’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"> 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"> 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"> 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"> </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"> =</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12"> 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"> p%allocate_wrk(info[,</span><span
|
||||||
|
class="cmtt-12"> 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"> 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"> </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"> intent(in),</span><span
|
||||||
|
class="cmtt-12"> 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"> 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"> 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"> </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 --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"> --help</span></span></span><span
|
||||||
|
class="cmr-12">, which</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">produces:</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="verbatim" id="verbatim-2">
|
||||||
|
‘configure’ configures MLD2P4 2.1.1 to adapt to many kinds of systems.
|
||||||
|
 <br />
|
||||||
|
 <br />Usage: ./configure [OPTION]... [VAR=VALUE]...
|
||||||
|
 <br />
|
||||||
|
 <br />To assign environment variables (e.g., CC, CFLAGS...), specify them as
|
||||||
|
 <br />VAR=VALUE.  See below for descriptions of some of the useful variables.
|
||||||
|
 <br />
|
||||||
|
 <br />Defaults for the options are specified in brackets.
|
||||||
|
 <br />
|
||||||
|
 <br />Configuration:
|
||||||
|
 <br />  -h, --help              display this help and exit
|
||||||
|
 <br />      --help=short        display options specific to this package
|
||||||
|
 <br />      --help=recursive    display the short help of all the included packages
|
||||||
|
 <br />  -V, --version           display version information and exit
|
||||||
|
 <br />  -q, --quiet, --silent   do not print ‘checking ...’ messages
|
||||||
|
 <br />      --cache-file=FILE   cache test results in FILE [disabled]
|
||||||
|
 <br />  -C, --config-cache      alias for ‘--cache-file=config.cache’
|
||||||
|
 <br />  -n, --no-create         do not create output files
|
||||||
|
 <br />      --srcdir=DIR        find the sources in DIR [configure dir or ‘..’]
|
||||||
|
 <br />
|
||||||
|
 <br />Installation directories:
|
||||||
|
 <br />  --prefix=PREFIX         install architecture-independent files in PREFIX
|
||||||
|
 <br />                          [/usr/local]
|
||||||
|
 <br />  --exec-prefix=EPREFIX   install architecture-dependent files in EPREFIX
|
||||||
|
 <br />                          [PREFIX]
|
||||||
|
 <br />
|
||||||
|
 <br />By default, ‘make install’ will install all the files in
|
||||||
|
 <br />‘/usr/local/bin’, ‘/usr/local/lib’ etc.  You can specify
|
||||||
|
 <br />an installation prefix other than ‘/usr/local’ using ‘--prefix’,
|
||||||
|
 <br />for instance ‘--prefix=$HOME’.
|
||||||
|
 <br />
|
||||||
|
 <br />For better control, use the options below.
|
||||||
|
 <br />
|
||||||
|
 <br />Fine tuning of the installation directories:
|
||||||
|
 <br />  --bindir=DIR            user executables [EPREFIX/bin]
|
||||||
|
 <br />  --sbindir=DIR           system admin executables [EPREFIX/sbin]
|
||||||
|
 <br />  --libexecdir=DIR        program executables [EPREFIX/libexec]
|
||||||
|
 <br />  --sysconfdir=DIR        read-only single-machine data [PREFIX/etc]
|
||||||
|
 <br />  --sharedstatedir=DIR    modifiable architecture-independent data [PREFIX/com]
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
 <br />  --localstatedir=DIR     modifiable single-machine data [PREFIX/var]
|
||||||
|
 <br />  --libdir=DIR            object code libraries [EPREFIX/lib]
|
||||||
|
 <br />  --includedir=DIR        C header files [PREFIX/include]
|
||||||
|
 <br />  --oldincludedir=DIR     C header files for non-gcc [/usr/include]
|
||||||
|
 <br />  --datarootdir=DIR       read-only arch.-independent data root [PREFIX/share]
|
||||||
|
 <br />  --datadir=DIR           read-only architecture-independent data [DATAROOTDIR]
|
||||||
|
 <br />  --infodir=DIR           info documentation [DATAROOTDIR/info]
|
||||||
|
 <br />  --localedir=DIR         locale-dependent data [DATAROOTDIR/locale]
|
||||||
|
 <br />  --mandir=DIR            man documentation [DATAROOTDIR/man]
|
||||||
|
 <br />  --docdir=DIR            documentation root [DATAROOTDIR/doc/mld2p4]
|
||||||
|
 <br />  --htmldir=DIR           html documentation [DOCDIR]
|
||||||
|
 <br />  --dvidir=DIR            dvi documentation [DOCDIR]
|
||||||
|
 <br />  --pdfdir=DIR            pdf documentation [DOCDIR]
|
||||||
|
 <br />  --psdir=DIR             ps documentation [DOCDIR]
|
||||||
|
 <br />
|
||||||
|
 <br />Program names:
|
||||||
|
 <br />  --program-prefix=PREFIX            prepend PREFIX to installed program names
|
||||||
|
 <br />  --program-suffix=SUFFIX            append SUFFIX to installed program names
|
||||||
|
 <br />  --program-transform-name=PROGRAM   run sed PROGRAM on installed program names
|
||||||
|
 <br />
|
||||||
|
 <br />Optional Features:
|
||||||
|
 <br />  --disable-option-checking  ignore unrecognized --enable/--with options
|
||||||
|
 <br />  --disable-FEATURE       do not include FEATURE (same as --enable-FEATURE=no)
|
||||||
|
 <br />  --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
|
||||||
|
 <br />  --enable-silent-rules   less verbose build output (undo: "make V=1")
|
||||||
|
 <br />  --disable-silent-rules  verbose build output (undo: "make V=0")
|
||||||
|
 <br />  --enable-dependency-tracking
|
||||||
|
 <br />                          do not reject slow dependency extractors
|
||||||
|
 <br />  --disable-dependency-tracking
|
||||||
|
 <br />                          speeds up one-time build
|
||||||
|
 <br />  --enable-serial         Specify whether to enable a fake mpi library to run
|
||||||
|
 <br />                          in serial mode.
|
||||||
|
 <br />  --enable-long-integers  Specify usage of 64 bits integers.
|
||||||
|
 <br />
|
||||||
|
 <br />Optional Packages:
|
||||||
|
 <br />  --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
|
||||||
|
 <br />  --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
|
||||||
|
 <br />  --with-psblas=DIR       The install directory for PSBLAS, for example,
|
||||||
|
 <br />                          --with-psblas=/opt/packages/psblas-3.5
|
||||||
|
 <br />  --with-psblas-incdir=DIR
|
||||||
|
 <br />                          Specify the directory for PSBLAS C includes.
|
||||||
|
 <br />  --with-psblas-moddir=DIR
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
 <br />                          Specify the directory for PSBLAS Fortran modules.
|
||||||
|
 <br />  --with-psblas-libdir=DIR
|
||||||
|
 <br />                          Specify the directory for PSBLAS library.
|
||||||
|
 <br />  --with-ccopt            additional [CCOPT] flags to be added: will prepend
|
||||||
|
 <br />                          to [CCOPT]
|
||||||
|
 <br />  --with-fcopt            additional [FCOPT] flags to be added: will prepend
|
||||||
|
 <br />                          to [FCOPT]
|
||||||
|
 <br />  --with-libs             List additional link flags here. For example,
|
||||||
|
 <br />                          --with-libs=-lspecial_system_lib or
|
||||||
|
 <br />                          --with-libs=-L/path/to/libs
|
||||||
|
 <br />  --with-clibs            additional [CLIBS] flags to be added: will prepend
|
||||||
|
 <br />                          to [CLIBS]
|
||||||
|
 <br />  --with-flibs            additional [FLIBS] flags to be added: will prepend
|
||||||
|
 <br />                          to [FLIBS]
|
||||||
|
 <br />  --with-library-path     additional [LIBRARYPATH] flags to be added: will
|
||||||
|
 <br />                          prepend to [LIBRARYPATH]
|
||||||
|
 <br />  --with-include-path     additional [INCLUDEPATH] flags to be added: will
|
||||||
|
 <br />                          prepend to [INCLUDEPATH]
|
||||||
|
 <br />  --with-module-path      additional [MODULE_PATH] flags to be added: will
|
||||||
|
 <br />                          prepend to [MODULE_PATH]
|
||||||
|
 <br />  --with-extra-libs       List additional link flags here. For example,
|
||||||
|
 <br />                          --with-extra-libs=-lspecial_system_lib or
|
||||||
|
 <br />                          --with-extra-libs=-L/path/to/libs
|
||||||
|
 <br />  --with-blas=<lib>       use BLAS library <lib>
|
||||||
|
 <br />  --with-blasdir=<dir>    search for BLAS library in <dir>
|
||||||
|
 <br />  --with-lapack=<lib>     use LAPACK library <lib>
|
||||||
|
 <br />  --with-mumps=LIBNAME    Specify the libname for MUMPS. Default: autodetect
|
||||||
|
 <br />                          with minimum "-lmumps_common -lpord"
|
||||||
|
 <br />  --with-mumpsdir=DIR     Specify the directory for MUMPS library and
|
||||||
|
 <br />                          includes. Note: you will need to add auxiliary
|
||||||
|
 <br />                          libraries with --extra-libs; this depends on how
|
||||||
|
 <br />                          MUMPS was configured and installed, at a minimum you
|
||||||
|
 <br />                          will need SCALAPACK and BLAS
|
||||||
|
 <br />  --with-mumpsincdir=DIR  Specify the directory for MUMPS includes.
|
||||||
|
 <br />  --with-mumpsmoddir=DIR  Specify the directory for MUMPS Fortran modules.
|
||||||
|
 <br />  --with-mumpslibdir=DIR  Specify the directory for MUMPS library.
|
||||||
|
 <br />  --with-umfpack=LIBNAME  Specify the library name for UMFPACK and its support
|
||||||
|
 <br />                          libraries. Default: "-lumfpack -lamd"
|
||||||
|
 <br />  --with-umfpackdir=DIR   Specify the directory for UMFPACK library and
|
||||||
|
 <br />                          includes.
|
||||||
|
 <br />  --with-umfpackincdir=DIR
|
||||||
|
 <br />                          Specify the directory for UMFPACK includes.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
 <br />  --with-umfpacklibdir=DIR
|
||||||
|
 <br />                          Specify the directory for UMFPACK library.
|
||||||
|
 <br />  --with-superlu=LIBNAME  Specify the library name for SUPERLU library.
|
||||||
|
 <br />                          Default: "-lsuperlu"
|
||||||
|
 <br />  --with-superludir=DIR   Specify the directory for SUPERLU library and
|
||||||
|
 <br />                          includes.
|
||||||
|
 <br />  --with-superluincdir=DIR
|
||||||
|
 <br />                          Specify the directory for SUPERLU includes.
|
||||||
|
 <br />  --with-superlulibdir=DIR
|
||||||
|
 <br />                          Specify the directory for SUPERLU library.
|
||||||
|
 <br />  --with-superludist=LIBNAME
|
||||||
|
 <br />                          Specify the libname for SUPERLUDIST library.
|
||||||
|
 <br />                          Requires you also specify SuperLU. Default:
|
||||||
|
 <br />                          "-lsuperlu_dist"
|
||||||
|
 <br />  --with-superludistdir=DIR
|
||||||
|
 <br />                          Specify the directory for SUPERLUDIST library and
|
||||||
|
 <br />                          includes.
|
||||||
|
 <br />  --with-superludistincdir=DIR
|
||||||
|
 <br />                          Specify the directory for SUPERLUDIST includes.
|
||||||
|
 <br />  --with-superludistlibdir=DIR
|
||||||
|
 <br />                          Specify the directory for SUPERLUDIST library.
|
||||||
|
 <br />
|
||||||
|
 <br />Some influential environment variables:
|
||||||
|
 <br />  FC          Fortran compiler command
|
||||||
|
 <br />  FCFLAGS     Fortran compiler flags
|
||||||
|
 <br />  LDFLAGS     linker flags, e.g. -L<lib dir> if you have libraries in a
|
||||||
|
 <br />              nonstandard directory <lib dir>
|
||||||
|
 <br />  LIBS        libraries to pass to the linker, e.g. -l<library>
|
||||||
|
 <br />  CC          C compiler command
|
||||||
|
 <br />  CFLAGS      C compiler flags
|
||||||
|
 <br />  CPPFLAGS    (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if
|
||||||
|
 <br />              you have headers in a nonstandard directory <include dir>
|
||||||
|
 <br />  MPICC       MPI C compiler command
|
||||||
|
 <br />  MPIFC       MPI Fortran compiler command
|
||||||
|
 <br />  CPP         C preprocessor
|
||||||
|
 <br />
|
||||||
|
 <br />Use these variables to override the choices made by ‘configure’ or to help
|
||||||
|
 <br />it to find libraries and programs with nonstandard names/locations.
|
||||||
|
 <br />
|
||||||
|
 <br />Report bugs to <https://github.com/sfilippone/mld2p4-2/issues>.
|
||||||
|
</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">
|
||||||
|
 ./configure --with-psblas=/opt/psblas-3.5/ \
|
||||||
|
 <br /> --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"> -lsmumps</span></span></span>
|
||||||
|
<span class="obeylines-h"><span class="verb"><span
|
||||||
|
class="cmtt-12"> -lzmumps</span><span
|
||||||
|
class="cmtt-12"> -lcmumps</span><span
|
||||||
|
class="cmtt-12"> -mumps_common</span><span
|
||||||
|
class="cmtt-12"> -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 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">∈ </span><span
|
||||||
|
class="msbm-10x-x-120">ℝ</span><sup><span
|
||||||
|
class="cmmi-8">n</span><span
|
||||||
|
class="cmsy-8">×</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., Ω = </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">…</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
|
||||||
|
Ω ≡ Ω ⊃ Ω ⊃ ...⊃ Ω , A ≡ 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">ℝ</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 Ω</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 Ω</span><sup><span
|
||||||
|
class="cmmi-8">k</span></sup><span
|
||||||
|
class="cmr-12">. For all </span><span
|
||||||
|
class="cmmi-12">k < 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 ∈ ℝnk×nk+1, Rk ∈ ℝnk+1×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 < 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 ⁄= 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 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"> </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"> </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"> </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"> </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 Ω</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 Ω</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 Ω</span><sup><span
|
||||||
|
class="cmmi-8">k</span></sup> <span
|
||||||
|
class="cmr-12">to obtain Ω</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"> </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">∈ </span><span
|
||||||
|
class="cmr-12">Ω</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 Ω</span><sub><span
|
||||||
|
class="cmmi-8">j</span></sub><sup><span
|
||||||
|
class="cmmi-8">k</span></sup> <span
|
||||||
|
class="cmr-12">of Ω</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">∈ </span><span
|
||||||
|
class="cmr-12">Ω</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=" { ∘ -------}
|
||||||
|
Ωkj ⊂ N ki (θ) = r ∈ Ωk : |akir| > θ |akiiakrr| ∪ {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">θ </span><span
|
||||||
|
class="cmsy-10x-x-120">∈ </span><span
|
||||||
|
class="cmr-12">[0</span><span
|
||||||
|
class="cmmi-12">, </span><span
|
||||||
|
class="cmr-12">1] (see</span><span
|
||||||
|
class="cmr-12"> </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"> </span><a
|
||||||
|
href="userhtmlli4.html#Xapnum_07"><span
|
||||||
|
class="cmr-12">7</span></a><span
|
||||||
|
class="cmr-12">,</span><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">.</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">∈ </span><span
|
||||||
|
class="msbm-10x-x-120">ℝ</span><sup><span
|
||||||
|
class="cmmi-8">n</span><sub><span
|
||||||
|
class="cmmi-6">k</span></sub><span
|
||||||
|
class="cmsy-8">×</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 ∈ Ω 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 Ω</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 Ω</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">∈ </span><span
|
||||||
|
class="cmr-12">Ω</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">∈ </span><span
|
||||||
|
class="msbm-10x-x-120">ℝ</span><sup><span
|
||||||
|
class="cmmi-8">n</span><sub><span
|
||||||
|
class="cmmi-6">k</span></sub><span
|
||||||
|
class="cmsy-8">×</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"> </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"> </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 - ω (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 ∑
|
||||||
|
a¯kij = aij if j ∈ N i (θ), (j ⁄= i), ¯akii = akii - (akij - ¯akij),
|
||||||
|
0 otherwise, j⁄=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">ω</span><sup><span
|
||||||
|
class="cmmi-8">k</span></sup> <span
|
||||||
|
class="cmr-12">is an approximation of 4</span><span
|
||||||
|
class="cmmi-12">∕</span><span
|
||||||
|
class="cmr-12">(3</span><span
|
||||||
|
class="cmmi-12">ρ</span><sup><span
|
||||||
|
class="cmmi-8">k</span></sup><span
|
||||||
|
class="cmr-12">), where </span><span
|
||||||
|
class="cmmi-12">ρ</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">∥</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">∥</span><sub>
|
||||||
|
<span
|
||||||
|
class="cmsy-8">∞</span></sub> <span
|
||||||
|
class="cmr-12">as an estimate of </span><span
|
||||||
|
class="cmmi-12">ρ</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"> </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 Ω</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 Ω</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">∈ </span><span
|
||||||
|
class="msbm-10x-x-120">ℝ</span><sup><span
|
||||||
|
class="cmmi-8">n</span><sub><span
|
||||||
|
class="cmmi-6">k,i</span></sub><span
|
||||||
|
class="cmsy-8">×</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 Ω</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 Ω</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∑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 Ω</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">∈ </span><span
|
||||||
|
class="msbm-10x-x-120">ℝ</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">ℝ</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"> </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"> </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">∑</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"> </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"> </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"> </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"> </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">’ML’</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"> </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’s Guide</span><span
|
||||||
|
class="cmr-12"> </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"> </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">
|
||||||
|
  use psb_base_mod
|
||||||
|
 <br />  use mld_prec_mod
|
||||||
|
 <br />  use psb_krylov_mod
|
||||||
|
 <br />... ...
|
||||||
|
 <br />!
|
||||||
|
 <br />! sparse matrix
|
||||||
|
 <br />  type(psb_dspmat_type) :: A
|
||||||
|
 <br />! sparse matrix descriptor
|
||||||
|
 <br />  type(psb_desc_type)   :: desc_A
|
||||||
|
 <br />! preconditioner
|
||||||
|
 <br />  type(mld_dprec_type)  :: P
|
||||||
|
 <br />! right-hand side and solution vectors
|
||||||
|
 <br />  type(psb_d_vect_type) :: b, x
|
||||||
|
 <br />... ...
|
||||||
|
 <br />!
|
||||||
|
 <br />! initialize the parallel environment
|
||||||
|
 <br />  call psb_init(ictxt)
|
||||||
|
 <br />  call psb_info(ictxt,iam,np)
|
||||||
|
 <br />... ...
|
||||||
|
 <br />!
|
||||||
|
 <br />! read and assemble the spd matrix A and the right-hand side b
|
||||||
|
 <br />! using PSBLAS routines for sparse matrix / vector management
|
||||||
|
 <br />... ...
|
||||||
|
 <br />!
|
||||||
|
 <br />! initialize the default multilevel preconditioner, i.e. V-cycle
|
||||||
|
 <br />! with basic smoothed aggregation, 1 hybrid forward/backward
|
||||||
|
 <br />! GS sweep as pre/post-smoother and UMFPACK as coarsest-level
|
||||||
|
 <br />! solver
|
||||||
|
 <br />  call P%init(’ML’,info)
|
||||||
|
 <br />!
|
||||||
|
 <br />! build the preconditioner
|
||||||
|
 <br />  call P%hierarchy_build(A,desc_A,info)
|
||||||
|
 <br />  call P%smoothers_build(A,desc_A,info)
|
||||||
|
 <br />
|
||||||
|
 <br />!
|
||||||
|
 <br />! set the solver parameters and the initial guess
|
||||||
|
 <br />  ... ...
|
||||||
|
 <br />!
|
||||||
|
 <br />! solve Ax=b with preconditioned CG
|
||||||
|
 <br />  call psb_krylov(’CG’,A,P,b,x,tol,desc_A,info)
|
||||||
|
 <br />  ... ...
|
||||||
|
 <br />!
|
||||||
|
 <br />! deallocate the preconditioner
|
||||||
|
 <br />  call P%free(info)
|
||||||
|
 <br />!
|
||||||
|
 <br />! deallocate other data structures
|
||||||
|
 <br />  ... ...
|
||||||
|
 <br />!
|
||||||
|
 <br />! exit the parallel environment
|
||||||
|
 <br />  call psb_exit(ictxt)
|
||||||
|
 <br />  stop
|
||||||
|
</div>
|
||||||
|
<!--l. 208--><p class="nopar" >
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<br /> <div class="caption"
|
||||||
|
><span class="id">Figure 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"> </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"> </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"> </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"> </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"> </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">
|
||||||
|
... ...
|
||||||
|
 <br />! build a V-cycle preconditioner with 1 block-Jacobi sweep (with
|
||||||
|
 <br />! ILU(0) on the blocks) as pre- and post-smoother, and 8  block-Jacobi
|
||||||
|
 <br />! sweeps (with ILU(0) on the blocks) as coarsest-level solver
|
||||||
|
 <br />  call P%init(’ML’,info)
|
||||||
|
 <br />  call_P%set(’SMOOTHER_TYPE’,’BJAC’,info)
|
||||||
|
 <br />  call P%set(’COARSE_SOLVE’,’BJAC’,info)
|
||||||
|
 <br />  call P%set(’COARSE_SWEEPS’,8,info)
|
||||||
|
 <br />  call P%hierarchy_build(A,desc_A,info)
|
||||||
|
 <br />  call P%smoothers_build(A,desc_A,info)
|
||||||
|
 <br />... ...
|
||||||
|
</div>
|
||||||
|
<!--l. 277--><p class="nopar" ></div>
|
||||||
|
<br /> <div class="caption"
|
||||||
|
><span class="id">Figure 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">
|
||||||
|
... ...
|
||||||
|
 <br />! build a W-cycle preconditioner with 2 hybrid Gauss-Seidel sweeps
|
||||||
|
 <br />! as pre- and post-smoother, a distributed coarsest
|
||||||
|
 <br />! matrix, and MUMPS as coarsest-level solver
|
||||||
|
 <br />  call P%init(’ML’,info)
|
||||||
|
 <br />  call P%set(’ML_CYCLE’,’WCYCLE’,info)
|
||||||
|
 <br />  call P%set(’SMOOTHER_TYPE’,’FBGS’,info)
|
||||||
|
 <br />  call P%set(’SMOOTHER_SWEEPS’,2,info)
|
||||||
|
 <br />  call P%set(’COARSE_SOLVE’,’MUMPS’,info)
|
||||||
|
 <br />  call P%set(’COARSE_MAT’,’DIST’,info)
|
||||||
|
 <br />  call P%hierarchy_build(A,desc_A,info)
|
||||||
|
 <br />  call P%smoothers_build(A,desc_A,info)
|
||||||
|
 <br />... ...
|
||||||
|
</div>
|
||||||
|
<!--l. 303--><p class="nopar" ></div>
|
||||||
|
<br /> <div class="caption"
|
||||||
|
><span class="id">Figure 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">
|
||||||
|
... ...
|
||||||
|
 <br />! set RAS with overlap 2 and ILU(0) on the local blocks
|
||||||
|
 <br />  call P%init(’AS’,info)
|
||||||
|
 <br />  call P%set(’SUB_OVR’,2,info)
|
||||||
|
 <br />  call P%bld(A,desc_A,info)
|
||||||
|
 <br />... ...
|
||||||
|
 <br />! solve Ax=b with preconditioned BiCGSTAB
|
||||||
|
 <br />  call psb_krylov(’BICGSTAB’,A,P,b,x,tol,desc_A,info)
|
||||||
|
</div>
|
||||||
|
<!--l. 323--><p class="nopar" ></div>
|
||||||
|
<br /> <div class="caption"
|
||||||
|
><span class="id">Figure 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>
|