mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-06 14:44:55 +00:00
Merge branch 'documentation' of github.com:sfilippone/amg4psblas into documentation
# Conflicts: # docs/amg4psblas_1.0-guide.pdf # docs/html/userhtmlse1.html # docs/html/userhtmlse4.html # docs/html/userhtmlse6.html # docs/html/userhtmlsu10.html # docs/html/userhtmlsu11.html # docs/html/userhtmlsu12.html # docs/html/userhtmlsu13.html # docs/html/userhtmlsu14.html # docs/html/userhtmlsu15.html # docs/html/userhtmlsu3.html # docs/html/userhtmlsu4.html # docs/html/userhtmlsu5.html # docs/html/userhtmlsu6.html # docs/html/userhtmlsu7.html # docs/html/userhtmlsu8.html # docs/html/userhtmlsu9.html # docs/src/building.tex # docs/src/overview.tex
This commit is contained in:
Binary file not shown.
+13
-13
@@ -10,7 +10,7 @@
|
|||||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||||
</head><body
|
</head><body
|
||||||
>
|
>
|
||||||
<!--l. 95--><p class="noindent" ><span
|
<!--l. 105--><p class="noindent" ><span
|
||||||
class="cmbx-12x-x-144">MLD2P4</span><br
|
class="cmbx-12x-x-144">MLD2P4</span><br
|
||||||
class="newline" /> <span
|
class="newline" /> <span
|
||||||
class="cmbx-12x-x-144">User’s and Reference Guide</span><br
|
class="cmbx-12x-x-144">User’s and Reference Guide</span><br
|
||||||
@@ -123,57 +123,57 @@ class="cmr-12">Method set</span></a></span>
|
|||||||
<br /> <span
|
<br /> <span
|
||||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||||
class="cmr-12">5.3 </span><a
|
class="cmr-12">5.3 </span><a
|
||||||
href="userhtmlsu9.html#x18-170005.3" id="QQ2-18-31"><span
|
href="userhtmlsu9.html#x18-170005.3" id="QQ2-18-30"><span
|
||||||
class="cmr-12">Method hierarchy</span><span
|
class="cmr-12">Method hierarchy</span><span
|
||||||
class="cmr-12">_build</span></a></span>
|
class="cmr-12">_build</span></a></span>
|
||||||
<br /> <span
|
<br /> <span
|
||||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||||
class="cmr-12">5.4 </span><a
|
class="cmr-12">5.4 </span><a
|
||||||
href="userhtmlsu10.html#x19-180005.4" id="QQ2-19-32"><span
|
href="userhtmlsu10.html#x19-180005.4" id="QQ2-19-31"><span
|
||||||
class="cmr-12">Method smoothers</span><span
|
class="cmr-12">Method smoothers</span><span
|
||||||
class="cmr-12">_build</span></a></span>
|
class="cmr-12">_build</span></a></span>
|
||||||
<br /> <span
|
<br /> <span
|
||||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||||
class="cmr-12">5.5 </span><a
|
class="cmr-12">5.5 </span><a
|
||||||
href="userhtmlsu11.html#x20-190005.5" id="QQ2-20-33"><span
|
href="userhtmlsu11.html#x20-190005.5" id="QQ2-20-32"><span
|
||||||
class="cmr-12">Method build</span></a></span>
|
class="cmr-12">Method build</span></a></span>
|
||||||
<br /> <span
|
<br /> <span
|
||||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||||
class="cmr-12">5.6 </span><a
|
class="cmr-12">5.6 </span><a
|
||||||
href="userhtmlsu12.html#x21-200005.6" id="QQ2-21-34"><span
|
href="userhtmlsu12.html#x21-200005.6" id="QQ2-21-33"><span
|
||||||
class="cmr-12">Method apply</span></a></span>
|
class="cmr-12">Method apply</span></a></span>
|
||||||
<br /> <span
|
<br /> <span
|
||||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||||
class="cmr-12">5.7 </span><a
|
class="cmr-12">5.7 </span><a
|
||||||
href="userhtmlsu13.html#x22-210005.7" id="QQ2-22-35"><span
|
href="userhtmlsu13.html#x22-210005.7" id="QQ2-22-34"><span
|
||||||
class="cmr-12">Method free</span></a></span>
|
class="cmr-12">Method free</span></a></span>
|
||||||
<br /> <span
|
<br /> <span
|
||||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||||
class="cmr-12">5.8 </span><a
|
class="cmr-12">5.8 </span><a
|
||||||
href="userhtmlsu14.html#x23-220005.8" id="QQ2-23-36"><span
|
href="userhtmlsu14.html#x23-220005.8" id="QQ2-23-35"><span
|
||||||
class="cmr-12">Method descr</span></a></span>
|
class="cmr-12">Method descr</span></a></span>
|
||||||
<br /> <span
|
<br /> <span
|
||||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||||
class="cmr-12">5.9 </span><a
|
class="cmr-12">5.9 </span><a
|
||||||
href="userhtmlsu15.html#x24-230005.9" id="QQ2-24-37"><span
|
href="userhtmlsu15.html#x24-230005.9" id="QQ2-24-36"><span
|
||||||
class="cmr-12">Auxiliary Methods</span></a></span>
|
class="cmr-12">Auxiliary Methods</span></a></span>
|
||||||
<br /> <span class="sectionToc" ><span
|
<br /> <span class="sectionToc" ><span
|
||||||
class="cmr-12">6 </span><a
|
class="cmr-12">6 </span><a
|
||||||
href="userhtmlse6.html#x25-290006" id="QQ2-25-43"><span
|
href="userhtmlse6.html#x25-290006" id="QQ2-25-42"><span
|
||||||
class="cmr-12">Adding new smoother and solver objects to AMG4PSBLAS</span></a></span>
|
class="cmr-12">Adding new smoother and solver objects to AMG4PSBLAS</span></a></span>
|
||||||
<br /> <span class="sectionToc" ><span
|
<br /> <span class="sectionToc" ><span
|
||||||
class="cmr-12">7 </span><a
|
class="cmr-12">7 </span><a
|
||||||
href="userhtmlse7.html#x26-300007" id="QQ2-26-44"><span
|
href="userhtmlse7.html#x26-300007" id="QQ2-26-43"><span
|
||||||
class="cmr-12">Error Handling</span></a></span>
|
class="cmr-12">Error Handling</span></a></span>
|
||||||
<br /> <span class="sectionToc" ><span
|
<br /> <span class="sectionToc" ><span
|
||||||
class="cmr-12">A </span><a
|
class="cmr-12">A </span><a
|
||||||
href="userhtmlse8.html#x27-31000A" id="QQ2-27-45"><span
|
href="userhtmlse8.html#x27-31000A" id="QQ2-27-44"><span
|
||||||
class="cmr-12">License</span></a></span>
|
class="cmr-12">License</span></a></span>
|
||||||
<br /> <span class="likesectionToc" ><a
|
<br /> <span class="likesectionToc" ><a
|
||||||
href="userhtmlli4.html#x28-32000A" id="QQ2-28-46"><span
|
href="userhtmlli4.html#x28-32000A" id="QQ2-28-45"><span
|
||||||
class="cmr-12">References</span></a></span>
|
class="cmr-12">References</span></a></span>
|
||||||
<br /> <span class="sectionToc" ><a
|
<br /> <span class="sectionToc" ><a
|
||||||
href="userhtmlli4.html#Q1-28-47"><span
|
href="userhtmlli4.html#Q1-28-46"><span
|
||||||
class="cmr-12">References</span></a></span>
|
class="cmr-12">References</span></a></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
+1
-13
@@ -194,9 +194,9 @@ div.lstinputlisting{ font-family: monospace,monospace; white-space: nowrap; }
|
|||||||
#TBL-5{border-collapse:collapse;}
|
#TBL-5{border-collapse:collapse;}
|
||||||
#TBL-5 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
#TBL-5 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||||
#TBL-5{border-collapse:collapse;}
|
#TBL-5{border-collapse:collapse;}
|
||||||
td#TBL-5-10-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
|
||||||
td#TBL-5-11-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
td#TBL-5-11-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
||||||
td#TBL-5-12-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
td#TBL-5-12-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
||||||
|
td#TBL-5-13-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 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||||
#TBL-6{border-collapse:collapse;}
|
#TBL-6{border-collapse:collapse;}
|
||||||
#TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
#TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||||
@@ -250,17 +250,5 @@ td#TBL-7-7-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
|||||||
#TBL-9{border-collapse:collapse;}
|
#TBL-9{border-collapse:collapse;}
|
||||||
#TBL-9 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
#TBL-9 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||||
#TBL-9{border-collapse:collapse;}
|
#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 */
|
/* end css.sty */
|
||||||
|
|
||||||
|
|||||||
+13
-13
@@ -10,7 +10,7 @@
|
|||||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||||
</head><body
|
</head><body
|
||||||
>
|
>
|
||||||
<!--l. 95--><p class="noindent" ><span
|
<!--l. 105--><p class="noindent" ><span
|
||||||
class="cmbx-12x-x-144">MLD2P4</span><br
|
class="cmbx-12x-x-144">MLD2P4</span><br
|
||||||
class="newline" /> <span
|
class="newline" /> <span
|
||||||
class="cmbx-12x-x-144">User’s and Reference Guide</span><br
|
class="cmbx-12x-x-144">User’s and Reference Guide</span><br
|
||||||
@@ -123,57 +123,57 @@ class="cmr-12">Method set</span></a></span>
|
|||||||
<br /> <span
|
<br /> <span
|
||||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||||
class="cmr-12">5.3 </span><a
|
class="cmr-12">5.3 </span><a
|
||||||
href="userhtmlsu9.html#x18-170005.3" id="QQ2-18-31"><span
|
href="userhtmlsu9.html#x18-170005.3" id="QQ2-18-30"><span
|
||||||
class="cmr-12">Method hierarchy</span><span
|
class="cmr-12">Method hierarchy</span><span
|
||||||
class="cmr-12">_build</span></a></span>
|
class="cmr-12">_build</span></a></span>
|
||||||
<br /> <span
|
<br /> <span
|
||||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||||
class="cmr-12">5.4 </span><a
|
class="cmr-12">5.4 </span><a
|
||||||
href="userhtmlsu10.html#x19-180005.4" id="QQ2-19-32"><span
|
href="userhtmlsu10.html#x19-180005.4" id="QQ2-19-31"><span
|
||||||
class="cmr-12">Method smoothers</span><span
|
class="cmr-12">Method smoothers</span><span
|
||||||
class="cmr-12">_build</span></a></span>
|
class="cmr-12">_build</span></a></span>
|
||||||
<br /> <span
|
<br /> <span
|
||||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||||
class="cmr-12">5.5 </span><a
|
class="cmr-12">5.5 </span><a
|
||||||
href="userhtmlsu11.html#x20-190005.5" id="QQ2-20-33"><span
|
href="userhtmlsu11.html#x20-190005.5" id="QQ2-20-32"><span
|
||||||
class="cmr-12">Method build</span></a></span>
|
class="cmr-12">Method build</span></a></span>
|
||||||
<br /> <span
|
<br /> <span
|
||||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||||
class="cmr-12">5.6 </span><a
|
class="cmr-12">5.6 </span><a
|
||||||
href="userhtmlsu12.html#x21-200005.6" id="QQ2-21-34"><span
|
href="userhtmlsu12.html#x21-200005.6" id="QQ2-21-33"><span
|
||||||
class="cmr-12">Method apply</span></a></span>
|
class="cmr-12">Method apply</span></a></span>
|
||||||
<br /> <span
|
<br /> <span
|
||||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||||
class="cmr-12">5.7 </span><a
|
class="cmr-12">5.7 </span><a
|
||||||
href="userhtmlsu13.html#x22-210005.7" id="QQ2-22-35"><span
|
href="userhtmlsu13.html#x22-210005.7" id="QQ2-22-34"><span
|
||||||
class="cmr-12">Method free</span></a></span>
|
class="cmr-12">Method free</span></a></span>
|
||||||
<br /> <span
|
<br /> <span
|
||||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||||
class="cmr-12">5.8 </span><a
|
class="cmr-12">5.8 </span><a
|
||||||
href="userhtmlsu14.html#x23-220005.8" id="QQ2-23-36"><span
|
href="userhtmlsu14.html#x23-220005.8" id="QQ2-23-35"><span
|
||||||
class="cmr-12">Method descr</span></a></span>
|
class="cmr-12">Method descr</span></a></span>
|
||||||
<br /> <span
|
<br /> <span
|
||||||
class="cmr-12"> </span><span class="subsectionToc" ><span
|
class="cmr-12"> </span><span class="subsectionToc" ><span
|
||||||
class="cmr-12">5.9 </span><a
|
class="cmr-12">5.9 </span><a
|
||||||
href="userhtmlsu15.html#x24-230005.9" id="QQ2-24-37"><span
|
href="userhtmlsu15.html#x24-230005.9" id="QQ2-24-36"><span
|
||||||
class="cmr-12">Auxiliary Methods</span></a></span>
|
class="cmr-12">Auxiliary Methods</span></a></span>
|
||||||
<br /> <span class="sectionToc" ><span
|
<br /> <span class="sectionToc" ><span
|
||||||
class="cmr-12">6 </span><a
|
class="cmr-12">6 </span><a
|
||||||
href="userhtmlse6.html#x25-290006" id="QQ2-25-43"><span
|
href="userhtmlse6.html#x25-290006" id="QQ2-25-42"><span
|
||||||
class="cmr-12">Adding new smoother and solver objects to AMG4PSBLAS</span></a></span>
|
class="cmr-12">Adding new smoother and solver objects to AMG4PSBLAS</span></a></span>
|
||||||
<br /> <span class="sectionToc" ><span
|
<br /> <span class="sectionToc" ><span
|
||||||
class="cmr-12">7 </span><a
|
class="cmr-12">7 </span><a
|
||||||
href="userhtmlse7.html#x26-300007" id="QQ2-26-44"><span
|
href="userhtmlse7.html#x26-300007" id="QQ2-26-43"><span
|
||||||
class="cmr-12">Error Handling</span></a></span>
|
class="cmr-12">Error Handling</span></a></span>
|
||||||
<br /> <span class="sectionToc" ><span
|
<br /> <span class="sectionToc" ><span
|
||||||
class="cmr-12">A </span><a
|
class="cmr-12">A </span><a
|
||||||
href="userhtmlse8.html#x27-31000A" id="QQ2-27-45"><span
|
href="userhtmlse8.html#x27-31000A" id="QQ2-27-44"><span
|
||||||
class="cmr-12">License</span></a></span>
|
class="cmr-12">License</span></a></span>
|
||||||
<br /> <span class="likesectionToc" ><a
|
<br /> <span class="likesectionToc" ><a
|
||||||
href="userhtmlli4.html#x28-32000A" id="QQ2-28-46"><span
|
href="userhtmlli4.html#x28-32000A" id="QQ2-28-45"><span
|
||||||
class="cmr-12">References</span></a></span>
|
class="cmr-12">References</span></a></span>
|
||||||
<br /> <span class="sectionToc" ><a
|
<br /> <span class="sectionToc" ><a
|
||||||
href="userhtmlli4.html#Q1-28-47"><span
|
href="userhtmlli4.html#Q1-28-46"><span
|
||||||
class="cmr-12">References</span></a></span>
|
class="cmr-12">References</span></a></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -147,7 +147,7 @@ class="cmr-12">of AMG4PSBLAS.</span>
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--l. 125--><div class="crosslinks"><p class="noindent"><span
|
<!--l. 135--><div class="crosslinks"><p class="noindent"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlli2.html" ><span
|
href="userhtmlli2.html" ><span
|
||||||
class="cmr-12">next</span></a><span
|
class="cmr-12">next</span></a><span
|
||||||
@@ -158,6 +158,6 @@ class="cmr-12">] [</span><a
|
|||||||
href="userhtml.html#userhtmlli1.html" ><span
|
href="userhtml.html#userhtmlli1.html" ><span
|
||||||
class="cmr-12">up</span></a><span
|
class="cmr-12">up</span></a><span
|
||||||
class="cmr-12">] </span></p></div>
|
class="cmr-12">] </span></p></div>
|
||||||
<!--l. 125--><p class="indent" > <a
|
<!--l. 135--><p class="indent" > <a
|
||||||
id="tailuserhtmlli1.html"></a>
|
id="tailuserhtmlli1.html"></a>
|
||||||
</body></html>
|
</body></html>
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||||
</head><body
|
</head><body
|
||||||
>
|
>
|
||||||
<!--l. 125--><div class="crosslinks"><p class="noindent"><span
|
<!--l. 135--><div class="crosslinks"><p class="noindent"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlse1.html" ><span
|
href="userhtmlse1.html" ><span
|
||||||
class="cmr-12">next</span></a><span
|
class="cmr-12">next</span></a><span
|
||||||
@@ -135,32 +135,32 @@ class="cmr-12">Auxiliary Methods</span></a></span>
|
|||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span><span class="subsubsectionToc" ><span
|
class="cmr-12"> </span><span class="subsubsectionToc" ><span
|
||||||
class="cmr-12">5.9.1 </span><a
|
class="cmr-12">5.9.1 </span><a
|
||||||
href="userhtmlsu15.html#x24-240005.9.1" id="QQ2-24-38"><span
|
href="userhtmlsu15.html#x24-240005.9.1" id="QQ2-24-37"><span
|
||||||
class="cmr-12">Method: dump</span></a></span>
|
class="cmr-12">Method: dump</span></a></span>
|
||||||
<br /> <span
|
<br /> <span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span><span class="subsubsectionToc" ><span
|
class="cmr-12"> </span><span class="subsubsectionToc" ><span
|
||||||
class="cmr-12">5.9.2 </span><a
|
class="cmr-12">5.9.2 </span><a
|
||||||
href="userhtmlsu15.html#x24-250005.9.2" id="QQ2-24-39"><span
|
href="userhtmlsu15.html#x24-250005.9.2" id="QQ2-24-38"><span
|
||||||
class="cmr-12">Method: clone</span></a></span>
|
class="cmr-12">Method: clone</span></a></span>
|
||||||
<br /> <span
|
<br /> <span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span><span class="subsubsectionToc" ><span
|
class="cmr-12"> </span><span class="subsubsectionToc" ><span
|
||||||
class="cmr-12">5.9.3 </span><a
|
class="cmr-12">5.9.3 </span><a
|
||||||
href="userhtmlsu15.html#x24-260005.9.3" id="QQ2-24-40"><span
|
href="userhtmlsu15.html#x24-260005.9.3" id="QQ2-24-39"><span
|
||||||
class="cmr-12">Method: sizeof</span></a></span>
|
class="cmr-12">Method: sizeof</span></a></span>
|
||||||
<br /> <span
|
<br /> <span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span><span class="subsubsectionToc" ><span
|
class="cmr-12"> </span><span class="subsubsectionToc" ><span
|
||||||
class="cmr-12">5.9.4 </span><a
|
class="cmr-12">5.9.4 </span><a
|
||||||
href="userhtmlsu15.html#x24-270005.9.4" id="QQ2-24-41"><span
|
href="userhtmlsu15.html#x24-270005.9.4" id="QQ2-24-40"><span
|
||||||
class="cmr-12">Method: allocate</span><span
|
class="cmr-12">Method: allocate</span><span
|
||||||
class="cmr-12">_wrk</span></a></span>
|
class="cmr-12">_wrk</span></a></span>
|
||||||
<br /> <span
|
<br /> <span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span><span class="subsubsectionToc" ><span
|
class="cmr-12"> </span><span class="subsubsectionToc" ><span
|
||||||
class="cmr-12">5.9.5 </span><a
|
class="cmr-12">5.9.5 </span><a
|
||||||
href="userhtmlsu15.html#x24-280005.9.5" id="QQ2-24-42"><span
|
href="userhtmlsu15.html#x24-280005.9.5" id="QQ2-24-41"><span
|
||||||
class="cmr-12">Method: free</span><span
|
class="cmr-12">Method: free</span><span
|
||||||
class="cmr-12">_wrk</span></a></span>
|
class="cmr-12">_wrk</span></a></span>
|
||||||
<br /> <span class="sectionToc" ><span
|
<br /> <span class="sectionToc" ><span
|
||||||
@@ -176,7 +176,7 @@ class="cmr-12">A </span><a
|
|||||||
href="userhtmlse8.html#x27-31000A"><span
|
href="userhtmlse8.html#x27-31000A"><span
|
||||||
class="cmr-12">License</span></a></span>
|
class="cmr-12">License</span></a></span>
|
||||||
<br /> <span class="sectionToc" ><a
|
<br /> <span class="sectionToc" ><a
|
||||||
href="userhtmlli4.html#Q1-28-47"><span
|
href="userhtmlli4.html#Q1-28-46"><span
|
||||||
class="cmr-12">References</span></a></span>
|
class="cmr-12">References</span></a></span>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
+64
-45
@@ -29,7 +29,7 @@ class="cmr-12">] </span></p></div>
|
|||||||
class="cmr-12">References</span></h3>
|
class="cmr-12">References</span></h3>
|
||||||
<!--l. 2--><p class="noindent" >
|
<!--l. 2--><p class="noindent" >
|
||||||
<a
|
<a
|
||||||
id="Q1-28-47"></a>
|
id="Q1-28-46"></a>
|
||||||
<div class="thebibliography">
|
<div class="thebibliography">
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
@@ -62,6 +62,25 @@ class="cmr-12">.</span>
|
|||||||
class="cmr-12">[2]</span><span class="bibsp"><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
|
class="cmr-12"> </span><span
|
||||||
|
class="cmr-12"> </span></span></span><a
|
||||||
|
id="XBERTACCINIFILIPPONE"></a><span
|
||||||
|
class="cmr-12">D. Bertaccini</span><span
|
||||||
|
class="cmr-12"> and</span><span
|
||||||
|
class="cmr-12"> S. Filippone, </span><span
|
||||||
|
class="cmti-12">Sparse approximate inverse</span>
|
||||||
|
<span
|
||||||
|
class="cmti-12">preconditioners on high performance GPU platforms</span><span
|
||||||
|
class="cmr-12">, Comput. Math. Appl.</span>
|
||||||
|
<span
|
||||||
|
class="cmbx-12">71 </span><span
|
||||||
|
class="cmr-12">(2016), no.</span><span
|
||||||
|
class="cmr-12"> 3, 693–711.</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
|
class="cmr-12"> </span></span></span><a
|
||||||
id="XBREZINA_VANEK"></a><span
|
id="XBREZINA_VANEK"></a><span
|
||||||
class="cmr-12">M.</span><span
|
class="cmr-12">M.</span><span
|
||||||
@@ -75,7 +94,7 @@ class="cmr-12">, Computing, 63, 1999, 233–263.</span>
|
|||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[3]</span><span class="bibsp"><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
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -94,7 +113,7 @@ class="cmr-12">, SIAM, 2000.</span>
|
|||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[4]</span><span class="bibsp"><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
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -119,9 +138,12 @@ class="cmr-12">State of the Art in Scientific Computing, Lecture Notes in Comput
|
|||||||
<span
|
<span
|
||||||
class="cmr-12">Springer, 2005, 593–602.</span>
|
class="cmr-12">Springer, 2005, 593–602.</span>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[5]</span><span class="bibsp"><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
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -140,13 +162,10 @@ class="cmti-12">applications</span><span
|
|||||||
class="cmr-12">, Applicable Algebra in Engineering, Communications and</span>
|
class="cmr-12">, Applicable Algebra in Engineering, Communications and</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">Computing, 18 (3) 2007, 223–239.</span>
|
class="cmr-12">Computing, 18 (3) 2007, 223–239.</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[6]</span><span class="bibsp"><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
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -164,7 +183,7 @@ class="cmr-12">(2), 1999, 792–797.</span>
|
|||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[7]</span><span class="bibsp"><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
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -189,7 +208,7 @@ class="cmr-12">Workshops, IEEE CS, 2011.</span>
|
|||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[8]</span><span class="bibsp"><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
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -209,8 +228,8 @@ class="cmr-12">, Applied Numerical Mathematics, Elsevier Science,</span>
|
|||||||
class="cmr-12">57 (11-12), 2007, 1181-1196.</span>
|
class="cmr-12">57 (11-12), 2007, 1181-1196.</span>
|
||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[9]</span><span class="bibsp"><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
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -229,7 +248,7 @@ class="cmr-12">, ACM Trans. Math. Softw., 37(3), 2010, art. 30.</span>
|
|||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[10]</span><span class="bibsp"><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
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -248,7 +267,7 @@ class="cmr-12">, Appl. Algebra Engrg. Comm. Comput., 18(3), 2007, 223–239.
|
|||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[11]</span><span class="bibsp"><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
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -264,10 +283,13 @@ class="cmr-12">, 2020, </span><a
|
|||||||
href="https://arxiv.org/abs/2006.16147v3arXiv:2006.16147v2" ><span
|
href="https://arxiv.org/abs/2006.16147v3arXiv:2006.16147v2" ><span
|
||||||
class="cmr-12">arXiv:2006.16147v3</span></a><span
|
class="cmr-12">arXiv:2006.16147v3</span></a><span
|
||||||
class="cmr-12">.</span>
|
class="cmr-12">.</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[12]</span><span class="bibsp"><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
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -285,13 +307,10 @@ class="cmr-12">, ACM Transactions on Mathematical Software, 30, 2004, 196–
|
|||||||
class="cmr-12">(See also </span><span
|
class="cmr-12">(See also </span><span
|
||||||
class="cmtt-12">http://www.cise.ufl.edu/~davis/</span><span
|
class="cmtt-12">http://www.cise.ufl.edu/~davis/</span><span
|
||||||
class="cmr-12">)</span>
|
class="cmr-12">)</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[13]</span><span class="bibsp"><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
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -317,7 +336,7 @@ class="cmr-12">SIAM Journal on Matrix Analysis and Applications, 20 (3), 1999, 7
|
|||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[14]</span><span class="bibsp"><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
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -338,7 +357,7 @@ class="cmr-12">Software, 16 (1) 1990, 1–17.</span>
|
|||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[15]</span><span class="bibsp"><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
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -359,7 +378,7 @@ class="cmr-12">Transactions on Mathematical Software, 14 (1) 1988, 1–17.</
|
|||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[16]</span><span class="bibsp"><span
|
class="cmr-12">[17]</span><span class="bibsp"><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -377,7 +396,7 @@ class="cmr-12">.</span>
|
|||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[17]</span><span class="bibsp"><span
|
class="cmr-12">[18]</span><span class="bibsp"><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -395,7 +414,7 @@ class="cmr-12"> 23.</span>
|
|||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[18]</span><span class="bibsp"><span
|
class="cmr-12">[19]</span><span class="bibsp"><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -409,10 +428,13 @@ class="cmti-12">Library for Parallel Linear Algebra Computation on Sparse Matric
|
|||||||
class="cmr-12">, ACM</span>
|
class="cmr-12">, ACM</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">Transactions on Mathematical Software, 26 (4), 2000, 527–550.</span>
|
class="cmr-12">Transactions on Mathematical Software, 26 (4), 2000, 527–550.</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[19]</span><span class="bibsp"><span
|
class="cmr-12">[20]</span><span class="bibsp"><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -424,13 +446,10 @@ class="cmti-12">algebraic multigrid by aggregation</span><span
|
|||||||
class="cmr-12">, Numerical Lin. Algebra with Applications,</span>
|
class="cmr-12">, Numerical Lin. Algebra with Applications,</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">2016, 23:501-518</span>
|
class="cmr-12">2016, 23:501-518</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[20]</span><span class="bibsp"><span
|
class="cmr-12">[21]</span><span class="bibsp"><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -452,7 +471,7 @@ class="cmr-12">, MIT Press, 1998.</span>
|
|||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[21]</span><span class="bibsp"><span
|
class="cmr-12">[22]</span><span class="bibsp"><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -474,7 +493,7 @@ class="cmr-12">Mathematical Software, 5 (3), 1979, 308–323.</span>
|
|||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[22]</span><span class="bibsp"><span
|
class="cmr-12">[23]</span><span class="bibsp"><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -494,7 +513,7 @@ class="cmr-12">ACM Transactions on Mathematical Software, 29 (2), 2003, 110̵
|
|||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[23]</span><span class="bibsp"><span
|
class="cmr-12">[24]</span><span class="bibsp"><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -510,7 +529,7 @@ class="cmr-12">Numerical Linear Algebra with Applications, 15 (5), 2008, 473R
|
|||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[24]</span><span class="bibsp"><span
|
class="cmr-12">[25]</span><span class="bibsp"><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -524,7 +543,7 @@ class="cmr-12">2003.</span>
|
|||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[25]</span><span class="bibsp"><span
|
class="cmr-12">[26]</span><span class="bibsp"><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -540,9 +559,12 @@ class="cmr-12">, Cambridge</span>
|
|||||||
<span
|
<span
|
||||||
class="cmr-12">University Press, 1996.</span>
|
class="cmr-12">University Press, 1996.</span>
|
||||||
</p>
|
</p>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[26]</span><span class="bibsp"><span
|
class="cmr-12">[27]</span><span class="bibsp"><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -562,7 +584,7 @@ class="cmr-12">Press, 1998.</span>
|
|||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[27]</span><span class="bibsp"><span
|
class="cmr-12">[28]</span><span class="bibsp"><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -578,13 +600,10 @@ class="cmr-12">
|
|||||||
class="cmr-12">U.</span><span
|
class="cmr-12">U.</span><span
|
||||||
class="cmr-12"> Trottenberg, C.</span><span
|
class="cmr-12"> Trottenberg, C.</span><span
|
||||||
class="cmr-12"> Oosterlee, Multigrid, Academic Press, 2001.</span>
|
class="cmr-12"> Oosterlee, Multigrid, Academic Press, 2001.</span>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[28]</span><span class="bibsp"><span
|
class="cmr-12">[29]</span><span class="bibsp"><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -602,7 +621,7 @@ class="cmr-12">editor, Proceedings of SuperComputing 2000, Dallas, 2000.</span>
|
|||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[29]</span><span class="bibsp"><span
|
class="cmr-12">[30]</span><span class="bibsp"><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -621,7 +640,7 @@ class="cmr-12">(3) 1996, 179–196.</span>
|
|||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[30]</span><span class="bibsp"><span
|
class="cmr-12">[31]</span><span class="bibsp"><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -638,7 +657,7 @@ class="cmr-12">16, (2013) 59–76.</span>
|
|||||||
</p>
|
</p>
|
||||||
<p class="bibitem" ><span class="biblabel">
|
<p class="bibitem" ><span class="biblabel">
|
||||||
<span
|
<span
|
||||||
class="cmr-12">[31]</span><span class="bibsp"><span
|
class="cmr-12">[32]</span><span class="bibsp"><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span><span
|
class="cmr-12"> </span><span
|
||||||
class="cmr-12"> </span></span></span><a
|
class="cmr-12"> </span></span></span><a
|
||||||
@@ -659,7 +678,7 @@ class="cmr-12">Transactions on Mathematical Software, 44, (2018) 39:1–39:2
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--l. 147--><div class="crosslinks"><p class="noindent"><span
|
<!--l. 157--><div class="crosslinks"><p class="noindent"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlse8.html" ><span
|
href="userhtmlse8.html" ><span
|
||||||
class="cmr-12">prev</span></a><span
|
class="cmr-12">prev</span></a><span
|
||||||
@@ -673,6 +692,6 @@ class="cmr-12">] [</span><a
|
|||||||
href="userhtml.html#userhtmlli4.html" ><span
|
href="userhtml.html#userhtmlli4.html" ><span
|
||||||
class="cmr-12">up</span></a><span
|
class="cmr-12">up</span></a><span
|
||||||
class="cmr-12">] </span></p></div>
|
class="cmr-12">] </span></p></div>
|
||||||
<!--l. 147--><p class="indent" > <a
|
<!--l. 157--><p class="indent" > <a
|
||||||
id="tailuserhtmlli4.html"></a>
|
id="tailuserhtmlli4.html"></a>
|
||||||
</body></html>
|
</body></html>
|
||||||
|
|||||||
+16
-15
@@ -77,17 +77,18 @@ class="small-caps">d</span> <span
|
|||||||
class="small-caps">o</span><span
|
class="small-caps">o</span><span
|
||||||
class="small-caps">n</span> PSBLAS</span>
|
class="small-caps">n</span> PSBLAS</span>
|
||||||
<span
|
<span
|
||||||
class="cmcsc-10x-x-120">(AMG4PSBLAS) </span><span
|
class="cmr-12">(</span><span
|
||||||
class="cmr-12">provides parallel Algebraic MultiGrid (AMG) preconditioners (see,</span>
|
class="cmcsc-10x-x-120">AMG4PSBLAS</span><span
|
||||||
|
class="cmr-12">) provides parallel Algebraic MultiGrid (AMG) preconditioners (see,</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">e.g., </span><span class="cite"><span
|
class="cmr-12">e.g., </span><span class="cite"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlli4.html#XBriggs2000"><span
|
href="userhtmlli4.html#XBriggs2000"><span
|
||||||
class="cmr-12">3</span></a><span
|
class="cmr-12">4</span></a><span
|
||||||
class="cmr-12">,</span><span
|
class="cmr-12">,</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="userhtmlli4.html#XStuben_01"><span
|
href="userhtmlli4.html#XStuben_01"><span
|
||||||
class="cmr-12">27</span></a><span
|
class="cmr-12">28</span></a><span
|
||||||
class="cmr-12">]</span></span><span
|
class="cmr-12">]</span></span><span
|
||||||
class="cmr-12">), to be used in the iterative solution of linear systems,</span>
|
class="cmr-12">), to be used in the iterative solution of linear systems,</span>
|
||||||
<table
|
<table
|
||||||
@@ -116,11 +117,11 @@ class="cmr-12">(K-cycle)</span><span
|
|||||||
class="cmr-12"> </span><span class="cite"><span
|
class="cmr-12"> </span><span class="cite"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlli4.html#XBriggs2000"><span
|
href="userhtmlli4.html#XBriggs2000"><span
|
||||||
class="cmr-12">3</span></a><span
|
class="cmr-12">4</span></a><span
|
||||||
class="cmr-12">,</span><span
|
class="cmr-12">,</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="userhtmlli4.html#XNotay2008"><span
|
href="userhtmlli4.html#XNotay2008"><span
|
||||||
class="cmr-12">23</span></a><span
|
class="cmr-12">24</span></a><span
|
||||||
class="cmr-12">]</span></span><span
|
class="cmr-12">]</span></span><span
|
||||||
class="cmr-12">; they can be combined with Jacobi hybrid forward/backward</span>
|
class="cmr-12">; they can be combined with Jacobi hybrid forward/backward</span>
|
||||||
<span
|
<span
|
||||||
@@ -144,22 +145,22 @@ class="cmr-12">a decoupled version of the smoothed aggregation procedure propose
|
|||||||
class="cmr-12"> </span><span class="cite"><span
|
class="cmr-12"> </span><span class="cite"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlli4.html#XBREZINA_VANEK"><span
|
href="userhtmlli4.html#XBREZINA_VANEK"><span
|
||||||
class="cmr-12">2</span></a><span
|
class="cmr-12">3</span></a><span
|
||||||
class="cmr-12">,</span>
|
class="cmr-12">,</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="userhtmlli4.html#XVANEK_MANDEL_BREZINA"><span
|
href="userhtmlli4.html#XVANEK_MANDEL_BREZINA"><span
|
||||||
class="cmr-12">29</span></a><span
|
class="cmr-12">30</span></a><span
|
||||||
class="cmr-12">]</span></span><span
|
class="cmr-12">]</span></span><span
|
||||||
class="cmr-12">, and already included in the previous versions of the package</span><span
|
class="cmr-12">, and already included in the previous versions of the package</span><span
|
||||||
class="cmr-12"> </span><span class="cite"><span
|
class="cmr-12"> </span><span class="cite"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlli4.html#XBDDF2007"><span
|
href="userhtmlli4.html#XBDDF2007"><span
|
||||||
class="cmr-12">10</span></a><span
|
class="cmr-12">11</span></a><span
|
||||||
class="cmr-12">,</span><span
|
class="cmr-12">,</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="userhtmlli4.html#XMLD2P4_TOMS"><span
|
href="userhtmlli4.html#XMLD2P4_TOMS"><span
|
||||||
class="cmr-12">9</span></a><span
|
class="cmr-12">10</span></a><span
|
||||||
class="cmr-12">]</span></span><span
|
class="cmr-12">]</span></span><span
|
||||||
class="cmr-12">;</span>
|
class="cmr-12">;</span>
|
||||||
</li>
|
</li>
|
||||||
@@ -170,17 +171,17 @@ class="cmr-12">Weighted Matching introduced in</span><span
|
|||||||
class="cmr-12"> </span><span class="cite"><span
|
class="cmr-12"> </span><span class="cite"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlli4.html#XDV2013"><span
|
href="userhtmlli4.html#XDV2013"><span
|
||||||
class="cmr-12">30</span></a><span
|
class="cmr-12">31</span></a><span
|
||||||
class="cmr-12">,</span><span
|
class="cmr-12">,</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="userhtmlli4.html#XDFV2018"><span
|
href="userhtmlli4.html#XDFV2018"><span
|
||||||
class="cmr-12">31</span></a><span
|
class="cmr-12">32</span></a><span
|
||||||
class="cmr-12">]</span></span> <span
|
class="cmr-12">]</span></span> <span
|
||||||
class="cmr-12">and described in detail in</span><span
|
class="cmr-12">and described in detail in</span><span
|
||||||
class="cmr-12"> </span><span class="cite"><span
|
class="cmr-12"> </span><span class="cite"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlli4.html#XDDF2020"><span
|
href="userhtmlli4.html#XDDF2020"><span
|
||||||
class="cmr-12">11</span></a><span
|
class="cmr-12">12</span></a><span
|
||||||
class="cmr-12">]</span></span><span
|
class="cmr-12">]</span></span><span
|
||||||
class="cmr-12">;</span></li></ul>
|
class="cmr-12">;</span></li></ul>
|
||||||
|
|
||||||
@@ -220,11 +221,11 @@ class="cmr-12">computational framework</span><span
|
|||||||
class="cmr-12"> </span><span class="cite"><span
|
class="cmr-12"> </span><span class="cite"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlli4.html#Xpsblas_00"><span
|
href="userhtmlli4.html#Xpsblas_00"><span
|
||||||
class="cmr-12">18</span></a><span
|
class="cmr-12">19</span></a><span
|
||||||
class="cmr-12">,</span><span
|
class="cmr-12">,</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="userhtmlli4.html#XPSBLAS3"><span
|
href="userhtmlli4.html#XPSBLAS3"><span
|
||||||
class="cmr-12">17</span></a><span
|
class="cmr-12">18</span></a><span
|
||||||
class="cmr-12">]</span></span><span
|
class="cmr-12">]</span></span><span
|
||||||
class="cmr-12">. PSBLAS provides basic linear algebra operators</span>
|
class="cmr-12">. PSBLAS provides basic linear algebra operators</span>
|
||||||
<span
|
<span
|
||||||
|
|||||||
+93
-61
@@ -38,7 +38,7 @@ class="cmr-12">multilevel (i.e., AMG) preconditioners with the Krylov solvers in
|
|||||||
<span class="cite"><span
|
<span class="cite"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||||
class="cmr-12">16</span></a><span
|
class="cmr-12">17</span></a><span
|
||||||
class="cmr-12">]</span></span><span
|
class="cmr-12">]</span></span><span
|
||||||
class="cmr-12">. The following steps are required:</span>
|
class="cmr-12">. The following steps are required:</span>
|
||||||
<ol class="enumerate1" >
|
<ol class="enumerate1" >
|
||||||
@@ -84,18 +84,18 @@ class="cmti-12">Allocate and initialize the preconditioner data structure,
|
|||||||
<span
|
<span
|
||||||
class="cmti-12">preconditioner type chosen by the user</span><span
|
class="cmti-12">preconditioner type chosen by the user</span><span
|
||||||
class="cmr-12">. This is performed by the routine</span>
|
class="cmr-12">. This is performed by the routine</span>
|
||||||
<span class="obeylines-h"><span class="verb"><span
|
<span class="lstinline"></span><span
|
||||||
class="cmtt-12">init</span></span></span><span
|
class="cmtt-12">init</span><span
|
||||||
class="cmr-12">, which also sets defaults for each preconditioner type selected by</span>
|
class="cmr-12">, which also sets defaults for each preconditioner type selected by</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">the user. The preconditioner types and the defaults associated with them</span>
|
class="cmr-12">the user. The preconditioner types and the defaults associated with them</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">are given in Table</span><span
|
class="cmr-12">are given in Table</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="#x13-120151"><span
|
href="#x13-12015r1"><span
|
||||||
class="cmr-12">1</span><!--tex4ht:ref: tab:precinit --></a><span
|
class="cmr-12">1</span><!--tex4ht:ref: tab:precinit --></a><span
|
||||||
class="cmr-12">, where the strings used by </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">, where the strings used by </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">init</span></span></span> <span
|
class="cmtt-12">init</span> <span
|
||||||
class="cmr-12">to identify the</span>
|
class="cmr-12">to identify the</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">preconditioner types are also given. Note that these strings are valid also if</span>
|
class="cmr-12">preconditioner types are also given. Note that these strings are valid also if</span>
|
||||||
@@ -107,16 +107,16 @@ class="cmr-12">uppercase letters are substituted by corresponding lowercase ones
|
|||||||
class="cmti-12">Modify the selected preconditioner type, by properly setting preconditioner</span>
|
class="cmti-12">Modify the selected preconditioner type, by properly setting preconditioner</span>
|
||||||
<span
|
<span
|
||||||
class="cmti-12">parameters. </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="cmr-12">This is performed by the routine </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">set</span></span></span><span
|
class="cmtt-12">set</span><span
|
||||||
class="cmr-12">. This routine must be</span>
|
class="cmr-12">. This routine must be</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">called only if the user wants to modify the default values of the parameters</span>
|
class="cmr-12">called only if the user wants to modify the default values of the parameters</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">associated with the selected preconditioner type, to obtain a variant of that</span>
|
class="cmr-12">associated with the selected preconditioner type, to obtain a variant of that</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">preconditioner. Examples of use of </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">preconditioner. Examples of use of </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">set</span></span></span> <span
|
class="cmtt-12">set</span> <span
|
||||||
class="cmr-12">are given in Section</span><span
|
class="cmr-12">are given in Section</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="userhtmlsu6.html#x14-130004.1"><span
|
href="userhtmlsu6.html#x14-130004.1"><span
|
||||||
@@ -131,11 +131,11 @@ href="userhtmlse5.html#x15-140005"><span
|
|||||||
class="cmr-12">5</span><!--tex4ht:ref: sec:userinterface --></a><span
|
class="cmr-12">5</span><!--tex4ht:ref: sec:userinterface --></a><span
|
||||||
class="cmr-12">, Tables</span><span
|
class="cmr-12">, Tables</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="userhtmlsu8.html#x17-160092"><span
|
href="userhtmlsu8.html#x17-16009r2"><span
|
||||||
class="cmr-12">2</span><!--tex4ht:ref: tab:p_cycle --></a><span
|
class="cmr-12">2</span><!--tex4ht:ref: tab:p_cycle --></a><span
|
||||||
class="cmr-12">-</span><a
|
class="cmr-12">-</span><a
|
||||||
href="userhtmlsu8.html#x17-160158"><span
|
href="userhtmlsu8.html#x17-16014r7"><span
|
||||||
class="cmr-12">8</span><!--tex4ht:ref: tab:p_smoother_1 --></a><span
|
class="cmr-12">7</span><!--tex4ht:ref: tab:p_smoother_1 --></a><span
|
||||||
class="cmr-12">.</span>
|
class="cmr-12">.</span>
|
||||||
</li>
|
</li>
|
||||||
<li
|
<li
|
||||||
@@ -153,8 +153,8 @@ class="cmr-12">This is performed by the</span>
|
|||||||
|
|
||||||
|
|
||||||
<span
|
<span
|
||||||
class="cmr-12">routine </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">routine </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">hierarchy_build</span></span></span><span
|
class="cmtt-12">hierarchy_build</span><span
|
||||||
class="cmr-12">.</span>
|
class="cmr-12">.</span>
|
||||||
</li>
|
</li>
|
||||||
<li
|
<li
|
||||||
@@ -162,14 +162,14 @@ class="cmr-12">.</span>
|
|||||||
class="cmti-12">Build the preconditioner for a given matrix. </span><span
|
class="cmti-12">Build the preconditioner for a given matrix. </span><span
|
||||||
class="cmr-12">This is performed by the</span>
|
class="cmr-12">This is performed by the</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">routine </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">routine </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">smoothers_build</span></span></span><span
|
class="cmtt-12">smoothers_build</span><span
|
||||||
class="cmr-12">.</span></li></ol>
|
class="cmr-12">.</span></li></ol>
|
||||||
<!--l. 41--><p class="noindent" ><span
|
<!--l. 41--><p class="noindent" ><span
|
||||||
class="cmr-12">If the selected preconditioner is one-level, it is built in a single step, performed by</span>
|
class="cmr-12">If the selected preconditioner is one-level, it is built in a single step, performed by</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">the routine </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">the routine </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">bld</span></span></span><span
|
class="cmtt-12">bld</span><span
|
||||||
class="cmr-12">.</span>
|
class="cmr-12">.</span>
|
||||||
</li>
|
</li>
|
||||||
<li
|
<li
|
||||||
@@ -177,23 +177,23 @@ class="cmr-12">.</span>
|
|||||||
class="cmti-12">Apply the preconditioner at each iteration of a Krylov solver. </span><span
|
class="cmti-12">Apply the preconditioner at each iteration of a Krylov solver. </span><span
|
||||||
class="cmr-12">This is performed by</span>
|
class="cmr-12">This is performed by</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">the method </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">the method </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">apply</span></span></span><span
|
class="cmtt-12">apply</span><span
|
||||||
class="cmr-12">. When using the PSBLAS Krylov solvers, this step is</span>
|
class="cmr-12">. When using the PSBLAS Krylov solvers, this step is</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">completely transparent to the user, since </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">completely transparent to the user, since </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">apply</span></span></span> <span
|
class="cmtt-12">apply</span> <span
|
||||||
class="cmr-12">is called by the PSBLAS routine</span>
|
class="cmr-12">is called by the PSBLAS routine</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">implementing the Krylov solver (</span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">implementing the Krylov solver (</span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">psb_krylov</span></span></span><span
|
class="cmtt-12">psb_krylov</span><span
|
||||||
class="cmr-12">).</span>
|
class="cmr-12">).</span>
|
||||||
</li>
|
</li>
|
||||||
<li
|
<li
|
||||||
class="enumerate" id="x13-12014x6"><span
|
class="enumerate" id="x13-12014x6"><span
|
||||||
class="cmti-12">Free the preconditioner data structure</span><span
|
class="cmti-12">Free the preconditioner data structure</span><span
|
||||||
class="cmr-12">. This is performed by the routine </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">. This is performed by the routine </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">free</span></span></span><span
|
class="cmtt-12">free</span><span
|
||||||
class="cmr-12">.</span>
|
class="cmr-12">.</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">This step is complementary to step 1 and should be performed when the</span>
|
class="cmr-12">This step is complementary to step 1 and should be performed when the</span>
|
||||||
@@ -218,7 +218,7 @@ class="cmr-12">.</span>
|
|||||||
|
|
||||||
|
|
||||||
<!--l. 56--><p class="indent" > <a
|
<!--l. 56--><p class="indent" > <a
|
||||||
id="x13-120151"></a><hr class="float"><div class="float"
|
id="x13-12015r1"></a><hr class="float"><div class="float"
|
||||||
>
|
>
|
||||||
|
|
||||||
|
|
||||||
@@ -274,20 +274,30 @@ class="small-caps">r</span></span> </td></tr><tr
|
|||||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-1-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-2-1"
|
style="vertical-align:baseline;" id="TBL-1-2-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-2-1"
|
||||||
class="td11">No preconditioner </td><td style="white-space:normal; text-align:left;" id="TBL-1-2-2"
|
class="td11">No preconditioner </td><td style="white-space:normal; text-align:left;" id="TBL-1-2-2"
|
||||||
class="td11"><!--l. 62--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 62--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-10x-x-109">’NONE’</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-2-3"
|
class="cmtt-10x-x-109">’</span><span
|
||||||
|
class="cmtt-10x-x-109">NONE</span><span
|
||||||
|
class="cmtt-10x-x-109">’</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-2-3"
|
||||||
class="td11"><!--l. 62--><p class="noindent" >Considered to use the PSBLAS Krylov
|
class="td11"><!--l. 62--><p class="noindent" >Considered to use the PSBLAS Krylov
|
||||||
solvers with no preconditioner. </td>
|
solvers with no preconditioner. </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-1-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-3-1"
|
style="vertical-align:baseline;" id="TBL-1-3-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-3-1"
|
||||||
class="td11">Diagonal </td><td style="white-space:normal; text-align:left;" id="TBL-1-3-2"
|
class="td11">Diagonal </td><td style="white-space:normal; text-align:left;" id="TBL-1-3-2"
|
||||||
class="td11"><!--l. 64--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 64--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-10x-x-109">’DIAG’</span></span></span>,
|
class="cmtt-10x-x-109">’</span><span
|
||||||
<span class="obeylines-h"><span class="verb"><span
|
class="cmtt-10x-x-109">DIAG</span><span
|
||||||
class="cmtt-10x-x-109">’JACOBI’</span></span></span>,
|
class="cmtt-10x-x-109">’</span>,
|
||||||
<span class="obeylines-h"><span class="verb"><span
|
<span class="lstinline"></span><span
|
||||||
class="cmtt-10x-x-109">’L1-JACOBI’</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-3-3"
|
class="cmtt-10x-x-109">’</span><span
|
||||||
|
class="cmtt-10x-x-109">JACOBI</span><span
|
||||||
|
class="cmtt-10x-x-109">’</span>,
|
||||||
|
<span class="lstinline"></span><span
|
||||||
|
class="cmtt-10x-x-109">’</span><span
|
||||||
|
class="cmtt-10x-x-109">L1</span><span
|
||||||
|
class="cmtt-10x-x-109">-</span><span
|
||||||
|
class="cmtt-10x-x-109">JACOBI</span><span
|
||||||
|
class="cmtt-10x-x-109">’</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-3-3"
|
||||||
class="td11"><!--l. 64--><p class="noindent" >Diagonal preconditioner. For any zero
|
class="td11"><!--l. 64--><p class="noindent" >Diagonal preconditioner. For any zero
|
||||||
diagonal entry of the matrix to be
|
diagonal entry of the matrix to be
|
||||||
preconditioned, the corresponding entry
|
preconditioned, the corresponding entry
|
||||||
@@ -296,10 +306,16 @@ of the preconditioner is set to 1. </td>
|
|||||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-1-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-4-1"
|
style="vertical-align:baseline;" id="TBL-1-4-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-4-1"
|
||||||
class="td11">Gauss-Seidel </td><td style="white-space:normal; text-align:left;" id="TBL-1-4-2"
|
class="td11">Gauss-Seidel </td><td style="white-space:normal; text-align:left;" id="TBL-1-4-2"
|
||||||
class="td11"><!--l. 67--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 67--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-10x-x-109">’GS’</span></span></span>,
|
class="cmtt-10x-x-109">’</span><span
|
||||||
<span class="obeylines-h"><span class="verb"><span
|
class="cmtt-10x-x-109">GS</span><span
|
||||||
class="cmtt-10x-x-109">’L1-GS’</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-4-3"
|
class="cmtt-10x-x-109">’</span>,
|
||||||
|
<span class="lstinline"></span><span
|
||||||
|
class="cmtt-10x-x-109">’</span><span
|
||||||
|
class="cmtt-10x-x-109">L1</span><span
|
||||||
|
class="cmtt-10x-x-109">-</span><span
|
||||||
|
class="cmtt-10x-x-109">GS</span><span
|
||||||
|
class="cmtt-10x-x-109">’</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-4-3"
|
||||||
class="td11"><!--l. 67--><p class="noindent" >Hybrid Gauss-Seidel (forward), that is,
|
class="td11"><!--l. 67--><p class="noindent" >Hybrid Gauss-Seidel (forward), that is,
|
||||||
global block Jacobi with Gauss-Seidel as
|
global block Jacobi with Gauss-Seidel as
|
||||||
local solver. </td>
|
local solver. </td>
|
||||||
@@ -307,10 +323,16 @@ local solver. </td>
|
|||||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-1-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-5-1"
|
style="vertical-align:baseline;" id="TBL-1-5-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-5-1"
|
||||||
class="td11">Symmetrized Gauss-Seidel</td><td style="white-space:normal; text-align:left;" id="TBL-1-5-2"
|
class="td11">Symmetrized Gauss-Seidel</td><td style="white-space:normal; text-align:left;" id="TBL-1-5-2"
|
||||||
class="td11"><!--l. 70--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 70--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-10x-x-109">’FBGS’</span></span></span>,
|
class="cmtt-10x-x-109">’</span><span
|
||||||
<span class="obeylines-h"><span class="verb"><span
|
class="cmtt-10x-x-109">FBGS</span><span
|
||||||
class="cmtt-10x-x-109">’L1-FBGS’</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-5-3"
|
class="cmtt-10x-x-109">’</span>,
|
||||||
|
<span class="lstinline"></span><span
|
||||||
|
class="cmtt-10x-x-109">’</span><span
|
||||||
|
class="cmtt-10x-x-109">L1</span><span
|
||||||
|
class="cmtt-10x-x-109">-</span><span
|
||||||
|
class="cmtt-10x-x-109">FBGS</span><span
|
||||||
|
class="cmtt-10x-x-109">’</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-5-3"
|
||||||
class="td11"><!--l. 70--><p class="noindent" >Symmetrized hybrid Gauss-Seidel, that
|
class="td11"><!--l. 70--><p class="noindent" >Symmetrized hybrid Gauss-Seidel, that
|
||||||
is, forward Gauss-Seidel followed by
|
is, forward Gauss-Seidel followed by
|
||||||
backward Gauss-Seidel. </td>
|
backward Gauss-Seidel. </td>
|
||||||
@@ -318,26 +340,36 @@ backward Gauss-Seidel. </td>
|
|||||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-1-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-6-1"
|
style="vertical-align:baseline;" id="TBL-1-6-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-6-1"
|
||||||
class="td11">Block Jacobi </td><td style="white-space:normal; text-align:left;" id="TBL-1-6-2"
|
class="td11">Block Jacobi </td><td style="white-space:normal; text-align:left;" id="TBL-1-6-2"
|
||||||
class="td11"><!--l. 73--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 73--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-10x-x-109">’BJAC’</span></span></span>,
|
class="cmtt-10x-x-109">’</span><span
|
||||||
<span class="obeylines-h"><span class="verb"><span
|
class="cmtt-10x-x-109">BJAC</span><span
|
||||||
class="cmtt-10x-x-109">’L1-BJAC’</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-6-3"
|
class="cmtt-10x-x-109">’</span>,
|
||||||
|
<span class="lstinline"></span><span
|
||||||
|
class="cmtt-10x-x-109">’</span><span
|
||||||
|
class="cmtt-10x-x-109">L1</span><span
|
||||||
|
class="cmtt-10x-x-109">-</span><span
|
||||||
|
class="cmtt-10x-x-109">BJAC</span><span
|
||||||
|
class="cmtt-10x-x-109">’</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-6-3"
|
||||||
class="td11"><!--l. 73--><p class="noindent" >Block-Jacobi with ILU(0) on the local
|
class="td11"><!--l. 73--><p class="noindent" >Block-Jacobi with ILU(0) on the local
|
||||||
blocks. </td>
|
blocks. </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-1-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-7-1"
|
style="vertical-align:baseline;" id="TBL-1-7-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-7-1"
|
||||||
class="td11">Additive Schwarz </td><td style="white-space:normal; text-align:left;" id="TBL-1-7-2"
|
class="td11">Additive Schwarz </td><td style="white-space:normal; text-align:left;" id="TBL-1-7-2"
|
||||||
class="td11"><!--l. 74--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 74--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-10x-x-109">’AS’</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-7-3"
|
class="cmtt-10x-x-109">’</span><span
|
||||||
|
class="cmtt-10x-x-109">AS</span><span
|
||||||
|
class="cmtt-10x-x-109">’</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-7-3"
|
||||||
class="td11"><!--l. 74--><p class="noindent" >Additive Schwarz (AS), with overlap 1
|
class="td11"><!--l. 74--><p class="noindent" >Additive Schwarz (AS), with overlap 1
|
||||||
and ILU(0) on the local blocks. </td>
|
and ILU(0) on the local blocks. </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-1-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-8-1"
|
style="vertical-align:baseline;" id="TBL-1-8-"><td style="white-space:nowrap; text-align:left;" id="TBL-1-8-1"
|
||||||
class="td11">Multilevel </td><td style="white-space:normal; text-align:left;" id="TBL-1-8-2"
|
class="td11">Multilevel </td><td style="white-space:normal; text-align:left;" id="TBL-1-8-2"
|
||||||
class="td11"><!--l. 76--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 76--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-10x-x-109">’ML’</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-8-3"
|
class="cmtt-10x-x-109">’</span><span
|
||||||
|
class="cmtt-10x-x-109">ML</span><span
|
||||||
|
class="cmtt-10x-x-109">’</span> </td><td style="white-space:normal; text-align:left;" id="TBL-1-8-3"
|
||||||
class="td11"><!--l. 76--><p class="noindent" >V-cycle with one hybrid
|
class="td11"><!--l. 76--><p class="noindent" >V-cycle with one hybrid
|
||||||
forward Gauss-Seidel (GS) sweep as
|
forward Gauss-Seidel (GS) sweep as
|
||||||
pre-smoother and one hybrid backward
|
pre-smoother and one hybrid backward
|
||||||
@@ -346,8 +378,8 @@ smoothed aggregation as coarsening
|
|||||||
algorithm, and LU (plus triangular solve)
|
algorithm, and LU (plus triangular solve)
|
||||||
as coarsest-level solver. See the default
|
as coarsest-level solver. See the default
|
||||||
values in Tables <a
|
values in Tables <a
|
||||||
href="userhtmlsu8.html#x17-160092">2<!--tex4ht:ref: tab:p_cycle --></a>-<a
|
href="userhtmlsu8.html#x17-16009r2">2<!--tex4ht:ref: tab:p_cycle --></a>-<a
|
||||||
href="userhtmlsu8.html#x17-160158">8<!--tex4ht:ref: tab:p_smoother_1 --></a> for further details of
|
href="userhtmlsu8.html#x17-16014r7">7<!--tex4ht:ref: tab:p_smoother_1 --></a> for further details of
|
||||||
the preconditioner. </td>
|
the preconditioner. </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
||||||
@@ -355,7 +387,7 @@ class="hline"><td><hr></td><td><hr></td><td><hr></td></tr><tr
|
|||||||
class="td11"> </td></tr></table></div>
|
class="td11"> </td></tr></table></div>
|
||||||
<br /> <div class="caption"
|
<br /> <div class="caption"
|
||||||
><span class="id">Table 1: </span><span
|
><span class="id">Table 1: </span><span
|
||||||
class="content">Preconditioner types, corresponding strings and default choices. </span></div><!--tex4ht:label?: x13-120151 -->
|
class="content">Preconditioner types, corresponding strings and default choices. </span></div><!--tex4ht:label?: x13-12015r1 -->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
@@ -363,18 +395,18 @@ class="content">Preconditioner types, corresponding strings and default choices.
|
|||||||
</div><hr class="endfloat" />
|
</div><hr class="endfloat" />
|
||||||
</div>
|
</div>
|
||||||
<!--l. 91--><p class="indent" > <span
|
<!--l. 91--><p class="indent" > <span
|
||||||
class="cmr-12">Note that the module </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">Note that the module </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">amg_prec_mod</span></span></span><span
|
class="cmtt-12">amg_prec_mod</span><span
|
||||||
class="cmr-12">, containing the definition of the preconditioner</span>
|
class="cmr-12">, containing the definition of the preconditioner</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">data type and the interfaces to the routines of AMG4PSBLAS, must be used</span>
|
class="cmr-12">data type and the interfaces to the routines of AMG4PSBLAS, must be used</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">in any program calling such routines. The modules </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">in any program calling such routines. The modules </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">psb_base_mod</span></span></span><span
|
class="cmtt-12">psb_base_mod</span><span
|
||||||
class="cmr-12">, for the</span>
|
class="cmr-12">, for the</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">sparse matrix and communication descriptor data types, and </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">sparse matrix and communication descriptor data types, and </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">psb_krylov_mod</span></span></span><span
|
class="cmtt-12">psb_krylov_mod</span><span
|
||||||
class="cmr-12">,</span>
|
class="cmr-12">,</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">for interfacing with the Krylov solvers, must be also used (see Section</span><span
|
class="cmr-12">for interfacing with the Krylov solvers, must be also used (see Section</span><span
|
||||||
|
|||||||
+16
-16
@@ -33,28 +33,28 @@ class="cmr-12">5 </span></span> <a
|
|||||||
class="cmr-12">User Interface</span></h3>
|
class="cmr-12">User Interface</span></h3>
|
||||||
<!--l. 5--><p class="noindent" ><span
|
<!--l. 5--><p class="noindent" ><span
|
||||||
class="cmr-12">The basic user interface of AMG4PBLAS consists of eight methods. The six methods</span>
|
class="cmr-12">The basic user interface of AMG4PBLAS consists of eight methods. The six methods</span>
|
||||||
<span class="obeylines-h"><span class="verb"><span
|
<span class="lstinline"></span><span
|
||||||
class="cmtt-12">init</span></span></span><span
|
class="cmtt-12">init</span><span
|
||||||
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">, </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">set</span></span></span><span
|
class="cmtt-12">set</span><span
|
||||||
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">, </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">build</span></span></span><span
|
class="cmtt-12">build</span><span
|
||||||
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">, </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">hierarchy_build</span></span></span><span
|
class="cmtt-12">hierarchy_build</span><span
|
||||||
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">, </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">smoothers_build</span></span></span> <span
|
class="cmtt-12">smoothers_build</span> <span
|
||||||
class="cmr-12">and </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">and </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">apply</span></span></span> <span
|
class="cmtt-12">apply</span> <span
|
||||||
class="cmr-12">encapsulate all the</span>
|
class="cmr-12">encapsulate all the</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">functionalities for the setup and the application of any multilevel and one-level</span>
|
class="cmr-12">functionalities for the setup and the application of any multilevel and one-level</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">preconditioner implemented in the package. The method </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">preconditioner implemented in the package. The method </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">free</span></span></span> <span
|
class="cmtt-12">free</span> <span
|
||||||
class="cmr-12">deallocates the</span>
|
class="cmr-12">deallocates the</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">preconditioner data structure, while </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">preconditioner data structure, while </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">descr</span></span></span> <span
|
class="cmtt-12">descr</span> <span
|
||||||
class="cmr-12">prints a description of the preconditioner</span>
|
class="cmr-12">prints a description of the preconditioner</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">setup by the user. For backward compatibility, methods are also accessible as</span>
|
class="cmr-12">setup by the user. For backward compatibility, methods are also accessible as</span>
|
||||||
|
|||||||
+59
-25
@@ -73,14 +73,42 @@ class="cmr-12">routine as in the following:</span>
|
|||||||
<div class="center"
|
<div class="center"
|
||||||
>
|
>
|
||||||
<!--l. 26--><p class="noindent" >
|
<!--l. 26--><p class="noindent" >
|
||||||
<!--l. 27--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
<!--l. 27--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">call</span><span
|
class="cmtt-12">call</span><span
|
||||||
class="cmtt-12"> p%set(smoother,info</span><span
|
class="cmtt-12"> </span><span
|
||||||
class="cmtt-12"> [,ilev,ilmax,pos])</span></span></span><br />
|
class="cmtt-12">p</span><span
|
||||||
<span class="obeylines-h"><span class="verb"><span
|
class="cmtt-12">%</span><span
|
||||||
|
class="cmtt-12">set</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">smoother</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">info</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">[,</span><span
|
||||||
|
class="cmtt-12">ilev</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">ilmax</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">pos</span><span
|
||||||
|
class="cmtt-12">])</span><br />
|
||||||
|
<span class="lstinline"></span><span
|
||||||
class="cmtt-12">call</span><span
|
class="cmtt-12">call</span><span
|
||||||
class="cmtt-12"> p%set(solver,info</span><span
|
class="cmtt-12"> </span><span
|
||||||
class="cmtt-12"> [,ilev,ilmax,pos])</span></span></span></div>
|
class="cmtt-12">p</span><span
|
||||||
|
class="cmtt-12">%</span><span
|
||||||
|
class="cmtt-12">set</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">solver</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">info</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">[,</span><span
|
||||||
|
class="cmtt-12">ilev</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">ilmax</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">pos</span><span
|
||||||
|
class="cmtt-12">])</span></div>
|
||||||
</li>
|
</li>
|
||||||
<li class="itemize"><span
|
<li class="itemize"><span
|
||||||
class="cmr-12">link the code implementing the various methods into the application</span>
|
class="cmr-12">link the code implementing the various methods into the application</span>
|
||||||
@@ -137,32 +165,38 @@ class="cmr-12">The interfaces for the calls shown above are defined using</span>
|
|||||||
<div class="center"
|
<div class="center"
|
||||||
>
|
>
|
||||||
<!--l. 56--><p class="noindent" >
|
<!--l. 56--><p class="noindent" >
|
||||||
<div class="tabular"> <table id="TBL-21" class="tabular"
|
<div class="tabular"> <table id="TBL-20" class="tabular"
|
||||||
cellspacing="0" cellpadding="0"
|
cellspacing="0" cellpadding="0"
|
||||||
><colgroup id="TBL-21-1g"><col
|
><colgroup id="TBL-20-1g"><col
|
||||||
id="TBL-21-1"><col
|
id="TBL-20-1"><col
|
||||||
id="TBL-21-2"></colgroup><tr
|
id="TBL-20-2"></colgroup><tr
|
||||||
style="vertical-align:baseline;" id="TBL-21-1-"><td style="white-space:normal; text-align:left;" id="TBL-21-1-1"
|
style="vertical-align:baseline;" id="TBL-20-1-"><td style="white-space:normal; text-align:left;" id="TBL-20-1-1"
|
||||||
class="td11"><!--l. 58--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 58--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">smoother</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-21-1-2"
|
class="cmtt-12">smoother</span> </td><td style="white-space:normal; text-align:left;" id="TBL-20-1-2"
|
||||||
class="td11"><!--l. 58--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 58--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">class(amg_x_base_smoother_type)</span></span></span> </td>
|
class="cmtt-12">class</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">amg_x_base_smoother_type</span><span
|
||||||
|
class="cmtt-12">)</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-21-2-"><td style="white-space:normal; text-align:left;" id="TBL-21-2-1"
|
style="vertical-align:baseline;" id="TBL-20-2-"><td style="white-space:normal; text-align:left;" id="TBL-20-2-1"
|
||||||
class="td11"><!--l. 59--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-21-2-2"
|
class="td11"><!--l. 59--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-20-2-2"
|
||||||
class="td11"><!--l. 59--><p class="noindent" ><span
|
class="td11"><!--l. 59--><p class="noindent" ><span
|
||||||
class="cmr-12">The user-defined new smoother to be employed in the</span>
|
class="cmr-12">The user-defined new smoother to be employed in the</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">preconditioner.</span> </td>
|
class="cmr-12">preconditioner.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-21-3-"><td style="white-space:normal; text-align:left;" id="TBL-21-3-1"
|
style="vertical-align:baseline;" id="TBL-20-3-"><td style="white-space:normal; text-align:left;" id="TBL-20-3-1"
|
||||||
class="td11"><!--l. 61--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 61--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">solver</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-21-3-2"
|
class="cmtt-12">solver</span> </td><td style="white-space:normal; text-align:left;" id="TBL-20-3-2"
|
||||||
class="td11"><!--l. 61--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 61--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">class(amg_x_base_solver_type)</span></span></span> </td>
|
class="cmtt-12">class</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">amg_x_base_solver_type</span><span
|
||||||
|
class="cmtt-12">)</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-21-4-"><td style="white-space:normal; text-align:left;" id="TBL-21-4-1"
|
style="vertical-align:baseline;" id="TBL-20-4-"><td style="white-space:normal; text-align:left;" id="TBL-20-4-1"
|
||||||
class="td11"><!--l. 62--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-21-4-2"
|
class="td11"><!--l. 62--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-20-4-2"
|
||||||
class="td11"><!--l. 62--><p class="noindent" ><span
|
class="td11"><!--l. 62--><p class="noindent" ><span
|
||||||
class="cmr-12">The user-defined new solver to be employed in the preconditioner.</span></td></tr></table></div></div>
|
class="cmr-12">The user-defined new solver to be employed in the preconditioner.</span></td></tr></table></div></div>
|
||||||
<!--l. 66--><p class="noindent" ><span
|
<!--l. 66--><p class="noindent" ><span
|
||||||
@@ -197,7 +231,7 @@ class="cmr-12">pass it as follows:</span>
|
|||||||
  call prec%set(tlusv,   info,ilev=1,ilmax=max(1,nlv-1))
|
  call prec%set(tlusv,   info,ilev=1,ilmax=max(1,nlv-1))
|
||||||
  call prec%smoothers_build(a,desc_a,info)
|
  call prec%smoothers_build(a,desc_a,info)
|
||||||
</pre>
|
</pre>
|
||||||
<!--l. 88--><p class="nopar" >
|
<!--l. 107--><p class="nopar" >
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -52,7 +52,7 @@ class="cmr-12">PSBLAS error handling routines; for further details see the PSBLA
|
|||||||
<span class="cite"><span
|
<span class="cite"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||||
class="cmr-12">16</span></a><span
|
class="cmr-12">17</span></a><span
|
||||||
class="cmr-12">]</span></span><span
|
class="cmr-12">]</span></span><span
|
||||||
class="cmr-12">.</span>
|
class="cmr-12">.</span>
|
||||||
|
|
||||||
@@ -61,6 +61,10 @@ class="cmr-12">.</span>
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!--l. 150--><p class="indent" >
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -116,7 +116,7 @@ class="cmr-12">abide by its terms:</span>
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--l. 143--><p class="indent" >
|
<!--l. 153--><p class="indent" >
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+35
-24
@@ -36,15 +36,15 @@ class="cmbx-12">BLAS</span> </dt><dd
|
|||||||
class="description"><span class="cite"><span
|
class="description"><span class="cite"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlli4.html#Xblas3"><span
|
href="userhtmlli4.html#Xblas3"><span
|
||||||
class="cmr-12">14</span></a><span
|
|
||||||
class="cmr-12">,</span><span
|
|
||||||
class="cmr-12"> </span><a
|
|
||||||
href="userhtmlli4.html#Xblas2"><span
|
|
||||||
class="cmr-12">15</span></a><span
|
class="cmr-12">15</span></a><span
|
||||||
class="cmr-12">,</span><span
|
class="cmr-12">,</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
|
href="userhtmlli4.html#Xblas2"><span
|
||||||
|
class="cmr-12">16</span></a><span
|
||||||
|
class="cmr-12">,</span><span
|
||||||
|
class="cmr-12"> </span><a
|
||||||
href="userhtmlli4.html#Xblas1"><span
|
href="userhtmlli4.html#Xblas1"><span
|
||||||
class="cmr-12">21</span></a><span
|
class="cmr-12">22</span></a><span
|
||||||
class="cmr-12">]</span></span> <span
|
class="cmr-12">]</span></span> <span
|
||||||
class="cmr-12">Many vendors provide optimized versions of BLAS; if no</span>
|
class="cmr-12">Many vendors provide optimized versions of BLAS; if no</span>
|
||||||
<span
|
<span
|
||||||
@@ -62,39 +62,50 @@ class="cmr-12">) are meant to define the standard behaviour of</span>
|
|||||||
<span
|
<span
|
||||||
class="cmr-12">the BLAS interface, so they are not optimized for any particular platform,</span>
|
class="cmr-12">the BLAS interface, so they are not optimized for any particular platform,</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">and should only be used as a last resort. Note that BLAS computations form</span>
|
class="cmr-12">and should only be used as a last resort. Note that BLAS computations</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">a relatively small part of the AMG4PSBLAS/PSBLAS; however they are</span>
|
class="cmr-12">form a relatively small part of ¡¡¡¡¡¡¡ HEAD the AMG4PSBLAS/PSBLAS;</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">critical when using preconditioners based on the MUMPS, UMFPACK or</span>
|
class="cmr-12">however they are critical when using preconditioners based on the MUMPS,</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">SuperLU third party libraries. UMFPACK requires a full LAPACK library;</span>
|
class="cmr-12">UMFPACK or SuperLU third party libraries. UMFPACK requires a</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">our experience is that configuring ATLAS for building full LAPACK does</span>
|
class="cmr-12">full LAPACK library; our experience is that configuring ATLAS for</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">not always work in the expected way. Our advice is first to download the</span>
|
class="cmr-12">building full LAPACK does not always work in the expected way. Our</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">LAPACK tarfile from </span><a
|
class="cmr-12">advice is first to download the LAPACK tarfile from ======= the</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">AMG4PSBLAS/PSBLAS computations; they are however critical when</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">using preconditioners based on MUMPS, UMFPACK or SuperLU third</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">party libraries. Note that UMFPACK requires a full LAPACK library;</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">our experience is that configuring ATLAS for building full LAPACK</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">does not work in the correct way. Our advice is first to download the</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">LAPACK tarfile from ¿¿¿¿¿¿¿ ea6411c730befe4e0e4091caa6f03379ad3712cc</span>
|
||||||
|
<a
|
||||||
href="http://www.netlib.org/lapack" ><span
|
href="http://www.netlib.org/lapack" ><span
|
||||||
class="cmr-12">www.netlib.org/lapack</span></a> <span
|
class="cmr-12">www.netlib.org/lapack</span></a> <span
|
||||||
class="cmr-12">and install it independently of</span>
|
class="cmr-12">and install it independently of ATLAS. In this case,</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">ATLAS. In this case, you need to modify the OPTS and NOOPT definitions</span>
|
class="cmr-12">you need to modify the OPTS and NOOPT definitions for including -fPIC</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">for including -fPIC compilation option in the make.inc file of the LAPACK</span>
|
class="cmr-12">compilation option in the make.inc file of the LAPACK library.</span>
|
||||||
<span
|
|
||||||
class="cmr-12">library.</span>
|
|
||||||
</dd><dt class="description">
|
</dd><dt class="description">
|
||||||
<span
|
<span
|
||||||
class="cmbx-12">MPI</span> </dt><dd
|
class="cmbx-12">MPI</span> </dt><dd
|
||||||
class="description"><span class="cite"><span
|
class="description"><span class="cite"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlli4.html#XMPI2"><span
|
href="userhtmlli4.html#XMPI2"><span
|
||||||
class="cmr-12">20</span></a><span
|
class="cmr-12">21</span></a><span
|
||||||
class="cmr-12">,</span><span
|
class="cmr-12">,</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="userhtmlli4.html#XMPI1"><span
|
href="userhtmlli4.html#XMPI1"><span
|
||||||
class="cmr-12">26</span></a><span
|
class="cmr-12">27</span></a><span
|
||||||
class="cmr-12">]</span></span> <span
|
class="cmr-12">]</span></span> <span
|
||||||
class="cmr-12">A version of MPI is available on most high-performance computing</span>
|
class="cmr-12">A version of MPI is available on most high-performance computing</span>
|
||||||
<span
|
<span
|
||||||
@@ -105,11 +116,11 @@ class="cmbx-12">PSBLAS</span> </dt><dd
|
|||||||
class="description"><span class="cite"><span
|
class="description"><span class="cite"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||||
class="cmr-12">16</span></a><span
|
class="cmr-12">17</span></a><span
|
||||||
class="cmr-12">,</span><span
|
class="cmr-12">,</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="userhtmlli4.html#Xpsblas_00"><span
|
href="userhtmlli4.html#Xpsblas_00"><span
|
||||||
class="cmr-12">18</span></a><span
|
class="cmr-12">19</span></a><span
|
||||||
class="cmr-12">]</span></span> <span
|
class="cmr-12">]</span></span> <span
|
||||||
class="cmr-12">Parallel Sparse BLAS (PSBLAS) is available from</span>
|
class="cmr-12">Parallel Sparse BLAS (PSBLAS) is available from</span>
|
||||||
<a
|
<a
|
||||||
@@ -118,7 +129,7 @@ class="cmr-12">psctoolkit.github.io/ products/psblas/</span></a><span
|
|||||||
class="cmr-12">; version 3.7.0 (or later) is required.</span>
|
class="cmr-12">; version 3.7.0 (or later) is required.</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">Indeed, all the prerequisites listed so far are also prerequisites of PSBLAS.</span></dd></dl>
|
class="cmr-12">Indeed, all the prerequisites listed so far are also prerequisites of PSBLAS.</span></dd></dl>
|
||||||
<!--l. 58--><p class="noindent" ><span
|
<!--l. 68--><p class="noindent" ><span
|
||||||
class="cmr-12">Please note that the four previous libraries must have Fortran interfaces compatible with</span>
|
class="cmr-12">Please note that the four previous libraries must have Fortran interfaces compatible with</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">AMG4PSBLAS; usually this means that they should all be built with the same</span>
|
class="cmr-12">AMG4PSBLAS; usually this means that they should all be built with the same</span>
|
||||||
@@ -127,7 +138,7 @@ class="cmr-12">compiler being used for AMG4PSBLAS.</span>
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--l. 62--><div class="crosslinks"><p class="noindent"><span
|
<!--l. 72--><div class="crosslinks"><p class="noindent"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlsu2.html" ><span
|
href="userhtmlsu2.html" ><span
|
||||||
class="cmr-12">next</span></a><span
|
class="cmr-12">next</span></a><span
|
||||||
@@ -138,6 +149,6 @@ class="cmr-12">] [</span><a
|
|||||||
href="userhtmlse3.html#userhtmlsu1.html" ><span
|
href="userhtmlse3.html#userhtmlsu1.html" ><span
|
||||||
class="cmr-12">up</span></a><span
|
class="cmr-12">up</span></a><span
|
||||||
class="cmr-12">] </span></p></div>
|
class="cmr-12">] </span></p></div>
|
||||||
<!--l. 62--><p class="indent" > <a
|
<!--l. 72--><p class="indent" > <a
|
||||||
id="tailuserhtmlsu1.html"></a>
|
id="tailuserhtmlsu1.html"></a>
|
||||||
</body></html>
|
</body></html>
|
||||||
|
|||||||
+155
-91
@@ -10,7 +10,7 @@
|
|||||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||||
</head><body
|
</head><body
|
||||||
>
|
>
|
||||||
<!--l. 603--><div class="crosslinks"><p class="noindent"><span
|
<!--l. 624--><div class="crosslinks"><p class="noindent"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlsu11.html" ><span
|
href="userhtmlsu11.html" ><span
|
||||||
class="cmr-12">next</span></a><span
|
class="cmr-12">next</span></a><span
|
||||||
@@ -34,117 +34,165 @@ class="cmr-12">Method smoothers</span><span
|
|||||||
class="cmr-12">_build</span></h4>
|
class="cmr-12">_build</span></h4>
|
||||||
<div class="center"
|
<div class="center"
|
||||||
>
|
>
|
||||||
<!--l. 606--><p class="noindent" >
|
<!--l. 627--><p class="noindent" >
|
||||||
<!--l. 607--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
<!--l. 628--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">call</span><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 />
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">p</span><span
|
||||||
|
class="cmtt-12">%</span><span
|
||||||
|
class="cmtt-12">smoothers_build</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">a</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">desc_a</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">p</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">info</span><span
|
||||||
|
class="cmtt-12">[,</span><span
|
||||||
|
class="cmtt-12">amold</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">vmold</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">imold</span><span
|
||||||
|
class="cmtt-12">])</span><br />
|
||||||
</div>
|
</div>
|
||||||
<!--l. 610--><p class="noindent" ><span
|
<!--l. 631--><p class="noindent" ><span
|
||||||
class="cmr-12">This method builds the smoothers and the coarsest-level solvers for the multilevel</span>
|
class="cmr-12">This method builds the smoothers and the coarsest-level solvers for the multilevel</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">preconditioner </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">preconditioner </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">p</span></span></span><span
|
class="cmtt-12">p</span><span
|
||||||
class="cmr-12">, according to the requirements made by the user through the methods</span>
|
class="cmr-12">, according to the requirements made by the user through the methods</span>
|
||||||
<span class="obeylines-h"><span class="verb"><span
|
<span class="lstinline"></span><span
|
||||||
class="cmtt-12">init</span></span></span> <span
|
class="cmtt-12">init</span> <span
|
||||||
class="cmr-12">and </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">and </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">set</span></span></span><span
|
class="cmtt-12">set</span><span
|
||||||
class="cmr-12">, and based on the aggregation hierarchy produced by a previous call to</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
|
<span class="lstinline"></span><span
|
||||||
class="cmtt-12">hierarchy_build</span></span></span> <span
|
class="cmtt-12">hierarchy_build</span> <span
|
||||||
class="cmr-12">(see Section</span><span
|
class="cmr-12">(see Section</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="userhtmlsu9.html#x18-170005.3"><span
|
href="userhtmlsu9.html#x18-170005.3"><span
|
||||||
class="cmr-12">5.3</span><!--tex4ht:ref: sec:hier_bld --></a><span
|
class="cmr-12">5.3</span><!--tex4ht:ref: sec:hier_bld --></a><span
|
||||||
class="cmr-12">).</span>
|
class="cmr-12">).</span>
|
||||||
<!--l. 617--><p class="noindent" ><span
|
<!--l. 638--><p class="noindent" ><span
|
||||||
class="cmbx-12">Arguments</span>
|
class="cmbx-12">Arguments</span>
|
||||||
<div class="tabular"> <table id="TBL-12" class="tabular"
|
<div class="tabular"> <table id="TBL-11" class="tabular"
|
||||||
cellspacing="0" cellpadding="0"
|
cellspacing="0" cellpadding="0"
|
||||||
><colgroup id="TBL-12-1g"><col
|
><colgroup id="TBL-11-1g"><col
|
||||||
id="TBL-12-1"><col
|
id="TBL-11-1"><col
|
||||||
id="TBL-12-2"></colgroup><tr
|
id="TBL-11-2"></colgroup><tr
|
||||||
style="vertical-align:baseline;" id="TBL-12-1-"><td style="white-space:normal; text-align:left;" id="TBL-12-1-1"
|
style="vertical-align:baseline;" id="TBL-11-1-"><td style="white-space:normal; text-align:left;" id="TBL-11-1-1"
|
||||||
class="td11"><!--l. 620--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 641--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">a</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-1-2"
|
class="cmtt-12">a</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-1-2"
|
||||||
class="td11"><!--l. 620--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 641--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">type(psb_</span></span></span><span
|
class="cmtt-12">type</span><span
|
||||||
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
|
class="cmtt-12">(</span><span
|
||||||
class="cmtt-12">spmat_type),</span><span
|
class="cmtt-12">psb_</span><span
|
||||||
class="cmtt-12"> intent(in)</span></span></span><span
|
class="cmti-12">x</span><span class="lstinline"></span><span
|
||||||
|
class="cmtt-12">spmat_type</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">in</span><span
|
||||||
|
class="cmtt-12">)</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-12-2-"><td style="white-space:normal; text-align:left;" id="TBL-12-2-1"
|
style="vertical-align:baseline;" id="TBL-11-2-"><td style="white-space:normal; text-align:left;" id="TBL-11-2-1"
|
||||||
class="td11"><!--l. 621--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-2-2"
|
class="td11"><!--l. 642--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-2-2"
|
||||||
class="td11"><!--l. 621--><p class="noindent" ><span
|
class="td11"><!--l. 642--><p class="noindent" ><span
|
||||||
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
|
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">to be preconditioned. Note that </span><span
|
class="cmr-12">to be preconditioned. Note that </span><span
|
||||||
class="cmti-12">x </span><span
|
class="cmti-12">x </span><span
|
||||||
class="cmr-12">must be chosen according to the</span>
|
class="cmr-12">must be chosen according to the</span>
|
||||||
<span
|
<span class="lstinline"></span><span
|
||||||
class="cmr-12">real/complex, single/double precision version of AMG4PSBLAS</span>
|
class="cmtt-12">real</span><span
|
||||||
|
class="cmr-12">/</span><span class="lstinline"></span><span
|
||||||
|
class="cmtt-12">complex</span><span
|
||||||
|
class="cmr-12">, single/double precision version of AMG4PSBLAS</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">under use. See the PSBLAS User’s Guide for details </span><span class="cite"><span
|
class="cmr-12">under use. See the PSBLAS User’s Guide for details </span><span class="cite"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||||
class="cmr-12">16</span></a><span
|
class="cmr-12">17</span></a><span
|
||||||
class="cmr-12">]</span></span><span
|
class="cmr-12">]</span></span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-12-3-"><td style="white-space:normal; text-align:left;" id="TBL-12-3-1"
|
style="vertical-align:baseline;" id="TBL-11-3-"><td style="white-space:normal; text-align:left;" id="TBL-11-3-1"
|
||||||
class="td11"><!--l. 625--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 646--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">desc_a</span></span></span></td><td style="white-space:normal; text-align:left;" id="TBL-12-3-2"
|
class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-11-3-2"
|
||||||
class="td11"><!--l. 625--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 646--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">type(psb_desc_type),</span><span
|
class="cmtt-12">type</span><span
|
||||||
class="cmtt-12"> intent(in)</span></span></span><span
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">psb_desc_type</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">in</span><span
|
||||||
|
class="cmtt-12">)</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-12-4-"><td style="white-space:normal; text-align:left;" id="TBL-12-4-1"
|
style="vertical-align:baseline;" id="TBL-11-4-"><td style="white-space:normal; text-align:left;" id="TBL-11-4-1"
|
||||||
class="td11"><!--l. 626--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-4-2"
|
class="td11"><!--l. 647--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-4-2"
|
||||||
class="td11"><!--l. 626--><p class="noindent" ><span
|
class="td11"><!--l. 647--><p class="noindent" ><span
|
||||||
class="cmr-12">The communication descriptor of </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">The communication descriptor of </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">a</span></span></span><span
|
class="cmtt-12">a</span><span
|
||||||
class="cmr-12">. See the PSBLAS User’s Guide</span>
|
class="cmr-12">. See the PSBLAS User’s Guide</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">for details </span><span class="cite"><span
|
class="cmr-12">for details </span><span class="cite"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||||
class="cmr-12">16</span></a><span
|
class="cmr-12">17</span></a><span
|
||||||
class="cmr-12">]</span></span><span
|
class="cmr-12">]</span></span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-12-5-"><td style="white-space:normal; text-align:left;" id="TBL-12-5-1"
|
style="vertical-align:baseline;" id="TBL-11-5-"><td style="white-space:normal; text-align:left;" id="TBL-11-5-1"
|
||||||
class="td11"><!--l. 628--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 649--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">info</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-5-2"
|
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-5-2"
|
||||||
class="td11"><!--l. 628--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 649--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">integer,</span><span
|
class="cmtt-12">integer</span><span
|
||||||
class="cmtt-12"> intent(out)</span></span></span><span
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">out</span><span
|
||||||
|
class="cmtt-12">)</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-12-6-"><td style="white-space:normal; text-align:left;" id="TBL-12-6-1"
|
style="vertical-align:baseline;" id="TBL-11-6-"><td style="white-space:normal; text-align:left;" id="TBL-11-6-1"
|
||||||
class="td11"><!--l. 629--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-6-2"
|
class="td11"><!--l. 650--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-6-2"
|
||||||
class="td11"><!--l. 629--><p class="noindent" ><span
|
class="td11"><!--l. 650--><p class="noindent" ><span
|
||||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="userhtmlse7.html#x26-300007"><span
|
href="userhtmlse7.html#x26-300007"><span
|
||||||
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
||||||
class="cmr-12">for details.</span> </td>
|
class="cmr-12">for details.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-12-7-"><td style="white-space:normal; text-align:left;" id="TBL-12-7-1"
|
style="vertical-align:baseline;" id="TBL-11-7-"><td style="white-space:normal; text-align:left;" id="TBL-11-7-1"
|
||||||
class="td11"><!--l. 630--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 651--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">amold</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-7-2"
|
class="cmtt-12">amold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-7-2"
|
||||||
class="td11"><!--l. 630--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 651--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">class(psb_</span></span></span><span
|
class="cmtt-12">class</span><span
|
||||||
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
|
class="cmtt-12">(</span><span
|
||||||
class="cmtt-12">_base_sparse_mat),</span><span
|
class="cmtt-12">psb_</span><span
|
||||||
class="cmtt-12"> intent(in),</span><span
|
class="cmti-12">x</span><span class="lstinline"></span><span
|
||||||
class="cmtt-12"> optional</span></span></span><span
|
class="cmtt-12">_base_sparse_mat</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">in</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">optional</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-12-8-"><td style="white-space:normal; text-align:left;" id="TBL-12-8-1"
|
style="vertical-align:baseline;" id="TBL-11-8-"><td style="white-space:normal; text-align:left;" id="TBL-11-8-1"
|
||||||
class="td11"><!--l. 631--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-8-2"
|
class="td11"><!--l. 652--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-8-2"
|
||||||
class="td11"><!--l. 631--><p class="noindent" ><span
|
class="td11"><!--l. 652--><p class="noindent" ><span
|
||||||
class="cmr-12">The desired dynamic type for internal matrix components; this</span>
|
class="cmr-12">The desired dynamic type for internal matrix components; this</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
|
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
|
||||||
@@ -152,45 +200,61 @@ class="cmr-12">allows e.g. running on GPUs; it needs not be the same
|
|||||||
class="cmr-12">processes. See the PSBLAS User’s Guide for details </span><span class="cite"><span
|
class="cmr-12">processes. See the PSBLAS User’s Guide for details </span><span class="cite"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||||
class="cmr-12">16</span></a><span
|
class="cmr-12">17</span></a><span
|
||||||
class="cmr-12">]</span></span><span
|
class="cmr-12">]</span></span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-12-9-"><td style="white-space:normal; text-align:left;" id="TBL-12-9-1"
|
style="vertical-align:baseline;" id="TBL-11-9-"><td style="white-space:normal; text-align:left;" id="TBL-11-9-1"
|
||||||
class="td11"><!--l. 635--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 656--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">vmold</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-9-2"
|
class="cmtt-12">vmold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-9-2"
|
||||||
class="td11"><!--l. 635--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 656--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">class(psb_</span></span></span><span
|
class="cmtt-12">class</span><span
|
||||||
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
|
class="cmtt-12">(</span><span
|
||||||
class="cmtt-12">_base_vect_type),</span><span
|
class="cmtt-12">psb_</span><span
|
||||||
class="cmtt-12"> intent(in),</span><span
|
class="cmti-12">x</span><span class="lstinline"></span><span
|
||||||
class="cmtt-12"> optional</span></span></span><span
|
class="cmtt-12">_base_vect_type</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">in</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">optional</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-12-10-"><td style="white-space:normal; text-align:left;" id="TBL-12-10-1"
|
style="vertical-align:baseline;" id="TBL-11-10-"><td style="white-space:normal; text-align:left;" id="TBL-11-10-1"
|
||||||
class="td11"><!--l. 636--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-10-2"
|
class="td11"><!--l. 657--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-10-2"
|
||||||
class="td11"><!--l. 636--><p class="noindent" ><span
|
class="td11"><!--l. 657--><p class="noindent" ><span
|
||||||
class="cmr-12">The desired dynamic type for internal vector components; this</span>
|
class="cmr-12">The desired dynamic type for internal vector components; this</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">allows e.g. running on GPUs.</span> </td>
|
class="cmr-12">allows e.g. running on GPUs.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-12-11-"><td style="white-space:normal; text-align:left;" id="TBL-12-11-1"
|
style="vertical-align:baseline;" id="TBL-11-11-"><td style="white-space:normal; text-align:left;" id="TBL-11-11-1"
|
||||||
class="td11"><!--l. 638--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 659--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">imold</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-11-2"
|
class="cmtt-12">imold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-11-2"
|
||||||
class="td11"><!--l. 638--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 659--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">class(psb_i_base_vect_type),</span><span
|
class="cmtt-12">class</span><span
|
||||||
class="cmtt-12"> intent(in),</span><span
|
class="cmtt-12">(</span><span
|
||||||
class="cmtt-12"> optional</span></span></span><span
|
class="cmtt-12">psb_i_base_vect_type</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">in</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">optional</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-12-12-"><td style="white-space:normal; text-align:left;" id="TBL-12-12-1"
|
style="vertical-align:baseline;" id="TBL-11-12-"><td style="white-space:normal; text-align:left;" id="TBL-11-12-1"
|
||||||
class="td11"><!--l. 639--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-12-2"
|
class="td11"><!--l. 660--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-12-2"
|
||||||
class="td11"><!--l. 639--><p class="noindent" ><span
|
class="td11"><!--l. 660--><p class="noindent" ><span
|
||||||
class="cmr-12">The desired dynamic type for internal integer vector components;</span>
|
class="cmr-12">The desired dynamic type for internal integer vector components;</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">this allows e.g. running on GPUs.</span> </td>
|
class="cmr-12">this allows e.g. running on GPUs.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-12-13-"><td style="white-space:normal; text-align:left;" id="TBL-12-13-1"
|
style="vertical-align:baseline;" id="TBL-11-13-"><td style="white-space:normal; text-align:left;" id="TBL-11-13-1"
|
||||||
class="td11"> </td> </tr></table></div>
|
class="td11"> </td> </tr></table></div>
|
||||||
|
|
||||||
|
|
||||||
@@ -198,7 +262,7 @@ class="td11"> </td> </tr></table></div>
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--l. 645--><div class="crosslinks"><p class="noindent"><span
|
<!--l. 666--><div class="crosslinks"><p class="noindent"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlsu11.html" ><span
|
href="userhtmlsu11.html" ><span
|
||||||
class="cmr-12">next</span></a><span
|
class="cmr-12">next</span></a><span
|
||||||
@@ -215,6 +279,6 @@ class="cmr-12">] [</span><a
|
|||||||
href="userhtmlse5.html#userhtmlsu10.html" ><span
|
href="userhtmlse5.html#userhtmlsu10.html" ><span
|
||||||
class="cmr-12">up</span></a><span
|
class="cmr-12">up</span></a><span
|
||||||
class="cmr-12">] </span></p></div>
|
class="cmr-12">] </span></p></div>
|
||||||
<!--l. 645--><p class="indent" > <a
|
<!--l. 666--><p class="indent" > <a
|
||||||
id="tailuserhtmlsu10.html"></a>
|
id="tailuserhtmlsu10.html"></a>
|
||||||
</body></html>
|
</body></html>
|
||||||
|
|||||||
+156
-94
@@ -10,7 +10,7 @@
|
|||||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||||
</head><body
|
</head><body
|
||||||
>
|
>
|
||||||
<!--l. 645--><div class="crosslinks"><p class="noindent"><span
|
<!--l. 666--><div class="crosslinks"><p class="noindent"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlsu12.html" ><span
|
href="userhtmlsu12.html" ><span
|
||||||
class="cmr-12">next</span></a><span
|
class="cmr-12">next</span></a><span
|
||||||
@@ -33,20 +33,36 @@ class="cmr-12">5.5 </span></span> <a
|
|||||||
class="cmr-12">Method build</span></h4>
|
class="cmr-12">Method build</span></h4>
|
||||||
<div class="center"
|
<div class="center"
|
||||||
>
|
>
|
||||||
<!--l. 647--><p class="noindent" >
|
<!--l. 668--><p class="noindent" >
|
||||||
<!--l. 648--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
<!--l. 669--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">call</span><span
|
class="cmtt-12">call</span><span
|
||||||
class="cmtt-12"> p%build(a,desc_a,info[,amold,vmold,imold])</span></span></span><br />
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">p</span><span
|
||||||
|
class="cmtt-12">%</span><span
|
||||||
|
class="cmtt-12">build</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">a</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">desc_a</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">info</span><span
|
||||||
|
class="cmtt-12">[,</span><span
|
||||||
|
class="cmtt-12">amold</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">vmold</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">imold</span><span
|
||||||
|
class="cmtt-12">])</span><br />
|
||||||
</div>
|
</div>
|
||||||
<!--l. 651--><p class="noindent" ><span
|
<!--l. 672--><p class="noindent" ><span
|
||||||
class="cmr-12">This method builds the preconditioner </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">This method builds the preconditioner </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">p</span></span></span> <span
|
class="cmtt-12">p</span> <span
|
||||||
class="cmr-12">according to the requirements made by the</span>
|
class="cmr-12">according to the requirements made by the</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">user through the methods </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">user through the methods </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">init</span></span></span> <span
|
class="cmtt-12">init</span> <span
|
||||||
class="cmr-12">and </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">and </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">set</span></span></span> <span
|
class="cmtt-12">set</span> <span
|
||||||
class="cmr-12">(see Sections</span><span
|
class="cmr-12">(see Sections</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="userhtmlsu9.html#x18-170005.3"><span
|
href="userhtmlsu9.html#x18-170005.3"><span
|
||||||
@@ -59,102 +75,132 @@ class="cmr-12">for multilevel</span>
|
|||||||
<span
|
<span
|
||||||
class="cmr-12">preconditioners). It is mostly provided for backward compatibility; indeed, it is</span>
|
class="cmr-12">preconditioners). It is mostly provided for backward compatibility; indeed, it is</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">internally implemented by invoking the two previous methods </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">internally implemented by invoking the two previous methods </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">hierarchy_build</span></span></span> <span
|
class="cmtt-12">hierarchy_build</span> <span
|
||||||
class="cmr-12">and</span>
|
class="cmr-12">and</span>
|
||||||
<span class="obeylines-h"><span class="verb"><span
|
<span class="lstinline"></span><span
|
||||||
class="cmtt-12">smoothers_build</span></span></span><span
|
class="cmtt-12">smoothers_build</span><span
|
||||||
class="cmr-12">, whose nomenclature would however be somewhat unnatural when</span>
|
class="cmr-12">, whose nomenclature would however be somewhat unnatural when</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">dealing with simple one-level preconditioners.</span>
|
class="cmr-12">dealing with simple one-level preconditioners.</span>
|
||||||
<!--l. 661--><p class="noindent" ><span
|
<!--l. 682--><p class="noindent" ><span
|
||||||
class="cmbx-12">Arguments</span>
|
class="cmbx-12">Arguments</span>
|
||||||
<div class="tabular"> <table id="TBL-13" class="tabular"
|
<div class="tabular"> <table id="TBL-12" class="tabular"
|
||||||
cellspacing="0" cellpadding="0"
|
cellspacing="0" cellpadding="0"
|
||||||
><colgroup id="TBL-13-1g"><col
|
><colgroup id="TBL-12-1g"><col
|
||||||
id="TBL-13-1"><col
|
id="TBL-12-1"><col
|
||||||
id="TBL-13-2"></colgroup><tr
|
id="TBL-12-2"></colgroup><tr
|
||||||
style="vertical-align:baseline;" id="TBL-13-1-"><td style="white-space:normal; text-align:left;" id="TBL-13-1-1"
|
style="vertical-align:baseline;" id="TBL-12-1-"><td style="white-space:normal; text-align:left;" id="TBL-12-1-1"
|
||||||
class="td11"><!--l. 664--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 685--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">a</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-1-2"
|
class="cmtt-12">a</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-1-2"
|
||||||
class="td11"><!--l. 664--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 685--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">type(psb_</span></span></span><span
|
class="cmtt-12">type</span><span
|
||||||
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
|
class="cmtt-12">(</span><span
|
||||||
class="cmtt-12">spmat_type),</span><span
|
class="cmtt-12">psb_</span><span
|
||||||
class="cmtt-12"> intent(in)</span></span></span><span
|
class="cmti-12">x</span><span class="lstinline"></span><span
|
||||||
|
class="cmtt-12">spmat_type</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">in</span><span
|
||||||
|
class="cmtt-12">)</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-13-2-"><td style="white-space:normal; text-align:left;" id="TBL-13-2-1"
|
style="vertical-align:baseline;" id="TBL-12-2-"><td style="white-space:normal; text-align:left;" id="TBL-12-2-1"
|
||||||
class="td11"><!--l. 665--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-2-2"
|
class="td11"><!--l. 686--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-2-2"
|
||||||
class="td11"><!--l. 665--><p class="noindent" ><span
|
class="td11"><!--l. 686--><p class="noindent" ><span
|
||||||
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
|
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">to be preconditioned. Note that </span><span
|
class="cmr-12">to be preconditioned. Note that </span><span
|
||||||
class="cmti-12">x </span><span
|
class="cmti-12">x </span><span
|
||||||
class="cmr-12">must be chosen according to the</span>
|
class="cmr-12">must be chosen according to the</span>
|
||||||
<span
|
<span class="lstinline"></span><span
|
||||||
class="cmr-12">real/complex, single/double precision version of AMG4PSBLAS</span>
|
class="cmtt-12">real</span><span
|
||||||
|
class="cmr-12">/</span><span class="lstinline"></span><span
|
||||||
|
class="cmtt-12">complex</span><span
|
||||||
|
class="cmr-12">, single/double precision version of AMG4PSBLAS</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">under use. See the PSBLAS User’s Guide for details </span><span class="cite"><span
|
class="cmr-12">under use. See the PSBLAS User’s Guide for details </span><span class="cite"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||||
class="cmr-12">16</span></a><span
|
class="cmr-12">17</span></a><span
|
||||||
class="cmr-12">]</span></span><span
|
class="cmr-12">]</span></span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-13-3-"><td style="white-space:normal; text-align:left;" id="TBL-13-3-1"
|
style="vertical-align:baseline;" id="TBL-12-3-"><td style="white-space:normal; text-align:left;" id="TBL-12-3-1"
|
||||||
class="td11"><!--l. 669--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 690--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">desc_a</span></span></span></td><td style="white-space:normal; text-align:left;" id="TBL-13-3-2"
|
class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-12-3-2"
|
||||||
class="td11"><!--l. 669--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 690--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">type(psb_desc_type),</span><span
|
class="cmtt-12">type</span><span
|
||||||
class="cmtt-12"> intent(in)</span></span></span><span
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">psb_desc_type</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">in</span><span
|
||||||
|
class="cmtt-12">)</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-13-4-"><td style="white-space:normal; text-align:left;" id="TBL-13-4-1"
|
style="vertical-align:baseline;" id="TBL-12-4-"><td style="white-space:normal; text-align:left;" id="TBL-12-4-1"
|
||||||
class="td11"><!--l. 670--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-4-2"
|
class="td11"><!--l. 691--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-4-2"
|
||||||
class="td11"><!--l. 670--><p class="noindent" ><span
|
class="td11"><!--l. 691--><p class="noindent" ><span
|
||||||
class="cmr-12">The communication descriptor of </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">The communication descriptor of </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">a</span></span></span><span
|
class="cmtt-12">a</span><span
|
||||||
class="cmr-12">. See the PSBLAS User’s Guide</span>
|
class="cmr-12">. See the PSBLAS User’s Guide</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">for details </span><span class="cite"><span
|
class="cmr-12">for details </span><span class="cite"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||||
class="cmr-12">16</span></a><span
|
class="cmr-12">17</span></a><span
|
||||||
class="cmr-12">]</span></span><span
|
class="cmr-12">]</span></span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-13-5-"><td style="white-space:normal; text-align:left;" id="TBL-13-5-1"
|
style="vertical-align:baseline;" id="TBL-12-5-"><td style="white-space:normal; text-align:left;" id="TBL-12-5-1"
|
||||||
class="td11"><!--l. 672--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 693--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">info</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-5-2"
|
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-5-2"
|
||||||
class="td11"><!--l. 672--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 693--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">integer,</span><span
|
class="cmtt-12">integer</span><span
|
||||||
class="cmtt-12"> intent(out)</span></span></span><span
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">out</span><span
|
||||||
|
class="cmtt-12">)</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-13-6-"><td style="white-space:normal; text-align:left;" id="TBL-13-6-1"
|
style="vertical-align:baseline;" id="TBL-12-6-"><td style="white-space:normal; text-align:left;" id="TBL-12-6-1"
|
||||||
class="td11"><!--l. 673--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-6-2"
|
class="td11"><!--l. 694--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-6-2"
|
||||||
class="td11"><!--l. 673--><p class="noindent" ><span
|
class="td11"><!--l. 694--><p class="noindent" ><span
|
||||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="userhtmlse7.html#x26-300007"><span
|
href="userhtmlse7.html#x26-300007"><span
|
||||||
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
||||||
class="cmr-12">for details.</span> </td>
|
class="cmr-12">for details.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-13-7-"><td style="white-space:normal; text-align:left;" id="TBL-13-7-1"
|
style="vertical-align:baseline;" id="TBL-12-7-"><td style="white-space:normal; text-align:left;" id="TBL-12-7-1"
|
||||||
class="td11"><!--l. 674--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 695--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">amold</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-7-2"
|
class="cmtt-12">amold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-7-2"
|
||||||
class="td11"><!--l. 674--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 695--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">class(psb_</span></span></span><span
|
class="cmtt-12">class</span><span
|
||||||
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
|
class="cmtt-12">(</span><span
|
||||||
class="cmtt-12">_base_sparse_mat),</span><span
|
class="cmtt-12">psb_</span><span
|
||||||
class="cmtt-12"> intent(in),</span><span
|
class="cmti-12">x</span><span class="lstinline"></span><span
|
||||||
class="cmtt-12"> optional</span></span></span><span
|
class="cmtt-12">_base_sparse_mat</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">in</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">optional</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-13-8-"><td style="white-space:normal; text-align:left;" id="TBL-13-8-1"
|
style="vertical-align:baseline;" id="TBL-12-8-"><td style="white-space:normal; text-align:left;" id="TBL-12-8-1"
|
||||||
class="td11"><!--l. 675--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-8-2"
|
class="td11"><!--l. 696--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-8-2"
|
||||||
class="td11"><!--l. 675--><p class="noindent" ><span
|
class="td11"><!--l. 696--><p class="noindent" ><span
|
||||||
class="cmr-12">The desired dynamic type for internal matrix components; this</span>
|
class="cmr-12">The desired dynamic type for internal matrix components; this</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
|
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
|
||||||
@@ -162,47 +208,63 @@ class="cmr-12">allows e.g. running on GPUs; it needs not be the same
|
|||||||
class="cmr-12">processes. See the PSBLAS User’s Guide for details </span><span class="cite"><span
|
class="cmr-12">processes. See the PSBLAS User’s Guide for details </span><span class="cite"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||||
class="cmr-12">16</span></a><span
|
class="cmr-12">17</span></a><span
|
||||||
class="cmr-12">]</span></span><span
|
class="cmr-12">]</span></span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-13-9-"><td style="white-space:normal; text-align:left;" id="TBL-13-9-1"
|
style="vertical-align:baseline;" id="TBL-12-9-"><td style="white-space:normal; text-align:left;" id="TBL-12-9-1"
|
||||||
class="td11"><!--l. 679--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 700--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">vmold</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-9-2"
|
class="cmtt-12">vmold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-9-2"
|
||||||
class="td11"><!--l. 679--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 700--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">class(psb_</span></span></span><span
|
class="cmtt-12">class</span><span
|
||||||
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
|
class="cmtt-12">(</span><span
|
||||||
class="cmtt-12">_base_vect_type),</span><span
|
class="cmtt-12">psb_</span><span
|
||||||
class="cmtt-12"> intent(in),</span><span
|
class="cmti-12">x</span><span class="lstinline"></span><span
|
||||||
class="cmtt-12"> optional</span></span></span><span
|
class="cmtt-12">_base_vect_type</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">in</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">optional</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-13-10-"><td style="white-space:normal; text-align:left;" id="TBL-13-10-1"
|
style="vertical-align:baseline;" id="TBL-12-10-"><td style="white-space:normal; text-align:left;" id="TBL-12-10-1"
|
||||||
class="td11"><!--l. 680--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-10-2"
|
class="td11"><!--l. 701--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-10-2"
|
||||||
class="td11"><!--l. 680--><p class="noindent" ><span
|
class="td11"><!--l. 701--><p class="noindent" ><span
|
||||||
class="cmr-12">The desired dynamic type for internal vector components; this</span>
|
class="cmr-12">The desired dynamic type for internal vector components; this</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">allows e.g. running on GPUs.</span> </td>
|
class="cmr-12">allows e.g. running on GPUs.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-13-11-"><td style="white-space:normal; text-align:left;" id="TBL-13-11-1"
|
style="vertical-align:baseline;" id="TBL-12-11-"><td style="white-space:normal; text-align:left;" id="TBL-12-11-1"
|
||||||
class="td11"><!--l. 682--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 703--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">imold</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-11-2"
|
class="cmtt-12">imold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-11-2"
|
||||||
class="td11"><!--l. 682--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 703--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">class(psb_i_base_vect_type),</span><span
|
class="cmtt-12">class</span><span
|
||||||
class="cmtt-12"> intent(in),</span><span
|
class="cmtt-12">(</span><span
|
||||||
class="cmtt-12"> optional</span></span></span><span
|
class="cmtt-12">psb_i_base_vect_type</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">in</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">optional</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-13-12-"><td style="white-space:normal; text-align:left;" id="TBL-13-12-1"
|
style="vertical-align:baseline;" id="TBL-12-12-"><td style="white-space:normal; text-align:left;" id="TBL-12-12-1"
|
||||||
class="td11"><!--l. 683--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-12-2"
|
class="td11"><!--l. 704--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-12-2"
|
||||||
class="td11"><!--l. 683--><p class="noindent" ><span
|
class="td11"><!--l. 704--><p class="noindent" ><span
|
||||||
class="cmr-12">The desired dynamic type for internal integer vector components;</span>
|
class="cmr-12">The desired dynamic type for internal integer vector components;</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">this allows e.g. running on GPUs.</span> </td>
|
class="cmr-12">this allows e.g. running on GPUs.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-13-13-"><td style="white-space:normal; text-align:left;" id="TBL-13-13-1"
|
style="vertical-align:baseline;" id="TBL-12-13-"><td style="white-space:normal; text-align:left;" id="TBL-12-13-1"
|
||||||
class="td11"> </td> </tr></table></div>
|
class="td11"> </td> </tr></table></div>
|
||||||
<!--l. 688--><p class="noindent" ><span
|
<!--l. 709--><p class="noindent" ><span
|
||||||
class="cmr-12">The method can be used to build multilevel preconditioners too.</span>
|
class="cmr-12">The method can be used to build multilevel preconditioners too.</span>
|
||||||
|
|
||||||
|
|
||||||
@@ -210,7 +272,7 @@ class="cmr-12">The method can be used to build multilevel preconditioners too.</
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--l. 693--><div class="crosslinks"><p class="noindent"><span
|
<!--l. 714--><div class="crosslinks"><p class="noindent"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlsu12.html" ><span
|
href="userhtmlsu12.html" ><span
|
||||||
class="cmr-12">next</span></a><span
|
class="cmr-12">next</span></a><span
|
||||||
@@ -227,6 +289,6 @@ class="cmr-12">] [</span><a
|
|||||||
href="userhtmlse5.html#userhtmlsu11.html" ><span
|
href="userhtmlse5.html#userhtmlsu11.html" ><span
|
||||||
class="cmr-12">up</span></a><span
|
class="cmr-12">up</span></a><span
|
||||||
class="cmr-12">] </span></p></div>
|
class="cmr-12">] </span></p></div>
|
||||||
<!--l. 693--><p class="indent" > <a
|
<!--l. 714--><p class="indent" > <a
|
||||||
id="tailuserhtmlsu11.html"></a>
|
id="tailuserhtmlsu11.html"></a>
|
||||||
</body></html>
|
</body></html>
|
||||||
|
|||||||
+202
-111
@@ -10,7 +10,7 @@
|
|||||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||||
</head><body
|
</head><body
|
||||||
>
|
>
|
||||||
<!--l. 693--><div class="crosslinks"><p class="noindent"><span
|
<!--l. 714--><div class="crosslinks"><p class="noindent"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlsu13.html" ><span
|
href="userhtmlsu13.html" ><span
|
||||||
class="cmr-12">next</span></a><span
|
class="cmr-12">next</span></a><span
|
||||||
@@ -33,13 +33,29 @@ class="cmr-12">5.6 </span></span> <a
|
|||||||
class="cmr-12">Method apply</span></h4>
|
class="cmr-12">Method apply</span></h4>
|
||||||
<div class="center"
|
<div class="center"
|
||||||
>
|
>
|
||||||
<!--l. 695--><p class="noindent" >
|
<!--l. 716--><p class="noindent" >
|
||||||
<!--l. 696--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
<!--l. 717--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">call</span><span
|
class="cmtt-12">call</span><span
|
||||||
class="cmtt-12"> p%apply(x,y,desc_a,info</span><span
|
class="cmtt-12"> </span><span
|
||||||
class="cmtt-12"> [,trans,work])</span></span></span><br />
|
class="cmtt-12">p</span><span
|
||||||
|
class="cmtt-12">%</span><span
|
||||||
|
class="cmtt-12">apply</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">x</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">y</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">desc_a</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">info</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">[,</span><span
|
||||||
|
class="cmtt-12">trans</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">work</span><span
|
||||||
|
class="cmtt-12">])</span><br />
|
||||||
</div>
|
</div>
|
||||||
<!--l. 699--><p class="noindent" ><span
|
<!--l. 720--><p class="noindent" ><span
|
||||||
class="cmr-12">This method computes </span><span
|
class="cmr-12">This method computes </span><span
|
||||||
class="cmmi-12">y </span><span
|
class="cmmi-12">y </span><span
|
||||||
class="cmr-12">= </span><span
|
class="cmr-12">= </span><span
|
||||||
@@ -54,46 +70,54 @@ class="cmr-12">, where </span><span
|
|||||||
class="cmmi-12">B </span><span
|
class="cmmi-12">B </span><span
|
||||||
class="cmr-12">is a previously built preconditioner,</span>
|
class="cmr-12">is a previously built preconditioner,</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">stored into </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">stored into </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">p</span></span></span><span
|
class="cmtt-12">p</span><span
|
||||||
class="cmr-12">, and </span><span
|
class="cmr-12">, and </span><span
|
||||||
class="cmmi-12">op </span><span
|
class="cmmi-12">op </span><span
|
||||||
class="cmr-12">denotes the preconditioner itself or its transpose, according to the</span>
|
class="cmr-12">denotes the preconditioner itself or its transpose, according to the</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">value of </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">value of </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">trans</span></span></span><span
|
class="cmtt-12">trans</span><span
|
||||||
class="cmr-12">. Note that, when AMG4PSBLAS is used with a Krylov solver from</span>
|
class="cmr-12">. Note that, when AMG4PSBLAS is used with a Krylov solver from</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">PSBLAS, </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">PSBLAS, </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">p%apply</span></span></span> <span
|
class="cmtt-12">p</span><span
|
||||||
class="cmr-12">is called within the PSBLAS method </span><span class="obeylines-h"><span class="verb"><span
|
class="cmtt-12">%</span><span
|
||||||
class="cmtt-12">psb_krylov</span></span></span> <span
|
class="cmtt-12">apply</span> <span
|
||||||
|
class="cmr-12">is called within the PSBLAS method </span><span class="lstinline"></span><span
|
||||||
|
class="cmtt-12">psb_krylov</span> <span
|
||||||
class="cmr-12">and hence it is</span>
|
class="cmr-12">and hence it is</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">completely transparent to the user.</span>
|
class="cmr-12">completely transparent to the user.</span>
|
||||||
<!--l. 708--><p class="noindent" ><span
|
<!--l. 729--><p class="noindent" ><span
|
||||||
class="cmbx-12">Arguments</span>
|
class="cmbx-12">Arguments</span>
|
||||||
<div class="tabular"> <table id="TBL-14" class="tabular"
|
<div class="tabular"> <table id="TBL-13" class="tabular"
|
||||||
cellspacing="0" cellpadding="0"
|
cellspacing="0" cellpadding="0"
|
||||||
><colgroup id="TBL-14-1g"><col
|
><colgroup id="TBL-13-1g"><col
|
||||||
id="TBL-14-1"><col
|
id="TBL-13-1"><col
|
||||||
id="TBL-14-2"></colgroup><tr
|
id="TBL-13-2"></colgroup><tr
|
||||||
style="vertical-align:baseline;" id="TBL-14-1-"><td style="white-space:normal; text-align:left;" id="TBL-14-1-1"
|
style="vertical-align:baseline;" id="TBL-13-1-"><td style="white-space:normal; text-align:left;" id="TBL-13-1-1"
|
||||||
class="td11"><!--l. 711--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 732--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">x</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-1-2"
|
class="cmtt-12">x</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-1-2"
|
||||||
class="td11"><!--l. 711--><p class="noindent" ><span
|
class="td11"><!--l. 732--><p class="noindent" ><span
|
||||||
class="cmti-12">type</span><span class="obeylines-h"><span class="verb"><span
|
class="cmti-12">type</span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">(</span></span></span><span
|
class="cmtt-12">(</span><span
|
||||||
class="cmti-12">kind</span><span
|
class="cmti-12">kind</span><span
|
||||||
class="cmti-12">_parameter</span><span class="obeylines-h"><span class="verb"><span
|
class="cmti-12">_parameter</span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">),</span><span
|
class="cmtt-12">),</span><span
|
||||||
class="cmtt-12"> dimension(:),</span><span
|
class="cmtt-12"> </span><span
|
||||||
class="cmtt-12"> intent(in)</span></span></span><span
|
class="cmtt-12">dimension</span><span
|
||||||
|
class="cmtt-12">(:),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">in</span><span
|
||||||
|
class="cmtt-12">)</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-14-2-"><td style="white-space:normal; text-align:left;" id="TBL-14-2-1"
|
style="vertical-align:baseline;" id="TBL-13-2-"><td style="white-space:normal; text-align:left;" id="TBL-13-2-1"
|
||||||
class="td11"><!--l. 712--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-2-2"
|
class="td11"><!--l. 733--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-2-2"
|
||||||
class="td11"><!--l. 712--><p class="noindent" ><span
|
class="td11"><!--l. 733--><p class="noindent" ><span
|
||||||
class="cmr-12">The local part of the vector </span><span
|
class="cmr-12">The local part of the vector </span><span
|
||||||
class="cmmi-12">x</span><span
|
class="cmmi-12">x</span><span
|
||||||
class="cmr-12">. Note that </span><span
|
class="cmr-12">. Note that </span><span
|
||||||
@@ -102,26 +126,36 @@ class="cmr-12">and </span><span
|
|||||||
class="cmti-12">kind</span><span
|
class="cmti-12">kind</span><span
|
||||||
class="cmti-12">_parameter</span>
|
class="cmti-12">_parameter</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">must be chosen according to the real/complex, single/double</span>
|
class="cmr-12">must be chosen according to the </span><span class="lstinline"></span><span
|
||||||
|
class="cmtt-12">real</span><span
|
||||||
|
class="cmr-12">/</span><span class="lstinline"></span><span
|
||||||
|
class="cmtt-12">complex</span><span
|
||||||
|
class="cmr-12">, single/double</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">precision version of AMG4PSBLAS under use.</span> </td>
|
class="cmr-12">precision version of AMG4PSBLAS under use.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-14-3-"><td style="white-space:normal; text-align:left;" id="TBL-14-3-1"
|
style="vertical-align:baseline;" id="TBL-13-3-"><td style="white-space:normal; text-align:left;" id="TBL-13-3-1"
|
||||||
class="td11"><!--l. 715--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 736--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">y</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-3-2"
|
class="cmtt-12">y</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-3-2"
|
||||||
class="td11"><!--l. 715--><p class="noindent" ><span
|
class="td11"><!--l. 736--><p class="noindent" ><span
|
||||||
class="cmti-12">type</span><span class="obeylines-h"><span class="verb"><span
|
class="cmti-12">type</span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">(</span></span></span><span
|
class="cmtt-12">(</span><span
|
||||||
class="cmti-12">kind</span><span
|
class="cmti-12">kind</span><span
|
||||||
class="cmti-12">_parameter</span><span class="obeylines-h"><span class="verb"><span
|
class="cmti-12">_parameter</span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">),</span><span
|
class="cmtt-12">),</span><span
|
||||||
class="cmtt-12"> dimension(:),</span><span
|
class="cmtt-12"> </span><span
|
||||||
class="cmtt-12"> intent(out)</span></span></span><span
|
class="cmtt-12">dimension</span><span
|
||||||
|
class="cmtt-12">(:),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">out</span><span
|
||||||
|
class="cmtt-12">)</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-14-4-"><td style="white-space:normal; text-align:left;" id="TBL-14-4-1"
|
style="vertical-align:baseline;" id="TBL-13-4-"><td style="white-space:normal; text-align:left;" id="TBL-13-4-1"
|
||||||
class="td11"><!--l. 716--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-4-2"
|
class="td11"><!--l. 737--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-4-2"
|
||||||
class="td11"><!--l. 716--><p class="noindent" ><span
|
class="td11"><!--l. 737--><p class="noindent" ><span
|
||||||
class="cmr-12">The local part of the vector </span><span
|
class="cmr-12">The local part of the vector </span><span
|
||||||
class="cmmi-12">y</span><span
|
class="cmmi-12">y</span><span
|
||||||
class="cmr-12">. Note that </span><span
|
class="cmr-12">. Note that </span><span
|
||||||
@@ -130,57 +164,88 @@ class="cmr-12">and </span><span
|
|||||||
class="cmti-12">kind</span><span
|
class="cmti-12">kind</span><span
|
||||||
class="cmti-12">_parameter</span>
|
class="cmti-12">_parameter</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">must be chosen according to the real/complex, single/double</span>
|
class="cmr-12">must be chosen according to the </span><span class="lstinline"></span><span
|
||||||
|
class="cmtt-12">real</span><span
|
||||||
|
class="cmr-12">/</span><span class="lstinline"></span><span
|
||||||
|
class="cmtt-12">complex</span><span
|
||||||
|
class="cmr-12">, single/double</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">precision version of AMG4PSBLAS under use.</span> </td>
|
class="cmr-12">precision version of AMG4PSBLAS under use.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-14-5-"><td style="white-space:normal; text-align:left;" id="TBL-14-5-1"
|
style="vertical-align:baseline;" id="TBL-13-5-"><td style="white-space:normal; text-align:left;" id="TBL-13-5-1"
|
||||||
class="td11"><!--l. 719--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 740--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">desc_a</span></span></span></td><td style="white-space:normal; text-align:left;" id="TBL-14-5-2"
|
class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-13-5-2"
|
||||||
class="td11"><!--l. 719--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 740--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">type(psb_desc_type),</span><span
|
class="cmtt-12">type</span><span
|
||||||
class="cmtt-12"> intent(in)</span></span></span><span
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">psb_desc_type</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">in</span><span
|
||||||
|
class="cmtt-12">)</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-14-6-"><td style="white-space:normal; text-align:left;" id="TBL-14-6-1"
|
style="vertical-align:baseline;" id="TBL-13-6-"><td style="white-space:normal; text-align:left;" id="TBL-13-6-1"
|
||||||
class="td11"><!--l. 720--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-6-2"
|
class="td11"><!--l. 741--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-6-2"
|
||||||
class="td11"><!--l. 720--><p class="noindent" ><span
|
class="td11"><!--l. 741--><p class="noindent" ><span
|
||||||
class="cmr-12">The communication descriptor associated to the matrix to be</span>
|
class="cmr-12">The communication descriptor associated to the matrix to be</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">preconditioned.</span> </td>
|
class="cmr-12">preconditioned.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-14-7-"><td style="white-space:normal; text-align:left;" id="TBL-14-7-1"
|
style="vertical-align:baseline;" id="TBL-13-7-"><td style="white-space:normal; text-align:left;" id="TBL-13-7-1"
|
||||||
class="td11"><!--l. 722--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 743--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">info</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-7-2"
|
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-7-2"
|
||||||
class="td11"><!--l. 722--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 743--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">integer,</span><span
|
class="cmtt-12">integer</span><span
|
||||||
class="cmtt-12"> intent(out)</span></span></span><span
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">out</span><span
|
||||||
|
class="cmtt-12">)</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-14-8-"><td style="white-space:normal; text-align:left;" id="TBL-14-8-1"
|
style="vertical-align:baseline;" id="TBL-13-8-"><td style="white-space:normal; text-align:left;" id="TBL-13-8-1"
|
||||||
class="td11"><!--l. 723--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-8-2"
|
class="td11"><!--l. 744--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-8-2"
|
||||||
class="td11"><!--l. 723--><p class="noindent" ><span
|
class="td11"><!--l. 744--><p class="noindent" ><span
|
||||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="userhtmlse7.html#x26-300007"><span
|
href="userhtmlse7.html#x26-300007"><span
|
||||||
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
||||||
class="cmr-12">for details.</span> </td>
|
class="cmr-12">for details.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-14-9-"><td style="white-space:normal; text-align:left;" id="TBL-14-9-1"
|
style="vertical-align:baseline;" id="TBL-13-9-"><td style="white-space:normal; text-align:left;" id="TBL-13-9-1"
|
||||||
class="td11"><!--l. 724--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 745--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">trans</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-9-2"
|
class="cmtt-12">trans</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-9-2"
|
||||||
class="td11"><!--l. 724--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 745--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">character(len=1),</span><span
|
class="cmtt-12">character</span><span
|
||||||
class="cmtt-12"> optional,</span><span
|
class="cmtt-12">(</span><span
|
||||||
class="cmtt-12"> intent(in).</span></span></span> </td>
|
class="cmtt-12">len</span><span
|
||||||
|
class="cmtt-12">=1),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">optional</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">in</span><span
|
||||||
|
class="cmtt-12">).</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-14-10-"><td style="white-space:normal; text-align:left;" id="TBL-14-10-1"
|
style="vertical-align:baseline;" id="TBL-13-10-"><td style="white-space:normal; text-align:left;" id="TBL-13-10-1"
|
||||||
class="td11"><!--l. 725--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-10-2"
|
class="td11"><!--l. 746--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-10-2"
|
||||||
class="td11"><!--l. 725--><p class="noindent" ><span
|
class="td11"><!--l. 746--><p class="noindent" ><span
|
||||||
class="cmr-12">If </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">If </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">trans</span></span></span> <span
|
class="cmtt-12">trans</span> <span
|
||||||
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">= </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">’N’,’n’</span></span></span> <span
|
class="cmtt-12">’</span><span
|
||||||
|
class="cmtt-12">N</span><span
|
||||||
|
class="cmtt-12">’</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">’</span><span
|
||||||
|
class="cmtt-12">n</span><span
|
||||||
|
class="cmtt-12">’</span> <span
|
||||||
class="cmr-12">then </span><span
|
class="cmr-12">then </span><span
|
||||||
class="cmmi-12">op</span><span
|
class="cmmi-12">op</span><span
|
||||||
class="cmr-12">(</span><span
|
class="cmr-12">(</span><span
|
||||||
@@ -191,10 +256,16 @@ class="cmr-12">) = </span><span
|
|||||||
class="cmmi-12">B</span><sup><span
|
class="cmmi-12">B</span><sup><span
|
||||||
class="cmsy-8">-</span><span
|
class="cmsy-8">-</span><span
|
||||||
class="cmr-8">1</span></sup><span
|
class="cmr-8">1</span></sup><span
|
||||||
class="cmr-12">; if </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">; if </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">trans</span></span></span> <span
|
class="cmtt-12">trans</span> <span
|
||||||
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">= </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">’T’,’t’</span></span></span>
|
class="cmtt-12">’</span><span
|
||||||
|
class="cmtt-12">T</span><span
|
||||||
|
class="cmtt-12">’</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">’</span><span
|
||||||
|
class="cmtt-12">t</span><span
|
||||||
|
class="cmtt-12">’</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">then </span><span
|
class="cmr-12">then </span><span
|
||||||
class="cmmi-12">op</span><span
|
class="cmmi-12">op</span><span
|
||||||
@@ -210,10 +281,16 @@ class="cmr-12">(transpose of </span><span
|
|||||||
class="cmmi-12">B</span><sup><span
|
class="cmmi-12">B</span><sup><span
|
||||||
class="cmsy-8">-</span><span
|
class="cmsy-8">-</span><span
|
||||||
class="cmr-8">1</span></sup><span
|
class="cmr-8">1</span></sup><span
|
||||||
class="cmr-12">); if </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">); if </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">trans</span></span></span> <span
|
class="cmtt-12">trans</span> <span
|
||||||
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">= </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">’C’,’c’</span></span></span> <span
|
class="cmtt-12">’</span><span
|
||||||
|
class="cmtt-12">C</span><span
|
||||||
|
class="cmtt-12">’</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">’</span><span
|
||||||
|
class="cmtt-12">c</span><span
|
||||||
|
class="cmtt-12">’</span> <span
|
||||||
class="cmr-12">then</span>
|
class="cmr-12">then</span>
|
||||||
<span
|
<span
|
||||||
class="cmmi-12">op</span><span
|
class="cmmi-12">op</span><span
|
||||||
@@ -231,40 +308,54 @@ class="cmsy-8">-</span><span
|
|||||||
class="cmr-8">1</span></sup><span
|
class="cmr-8">1</span></sup><span
|
||||||
class="cmr-12">).</span> </td>
|
class="cmr-12">).</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-14-11-"><td style="white-space:normal; text-align:left;" id="TBL-14-11-1"
|
style="vertical-align:baseline;" id="TBL-13-11-"><td style="white-space:normal; text-align:left;" id="TBL-13-11-1"
|
||||||
class="td11"><!--l. 729--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 750--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">work</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-11-2"
|
class="cmtt-12">work</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-11-2"
|
||||||
class="td11"><!--l. 729--><p class="noindent" ><span
|
class="td11"><!--l. 750--><p class="noindent" ><span
|
||||||
class="cmti-12">type</span><span class="obeylines-h"><span class="verb"><span
|
class="cmti-12">type</span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">(</span></span></span><span
|
class="cmtt-12">(</span><span
|
||||||
class="cmti-12">kind</span><span
|
class="cmti-12">kind</span><span
|
||||||
class="cmti-12">_parameter</span><span class="obeylines-h"><span class="verb"><span
|
class="cmti-12">_parameter</span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">),</span><span
|
class="cmtt-12">),</span><span
|
||||||
class="cmtt-12"> dimension(:),</span><span
|
class="cmtt-12"> </span><span
|
||||||
class="cmtt-12"> optional,</span><span
|
class="cmtt-12">dimension</span><span
|
||||||
class="cmtt-12"> target</span></span></span><span
|
class="cmtt-12">(:),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">optional</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">target</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-14-12-"><td style="white-space:normal; text-align:left;" id="TBL-14-12-1"
|
style="vertical-align:baseline;" id="TBL-13-12-"><td style="white-space:normal; text-align:left;" id="TBL-13-12-1"
|
||||||
class="td11"><!--l. 730--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-12-2"
|
class="td11"><!--l. 751--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-12-2"
|
||||||
class="td11"><!--l. 730--><p class="noindent" ><span
|
class="td11"><!--l. 751--><p class="noindent" ><span
|
||||||
class="cmr-12">Workspace. Its size should be at least </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">Workspace. Its size should be at least </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">4</span><span
|
class="cmtt-12">4</span><span
|
||||||
class="cmtt-12"> *</span><span
|
class="cmtt-12"> </span><span
|
||||||
class="cmtt-12"> psb_cd_get_local_</span></span></span>
|
class="cmtt-12">*</span><span
|
||||||
<span class="obeylines-h"><span class="verb"><span
|
class="cmtt-12"> </span><span
|
||||||
class="cmtt-12">cols(desc_a)</span></span></span> <span
|
class="cmtt-12">psb_cd_get_local_</span>
|
||||||
class="cmr-12">(see the PSBLAS User’s Guide). Note that </span><span
|
<span class="lstinline"></span><span
|
||||||
class="cmti-12">type</span>
|
class="cmtt-12">cols</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">desc_a</span><span
|
||||||
|
class="cmtt-12">)</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
|
<span
|
||||||
class="cmr-12">and </span><span
|
|
||||||
class="cmti-12">kind</span><span
|
class="cmti-12">kind</span><span
|
||||||
class="cmti-12">_parameter </span><span
|
class="cmti-12">_parameter </span><span
|
||||||
class="cmr-12">must be chosen according to the real/complex,</span>
|
class="cmr-12">must be chosen according to the </span><span class="lstinline"></span><span
|
||||||
|
class="cmtt-12">real</span><span
|
||||||
|
class="cmr-12">/</span><span class="lstinline"></span><span
|
||||||
|
class="cmtt-12">complex</span><span
|
||||||
|
class="cmr-12">,</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">single/double precision version of AMG4PSBLAS under use.</span> </td>
|
class="cmr-12">single/double precision version of AMG4PSBLAS under use.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-14-13-"><td style="white-space:normal; text-align:left;" id="TBL-14-13-1"
|
style="vertical-align:baseline;" id="TBL-13-13-"><td style="white-space:normal; text-align:left;" id="TBL-13-13-1"
|
||||||
class="td11"> </td> </tr></table></div>
|
class="td11"> </td> </tr></table></div>
|
||||||
|
|
||||||
|
|
||||||
@@ -272,7 +363,7 @@ class="td11"> </td> </tr></table></div>
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--l. 739--><div class="crosslinks"><p class="noindent"><span
|
<!--l. 760--><div class="crosslinks"><p class="noindent"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlsu13.html" ><span
|
href="userhtmlsu13.html" ><span
|
||||||
class="cmr-12">next</span></a><span
|
class="cmr-12">next</span></a><span
|
||||||
@@ -289,6 +380,6 @@ class="cmr-12">] [</span><a
|
|||||||
href="userhtmlse5.html#userhtmlsu12.html" ><span
|
href="userhtmlse5.html#userhtmlsu12.html" ><span
|
||||||
class="cmr-12">up</span></a><span
|
class="cmr-12">up</span></a><span
|
||||||
class="cmr-12">] </span></p></div>
|
class="cmr-12">] </span></p></div>
|
||||||
<!--l. 739--><p class="indent" > <a
|
<!--l. 760--><p class="indent" > <a
|
||||||
id="tailuserhtmlsu12.html"></a>
|
id="tailuserhtmlsu12.html"></a>
|
||||||
</body></html>
|
</body></html>
|
||||||
|
|||||||
+37
-24
@@ -10,7 +10,7 @@
|
|||||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||||
</head><body
|
</head><body
|
||||||
>
|
>
|
||||||
<!--l. 739--><div class="crosslinks"><p class="noindent"><span
|
<!--l. 760--><div class="crosslinks"><p class="noindent"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlsu14.html" ><span
|
href="userhtmlsu14.html" ><span
|
||||||
class="cmr-12">next</span></a><span
|
class="cmr-12">next</span></a><span
|
||||||
@@ -33,33 +33,46 @@ class="cmr-12">5.7 </span></span> <a
|
|||||||
class="cmr-12">Method free</span></h4>
|
class="cmr-12">Method free</span></h4>
|
||||||
<div class="center"
|
<div class="center"
|
||||||
>
|
>
|
||||||
<!--l. 741--><p class="noindent" >
|
<!--l. 762--><p class="noindent" >
|
||||||
<!--l. 742--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
<!--l. 763--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">call</span><span
|
class="cmtt-12">call</span><span
|
||||||
class="cmtt-12"> p%free(p,info)</span></span></span><br />
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">p</span><span
|
||||||
|
class="cmtt-12">%</span><span
|
||||||
|
class="cmtt-12">free</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">p</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">info</span><span
|
||||||
|
class="cmtt-12">)</span><br />
|
||||||
</div>
|
</div>
|
||||||
<!--l. 745--><p class="noindent" ><span
|
<!--l. 766--><p class="noindent" ><span
|
||||||
class="cmr-12">This method deallocates the preconditioner data structure </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">This method deallocates the preconditioner data structure </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">p</span></span></span><span
|
class="cmtt-12">p</span><span
|
||||||
class="cmr-12">.</span>
|
class="cmr-12">.</span>
|
||||||
<!--l. 748--><p class="noindent" ><span
|
<!--l. 769--><p class="noindent" ><span
|
||||||
class="cmbx-12">Arguments</span>
|
class="cmbx-12">Arguments</span>
|
||||||
<div class="tabular"> <table id="TBL-15" class="tabular"
|
<div class="tabular"> <table id="TBL-14" class="tabular"
|
||||||
cellspacing="0" cellpadding="0"
|
cellspacing="0" cellpadding="0"
|
||||||
><colgroup id="TBL-15-1g"><col
|
><colgroup id="TBL-14-1g"><col
|
||||||
id="TBL-15-1"><col
|
id="TBL-14-1"><col
|
||||||
id="TBL-15-2"></colgroup><tr
|
id="TBL-14-2"></colgroup><tr
|
||||||
style="vertical-align:baseline;" id="TBL-15-1-"><td style="white-space:normal; text-align:left;" id="TBL-15-1-1"
|
style="vertical-align:baseline;" id="TBL-14-1-"><td style="white-space:normal; text-align:left;" id="TBL-14-1-1"
|
||||||
class="td11"><!--l. 751--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 772--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">info</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-15-1-2"
|
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-1-2"
|
||||||
class="td11"><!--l. 751--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 772--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">integer,</span><span
|
class="cmtt-12">integer</span><span
|
||||||
class="cmtt-12"> intent(out)</span></span></span><span
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">out</span><span
|
||||||
|
class="cmtt-12">)</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-15-2-"><td style="white-space:normal; text-align:left;" id="TBL-15-2-1"
|
style="vertical-align:baseline;" id="TBL-14-2-"><td style="white-space:normal; text-align:left;" id="TBL-14-2-1"
|
||||||
class="td11"><!--l. 752--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-2-2"
|
class="td11"><!--l. 773--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-2-2"
|
||||||
class="td11"><!--l. 752--><p class="noindent" ><span
|
class="td11"><!--l. 773--><p class="noindent" ><span
|
||||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="userhtmlse7.html#x26-300007"><span
|
href="userhtmlse7.html#x26-300007"><span
|
||||||
@@ -68,7 +81,7 @@ class="cmr-12">for</span>
|
|||||||
<span
|
<span
|
||||||
class="cmr-12">details.</span> </td>
|
class="cmr-12">details.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-15-3-"><td style="white-space:normal; text-align:left;" id="TBL-15-3-1"
|
style="vertical-align:baseline;" id="TBL-14-3-"><td style="white-space:normal; text-align:left;" id="TBL-14-3-1"
|
||||||
class="td11"> </td> </tr></table></div>
|
class="td11"> </td> </tr></table></div>
|
||||||
|
|
||||||
|
|
||||||
@@ -76,7 +89,7 @@ class="td11"> </td> </tr></table></div>
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--l. 758--><div class="crosslinks"><p class="noindent"><span
|
<!--l. 779--><div class="crosslinks"><p class="noindent"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlsu14.html" ><span
|
href="userhtmlsu14.html" ><span
|
||||||
class="cmr-12">next</span></a><span
|
class="cmr-12">next</span></a><span
|
||||||
@@ -93,6 +106,6 @@ class="cmr-12">] [</span><a
|
|||||||
href="userhtmlse5.html#userhtmlsu13.html" ><span
|
href="userhtmlse5.html#userhtmlsu13.html" ><span
|
||||||
class="cmr-12">up</span></a><span
|
class="cmr-12">up</span></a><span
|
||||||
class="cmr-12">] </span></p></div>
|
class="cmr-12">] </span></p></div>
|
||||||
<!--l. 758--><p class="indent" > <a
|
<!--l. 779--><p class="indent" > <a
|
||||||
id="tailuserhtmlsu13.html"></a>
|
id="tailuserhtmlsu13.html"></a>
|
||||||
</body></html>
|
</body></html>
|
||||||
|
|||||||
+123
-47
@@ -10,7 +10,7 @@
|
|||||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||||
</head><body
|
</head><body
|
||||||
>
|
>
|
||||||
<!--l. 758--><div class="crosslinks"><p class="noindent"><span
|
<!--l. 779--><div class="crosslinks"><p class="noindent"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlsu15.html" ><span
|
href="userhtmlsu15.html" ><span
|
||||||
class="cmr-12">next</span></a><span
|
class="cmr-12">next</span></a><span
|
||||||
@@ -33,72 +33,148 @@ class="cmr-12">5.8 </span></span> <a
|
|||||||
class="cmr-12">Method descr</span></h4>
|
class="cmr-12">Method descr</span></h4>
|
||||||
<div class="center"
|
<div class="center"
|
||||||
>
|
>
|
||||||
<!--l. 760--><p class="noindent" >
|
<!--l. 781--><p class="noindent" >
|
||||||
<!--l. 761--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
<!--l. 782--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">call</span><span
|
class="cmtt-12">call</span><span
|
||||||
class="cmtt-12"> p%descr(info,</span><span
|
class="cmtt-12"> </span><span
|
||||||
class="cmtt-12"> [iout])</span></span></span><br />
|
class="cmtt-12">p</span><span
|
||||||
|
class="cmtt-12">%</span><span
|
||||||
|
class="cmtt-12">descr</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">info</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">[</span><span
|
||||||
|
class="cmtt-12">iout</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">root</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">verbosity</span><span
|
||||||
|
class="cmtt-12">])</span><br />
|
||||||
</div>
|
</div>
|
||||||
<!--l. 764--><p class="noindent" ><span
|
<!--l. 785--><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="cmr-12">This method prints a description of the preconditioner </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">p</span></span></span> <span
|
class="cmtt-12">p</span> <span
|
||||||
class="cmr-12">to the standard output or to a</span>
|
class="cmr-12">to the standard output or to a</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">file. It must be called after </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">file. It must be called after </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">hierachy_build</span></span></span> <span
|
class="cmtt-12">hierachy_build</span> <span
|
||||||
class="cmr-12">and </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">and </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">smoothers_build</span></span></span><span
|
class="cmtt-12">smoothers_build</span><span
|
||||||
class="cmr-12">, or </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">, or </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">build</span></span></span><span
|
class="cmtt-12">build</span><span
|
||||||
class="cmr-12">, have</span>
|
class="cmr-12">, have</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">been called.</span>
|
class="cmr-12">been called.</span>
|
||||||
<!--l. 769--><p class="noindent" ><span
|
<!--l. 790--><p class="noindent" ><span
|
||||||
class="cmbx-12">Arguments</span>
|
class="cmbx-12">Arguments</span>
|
||||||
<div class="tabular"> <table id="TBL-16" class="tabular"
|
<div class="tabular"> <table id="TBL-15" class="tabular"
|
||||||
cellspacing="0" cellpadding="0"
|
cellspacing="0" cellpadding="0"
|
||||||
><colgroup id="TBL-16-1g"><col
|
><colgroup id="TBL-15-1g"><col
|
||||||
id="TBL-16-1"><col
|
id="TBL-15-1"><col
|
||||||
id="TBL-16-2"></colgroup><tr
|
id="TBL-15-2"></colgroup><tr
|
||||||
style="vertical-align:baseline;" id="TBL-16-1-"><td style="white-space:normal; text-align:left;" id="TBL-16-1-1"
|
style="vertical-align:baseline;" id="TBL-15-1-"><td style="white-space:normal; text-align:left;" id="TBL-15-1-1"
|
||||||
class="td11"><!--l. 772--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 793--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">info</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-1-2"
|
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-15-1-2"
|
||||||
class="td11"><!--l. 772--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 793--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">integer,</span><span
|
class="cmtt-12">integer</span><span
|
||||||
class="cmtt-12"> intent(out)</span></span></span><span
|
class="cmtt-12">,</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">out</span><span
|
||||||
|
class="cmtt-12">)</span><span
|
||||||
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-16-2-"><td style="white-space:normal; text-align:left;" id="TBL-16-2-1"
|
style="vertical-align:baseline;" id="TBL-15-2-"><td style="white-space:normal; text-align:left;" id="TBL-15-2-1"
|
||||||
class="td11"><!--l. 773--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-2-2"
|
class="td11"><!--l. 794--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-2-2"
|
||||||
class="td11"><!--l. 773--><p class="noindent" ><span
|
class="td11"><!--l. 794--><p class="noindent" ><span
|
||||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="userhtmlse7.html#x26-300007"><span
|
href="userhtmlse7.html#x26-300007"><span
|
||||||
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
||||||
class="cmr-12">for details.</span> </td>
|
class="cmr-12">for details.</span></td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-16-3-"><td style="white-space:normal; text-align:left;" id="TBL-16-3-1"
|
style="vertical-align:baseline;" id="TBL-15-3-"><td style="white-space:normal; text-align:left;" id="TBL-15-3-1"
|
||||||
class="td11"><!--l. 774--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 795--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">iout</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-3-2"
|
class="cmtt-12">iout</span> </td><td style="white-space:normal; text-align:left;" id="TBL-15-3-2"
|
||||||
class="td11"><!--l. 774--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 795--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">integer,</span><span
|
class="cmtt-12">integer</span><span
|
||||||
class="cmtt-12"> intent(in),</span><span
|
class="cmtt-12">,</span><span
|
||||||
class="cmtt-12"> optional</span></span></span><span
|
class="cmtt-12"> </span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">in</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">optional</span><span
|
||||||
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-16-4-"><td style="white-space:normal; text-align:left;" id="TBL-16-4-1"
|
style="vertical-align:baseline;" id="TBL-15-4-"><td style="white-space:normal; text-align:left;" id="TBL-15-4-1"
|
||||||
class="td11"><!--l. 775--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-4-2"
|
class="td11"><!--l. 796--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-4-2"
|
||||||
class="td11"><!--l. 775--><p class="noindent" ><span
|
class="td11"><!--l. 796--><p class="noindent" ><span
|
||||||
class="cmr-12">The id of the file where the preconditioner description will be</span>
|
class="cmr-12">The id of the file where the preconditioner description will be</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">printed; the default is the standard output.</span> </td>
|
class="cmr-12">printed; the default is the standard output.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-16-5-"><td style="white-space:normal; text-align:left;" id="TBL-16-5-1"
|
style="vertical-align:baseline;" id="TBL-15-5-"><td style="white-space:normal; text-align:left;" id="TBL-15-5-1"
|
||||||
class="td11"> </td> </tr></table></div>
|
class="td11"><!--l. 798--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
|
class="cmtt-12">root</span> </td><td style="white-space:normal; text-align:left;" id="TBL-15-5-2"
|
||||||
|
class="td11"><!--l. 798--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
|
class="cmtt-12">integer</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">in</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">optional</span><span
|
||||||
|
class="cmr-12">.</span> </td>
|
||||||
|
</tr><tr
|
||||||
|
style="vertical-align:baseline;" id="TBL-15-6-"><td style="white-space:normal; text-align:left;" id="TBL-15-6-1"
|
||||||
|
class="td11"><!--l. 799--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-6-2"
|
||||||
|
class="td11"><!--l. 799--><p class="noindent" ><span
|
||||||
|
class="cmr-12">The id of the process where the preconditioner description</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">will be printed; the default is </span><span class="lstinline"></span><span
|
||||||
|
class="cmtt-12">psb_root_</span><span
|
||||||
|
class="cmr-12">.</span> </td>
|
||||||
|
</tr><tr
|
||||||
|
style="vertical-align:baseline;" id="TBL-15-7-"><td style="white-space:normal; text-align:left;" id="TBL-15-7-1"
|
||||||
|
class="td11"><!--l. 801--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
|
class="cmtt-12">verbosity</span> </td><td style="white-space:normal; text-align:left;" id="TBL-15-7-2"
|
||||||
|
class="td11"><!--l. 801--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
|
class="cmtt-12">integer</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">in</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">optional</span><span
|
||||||
|
class="cmr-12">.</span> </td>
|
||||||
|
</tr><tr
|
||||||
|
style="vertical-align:baseline;" id="TBL-15-8-"><td style="white-space:normal; text-align:left;" id="TBL-15-8-1"
|
||||||
|
class="td11"><!--l. 802--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-8-2"
|
||||||
|
class="td11"><!--l. 802--><p class="noindent" ><span
|
||||||
|
class="cmr-12">The verbosity level of the description. Default value is 0. For</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">values higher than 0, it prints out further information, e.g., for</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">a distributed multilevel preconditioner the size of the coarse</span>
|
||||||
|
<span
|
||||||
|
class="cmr-12">matrices on every process.</span> </td>
|
||||||
|
</tr><tr
|
||||||
|
style="vertical-align:baseline;" id="TBL-15-9-"><td style="white-space:normal; text-align:left;" id="TBL-15-9-1"
|
||||||
|
class="td11"> </td> </tr></table></div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--l. 780--><div class="crosslinks"><p class="noindent"><span
|
<!--l. 809--><div class="crosslinks"><p class="noindent"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlsu15.html" ><span
|
href="userhtmlsu15.html" ><span
|
||||||
class="cmr-12">next</span></a><span
|
class="cmr-12">next</span></a><span
|
||||||
@@ -115,6 +191,6 @@ class="cmr-12">] [</span><a
|
|||||||
href="userhtmlse5.html#userhtmlsu14.html" ><span
|
href="userhtmlse5.html#userhtmlsu14.html" ><span
|
||||||
class="cmr-12">up</span></a><span
|
class="cmr-12">up</span></a><span
|
||||||
class="cmr-12">] </span></p></div>
|
class="cmr-12">] </span></p></div>
|
||||||
<!--l. 780--><p class="indent" > <a
|
<!--l. 809--><p class="indent" > <a
|
||||||
id="tailuserhtmlsu14.html"></a>
|
id="tailuserhtmlsu14.html"></a>
|
||||||
</body></html>
|
</body></html>
|
||||||
|
|||||||
+229
-132
@@ -10,7 +10,7 @@
|
|||||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||||
</head><body
|
</head><body
|
||||||
>
|
>
|
||||||
<!--l. 780--><div class="crosslinks"><p class="noindent"><span
|
<!--l. 809--><div class="crosslinks"><p class="noindent"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlsu14.html" ><span
|
href="userhtmlsu14.html" ><span
|
||||||
class="cmr-12">prev</span></a><span
|
class="cmr-12">prev</span></a><span
|
||||||
@@ -28,62 +28,99 @@ class="cmr-12">] </span></p></div>
|
|||||||
class="cmr-12">5.9 </span></span> <a
|
class="cmr-12">5.9 </span></span> <a
|
||||||
id="x24-230005.9"></a><span
|
id="x24-230005.9"></a><span
|
||||||
class="cmr-12">Auxiliary Methods</span></h4>
|
class="cmr-12">Auxiliary Methods</span></h4>
|
||||||
<!--l. 781--><p class="noindent" ><span
|
<!--l. 810--><p class="noindent" ><span
|
||||||
class="cmr-12">Various functionalities are implemented as additional methods of the preconditioner</span>
|
class="cmr-12">Various functionalities are implemented as additional methods of the preconditioner</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">object.</span>
|
class="cmr-12">object.</span>
|
||||||
<!--l. 784--><p class="noindent" >
|
<!--l. 813--><p class="noindent" >
|
||||||
<h5 class="subsubsectionHead"><span class="titlemark"><span
|
<h5 class="subsubsectionHead"><span class="titlemark"><span
|
||||||
class="cmr-12">5.9.1 </span></span> <a
|
class="cmr-12">5.9.1 </span></span> <a
|
||||||
id="x24-240005.9.1"></a><span
|
id="x24-240005.9.1"></a><span
|
||||||
class="cmr-12">Method: dump</span></h5>
|
class="cmr-12">Method: dump</span></h5>
|
||||||
<div class="center"
|
<div class="center"
|
||||||
>
|
>
|
||||||
<!--l. 786--><p class="noindent" >
|
<!--l. 815--><p class="noindent" >
|
||||||
<!--l. 787--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
<!--l. 816--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">call</span><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 />
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">p</span><span
|
||||||
|
class="cmtt-12">%</span><span
|
||||||
|
class="cmtt-12">dump</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">info</span><span
|
||||||
|
class="cmtt-12">[,</span><span
|
||||||
|
class="cmtt-12">istart</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">iend</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">prefix</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">head</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">ac</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">rp</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">smoother</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">solver</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">global_num</span><span
|
||||||
|
class="cmtt-12">])</span><br />
|
||||||
</div>
|
</div>
|
||||||
<!--l. 790--><p class="noindent" ><span
|
<!--l. 819--><p class="noindent" ><span
|
||||||
class="cmr-12">Dump on file.</span>
|
class="cmr-12">Dump on file.</span>
|
||||||
<!--l. 793--><p class="noindent" ><span
|
<!--l. 822--><p class="noindent" ><span
|
||||||
class="cmbx-12">Arguments</span>
|
class="cmbx-12">Arguments</span>
|
||||||
<div class="tabular"> <table id="TBL-17" class="tabular"
|
<div class="tabular"> <table id="TBL-16" class="tabular"
|
||||||
cellspacing="0" cellpadding="0"
|
cellspacing="0" cellpadding="0"
|
||||||
><colgroup id="TBL-17-1g"><col
|
><colgroup id="TBL-16-1g"><col
|
||||||
id="TBL-17-1"><col
|
id="TBL-16-1"><col
|
||||||
id="TBL-17-2"></colgroup><tr
|
id="TBL-16-2"></colgroup><tr
|
||||||
style="vertical-align:baseline;" id="TBL-17-1-"><td style="white-space:normal; text-align:left;" id="TBL-17-1-1"
|
style="vertical-align:baseline;" id="TBL-16-1-"><td style="white-space:normal; text-align:left;" id="TBL-16-1-1"
|
||||||
class="td11"><!--l. 796--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 825--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">info</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-17-1-2"
|
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-1-2"
|
||||||
class="td11"><!--l. 796--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 825--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">integer,</span><span
|
class="cmtt-12">integer</span><span
|
||||||
class="cmtt-12"> intent(out)</span></span></span><span
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">out</span><span
|
||||||
|
class="cmtt-12">)</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-17-2-"><td style="white-space:normal; text-align:left;" id="TBL-17-2-1"
|
style="vertical-align:baseline;" id="TBL-16-2-"><td style="white-space:normal; text-align:left;" id="TBL-16-2-1"
|
||||||
class="td11"><!--l. 797--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-2-2"
|
class="td11"><!--l. 826--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-2-2"
|
||||||
class="td11"><!--l. 797--><p class="noindent" ><span
|
class="td11"><!--l. 826--><p class="noindent" ><span
|
||||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="userhtmlse7.html#x26-300007"><span
|
href="userhtmlse7.html#x26-300007"><span
|
||||||
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
||||||
class="cmr-12">for details.</span> </td>
|
class="cmr-12">for details.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-17-3-"><td style="white-space:normal; text-align:left;" id="TBL-17-3-1"
|
style="vertical-align:baseline;" id="TBL-16-3-"><td style="white-space:normal; text-align:left;" id="TBL-16-3-1"
|
||||||
class="td11"><!--l. 798--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 827--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">amold</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-17-3-2"
|
class="cmtt-12">amold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-3-2"
|
||||||
class="td11"><!--l. 798--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 827--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">class(psb_</span></span></span><span
|
class="cmtt-12">class</span><span
|
||||||
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
|
class="cmtt-12">(</span><span
|
||||||
class="cmtt-12">_base_sparse_mat),</span><span
|
class="cmtt-12">psb_</span><span
|
||||||
class="cmtt-12"> intent(in),</span><span
|
class="cmti-12">x</span><span class="lstinline"></span><span
|
||||||
class="cmtt-12"> optional</span></span></span><span
|
class="cmtt-12">_base_sparse_mat</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">in</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">optional</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-17-4-"><td style="white-space:normal; text-align:left;" id="TBL-17-4-1"
|
style="vertical-align:baseline;" id="TBL-16-4-"><td style="white-space:normal; text-align:left;" id="TBL-16-4-1"
|
||||||
class="td11"><!--l. 799--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-4-2"
|
class="td11"><!--l. 828--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-4-2"
|
||||||
class="td11"><!--l. 799--><p class="noindent" ><span
|
class="td11"><!--l. 828--><p class="noindent" ><span
|
||||||
class="cmr-12">The desired dynamic type for internal matrix components; this</span>
|
class="cmr-12">The desired dynamic type for internal matrix components; this</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
|
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
|
||||||
@@ -91,93 +128,121 @@ class="cmr-12">allows e.g. running on GPUs; it needs not be the same
|
|||||||
class="cmr-12">processes. See the PSBLAS User’s Guide for details </span><span class="cite"><span
|
class="cmr-12">processes. See the PSBLAS User’s Guide for details </span><span class="cite"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||||
class="cmr-12">16</span></a><span
|
class="cmr-12">17</span></a><span
|
||||||
class="cmr-12">]</span></span><span
|
class="cmr-12">]</span></span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-17-5-"><td style="white-space:normal; text-align:left;" id="TBL-17-5-1"
|
style="vertical-align:baseline;" id="TBL-16-5-"><td style="white-space:normal; text-align:left;" id="TBL-16-5-1"
|
||||||
class="td11"> </td> </tr></table></div>
|
class="td11"> </td> </tr></table></div>
|
||||||
<!--l. 806--><p class="noindent" >
|
<!--l. 835--><p class="noindent" >
|
||||||
<h5 class="subsubsectionHead"><span class="titlemark"><span
|
<h5 class="subsubsectionHead"><span class="titlemark"><span
|
||||||
class="cmr-12">5.9.2 </span></span> <a
|
class="cmr-12">5.9.2 </span></span> <a
|
||||||
id="x24-250005.9.2"></a><span
|
id="x24-250005.9.2"></a><span
|
||||||
class="cmr-12">Method: clone</span></h5>
|
class="cmr-12">Method: clone</span></h5>
|
||||||
<div class="center"
|
<div class="center"
|
||||||
>
|
>
|
||||||
<!--l. 808--><p class="noindent" >
|
<!--l. 837--><p class="noindent" >
|
||||||
<!--l. 809--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
<!--l. 838--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">call</span><span
|
class="cmtt-12">call</span><span
|
||||||
class="cmtt-12"> p%clone(pout,info)</span></span></span><br />
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">p</span><span
|
||||||
|
class="cmtt-12">%</span><span
|
||||||
|
class="cmtt-12">clone</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">pout</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">info</span><span
|
||||||
|
class="cmtt-12">)</span><br />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--l. 812--><p class="noindent" ><span
|
<!--l. 841--><p class="noindent" ><span
|
||||||
class="cmr-12">Create a (deep) copy of the preconditioner object.</span>
|
class="cmr-12">Create a (deep) copy of the preconditioner object.</span>
|
||||||
<!--l. 815--><p class="noindent" ><span
|
<!--l. 844--><p class="noindent" ><span
|
||||||
class="cmbx-12">Arguments</span>
|
class="cmbx-12">Arguments</span>
|
||||||
<div class="tabular"> <table id="TBL-18" class="tabular"
|
<div class="tabular"> <table id="TBL-17" class="tabular"
|
||||||
cellspacing="0" cellpadding="0"
|
cellspacing="0" cellpadding="0"
|
||||||
><colgroup id="TBL-18-1g"><col
|
><colgroup id="TBL-17-1g"><col
|
||||||
id="TBL-18-1"><col
|
id="TBL-17-1"><col
|
||||||
id="TBL-18-2"></colgroup><tr
|
id="TBL-17-2"></colgroup><tr
|
||||||
style="vertical-align:baseline;" id="TBL-18-1-"><td style="white-space:normal; text-align:left;" id="TBL-18-1-1"
|
style="vertical-align:baseline;" id="TBL-17-1-"><td style="white-space:normal; text-align:left;" id="TBL-17-1-1"
|
||||||
class="td11"><!--l. 818--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 847--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">pout</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-18-1-2"
|
class="cmtt-12">pout</span> </td><td style="white-space:normal; text-align:left;" id="TBL-17-1-2"
|
||||||
class="td11"><!--l. 818--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 847--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">type(amg_</span></span></span><span
|
class="cmtt-12">type</span><span
|
||||||
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
|
class="cmtt-12">(</span><span
|
||||||
class="cmtt-12">prec_type),</span><span
|
class="cmtt-12">amg_</span><span
|
||||||
class="cmtt-12"> intent(out)</span></span></span><span
|
class="cmti-12">x</span><span class="lstinline"></span><span
|
||||||
|
class="cmtt-12">prec_type</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">out</span><span
|
||||||
|
class="cmtt-12">)</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-18-2-"><td style="white-space:normal; text-align:left;" id="TBL-18-2-1"
|
style="vertical-align:baseline;" id="TBL-17-2-"><td style="white-space:normal; text-align:left;" id="TBL-17-2-1"
|
||||||
class="td11"><!--l. 819--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-2-2"
|
class="td11"><!--l. 848--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-2-2"
|
||||||
class="td11"><!--l. 819--><p class="noindent" ><span
|
class="td11"><!--l. 848--><p class="noindent" ><span
|
||||||
class="cmr-12">The copy of the preconditioner data structure. Note that </span><span
|
class="cmr-12">The copy of the preconditioner data structure. Note that </span><span
|
||||||
class="cmti-12">x </span><span
|
class="cmti-12">x </span><span
|
||||||
class="cmr-12">must</span>
|
class="cmr-12">must</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">be chosen according to the real/complex, single/double precision</span>
|
class="cmr-12">be chosen according to the </span><span class="lstinline"></span><span
|
||||||
|
class="cmtt-12">real</span><span
|
||||||
|
class="cmr-12">/</span><span class="lstinline"></span><span
|
||||||
|
class="cmtt-12">complex</span><span
|
||||||
|
class="cmr-12">, single/double precision</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">version of AMG4PSBLAS under use.</span> </td>
|
class="cmr-12">version of AMG4PSBLAS under use.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-18-3-"><td style="white-space:normal; text-align:left;" id="TBL-18-3-1"
|
style="vertical-align:baseline;" id="TBL-17-3-"><td style="white-space:normal; text-align:left;" id="TBL-17-3-1"
|
||||||
class="td11"><!--l. 822--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 851--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">info</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-18-3-2"
|
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-17-3-2"
|
||||||
class="td11"><!--l. 822--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 851--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">integer,</span><span
|
class="cmtt-12">integer</span><span
|
||||||
class="cmtt-12"> intent(out)</span></span></span><span
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">out</span><span
|
||||||
|
class="cmtt-12">)</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-18-4-"><td style="white-space:normal; text-align:left;" id="TBL-18-4-1"
|
style="vertical-align:baseline;" id="TBL-17-4-"><td style="white-space:normal; text-align:left;" id="TBL-17-4-1"
|
||||||
class="td11"><!--l. 823--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-4-2"
|
class="td11"><!--l. 852--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-4-2"
|
||||||
class="td11"><!--l. 823--><p class="noindent" ><span
|
class="td11"><!--l. 852--><p class="noindent" ><span
|
||||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="userhtmlse7.html#x26-300007"><span
|
href="userhtmlse7.html#x26-300007"><span
|
||||||
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
||||||
class="cmr-12">for details.</span> </td>
|
class="cmr-12">for details.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-18-5-"><td style="white-space:normal; text-align:left;" id="TBL-18-5-1"
|
style="vertical-align:baseline;" id="TBL-17-5-"><td style="white-space:normal; text-align:left;" id="TBL-17-5-1"
|
||||||
class="td11"> </td> </tr></table></div>
|
class="td11"> </td> </tr></table></div>
|
||||||
<!--l. 828--><p class="noindent" >
|
<!--l. 857--><p class="noindent" >
|
||||||
<h5 class="subsubsectionHead"><span class="titlemark"><span
|
<h5 class="subsubsectionHead"><span class="titlemark"><span
|
||||||
class="cmr-12">5.9.3 </span></span> <a
|
class="cmr-12">5.9.3 </span></span> <a
|
||||||
id="x24-260005.9.3"></a><span
|
id="x24-260005.9.3"></a><span
|
||||||
class="cmr-12">Method: sizeof</span></h5>
|
class="cmr-12">Method: sizeof</span></h5>
|
||||||
<div class="center"
|
<div class="center"
|
||||||
>
|
>
|
||||||
<!--l. 830--><p class="noindent" >
|
<!--l. 859--><p class="noindent" >
|
||||||
<!--l. 831--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
<!--l. 860--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">sz</span><span
|
class="cmtt-12">sz</span><span
|
||||||
class="cmtt-12"> =</span><span
|
|
||||||
class="cmtt-12"> </span><span
|
class="cmtt-12"> </span><span
|
||||||
class="cmtt-12"> p%sizeof()</span></span></span><br />
|
class="cmtt-12">=</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">p</span><span
|
||||||
|
class="cmtt-12">%</span><span
|
||||||
|
class="cmtt-12">sizeof</span><span
|
||||||
|
class="cmtt-12">()</span><br />
|
||||||
</div>
|
</div>
|
||||||
<!--l. 834--><p class="noindent" ><span
|
<!--l. 863--><p class="noindent" ><span
|
||||||
class="cmr-12">Return memory footprint in bytes.</span>
|
class="cmr-12">Return memory footprint in bytes.</span>
|
||||||
<!--l. 837--><p class="noindent" >
|
<!--l. 866--><p class="noindent" >
|
||||||
<h5 class="subsubsectionHead"><span class="titlemark"><span
|
<h5 class="subsubsectionHead"><span class="titlemark"><span
|
||||||
class="cmr-12">5.9.4 </span></span> <a
|
class="cmr-12">5.9.4 </span></span> <a
|
||||||
id="x24-270005.9.4"></a><span
|
id="x24-270005.9.4"></a><span
|
||||||
@@ -185,13 +250,21 @@ class="cmr-12">Method: allocate</span><span
|
|||||||
class="cmr-12">_wrk</span></h5>
|
class="cmr-12">_wrk</span></h5>
|
||||||
<div class="center"
|
<div class="center"
|
||||||
>
|
>
|
||||||
<!--l. 839--><p class="noindent" >
|
<!--l. 868--><p class="noindent" >
|
||||||
<!--l. 840--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
<!--l. 869--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">call</span><span
|
class="cmtt-12">call</span><span
|
||||||
class="cmtt-12"> p%allocate_wrk(info[,</span><span
|
class="cmtt-12"> </span><span
|
||||||
class="cmtt-12"> vmold])</span></span></span><br />
|
class="cmtt-12">p</span><span
|
||||||
|
class="cmtt-12">%</span><span
|
||||||
|
class="cmtt-12">allocate_wrk</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">info</span><span
|
||||||
|
class="cmtt-12">[,</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">vmold</span><span
|
||||||
|
class="cmtt-12">])</span><br />
|
||||||
</div>
|
</div>
|
||||||
<!--l. 843--><p class="noindent" ><span
|
<!--l. 872--><p class="noindent" ><span
|
||||||
class="cmr-12">Allocate internal work vectors. Each application of the preconditioner uses a number of</span>
|
class="cmr-12">Allocate internal work vectors. Each application of the preconditioner uses a number of</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">work vectors which are allocated internally as necessary; therefore allocation and</span>
|
class="cmr-12">work vectors which are allocated internally as necessary; therefore allocation and</span>
|
||||||
@@ -206,8 +279,8 @@ class="cmr-12">lead to a slowdown. This method allows to trade space for time by
|
|||||||
<span
|
<span
|
||||||
class="cmr-12">the internal workspace outside of the invocation of a Krylov method. When</span>
|
class="cmr-12">the internal workspace outside of the invocation of a Krylov method. When</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">using GPUs or other specialized devices, the </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">using GPUs or other specialized devices, the </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">vmold</span></span></span> <span
|
class="cmtt-12">vmold</span> <span
|
||||||
class="cmr-12">argument is also necessary</span>
|
class="cmr-12">argument is also necessary</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">to ensure the internal work vectors are of the appropriate dynamic type to</span>
|
class="cmr-12">to ensure the internal work vectors are of the appropriate dynamic type to</span>
|
||||||
@@ -217,57 +290,70 @@ class="cmr-12">to ensure the internal work vectors are of the appropriate dynami
|
|||||||
<span
|
<span
|
||||||
class="cmr-12">exploit the accelerator hardware; when allocation occurs internally this is</span>
|
class="cmr-12">exploit the accelerator hardware; when allocation occurs internally this is</span>
|
||||||
<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="cmr-12">taken care of based on the dynamic type of the </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">x</span></span></span> <span
|
class="cmtt-12">x</span> <span
|
||||||
class="cmr-12">argument to the </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">argument to the </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">apply</span></span></span>
|
class="cmtt-12">apply</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">method.</span>
|
class="cmr-12">method.</span>
|
||||||
<!--l. 859--><p class="noindent" ><span
|
<!--l. 888--><p class="noindent" ><span
|
||||||
class="cmbx-12">Arguments</span>
|
class="cmbx-12">Arguments</span>
|
||||||
<div class="tabular"> <table id="TBL-19" class="tabular"
|
<div class="tabular"> <table id="TBL-18" class="tabular"
|
||||||
cellspacing="0" cellpadding="0"
|
cellspacing="0" cellpadding="0"
|
||||||
><colgroup id="TBL-19-1g"><col
|
><colgroup id="TBL-18-1g"><col
|
||||||
id="TBL-19-1"><col
|
id="TBL-18-1"><col
|
||||||
id="TBL-19-2"></colgroup><tr
|
id="TBL-18-2"></colgroup><tr
|
||||||
style="vertical-align:baseline;" id="TBL-19-1-"><td style="white-space:normal; text-align:left;" id="TBL-19-1-1"
|
style="vertical-align:baseline;" id="TBL-18-1-"><td style="white-space:normal; text-align:left;" id="TBL-18-1-1"
|
||||||
class="td11"><!--l. 862--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 891--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">info</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-19-1-2"
|
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-18-1-2"
|
||||||
class="td11"><!--l. 862--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 891--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">integer,</span><span
|
class="cmtt-12">integer</span><span
|
||||||
class="cmtt-12"> intent(out)</span></span></span><span
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">out</span><span
|
||||||
|
class="cmtt-12">)</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-19-2-"><td style="white-space:normal; text-align:left;" id="TBL-19-2-1"
|
style="vertical-align:baseline;" id="TBL-18-2-"><td style="white-space:normal; text-align:left;" id="TBL-18-2-1"
|
||||||
class="td11"><!--l. 863--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-2-2"
|
class="td11"><!--l. 892--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-2-2"
|
||||||
class="td11"><!--l. 863--><p class="noindent" ><span
|
class="td11"><!--l. 892--><p class="noindent" ><span
|
||||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="userhtmlse7.html#x26-300007"><span
|
href="userhtmlse7.html#x26-300007"><span
|
||||||
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
||||||
class="cmr-12">for details.</span> </td>
|
class="cmr-12">for details.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-19-3-"><td style="white-space:normal; text-align:left;" id="TBL-19-3-1"
|
style="vertical-align:baseline;" id="TBL-18-3-"><td style="white-space:normal; text-align:left;" id="TBL-18-3-1"
|
||||||
class="td11"><!--l. 864--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 893--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">vmold</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-19-3-2"
|
class="cmtt-12">vmold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-18-3-2"
|
||||||
class="td11"><!--l. 864--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 893--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">class(psb_</span></span></span><span
|
class="cmtt-12">class</span><span
|
||||||
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
|
class="cmtt-12">(</span><span
|
||||||
class="cmtt-12">_base_vect_type),</span><span
|
class="cmtt-12">psb_</span><span
|
||||||
class="cmtt-12"> intent(in),</span><span
|
class="cmti-12">x</span><span class="lstinline"></span><span
|
||||||
class="cmtt-12"> optional</span></span></span><span
|
class="cmtt-12">_base_vect_type</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">in</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">optional</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-19-4-"><td style="white-space:normal; text-align:left;" id="TBL-19-4-1"
|
style="vertical-align:baseline;" id="TBL-18-4-"><td style="white-space:normal; text-align:left;" id="TBL-18-4-1"
|
||||||
class="td11"><!--l. 865--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-4-2"
|
class="td11"><!--l. 894--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-4-2"
|
||||||
class="td11"><!--l. 865--><p class="noindent" ><span
|
class="td11"><!--l. 894--><p class="noindent" ><span
|
||||||
class="cmr-12">The desired dynamic type for internal vector components; this</span>
|
class="cmr-12">The desired dynamic type for internal vector components; this</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">allows e.g. running on GPUs.</span> </td>
|
class="cmr-12">allows e.g. running on GPUs.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-19-5-"><td style="white-space:normal; text-align:left;" id="TBL-19-5-1"
|
style="vertical-align:baseline;" id="TBL-18-5-"><td style="white-space:normal; text-align:left;" id="TBL-18-5-1"
|
||||||
class="td11"> </td> </tr></table></div>
|
class="td11"> </td> </tr></table></div>
|
||||||
<!--l. 871--><p class="noindent" >
|
<!--l. 900--><p class="noindent" >
|
||||||
<h5 class="subsubsectionHead"><span class="titlemark"><span
|
<h5 class="subsubsectionHead"><span class="titlemark"><span
|
||||||
class="cmr-12">5.9.5 </span></span> <a
|
class="cmr-12">5.9.5 </span></span> <a
|
||||||
id="x24-280005.9.5"></a><span
|
id="x24-280005.9.5"></a><span
|
||||||
@@ -275,38 +361,49 @@ class="cmr-12">Method: free</span><span
|
|||||||
class="cmr-12">_wrk</span></h5>
|
class="cmr-12">_wrk</span></h5>
|
||||||
<div class="center"
|
<div class="center"
|
||||||
>
|
>
|
||||||
<!--l. 873--><p class="noindent" >
|
<!--l. 902--><p class="noindent" >
|
||||||
<!--l. 874--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
<!--l. 903--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">call</span><span
|
class="cmtt-12">call</span><span
|
||||||
class="cmtt-12"> p%free_wrk(info)</span></span></span><br />
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">p</span><span
|
||||||
|
class="cmtt-12">%</span><span
|
||||||
|
class="cmtt-12">free_wrk</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">info</span><span
|
||||||
|
class="cmtt-12">)</span><br />
|
||||||
</div>
|
</div>
|
||||||
<!--l. 877--><p class="noindent" ><span
|
<!--l. 906--><p class="noindent" ><span
|
||||||
class="cmr-12">Deallocate internal work vectors.</span>
|
class="cmr-12">Deallocate internal work vectors.</span>
|
||||||
<!--l. 880--><p class="noindent" ><span
|
<!--l. 909--><p class="noindent" ><span
|
||||||
class="cmbx-12">Arguments</span>
|
class="cmbx-12">Arguments</span>
|
||||||
<div class="tabular"> <table id="TBL-20" class="tabular"
|
<div class="tabular"> <table id="TBL-19" class="tabular"
|
||||||
cellspacing="0" cellpadding="0"
|
cellspacing="0" cellpadding="0"
|
||||||
><colgroup id="TBL-20-1g"><col
|
><colgroup id="TBL-19-1g"><col
|
||||||
id="TBL-20-1"><col
|
id="TBL-19-1"><col
|
||||||
id="TBL-20-2"></colgroup><tr
|
id="TBL-19-2"></colgroup><tr
|
||||||
style="vertical-align:baseline;" id="TBL-20-1-"><td style="white-space:normal; text-align:left;" id="TBL-20-1-1"
|
style="vertical-align:baseline;" id="TBL-19-1-"><td style="white-space:normal; text-align:left;" id="TBL-19-1-1"
|
||||||
class="td11"><!--l. 883--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 912--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">info</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-20-1-2"
|
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-19-1-2"
|
||||||
class="td11"><!--l. 883--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 912--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">integer,</span><span
|
class="cmtt-12">integer</span><span
|
||||||
class="cmtt-12"> intent(out)</span></span></span><span
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">out</span><span
|
||||||
|
class="cmtt-12">)</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-20-2-"><td style="white-space:normal; text-align:left;" id="TBL-20-2-1"
|
style="vertical-align:baseline;" id="TBL-19-2-"><td style="white-space:normal; text-align:left;" id="TBL-19-2-1"
|
||||||
class="td11"><!--l. 884--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-20-2-2"
|
class="td11"><!--l. 913--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-2-2"
|
||||||
class="td11"><!--l. 884--><p class="noindent" ><span
|
class="td11"><!--l. 913--><p class="noindent" ><span
|
||||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="userhtmlse7.html#x26-300007"><span
|
href="userhtmlse7.html#x26-300007"><span
|
||||||
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
||||||
class="cmr-12">for details.</span> </td>
|
class="cmr-12">for details.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-20-3-"><td style="white-space:normal; text-align:left;" id="TBL-20-3-1"
|
style="vertical-align:baseline;" id="TBL-19-3-"><td style="white-space:normal; text-align:left;" id="TBL-19-3-1"
|
||||||
class="td11"> </td> </tr></table></div>
|
class="td11"> </td> </tr></table></div>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||||
</head><body
|
</head><body
|
||||||
>
|
>
|
||||||
<!--l. 62--><div class="crosslinks"><p class="noindent"><span
|
<!--l. 72--><div class="crosslinks"><p class="noindent"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlsu3.html" ><span
|
href="userhtmlsu3.html" ><span
|
||||||
class="cmr-12">next</span></a><span
|
class="cmr-12">next</span></a><span
|
||||||
@@ -31,20 +31,20 @@ class="cmr-12">] </span></p></div>
|
|||||||
class="cmr-12">3.2 </span></span> <a
|
class="cmr-12">3.2 </span></span> <a
|
||||||
id="x9-80003.2"></a><span
|
id="x9-80003.2"></a><span
|
||||||
class="cmr-12">Optional third party libraries</span></h4>
|
class="cmr-12">Optional third party libraries</span></h4>
|
||||||
<!--l. 64--><p class="noindent" ><span
|
<!--l. 74--><p class="noindent" ><span
|
||||||
class="cmr-12">We provide interfaces to the following third-party software libraries; note that these are</span>
|
class="cmr-12">We provide interfaces to the following third-party software libraries; note that these are</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">optional, but if you enable them some defaults for multilevel preconditioners may</span>
|
class="cmr-12">optional, but if you enable them some defaults for multilevel preconditioners may</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">change to reflect their presence.</span>
|
class="cmr-12">change to reflect their presence.</span>
|
||||||
<!--l. 68--><p class="indent" >
|
<!--l. 78--><p class="indent" >
|
||||||
<dl class="description"><dt class="description">
|
<dl class="description"><dt class="description">
|
||||||
<span
|
<span
|
||||||
class="cmbx-12">UMFPACK</span> </dt><dd
|
class="cmbx-12">UMFPACK</span> </dt><dd
|
||||||
class="description"><span class="cite"><span
|
class="description"><span class="cite"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlli4.html#XUMFPACK"><span
|
href="userhtmlli4.html#XUMFPACK"><span
|
||||||
class="cmr-12">12</span></a><span
|
class="cmr-12">13</span></a><span
|
||||||
class="cmr-12">]</span></span> <span
|
class="cmr-12">]</span></span> <span
|
||||||
class="cmr-12">A sparse LU factorization package included in the SuiteSparse</span>
|
class="cmr-12">A sparse LU factorization package included in the SuiteSparse</span>
|
||||||
<span
|
<span
|
||||||
@@ -86,7 +86,7 @@ class="cmbx-12">SuperLU</span> </dt><dd
|
|||||||
class="description"><span class="cite"><span
|
class="description"><span class="cite"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlli4.html#XSUPERLU"><span
|
href="userhtmlli4.html#XSUPERLU"><span
|
||||||
class="cmr-12">13</span></a><span
|
class="cmr-12">14</span></a><span
|
||||||
class="cmr-12">]</span></span> <span
|
class="cmr-12">]</span></span> <span
|
||||||
class="cmr-12">A sparse LU factorization package available from</span>
|
class="cmr-12">A sparse LU factorization package available from</span>
|
||||||
<a
|
<a
|
||||||
@@ -108,7 +108,7 @@ class="cmbx-12">_Dist</span> </dt><dd
|
|||||||
class="description"><span class="cite"><span
|
class="description"><span class="cite"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlli4.html#XSUPERLUDIST"><span
|
href="userhtmlli4.html#XSUPERLUDIST"><span
|
||||||
class="cmr-12">22</span></a><span
|
class="cmr-12">23</span></a><span
|
||||||
class="cmr-12">]</span></span> <span
|
class="cmr-12">]</span></span> <span
|
||||||
class="cmr-12">A sparse LU factorization package available from the same</span>
|
class="cmr-12">A sparse LU factorization package available from the same</span>
|
||||||
<span
|
<span
|
||||||
@@ -133,7 +133,7 @@ class="cmr-12">.</span></dd></dl>
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--l. 99--><div class="crosslinks"><p class="noindent"><span
|
<!--l. 109--><div class="crosslinks"><p class="noindent"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlsu3.html" ><span
|
href="userhtmlsu3.html" ><span
|
||||||
class="cmr-12">next</span></a><span
|
class="cmr-12">next</span></a><span
|
||||||
@@ -150,6 +150,6 @@ class="cmr-12">] [</span><a
|
|||||||
href="userhtmlse3.html#userhtmlsu2.html" ><span
|
href="userhtmlse3.html#userhtmlsu2.html" ><span
|
||||||
class="cmr-12">up</span></a><span
|
class="cmr-12">up</span></a><span
|
||||||
class="cmr-12">] </span></p></div>
|
class="cmr-12">] </span></p></div>
|
||||||
<!--l. 99--><p class="indent" > <a
|
<!--l. 109--><p class="indent" > <a
|
||||||
id="tailuserhtmlsu2.html"></a>
|
id="tailuserhtmlsu2.html"></a>
|
||||||
</body></html>
|
</body></html>
|
||||||
|
|||||||
+14
-14
@@ -10,7 +10,7 @@
|
|||||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||||
</head><body
|
</head><body
|
||||||
>
|
>
|
||||||
<!--l. 99--><div class="crosslinks"><p class="noindent"><span
|
<!--l. 109--><div class="crosslinks"><p class="noindent"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlsu4.html" ><span
|
href="userhtmlsu4.html" ><span
|
||||||
class="cmr-12">next</span></a><span
|
class="cmr-12">next</span></a><span
|
||||||
@@ -31,15 +31,15 @@ class="cmr-12">] </span></p></div>
|
|||||||
class="cmr-12">3.3 </span></span> <a
|
class="cmr-12">3.3 </span></span> <a
|
||||||
id="x10-90003.3"></a><span
|
id="x10-90003.3"></a><span
|
||||||
class="cmr-12">Configuration options</span></h4>
|
class="cmr-12">Configuration options</span></h4>
|
||||||
<!--l. 101--><p class="noindent" ><span
|
<!--l. 111--><p class="noindent" ><span
|
||||||
class="cmr-12">In order to build AMG4PSBLAS, the first step is to use the </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">In order to build AMG4PSBLAS, 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="cmtt-12">configure</span></span></span> <span
|
||||||
class="cmr-12">script in the</span>
|
class="cmr-12">script in the</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">main directory to generate the necessary makefile.</span>
|
class="cmr-12">main directory to generate the necessary makefile.</span>
|
||||||
<!--l. 106--><p class="indent" > <span
|
<!--l. 116--><p class="indent" > <span
|
||||||
class="cmbx-12">DA RISCRIVERE</span>
|
class="cmbx-12">DA RISCRIVERE</span>
|
||||||
<!--l. 108--><p class="indent" > <span
|
<!--l. 118--><p class="indent" > <span
|
||||||
class="cmr-12">As a minimal example consider the following:</span>
|
class="cmr-12">As a minimal example consider the following:</span>
|
||||||
|
|
||||||
|
|
||||||
@@ -47,7 +47,7 @@ class="cmr-12">As a minimal example consider the following:</span>
|
|||||||
<pre class="verbatim" id="verbatim-1">
|
<pre class="verbatim" id="verbatim-1">
|
||||||
./configure --with-psblas=PSB-INSTALL-DIR
|
./configure --with-psblas=PSB-INSTALL-DIR
|
||||||
</pre>
|
</pre>
|
||||||
<!--l. 111--><p class="nopar" > <span
|
<!--l. 126--><p class="nopar" > <span
|
||||||
class="cmr-12">which assumes that the various MPI compilers and support libraries are available in</span>
|
class="cmr-12">which assumes that the various MPI compilers and support libraries are available in</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">the standard directories on the system, and specifies only the PSBLAS install directory</span>
|
class="cmr-12">the standard directories on the system, and specifies only the PSBLAS install directory</span>
|
||||||
@@ -61,7 +61,7 @@ class="cmtt-12">./configure</span><span
|
|||||||
class="cmtt-12"> --help</span></span></span><span
|
class="cmtt-12"> --help</span></span></span><span
|
||||||
class="cmr-12">, which</span>
|
class="cmr-12">, which</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">produces: </span><!--l. 121--><div class="lstinputlisting">
|
class="cmr-12">produces: </span><!--l. 137--><div class="lstinputlisting">
|
||||||
<a
|
<a
|
||||||
id="x10-9001"></a>
|
id="x10-9001"></a>
|
||||||
<span
|
<span
|
||||||
@@ -4238,7 +4238,7 @@ class="cmtt-12">issues</span><span
|
|||||||
class="cmtt-12">>.</span>
|
class="cmtt-12">>.</span>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<!--l. 123--><p class="noindent" ><span
|
<!--l. 139--><p class="noindent" ><span
|
||||||
class="cmr-12">For instance, if a user has built and installed PSBLAS 3.7 under the </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">For instance, if a user has built and installed PSBLAS 3.7 under the </span><span class="obeylines-h"><span class="verb"><span
|
||||||
class="cmtt-12">/opt</span></span></span> <span
|
class="cmtt-12">/opt</span></span></span> <span
|
||||||
class="cmr-12">directory and is</span>
|
class="cmr-12">directory and is</span>
|
||||||
@@ -4253,7 +4253,7 @@ class="cmr-12">might be configured with:</span>
|
|||||||
./configure --with-psblas=/opt/psblas-3.5/ \
|
./configure --with-psblas=/opt/psblas-3.5/ \
|
||||||
--with-umfpackincdir=/usr/include/suitesparse/
|
--with-umfpackincdir=/usr/include/suitesparse/
|
||||||
</pre>
|
</pre>
|
||||||
<!--l. 135--><p class="nopar" > <span
|
<!--l. 151--><p class="nopar" > <span
|
||||||
class="cmr-12">Once the configure script has completed execution, it will have generated the file</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
|
<span class="obeylines-h"><span class="verb"><span
|
||||||
class="cmtt-12">Make.inc</span></span></span> <span
|
class="cmtt-12">Make.inc</span></span></span> <span
|
||||||
@@ -4262,7 +4262,7 @@ class="cmr-12">which will then be used by all Makefiles in the directory tree; t
|
|||||||
class="cmr-12">copied in the install directory under the name </span><span class="obeylines-h"><span class="verb"><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.AMG4PSBLAS</span></span></span><span
|
class="cmtt-12">Make.inc.AMG4PSBLAS</span></span></span><span
|
||||||
class="cmr-12">.</span>
|
class="cmr-12">.</span>
|
||||||
<!--l. 142--><p class="indent" > <span
|
<!--l. 158--><p class="indent" > <span
|
||||||
class="cmr-12">To use the MUMPS solver package, the user has to add the appropriate options to</span>
|
class="cmr-12">To use the MUMPS solver package, the user has to add the appropriate options to</span>
|
||||||
<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="cmr-12">the configure script; by default we are looking for the libraries </span><span class="obeylines-h"><span class="verb"><span
|
||||||
@@ -4282,7 +4282,7 @@ class="cmtt-12">--with-extra-libs</span></span></span> <span
|
|||||||
class="cmr-12">configure</span>
|
class="cmr-12">configure</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">option.</span>
|
class="cmr-12">option.</span>
|
||||||
<!--l. 150--><p class="indent" > <span
|
<!--l. 166--><p class="indent" > <span
|
||||||
class="cmr-12">To build the library the user will now enter</span>
|
class="cmr-12">To build the library the user will now enter</span>
|
||||||
|
|
||||||
|
|
||||||
@@ -4290,7 +4290,7 @@ class="cmr-12">To build the library the user will now enter</span>
|
|||||||
<pre class="verbatim" id="verbatim-3">
|
<pre class="verbatim" id="verbatim-3">
|
||||||
make
|
make
|
||||||
</pre>
|
</pre>
|
||||||
<!--l. 158--><p class="nopar" > <span
|
<!--l. 174--><p class="nopar" > <span
|
||||||
class="cmr-12">followed (optionally) by</span>
|
class="cmr-12">followed (optionally) by</span>
|
||||||
|
|
||||||
|
|
||||||
@@ -4298,11 +4298,11 @@ class="cmr-12">followed (optionally) by</span>
|
|||||||
<pre class="verbatim" id="verbatim-4">
|
<pre class="verbatim" id="verbatim-4">
|
||||||
make install
|
make install
|
||||||
</pre>
|
</pre>
|
||||||
<!--l. 168--><p class="nopar" >
|
<!--l. 184--><p class="nopar" >
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--l. 170--><div class="crosslinks"><p class="noindent"><span
|
<!--l. 186--><div class="crosslinks"><p class="noindent"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlsu4.html" ><span
|
href="userhtmlsu4.html" ><span
|
||||||
class="cmr-12">next</span></a><span
|
class="cmr-12">next</span></a><span
|
||||||
@@ -4319,6 +4319,6 @@ class="cmr-12">] [</span><a
|
|||||||
href="userhtmlse3.html#userhtmlsu3.html" ><span
|
href="userhtmlse3.html#userhtmlsu3.html" ><span
|
||||||
class="cmr-12">up</span></a><span
|
class="cmr-12">up</span></a><span
|
||||||
class="cmr-12">] </span></p></div>
|
class="cmr-12">] </span></p></div>
|
||||||
<!--l. 170--><p class="indent" > <a
|
<!--l. 186--><p class="indent" > <a
|
||||||
id="tailuserhtmlsu3.html"></a>
|
id="tailuserhtmlsu3.html"></a>
|
||||||
</body></html>
|
</body></html>
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||||
</head><body
|
</head><body
|
||||||
>
|
>
|
||||||
<!--l. 170--><div class="crosslinks"><p class="noindent"><span
|
<!--l. 186--><div class="crosslinks"><p class="noindent"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlsu5.html" ><span
|
href="userhtmlsu5.html" ><span
|
||||||
class="cmr-12">next</span></a><span
|
class="cmr-12">next</span></a><span
|
||||||
@@ -31,7 +31,7 @@ class="cmr-12">] </span></p></div>
|
|||||||
class="cmr-12">3.4 </span></span> <a
|
class="cmr-12">3.4 </span></span> <a
|
||||||
id="x11-100003.4"></a><span
|
id="x11-100003.4"></a><span
|
||||||
class="cmr-12">Bug reporting</span></h4>
|
class="cmr-12">Bug reporting</span></h4>
|
||||||
<!--l. 171--><p class="noindent" ><span
|
<!--l. 187--><p class="noindent" ><span
|
||||||
class="cmr-12">If you find any bugs in our codes, please report them through our issues page</span>
|
class="cmr-12">If you find any bugs in our codes, please report them through our issues page</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">on</span><br
|
class="cmr-12">on</span><br
|
||||||
@@ -39,7 +39,7 @@ class="newline" /> <a
|
|||||||
href="https://github.com/psctoolkit/amg4psblas/issues" class="url" ><span
|
href="https://github.com/psctoolkit/amg4psblas/issues" class="url" ><span
|
||||||
class="cmtt-12">https://github.com/psctoolkit/amg4psblas/issues</span></a><br
|
class="cmtt-12">https://github.com/psctoolkit/amg4psblas/issues</span></a><br
|
||||||
class="newline" />
|
class="newline" />
|
||||||
<!--l. 175--><p class="indent" > <span
|
<!--l. 191--><p class="indent" > <span
|
||||||
class="cmr-12">To enable us to track the bug, please provide a log from the failing application, the</span>
|
class="cmr-12">To enable us to track the bug, please provide a log from the failing application, the</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">test conditions, and ideally a self-contained test program reproducing the</span>
|
class="cmr-12">test conditions, and ideally a self-contained test program reproducing the</span>
|
||||||
@@ -48,7 +48,7 @@ class="cmr-12">issue.</span>
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--l. 179--><div class="crosslinks"><p class="noindent"><span
|
<!--l. 195--><div class="crosslinks"><p class="noindent"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlsu5.html" ><span
|
href="userhtmlsu5.html" ><span
|
||||||
class="cmr-12">next</span></a><span
|
class="cmr-12">next</span></a><span
|
||||||
@@ -65,6 +65,6 @@ class="cmr-12">] [</span><a
|
|||||||
href="userhtmlse3.html#userhtmlsu4.html" ><span
|
href="userhtmlse3.html#userhtmlsu4.html" ><span
|
||||||
class="cmr-12">up</span></a><span
|
class="cmr-12">up</span></a><span
|
||||||
class="cmr-12">] </span></p></div>
|
class="cmr-12">] </span></p></div>
|
||||||
<!--l. 179--><p class="indent" > <a
|
<!--l. 195--><p class="indent" > <a
|
||||||
id="tailuserhtmlsu4.html"></a>
|
id="tailuserhtmlsu4.html"></a>
|
||||||
</body></html>
|
</body></html>
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||||
</head><body
|
</head><body
|
||||||
>
|
>
|
||||||
<!--l. 179--><div class="crosslinks"><p class="noindent"><span
|
<!--l. 195--><div class="crosslinks"><p class="noindent"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlsu4.html" ><span
|
href="userhtmlsu4.html" ><span
|
||||||
class="cmr-12">prev</span></a><span
|
class="cmr-12">prev</span></a><span
|
||||||
@@ -28,7 +28,7 @@ class="cmr-12">] </span></p></div>
|
|||||||
class="cmr-12">3.5 </span></span> <a
|
class="cmr-12">3.5 </span></span> <a
|
||||||
id="x12-110003.5"></a><span
|
id="x12-110003.5"></a><span
|
||||||
class="cmr-12">Example and test programs</span></h4>
|
class="cmr-12">Example and test programs</span></h4>
|
||||||
<!--l. 180--><p class="noindent" ><span
|
<!--l. 196--><p class="noindent" ><span
|
||||||
class="cmr-12">The package contains the </span><span class="obeylines-h"><span class="verb"><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="cmtt-12">examples</span></span></span> <span
|
||||||
class="cmr-12">and </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">and </span><span class="obeylines-h"><span class="verb"><span
|
||||||
@@ -48,11 +48,9 @@ class="cmtt-12">examples</span> </dt><dd
|
|||||||
class="description"><span
|
class="description"><span
|
||||||
class="cmr-12">contains a set of simple example programs with a predefined choice</span>
|
class="cmr-12">contains a set of simple example programs with a predefined choice</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">of preconditioners, selectable via integer values. These are intended to</span>
|
class="cmr-12">of preconditioners, selectable via integer values. These are intended to get</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">get an acquaintance with the multilevel preconditioners available in</span>
|
class="cmr-12">acquainted with the multilevel preconditioners available in AMG4PSBLAS.</span>
|
||||||
<span
|
|
||||||
class="cmr-12">AMG4PSBLAS.</span>
|
|
||||||
</dd><dt class="description">
|
</dd><dt class="description">
|
||||||
<span
|
<span
|
||||||
class="cmtt-12">tests</span> </dt><dd
|
class="cmtt-12">tests</span> </dt><dd
|
||||||
@@ -64,7 +62,7 @@ class="cmtt-12">runs</span></span></span> <span
|
|||||||
class="cmr-12">subdirectories, to experiment with the full range</span>
|
class="cmr-12">subdirectories, to experiment with the full range</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">of preconditioners implemented in the package.</span></dd></dl>
|
class="cmr-12">of preconditioners implemented in the package.</span></dd></dl>
|
||||||
<!--l. 193--><p class="noindent" ><span
|
<!--l. 209--><p class="noindent" ><span
|
||||||
class="cmr-12">The </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">The </span><span class="obeylines-h"><span class="verb"><span
|
||||||
class="cmtt-12">fileread</span></span></span> <span
|
class="cmtt-12">fileread</span></span></span> <span
|
||||||
class="cmr-12">directories contain sample programs that read sparse matrices from files,</span>
|
class="cmr-12">directories contain sample programs that read sparse matrices from files,</span>
|
||||||
|
|||||||
+76
-74
@@ -25,7 +25,7 @@ class="cmr-12">Examples</span></h4>
|
|||||||
<!--l. 109--><p class="noindent" ><span
|
<!--l. 109--><p class="noindent" ><span
|
||||||
class="cmr-12">The code reported in Figure</span><span
|
class="cmr-12">The code reported in Figure</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="#x14-130011"><span
|
href="#x14-13001r1"><span
|
||||||
class="cmr-12">1</span><!--tex4ht:ref: fig:ex1 --></a> <span
|
class="cmr-12">1</span><!--tex4ht:ref: fig:ex1 --></a> <span
|
||||||
class="cmr-12">shows how to set and apply the default multilevel</span>
|
class="cmr-12">shows how to set and apply the default multilevel</span>
|
||||||
<span
|
<span
|
||||||
@@ -33,27 +33,33 @@ class="cmr-12">preconditioner available in the real double precision version of
|
|||||||
<span
|
<span
|
||||||
class="cmr-12">(see Table</span><span
|
class="cmr-12">(see Table</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="userhtmlse4.html#x13-120151"><span
|
href="userhtmlse4.html#x13-12015r1"><span
|
||||||
class="cmr-12">1</span><!--tex4ht:ref: tab:precinit --></a><span
|
class="cmr-12">1</span><!--tex4ht:ref: tab:precinit --></a><span
|
||||||
class="cmr-12">). This preconditioner is chosen by simply specifying </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">). This preconditioner is chosen by simply specifying </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">’ML’</span></span></span> <span
|
class="cmtt-12">’</span><span
|
||||||
|
class="cmtt-12">ML</span><span
|
||||||
|
class="cmtt-12">’</span> <span
|
||||||
class="cmr-12">as the</span>
|
class="cmr-12">as the</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">second argument of </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">second argument of </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">P%init</span></span></span> <span
|
class="cmtt-12">P</span><span
|
||||||
class="cmr-12">(a call to </span><span class="obeylines-h"><span class="verb"><span
|
class="cmtt-12">%</span><span
|
||||||
class="cmtt-12">P%set</span></span></span> <span
|
class="cmtt-12">init</span> <span
|
||||||
|
class="cmr-12">(a call to </span><span class="lstinline"></span><span
|
||||||
|
class="cmtt-12">P</span><span
|
||||||
|
class="cmtt-12">%</span><span
|
||||||
|
class="cmtt-12">set</span> <span
|
||||||
class="cmr-12">is not needed) and is applied</span>
|
class="cmr-12">is not needed) and is applied</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">with the CG solver provided by PSBLAS (the matrix of the system to be</span>
|
class="cmr-12">with the CG solver provided by PSBLAS (the matrix of the system to be</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">solved is assumed to be positive definite). As previously observed, the modules</span>
|
class="cmr-12">solved is assumed to be positive definite). As previously observed, the modules</span>
|
||||||
<span class="obeylines-h"><span class="verb"><span
|
<span class="lstinline"></span><span
|
||||||
class="cmtt-12">psb_base_mod</span></span></span><span
|
class="cmtt-12">psb_base_mod</span><span
|
||||||
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">, </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">amg_prec_mod</span></span></span> <span
|
class="cmtt-12">amg_prec_mod</span> <span
|
||||||
class="cmr-12">and </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">and </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">psb_krylov_mod</span></span></span> <span
|
class="cmtt-12">psb_krylov_mod</span> <span
|
||||||
class="cmr-12">must be used by the example</span>
|
class="cmr-12">must be used by the example</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">program.</span>
|
class="cmr-12">program.</span>
|
||||||
@@ -87,7 +93,7 @@ class="cmr-12">PSBLAS User’s Guide</span><span
|
|||||||
class="cmr-12"> </span><span class="cite"><span
|
class="cmr-12"> </span><span class="cite"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||||
class="cmr-12">16</span></a><span
|
class="cmr-12">17</span></a><span
|
||||||
class="cmr-12">]</span></span><span
|
class="cmr-12">]</span></span><span
|
||||||
class="cmr-12">.</span>
|
class="cmr-12">.</span>
|
||||||
<!--l. 131--><p class="indent" > <span
|
<!--l. 131--><p class="indent" > <span
|
||||||
@@ -108,13 +114,12 @@ class="cmr-12">details). If these versions are installed, the corresponding code
|
|||||||
<span class="obeylines-h"><span class="verb"><span
|
<span class="obeylines-h"><span class="verb"><span
|
||||||
class="cmtt-12">examples/fileread/</span></span></span><span
|
class="cmtt-12">examples/fileread/</span></span></span><span
|
||||||
class="cmr-12">.</span>
|
class="cmr-12">.</span>
|
||||||
<!--l. 137--><p class="indent" > <hr class="figure"><div class="figure"
|
|
||||||
>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a
|
<!--l. 137--><p class="indent" > <a
|
||||||
id="x14-130011"></a>
|
id="x14-13001r1"></a><hr class="float"><div class="float"
|
||||||
|
>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -141,8 +146,8 @@ class="cmr-12">.</span>
|
|||||||
... ...
|
... ...
|
||||||
!
|
!
|
||||||
! initialize the parallel environment
|
! initialize the parallel environment
|
||||||
  call psb_init(ictxt)
|
  call psb_init(ctxt)
|
||||||
  call psb_info(ictxt,iam,np)
|
  call psb_info(ctxt,iam,np)
|
||||||
... ...
|
... ...
|
||||||
!
|
!
|
||||||
! read and assemble the spd matrix A and the right-hand side b
|
! read and assemble the spd matrix A and the right-hand side b
|
||||||
@@ -173,27 +178,28 @@ class="cmr-12">.</span>
|
|||||||
  ... ...
|
  ... ...
|
||||||
!
|
!
|
||||||
! exit the parallel environment
|
! exit the parallel environment
|
||||||
  call psb_exit(ictxt)
|
  call psb_exit(ctxt)
|
||||||
  stop
|
  stop
|
||||||
</pre>
|
</pre>
|
||||||
<!--l. 193--><p class="nopar" >
|
<!--l. 248--><p class="nopar" >
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<br /> <div class="caption"
|
<br /> <div class="caption"
|
||||||
><span class="id">Figure 1: </span><span
|
><span class="id">Listing 1: </span><span
|
||||||
class="content">setup and application of the default multilevel preconditioner (example 1). </span></div><!--tex4ht:label?: x14-130011 -->
|
class="content">setup and application of the default multilevel preconditioner (example 1).
|
||||||
|
</span></div><!--tex4ht:label?: x14-13001r1 -->
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--l. 199--><p class="indent" > </div><hr class="endfigure">
|
</div><hr class="endfloat" />
|
||||||
<!--l. 201--><p class="indent" > <span
|
<!--l. 257--><p class="indent" > <span
|
||||||
class="cmr-12">Different versions of the multilevel preconditioner can be obtained by changing the</span>
|
class="cmr-12">Different versions of the multilevel preconditioner can be obtained by changing the</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">default values of the preconditioner parameters. The code reported in Figure</span><span
|
class="cmr-12">default values of the preconditioner parameters. The code reported in Figure</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="#x14-130022"><span
|
href="#x14-13002r2"><span
|
||||||
class="cmr-12">2</span><!--tex4ht:ref: fig:ex2 --></a> <span
|
class="cmr-12">2</span><!--tex4ht:ref: fig:ex2 --></a> <span
|
||||||
class="cmr-12">shows</span>
|
class="cmr-12">shows</span>
|
||||||
<span
|
<span
|
||||||
@@ -206,15 +212,17 @@ class="cmr-12">that the ILU(0) factorization (plus triangular solve) is used as
|
|||||||
class="cmr-12">block-Jacobi sweeps, since this is the default associated with block-Jacobi</span>
|
class="cmr-12">block-Jacobi sweeps, since this is the default associated with block-Jacobi</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">and set by</span><span
|
class="cmr-12">and set by</span><span
|
||||||
class="cmr-12"> </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12"> </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">P%init</span></span></span><span
|
class="cmtt-12">P</span><span
|
||||||
|
class="cmtt-12">%</span><span
|
||||||
|
class="cmtt-12">init</span><span
|
||||||
class="cmr-12">. Furthermore, specifying block-Jacobi as coarsest-level</span>
|
class="cmr-12">. Furthermore, specifying block-Jacobi as coarsest-level</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">solver implies that the coarsest-level matrix is distributed among the processes.</span>
|
class="cmr-12">solver implies that the coarsest-level matrix is distributed among the processes.</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">Figure</span><span
|
class="cmr-12">Figure</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="#x14-130033"><span
|
href="#x14-13003r3"><span
|
||||||
class="cmr-12">3</span><!--tex4ht:ref: fig:ex3 --></a> <span
|
class="cmr-12">3</span><!--tex4ht:ref: fig:ex3 --></a> <span
|
||||||
class="cmr-12">shows how to set a W-cycle preconditioner using the Coarsening</span>
|
class="cmr-12">shows how to set a W-cycle preconditioner using the Coarsening</span>
|
||||||
<span
|
<span
|
||||||
@@ -230,10 +238,10 @@ class="cmr-12">distributed matrices, and by default it is used on replicated one
|
|||||||
<span
|
<span
|
||||||
class="cmr-12">fragments shown in Figures</span><span
|
class="cmr-12">fragments shown in Figures</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="#x14-130022"><span
|
href="#x14-13002r2"><span
|
||||||
class="cmr-12">2</span><!--tex4ht:ref: fig:ex2 --></a> <span
|
class="cmr-12">2</span><!--tex4ht:ref: fig:ex2 --></a> <span
|
||||||
class="cmr-12">and </span><a
|
class="cmr-12">and </span><a
|
||||||
href="#x14-130033"><span
|
href="#x14-13003r3"><span
|
||||||
class="cmr-12">3</span><!--tex4ht:ref: fig:ex3 --></a> <span
|
class="cmr-12">3</span><!--tex4ht:ref: fig:ex3 --></a> <span
|
||||||
class="cmr-12">are included in the example program file</span>
|
class="cmr-12">are included in the example program file</span>
|
||||||
<span class="obeylines-h"><span class="verb"><span
|
<span class="obeylines-h"><span class="verb"><span
|
||||||
@@ -242,10 +250,10 @@ class="cmr-12">too. </span><span
|
|||||||
class="cmbx-12">DA CORREGGERE NEL CODICE ESEMPIO</span>
|
class="cmbx-12">DA CORREGGERE NEL CODICE ESEMPIO</span>
|
||||||
<span
|
<span
|
||||||
class="cmbx-12">3</span>
|
class="cmbx-12">3</span>
|
||||||
<!--l. 225--><p class="indent" > <span
|
<!--l. 281--><p class="indent" > <span
|
||||||
class="cmr-12">Finally, Figure</span><span
|
class="cmr-12">Finally, Figure</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="#x14-130044"><span
|
href="#x14-13004r4"><span
|
||||||
class="cmr-12">4</span><!--tex4ht:ref: fig:ex4 --></a> <span
|
class="cmr-12">4</span><!--tex4ht:ref: fig:ex4 --></a> <span
|
||||||
class="cmr-12">shows the setup of a one-level additive Schwarz preconditioner,</span>
|
class="cmr-12">shows the setup of a one-level additive Schwarz preconditioner,</span>
|
||||||
<span
|
<span
|
||||||
@@ -257,62 +265,59 @@ class="cmr-12">nonsymmetric. The corresponding example program is available in t
|
|||||||
<span class="obeylines-h"><span class="verb"><span
|
<span class="obeylines-h"><span class="verb"><span
|
||||||
class="cmtt-12">amg_dexample_1lev.f90</span></span></span><span
|
class="cmtt-12">amg_dexample_1lev.f90</span></span></span><span
|
||||||
class="cmr-12">.</span>
|
class="cmr-12">.</span>
|
||||||
<!--l. 232--><p class="indent" > <span
|
<!--l. 288--><p class="indent" > <span
|
||||||
class="cmr-12">For all the previous preconditioners, example programs where the sparse matrix and</span>
|
class="cmr-12">For all the previous preconditioners, example programs where the sparse matrix</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">the right-hand side are generated by discretizing a PDE with Dirichlet boundary</span>
|
class="cmr-12">and the right-hand side are generated by discretizing a PDE with Dirichlet</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">conditions are also available in the directory </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">boundary 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="cmtt-12">examples/pdegen</span></span></span><span
|
||||||
class="cmr-12">.</span>
|
class="cmr-12">.</span>
|
||||||
<!--l. 236--><p class="indent" > <hr class="figure"><div class="figure"
|
|
||||||
>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a
|
<!--l. 291--><p class="indent" > <a
|
||||||
id="x14-130022"></a>
|
id="x14-13002r2"></a><hr class="float"><div class="float"
|
||||||
|
>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="center"
|
<div class="center"
|
||||||
>
|
>
|
||||||
<!--l. 237--><p class="noindent" >
|
<!--l. 305--><p class="noindent" >
|
||||||
<div class="minipage"><pre class="verbatim" id="verbatim-6">
|
<div class="minipage"><pre class="verbatim" id="verbatim-6">
|
||||||
... ...
|
... ...
|
||||||
! build a V-cycle preconditioner with 1 block-Jacobi sweep (with
|
! build a V-cycle preconditioner with 1 block-Jacobi sweep (with
|
||||||
! ILU(0) on the blocks) as pre- and post-smoother, and 8  block-Jacobi
|
! ILU(0) on the blocks) as pre- and post-smoother, and 8  block-Jacobi
|
||||||
! sweeps (with ILU(0) on the blocks) as coarsest-level solver
|
! sweeps (with ILU(0) on the blocks) as coarsest-level solver
|
||||||
  call P%init(’ML’,info)
|
  call P%init(’ML’,info)
|
||||||
  call_P%set(’SMOOTHER_TYPE’,’BJAC’,info)
|
  call P%set(’SMOOTHER_TYPE’,’BJAC’,info)
|
||||||
  call P%set(’COARSE_SOLVE’,’BJAC’,info)
|
  call P%set(’COARSE_SOLVE’,’BJAC’,info)
|
||||||
  call P%set(’COARSE_SWEEPS’,8,info)
|
  call P%set(’COARSE_SWEEPS’,8,info)
|
||||||
  call P%hierarchy_build(A,desc_A,info)
|
  call P%hierarchy_build(A,desc_A,info)
|
||||||
  call P%smoothers_build(A,desc_A,info)
|
  call P%smoothers_build(A,desc_A,info)
|
||||||
... ...
|
... ...
|
||||||
</pre>
|
</pre>
|
||||||
<!--l. 252--><p class="nopar" ></div>
|
<!--l. 320--><p class="nopar" ></div></div>
|
||||||
<br /><div class="caption"
|
<br /><div class="caption"
|
||||||
><span class="id">Figure 2: </span><span
|
><span class="id">Listing 2: </span><span
|
||||||
class="content">setup of a multilevel preconditioner based on the default decoupled coarsening</span></div><!--tex4ht:label?: x14-130022 -->
|
class="content">setup of a multilevel preconditioner based on the default decoupled coarsening</span></div><!--tex4ht:label?: x14-13002r2 -->
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--l. 258--><p class="indent" > </div><hr class="endfigure">
|
</div><hr class="endfloat" />
|
||||||
<!--l. 260--><p class="indent" > <hr class="figure"><div class="figure"
|
|
||||||
|
|
||||||
|
|
||||||
|
<!--l. 327--><p class="indent" > <a
|
||||||
|
id="x14-13003r3"></a><hr class="float"><div class="float"
|
||||||
>
|
>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a
|
|
||||||
id="x14-130033"></a>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="center"
|
<div class="center"
|
||||||
>
|
>
|
||||||
<!--l. 261--><p class="noindent" >
|
<!--l. 344--><p class="noindent" >
|
||||||
<div class="minipage"><pre class="verbatim" id="verbatim-7">
|
<div class="minipage"><pre class="verbatim" id="verbatim-7">
|
||||||
... ...
|
... ...
|
||||||
! build a W-cycle preconditioner with 2 hybrid Gauss-Seidel sweeps
|
! build a W-cycle preconditioner with 2 hybrid Gauss-Seidel sweeps
|
||||||
@@ -329,29 +334,27 @@ class="content">setup of a multilevel preconditioner based on the default decoup
|
|||||||
  call P%smoothers_build(A,desc_A,info)
|
  call P%smoothers_build(A,desc_A,info)
|
||||||
... ...
|
... ...
|
||||||
</pre>
|
</pre>
|
||||||
<!--l. 279--><p class="nopar" ></div>
|
<!--l. 362--><p class="nopar" ></div></div>
|
||||||
<br /> <div class="caption"
|
<br /> <div class="caption"
|
||||||
><span class="id">Figure 3: </span><span
|
><span class="id">Listing 3: </span><span
|
||||||
class="content">setup of a multilevel preconditioner based on the coupled coarsening based
|
class="content">setup of a multilevel preconditioner based on the coupled coarsening based
|
||||||
on weighted matching</span></div><!--tex4ht:label?: x14-130033 -->
|
on weighted matching</span></div><!--tex4ht:label?: x14-13003r3 -->
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--l. 284--><p class="indent" > </div><hr class="endfigure">
|
</div><hr class="endfloat" />
|
||||||
<!--l. 286--><p class="indent" > <hr class="figure"><div class="figure"
|
|
||||||
|
|
||||||
|
|
||||||
|
<!--l. 369--><p class="indent" > <a
|
||||||
|
id="x14-13004r4"></a><hr class="float"><div class="float"
|
||||||
>
|
>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<a
|
|
||||||
id="x14-130044"></a>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<div class="center"
|
<div class="center"
|
||||||
>
|
>
|
||||||
<!--l. 287--><p class="noindent" >
|
<!--l. 386--><p class="noindent" >
|
||||||
<div class="minipage"><pre class="verbatim" id="verbatim-8">
|
<div class="minipage"><pre class="verbatim" id="verbatim-8">
|
||||||
... ...
|
... ...
|
||||||
! set RAS with overlap 2 and ILU(0) on the local blocks
|
! set RAS with overlap 2 and ILU(0) on the local blocks
|
||||||
@@ -362,15 +365,14 @@ on weighted matching</span></div><!--tex4ht:label?: x14-130033 -->
|
|||||||
! solve Ax=b with preconditioned BiCGSTAB
|
! solve Ax=b with preconditioned BiCGSTAB
|
||||||
  call psb_krylov(’BICGSTAB’,A,P,b,x,tol,desc_A,info)
|
  call psb_krylov(’BICGSTAB’,A,P,b,x,tol,desc_A,info)
|
||||||
</pre>
|
</pre>
|
||||||
<!--l. 299--><p class="nopar" ></div>
|
<!--l. 398--><p class="nopar" ></div></div>
|
||||||
<br /> <div class="caption"
|
<br /> <div class="caption"
|
||||||
><span class="id">Figure 4: </span><span
|
><span class="id">Listing 4: </span><span
|
||||||
class="content">setup of a one-level Schwarz preconditioner.</span></div><!--tex4ht:label?: x14-130044 -->
|
class="content">setup of a one-level Schwarz preconditioner.</span></div><!--tex4ht:label?: x14-13004r4 -->
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--l. 304--><p class="indent" > </div><hr class="endfigure">
|
</div><hr class="endfloat" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
+50
-21
@@ -28,12 +28,22 @@ class="cmr-12">Method init</span></h4>
|
|||||||
<div class="center"
|
<div class="center"
|
||||||
>
|
>
|
||||||
<!--l. 45--><p class="noindent" >
|
<!--l. 45--><p class="noindent" >
|
||||||
<!--l. 46--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
<!--l. 46--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">call</span><span
|
class="cmtt-12">call</span><span
|
||||||
class="cmtt-12"> p%init(icontx,ptype,info)</span></span></span></div>
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">p</span><span
|
||||||
|
class="cmtt-12">%</span><span
|
||||||
|
class="cmtt-12">init</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">contxt</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">ptype</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">info</span><span
|
||||||
|
class="cmtt-12">)</span></div>
|
||||||
<!--l. 49--><p class="noindent" ><span
|
<!--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="cmr-12">This method allocates and initializes the preconditioner </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">p</span></span></span><span
|
class="cmtt-12">p</span><span
|
||||||
class="cmr-12">, according to the</span>
|
class="cmr-12">, according to the</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">preconditioner type chosen by the user.</span>
|
class="cmr-12">preconditioner type chosen by the user.</span>
|
||||||
@@ -45,23 +55,37 @@ cellspacing="0" cellpadding="0"
|
|||||||
id="TBL-2-1"><col
|
id="TBL-2-1"><col
|
||||||
id="TBL-2-2"></colgroup><tr
|
id="TBL-2-2"></colgroup><tr
|
||||||
style="vertical-align:baseline;" id="TBL-2-1-"><td style="white-space:normal; text-align:left;" id="TBL-2-1-1"
|
style="vertical-align:baseline;" id="TBL-2-1-"><td style="white-space:normal; text-align:left;" id="TBL-2-1-1"
|
||||||
class="td11"><!--l. 57--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 57--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">icontxt</span></span></span> </td> <td style="white-space:normal; text-align:left;" id="TBL-2-1-2"
|
class="cmtt-12">contxt</span> </td> <td style="white-space:normal; text-align:left;" id="TBL-2-1-2"
|
||||||
class="td11"><!--l. 57--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 57--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">integer,</span><span
|
class="cmtt-12">type</span><span
|
||||||
class="cmtt-12"> intent(in)</span></span></span><span
|
class="cmtt-12">(</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmtt-12">psb_ctxt_type</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">in</span><span
|
||||||
|
class="cmtt-12">)</span><span
|
||||||
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-2-2-"><td style="white-space:normal; text-align:left;" id="TBL-2-2-1"
|
style="vertical-align:baseline;" id="TBL-2-2-"><td style="white-space:normal; text-align:left;" id="TBL-2-2-1"
|
||||||
class="td11"><!--l. 58--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-2-2-2"
|
class="td11"><!--l. 58--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-2-2-2"
|
||||||
class="td11"><!--l. 58--><p class="noindent" ><span
|
class="td11"><!--l. 58--><p class="noindent" ><span
|
||||||
class="cmr-12">The communication context.</span> </td></tr><tr
|
class="cmr-12">The communication context.</span> </td></tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-2-3-"><td style="white-space:normal; text-align:left;" id="TBL-2-3-1"
|
style="vertical-align:baseline;" id="TBL-2-3-"><td style="white-space:normal; text-align:left;" id="TBL-2-3-1"
|
||||||
class="td11"><!--l. 59--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 59--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">ptype</span></span></span> </td> <td style="white-space:normal; text-align:left;" id="TBL-2-3-2"
|
class="cmtt-12">ptype</span> </td> <td style="white-space:normal; text-align:left;" id="TBL-2-3-2"
|
||||||
class="td11"><!--l. 59--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 59--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">character(len=*),</span><span
|
class="cmtt-12">character</span><span
|
||||||
class="cmtt-12"> intent(in)</span></span></span><span
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">len</span><span
|
||||||
|
class="cmtt-12">=*),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">in</span><span
|
||||||
|
class="cmtt-12">)</span> <span
|
||||||
class="cmr-12">.</span></td>
|
class="cmr-12">.</span></td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-2-4-"><td style="white-space:normal; text-align:left;" id="TBL-2-4-1"
|
style="vertical-align:baseline;" id="TBL-2-4-"><td style="white-space:normal; text-align:left;" id="TBL-2-4-1"
|
||||||
@@ -69,7 +93,7 @@ class="td11"><!--l. 60--><p class="noindent" > </td><td style="white-space
|
|||||||
class="td11"><!--l. 60--><p class="noindent" ><span
|
class="td11"><!--l. 60--><p class="noindent" ><span
|
||||||
class="cmr-12">The type of preconditioner. Its values are specified in Table</span><span
|
class="cmr-12">The type of preconditioner. Its values are specified in Table</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="userhtmlse4.html#x13-120151"><span
|
href="userhtmlse4.html#x13-12015r1"><span
|
||||||
class="cmr-12">1</span><!--tex4ht:ref: tab:precinit --></a><span
|
class="cmr-12">1</span><!--tex4ht:ref: tab:precinit --></a><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
@@ -79,11 +103,16 @@ class="td11"><!--l. 62--><p class="noindent" ><span
|
|||||||
class="cmr-12">Note that the strings are case insensitive.</span> </td>
|
class="cmr-12">Note that the strings are case insensitive.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-2-6-"><td style="white-space:normal; text-align:left;" id="TBL-2-6-1"
|
style="vertical-align:baseline;" id="TBL-2-6-"><td style="white-space:normal; text-align:left;" id="TBL-2-6-1"
|
||||||
class="td11"><!--l. 63--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 63--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">info</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-2-6-2"
|
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-2-6-2"
|
||||||
class="td11"><!--l. 63--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 63--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">integer,</span><span
|
class="cmtt-12">integer</span><span
|
||||||
class="cmtt-12"> intent(out)</span></span></span><span
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">out</span><span
|
||||||
|
class="cmtt-12">)</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-2-7-"><td style="white-space:normal; text-align:left;" id="TBL-2-7-1"
|
style="vertical-align:baseline;" id="TBL-2-7-"><td style="white-space:normal; text-align:left;" id="TBL-2-7-1"
|
||||||
|
|||||||
+1072
-718
File diff suppressed because it is too large
Load Diff
+86
-54
@@ -10,7 +10,7 @@
|
|||||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||||
</head><body
|
</head><body
|
||||||
>
|
>
|
||||||
<!--l. 572--><div class="crosslinks"><p class="noindent"><span
|
<!--l. 594--><div class="crosslinks"><p class="noindent"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlsu10.html" ><span
|
href="userhtmlsu10.html" ><span
|
||||||
class="cmr-12">next</span></a><span
|
class="cmr-12">next</span></a><span
|
||||||
@@ -34,98 +34,130 @@ class="cmr-12">Method hierarchy</span><span
|
|||||||
class="cmr-12">_build</span></h4>
|
class="cmr-12">_build</span></h4>
|
||||||
<div class="center"
|
<div class="center"
|
||||||
>
|
>
|
||||||
<!--l. 574--><p class="noindent" >
|
<!--l. 596--><p class="noindent" >
|
||||||
<!--l. 575--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
<!--l. 597--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">call</span><span
|
class="cmtt-12">call</span><span
|
||||||
class="cmtt-12"> p%hierarchy_build(a,desc_a,info)</span></span></span><br />
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">p</span><span
|
||||||
|
class="cmtt-12">%</span><span
|
||||||
|
class="cmtt-12">hierarchy_build</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">a</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">desc_a</span><span
|
||||||
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12">info</span><span
|
||||||
|
class="cmtt-12">)</span><br />
|
||||||
</div>
|
</div>
|
||||||
<!--l. 578--><p class="noindent" ><span
|
<!--l. 600--><p class="noindent" ><span
|
||||||
class="cmr-12">This method builds the hierarchy of matrices and restriction/prolongation operators for</span>
|
class="cmr-12">This method builds the hierarchy of matrices and restriction/prolongation operators for</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">the multilevel preconditioner </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">the multilevel preconditioner </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">p</span></span></span><span
|
class="cmtt-12">p</span><span
|
||||||
class="cmr-12">, according to the requirements made by the user</span>
|
class="cmr-12">, according to the requirements made by the user</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">through the methods </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">through the methods </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">init</span></span></span> <span
|
class="cmtt-12">init</span> <span
|
||||||
class="cmr-12">and </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">and </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">set</span></span></span><span
|
class="cmtt-12">set</span><span
|
||||||
class="cmr-12">.</span>
|
class="cmr-12">.</span>
|
||||||
<!--l. 583--><p class="noindent" ><span
|
<!--l. 605--><p class="noindent" ><span
|
||||||
class="cmbx-12">Arguments</span>
|
class="cmbx-12">Arguments</span>
|
||||||
<div class="tabular"> <table id="TBL-11" class="tabular"
|
<div class="tabular"> <table id="TBL-10" class="tabular"
|
||||||
cellspacing="0" cellpadding="0"
|
cellspacing="0" cellpadding="0"
|
||||||
><colgroup id="TBL-11-1g"><col
|
><colgroup id="TBL-10-1g"><col
|
||||||
id="TBL-11-1"><col
|
id="TBL-10-1"><col
|
||||||
id="TBL-11-2"></colgroup><tr
|
id="TBL-10-2"></colgroup><tr
|
||||||
style="vertical-align:baseline;" id="TBL-11-1-"><td style="white-space:normal; text-align:left;" id="TBL-11-1-1"
|
style="vertical-align:baseline;" id="TBL-10-1-"><td style="white-space:normal; text-align:left;" id="TBL-10-1-1"
|
||||||
class="td11"><!--l. 586--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 608--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">a</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-1-2"
|
class="cmtt-12">a</span> </td><td style="white-space:normal; text-align:left;" id="TBL-10-1-2"
|
||||||
class="td11"><!--l. 586--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 608--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">type(psb_</span></span></span><span
|
class="cmtt-12">type</span><span
|
||||||
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
|
class="cmtt-12">(</span><span
|
||||||
class="cmtt-12">spmat_type),</span><span
|
class="cmtt-12">psb_</span><span
|
||||||
class="cmtt-12"> intent(in)</span></span></span><span
|
class="cmti-12">x</span><span class="lstinline"></span><span
|
||||||
|
class="cmtt-12">spmat_type</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">in</span><span
|
||||||
|
class="cmtt-12">)</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-11-2-"><td style="white-space:normal; text-align:left;" id="TBL-11-2-1"
|
style="vertical-align:baseline;" id="TBL-10-2-"><td style="white-space:normal; text-align:left;" id="TBL-10-2-1"
|
||||||
class="td11"><!--l. 587--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-2-2"
|
class="td11"><!--l. 609--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-10-2-2"
|
||||||
class="td11"><!--l. 587--><p class="noindent" ><span
|
class="td11"><!--l. 609--><p class="noindent" ><span
|
||||||
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
|
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">to be preconditioned. Note that </span><span
|
class="cmr-12">to be preconditioned. Note that </span><span
|
||||||
class="cmti-12">x </span><span
|
class="cmti-12">x </span><span
|
||||||
class="cmr-12">must be chosen according to the</span>
|
class="cmr-12">must be chosen according to the</span>
|
||||||
<span
|
<span class="lstinline"></span><span
|
||||||
class="cmr-12">real/complex, single/double precision version of AMG4PSBLAS</span>
|
class="cmtt-12">real</span><span
|
||||||
|
class="cmr-12">/</span><span class="lstinline"></span><span
|
||||||
|
class="cmtt-12">complex</span><span
|
||||||
|
class="cmr-12">, single/double precision version of AMG4PSBLAS</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">under use. See the PSBLAS User’s Guide for details </span><span class="cite"><span
|
class="cmr-12">under use. See the PSBLAS User’s Guide for details </span><span class="cite"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||||
class="cmr-12">16</span></a><span
|
class="cmr-12">17</span></a><span
|
||||||
class="cmr-12">]</span></span><span
|
class="cmr-12">]</span></span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-11-3-"><td style="white-space:normal; text-align:left;" id="TBL-11-3-1"
|
style="vertical-align:baseline;" id="TBL-10-3-"><td style="white-space:normal; text-align:left;" id="TBL-10-3-1"
|
||||||
class="td11"><!--l. 592--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 614--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">desc_a</span></span></span></td><td style="white-space:normal; text-align:left;" id="TBL-11-3-2"
|
class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-10-3-2"
|
||||||
class="td11"><!--l. 592--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 614--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">type(psb_desc_type),</span><span
|
class="cmtt-12">type</span><span
|
||||||
class="cmtt-12"> intent(in)</span></span></span><span
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">psb_desc_type</span><span
|
||||||
|
class="cmtt-12">),</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">in</span><span
|
||||||
|
class="cmtt-12">)</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-11-4-"><td style="white-space:normal; text-align:left;" id="TBL-11-4-1"
|
style="vertical-align:baseline;" id="TBL-10-4-"><td style="white-space:normal; text-align:left;" id="TBL-10-4-1"
|
||||||
class="td11"><!--l. 593--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-4-2"
|
class="td11"><!--l. 615--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-10-4-2"
|
||||||
class="td11"><!--l. 593--><p class="noindent" ><span
|
class="td11"><!--l. 615--><p class="noindent" ><span
|
||||||
class="cmr-12">The communication descriptor of </span><span class="obeylines-h"><span class="verb"><span
|
class="cmr-12">The communication descriptor of </span><span class="lstinline"></span><span
|
||||||
class="cmtt-12">a</span></span></span><span
|
class="cmtt-12">a</span><span
|
||||||
class="cmr-12">. See the PSBLAS User’s Guide</span>
|
class="cmr-12">. See the PSBLAS User’s Guide</span>
|
||||||
<span
|
<span
|
||||||
class="cmr-12">for details </span><span class="cite"><span
|
class="cmr-12">for details </span><span class="cite"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||||
class="cmr-12">16</span></a><span
|
class="cmr-12">17</span></a><span
|
||||||
class="cmr-12">]</span></span><span
|
class="cmr-12">]</span></span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-11-5-"><td style="white-space:normal; text-align:left;" id="TBL-11-5-1"
|
style="vertical-align:baseline;" id="TBL-10-5-"><td style="white-space:normal; text-align:left;" id="TBL-10-5-1"
|
||||||
class="td11"><!--l. 596--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 617--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">info</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-5-2"
|
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-10-5-2"
|
||||||
class="td11"><!--l. 596--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
class="td11"><!--l. 617--><p class="noindent" ><span class="lstinline"></span><span
|
||||||
class="cmtt-12">integer,</span><span
|
class="cmtt-12">integer</span><span
|
||||||
class="cmtt-12"> intent(out)</span></span></span><span
|
class="cmtt-12">,</span><span
|
||||||
|
class="cmtt-12"> </span><span
|
||||||
|
class="cmtt-12">intent</span><span
|
||||||
|
class="cmtt-12">(</span><span
|
||||||
|
class="cmtt-12">out</span><span
|
||||||
|
class="cmtt-12">)</span><span
|
||||||
class="cmr-12">.</span> </td>
|
class="cmr-12">.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-11-6-"><td style="white-space:normal; text-align:left;" id="TBL-11-6-1"
|
style="vertical-align:baseline;" id="TBL-10-6-"><td style="white-space:normal; text-align:left;" id="TBL-10-6-1"
|
||||||
class="td11"><!--l. 597--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-6-2"
|
class="td11"><!--l. 618--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-10-6-2"
|
||||||
class="td11"><!--l. 597--><p class="noindent" ><span
|
class="td11"><!--l. 618--><p class="noindent" ><span
|
||||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||||
class="cmr-12"> </span><a
|
class="cmr-12"> </span><a
|
||||||
href="userhtmlse7.html#x26-300007"><span
|
href="userhtmlse7.html#x26-300007"><span
|
||||||
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
|
||||||
class="cmr-12">for details.</span> </td>
|
class="cmr-12">for details.</span> </td>
|
||||||
</tr><tr
|
</tr><tr
|
||||||
style="vertical-align:baseline;" id="TBL-11-7-"><td style="white-space:normal; text-align:left;" id="TBL-11-7-1"
|
style="vertical-align:baseline;" id="TBL-10-7-"><td style="white-space:normal; text-align:left;" id="TBL-10-7-1"
|
||||||
class="td11"> </td> </tr></table></div>
|
class="td11"> </td> </tr></table></div>
|
||||||
|
|
||||||
|
|
||||||
@@ -133,7 +165,7 @@ class="td11"> </td> </tr></table></div>
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
<!--l. 603--><div class="crosslinks"><p class="noindent"><span
|
<!--l. 624--><div class="crosslinks"><p class="noindent"><span
|
||||||
class="cmr-12">[</span><a
|
class="cmr-12">[</span><a
|
||||||
href="userhtmlsu10.html" ><span
|
href="userhtmlsu10.html" ><span
|
||||||
class="cmr-12">next</span></a><span
|
class="cmr-12">next</span></a><span
|
||||||
@@ -150,6 +182,6 @@ class="cmr-12">] [</span><a
|
|||||||
href="userhtmlse5.html#userhtmlsu9.html" ><span
|
href="userhtmlse5.html#userhtmlsu9.html" ><span
|
||||||
class="cmr-12">up</span></a><span
|
class="cmr-12">up</span></a><span
|
||||||
class="cmr-12">] </span></p></div>
|
class="cmr-12">] </span></p></div>
|
||||||
<!--l. 603--><p class="indent" > <a
|
<!--l. 624--><p class="indent" > <a
|
||||||
id="tailuserhtmlsu9.html"></a>
|
id="tailuserhtmlsu9.html"></a>
|
||||||
</body></html>
|
</body></html>
|
||||||
|
|||||||
+1
-1
@@ -87,7 +87,7 @@ TOPFILE = userguide.tex
|
|||||||
HTMLFILE = userhtml.tex
|
HTMLFILE = userhtml.tex
|
||||||
SECFILE = abstract.tex overview.tex distribution.tex newobjects.tex\
|
SECFILE = abstract.tex overview.tex distribution.tex newobjects.tex\
|
||||||
building.tex gettingstarted.tex userinterface.tex \
|
building.tex gettingstarted.tex userinterface.tex \
|
||||||
errors.tex bibliography.tex license.tex
|
errors.tex bibliography.tex license.tex covenant.tex
|
||||||
FIGDIR = figures
|
FIGDIR = figures
|
||||||
|
|
||||||
XPDFFLAGS =
|
XPDFFLAGS =
|
||||||
|
|||||||
@@ -12,6 +12,11 @@ P.~R.~Amestoy, C.~Ashcraft, O.~Boiteau, A.~Buttari, J.~L'Excellent, C.~Weisbecke
|
|||||||
SIAM Journal on Scientific Computing, volume 37 (3), 2015, A1452--A1474.
|
SIAM Journal on Scientific Computing, volume 37 (3), 2015, A1452--A1474.
|
||||||
See also {\tt http://mumps.enseeiht.fr}.
|
See also {\tt http://mumps.enseeiht.fr}.
|
||||||
%
|
%
|
||||||
|
\bibitem{BERTACCINIFILIPPONE}
|
||||||
|
D. Bertaccini\ and\ S. Filippone,
|
||||||
|
{\em Sparse approximate inverse preconditioners on high performance GPU platforms},
|
||||||
|
Comput. Math. Appl. {\bf 71} (2016), no.~3, 693--711.
|
||||||
|
%
|
||||||
\bibitem{BREZINA_VANEK}
|
\bibitem{BREZINA_VANEK}
|
||||||
M.~Brezina, P.~Van\v{e}k,
|
M.~Brezina, P.~Van\v{e}k,
|
||||||
{\em A Black-Box Iterative Solver Based on a Two-Level Schwarz Method},
|
{\em A Black-Box Iterative Solver Based on a Two-Level Schwarz Method},
|
||||||
|
|||||||
@@ -108,9 +108,15 @@ in the main directory to generate the necessary makefile.
|
|||||||
\textbf{DA RISCRIVERE}
|
\textbf{DA RISCRIVERE}
|
||||||
|
|
||||||
As a minimal example consider the following:
|
As a minimal example consider the following:
|
||||||
|
\ifpdf
|
||||||
|
\begin{minted}[breaklines=true,bgcolor=bg,fontsize=\small]{console}
|
||||||
|
./configure --with-psblas=PSB-INSTALL-DIR
|
||||||
|
\end{minted}
|
||||||
|
\else
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
./configure --with-psblas=PSB-INSTALL-DIR
|
./configure --with-psblas=PSB-INSTALL-DIR
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
\fi
|
||||||
which assumes that the various MPI compilers and support libraries are
|
which assumes that the various MPI compilers and support libraries are
|
||||||
available in the standard directories on the system, and specifies
|
available in the standard directories on the system, and specifies
|
||||||
only the PSBLAS install directory (note that the latter directory must
|
only the PSBLAS install directory (note that the latter directory must
|
||||||
|
|||||||
@@ -0,0 +1,117 @@
|
|||||||
|
\section{Contributor Covenant Code of Conduct\label{sec:codeofconduct}}
|
||||||
|
\markboth{\textsc{AMG4PSBLAS User's and Reference Guide}}
|
||||||
|
{\textsc{\ref{sec:codeofconduct} Contributor Covenant Code of Conduct}}
|
||||||
|
|
||||||
|
\paragraph{Our Pledge}
|
||||||
|
We as members, contributors, and leaders pledge to make participation in our
|
||||||
|
community a harassment-free experience for everyone, regardless of age, body
|
||||||
|
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||||
|
identity and expression, level of experience, education, socio-economic status,
|
||||||
|
nationality, personal appearance, race, caste, color, religion, or sexual identity
|
||||||
|
and orientation.
|
||||||
|
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||||
|
diverse, inclusive, and healthy community.
|
||||||
|
Our Standards
|
||||||
|
Examples of behavior that contributes to a positive environment for our
|
||||||
|
community include:
|
||||||
|
\begin{itemize}
|
||||||
|
\item Demonstrating empathy and kindness toward other people
|
||||||
|
\item Being respectful of differing opinions, viewpoints, and experiences
|
||||||
|
\item Giving and gracefully accepting constructive feedback
|
||||||
|
\item Accepting responsibility and apologizing to those affected by our mistakes,
|
||||||
|
and learning from the experience
|
||||||
|
\item Focusing on what is best not just for us as individuals, but for the
|
||||||
|
overall community
|
||||||
|
\end{itemize}
|
||||||
|
Examples of unacceptable behavior include:
|
||||||
|
\begin{itemize}
|
||||||
|
\item The use of sexualized language or imagery, and sexual attention or
|
||||||
|
advances of any kind
|
||||||
|
\item Trolling, insulting or derogatory comments, and personal or political attacks
|
||||||
|
\item Public or private harassment
|
||||||
|
\item Publishing others’ private information, such as a physical or email
|
||||||
|
address, without their explicit permission
|
||||||
|
\item Other conduct which could reasonably be considered inappropriate in a
|
||||||
|
professional setting
|
||||||
|
\end{itemize}
|
||||||
|
|
||||||
|
\paragraph{Enforcement Responsibilities}
|
||||||
|
Community leaders are responsible for clarifying and enforcing our standards of
|
||||||
|
acceptable behavior and will take appropriate and fair corrective action in
|
||||||
|
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||||
|
or harmful.
|
||||||
|
Community leaders have the right and responsibility to remove, edit, or reject
|
||||||
|
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||||
|
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||||
|
decisions when appropriate.
|
||||||
|
Scope
|
||||||
|
This Code of Conduct applies within all community spaces, and also applies when
|
||||||
|
an individual is officially representing the community in public spaces.
|
||||||
|
Examples of representing our community include using an official e-mail address,
|
||||||
|
posting via an official social media account, or acting as an appointed
|
||||||
|
representative at an online or offline event.
|
||||||
|
Enforcement
|
||||||
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||||
|
reported to the community leaders responsible for enforcement at
|
||||||
|
\href{mailto:eocoe@na.iac.cnr.it}{eocoe@na.iac.cnr.it}.
|
||||||
|
All complaints will be reviewed and investigated promptly and fairly.
|
||||||
|
All community leaders are obligated to respect the privacy and security of the
|
||||||
|
reporter of any incident.
|
||||||
|
|
||||||
|
\paragraph{Enforcement Guidelines}
|
||||||
|
Community leaders will follow these Community Impact Guidelines in determining
|
||||||
|
the consequences for any action they deem in violation of this Code of Conduct:
|
||||||
|
\begin{enumerate}
|
||||||
|
\item Correction
|
||||||
|
|
||||||
|
\textit{Community Impact:} Use of inappropriate language or other behavior deemed
|
||||||
|
unprofessional or unwelcome in the community.
|
||||||
|
|
||||||
|
\textit{Consequence:} A private, written warning from community leaders, providing
|
||||||
|
clarity around the nature of the violation and an explanation of why the
|
||||||
|
behavior was inappropriate. A public apology may be requested.
|
||||||
|
\item Warning
|
||||||
|
|
||||||
|
\textit{Community Impact:} A violation through a single incident or series
|
||||||
|
of actions.
|
||||||
|
|
||||||
|
\textit{Consequence:} A warning with consequences for continued behavior. No
|
||||||
|
interaction with the people involved, including unsolicited interaction with
|
||||||
|
those enforcing the Code of Conduct, for a specified period of time. This
|
||||||
|
includes avoiding interactions in community spaces as well as external channels
|
||||||
|
like social media. Violating these terms may lead to a temporary or
|
||||||
|
permanent ban.
|
||||||
|
\item Temporary Ban
|
||||||
|
|
||||||
|
\textit{Community Impact:} A serious violation of community standards, including
|
||||||
|
sustained inappropriate behavior.
|
||||||
|
|
||||||
|
\textit{Consequence:} A temporary ban from any sort of interaction or public
|
||||||
|
communication with the community for a specified period of time. No public or
|
||||||
|
private interaction with the people involved, including unsolicited interaction
|
||||||
|
with those enforcing the Code of Conduct, is allowed during this period.
|
||||||
|
Violating these terms may lead to a permanent ban.
|
||||||
|
\item Permanent Ban
|
||||||
|
|
||||||
|
\textit{Community Impact:} Demonstrating a pattern of violation of community
|
||||||
|
standards, including sustained inappropriate behavior, harassment of an
|
||||||
|
individual, or aggression toward or disparagement of classes of individuals.
|
||||||
|
|
||||||
|
\textit{Consequence:} A permanent ban from any sort of public interaction within
|
||||||
|
the community.
|
||||||
|
\end{enumerate}
|
||||||
|
|
||||||
|
\paragraph{Attribution}
|
||||||
|
This Code of Conduct is adapted from the Contributor Covenant,
|
||||||
|
version 2.0, available at
|
||||||
|
\href{https://www.contributor-covenant.org/version/2/0/code_of_conduct.html}{https://www.contributor-covenant.org/version/2/0/code\_of\_conduct .html}.
|
||||||
|
Community Impact Guidelines were inspired by
|
||||||
|
Mozilla’s code of conduct enforcement ladder.
|
||||||
|
For answers to common questions about this code of conduct, see the FAQ at
|
||||||
|
\href{https://www.contributor-covenant.org/faq}{https://www.contributor-covenant.org/faq}. Translations are available
|
||||||
|
at \href{https://www.contributor-covenant.org/translations}{https://www.contributor-covenant.org/translations}.
|
||||||
|
|
||||||
|
%%% Local Variables:
|
||||||
|
%%% mode: latex
|
||||||
|
%%% TeX-master: "userguide"
|
||||||
|
%%% End:
|
||||||
+145
-45
@@ -15,18 +15,18 @@ The following steps are required:
|
|||||||
following an object-oriented approach.
|
following an object-oriented approach.
|
||||||
\item \emph{Allocate and initialize the preconditioner data structure, according to
|
\item \emph{Allocate and initialize the preconditioner data structure, according to
|
||||||
a preconditioner type chosen by the user}. This is performed by the routine
|
a preconditioner type chosen by the user}. This is performed by the routine
|
||||||
\verb|init|, which also sets defaults for each preconditioner
|
\fortinline|init|, which also sets defaults for each preconditioner
|
||||||
type selected by the user. The preconditioner types and the defaults associated
|
type selected by the user. The preconditioner types and the defaults associated
|
||||||
with them are given in Table~\ref{tab:precinit}, where the strings used by
|
with them are given in Table~\ref{tab:precinit}, where the strings used by
|
||||||
\verb|init| to identify the preconditioner types are also given.
|
\fortinline|init| to identify the preconditioner types are also given.
|
||||||
Note that these strings are valid also if uppercase letters are substituted by
|
Note that these strings are valid also if uppercase letters are substituted by
|
||||||
corresponding lowercase ones.
|
corresponding lowercase ones.
|
||||||
|
|
||||||
\item \emph{Modify the selected preconditioner type, by properly setting
|
\item \emph{Modify the selected preconditioner type, by properly setting
|
||||||
preconditioner parameters.} This is performed by the routine \verb|set|.
|
preconditioner parameters.} This is performed by the routine \fortinline|set|.
|
||||||
This routine must be called only if the user wants to modify the default values
|
This routine must be called only if the user wants to modify the default values
|
||||||
of the parameters associated with the selected preconditioner type, to obtain a variant
|
of the parameters associated with the selected preconditioner type, to obtain a variant
|
||||||
of that preconditioner. Examples of use of \verb|set| are given in
|
of that preconditioner. Examples of use of \fortinline|set| are given in
|
||||||
Section~\ref{sec:examples}; a complete list of all the
|
Section~\ref{sec:examples}; a complete list of all the
|
||||||
preconditioner parameters and their allowed and default values is provided in
|
preconditioner parameters and their allowed and default values is provided in
|
||||||
Section~\ref{sec:userinterface}, Tables~\ref{tab:p_cycle}-\ref{tab:p_smoother_1}.
|
Section~\ref{sec:userinterface}, Tables~\ref{tab:p_cycle}-\ref{tab:p_smoother_1}.
|
||||||
@@ -34,18 +34,18 @@ The following steps are required:
|
|||||||
is multilevel, then two steps must be performed, as specified next.
|
is multilevel, then two steps must be performed, as specified next.
|
||||||
\begin{enumerate}
|
\begin{enumerate}
|
||||||
\item[4.1] \emph{Build the AMG hierarchy for a given matrix.} This is
|
\item[4.1] \emph{Build the AMG hierarchy for a given matrix.} This is
|
||||||
performed by the routine \verb|hierarchy_build|.
|
performed by the routine \fortinline|hierarchy_build|.
|
||||||
\item[4.2] \emph{Build the preconditioner for a given matrix.} This is performed
|
\item[4.2] \emph{Build the preconditioner for a given matrix.} This is performed
|
||||||
by the routine \verb|smoothers_build|.
|
by the routine \fortinline|smoothers_build|.
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
If the selected preconditioner is one-level, it is built in a single step,
|
If the selected preconditioner is one-level, it is built in a single step,
|
||||||
performed by the routine \verb|bld|.
|
performed by the routine \fortinline|bld|.
|
||||||
\item \emph{Apply the preconditioner at each iteration of a Krylov solver.}
|
\item \emph{Apply the preconditioner at each iteration of a Krylov solver.}
|
||||||
This is performed by the method \verb|apply|. When using the PSBLAS Krylov solvers,
|
This is performed by the method \fortinline|apply|. When using the PSBLAS Krylov solvers,
|
||||||
this step is completely transparent to the user, since \verb|apply| is called
|
this step is completely transparent to the user, since \fortinline|apply| is called
|
||||||
by the PSBLAS routine implementing the Krylov solver (\verb|psb_krylov|).
|
by the PSBLAS routine implementing the Krylov solver (\fortinline|psb_krylov|).
|
||||||
\item \emph{Free the preconditioner data structure}. This is performed by
|
\item \emph{Free the preconditioner data structure}. This is performed by
|
||||||
the routine \verb|free|. This step is complementary to step 1 and should
|
the routine \fortinline|free|. This step is complementary to step 1 and should
|
||||||
be performed when the preconditioner is no more used.
|
be performed when the preconditioner is no more used.
|
||||||
\end{enumerate}
|
\end{enumerate}
|
||||||
|
|
||||||
@@ -59,21 +59,21 @@ Examples showing the basic use of AMG4PSBLAS are reported in Section~\ref{sec:ex
|
|||||||
\begin{tabular}{|l|p{2cm}|p{6.8cm}|}
|
\begin{tabular}{|l|p{2cm}|p{6.8cm}|}
|
||||||
\hline
|
\hline
|
||||||
\textsc{type} & \textsc{string} & \textsc{default preconditioner} \\ \hline
|
\textsc{type} & \textsc{string} & \textsc{default preconditioner} \\ \hline
|
||||||
No preconditioner &\verb|'NONE'|& Considered to use the PSBLAS
|
No preconditioner &\fortinline|'NONE'|& Considered to use the PSBLAS
|
||||||
Krylov solvers with no preconditioner. \\ \hline
|
Krylov solvers with no preconditioner. \\ \hline
|
||||||
Diagonal & \verb|'DIAG'|, \verb|'JACOBI'|, \verb|'L1-JACOBI'| & Diagonal preconditioner.
|
Diagonal & \fortinline|'DIAG'|, \fortinline|'JACOBI'|, \fortinline|'L1-JACOBI'| & Diagonal preconditioner.
|
||||||
For any zero diagonal entry of the matrix to be preconditioned,
|
For any zero diagonal entry of the matrix to be preconditioned,
|
||||||
the corresponding entry of the preconditioner is set to~1.\\ \hline
|
the corresponding entry of the preconditioner is set to~1.\\ \hline
|
||||||
Gauss-Seidel & \verb|'GS'|, \verb|'L1-GS'| & Hybrid Gauss-Seidel (forward), that is,
|
Gauss-Seidel & \fortinline|'GS'|, \fortinline|'L1-GS'| & Hybrid Gauss-Seidel (forward), that is,
|
||||||
global block Jacobi with
|
global block Jacobi with
|
||||||
Gauss-Seidel as local solver.\\ \hline
|
Gauss-Seidel as local solver.\\ \hline
|
||||||
Symmetrized Gauss-Seidel & \verb|'FBGS'|, \verb|'L1-FBGS'| & Symmetrized hybrid Gauss-Seidel, that is,
|
Symmetrized Gauss-Seidel & \fortinline|'FBGS'|, \fortinline|'L1-FBGS'| & Symmetrized hybrid Gauss-Seidel, that is,
|
||||||
forward Gauss-Seidel followed by
|
forward Gauss-Seidel followed by
|
||||||
backward Gauss-Seidel.\\ \hline
|
backward Gauss-Seidel.\\ \hline
|
||||||
Block Jacobi & \verb|'BJAC'|, \verb|'L1-BJAC'| & Block-Jacobi with ILU(0) on the local blocks.\\ \hline
|
Block Jacobi & \fortinline|'BJAC'|, \fortinline|'L1-BJAC'| & Block-Jacobi with ILU(0) on the local blocks.\\ \hline
|
||||||
Additive Schwarz & \verb|'AS'| & Additive Schwarz (AS),
|
Additive Schwarz & \fortinline|'AS'| & Additive Schwarz (AS),
|
||||||
with overlap~1 and ILU(0) on the local blocks. \\ \hline
|
with overlap~1 and ILU(0) on the local blocks. \\ \hline
|
||||||
Multilevel &\verb|'ML'| & V-cycle with one hybrid forward Gauss-Seidel
|
Multilevel &\fortinline|'ML'| & V-cycle with one hybrid forward Gauss-Seidel
|
||||||
(GS) sweep as pre-smoother and one hybrid backward
|
(GS) sweep as pre-smoother and one hybrid backward
|
||||||
GS sweep as post-smoother, decoupled smoothed aggregation
|
GS sweep as post-smoother, decoupled smoothed aggregation
|
||||||
as coarsening algorithm, and LU (plus triangular solve)
|
as coarsening algorithm, and LU (plus triangular solve)
|
||||||
@@ -88,11 +88,11 @@ Multilevel &\verb|'ML'| & V-cycle with one hybrid forward Gauss-Seidel
|
|||||||
\end{center}
|
\end{center}
|
||||||
\end{table}
|
\end{table}
|
||||||
|
|
||||||
Note that the module \verb|amg_prec_mod|, containing the definition of the
|
Note that the module \fortinline|amg_prec_mod|, containing the definition of the
|
||||||
preconditioner data type and the interfaces to the routines of AMG4PSBLAS,
|
preconditioner data type and the interfaces to the routines of AMG4PSBLAS,
|
||||||
must be used in any program calling such routines.
|
must be used in any program calling such routines.
|
||||||
The modules \verb|psb_base_mod|, for the sparse matrix and communication descriptor
|
The modules \fortinline|psb_base_mod|, for the sparse matrix and communication descriptor
|
||||||
data types, and \verb|psb_krylov_mod|, for interfacing with the
|
data types, and \fortinline|psb_krylov_mod|, for interfacing with the
|
||||||
Krylov solvers, must be also used (see Section~\ref{sec:examples}). \\
|
Krylov solvers, must be also used (see Section~\ref{sec:examples}). \\
|
||||||
|
|
||||||
\textbf{Remark 1.} Coarsest-level solvers based on the LU factorization,
|
\textbf{Remark 1.} Coarsest-level solvers based on the LU factorization,
|
||||||
@@ -109,11 +109,11 @@ on parallel computers.
|
|||||||
The code reported in Figure~\ref{fig:ex1} shows how to set and apply the default
|
The code reported in Figure~\ref{fig:ex1} shows how to set and apply the default
|
||||||
multilevel preconditioner available in the real double precision version
|
multilevel preconditioner available in the real double precision version
|
||||||
of AMG4PSBLAS (see Table~\ref{tab:precinit}). This preconditioner is chosen
|
of AMG4PSBLAS (see Table~\ref{tab:precinit}). This preconditioner is chosen
|
||||||
by simply specifying \verb|'ML'| as the second argument of \verb|P%init|
|
by simply specifying \fortinline|'ML'| as the second argument of \fortinline|P%init|
|
||||||
(a call to \verb|P%set| is not needed) and is applied with the CG
|
(a call to \fortinline|P%set| is not needed) and is applied with the CG
|
||||||
solver provided by PSBLAS (the matrix of the system to be solved is
|
solver provided by PSBLAS (the matrix of the system to be solved is
|
||||||
assumed to be positive definite). As previously observed, the modules
|
assumed to be positive definite). As previously observed, the modules
|
||||||
\verb|psb_base_mod|, \verb|amg_prec_mod| and \verb|psb_krylov_mod|
|
\fortinline|psb_base_mod|, \fortinline|amg_prec_mod| and \fortinline|psb_krylov_mod|
|
||||||
must be used by the example program.
|
must be used by the example program.
|
||||||
|
|
||||||
The part of the code concerning the
|
The part of the code concerning the
|
||||||
@@ -134,9 +134,64 @@ precision, versions are obtained with straightforward modifications of the previ
|
|||||||
example (see Section~\ref{sec:userinterface} for details). If these versions are installed,
|
example (see Section~\ref{sec:userinterface} for details). If these versions are installed,
|
||||||
the corresponding codes are available in \verb|examples/fileread/|.
|
the corresponding codes are available in \verb|examples/fileread/|.
|
||||||
|
|
||||||
\begin{figure}[tbp]
|
\begin{listing}[tbp]
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\begin{minipage}{.90\textwidth}
|
\begin{minipage}{.90\textwidth}
|
||||||
|
\ifpdf
|
||||||
|
\begin{minted}[breaklines=true,bgcolor=bg,fontsize=\small]{fortran}
|
||||||
|
use psb_base_mod
|
||||||
|
use amg_prec_mod
|
||||||
|
use psb_krylov_mod
|
||||||
|
... ...
|
||||||
|
!
|
||||||
|
! sparse matrix
|
||||||
|
type(psb_dspmat_type) :: A
|
||||||
|
! sparse matrix descriptor
|
||||||
|
type(psb_desc_type) :: desc_A
|
||||||
|
! preconditioner
|
||||||
|
type(amg_dprec_type) :: P
|
||||||
|
! right-hand side and solution vectors
|
||||||
|
type(psb_d_vect_type) :: b, x
|
||||||
|
... ...
|
||||||
|
!
|
||||||
|
! initialize the parallel environment
|
||||||
|
call psb_init(ctxt)
|
||||||
|
call psb_info(ctxt,iam,np)
|
||||||
|
... ...
|
||||||
|
!
|
||||||
|
! read and assemble the spd matrix A and the right-hand side b
|
||||||
|
! using PSBLAS routines for sparse matrix / vector management
|
||||||
|
... ...
|
||||||
|
!
|
||||||
|
! initialize the default multilevel preconditioner, i.e. V-cycle
|
||||||
|
! with basic smoothed aggregation, 1 hybrid forward/backward
|
||||||
|
! GS sweep as pre/post-smoother and UMFPACK as coarsest-level
|
||||||
|
! solver
|
||||||
|
call P%init('ML',info)
|
||||||
|
!
|
||||||
|
! build the preconditioner
|
||||||
|
call P%hierarchy_build(A,desc_A,info)
|
||||||
|
call P%smoothers_build(A,desc_A,info)
|
||||||
|
|
||||||
|
!
|
||||||
|
! set the solver parameters and the initial guess
|
||||||
|
... ...
|
||||||
|
!
|
||||||
|
! solve Ax=b with preconditioned CG
|
||||||
|
call psb_krylov('CG',A,P,b,x,tol,desc_A,info)
|
||||||
|
... ...
|
||||||
|
!
|
||||||
|
! deallocate the preconditioner
|
||||||
|
call P%free(info)
|
||||||
|
!
|
||||||
|
! deallocate other data structures
|
||||||
|
... ...
|
||||||
|
!
|
||||||
|
! exit the parallel environment
|
||||||
|
call psb_exit(ctxt)
|
||||||
|
stop
|
||||||
|
\end{minted}
|
||||||
|
\else
|
||||||
{\small
|
{\small
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
use psb_base_mod
|
use psb_base_mod
|
||||||
@@ -155,8 +210,8 @@ the corresponding codes are available in \verb|examples/fileread/|.
|
|||||||
... ...
|
... ...
|
||||||
!
|
!
|
||||||
! initialize the parallel environment
|
! initialize the parallel environment
|
||||||
call psb_init(ictxt)
|
call psb_init(ctxt)
|
||||||
call psb_info(ictxt,iam,np)
|
call psb_info(ctxt,iam,np)
|
||||||
... ...
|
... ...
|
||||||
!
|
!
|
||||||
! read and assemble the spd matrix A and the right-hand side b
|
! read and assemble the spd matrix A and the right-hand side b
|
||||||
@@ -188,15 +243,16 @@ the corresponding codes are available in \verb|examples/fileread/|.
|
|||||||
... ...
|
... ...
|
||||||
!
|
!
|
||||||
! exit the parallel environment
|
! exit the parallel environment
|
||||||
call psb_exit(ictxt)
|
call psb_exit(ctxt)
|
||||||
stop
|
stop
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
}
|
}
|
||||||
|
\fi
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
\caption{setup and application of the default multilevel preconditioner (example 1).
|
\caption{setup and application of the default multilevel preconditioner (example 1).
|
||||||
\label{fig:ex1}}
|
\label{fig:ex1}}
|
||||||
\end{center}
|
\end{center}
|
||||||
\end{figure}
|
\end{listing}
|
||||||
|
|
||||||
Different versions of the multilevel preconditioner can be obtained by changing
|
Different versions of the multilevel preconditioner can be obtained by changing
|
||||||
the default values of the preconditioner parameters. The code reported in
|
the default values of the preconditioner parameters. The code reported in
|
||||||
@@ -205,7 +261,7 @@ which applies 1 block-Jacobi sweep as pre- and post-smoother,
|
|||||||
and solves the coarsest-level system with 8 block-Jacobi sweeps.
|
and solves the coarsest-level system with 8 block-Jacobi sweeps.
|
||||||
Note that the ILU(0) factorization (plus triangular solve) is used as
|
Note that the ILU(0) factorization (plus triangular solve) is used as
|
||||||
local solver for the block-Jacobi sweeps, since this is the default associated
|
local solver for the block-Jacobi sweeps, since this is the default associated
|
||||||
with block-Jacobi and set by~\verb|P%init|.
|
with block-Jacobi and set by~\fortinline|P%init|.
|
||||||
Furthermore, specifying block-Jacobi as coarsest-level
|
Furthermore, specifying block-Jacobi as coarsest-level
|
||||||
solver implies that the coarsest-level matrix is distributed
|
solver implies that the coarsest-level matrix is distributed
|
||||||
among the processes.
|
among the processes.
|
||||||
@@ -216,7 +272,7 @@ implemented in MUMPS. It is specified that the coarsest-level
|
|||||||
matrix is distributed, since MUMPS can be used on both
|
matrix is distributed, since MUMPS can be used on both
|
||||||
replicated and distributed matrices, and by default
|
replicated and distributed matrices, and by default
|
||||||
it is used on replicated ones.
|
it is used on replicated ones.
|
||||||
%Note the use of the parameter \verb|pos|
|
%Note the use of the parameter \fortinline|pos|
|
||||||
%to specify a property only for the pre-smoother or the post-smoother
|
%to specify a property only for the pre-smoother or the post-smoother
|
||||||
%(see Section~\ref{sec:precset} for more details).
|
%(see Section~\ref{sec:precset} for more details).
|
||||||
The code fragments shown in Figures~\ref{fig:ex2} and \ref{fig:ex3} are
|
The code fragments shown in Figures~\ref{fig:ex2} and \ref{fig:ex3} are
|
||||||
@@ -232,8 +288,20 @@ The corresponding example program is available in the file
|
|||||||
For all the previous preconditioners, example programs where the sparse matrix and
|
For all the previous preconditioners, example programs where the sparse matrix and
|
||||||
the right-hand side are generated by discretizing a PDE with Dirichlet
|
the right-hand side are generated by discretizing a PDE with Dirichlet
|
||||||
boundary conditions are also available in the directory \verb|examples/pdegen|.
|
boundary conditions are also available in the directory \verb|examples/pdegen|.
|
||||||
|
\vspace{-1em}\begin{listing}[tbh]
|
||||||
\begin{figure}[tbh]
|
\ifpdf%
|
||||||
|
\begin{minted}[breaklines=true,bgcolor=bg,fontsize=\small]{fortran}
|
||||||
|
! build a V-cycle preconditioner with 1 block-Jacobi sweep (with
|
||||||
|
! ILU(0) on the blocks) as pre- and post-smoother, and 8 block-Jacobi
|
||||||
|
! sweeps (with ILU(0) on the blocks) as coarsest-level solver
|
||||||
|
call P%init('ML',info)
|
||||||
|
call P%set('SMOOTHER_TYPE','BJAC',info)
|
||||||
|
call P%set('COARSE_SOLVE','BJAC',info)
|
||||||
|
call P%set('COARSE_SWEEPS',8,info)
|
||||||
|
call P%hierarchy_build(A,desc_A,info)
|
||||||
|
call P%smoothers_build(A,desc_A,info)
|
||||||
|
\end{minted}
|
||||||
|
\else%
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\begin{minipage}{.90\textwidth}
|
\begin{minipage}{.90\textwidth}
|
||||||
{\small
|
{\small
|
||||||
@@ -243,7 +311,7 @@ boundary conditions are also available in the directory \verb|examples/pdegen|.
|
|||||||
! ILU(0) on the blocks) as pre- and post-smoother, and 8 block-Jacobi
|
! ILU(0) on the blocks) as pre- and post-smoother, and 8 block-Jacobi
|
||||||
! sweeps (with ILU(0) on the blocks) as coarsest-level solver
|
! sweeps (with ILU(0) on the blocks) as coarsest-level solver
|
||||||
call P%init('ML',info)
|
call P%init('ML',info)
|
||||||
call_P%set('SMOOTHER_TYPE','BJAC',info)
|
call P%set('SMOOTHER_TYPE','BJAC',info)
|
||||||
call P%set('COARSE_SOLVE','BJAC',info)
|
call P%set('COARSE_SOLVE','BJAC',info)
|
||||||
call P%set('COARSE_SWEEPS',8,info)
|
call P%set('COARSE_SWEEPS',8,info)
|
||||||
call P%hierarchy_build(A,desc_A,info)
|
call P%hierarchy_build(A,desc_A,info)
|
||||||
@@ -252,12 +320,27 @@ boundary conditions are also available in the directory \verb|examples/pdegen|.
|
|||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
}
|
}
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
|
|
||||||
\caption{setup of a multilevel preconditioner based on the default decoupled coarsening\label{fig:ex2}}
|
|
||||||
\end{center}
|
\end{center}
|
||||||
\end{figure}
|
\fi\vspace{-2em}%
|
||||||
|
\caption{setup of a multilevel preconditioner based on the default decoupled coarsening\label{fig:ex2}}
|
||||||
\begin{figure}[h!]
|
\end{listing}\vspace*{-2em}
|
||||||
|
\begin{listing}[h!]
|
||||||
|
\ifpdf
|
||||||
|
\begin{minted}[breaklines=true,bgcolor=bg,fontsize=\small]{fortran}
|
||||||
|
! build a W-cycle preconditioner with 2 hybrid Gauss-Seidel sweeps
|
||||||
|
! as pre- and post-smoother, a distributed coarsest
|
||||||
|
! matrix, and MUMPS as coarsest-level solver
|
||||||
|
call P%init('ML',info)
|
||||||
|
call P%set('PAR_AGGR_ALG','COUPLED',info)
|
||||||
|
call P%set('ML_CYCLE','WCYCLE',info)
|
||||||
|
call P%set('SMOOTHER_TYPE','FBGS',info)
|
||||||
|
call P%set('SMOOTHER_SWEEPS',2,info)
|
||||||
|
call P%set('COARSE_SOLVE','MUMPS',info)
|
||||||
|
call P%set('COARSE_MAT','DIST',info)
|
||||||
|
call P%hierarchy_build(A,desc_A,info)
|
||||||
|
call P%smoothers_build(A,desc_A,info)
|
||||||
|
\end{minted}
|
||||||
|
\else
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\begin{minipage}{.90\textwidth}
|
\begin{minipage}{.90\textwidth}
|
||||||
{\small
|
{\small
|
||||||
@@ -279,11 +362,27 @@ boundary conditions are also available in the directory \verb|examples/pdegen|.
|
|||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
}
|
}
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
\caption{setup of a multilevel preconditioner based on the coupled coarsening based on weighted matching\label{fig:ex3}}
|
|
||||||
\end{center}
|
\end{center}
|
||||||
\end{figure}
|
\fi\vspace{-2em}%
|
||||||
|
\caption{setup of a multilevel preconditioner based on the coupled coarsening based on weighted matching\label{fig:ex3}}
|
||||||
\begin{figure}[h!]
|
\end{listing}\vspace*{-2em}
|
||||||
|
\begin{listing}[h!]
|
||||||
|
\ifpdf
|
||||||
|
\begin{minted}[breaklines=true,bgcolor=bg,fontsize=\small]{fortran}
|
||||||
|
! build a W-cycle preconditioner with 2 hybrid Gauss-Seidel sweeps
|
||||||
|
! as pre- and post-smoother, a distributed coarsest
|
||||||
|
! matrix, and MUMPS as coarsest-level solver
|
||||||
|
call P%init('ML',info)
|
||||||
|
call P%set('PAR_AGGR_ALG','COUPLED',info)
|
||||||
|
call P%set('ML_CYCLE','WCYCLE',info)
|
||||||
|
call P%set('SMOOTHER_TYPE','FBGS',info)
|
||||||
|
call P%set('SMOOTHER_SWEEPS',2,info)
|
||||||
|
call P%set('COARSE_SOLVE','MUMPS',info)
|
||||||
|
call P%set('COARSE_MAT','DIST',info)
|
||||||
|
call P%hierarchy_build(A,desc_A,info)
|
||||||
|
call P%smoothers_build(A,desc_A,info)
|
||||||
|
\end{minted}
|
||||||
|
\else
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\begin{minipage}{.90\textwidth}
|
\begin{minipage}{.90\textwidth}
|
||||||
{\small
|
{\small
|
||||||
@@ -299,9 +398,10 @@ boundary conditions are also available in the directory \verb|examples/pdegen|.
|
|||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
}
|
}
|
||||||
\end{minipage}
|
\end{minipage}
|
||||||
\caption{setup of a one-level Schwarz preconditioner.\label{fig:ex4}}
|
|
||||||
\end{center}
|
\end{center}
|
||||||
\end{figure}
|
\fi\vspace{-2em}%
|
||||||
|
\caption{setup of a one-level Schwarz preconditioner.\label{fig:ex4}}
|
||||||
|
\end{listing}
|
||||||
|
|
||||||
|
|
||||||
%%% Local Variables:
|
%%% Local Variables:
|
||||||
|
|||||||
+24
-4
@@ -24,8 +24,8 @@ the context of the multilevel preconditioners it is necessary to:
|
|||||||
\item pass that variable as the argument to the \verb|set| routine as in the
|
\item pass that variable as the argument to the \verb|set| routine as in the
|
||||||
following:
|
following:
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\verb|call p%set(smoother,info [,ilev,ilmax,pos])|\\
|
\fortinline|call p%set(smoother,info [,ilev,ilmax,pos])|\\
|
||||||
\verb|call p%set(solver,info [,ilev,ilmax,pos])|
|
\fortinline|call p%set(solver,info [,ilev,ilmax,pos])|
|
||||||
\end{center}
|
\end{center}
|
||||||
\item link the code implementing the various methods into the application executable.
|
\item link the code implementing the various methods into the application executable.
|
||||||
\end{itemize}
|
\end{itemize}
|
||||||
@@ -55,10 +55,10 @@ need to be ovverridden (rewritten).
|
|||||||
The interfaces for the calls shown above are defined using
|
The interfaces for the calls shown above are defined using
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\begin{tabular}{p{1.4cm}p{12cm}}
|
\begin{tabular}{p{1.4cm}p{12cm}}
|
||||||
\verb|smoother| & \verb|class(amg_x_base_smoother_type)| \\
|
\fortinline|smoother| & \fortinline|class(amg_x_base_smoother_type)| \\
|
||||||
& The user-defined new smoother to be employed in the
|
& The user-defined new smoother to be employed in the
|
||||||
preconditioner.\\
|
preconditioner.\\
|
||||||
\verb|solver| & \verb|class(amg_x_base_solver_type)| \\
|
\fortinline|solver| & \fortinline|class(amg_x_base_solver_type)| \\
|
||||||
& The user-defined new solver to be employed in the
|
& The user-defined new solver to be employed in the
|
||||||
preconditioner.
|
preconditioner.
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
@@ -67,6 +67,25 @@ The other arguments are defined in the way described in
|
|||||||
Sec.~\ref{sec:precset}. As an example, in the \verb|tests/newslv|
|
Sec.~\ref{sec:precset}. As an example, in the \verb|tests/newslv|
|
||||||
code we define a new object of type \verb|amg_d_tlu_solver_type|, and
|
code we define a new object of type \verb|amg_d_tlu_solver_type|, and
|
||||||
we pass it as follows:
|
we pass it as follows:
|
||||||
|
\ifpdf
|
||||||
|
\begin{minted}[breaklines=true,bgcolor=bg,fontsize=\small]{fortran}
|
||||||
|
! sparse matrix and preconditioner
|
||||||
|
type(psb_dspmat_type) :: a
|
||||||
|
type(amg_dprec_type) :: prec
|
||||||
|
type(amg_d_tlu_solver_type) :: tlusv
|
||||||
|
|
||||||
|
......
|
||||||
|
!
|
||||||
|
! prepare the preconditioner: an ML with defaults, but with TLU solver at
|
||||||
|
! intermediate levels. All other parameters are at default values.
|
||||||
|
!
|
||||||
|
call prec%init('ML', info)
|
||||||
|
call prec%hierarchy_build(a,desc_a,info)
|
||||||
|
nlv = prec%get_nlevs()
|
||||||
|
call prec%set(tlusv, info,ilev=1,ilmax=max(1,nlv-1))
|
||||||
|
call prec%smoothers_build(a,desc_a,info)
|
||||||
|
\end{minted}
|
||||||
|
\else
|
||||||
\begin{verbatim}
|
\begin{verbatim}
|
||||||
|
|
||||||
! sparse matrix and preconditioner
|
! sparse matrix and preconditioner
|
||||||
@@ -86,3 +105,4 @@ we pass it as follows:
|
|||||||
call prec%smoothers_build(a,desc_a,info)
|
call prec%smoothers_build(a,desc_a,info)
|
||||||
|
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
|
\fi
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
{\textsc{\ref{sec:overview} General Overview}}
|
{\textsc{\ref{sec:overview} General Overview}}
|
||||||
|
|
||||||
The \textsc{Algebraic MultiGrid Preconditioners Package based on
|
The \textsc{Algebraic MultiGrid Preconditioners Package based on
|
||||||
PSBLAS (AMG4PSBLAS)} provides parallel Algebraic MultiGrid (AMG) preconditioners (see, e.g., \cite{Briggs2000,Stuben_01}),
|
PSBLAS} (\textsc{AMG\-4\-PSBLAS}) provides parallel Algebraic MultiGrid (AMG) preconditioners (see, e.g., \cite{Briggs2000,Stuben_01}),
|
||||||
to be used in the iterative solution of linear systems,
|
to be used in the iterative solution of linear systems,
|
||||||
\begin{equation}
|
\begin{equation}
|
||||||
Ax=b,
|
Ax=b,
|
||||||
|
|||||||
@@ -16,6 +16,7 @@
|
|||||||
\usepackage{html}
|
\usepackage{html}
|
||||||
\usepackage{ifthen}
|
\usepackage{ifthen}
|
||||||
\usepackage{graphicx}
|
\usepackage{graphicx}
|
||||||
|
\usepackage{subfig}
|
||||||
\newtheorem{theorem}{Theorem}
|
\newtheorem{theorem}{Theorem}
|
||||||
\newtheorem{corollary}{Corollary}
|
\newtheorem{corollary}{Corollary}
|
||||||
\usepackage{rotating}
|
\usepackage{rotating}
|
||||||
@@ -24,6 +25,14 @@
|
|||||||
\usemintedstyle{friendly}
|
\usemintedstyle{friendly}
|
||||||
\definecolor{bg}{rgb}{0.95,0.95,0.95}
|
\definecolor{bg}{rgb}{0.95,0.95,0.95}
|
||||||
\usepackage{breakurl}
|
\usepackage{breakurl}
|
||||||
|
\usepackage{mathpazo}
|
||||||
|
\usepackage[english]{babel}
|
||||||
|
\ifpdf
|
||||||
|
\newmintinline[fortinline]{fortran}{}
|
||||||
|
\else%
|
||||||
|
\def\fortinline{\lstinline[basicstyle=\ttfamily,language=fortran]}
|
||||||
|
\fi
|
||||||
|
|
||||||
%\newboolean{mtc}
|
%\newboolean{mtc}
|
||||||
%\setboolean{mtc}{true}
|
%\setboolean{mtc}{true}
|
||||||
|
|
||||||
@@ -186,6 +195,7 @@ Preconditioners Package based on PSBLAS}
|
|||||||
\clearpage
|
\clearpage
|
||||||
\appendix
|
\appendix
|
||||||
\include{license}
|
\include{license}
|
||||||
|
\include{covenant}
|
||||||
\clearpage
|
\clearpage
|
||||||
\include{bibliography}
|
\include{bibliography}
|
||||||
|
|
||||||
|
|||||||
@@ -21,7 +21,17 @@
|
|||||||
%\newboolean{mtc}
|
%\newboolean{mtc}
|
||||||
%\setboolean{mtc}{true}
|
%\setboolean{mtc}{true}
|
||||||
\usepackage{microtype}
|
\usepackage{microtype}
|
||||||
|
\ifpdf
|
||||||
|
\newmintinline[fortinline]{fortran}{}
|
||||||
|
\else%
|
||||||
\usepackage{listings}
|
\usepackage{listings}
|
||||||
|
\def\fortinline{\lstinline[basicstyle=\ttfamily,language=fortran]}
|
||||||
|
\usepackage{float}
|
||||||
|
\newfloat{listing}{htbp}{lop}
|
||||||
|
\floatname{listing}{Listing}
|
||||||
|
\def\lstfloatautorefname{Listing} % needed for hyperref/auroref
|
||||||
|
|
||||||
|
\fi
|
||||||
|
|
||||||
\pdfoutput=0
|
\pdfoutput=0
|
||||||
\relax
|
\relax
|
||||||
|
|||||||
+267
-238
@@ -3,13 +3,13 @@
|
|||||||
{\textsc{\ref{sec:userinterface} User Interface}}
|
{\textsc{\ref{sec:userinterface} User Interface}}
|
||||||
|
|
||||||
The basic user interface of AMG4PBLAS consists of eight methods. The six
|
The basic user interface of AMG4PBLAS consists of eight methods. The six
|
||||||
methods \verb|init|, \verb|set|, \verb|build|,
|
methods \fortinline|init|, \fortinline|set|, \fortinline|build|,
|
||||||
\verb|hierarchy_build|, \verb|smoothers_build| and \verb|apply|
|
\fortinline|hierarchy_build|, \fortinline|smoothers_build| and \fortinline|apply|
|
||||||
encapsulate all the functionalities for the setup and the application
|
encapsulate all the functionalities for the setup and the application
|
||||||
of any multilevel and one-level preconditioner implemented in the
|
of any multilevel and one-level preconditioner implemented in the
|
||||||
package.
|
package.
|
||||||
The method \verb|free| deallocates the preconditioner data structure, while
|
The method \fortinline|free| deallocates the preconditioner data structure, while
|
||||||
\verb|descr| prints a description of the preconditioner setup by the user.
|
\fortinline|descr| prints a description of the preconditioner setup by the user.
|
||||||
For backward compatibility, methods are also accessible as
|
For backward compatibility, methods are also accessible as
|
||||||
stand-alone subroutines.
|
stand-alone subroutines.
|
||||||
|
|
||||||
@@ -43,24 +43,24 @@ A description of each method is given in the remainder of this section.
|
|||||||
\subsection{Method init\label{sec:precinit}}
|
\subsection{Method init\label{sec:precinit}}
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\verb|call p%init(icontx,ptype,info)|
|
\fortinline|call p%init(contxt,ptype,info)|
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
\noindent
|
\noindent
|
||||||
This method allocates and initializes the preconditioner
|
This method allocates and initializes the preconditioner
|
||||||
\verb|p|, according to the preconditioner type chosen by the user.
|
\fortinline|p|, according to the preconditioner type chosen by the user.
|
||||||
|
|
||||||
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
||||||
|
|
||||||
\begin{tabular}{p{1.2cm}p{12cm}}
|
\begin{tabular}{p{1.2cm}p{12cm}}
|
||||||
|
|
||||||
\verb|icontxt| & \verb|integer, intent(in)|.\\
|
\fortinline|contxt| & \fortinline|type(psb_ctxt_type), intent(in)|.\\
|
||||||
& The communication context.\\
|
& The communication context.\\
|
||||||
\verb|ptype| & \verb|character(len=*), intent(in)|.\\
|
\fortinline|ptype| & \fortinline|character(len=*), intent(in)|.\\
|
||||||
& The type of preconditioner. Its values are specified
|
& The type of preconditioner. Its values are specified
|
||||||
in Table~\ref{tab:precinit}.\\
|
in Table~\ref{tab:precinit}.\\
|
||||||
& Note that the strings are case insensitive.\\
|
& Note that the strings are case insensitive.\\
|
||||||
\verb|info| & \verb|integer, intent(out)|.\\
|
\fortinline|info| & \fortinline|integer, intent(out)|.\\
|
||||||
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
||||||
|
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
@@ -73,63 +73,63 @@ This method allocates and initializes the preconditioner
|
|||||||
\subsection{Method set\label{sec:precset}}
|
\subsection{Method set\label{sec:precset}}
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\verb|call p%set(what,val,info [,ilev, ilmax, pos, idx])|
|
\fortinline|call p%set(what,val,info [,ilev, ilmax, pos, idx])|
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
\noindent
|
\noindent
|
||||||
This method sets the parameters defining the preconditioner \verb|p|. More
|
This method sets the parameters defining the preconditioner \fortinline|p|. More
|
||||||
precisely, the parameter identified by \verb|what| is assigned the value
|
precisely, the parameter identified by \fortinline|what| is assigned the value
|
||||||
contained in \verb|val|.
|
contained in \fortinline|val|.
|
||||||
|
|
||||||
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
||||||
|
|
||||||
\begin{tabular}{p{1.2cm}p{12cm}}
|
\begin{tabular}{p{1.2cm}p{12cm}}
|
||||||
\verb|what| & \verb|character(len=*)|. \\
|
\fortinline|what| & \fortinline|character(len=*)|. \\
|
||||||
& The parameter to be set. It can be specified through its name;
|
& The parameter to be set. It can be specified through its name;
|
||||||
the string is case-insensitive. See
|
the string is case-insensitive. See
|
||||||
Tables~\ref{tab:p_cycle}-\ref{tab:p_smoother_1}.\\
|
Tables~\ref{tab:p_cycle}-\ref{tab:p_smoother_1}.\\
|
||||||
\verb|val | & \verb|integer| \emph{or} \verb|character(len=*)| \emph{or}
|
\fortinline|val | & \fortinline|integer| \emph{or} \fortinline|character(len=*)| \emph{or}
|
||||||
\verb|real(psb_spk_)| \emph{or} \verb|real(psb_dpk_)|,
|
\fortinline|real(psb_spk_)| \emph{or} \fortinline|real(psb_dpk_)|,
|
||||||
\verb|intent(in)|.\\
|
\fortinline|intent(in)|.\\
|
||||||
& The value of the parameter to be set. The list of allowed
|
& The value of the parameter to be set. The list of allowed
|
||||||
values and the corresponding data types is given in
|
values and the corresponding data types is given in
|
||||||
Tables~\ref{tab:p_cycle}-\ref{tab:p_smoother_1}.
|
Tables~\ref{tab:p_cycle}-\ref{tab:p_smoother_1}.
|
||||||
When the value is of type \verb|character(len=*)|,
|
When the value is of type \fortinline|character(len=*)|,
|
||||||
it is also treated as case insensitive.\\
|
it is also treated as case insensitive.\\
|
||||||
\verb|info| & \verb|integer, intent(out)|.\\
|
\fortinline|info| & \fortinline|integer, intent(out)|.\\
|
||||||
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors}
|
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors}
|
||||||
for details.\\
|
for details.\\
|
||||||
\verb|ilev| & \verb|integer, optional, intent(in)|.\\
|
\fortinline|ilev| & \fortinline|integer, optional, intent(in)|.\\
|
||||||
& For the multilevel preconditioner, the level at which the
|
& For the multilevel preconditioner, the level at which the
|
||||||
preconditioner parameter has to be set.
|
preconditioner parameter has to be set.
|
||||||
The levels are numbered in increasing
|
The levels are numbered in increasing
|
||||||
order starting from the finest one, i.e., level 1 is the finest level.
|
order starting from the finest one, i.e., level 1 is the finest level.
|
||||||
If \verb|ilev| is not present, the parameter identified by \verb|what|
|
If \fortinline|ilev| is not present, the parameter identified by \fortinline|what|
|
||||||
is set at all the appropriate levels (see
|
is set at all the appropriate levels (see
|
||||||
Tables~\ref{tab:p_cycle}-\ref{tab:p_smoother_1}).\\
|
Tables~\ref{tab:p_cycle}-\ref{tab:p_smoother_1}).\\
|
||||||
\verb|ilmax| & \verb|integer, optional, intent(in)|.\\
|
\fortinline|ilmax| & \fortinline|integer, optional, intent(in)|.\\
|
||||||
& For the multilevel preconditioner, when both
|
& For the multilevel preconditioner, when both
|
||||||
\verb|ilev| and \verb|ilmax| are present, the settings
|
\fortinline|ilev| and \fortinline|ilmax| are present, the settings
|
||||||
are applied at all levels \verb|ilev:ilmax|. When
|
are applied at all levels \fortinline|ilev:ilmax|. When
|
||||||
\verb|ilev| is present but \verb|ilmax| is not, then
|
\fortinline|ilev| is present but \fortinline|ilmax| is not, then
|
||||||
the default is \verb|ilmax=ilev|.
|
the default is \fortinline|ilmax=ilev|.
|
||||||
The levels are numbered in increasing
|
The levels are numbered in increasing
|
||||||
order starting from the finest one, i.e., level 1 is the finest level. \\
|
order starting from the finest one, i.e., level 1 is the finest level. \\
|
||||||
\verb|pos| & \verb|charater(len=*), optional, intent(in)|.\\
|
\fortinline|pos| & \fortinline|character(len=*), optional, intent(in)|.\\
|
||||||
& Whether the other arguments apply only to the pre-smoother (\verb|'PRE'|)
|
& Whether the other arguments apply only to the pre-smoother (\fortinline|'PRE'|)
|
||||||
or to the post-smoother (\verb|'POST'|). If \verb|pos| is not present,
|
or to the post-smoother (\fortinline|'POST'|). If \fortinline|pos| is not present,
|
||||||
the other arguments are applied to both smoothers.
|
the other arguments are applied to both smoothers.
|
||||||
If the preconditioner is one-level or the parameter identified by \verb|what|
|
If the preconditioner is one-level or the parameter identified by \fortinline|what|
|
||||||
does not concern the smoothers, \verb|pos| is ignored.\\
|
does not concern the smoothers, \fortinline|pos| is ignored.\\
|
||||||
\verb|idx| & \verb|integer, optional, intent(in)|.\\
|
\fortinline|idx| & \fortinline|integer, optional, intent(in)|.\\
|
||||||
& An auxiliary input argument that can be passed to the
|
& An auxiliary input argument that can be passed to the
|
||||||
underlying objects.
|
underlying objects.
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
|
|
||||||
|
|
||||||
\noindent
|
\noindent
|
||||||
However, in this case the optional arguments \verb|ilev|,
|
However, in this case the optional arguments \fortinline|ilev|,
|
||||||
\verb|ilmax|, \verb|pos| and \verb|idx|
|
\fortinline|ilmax|, \fortinline|pos| and \fortinline|idx|
|
||||||
cannot be used. \\
|
cannot be used. \\
|
||||||
|
|
||||||
A variety of preconditioners can be obtained
|
A variety of preconditioners can be obtained
|
||||||
@@ -148,7 +148,7 @@ A list of the parameters that can be set, along with their allowed and
|
|||||||
default values, is given in Tables~\ref{tab:p_cycle}-\ref{tab:p_smoother_1}.\\
|
default values, is given in Tables~\ref{tab:p_cycle}-\ref{tab:p_smoother_1}.\\
|
||||||
|
|
||||||
\textbf{Remark 2.} A smoother is usually obtained by combining two objects:
|
\textbf{Remark 2.} A smoother is usually obtained by combining two objects:
|
||||||
a smoother (\verb|SMOOTHER_TYPE|) and a local solver (\verb|SUB_SOLVE|),
|
a smoother (\fortinline|'SMOOTHER_TYPE'|) and a local solver (\fortinline|'SUB_SOLVE'|),
|
||||||
as specified in Tables~\ref{tab:p_smoother}-\ref{tab:p_smoother_1}.
|
as specified in Tables~\ref{tab:p_smoother}-\ref{tab:p_smoother_1}.
|
||||||
For example, the block-Jacobi smoother using
|
For example, the block-Jacobi smoother using
|
||||||
ILU(0) on the blocks is obtained by combining the block-Jacobi smoother
|
ILU(0) on the blocks is obtained by combining the block-Jacobi smoother
|
||||||
@@ -160,9 +160,9 @@ result of combining the block-Jacobi smoother object with a single sweep
|
|||||||
of the point-Jacobi solver object. However, for simplicity, shortcuts are
|
of the point-Jacobi solver object. However, for simplicity, shortcuts are
|
||||||
provided to set point-Jacobi, hybrid (forward) Gauss-Seidel, and
|
provided to set point-Jacobi, hybrid (forward) Gauss-Seidel, and
|
||||||
hybrid backward Gauss-Seidel, i.e., the previous smoothers can be defined
|
hybrid backward Gauss-Seidel, i.e., the previous smoothers can be defined
|
||||||
by setting only \verb|SMOOTHER_TYPE| to appropriate values (see
|
by setting only \fortinline|'SMOOTHER_TYPE'| to appropriate values (see
|
||||||
Tables~\ref{tab:p_smoother}), i.e., without setting
|
Tables~\ref{tab:p_smoother}), i.e., without setting
|
||||||
\verb|SUB_SOLVE| too.
|
\fortinline|'SUB_SOLVE'| too.
|
||||||
|
|
||||||
The smoother and solver objects are arranged in a
|
The smoother and solver objects are arranged in a
|
||||||
hierarchical manner. When specifying a smoother object, its parameters,
|
hierarchical manner. When specifying a smoother object, its parameters,
|
||||||
@@ -205,9 +205,9 @@ Likewise, the replicated layout can be used with any solver but SuperLu\_Dist;
|
|||||||
therefore, if SuperLu\_Dist has been previously set, the coarsest-level
|
therefore, if SuperLu\_Dist has been previously set, the coarsest-level
|
||||||
solver is changed to the default sequential solver.
|
solver is changed to the default sequential solver.
|
||||||
|
|
||||||
\textbf{Remark 4.} The argument \verb|idx| can be used to allow finer
|
\textbf{Remark 4.} The argument \fortinline|idx| can be used to allow finer
|
||||||
control for those solvers; for instance, by specifying the keyword
|
control for those solvers; for instance, by specifying the keyword
|
||||||
\verb|MUMPS_IPAR_ENTRY| and an appropriate value for \verb|idx|, it is
|
\fortinline|'MUMPS_IPAR_ENTRY'| and an appropriate value for \fortinline|idx|, it is
|
||||||
possible to set any entry in the MUMPS integer control array.
|
possible to set any entry in the MUMPS integer control array.
|
||||||
See also Sec.~\ref{sec:adding}.
|
See also Sec.~\ref{sec:adding}.
|
||||||
%The \verb|what,val| pairs described here are those of the predefined
|
%The \verb|what,val| pairs described here are those of the predefined
|
||||||
@@ -220,13 +220,13 @@ See also Sec.~\ref{sec:adding}.
|
|||||||
%\begin{tabular}{|p{5cm}|l|p{2.4cm}|p{2.5cm}|p{5cm}|}
|
%\begin{tabular}{|p{5cm}|l|p{2.4cm}|p{2.5cm}|p{5cm}|}
|
||||||
\begin{tabular}{|p{3.6cm}|l|p{2.4cm}|p{2.4cm}|p{7.2cm}|}
|
\begin{tabular}{|p{3.6cm}|l|p{2.4cm}|p{2.4cm}|p{7.2cm}|}
|
||||||
\hline
|
\hline
|
||||||
\verb|what| & \textsc{data type} & \verb|val| & \textsc{default} &
|
\fortinline|what| & \textsc{data type} & \fortinline|val| & \textsc{default} &
|
||||||
\textsc{comments} \\ \hline
|
\textsc{comments} \\ \hline
|
||||||
\verb|'ML_CYCLE'| & \verb|character(len=*)|
|
\fortinline|'ML_CYCLE'| & \fortinline|character(len=*)|
|
||||||
& \texttt{'VCYCLE'} \par \texttt{'WCYCLE'} \par \texttt{'KCYCLE'} \par \texttt{'ADD'}
|
& \fortinline|'VCYCLE'| \par \fortinline|'WCYCLE'| \par \fortinline|'KCYCLE'| \par \fortinline|'ADD'|
|
||||||
& \texttt{'VCYCLE'}
|
& \fortinline|'VCYCLE'|
|
||||||
&Multilevel cycle: V-cycle, W-cycle, K-cycle, and additive composition. \\ \hline
|
&Multilevel cycle: V-cycle, W-cycle, K-cycle, and additive composition. \\ \hline
|
||||||
\verb|'OUTER_SWEEPS'| & \texttt{integer} &
|
\fortinline|'OUTER_SWEEPS'| & \fortinline|integer| &
|
||||||
Any integer \par number $\ge 1$ & 1 &
|
Any integer \par number $\ge 1$ & 1 &
|
||||||
Number of multilevel cycles. \\ \hline
|
Number of multilevel cycles. \\ \hline
|
||||||
|
|
||||||
@@ -242,9 +242,9 @@ be applied.
|
|||||||
%\begin{tabular}{|p{5cm}|l|p{2.4cm}|p{2.5cm}|p{5cm}|}
|
%\begin{tabular}{|p{5cm}|l|p{2.4cm}|p{2.5cm}|p{5cm}|}
|
||||||
\begin{tabular}{|p{5.7cm}|l|p{2.3cm}|p{2.5cm}|p{6.9cm}|}
|
\begin{tabular}{|p{5.7cm}|l|p{2.3cm}|p{2.5cm}|p{6.9cm}|}
|
||||||
\hline
|
\hline
|
||||||
\verb|what| & \textsc{data type} & \verb|val| & \textsc{default} &
|
\fortinline|what| & \textsc{data type} & \fortinline|val| & \textsc{default} &
|
||||||
\textsc{comments} \\ \hline
|
\textsc{comments} \\ \hline
|
||||||
\verb|'MIN_COARSE_SIZE_PER_PROCESS'| & \verb|integer|
|
\fortinline|'MIN_COARSE_SIZE_PER_PROCESS'| & \fortinline|integer|
|
||||||
& Any number \par $> 0$
|
& Any number \par $> 0$
|
||||||
& $200$
|
& $200$
|
||||||
& Coarse size threshold per process. The aggregation stops
|
& Coarse size threshold per process. The aggregation stops
|
||||||
@@ -254,7 +254,7 @@ be applied.
|
|||||||
multiplied by the number of processes.
|
multiplied by the number of processes.
|
||||||
|
|
||||||
\\ \hline
|
\\ \hline
|
||||||
\verb|'MIN_COARSE_SIZE'| & \verb|integer|
|
\fortinline|'MIN_COARSE_SIZE'| & \fortinline|integer|
|
||||||
& Any number \par $> 0$
|
& Any number \par $> 0$
|
||||||
& -1
|
& -1
|
||||||
& Coarse size threshold. The aggregation stops
|
& Coarse size threshold. The aggregation stops
|
||||||
@@ -263,10 +263,10 @@ be applied.
|
|||||||
is lower than or equal to this threshold
|
is lower than or equal to this threshold
|
||||||
(see Note). If negative, it is ignored in
|
(see Note). If negative, it is ignored in
|
||||||
favour of the default for
|
favour of the default for
|
||||||
\verb|'MIN_COARSE_SIZE_PER_PROCESS'|.
|
\fortinline|'MIN_COARSE_SIZE_PER_PROCESS'|.
|
||||||
\\ \hline
|
\\ \hline
|
||||||
|
|
||||||
\verb|'MIN_CR_RATIO'| & \verb|real|
|
\fortinline|'MIN_CR_RATIO'| & \fortinline|real|
|
||||||
& Any number \par $> 1$
|
& Any number \par $> 1$
|
||||||
& 1.5
|
& 1.5
|
||||||
& Minimum coarsening ratio. The aggregation stops
|
& Minimum coarsening ratio. The aggregation stops
|
||||||
@@ -274,59 +274,68 @@ be applied.
|
|||||||
at two consecutive levels is lower than or equal to this
|
at two consecutive levels is lower than or equal to this
|
||||||
threshold (see Note).\\ \hline
|
threshold (see Note).\\ \hline
|
||||||
|
|
||||||
\verb|'MAX_LEVS'| & \verb|integer|
|
\fortinline|'MAX_LEVS'| & \fortinline|integer|
|
||||||
& Any integer \par number $> 1$
|
& Any integer \par number $> 1$
|
||||||
& 20
|
& 20
|
||||||
& Maximum number of levels. The aggregation stops
|
& Maximum number of levels. The aggregation stops
|
||||||
if the number of levels reaches this value (see Note). \\ \hline
|
if the number of levels reaches this value (see Note). \\ \hline
|
||||||
|
\fortinline|'PAR_AGGR_ALG'| & \fortinline|character(len=*)| \hspace*{-3mm}
|
||||||
\verb|'PAR_AGGR_ALG'| & \verb|character(len=*)| \hspace*{-3mm}
|
& \texttt{'DEC'}, \texttt{'SYMDEC'}, \texttt{'COUPLED'}
|
||||||
& \texttt{'DEC'}, \texttt{'SYMDEC'}, \texttt{'COUPLED'}
|
& \texttt{'DEC'}
|
||||||
& \texttt{'DEC'}
|
& Parallel aggregation algorithm. \par the
|
||||||
& Parallel aggregation algorithm. \par the
|
\fortinline|SYMDEC| option applies decoupled
|
||||||
\verb|SYMDEC| option applies decoupled
|
aggregation to the sparsity pattern
|
||||||
aggregation to the sparsity pattern
|
of $A+A^T$.\\ \hline
|
||||||
of $A+A^T$.\\ \hline
|
\ifpdf
|
||||||
|
|
||||||
\verb|'AGGR_TYPE'| & \verb|character(len=*)| \hspace*{-3mm}
|
|
||||||
& \textbf{\texttt{'SOC1'}} &
|
|
||||||
\textbf{\texttt{'SOC1'}},
|
|
||||||
\textbf{\texttt{'SOC2'}},
|
|
||||||
\textbf{\texttt{'MATCHBOXP'}}
|
|
||||||
& Type of aggregation algorithm: currently,
|
|
||||||
for the decoupled aggregation we implement two measures of strength of
|
|
||||||
connection, the one by Van\v{e}k, Mandel
|
|
||||||
and Brezina~\cite{VANEK_MANDEL_BREZINA},
|
|
||||||
and the one by Gratton et al~\cite{GrHeJi:16}. The coupled
|
|
||||||
aggregation is based on a parallel version of the half-approximate
|
|
||||||
matching implemented in the MatchBox-P software package
|
|
||||||
{\bf AGGIUNGERE LINK AL PACKAGE?}\\ \hline
|
|
||||||
|
|
||||||
\verb|'AGGR_SIZE'| & \verb|integer| \hspace*{-3mm}
|
|
||||||
& Any integer \par number power of $2$ and $> 2$
|
|
||||||
& 4
|
|
||||||
& Maximum size of aggregates when the coupled aggregation based on
|
|
||||||
matching is applied. For aggressive coarsening with size of
|
|
||||||
aggregate larger than $8$ we recommend the use of smoothed prolongators.
|
|
||||||
{\bf MODIFICARE CODICE}\\ \hline
|
|
||||||
|
|
||||||
\verb|'AGGR_PROL'| & \verb|character(len=*)| \hspace*{-3mm}
|
|
||||||
& \texttt{'SMOOTHED'}, \texttt{'UNSMOOTHED'} & \texttt{'SMOOTHED'}
|
|
||||||
& Prolongator used by the aggregation algorithm: smoothed or unsmoothed
|
|
||||||
(i.e., tentative prolongator). \\
|
|
||||||
\hline
|
|
||||||
\multicolumn{5}{|l|}{{\bfseries Note.} The aggregation algorithm stops when
|
|
||||||
at least one of the following criteria is met:
|
|
||||||
the coarse size threshold, the coarse size threshold per process, the} \\
|
|
||||||
\multicolumn{5}{|l|}{minimum coarsening ratio, or the maximum number
|
|
||||||
of levels is reached. Therefore, the actual number of levels may be} \\
|
|
||||||
\multicolumn{5}{|l|}{smaller than the specified maximum number
|
|
||||||
of levels. } \\
|
|
||||||
\hline
|
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
\end{center}
|
\end{center}
|
||||||
|
\esideways
|
||||||
|
\bsideways
|
||||||
|
\ContinuedFloat
|
||||||
|
\begin{center}
|
||||||
|
\begin{tabular}{|p{5.7cm}|l|p{2.3cm}|p{2.5cm}|p{5.9cm}|}
|
||||||
|
\hline
|
||||||
|
\fi
|
||||||
|
\fortinline|what| & \textsc{data type} & \fortinline|val| & \textsc{default} &
|
||||||
|
\textsc{comments} \\ \hline
|
||||||
|
\fortinline|'AGGR_TYPE'| & \fortinline|character(len=*)| \hspace*{-3mm}
|
||||||
|
& \fortinline|'SOC1'| &
|
||||||
|
\fortinline|'SOC1'|,
|
||||||
|
\fortinline|'SOC2'|,
|
||||||
|
\fortinline|'MATCHBOXP'|
|
||||||
|
& Type of aggregation algorithm: currently,
|
||||||
|
for the decoupled aggregation we implement two measures of strength of
|
||||||
|
connection, the one by Van\v{e}k, Mandel
|
||||||
|
and Brezina~\cite{VANEK_MANDEL_BREZINA},
|
||||||
|
and the one by Gratton et al~\cite{GrHeJi:16}. The coupled
|
||||||
|
aggregation is based on a parallel version of the half-approximate
|
||||||
|
matching implemented in the MatchBox-P software package~\cite{MatchBoxP}.\\ \hline
|
||||||
|
|
||||||
|
\fortinline|'AGGR_SIZE'| & \fortinline|integer| \hspace*{-3mm}
|
||||||
|
& Any integer \par number power of $2$ and $> 2$
|
||||||
|
& 4
|
||||||
|
& Maximum size of aggregates when the coupled aggregation based on
|
||||||
|
matching is applied. For aggressive coarsening with size of
|
||||||
|
aggregate larger than $8$ we recommend the use of smoothed prolongators.
|
||||||
|
{\bf MODIFICARE CODICE}\\ \hline
|
||||||
|
|
||||||
|
\fortinline|'AGGR_PROL'| & \fortinline|character(len=*)| \hspace*{-3mm}
|
||||||
|
& \fortinline|'SMOOTHED'|, \fortinline|'UNSMOOTHED'| & \fortinline|'SMOOTHED'|
|
||||||
|
& Prolongator used by the aggregation algorithm: smoothed or unsmoothed
|
||||||
|
(i.e., tentative prolongator). \\
|
||||||
|
\hline
|
||||||
|
\multicolumn{5}{|l|}{{\bfseries Note.} The aggregation algorithm stops when
|
||||||
|
at least one of the following criteria is met:
|
||||||
|
the coarse size threshold, } \\
|
||||||
|
\multicolumn{5}{|l|}{the coarse size threshold per process, the minimum coarsening ratio, or the maximum number
|
||||||
|
of levels is reached.} \\
|
||||||
|
\multicolumn{5}{|l|}{Therefore, the actual number of levels may be smaller than the specified maximum number
|
||||||
|
of levels. } \\
|
||||||
|
\hline
|
||||||
|
\end{tabular}
|
||||||
\caption{Parameters defining the aggregation algorithm.
|
\caption{Parameters defining the aggregation algorithm.
|
||||||
\label{tab:p_aggregation}}
|
\label{tab:p_aggregation}}
|
||||||
|
\end{center}
|
||||||
\esideways
|
\esideways
|
||||||
|
|
||||||
\bsideways
|
\bsideways
|
||||||
@@ -334,10 +343,10 @@ of levels. } \\
|
|||||||
%\begin{tabular}{|p{5cm}|l|p{2.4cm}|p{2.5cm}|p{5cm}|}
|
%\begin{tabular}{|p{5cm}|l|p{2.4cm}|p{2.5cm}|p{5cm}|}
|
||||||
\begin{tabular}{|p{3.8cm}|l|p{2.5cm}|p{2.3cm}|p{6.6cm}|}
|
\begin{tabular}{|p{3.8cm}|l|p{2.5cm}|p{2.3cm}|p{6.6cm}|}
|
||||||
\hline
|
\hline
|
||||||
\verb|what| & \textsc{data type} & \verb|val| & \textsc{default} &
|
\fortinline|what| & \textsc{data type} & \fortinline|val| & \textsc{default} &
|
||||||
\textsc{comments} \\ \hline
|
\textsc{comments} \\ \hline
|
||||||
|
|
||||||
\verb|'AGGR_ORD'| & \verb|character(len=*)|
|
\fortinline|'AGGR_ORD'| & \fortinline|character(len=*)|
|
||||||
& \texttt{'NATURAL'} \par \texttt{'DEGREE'}
|
& \texttt{'NATURAL'} \par \texttt{'DEGREE'}
|
||||||
& \texttt{'NATURAL'}
|
& \texttt{'NATURAL'}
|
||||||
& Initial ordering of indices for the decoupled aggregation
|
& Initial ordering of indices for the decoupled aggregation
|
||||||
@@ -347,14 +356,14 @@ of levels. } \\
|
|||||||
%Since aggregation is
|
%Since aggregation is
|
||||||
%heuristic, results will be different.
|
%heuristic, results will be different.
|
||||||
|
|
||||||
\verb|'AGGR_THRESH'| & \verb|real(|\emph{kind\_parameter}\verb|)|
|
\fortinline|'AGGR_THRESH'| & \fortinline|real(|\emph{kind\_parameter}\fortinline|)|
|
||||||
& Any~real \par number~$\in [0, 1]$
|
& Any~real \par number~$\in [0, 1]$
|
||||||
& 0.01
|
& 0.01
|
||||||
& The threshold $\theta$ in the decoupled aggregation algorithm,
|
& The threshold $\theta$ in the decoupled aggregation algorithm,
|
||||||
see (\ref{eq:strongly_coup}) in Section~\ref{sec:aggregation}.
|
see (\ref{eq:strongly_coup}) in Section~\ref{sec:aggregation}.
|
||||||
See also the note at the bottom of this table. \\ \hline
|
See also the note at the bottom of this table. \\ \hline
|
||||||
\verb|'AGGR_FILTER'|
|
\fortinline|'AGGR_FILTER'|
|
||||||
& \verb|character(len=*)|
|
& \fortinline|character(len=*)|
|
||||||
& \texttt{'FILTER'} \par \texttt{'NOFILTER'}
|
& \texttt{'FILTER'} \par \texttt{'NOFILTER'}
|
||||||
& \texttt{'NOFILTER'} & Matrix used in computing the smoothed
|
& \texttt{'NOFILTER'} & Matrix used in computing the smoothed
|
||||||
prolongator: filtered or unfiltered (see~(\ref{eq:filtered}) in Section~\ref{sec:aggregation}). \\
|
prolongator: filtered or unfiltered (see~(\ref{eq:filtered}) in Section~\ref{sec:aggregation}). \\
|
||||||
@@ -375,17 +384,17 @@ the parameter \texttt{ilev}.} \\
|
|||||||
\begin{center}
|
\begin{center}
|
||||||
\begin{tabular}{|p{3.9cm}|l|p{1.7cm}|p{1.7cm}|p{8.6cm}|}
|
\begin{tabular}{|p{3.9cm}|l|p{1.7cm}|p{1.7cm}|p{8.6cm}|}
|
||||||
\hline
|
\hline
|
||||||
\verb|what| & \textsc{data type} & \verb|val| & \textsc{default} &
|
\fortinline|what| & \textsc{data type} & \fortinline|val| & \textsc{default} &
|
||||||
\textsc{comments} \\ \hline
|
\textsc{comments} \\ \hline
|
||||||
\verb|'COARSE_MAT'| & \verb|character(len=*)|
|
\fortinline|'COARSE_MAT'| & \fortinline|character(len=*)|
|
||||||
& \texttt{'DIST'} \par \texttt{'REPL'}
|
& \fortinline|'DIST'| \par \fortinline|'REPL'|
|
||||||
& \texttt{'REPL'}
|
& \fortinline|'REPL'|
|
||||||
& Coarsest matrix layout: distributed among the processes or
|
& Coarsest matrix layout: distributed among the processes or
|
||||||
replicated on each of them. \\ \hline
|
replicated on each of them. \\ \hline
|
||||||
\verb|'COARSE_SOLVE'| & \verb|character(len=*)|
|
\fortinline|'COARSE_SOLVE'| & \fortinline|character(len=*)|
|
||||||
& \texttt{'MUMPS'} \par \texttt{'UMF'} \par
|
& \fortinline|'MUMPS'| \par \fortinline|'UMF'| \par
|
||||||
\texttt{'SLU'} \par \texttt{'SLUDIST'} \par
|
\fortinline|'SLU'| \par \fortinline|'SLUDIST'| \par
|
||||||
\texttt{'JACOBI'} \par \texttt{'GS'} \par \texttt{'BJAC'} \par \texttt{'PCG'}
|
\fortinline|'JACOBI'| \par \fortinline|'GS'| \par \fortinline|'BJAC'| \par \fortinline|'RKR'|
|
||||||
& See~Note.
|
& See~Note.
|
||||||
& Solver used at the coarsest level: sequential
|
& Solver used at the coarsest level: sequential
|
||||||
LU from MUMPS, UMFPACK, or SuperLU
|
LU from MUMPS, UMFPACK, or SuperLU
|
||||||
@@ -394,7 +403,7 @@ the parameter \texttt{ilev}.} \\
|
|||||||
(plus triangular solve);
|
(plus triangular solve);
|
||||||
point-Jacobi, hybrid Gauss-Seidel or block-Jacobi and related $\ell_1$-versions;
|
point-Jacobi, hybrid Gauss-Seidel or block-Jacobi and related $\ell_1$-versions;
|
||||||
{\bf preconditioned Conjugate Gradient coupled with the block-Jacobi preconditioner
|
{\bf preconditioned Conjugate Gradient coupled with the block-Jacobi preconditioner
|
||||||
with ILU(0) on the blocks}. \par
|
with ILU(0) on the blocks}.
|
||||||
Note that \texttt{UMF} and \texttt{SLU} require the coarsest
|
Note that \texttt{UMF} and \texttt{SLU} require the coarsest
|
||||||
matrix to be replicated, \texttt{SLUDIST}, \texttt{JACOBI},
|
matrix to be replicated, \texttt{SLUDIST}, \texttt{JACOBI},
|
||||||
\texttt{GS}, \texttt{BJAC} and \texttt{PCG} require it to be
|
\texttt{GS}, \texttt{BJAC} and \texttt{PCG} require it to be
|
||||||
@@ -404,15 +413,28 @@ the parameter \texttt{ilev}.} \\
|
|||||||
value which allows the use of the solver (see Remark 3, p.~24).
|
value which allows the use of the solver (see Remark 3, p.~24).
|
||||||
Note also that UMFPACK and SuperLU\_Dist
|
Note also that UMFPACK and SuperLU\_Dist
|
||||||
are available only in double precision. \\ \hline
|
are available only in double precision. \\ \hline
|
||||||
\verb|'COARSE_SUBSOLVE'| & \verb|character(len=*)|
|
\ifpdf
|
||||||
& \texttt{'ILU'} \par \texttt{'ILUT'} \par \texttt{'MILU'} \par
|
\end{tabular}
|
||||||
\texttt{'MUMPS'} \par \texttt{'SLU'} \par \texttt{'UMF'}
|
\end{center}
|
||||||
|
\esideways
|
||||||
|
\bsideways
|
||||||
|
\ContinuedFloat
|
||||||
|
\begin{center}
|
||||||
|
\begin{tabular}{|p{3.9cm}|l|p{1.7cm}|p{1.7cm}|p{8.6cm}|}
|
||||||
|
\hline
|
||||||
|
\fi
|
||||||
|
\fortinline|'COARSE_SUBSOLVE'| & \fortinline|character(len=*)|
|
||||||
|
& \fortinline|'ILU'| \par \fortinline|'ILUT'| \par \fortinline|'MILU'| \par
|
||||||
|
\fortinline|'MUMPS'| \par \fortinline|'SLU'| \par \fortinline|'UMF'| \par
|
||||||
|
\fortinline|'INVT'| \par \fortinline|'INVK'| \par \fortinline|'AINV'|
|
||||||
& See~Note.
|
& See~Note.
|
||||||
& Solver for the diagonal blocks of the coarse matrix,
|
& Solver for the diagonal blocks of the coarse matrix,
|
||||||
in case the block Jacobi solver
|
in case the block Jacobi solver
|
||||||
is chosen as coarsest-level solver: ILU($p$), ILU($p,t$),
|
is chosen as coarsest-level solver: ILU($p$), ILU($p,t$),
|
||||||
MILU($p$), LU from MUMPS, SuperLU or UMFPACK
|
MILU($p$), LU from MUMPS, SuperLU or UMFPACK
|
||||||
(plus triangular solve). {\bf Aggiungere Sparse Approssimate per GPU?}
|
(plus triangular solve). Suitable for GPUs (no triangular solve)
|
||||||
|
approximate inverse solvers INVK($p,q$), INVT($p_1,p2,t_1,t_2$) and
|
||||||
|
AINV($t$), see~\cite{BERTACCINIFILIPPONE}.
|
||||||
Note that UMFPACK and SuperLU\_Dist
|
Note that UMFPACK and SuperLU\_Dist
|
||||||
are available only in double precision. \\
|
are available only in double precision. \\
|
||||||
\hline
|
\hline
|
||||||
@@ -425,29 +447,29 @@ the parameter \texttt{ilev}.} \\
|
|||||||
then \texttt{MUMPS} if installed, then \texttt{SLU} if
|
then \texttt{MUMPS} if installed, then \texttt{SLU} if
|
||||||
installed, \texttt{ILU} otherwise.}\\
|
installed, \texttt{ILU} otherwise.}\\
|
||||||
\hline
|
\hline
|
||||||
\end{tabular}
|
%\end{tabular}
|
||||||
\end{center}
|
%\end{center}
|
||||||
\caption{Parameters defining the coarse-space correction at the coarsest
|
%\caption{Parameters defining the coarse-space correction at the coarsest
|
||||||
level.\label{tab:p_coarse}}
|
%level.\label{tab:p_coarse}}
|
||||||
\esideways
|
%\esideways
|
||||||
|
%
|
||||||
\bsideways
|
%\bsideways
|
||||||
\begin{center}
|
%\begin{center}
|
||||||
\begin{tabular}{|p{3.9cm}|l|p{2cm}|p{1.5cm}|p{7.5cm}|}
|
%\begin{tabular}{|p{3.9cm}|l|p{2cm}|p{1.5cm}|p{7.5cm}|}
|
||||||
\hline
|
%\hline
|
||||||
\verb|what| & \textsc{data type} & \verb|val| & \textsc{default} &
|
\fortinline|what| & \textsc{data type} & \fortinline|val| & \textsc{default} &
|
||||||
\textsc{comments} \\ \hline
|
\textsc{comments} \\ \hline
|
||||||
\verb|'COARSE_SWEEPS'| & \verb|integer|
|
\fortinline|'COARSE_SWEEPS'| & \fortinline|integer|
|
||||||
& Any integer \par number $> 0$
|
& Any integer \par number $> 0$
|
||||||
& 10
|
& 10
|
||||||
& Number of sweeps when \verb|JACOBI|, \verb|GS| or \verb|BJAC|
|
& Number of sweeps when \fortinline|JACOBI|, \fortinline|GS| or \fortinline|BJAC|
|
||||||
is chosen as coarsest-level solver. {\bf Aggiungere criterio di arresto del PCG?}\\ \hline
|
is chosen as coarsest-level solver. {\bf Aggiungere criterio di arresto del PCG?}\\ \hline
|
||||||
\verb|'COARSE_FILLIN'| & \verb|integer|
|
\fortinline|'COARSE_FILLIN'| & \fortinline|integer|
|
||||||
& Any integer \par number $\ge 0$
|
& Any integer \par number $\ge 0$
|
||||||
& 0
|
& 0
|
||||||
& Fill-in level $p$ of the ILU factorizations. \\ \hline
|
& Fill-in level $p$ of the ILU factorizations. \\ \hline
|
||||||
\verb|'COARSE_ILUTHRS'|
|
\fortinline|'COARSE_ILUTHRS'|
|
||||||
& \verb|real(|\emph{kind\_parameter}\verb|)|
|
& \fortinline|real(|\emph{kind\_parameter}\fortinline|)|
|
||||||
& Any real \par number $\ge 0$
|
& Any real \par number $\ge 0$
|
||||||
& 0
|
& 0
|
||||||
& Drop tolerance $t$ in the ILU($p,t$) factorization. \\
|
& Drop tolerance $t$ in the ILU($p,t$) factorization. \\
|
||||||
@@ -463,23 +485,23 @@ level (continued).\label{tab:p_coarse_1}}
|
|||||||
\small
|
\small
|
||||||
\begin{tabular}{|p{3.6cm}|l|p{1.9cm}|p{3.6cm}|p{6.5cm}|}
|
\begin{tabular}{|p{3.6cm}|l|p{1.9cm}|p{3.6cm}|p{6.5cm}|}
|
||||||
\hline
|
\hline
|
||||||
\verb|what| & \textsc{data type} & \verb|val| & \textsc{default} &
|
\fortinline|what| & \textsc{data type} & \fortinline|val| & \textsc{default} &
|
||||||
\textsc{comments} \\ \hline
|
\textsc{comments} \\ \hline
|
||||||
|
|
||||||
\verb|'SMOOTHER_TYPE'| & \verb|character(len=*)|
|
\fortinline|'SMOOTHER_TYPE'| & \fortinline|character(len=*)|
|
||||||
& \verb|'JACOBI'| \par \verb|'GS'| \par \verb|'BGS'| \par \verb|'BJAC'|
|
& \fortinline|'JACOBI'| \par \fortinline|'GS'| \par \fortinline|'BGS'| \par \fortinline|'BJAC'|
|
||||||
\par \verb|'AS'|
|
\par \fortinline|'AS'|
|
||||||
& \verb|'FBGS'|
|
& \fortinline|'FBGS'|
|
||||||
& Type of smoother used in the multilevel preconditioner:
|
& Type of smoother used in the multilevel preconditioner:
|
||||||
point-Jacobi, hybrid (forward) Gauss-Seidel,
|
point-Jacobi, hybrid (forward) Gauss-Seidel,
|
||||||
hybrid backward Gauss-Seidel, block-Jacobi, \textbf{$\ell_1$-versions?} and
|
hybrid backward Gauss-Seidel, block-Jacobi, \textbf{$\ell_1$-versions?} and
|
||||||
Additive Schwarz. \par
|
Additive Schwarz. \par
|
||||||
It is ignored by one-level preconditioners. \\ \hline
|
It is ignored by one-level preconditioners. \\ \hline
|
||||||
\verb|'SUB_SOLVE'| & \verb|character(len=*)|
|
\fortinline|'SUB_SOLVE'| & \fortinline|character(len=*)|
|
||||||
& \texttt{'JACOBI'} \par
|
& \fortinline|'JACOBI'| \par
|
||||||
\texttt{'GS'} \par \texttt{'BGS'} \par \texttt{'ILU'} \par
|
\fortinline|'GS'| \par \texttt{'BGS'} \par \fortinline|'ILU'| \par
|
||||||
\texttt{'ILUT'} \par \texttt{'MILU'} \par
|
\fortinline|'ILUT'| \par \fortinline|'MILU'| \par
|
||||||
\par \texttt{'MUMPS'} \par \texttt{'SLU'} \par \texttt{'UMF'}
|
\par \fortinline|'MUMPS'| \par \fortinline|'SLU'| \par \fortinline|'UMF'|
|
||||||
& \texttt{GS} and \texttt{BGS} for pre- and post-smoothers
|
& \texttt{GS} and \texttt{BGS} for pre- and post-smoothers
|
||||||
of multilevel preconditioners, respectively \par
|
of multilevel preconditioners, respectively \par
|
||||||
\texttt{ILU} for block-Jacobi and Additive Schwarz
|
\texttt{ILU} for block-Jacobi and Additive Schwarz
|
||||||
@@ -492,15 +514,15 @@ level (continued).\label{tab:p_coarse_1}}
|
|||||||
LU from MUMPS, SuperLU or UMFPACK
|
LU from MUMPS, SuperLU or UMFPACK
|
||||||
(plus triangular solve). See Note for details on hybrid
|
(plus triangular solve). See Note for details on hybrid
|
||||||
Gauss-Seidel. \\ \hline
|
Gauss-Seidel. \\ \hline
|
||||||
\verb|'SMOOTHER_SWEEPS'| & \verb|integer|
|
\fortinline|'SMOOTHER_SWEEPS'| & \fortinline|integer|
|
||||||
& Any integer \par number~$\ge 0$
|
& Any integer \par number~$\ge 0$
|
||||||
& 1
|
& 1
|
||||||
& Number of sweeps of the smoother or one-level preconditioner.
|
& Number of sweeps of the smoother or one-level preconditioner.
|
||||||
In the multilevel case, no pre-smother or
|
In the multilevel case, no pre-smother or
|
||||||
post-smoother is used if this parameter is set to 0
|
post-smoother is used if this parameter is set to 0
|
||||||
together with \verb|pos='PRE'| or \verb|pos='POST|,
|
together with \fortinline|pos='PRE'| or \fortinline|pos='POST|,
|
||||||
respectively. \\ \hline
|
respectively. \\ \hline
|
||||||
\verb|'SUB_OVR'| & \verb|integer|
|
\fortinline|'SUB_OVR'| & \fortinline|integer|
|
||||||
& Any integer \par number~$\ge 0$
|
& Any integer \par number~$\ge 0$
|
||||||
& 1
|
& 1
|
||||||
& Number of overlap layers, for Additive Schwarz only. \\
|
& Number of overlap layers, for Additive Schwarz only. \\
|
||||||
@@ -514,51 +536,51 @@ level (continued).\label{tab:p_coarse_1}}
|
|||||||
\bsideways
|
\bsideways
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\small
|
\small
|
||||||
\begin{tabular}{|p{3cm}|l|p{2.5cm}|p{2.2cm}|p{7.1cm}|}
|
\begin{tabular}{|p{3.2cm}|l|p{2.6cm}|p{2.6cm}|p{6.7cm}|}
|
||||||
\hline
|
\hline
|
||||||
\verb|what| & \textsc{data type} & \verb|val| & \textsc{default} &
|
\fortinline|what| & \textsc{data type} & \fortinline|val| & \textsc{default} &
|
||||||
\textsc{comments} \\ \hline
|
\textsc{comments} \\ \hline
|
||||||
\verb|'SUB_RESTR'| & \verb|character(len=*)|
|
\fortinline|'SUB_RESTR'| & \fortinline|character(len=*)|
|
||||||
& \texttt{'HALO'} \par \texttt{'NONE'}
|
& \fortinline|'HALO'| \par \fortinline|'NONE'|
|
||||||
& \texttt{'HALO'}
|
& \fortinline|'HALO'|
|
||||||
& Type of restriction operator, for Additive Schwarz only:
|
& Type of restriction operator, for Additive Schwarz only:
|
||||||
\texttt{HALO} for taking into account the overlap, \texttt{NONE}
|
\texttt{HALO} for taking into account the overlap, \fortinline|'NONE'|
|
||||||
for neglecting it. \par
|
for neglecting it. \par
|
||||||
Note that \texttt{HALO} must be chosen for
|
Note that \texttt{HALO} must be chosen for
|
||||||
the classical Addditive Schwarz smoother and its RAS variant.\\ \hline
|
the classical Addditive Schwarz smoother and its RAS variant.\\ \hline
|
||||||
\verb|'SUB_PROL'| & \verb|character(len=*)|
|
\fortinline|'SUB_PROL'| & \fortinline|character(len=*)|
|
||||||
& \texttt{'SUM'} \par \texttt{'NONE'}
|
& \fortinline|'SUM'| \par \fortinline|'NONE'|
|
||||||
& \texttt{'NONE'}
|
& \fortinline|'NONE'|
|
||||||
& Type of prolongation operator, for Additive Schwarz only:
|
& Type of prolongation operator, for Additive Schwarz only:
|
||||||
\texttt{SUM} for adding the contributions from the overlap, \texttt{NONE}
|
\fortinline|'SUM'| for adding the contributions from the overlap, \fortinline|'NONE'|
|
||||||
for neglecting them. \par
|
for neglecting them. \par
|
||||||
Note that \texttt{SUM} must be chosen for the classical Additive
|
Note that \fortinline|'SUM'| must be chosen for the classical Additive
|
||||||
Schwarz smoother, and \texttt{NONE} for its RAS variant. \\ \hline
|
Schwarz smoother, and \fortinline|'NONE'| for its RAS variant. \\ \hline
|
||||||
\verb|'SUB_FILLIN'| & \verb|integer|
|
\fortinline|'SUB_FILLIN'| & \fortinline|integer|
|
||||||
& Any integer \par number~$\ge 0$
|
& Any integer \par number~$\ge 0$
|
||||||
& 0
|
& 0
|
||||||
& Fill-in level $p$ of the incomplete LU factorizations. \\ \hline
|
& Fill-in level $p$ of the incomplete LU factorizations. \\ \hline
|
||||||
\verb|'SUB_ILUTHRS'| & \verb|real(|\emph{kind\_parameter}\verb|)|
|
\fortinline|'SUB_ILUTHRS'| & \fortinline|real(|\emph{kind\_parameter}\fortinline|)|
|
||||||
& Any real number~$\ge 0$
|
& Any real number~$\ge 0$
|
||||||
& 0
|
& 0
|
||||||
& Drop tolerance $t$ in the ILU($p,t$) factorization. \\ %\hline
|
& Drop tolerance $t$ in the ILU($p,t$) factorization. \\ %\hline
|
||||||
\verb|'MUMPS_LOC_GLOB'| & \verb|character(len=*)|
|
\fortinline|'MUMPS_LOC_GLOB'| & \fortinline|character(len=*)|
|
||||||
& \texttt{LOCAL\_SOLVER'} \par \texttt{GLOBAL\_SOLVER'}
|
& \fortinline|'LOCAL_SOLVER'| \par \fortinline|'GLOBAL_SOLVER'|
|
||||||
& \texttt{GLOBAL\_SOLVER'}
|
& \fortinline|'GLOBAL_SOLVER'|
|
||||||
& Whether MUMPS should be used as a
|
& Whether MUMPS should be used as a
|
||||||
distributed solver, or as a serial solver
|
distributed solver, or as a serial solver
|
||||||
acting only on the part of the matrix local
|
acting only on the part of the matrix local
|
||||||
to each process. \\ %\hline
|
to each process. \\ %\hline
|
||||||
\verb|'MUMPS_IPAR_ENTRY'| & \verb|integer|
|
\fortinline|'MUMPS_IPAR_ENTRY'| & \fortinline|integer|
|
||||||
& Any integer number
|
& Any integer number
|
||||||
& 0
|
& 0
|
||||||
& Set an entry in the MUMPS integer control array, as
|
& Set an entry in the MUMPS integer control array, as
|
||||||
chosen via the \verb|idx| optional argument. \\ %\hline
|
chosen via the \fortinline|idx| optional argument. \\ %\hline
|
||||||
\verb|'MUMPS_RPAR_ENTRY'| & \verb|real|
|
\fortinline|'MUMPS_RPAR_ENTRY'| & \fortinline|real|
|
||||||
& Any real number
|
& Any real number
|
||||||
& 0
|
& 0
|
||||||
& Set an entry in the MUMPS real control array, as
|
& Set an entry in the MUMPS real control array, as
|
||||||
chosen via the \verb|idx| optional argument. \\ %\hline
|
chosen via the \fortinline|idx| optional argument. \\ %\hline
|
||||||
\hline
|
\hline
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
\end{center}
|
\end{center}
|
||||||
@@ -572,28 +594,27 @@ level (continued).\label{tab:p_coarse_1}}
|
|||||||
\subsection{Method hierarchy\_build\label{sec:hier_bld}}
|
\subsection{Method hierarchy\_build\label{sec:hier_bld}}
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\verb|call p%hierarchy_build(a,desc_a,info)|\\
|
\fortinline|call p%hierarchy_build(a,desc_a,info)|\\
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
\noindent
|
\noindent
|
||||||
This method builds the hierarchy of matrices and restriction/prolongation
|
This method builds the hierarchy of matrices and restriction/prolongation
|
||||||
operators for the multilevel preconditioner \verb|p|, according to the requirements
|
operators for the multilevel preconditioner \fortinline|p|, according to the requirements
|
||||||
made by the user through the methods \verb|init| and \verb|set|.
|
made by the user through the methods \fortinline|init| and \fortinline|set|.
|
||||||
|
|
||||||
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
||||||
|
|
||||||
\begin{tabular}{p{1.2cm}p{12cm}}
|
\begin{tabular}{p{1.2cm}p{12cm}}
|
||||||
\verb|a| & \verb|type(psb_|\emph{x}\verb|spmat_type), intent(in)|. \\
|
\fortinline|a| & \fortinline|type(psb_|\emph{x}\fortinline|spmat_type), intent(in)|. \\
|
||||||
& The sparse matrix structure containing the local part of the
|
& The sparse matrix structure containing the local part of the
|
||||||
matrix to be preconditioned. Note that \emph{x} must be chosen according
|
matrix to be preconditioned. Note that \emph{x} must be chosen according
|
||||||
to the real/complex,
|
to the \fortinline|real|/\fortinline|complex|,
|
||||||
single/double precision version of AMG4PSBLAS under use.
|
single/double precision version of AMG4PSBLAS under use.
|
||||||
See the PSBLAS User's Guide for details \cite{PSBLASGUIDE}.\\
|
See the PSBLAS User's Guide for details \cite{PSBLASGUIDE}.\\
|
||||||
\verb|desc_a| & \verb|type(psb_desc_type), intent(in)|. \\
|
\fortinline|desc_a| & \fortinline|type(psb_desc_type), intent(in)|. \\
|
||||||
& The communication descriptor of \verb|a|. See the PSBLAS User's Guide for
|
& The communication descriptor of \fortinline|a|. See the PSBLAS User's Guide for
|
||||||
details \cite{PSBLASGUIDE}.\\
|
details \cite{PSBLASGUIDE}.\\
|
||||||
|
\fortinline|info| & \fortinline|integer, intent(out)|.\\
|
||||||
\verb|info| & \verb|integer, intent(out)|.\\
|
|
||||||
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
|
|
||||||
@@ -604,38 +625,38 @@ single/double precision version of AMG4PSBLAS under use.
|
|||||||
|
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\verb|call p%smoothers_build(a,desc_a,p,info[,amold,vmold,imold])|\\
|
\fortinline|call p%smoothers_build(a,desc_a,p,info[,amold,vmold,imold])|\\
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
\noindent
|
\noindent
|
||||||
This method builds the smoothers and the coarsest-level solvers for the
|
This method builds the smoothers and the coarsest-level solvers for the
|
||||||
multilevel preconditioner \verb|p|, according to the requirements made by
|
multilevel preconditioner \fortinline|p|, according to the requirements made by
|
||||||
the user through the methods \verb|init| and \verb|set|, and based on the aggregation
|
the user through the methods \fortinline|init| and \fortinline|set|, and based on the aggregation
|
||||||
hierarchy produced by a previous call to \verb|hierarchy_build|
|
hierarchy produced by a previous call to \fortinline|hierarchy_build|
|
||||||
(see Section~\ref{sec:hier_bld}).
|
(see Section~\ref{sec:hier_bld}).
|
||||||
|
|
||||||
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
||||||
|
|
||||||
\begin{tabular}{p{1.2cm}p{12cm}}
|
\begin{tabular}{p{1.2cm}p{12cm}}
|
||||||
\verb|a| & \verb|type(psb_|\emph{x}\verb|spmat_type), intent(in)|. \\
|
\fortinline|a| & \fortinline|type(psb_|\emph{x}\fortinline|spmat_type), intent(in)|. \\
|
||||||
& The sparse matrix structure containing the local part of the
|
& The sparse matrix structure containing the local part of the
|
||||||
matrix to be preconditioned. Note that \emph{x} must be chosen according
|
matrix to be preconditioned. Note that \emph{x} must be chosen according
|
||||||
to the real/complex, single/double precision version of AMG4PSBLAS under use.
|
to the \fortinline|real|/\fortinline|complex|, single/double precision version of AMG4PSBLAS under use.
|
||||||
See the PSBLAS User's Guide for details \cite{PSBLASGUIDE}.\\
|
See the PSBLAS User's Guide for details \cite{PSBLASGUIDE}.\\
|
||||||
\verb|desc_a| & \verb|type(psb_desc_type), intent(in)|. \\
|
\fortinline|desc_a| & \fortinline|type(psb_desc_type), intent(in)|. \\
|
||||||
& The communication descriptor of \verb|a|. See the PSBLAS User's Guide for
|
& The communication descriptor of \fortinline|a|. See the PSBLAS User's Guide for
|
||||||
details \cite{PSBLASGUIDE}.\\
|
details \cite{PSBLASGUIDE}.\\
|
||||||
\verb|info| & \verb|integer, intent(out)|.\\
|
\fortinline|info| & \fortinline|integer, intent(out)|.\\
|
||||||
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
||||||
\verb|amold| & \verb|class(psb_|\emph{x}\verb|_base_sparse_mat), intent(in), optional|. \\
|
\fortinline|amold| & \fortinline|class(psb_|\emph{x}\fortinline|_base_sparse_mat), intent(in), optional|. \\
|
||||||
& The desired dynamic type for internal matrix
|
& The desired dynamic type for internal matrix
|
||||||
components; this allows e.g. running on GPUs; it needs not be the
|
components; this allows e.g. running on GPUs; it needs not be the
|
||||||
same on all processes. See the PSBLAS User's Guide for
|
same on all processes. See the PSBLAS User's Guide for
|
||||||
details \cite{PSBLASGUIDE}. \\
|
details \cite{PSBLASGUIDE}. \\
|
||||||
\verb|vmold| & \verb|class(psb_|\emph{x}\verb|_base_vect_type), intent(in), optional|. \\
|
\fortinline|vmold| & \fortinline|class(psb_|\emph{x}\fortinline|_base_vect_type), intent(in), optional|. \\
|
||||||
& The desired dynamic type for internal vector
|
& The desired dynamic type for internal vector
|
||||||
components; this allows e.g. running on GPUs. \\
|
components; this allows e.g. running on GPUs. \\
|
||||||
\verb|imold| & \verb|class(psb_i_base_vect_type), intent(in), optional|. \\
|
\fortinline|imold| & \fortinline|class(psb_i_base_vect_type), intent(in), optional|. \\
|
||||||
& The desired dynamic type for internal integer vector
|
& The desired dynamic type for internal integer vector
|
||||||
components; this allows e.g. running on GPUs. \\
|
components; this allows e.g. running on GPUs. \\
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
@@ -645,41 +666,41 @@ hierarchy produced by a previous call to \verb|hierarchy_build|
|
|||||||
\subsection{Method build\label{sec:precbld}}
|
\subsection{Method build\label{sec:precbld}}
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\verb|call p%build(a,desc_a,info[,amold,vmold,imold])|\\
|
\fortinline|call p%build(a,desc_a,info[,amold,vmold,imold])|\\
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
\noindent
|
\noindent
|
||||||
This method builds the preconditioner \verb|p| according to the requirements
|
This method builds the preconditioner \fortinline|p| according to the requirements
|
||||||
made by the user through the methods \verb|init| and \verb|set|
|
made by the user through the methods \fortinline|init| and \fortinline|set|
|
||||||
(see Sections~\ref{sec:hier_bld} and~\ref{sec:smooth_bld} for
|
(see Sections~\ref{sec:hier_bld} and~\ref{sec:smooth_bld} for
|
||||||
multilevel preconditioners). It is mostly provided for backward
|
multilevel preconditioners). It is mostly provided for backward
|
||||||
compatibility; indeed, it is internally implemented by invoking the
|
compatibility; indeed, it is internally implemented by invoking the
|
||||||
two previous methods \verb|hierarchy_build| and
|
two previous methods \fortinline|hierarchy_build| and
|
||||||
\verb|smoothers_build|, whose nomenclature would however be somewhat
|
\fortinline|smoothers_build|, whose nomenclature would however be somewhat
|
||||||
unnatural when dealing with simple one-level preconditioners.
|
unnatural when dealing with simple one-level preconditioners.
|
||||||
|
|
||||||
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
||||||
|
|
||||||
\begin{tabular}{p{1.2cm}p{12cm}}
|
\begin{tabular}{p{1.2cm}p{12cm}}
|
||||||
\verb|a| & \verb|type(psb_|\emph{x}\verb|spmat_type), intent(in)|. \\
|
\fortinline|a| & \fortinline|type(psb_|\emph{x}\fortinline|spmat_type), intent(in)|. \\
|
||||||
& The sparse matrix structure containing the local part of the
|
& The sparse matrix structure containing the local part of the
|
||||||
matrix to be preconditioned. Note that \emph{x} must be chosen according
|
matrix to be preconditioned. Note that \emph{x} must be chosen according
|
||||||
to the real/complex, single/double precision version of AMG4PSBLAS under use.
|
to the \fortinline|real|/\fortinline|complex|, single/double precision version of AMG4PSBLAS under use.
|
||||||
See the PSBLAS User's Guide for details \cite{PSBLASGUIDE}.\\
|
See the PSBLAS User's Guide for details \cite{PSBLASGUIDE}.\\
|
||||||
\verb|desc_a| & \verb|type(psb_desc_type), intent(in)|. \\
|
\fortinline|desc_a| & \fortinline|type(psb_desc_type), intent(in)|. \\
|
||||||
& The communication descriptor of \verb|a|. See the PSBLAS User's Guide for
|
& The communication descriptor of \fortinline|a|. See the PSBLAS User's Guide for
|
||||||
details \cite{PSBLASGUIDE}.\\
|
details \cite{PSBLASGUIDE}.\\
|
||||||
\verb|info| & \verb|integer, intent(out)|.\\
|
\fortinline|info| & \fortinline|integer, intent(out)|.\\
|
||||||
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
||||||
\verb|amold| & \verb|class(psb_|\emph{x}\verb|_base_sparse_mat), intent(in), optional|. \\
|
\fortinline|amold| & \fortinline|class(psb_|\emph{x}\fortinline|_base_sparse_mat), intent(in), optional|. \\
|
||||||
& The desired dynamic type for internal matrix
|
& The desired dynamic type for internal matrix
|
||||||
components; this allows e.g. running on GPUs; it needs not be the
|
components; this allows e.g. running on GPUs; it needs not be the
|
||||||
same on all processes. See the PSBLAS User's Guide for
|
same on all processes. See the PSBLAS User's Guide for
|
||||||
details \cite{PSBLASGUIDE}. \\
|
details \cite{PSBLASGUIDE}. \\
|
||||||
\verb|vmold| & \verb|class(psb_|\emph{x}\verb|_base_vect_type), intent(in), optional|. \\
|
\fortinline|vmold| & \fortinline|class(psb_|\emph{x}\fortinline|_base_vect_type), intent(in), optional|. \\
|
||||||
& The desired dynamic type for internal vector
|
& The desired dynamic type for internal vector
|
||||||
components; this allows e.g. running on GPUs. \\
|
components; this allows e.g. running on GPUs. \\
|
||||||
\verb|imold| & \verb|class(psb_i_base_vect_type), intent(in), optional|. \\
|
\fortinline|imold| & \fortinline|class(psb_i_base_vect_type), intent(in), optional|. \\
|
||||||
& The desired dynamic type for internal integer vector
|
& The desired dynamic type for internal integer vector
|
||||||
components; this allows e.g. running on GPUs. \\
|
components; this allows e.g. running on GPUs. \\
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
@@ -693,44 +714,44 @@ The method can be used to build multilevel preconditioners too.
|
|||||||
\subsection{Method apply\label{sec:precapply}}
|
\subsection{Method apply\label{sec:precapply}}
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\verb|call p%apply(x,y,desc_a,info [,trans,work])|\\
|
\fortinline|call p%apply(x,y,desc_a,info [,trans,work])|\\
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
\noindent
|
\noindent
|
||||||
This method computes $y = op(B^{-1})\, x$, where $B$ is a previously built
|
This method computes $y = op(B^{-1})\, x$, where $B$ is a previously built
|
||||||
preconditioner, stored into \verb|p|, and $op$
|
preconditioner, stored into \fortinline|p|, and $op$
|
||||||
denotes the preconditioner itself or its transpose, according to
|
denotes the preconditioner itself or its transpose, according to
|
||||||
the value of \verb|trans|.
|
the value of \fortinline|trans|.
|
||||||
Note that, when AMG4PSBLAS is used with a Krylov solver from PSBLAS,
|
Note that, when AMG4PSBLAS is used with a Krylov solver from PSBLAS,
|
||||||
\verb|p%apply| is called within the PSBLAS method \verb|psb_krylov|
|
\fortinline|p%apply| is called within the PSBLAS method \fortinline|psb_krylov|
|
||||||
and hence it is completely transparent to the user.
|
and hence it is completely transparent to the user.
|
||||||
|
|
||||||
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
||||||
|
|
||||||
\begin{tabular}{p{1.2cm}p{12cm}}
|
\begin{tabular}{p{1.2cm}p{12cm}}
|
||||||
\verb|x| & \emph{type}\verb|(|\emph{kind\_parameter}\verb|), dimension(:), intent(in)|.\\
|
\fortinline|x| & \emph{type}\fortinline|(|\emph{kind\_parameter}\fortinline|), dimension(:), intent(in)|.\\
|
||||||
& The local part of the vector $x$. Note that \emph{type} and
|
& The local part of the vector $x$. Note that \emph{type} and
|
||||||
\emph{kind\_parameter} must be chosen according
|
\emph{kind\_parameter} must be chosen according
|
||||||
to the real/complex, single/double precision version of AMG4PSBLAS under use.\\
|
to the \fortinline|real|/\fortinline|complex|, single/double precision version of AMG4PSBLAS under use.\\
|
||||||
\verb|y| & \emph{type}\verb|(|\emph{kind\_parameter}\verb|), dimension(:), intent(out)|.\\
|
\fortinline|y| & \emph{type}\fortinline|(|\emph{kind\_parameter}\fortinline|), dimension(:), intent(out)|.\\
|
||||||
& The local part of the vector $y$. Note that \emph{type} and
|
& The local part of the vector $y$. Note that \emph{type} and
|
||||||
\emph{kind\_parameter} must be chosen according
|
\emph{kind\_parameter} must be chosen according
|
||||||
to the real/complex, single/double precision version of AMG4PSBLAS under use.\\
|
to the \fortinline|real|/\fortinline|complex|, single/double precision version of AMG4PSBLAS under use.\\
|
||||||
\verb|desc_a| & \verb|type(psb_desc_type), intent(in)|. \\
|
\fortinline|desc_a| & \fortinline|type(psb_desc_type), intent(in)|. \\
|
||||||
& The communication descriptor associated to the matrix to be
|
& The communication descriptor associated to the matrix to be
|
||||||
preconditioned.\\
|
preconditioned.\\
|
||||||
\verb|info| & \verb|integer, intent(out)|.\\
|
\fortinline|info| & \fortinline|integer, intent(out)|.\\
|
||||||
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
||||||
\verb|trans| & \verb|character(len=1), optional, intent(in).|\\
|
\fortinline|trans| & \fortinline|character(len=1), optional, intent(in).|\\
|
||||||
& If \verb|trans| = \verb|'N','n'| then $op(B^{-1}) = B^{-1}$;
|
& If \fortinline|trans| = \fortinline|'N','n'| then $op(B^{-1}) = B^{-1}$;
|
||||||
if \verb|trans| = \verb|'T','t'| then $op(B^{-1}) = B^{-T}$
|
if \fortinline|trans| = \fortinline|'T','t'| then $op(B^{-1}) = B^{-T}$
|
||||||
(transpose of $B^{-1})$; if \verb|trans| = \verb|'C','c'| then $op(B^{-1}) = B^{-C}$
|
(transpose of $B^{-1})$; if \fortinline|trans| = \fortinline|'C','c'| then $op(B^{-1}) = B^{-C}$
|
||||||
(conjugate transpose of $B^{-1})$.\\
|
(conjugate transpose of $B^{-1})$.\\
|
||||||
\verb|work| & \emph{type}\verb|(|\emph{kind\_parameter}\verb|), dimension(:), optional, target|.\\
|
\fortinline|work| & \emph{type}\fortinline|(|\emph{kind\_parameter}\fortinline|), dimension(:), optional, target|.\\
|
||||||
& Workspace. Its size should be at
|
& Workspace. Its size should be at
|
||||||
least \verb|4 * psb_cd_get_local_| \verb|cols(desc_a)| (see the PSBLAS User's Guide).
|
least \fortinline|4 * psb_cd_get_local_| \fortinline|cols(desc_a)| (see the PSBLAS User's Guide).
|
||||||
Note that \emph{type} and \emph{kind\_parameter} must be chosen according
|
Note that \emph{type} and \emph{kind\_parameter} must be chosen according
|
||||||
to the real/complex, single/double precision version of AMG4PSBLAS under use.\\
|
to the \fortinline|real|/\fortinline|complex|, single/double precision version of AMG4PSBLAS under use.\\
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
|
|
||||||
|
|
||||||
@@ -739,16 +760,16 @@ and hence it is completely transparent to the user.
|
|||||||
\subsection{Method free\label{sec:precfree}}
|
\subsection{Method free\label{sec:precfree}}
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\verb|call p%free(p,info)|\\
|
\fortinline|call p%free(p,info)|\\
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
\noindent
|
\noindent
|
||||||
This method deallocates the preconditioner data structure \verb|p|.
|
This method deallocates the preconditioner data structure \fortinline|p|.
|
||||||
|
|
||||||
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
||||||
|
|
||||||
\begin{tabular}{p{1.2cm}p{10.5cm}}
|
\begin{tabular}{p{1.2cm}p{10.5cm}}
|
||||||
\verb|info| & \verb|integer, intent(out)|.\\
|
\fortinline|info| & \fortinline|integer, intent(out)|.\\
|
||||||
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
|
|
||||||
@@ -758,22 +779,30 @@ This method deallocates the preconditioner data structure \verb|p|.
|
|||||||
\subsection{Method descr\label{sec:precdescr}}
|
\subsection{Method descr\label{sec:precdescr}}
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\verb|call p%descr(info, [iout])|\\
|
\fortinline|call p%descr(info, [iout, root, verbosity])|\\
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
\noindent
|
\noindent
|
||||||
This method prints a description of the preconditioner \verb|p| to the standard output or
|
This method prints a description of the preconditioner \fortinline|p| to the standard output or
|
||||||
to a file. It must be called after \verb|hierachy_build| and \verb|smoothers_build|,
|
to a file. It must be called after \fortinline|hierachy_build| and \fortinline|smoothers_build|,
|
||||||
or \verb|build|, have been called.
|
or \fortinline|build|, have been called.
|
||||||
|
|
||||||
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
||||||
|
|
||||||
\begin{tabular}{p{1.2cm}p{12cm}}
|
\begin{tabular}{p{2.2cm}p{11cm}}
|
||||||
\verb|info| & \verb|integer, intent(out)|.\\
|
\fortinline|info| & \fortinline|integer, intent(out)|.\\
|
||||||
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
||||||
\verb|iout| & \verb|integer, intent(in), optional|.\\
|
\fortinline|iout| & \fortinline|integer, intent(in), optional|.\\
|
||||||
& The id of the file where the preconditioner description
|
& The id of the file where the preconditioner description
|
||||||
will be printed; the default is the standard output.\\
|
will be printed; the default is the standard output.\\
|
||||||
|
\fortinline|root| & \fortinline|integer, intent(in), optional|.\\
|
||||||
|
& The id of the process where the preconditioner description
|
||||||
|
will be printed; the default is \fortinline|psb_root_|.\\
|
||||||
|
\fortinline|verbosity| & \fortinline|integer, intent(in), optional|.\\
|
||||||
|
& The verbosity level of the description. Default value
|
||||||
|
is 0. For values higher than 0, it prints out further
|
||||||
|
information, e.g., for a distributed multilevel preconditioner
|
||||||
|
the size of the coarse matrices on every process.\\
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
|
|
||||||
|
|
||||||
@@ -784,7 +813,7 @@ preconditioner object.
|
|||||||
\subsubsection{Method: dump}
|
\subsubsection{Method: dump}
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\verb|call p%dump(info[,istart,iend,prefix,head,ac,rp,smoother,solver,global_num])|\\
|
\fortinline|call p%dump(info[,istart,iend,prefix,head,ac,rp,smoother,solver,global_num])|\\
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
\noindent
|
\noindent
|
||||||
@@ -793,9 +822,9 @@ Dump on file.
|
|||||||
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
||||||
|
|
||||||
\begin{tabular}{p{1.2cm}p{12cm}}
|
\begin{tabular}{p{1.2cm}p{12cm}}
|
||||||
\verb|info| & \verb|integer, intent(out)|.\\
|
\fortinline|info| & \fortinline|integer, intent(out)|.\\
|
||||||
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
||||||
\verb|amold| & \verb|class(psb_|\emph{x}\verb|_base_sparse_mat), intent(in), optional|. \\
|
\fortinline|amold| & \fortinline|class(psb_|\emph{x}\fortinline|_base_sparse_mat), intent(in), optional|. \\
|
||||||
& The desired dynamic type for internal matrix
|
& The desired dynamic type for internal matrix
|
||||||
components; this allows e.g. running on GPUs; it needs not be the
|
components; this allows e.g. running on GPUs; it needs not be the
|
||||||
same on all processes. See the PSBLAS User's Guide for
|
same on all processes. See the PSBLAS User's Guide for
|
||||||
@@ -806,7 +835,7 @@ Dump on file.
|
|||||||
\subsubsection{Method: clone}
|
\subsubsection{Method: clone}
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\verb|call p%clone(pout,info)|\\
|
\fortinline|call p%clone(pout,info)|\\
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
\noindent
|
\noindent
|
||||||
@@ -815,11 +844,11 @@ Create a (deep) copy of the preconditioner object.
|
|||||||
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
||||||
|
|
||||||
\begin{tabular}{p{1.2cm}p{12cm}}
|
\begin{tabular}{p{1.2cm}p{12cm}}
|
||||||
\verb|pout| & \verb|type(amg_|\emph{x}\verb|prec_type), intent(out)|.\\
|
\fortinline|pout| & \fortinline|type(amg_|\emph{x}\fortinline|prec_type), intent(out)|.\\
|
||||||
& The copy of the preconditioner data structure. Note
|
& The copy of the preconditioner data structure. Note
|
||||||
that \emph{x} must be chosen according
|
that \emph{x} must be chosen according
|
||||||
to the real/complex, single/double precision version of AMG4PSBLAS under use.\\
|
to the \fortinline|real|/\fortinline|complex|, single/double precision version of AMG4PSBLAS under use.\\
|
||||||
\verb|info| & \verb|integer, intent(out)|.\\
|
\fortinline|info| & \fortinline|integer, intent(out)|.\\
|
||||||
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
|
|
||||||
@@ -828,7 +857,7 @@ Create a (deep) copy of the preconditioner object.
|
|||||||
\subsubsection{Method: sizeof}
|
\subsubsection{Method: sizeof}
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\verb|sz = p%sizeof()|\\
|
\fortinline|sz = p%sizeof()|\\
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
\noindent
|
\noindent
|
||||||
@@ -837,7 +866,7 @@ Return memory footprint in bytes.
|
|||||||
\subsubsection{Method: allocate\_wrk}
|
\subsubsection{Method: allocate\_wrk}
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\verb|call p%allocate_wrk(info[, vmold])|\\
|
\fortinline|call p%allocate_wrk(info[, vmold])|\\
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
\noindent
|
\noindent
|
||||||
@@ -850,18 +879,18 @@ on some platforms, most notably GPUs, memory allocation is
|
|||||||
a slow operation, and the default behaviour would lead to a
|
a slow operation, and the default behaviour would lead to a
|
||||||
slowdown. This method allows to trade space for time by preallocating
|
slowdown. This method allows to trade space for time by preallocating
|
||||||
the internal workspace outside of the invocation of a Krylov
|
the internal workspace outside of the invocation of a Krylov
|
||||||
method. When using GPUs or other specialized devices, the \verb|vmold|
|
method. When using GPUs or other specialized devices, the \fortinline|vmold|
|
||||||
argument is also necessary to ensure the internal work vectors are of
|
argument is also necessary to ensure the internal work vectors are of
|
||||||
the appropriate dynamic type to exploit the accelerator hardware; when
|
the appropriate dynamic type to exploit the accelerator hardware; when
|
||||||
allocation occurs internally this is taken care of based on the dynamic
|
allocation occurs internally this is taken care of based on the dynamic
|
||||||
type of the \verb|x| argument to the \verb|apply| method.
|
type of the \fortinline|x| argument to the \fortinline|apply| method.
|
||||||
|
|
||||||
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
||||||
|
|
||||||
\begin{tabular}{p{1.2cm}p{12cm}}
|
\begin{tabular}{p{1.2cm}p{12cm}}
|
||||||
\verb|info| & \verb|integer, intent(out)|.\\
|
\fortinline|info| & \fortinline|integer, intent(out)|.\\
|
||||||
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
||||||
\verb|vmold| & \verb|class(psb_|\emph{x}\verb|_base_vect_type), intent(in), optional|. \\
|
\fortinline|vmold| & \fortinline|class(psb_|\emph{x}\fortinline|_base_vect_type), intent(in), optional|. \\
|
||||||
& The desired dynamic type for internal vector
|
& The desired dynamic type for internal vector
|
||||||
components; this allows e.g. running on GPUs. \\
|
components; this allows e.g. running on GPUs. \\
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
@@ -871,7 +900,7 @@ type of the \verb|x| argument to the \verb|apply| method.
|
|||||||
\subsubsection{Method: free\_wrk}
|
\subsubsection{Method: free\_wrk}
|
||||||
|
|
||||||
\begin{center}
|
\begin{center}
|
||||||
\verb|call p%free_wrk(info)|\\
|
\fortinline|call p%free_wrk(info)|\\
|
||||||
\end{center}
|
\end{center}
|
||||||
|
|
||||||
\noindent
|
\noindent
|
||||||
@@ -880,7 +909,7 @@ Deallocate internal work vectors.
|
|||||||
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
{\vskip1.5\baselineskip\noindent\large\bfseries Arguments} \smallskip
|
||||||
|
|
||||||
\begin{tabular}{p{1.2cm}p{12cm}}
|
\begin{tabular}{p{1.2cm}p{12cm}}
|
||||||
\verb|info| & \verb|integer, intent(out)|.\\
|
\fortinline|info| & \fortinline|integer, intent(out)|.\\
|
||||||
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
|
||||||
\end{tabular}
|
\end{tabular}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user