mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-06 14:44:55 +00:00
Merged license updates and updates from Pasqua.
This commit is contained in:
Binary file not shown.
@@ -1,5 +1,6 @@
|
||||
|
||||
/* start css.sty */
|
||||
.cmr-7{font-size:63%;}
|
||||
.cmr-10{font-size:90%;}
|
||||
.cmmi-10{font-size:90%;font-style: italic;}
|
||||
.cmsy-10{font-size:90%;}
|
||||
@@ -7,12 +8,14 @@
|
||||
.cmbx-12x-x-144{font-size:157%; font-weight: bold;}
|
||||
.cmbx-12x-x-144{ font-weight: bold;}
|
||||
.cmbx-12x-x-144{ font-weight: bold;}
|
||||
.cmbx-12x-x-144{ font-weight: bold;}
|
||||
.cmti-10x-x-109{ font-style: italic;}
|
||||
.cmti-12{font-size:109%; font-style: italic;}
|
||||
.cmr-12{font-size:109%;}
|
||||
.cmbx-12{font-size:109%; font-weight: bold;}
|
||||
.cmbx-12{ font-weight: bold;}
|
||||
.cmbx-12{ font-weight: bold;}
|
||||
.cmbx-12{ font-weight: bold;}
|
||||
.cmtt-12{font-size:109%;font-family: monospace,monospace;}
|
||||
.cmtt-12{font-family: monospace,monospace;}
|
||||
.cmtt-12{font-family: monospace,monospace;}
|
||||
@@ -39,7 +42,12 @@
|
||||
.cmbx-10x-x-109{ font-weight: bold;}
|
||||
.cmbx-10x-x-109{ font-weight: bold;}
|
||||
.cmbx-10x-x-109{ font-weight: bold;}
|
||||
.cmbx-10x-x-109{ font-weight: bold;}
|
||||
.cmcsc-10{font-size:90%;}
|
||||
.cmbx-10{font-size:90%; font-weight: bold;}
|
||||
.cmbx-10{ font-weight: bold;}
|
||||
.cmbx-10{ font-weight: bold;}
|
||||
.cmbx-10{ font-weight: bold;}
|
||||
.cmti-10{font-size:90%; font-style: italic;}
|
||||
.small-caps{font-variant: small-caps; }
|
||||
p{margin-top:0;margin-bottom:0}
|
||||
@@ -187,9 +195,9 @@ div.abstract {width:100%;}
|
||||
#TBL-5{border-collapse:collapse;}
|
||||
#TBL-5 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-5{border-collapse:collapse;}
|
||||
td#TBL-5-9-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
||||
td#TBL-5-10-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
||||
td#TBL-5-11-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
||||
td#TBL-5-12-5{border-left:solid black 0.4pt;border-right:solid black 0.4pt;}
|
||||
#TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
#TBL-6{border-collapse:collapse;}
|
||||
#TBL-6 colgroup{border-left: 1px solid black;border-right:1px solid black;}
|
||||
|
||||
+58
-33
@@ -167,6 +167,31 @@ class="cmr-12">(2), 1999, 792–797.</span>
|
||||
class="cmr-12">[7]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="XMatchBoxP"></a><span
|
||||
class="cmr-12">U..</span><span
|
||||
class="cmr-12"> V.</span><span
|
||||
class="cmr-12"> Catalyurek, F.</span><span
|
||||
class="cmr-12"> Dobrian, A.</span><span
|
||||
class="cmr-12"> Gebremedhin, M.</span><span
|
||||
class="cmr-12"> Halappanavar,</span>
|
||||
<span
|
||||
class="cmr-12">and A.</span><span
|
||||
class="cmr-12"> Pothen, </span><span
|
||||
class="cmti-12">Distributed-memory parallel algorithms for matching and</span>
|
||||
<span
|
||||
class="cmti-12">coloring</span><span
|
||||
class="cmr-12">, in PCO’11 New Trends in Parallel Computing and Optimization,</span>
|
||||
<span
|
||||
class="cmr-12">IEEE International Symposium on Parallel and Distributed Processing</span>
|
||||
<span
|
||||
class="cmr-12">Workshops, IEEE CS, 2011.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[8]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
id="Xapnum_07"></a><span
|
||||
class="cmr-12">P.</span><span
|
||||
@@ -185,7 +210,7 @@ class="cmr-12">57 (11-12), 2007, 1181-1196.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[8]</span><span class="bibsp"><span
|
||||
class="cmr-12">[9]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
@@ -203,8 +228,8 @@ class="cmti-12">Fortran 95</span><span
|
||||
class="cmr-12">, ACM Trans. Math. Softw., 37(3), 2010, art. 30.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[9]</span><span class="bibsp"><span
|
||||
<span
|
||||
class="cmr-12">[10]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
@@ -223,7 +248,7 @@ class="cmr-12">, Appl. Algebra Engrg. Comm. Comput., 18(3), 2007, 223–239.
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<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></span><a
|
||||
@@ -242,7 +267,7 @@ class="cmr-12">.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<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></span><a
|
||||
@@ -260,10 +285,13 @@ class="cmr-12">, ACM Transactions on Mathematical Software, 30, 2004, 196–
|
||||
class="cmr-12">(See also </span><span
|
||||
class="cmtt-12">http://www.cise.ufl.edu/~davis/</span><span
|
||||
class="cmr-12">)</span>
|
||||
|
||||
|
||||
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[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></span><a
|
||||
@@ -286,13 +314,10 @@ class="cmti-12">A supernodal approach to sparse partial pivoting</span><span
|
||||
class="cmr-12">,</span>
|
||||
<span
|
||||
class="cmr-12">SIAM Journal on Matrix Analysis and Applications, 20 (3), 1999, 720–755.</span>
|
||||
|
||||
|
||||
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[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></span><a
|
||||
@@ -313,7 +338,7 @@ class="cmr-12">Software, 16 (1) 1990, 1–17.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<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></span><a
|
||||
@@ -334,7 +359,7 @@ class="cmr-12">Transactions on Mathematical Software, 14 (1) 1988, 1–17.</
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<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></span><a
|
||||
@@ -352,7 +377,7 @@ class="cmr-12">.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[16]</span><span class="bibsp"><span
|
||||
class="cmr-12">[17]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
@@ -370,7 +395,7 @@ class="cmr-12"> 23.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[17]</span><span class="bibsp"><span
|
||||
class="cmr-12">[18]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
@@ -387,7 +412,7 @@ class="cmr-12">Transactions on Mathematical Software, 26 (4), 2000, 527–55
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[18]</span><span class="bibsp"><span
|
||||
class="cmr-12">[19]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
@@ -399,10 +424,13 @@ class="cmti-12">algebraic multigrid by aggregation</span><span
|
||||
class="cmr-12">, Numerical Lin. Algebra with Applications,</span>
|
||||
<span
|
||||
class="cmr-12">2016, 23:501-518</span>
|
||||
|
||||
|
||||
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[19]</span><span class="bibsp"><span
|
||||
class="cmr-12">[20]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
@@ -421,13 +449,10 @@ class="cmti-12">MPI: The Complete Reference. Volume 2 - The MPI-2</span>
|
||||
<span
|
||||
class="cmti-12">Extensions</span><span
|
||||
class="cmr-12">, MIT Press, 1998.</span>
|
||||
|
||||
|
||||
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[20]</span><span class="bibsp"><span
|
||||
class="cmr-12">[21]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
@@ -449,7 +474,7 @@ class="cmr-12">Mathematical Software, 5 (3), 1979, 308–323.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[21]</span><span class="bibsp"><span
|
||||
class="cmr-12">[22]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
@@ -469,7 +494,7 @@ class="cmr-12">ACM Transactions on Mathematical Software, 29 (2), 2003, 110̵
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[22]</span><span class="bibsp"><span
|
||||
class="cmr-12">[23]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
@@ -485,7 +510,7 @@ class="cmr-12">Numerical Linear Algebra with Applications, 15 (5), 2008, 473R
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[23]</span><span class="bibsp"><span
|
||||
class="cmr-12">[24]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
@@ -499,7 +524,7 @@ class="cmr-12">2003.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[24]</span><span class="bibsp"><span
|
||||
class="cmr-12">[25]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
@@ -517,7 +542,7 @@ class="cmr-12">University Press, 1996.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[25]</span><span class="bibsp"><span
|
||||
class="cmr-12">[26]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
@@ -537,7 +562,7 @@ class="cmr-12">Press, 1998.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[26]</span><span class="bibsp"><span
|
||||
class="cmr-12">[27]</span><span class="bibsp"><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span><span
|
||||
class="cmr-12"> </span></span></span><a
|
||||
@@ -553,10 +578,13 @@ class="cmr-12">
|
||||
class="cmr-12">U.</span><span
|
||||
class="cmr-12"> Trottenberg, C.</span><span
|
||||
class="cmr-12"> Oosterlee, Multigrid, Academic Press, 2001.</span>
|
||||
|
||||
|
||||
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[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></span><a
|
||||
@@ -571,13 +599,10 @@ class="cmti-12">Aggregation Strategies on Massively Parallel Machines</span
|
||||
class="cmr-12">, in J. Donnelley,</span>
|
||||
<span
|
||||
class="cmr-12">editor, Proceedings of SuperComputing 2000, Dallas, 2000.</span>
|
||||
|
||||
|
||||
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<span
|
||||
class="cmr-12">[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></span><a
|
||||
@@ -596,7 +621,7 @@ class="cmr-12">(3) 1996, 179–196.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<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></span><a
|
||||
@@ -613,7 +638,7 @@ class="cmr-12">16, (2013) 59–76.</span>
|
||||
</p>
|
||||
<p class="bibitem" ><span class="biblabel">
|
||||
<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></span><a
|
||||
|
||||
+60
-41
@@ -87,7 +87,7 @@ class="cmr-12">3</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli4.html#XStuben_01"><span
|
||||
class="cmr-12">26</span></a><span
|
||||
class="cmr-12">27</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">), to be used in the iterative solution of linear systems,</span>
|
||||
<table
|
||||
@@ -118,19 +118,24 @@ class="cmr-12">3</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli4.html#XNotay2008"><span
|
||||
class="cmr-12">22</span></a><span
|
||||
class="cmr-12">23</span></a><span
|
||||
class="cmr-12">]</span></span> <span
|
||||
class="cmr-12">are available, which can be</span>
|
||||
<span
|
||||
class="cmr-12">combined with weighted versions of Jacobi, hybrid forward/backward Gauss-Seidel,</span>
|
||||
<span
|
||||
class="cmr-12">block-Jacobi, and additive Schwarz smoothers. An algebraic approach is used to</span>
|
||||
class="cmr-12">block-Jacobi, and additive Schwarz smoothers. Also </span><span
|
||||
class="cmmi-12">ℓ</span><sub><span
|
||||
class="cmr-8">1</span></sub> <span
|
||||
class="cmr-12">versions of Jacobi, block-Jacobi</span>
|
||||
<span
|
||||
class="cmr-12">generate a hierarchy of coarse-level matrices and operators, without explicitly using</span>
|
||||
class="cmr-12">and Gauss-Seidel smoothers are available. An algebraic approach is used to generate a</span>
|
||||
<span
|
||||
class="cmr-12">any information on the geometry of the original problem, e.g., the discretization of a</span>
|
||||
class="cmr-12">hierarchy of coarse-level matrices and operators, without explicitly using any</span>
|
||||
<span
|
||||
class="cmr-12">PDE. To this end, two different coarsening strategies, based on aggregation, are</span>
|
||||
class="cmr-12">information on the geometry of the original problem, e.g., the discretization of a PDE.</span>
|
||||
<span
|
||||
class="cmr-12">To this end, two different coarsening strategies, based on aggregation, are</span>
|
||||
<span
|
||||
class="cmr-12">available:</span>
|
||||
<ul class="itemize1">
|
||||
@@ -145,7 +150,7 @@ class="cmr-12">2</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli4.html#XVANEK_MANDEL_BREZINA"><span
|
||||
class="cmr-12">28</span></a><span
|
||||
class="cmr-12">29</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">, and already included in the previous versions of the</span>
|
||||
<span
|
||||
@@ -153,13 +158,16 @@ class="cmr-12">package</span><span
|
||||
class="cmr-12"> </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli4.html#XBDDF2007"><span
|
||||
class="cmr-12">9</span></a><span
|
||||
class="cmr-12">10</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli4.html#XMLD2P4_TOMS"><span
|
||||
class="cmr-12">8</span></a><span
|
||||
class="cmr-12">9</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">;</span>
|
||||
|
||||
|
||||
|
||||
</li>
|
||||
<li class="itemize"><span
|
||||
class="cmr-12">the first parallel implementation of a coupled version of Coarsening based</span>
|
||||
@@ -168,25 +176,22 @@ class="cmr-12">on Compatible Weighted Matching introduced in</span><span
|
||||
class="cmr-12"> </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli4.html#XDV2013"><span
|
||||
class="cmr-12">29</span></a><span
|
||||
class="cmr-12">30</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli4.html#XDFV2018"><span
|
||||
class="cmr-12">30</span></a><span
|
||||
class="cmr-12">31</span></a><span
|
||||
class="cmr-12">]</span></span> <span
|
||||
class="cmr-12">and described in</span>
|
||||
|
||||
|
||||
|
||||
<span
|
||||
class="cmr-12">details in</span><span
|
||||
class="cmr-12"> </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli4.html#XDDF2020"><span
|
||||
class="cmr-12">10</span></a><span
|
||||
class="cmr-12">11</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">;</span></li></ul>
|
||||
<!--l. 31--><p class="indent" > <span
|
||||
<!--l. 32--><p class="indent" > <span
|
||||
class="cmr-12">Either exact or approximate solvers can be used on the coarsest-level system.</span>
|
||||
<span
|
||||
class="cmr-12">Specifically, different sparse LU factorizations from external packages, native</span>
|
||||
@@ -198,7 +203,7 @@ class="cmr-12">Gauss-Seidel, block-Jacobi solvers and recursive call to precondi
|
||||
class="cmr-12">methods are available. All the smoothers can be also exploited as one-level</span>
|
||||
<span
|
||||
class="cmr-12">preconditioners.</span>
|
||||
<!--l. 35--><p class="indent" > <span
|
||||
<!--l. 36--><p class="indent" > <span
|
||||
class="cmr-12">AMG4PSBLAS is written in Fortran</span><span
|
||||
class="cmr-12"> 2003, following an object-oriented design</span>
|
||||
<span
|
||||
@@ -213,52 +218,69 @@ class="cmr-12">Single and double precision implementations of AMG4PSBLAS are ava
|
||||
class="cmr-12">for both the real and the complex case, which can be used through a single</span>
|
||||
<span
|
||||
class="cmr-12">interface.</span>
|
||||
<!--l. 45--><p class="indent" > <span
|
||||
class="cmr-12">AMG4PSBLAS has been designed to implement scalable and easy-to-use multilevel</span>
|
||||
<!--l. 46--><p class="indent" > <span
|
||||
class="cmr-12">AMG4PSBLAS has been designed to implement scalable and easy-to-use</span>
|
||||
<span
|
||||
class="cmr-12">preconditioners in the context of the PSBLAS (Parallel Sparse BLAS) computational</span>
|
||||
class="cmr-12">multilevel preconditioners in the context of the PSBLAS (Parallel Sparse BLAS)</span>
|
||||
<span
|
||||
class="cmr-12">framework</span><span
|
||||
class="cmr-12">computational framework</span><span
|
||||
class="cmr-12"> </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli4.html#Xpsblas_00"><span
|
||||
class="cmr-12">17</span></a><span
|
||||
class="cmr-12">18</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli4.html#XPSBLAS3"><span
|
||||
class="cmr-12">16</span></a><span
|
||||
class="cmr-12">17</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">. PSBLAS provides basic linear algebra operators and data</span>
|
||||
class="cmr-12">. PSBLAS provides basic linear algebra operators</span>
|
||||
<span
|
||||
class="cmr-12">management facilities for distributed sparse matrices, as well as parallel Krylov solvers</span>
|
||||
class="cmr-12">and data management facilities for distributed sparse matrices, kernels for</span>
|
||||
<span
|
||||
class="cmr-12">which can be used with the AMG4PSBLAS preconditioners. The choice of PSBLAS</span>
|
||||
class="cmr-12">sequential incomplete factorizations needed for the parallel block-Jacobi and</span>
|
||||
<span
|
||||
class="cmr-12">has been mainly motivated by the need of having a portable and efficient</span>
|
||||
class="cmr-12">additive Schwarz smoothers, and parallel Krylov solvers which can be used with</span>
|
||||
<span
|
||||
class="cmr-12">software infrastructure implementing “de facto” standard parallel sparse linear</span>
|
||||
class="cmr-12">the AMG4PSBLAS preconditioners. The choice of PSBLAS has been mainly</span>
|
||||
<span
|
||||
class="cmr-12">algebra kernels, to pursue goals such as performance, portability, modularity</span>
|
||||
class="cmr-12">motivated by the need of having a portable and efficient software infrastructure</span>
|
||||
<span
|
||||
class="cmr-12">ed extensibility in the development of the preconditioner package. On the</span>
|
||||
class="cmr-12">implementing “de facto” standard parallel sparse linear algebra kernels, to</span>
|
||||
<span
|
||||
class="cmr-12">other hand, the implementation of AMG4PSBLAS, which was driven by the</span>
|
||||
class="cmr-12">pursue goals such as performance, portability, modularity ed extensibility</span>
|
||||
<span
|
||||
class="cmr-12">need to face the exascale challenge, has led to some important revisions and</span>
|
||||
class="cmr-12">in the development of the preconditioner package. On the other hand, the</span>
|
||||
<span
|
||||
class="cmr-12">extentions of the PSBLAS infrastructure. The inter-process comunication</span>
|
||||
class="cmr-12">implementation of AMG4PSBLAS, which was driven by the need to face the exascale</span>
|
||||
<span
|
||||
class="cmr-12">required by AMG4PSBLAS is encapsulated in the PSBLAS routines; therefore,</span>
|
||||
class="cmr-12">challenge, has led to some important revisions and extentions of the PSBLAS</span>
|
||||
<span
|
||||
class="cmr-12">AMG4PSBLAS can be run on any parallel machine where PSBLAS implementations</span>
|
||||
class="cmr-12">infrastructure. The inter-process comunication required by AMG4PSBLAS</span>
|
||||
<span
|
||||
class="cmr-12">are available.</span>
|
||||
<!--l. 60--><p class="indent" > <span
|
||||
class="cmr-12">is encapsulated in the PSBLAS routines; therefore, AMG4PSBLAS can be</span>
|
||||
<span
|
||||
class="cmr-12">run on any parallel machine where PSBLAS implementations are available.</span>
|
||||
<span
|
||||
class="cmr-12">In the most recent version of PSBLAS (release 3.7), a plug-in for GPU is</span>
|
||||
<span
|
||||
class="cmr-12">included; it includes CUDA versions of main vector operations and of sparse</span>
|
||||
<span
|
||||
class="cmr-12">matrix-vector multiplication, so that Krylov methods coupled with AMG4PBLAS</span>
|
||||
<span
|
||||
class="cmr-12">preconditioners relying on Jacobi and block-Jacobi smoothers with sparse</span>
|
||||
<span
|
||||
class="cmr-12">approximate inverses on the blocks can be efficiently executed on cluster of</span>
|
||||
<span
|
||||
class="cmr-12">GPUs.</span>
|
||||
<!--l. 64--><p class="indent" > <span
|
||||
class="cmr-12">AMG4PSBLAS has a layered and modular software architecture where three main</span>
|
||||
<span
|
||||
class="cmr-12">layers can be identified. The lower layer consists of the PSBLAS kernels, the middle</span>
|
||||
<span
|
||||
class="cmr-12">one implements the construction and application phases of the preconditioners, and the</span>
|
||||
|
||||
|
||||
|
||||
<span
|
||||
class="cmr-12">upper one provides a uniform interface to all the preconditioners. This architecture</span>
|
||||
<span
|
||||
@@ -275,7 +297,7 @@ class="cmr-12"> </span><a
|
||||
href="userhtmlse7.html#x29-330007"><span
|
||||
class="cmr-12">7</span><!--tex4ht:ref: sec:adding --></a><span
|
||||
class="cmr-12">).</span>
|
||||
<!--l. 71--><p class="indent" > <span
|
||||
<!--l. 75--><p class="indent" > <span
|
||||
class="cmr-12">This guide is organized as follows. General information on the distribution of the</span>
|
||||
<span
|
||||
class="cmr-12">source code is reported in Section</span><span
|
||||
@@ -291,9 +313,6 @@ class="cmr-12">3</span><!--tex4ht:ref: sec:building --></a><span
|
||||
class="cmr-12">. The basics for building and applying the</span>
|
||||
<span
|
||||
class="cmr-12">preconditioners with the Krylov solvers implemented in PSBLAS are reported</span>
|
||||
|
||||
|
||||
|
||||
<span
|
||||
class="cmr-12">in</span><span
|
||||
class="cmr-12"> Section</span><span
|
||||
|
||||
@@ -97,11 +97,11 @@ class="cmr-12">3</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli4.html#XStuben_01"><span
|
||||
class="cmr-12">26</span></a><span
|
||||
class="cmr-12">27</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli4.html#Xdd2_96"><span
|
||||
class="cmr-12">24</span></a><span
|
||||
class="cmr-12">25</span></a><span
|
||||
class="cmr-12">]</span></span> <span
|
||||
class="cmr-12">for</span>
|
||||
<span
|
||||
@@ -116,7 +116,7 @@ class="cmr-12">2</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli4.html#XVANEK_MANDEL_BREZINA"><span
|
||||
class="cmr-12">28</span></a><span
|
||||
class="cmr-12">29</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">, for building the sequence of coarse matrices and transfer</span>
|
||||
<span
|
||||
@@ -130,7 +130,7 @@ class="cmr-12">is implemented, where the smoothed aggregation is applied locally
|
||||
class="cmr-12">submatrix </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli4.html#XTUMINARO_TONG"><span
|
||||
class="cmr-12">27</span></a><span
|
||||
class="cmr-12">28</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">. A brief description of the AMG preconditioners implemented in</span>
|
||||
<span
|
||||
@@ -153,11 +153,11 @@ class="cmr-12">5</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli4.html#Xapnum_07"><span
|
||||
class="cmr-12">7</span></a><span
|
||||
class="cmr-12">8</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli4.html#XMLD2P4_TOMS"><span
|
||||
class="cmr-12">8</span></a><span
|
||||
class="cmr-12">9</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span>
|
||||
<!--l. 47--><p class="indent" > <span
|
||||
|
||||
@@ -38,7 +38,7 @@ class="cmr-12">multilevel (i.e., AMG) preconditioners with the Krylov solvers in
|
||||
<span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">15</span></a><span
|
||||
class="cmr-12">16</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">. The following steps are required:</span>
|
||||
<ol class="enumerate1" >
|
||||
|
||||
@@ -52,7 +52,7 @@ class="cmr-12">PSBLAS error handling routines; for further details see the PSBLA
|
||||
<span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">15</span></a><span
|
||||
class="cmr-12">16</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span>
|
||||
|
||||
|
||||
+51
-15
@@ -31,25 +31,61 @@ class="cmr-12">] </span></p></div>
|
||||
class="cmr-12">A </span></span> <a
|
||||
id="x31-35000A"></a><span
|
||||
class="cmr-12">License</span></h3>
|
||||
<!--l. 5--><p class="noindent" ><span
|
||||
class="cmbx-12">DA CONTROLLARE E MODIFICARE INCLUDENDO I CREDITS A</span>
|
||||
<span
|
||||
class="cmbx-12">MLD2P4</span>
|
||||
<!--l. 7--><p class="indent" > <span
|
||||
class="cmr-12">The AMG4PSBLAS is freely distributable under the following copyright</span>
|
||||
<span
|
||||
class="cmr-12">terms:</span>
|
||||
<!--l. 6--><p class="noindent" ><span
|
||||
class="cmr-12">AMG4PSBLAS is freely distributable under the following copyright terms:</span>
|
||||
|
||||
|
||||
|
||||
<pre class="verbatim" id="verbatim-11">
|
||||
                           AMG4PSBLAS  version 1.0
|
||||
              Algebraic MultiGrid Preconditioners Package
|
||||
                             AMG4PSBLAS version 1.0
|
||||
    Algebraic Multigrid Package
|
||||
               based on PSBLAS (Parallel Sparse BLAS version 3.7)
|
||||
    (C) Copyright 2021
|
||||
        Salvatore Filippone
|
||||
        Pasqua D’Ambra
|
||||
        Fabio Durastante
|
||||
    Redistribution and use in source and binary forms, with or without
|
||||
    modification, are permitted provided that the following conditions
|
||||
    are met:
|
||||
      1. Redistributions of source code must retain the above copyright
|
||||
         notice, this list of conditions and the following disclaimer.
|
||||
      2. Redistributions in binary form must reproduce the above copyright
|
||||
         notice, this list of conditions, and the following disclaimer in the
|
||||
         documentation and/or other materials provided with the distribution.
|
||||
      3. The name of the AMG4PSBLAS group or the names of its contributors may
|
||||
         not be used to endorse or promote products derived from this
|
||||
         software without specific written permission.
|
||||
    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
    ‘‘AS IS’’ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
    TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
    PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AMG4PSBLAS GROUP OR ITS CONTRIBUTORS
|
||||
    BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
    CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
    SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
    INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
    CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
    ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
    POSSIBILITY OF SUCH DAMAGE.
|
||||
</pre>
|
||||
<!--l. 45--><p class="nopar" >
|
||||
|
||||
|
||||
|
||||
<!--l. 48--><p class="indent" > <span
|
||||
class="cmr-12">AMG4PSBLAS is an evolution (a rather substantial one) of MLD2P4, whose license</span>
|
||||
<span
|
||||
class="cmr-12">we reproduce here to abide by its terms:</span>
|
||||
|
||||
|
||||
|
||||
<pre class="verbatim" id="verbatim-12">
|
||||
                           MLD2P4  version 2.2
|
||||
  MultiLevel Domain Decomposition Parallel Preconditioners Package
|
||||
             based on PSBLAS (Parallel Sparse BLAS version 3.5)
|
||||
  (C) Copyright 2008, 2010, 2012, 2015, 2017
|
||||
  Pasqua D’Ambra         IAC-CNR, IT
|
||||
  Fabio Durastante       University of Pisa and IAC-CNR, IT
|
||||
  Salvatore Filippone    University of Rome Tor-Vergata and IAC-CNR, IT
|
||||
  (C) Copyright 2008-2018
|
||||
      Salvatore Filippone
|
||||
      Pasqua D’Ambra
|
||||
      Daniela di Serafino
|
||||
  Redistribution and use in source and binary forms, with or without
|
||||
  modification, are permitted provided that the following conditions
|
||||
  are met:
|
||||
@@ -73,7 +109,7 @@ class="cmr-12">terms:</span>
|
||||
  ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
  POSSIBILITY OF SUCH DAMAGE.
|
||||
</pre>
|
||||
<!--l. 45--><p class="nopar" >
|
||||
<!--l. 89--><p class="nopar" >
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -36,15 +36,15 @@ class="cmbx-12">BLAS</span> </dt><dd
|
||||
class="description"><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli4.html#Xblas3"><span
|
||||
class="cmr-12">13</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli4.html#Xblas2"><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">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli4.html#Xblas1"><span
|
||||
class="cmr-12">20</span></a><span
|
||||
class="cmr-12">21</span></a><span
|
||||
class="cmr-12">]</span></span> <span
|
||||
class="cmr-12">Many vendors provide optimized versions of BLAS; if no</span>
|
||||
<span
|
||||
@@ -90,11 +90,11 @@ class="cmbx-12">MPI</span> </dt><dd
|
||||
class="description"><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli4.html#XMPI2"><span
|
||||
class="cmr-12">19</span></a><span
|
||||
class="cmr-12">20</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli4.html#XMPI1"><span
|
||||
class="cmr-12">25</span></a><span
|
||||
class="cmr-12">26</span></a><span
|
||||
class="cmr-12">]</span></span> <span
|
||||
class="cmr-12">A version of MPI is available on most high-performance computing</span>
|
||||
<span
|
||||
@@ -105,11 +105,11 @@ class="cmbx-12">PSBLAS</span> </dt><dd
|
||||
class="description"><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">15</span></a><span
|
||||
class="cmr-12">16</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli4.html#Xpsblas_00"><span
|
||||
class="cmr-12">17</span></a><span
|
||||
class="cmr-12">18</span></a><span
|
||||
class="cmr-12">]</span></span> <span
|
||||
class="cmr-12">Parallel Sparse BLAS (PSBLAS) is available from</span>
|
||||
<a
|
||||
|
||||
+345
-292
File diff suppressed because it is too large
Load Diff
+21
-21
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 561--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 572--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu13.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -34,12 +34,12 @@ class="cmr-12">Method hierarchy</span><span
|
||||
class="cmr-12">_build</span></h4>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 563--><p class="noindent" >
|
||||
<!--l. 564--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
<!--l. 574--><p class="noindent" >
|
||||
<!--l. 575--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">call</span><span
|
||||
class="cmtt-12"> p%hierarchy_build(a,desc_a,info)</span></span></span><br />
|
||||
</div>
|
||||
<!--l. 567--><p class="noindent" ><span
|
||||
<!--l. 578--><p class="noindent" ><span
|
||||
class="cmr-12">This method builds the hierarchy of matrices and restriction/prolongation operators for</span>
|
||||
<span
|
||||
class="cmr-12">the multilevel preconditioner </span><span class="obeylines-h"><span class="verb"><span
|
||||
@@ -51,7 +51,7 @@ class="cmtt-12">init</span></span></span> <span
|
||||
class="cmr-12">and </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">set</span></span></span><span
|
||||
class="cmr-12">.</span>
|
||||
<!--l. 572--><p class="noindent" ><span
|
||||
<!--l. 583--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<div class="tabular"> <table id="TBL-11" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
@@ -59,9 +59,9 @@ cellspacing="0" cellpadding="0"
|
||||
id="TBL-11-1"><col
|
||||
id="TBL-11-2"></colgroup><tr
|
||||
style="vertical-align:baseline;" id="TBL-11-1-"><td style="white-space:normal; text-align:left;" id="TBL-11-1-1"
|
||||
class="td11"><!--l. 575--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 586--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">a</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-1-2"
|
||||
class="td11"><!--l. 575--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 586--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">type(psb_</span></span></span><span
|
||||
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">spmat_type),</span><span
|
||||
@@ -69,8 +69,8 @@ class="cmtt-12"> intent(in)</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-11-2-"><td style="white-space:normal; text-align:left;" id="TBL-11-2-1"
|
||||
class="td11"><!--l. 576--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-2-2"
|
||||
class="td11"><!--l. 576--><p class="noindent" ><span
|
||||
class="td11"><!--l. 587--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-2-2"
|
||||
class="td11"><!--l. 587--><p class="noindent" ><span
|
||||
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
|
||||
<span
|
||||
class="cmr-12">to be preconditioned. Note that </span><span
|
||||
@@ -82,21 +82,21 @@ class="cmr-12">real/complex, single/double precision version of AMG4PSBLAS<
|
||||
class="cmr-12">under use. See the PSBLAS User’s Guide for details </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">15</span></a><span
|
||||
class="cmr-12">16</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-11-3-"><td style="white-space:normal; text-align:left;" id="TBL-11-3-1"
|
||||
class="td11"><!--l. 581--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 592--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">desc_a</span></span></span></td><td style="white-space:normal; text-align:left;" id="TBL-11-3-2"
|
||||
class="td11"><!--l. 581--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 592--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">type(psb_desc_type),</span><span
|
||||
class="cmtt-12"> intent(in)</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-11-4-"><td style="white-space:normal; text-align:left;" id="TBL-11-4-1"
|
||||
class="td11"><!--l. 582--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-4-2"
|
||||
class="td11"><!--l. 582--><p class="noindent" ><span
|
||||
class="td11"><!--l. 593--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-4-2"
|
||||
class="td11"><!--l. 593--><p class="noindent" ><span
|
||||
class="cmr-12">The communication descriptor of </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">a</span></span></span><span
|
||||
class="cmr-12">. See the PSBLAS User’s Guide</span>
|
||||
@@ -104,21 +104,21 @@ class="cmr-12">. See the PSBLAS User’s Guide</span>
|
||||
class="cmr-12">for details </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">15</span></a><span
|
||||
class="cmr-12">16</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-11-5-"><td style="white-space:normal; text-align:left;" id="TBL-11-5-1"
|
||||
class="td11"><!--l. 585--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 596--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">info</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-5-2"
|
||||
class="td11"><!--l. 585--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 596--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">integer,</span><span
|
||||
class="cmtt-12"> intent(out)</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-11-6-"><td style="white-space:normal; text-align:left;" id="TBL-11-6-1"
|
||||
class="td11"><!--l. 586--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-6-2"
|
||||
class="td11"><!--l. 586--><p class="noindent" ><span
|
||||
class="td11"><!--l. 597--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-6-2"
|
||||
class="td11"><!--l. 597--><p class="noindent" ><span
|
||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlse8.html#x30-340008"><span
|
||||
@@ -133,7 +133,7 @@ class="td11"> </td> </tr></table></div>
|
||||
|
||||
|
||||
|
||||
<!--l. 592--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 603--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu13.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -150,6 +150,6 @@ class="cmr-12">] [</span><a
|
||||
href="userhtmlse6.html#userhtmlsu12.html" ><span
|
||||
class="cmr-12">up</span></a><span
|
||||
class="cmr-12">] </span></p></div>
|
||||
<!--l. 592--><p class="indent" > <a
|
||||
<!--l. 603--><p class="indent" > <a
|
||||
id="tailuserhtmlsu12.html"></a>
|
||||
</body></html>
|
||||
|
||||
+34
-34
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 592--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 603--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu14.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -34,12 +34,12 @@ class="cmr-12">Method smoothers</span><span
|
||||
class="cmr-12">_build</span></h4>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 595--><p class="noindent" >
|
||||
<!--l. 596--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
<!--l. 606--><p class="noindent" >
|
||||
<!--l. 607--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">call</span><span
|
||||
class="cmtt-12"> p%smoothers_build(a,desc_a,p,info[,amold,vmold,imold])</span></span></span><br />
|
||||
</div>
|
||||
<!--l. 599--><p class="noindent" ><span
|
||||
<!--l. 610--><p class="noindent" ><span
|
||||
class="cmr-12">This method builds the smoothers and the coarsest-level solvers for the multilevel</span>
|
||||
<span
|
||||
class="cmr-12">preconditioner </span><span class="obeylines-h"><span class="verb"><span
|
||||
@@ -57,7 +57,7 @@ class="cmr-12"> </span><a
|
||||
href="userhtmlsu12.html#x22-210006.3"><span
|
||||
class="cmr-12">6.3</span><!--tex4ht:ref: sec:hier_bld --></a><span
|
||||
class="cmr-12">).</span>
|
||||
<!--l. 606--><p class="noindent" ><span
|
||||
<!--l. 617--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<div class="tabular"> <table id="TBL-12" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
@@ -65,9 +65,9 @@ cellspacing="0" cellpadding="0"
|
||||
id="TBL-12-1"><col
|
||||
id="TBL-12-2"></colgroup><tr
|
||||
style="vertical-align:baseline;" id="TBL-12-1-"><td style="white-space:normal; text-align:left;" id="TBL-12-1-1"
|
||||
class="td11"><!--l. 609--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 620--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">a</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-1-2"
|
||||
class="td11"><!--l. 609--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 620--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">type(psb_</span></span></span><span
|
||||
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">spmat_type),</span><span
|
||||
@@ -75,8 +75,8 @@ class="cmtt-12"> intent(in)</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-12-2-"><td style="white-space:normal; text-align:left;" id="TBL-12-2-1"
|
||||
class="td11"><!--l. 610--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-2-2"
|
||||
class="td11"><!--l. 610--><p class="noindent" ><span
|
||||
class="td11"><!--l. 621--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-2-2"
|
||||
class="td11"><!--l. 621--><p class="noindent" ><span
|
||||
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
|
||||
<span
|
||||
class="cmr-12">to be preconditioned. Note that </span><span
|
||||
@@ -88,21 +88,21 @@ class="cmr-12">real/complex, single/double precision version of AMG4PSBLAS<
|
||||
class="cmr-12">under use. See the PSBLAS User’s Guide for details </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">15</span></a><span
|
||||
class="cmr-12">16</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-12-3-"><td style="white-space:normal; text-align:left;" id="TBL-12-3-1"
|
||||
class="td11"><!--l. 614--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 625--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">desc_a</span></span></span></td><td style="white-space:normal; text-align:left;" id="TBL-12-3-2"
|
||||
class="td11"><!--l. 614--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 625--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">type(psb_desc_type),</span><span
|
||||
class="cmtt-12"> intent(in)</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-12-4-"><td style="white-space:normal; text-align:left;" id="TBL-12-4-1"
|
||||
class="td11"><!--l. 615--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-4-2"
|
||||
class="td11"><!--l. 615--><p class="noindent" ><span
|
||||
class="td11"><!--l. 626--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-4-2"
|
||||
class="td11"><!--l. 626--><p class="noindent" ><span
|
||||
class="cmr-12">The communication descriptor of </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">a</span></span></span><span
|
||||
class="cmr-12">. See the PSBLAS User’s Guide</span>
|
||||
@@ -110,21 +110,21 @@ class="cmr-12">. See the PSBLAS User’s Guide</span>
|
||||
class="cmr-12">for details </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">15</span></a><span
|
||||
class="cmr-12">16</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-12-5-"><td style="white-space:normal; text-align:left;" id="TBL-12-5-1"
|
||||
class="td11"><!--l. 617--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 628--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">info</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-5-2"
|
||||
class="td11"><!--l. 617--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 628--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">integer,</span><span
|
||||
class="cmtt-12"> intent(out)</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-12-6-"><td style="white-space:normal; text-align:left;" id="TBL-12-6-1"
|
||||
class="td11"><!--l. 618--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-6-2"
|
||||
class="td11"><!--l. 618--><p class="noindent" ><span
|
||||
class="td11"><!--l. 629--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-6-2"
|
||||
class="td11"><!--l. 629--><p class="noindent" ><span
|
||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlse8.html#x30-340008"><span
|
||||
@@ -132,9 +132,9 @@ class="cmr-12">8</span><!--tex4ht:ref: sec:errors --></a> <span
|
||||
class="cmr-12">for details.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-12-7-"><td style="white-space:normal; text-align:left;" id="TBL-12-7-1"
|
||||
class="td11"><!--l. 619--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 630--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">amold</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-7-2"
|
||||
class="td11"><!--l. 619--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 630--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">class(psb_</span></span></span><span
|
||||
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">_base_sparse_mat),</span><span
|
||||
@@ -143,8 +143,8 @@ class="cmtt-12"> optional</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-12-8-"><td style="white-space:normal; text-align:left;" id="TBL-12-8-1"
|
||||
class="td11"><!--l. 620--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-8-2"
|
||||
class="td11"><!--l. 620--><p class="noindent" ><span
|
||||
class="td11"><!--l. 631--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-8-2"
|
||||
class="td11"><!--l. 631--><p class="noindent" ><span
|
||||
class="cmr-12">The desired dynamic type for internal matrix components; this</span>
|
||||
<span
|
||||
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
|
||||
@@ -152,14 +152,14 @@ 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">[</span><a
|
||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">15</span></a><span
|
||||
class="cmr-12">16</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-12-9-"><td style="white-space:normal; text-align:left;" id="TBL-12-9-1"
|
||||
class="td11"><!--l. 624--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 635--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">vmold</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-9-2"
|
||||
class="td11"><!--l. 624--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 635--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">class(psb_</span></span></span><span
|
||||
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">_base_vect_type),</span><span
|
||||
@@ -168,24 +168,24 @@ class="cmtt-12"> optional</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-12-10-"><td style="white-space:normal; text-align:left;" id="TBL-12-10-1"
|
||||
class="td11"><!--l. 625--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-10-2"
|
||||
class="td11"><!--l. 625--><p class="noindent" ><span
|
||||
class="td11"><!--l. 636--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-10-2"
|
||||
class="td11"><!--l. 636--><p class="noindent" ><span
|
||||
class="cmr-12">The desired dynamic type for internal vector components; this</span>
|
||||
<span
|
||||
class="cmr-12">allows e.g. running on GPUs.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-12-11-"><td style="white-space:normal; text-align:left;" id="TBL-12-11-1"
|
||||
class="td11"><!--l. 627--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 638--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">imold</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-11-2"
|
||||
class="td11"><!--l. 627--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 638--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">class(psb_i_base_vect_type),</span><span
|
||||
class="cmtt-12"> intent(in),</span><span
|
||||
class="cmtt-12"> optional</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-12-12-"><td style="white-space:normal; text-align:left;" id="TBL-12-12-1"
|
||||
class="td11"><!--l. 628--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-12-2"
|
||||
class="td11"><!--l. 628--><p class="noindent" ><span
|
||||
class="td11"><!--l. 639--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-12-2"
|
||||
class="td11"><!--l. 639--><p class="noindent" ><span
|
||||
class="cmr-12">The desired dynamic type for internal integer vector components;</span>
|
||||
<span
|
||||
class="cmr-12">this allows e.g. running on GPUs.</span> </td>
|
||||
@@ -198,7 +198,7 @@ class="td11"> </td> </tr></table></div>
|
||||
|
||||
|
||||
|
||||
<!--l. 634--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 645--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu14.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -215,6 +215,6 @@ class="cmr-12">] [</span><a
|
||||
href="userhtmlse6.html#userhtmlsu13.html" ><span
|
||||
class="cmr-12">up</span></a><span
|
||||
class="cmr-12">] </span></p></div>
|
||||
<!--l. 634--><p class="indent" > <a
|
||||
<!--l. 645--><p class="indent" > <a
|
||||
id="tailuserhtmlsu13.html"></a>
|
||||
</body></html>
|
||||
|
||||
+35
-35
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 634--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 645--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu15.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -33,12 +33,12 @@ class="cmr-12">6.5 </span></span> <a
|
||||
class="cmr-12">Method build</span></h4>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 636--><p class="noindent" >
|
||||
<!--l. 637--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
<!--l. 647--><p class="noindent" >
|
||||
<!--l. 648--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">call</span><span
|
||||
class="cmtt-12"> p%build(a,desc_a,info[,amold,vmold,imold])</span></span></span><br />
|
||||
</div>
|
||||
<!--l. 640--><p class="noindent" ><span
|
||||
<!--l. 651--><p class="noindent" ><span
|
||||
class="cmr-12">This method builds the preconditioner </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">p</span></span></span> <span
|
||||
class="cmr-12">according to the requirements made by the</span>
|
||||
@@ -67,7 +67,7 @@ class="cmtt-12">smoothers_build</span></span></span><span
|
||||
class="cmr-12">, whose nomenclature would however be somewhat unnatural when</span>
|
||||
<span
|
||||
class="cmr-12">dealing with simple one-level preconditioners.</span>
|
||||
<!--l. 650--><p class="noindent" ><span
|
||||
<!--l. 661--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<div class="tabular"> <table id="TBL-13" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
@@ -75,9 +75,9 @@ cellspacing="0" cellpadding="0"
|
||||
id="TBL-13-1"><col
|
||||
id="TBL-13-2"></colgroup><tr
|
||||
style="vertical-align:baseline;" id="TBL-13-1-"><td style="white-space:normal; text-align:left;" id="TBL-13-1-1"
|
||||
class="td11"><!--l. 653--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 664--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">a</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-1-2"
|
||||
class="td11"><!--l. 653--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 664--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">type(psb_</span></span></span><span
|
||||
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">spmat_type),</span><span
|
||||
@@ -85,8 +85,8 @@ class="cmtt-12"> intent(in)</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-13-2-"><td style="white-space:normal; text-align:left;" id="TBL-13-2-1"
|
||||
class="td11"><!--l. 654--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-2-2"
|
||||
class="td11"><!--l. 654--><p class="noindent" ><span
|
||||
class="td11"><!--l. 665--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-2-2"
|
||||
class="td11"><!--l. 665--><p class="noindent" ><span
|
||||
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
|
||||
<span
|
||||
class="cmr-12">to be preconditioned. Note that </span><span
|
||||
@@ -98,21 +98,21 @@ class="cmr-12">real/complex, single/double precision version of AMG4PSBLAS<
|
||||
class="cmr-12">under use. See the PSBLAS User’s Guide for details </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">15</span></a><span
|
||||
class="cmr-12">16</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-13-3-"><td style="white-space:normal; text-align:left;" id="TBL-13-3-1"
|
||||
class="td11"><!--l. 658--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 669--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">desc_a</span></span></span></td><td style="white-space:normal; text-align:left;" id="TBL-13-3-2"
|
||||
class="td11"><!--l. 658--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 669--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">type(psb_desc_type),</span><span
|
||||
class="cmtt-12"> intent(in)</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-13-4-"><td style="white-space:normal; text-align:left;" id="TBL-13-4-1"
|
||||
class="td11"><!--l. 659--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-4-2"
|
||||
class="td11"><!--l. 659--><p class="noindent" ><span
|
||||
class="td11"><!--l. 670--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-4-2"
|
||||
class="td11"><!--l. 670--><p class="noindent" ><span
|
||||
class="cmr-12">The communication descriptor of </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">a</span></span></span><span
|
||||
class="cmr-12">. See the PSBLAS User’s Guide</span>
|
||||
@@ -120,21 +120,21 @@ class="cmr-12">. See the PSBLAS User’s Guide</span>
|
||||
class="cmr-12">for details </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">15</span></a><span
|
||||
class="cmr-12">16</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-13-5-"><td style="white-space:normal; text-align:left;" id="TBL-13-5-1"
|
||||
class="td11"><!--l. 661--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 672--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">info</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-5-2"
|
||||
class="td11"><!--l. 661--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 672--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">integer,</span><span
|
||||
class="cmtt-12"> intent(out)</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-13-6-"><td style="white-space:normal; text-align:left;" id="TBL-13-6-1"
|
||||
class="td11"><!--l. 662--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-6-2"
|
||||
class="td11"><!--l. 662--><p class="noindent" ><span
|
||||
class="td11"><!--l. 673--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-6-2"
|
||||
class="td11"><!--l. 673--><p class="noindent" ><span
|
||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlse8.html#x30-340008"><span
|
||||
@@ -142,9 +142,9 @@ class="cmr-12">8</span><!--tex4ht:ref: sec:errors --></a> <span
|
||||
class="cmr-12">for details.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-13-7-"><td style="white-space:normal; text-align:left;" id="TBL-13-7-1"
|
||||
class="td11"><!--l. 663--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 674--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">amold</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-7-2"
|
||||
class="td11"><!--l. 663--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 674--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">class(psb_</span></span></span><span
|
||||
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">_base_sparse_mat),</span><span
|
||||
@@ -153,8 +153,8 @@ class="cmtt-12"> optional</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-13-8-"><td style="white-space:normal; text-align:left;" id="TBL-13-8-1"
|
||||
class="td11"><!--l. 664--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-8-2"
|
||||
class="td11"><!--l. 664--><p class="noindent" ><span
|
||||
class="td11"><!--l. 675--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-8-2"
|
||||
class="td11"><!--l. 675--><p class="noindent" ><span
|
||||
class="cmr-12">The desired dynamic type for internal matrix components; this</span>
|
||||
<span
|
||||
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
|
||||
@@ -162,14 +162,14 @@ 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">[</span><a
|
||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">15</span></a><span
|
||||
class="cmr-12">16</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-13-9-"><td style="white-space:normal; text-align:left;" id="TBL-13-9-1"
|
||||
class="td11"><!--l. 668--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 679--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">vmold</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-9-2"
|
||||
class="td11"><!--l. 668--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 679--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">class(psb_</span></span></span><span
|
||||
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">_base_vect_type),</span><span
|
||||
@@ -178,31 +178,31 @@ class="cmtt-12"> optional</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-13-10-"><td style="white-space:normal; text-align:left;" id="TBL-13-10-1"
|
||||
class="td11"><!--l. 669--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-10-2"
|
||||
class="td11"><!--l. 669--><p class="noindent" ><span
|
||||
class="td11"><!--l. 680--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-10-2"
|
||||
class="td11"><!--l. 680--><p class="noindent" ><span
|
||||
class="cmr-12">The desired dynamic type for internal vector components; this</span>
|
||||
<span
|
||||
class="cmr-12">allows e.g. running on GPUs.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-13-11-"><td style="white-space:normal; text-align:left;" id="TBL-13-11-1"
|
||||
class="td11"><!--l. 671--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 682--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">imold</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-11-2"
|
||||
class="td11"><!--l. 671--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 682--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">class(psb_i_base_vect_type),</span><span
|
||||
class="cmtt-12"> intent(in),</span><span
|
||||
class="cmtt-12"> optional</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-13-12-"><td style="white-space:normal; text-align:left;" id="TBL-13-12-1"
|
||||
class="td11"><!--l. 672--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-12-2"
|
||||
class="td11"><!--l. 672--><p class="noindent" ><span
|
||||
class="td11"><!--l. 683--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-12-2"
|
||||
class="td11"><!--l. 683--><p class="noindent" ><span
|
||||
class="cmr-12">The desired dynamic type for internal integer vector components;</span>
|
||||
<span
|
||||
class="cmr-12">this allows e.g. running on GPUs.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-13-13-"><td style="white-space:normal; text-align:left;" id="TBL-13-13-1"
|
||||
class="td11"> </td> </tr></table></div>
|
||||
<!--l. 677--><p class="noindent" ><span
|
||||
<!--l. 688--><p class="noindent" ><span
|
||||
class="cmr-12">The method can be used to build multilevel preconditioners too.</span>
|
||||
|
||||
|
||||
@@ -210,7 +210,7 @@ class="cmr-12">The method can be used to build multilevel preconditioners too.</
|
||||
|
||||
|
||||
|
||||
<!--l. 682--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 693--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu15.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -227,6 +227,6 @@ class="cmr-12">] [</span><a
|
||||
href="userhtmlse6.html#userhtmlsu14.html" ><span
|
||||
class="cmr-12">up</span></a><span
|
||||
class="cmr-12">] </span></p></div>
|
||||
<!--l. 682--><p class="indent" > <a
|
||||
<!--l. 693--><p class="indent" > <a
|
||||
id="tailuserhtmlsu14.html"></a>
|
||||
</body></html>
|
||||
|
||||
+31
-31
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 682--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 693--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu16.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -33,13 +33,13 @@ class="cmr-12">6.6 </span></span> <a
|
||||
class="cmr-12">Method apply</span></h4>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 684--><p class="noindent" >
|
||||
<!--l. 685--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
<!--l. 695--><p class="noindent" >
|
||||
<!--l. 696--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">call</span><span
|
||||
class="cmtt-12"> p%apply(x,y,desc_a,info</span><span
|
||||
class="cmtt-12"> [,trans,work])</span></span></span><br />
|
||||
</div>
|
||||
<!--l. 688--><p class="noindent" ><span
|
||||
<!--l. 699--><p class="noindent" ><span
|
||||
class="cmr-12">This method computes </span><span
|
||||
class="cmmi-12">y </span><span
|
||||
class="cmr-12">= </span><span
|
||||
@@ -71,7 +71,7 @@ class="cmtt-12">psb_krylov</span></span></span> <span
|
||||
class="cmr-12">and hence it is</span>
|
||||
<span
|
||||
class="cmr-12">completely transparent to the user.</span>
|
||||
<!--l. 697--><p class="noindent" ><span
|
||||
<!--l. 708--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<div class="tabular"> <table id="TBL-14" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
@@ -79,9 +79,9 @@ cellspacing="0" cellpadding="0"
|
||||
id="TBL-14-1"><col
|
||||
id="TBL-14-2"></colgroup><tr
|
||||
style="vertical-align:baseline;" id="TBL-14-1-"><td style="white-space:normal; text-align:left;" id="TBL-14-1-1"
|
||||
class="td11"><!--l. 700--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 711--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">x</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-1-2"
|
||||
class="td11"><!--l. 700--><p class="noindent" ><span
|
||||
class="td11"><!--l. 711--><p class="noindent" ><span
|
||||
class="cmti-12">type</span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">(</span></span></span><span
|
||||
class="cmti-12">kind</span><span
|
||||
@@ -92,8 +92,8 @@ class="cmtt-12"> intent(in)</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-14-2-"><td style="white-space:normal; text-align:left;" id="TBL-14-2-1"
|
||||
class="td11"><!--l. 701--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-2-2"
|
||||
class="td11"><!--l. 701--><p class="noindent" ><span
|
||||
class="td11"><!--l. 712--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-2-2"
|
||||
class="td11"><!--l. 712--><p class="noindent" ><span
|
||||
class="cmr-12">The local part of the vector </span><span
|
||||
class="cmmi-12">x</span><span
|
||||
class="cmr-12">. Note that </span><span
|
||||
@@ -107,9 +107,9 @@ class="cmr-12">must be chosen according to the real/complex, single/doubl
|
||||
class="cmr-12">precision version of AMG4PSBLAS under use.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-14-3-"><td style="white-space:normal; text-align:left;" id="TBL-14-3-1"
|
||||
class="td11"><!--l. 704--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 715--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">y</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-3-2"
|
||||
class="td11"><!--l. 704--><p class="noindent" ><span
|
||||
class="td11"><!--l. 715--><p class="noindent" ><span
|
||||
class="cmti-12">type</span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">(</span></span></span><span
|
||||
class="cmti-12">kind</span><span
|
||||
@@ -120,8 +120,8 @@ class="cmtt-12"> intent(out)</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-14-4-"><td style="white-space:normal; text-align:left;" id="TBL-14-4-1"
|
||||
class="td11"><!--l. 705--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-4-2"
|
||||
class="td11"><!--l. 705--><p class="noindent" ><span
|
||||
class="td11"><!--l. 716--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-4-2"
|
||||
class="td11"><!--l. 716--><p class="noindent" ><span
|
||||
class="cmr-12">The local part of the vector </span><span
|
||||
class="cmmi-12">y</span><span
|
||||
class="cmr-12">. Note that </span><span
|
||||
@@ -135,31 +135,31 @@ class="cmr-12">must be chosen according to the real/complex, single/doubl
|
||||
class="cmr-12">precision version of AMG4PSBLAS under use.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-14-5-"><td style="white-space:normal; text-align:left;" id="TBL-14-5-1"
|
||||
class="td11"><!--l. 708--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 719--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">desc_a</span></span></span></td><td style="white-space:normal; text-align:left;" id="TBL-14-5-2"
|
||||
class="td11"><!--l. 708--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 719--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">type(psb_desc_type),</span><span
|
||||
class="cmtt-12"> intent(in)</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-14-6-"><td style="white-space:normal; text-align:left;" id="TBL-14-6-1"
|
||||
class="td11"><!--l. 709--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-6-2"
|
||||
class="td11"><!--l. 709--><p class="noindent" ><span
|
||||
class="td11"><!--l. 720--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-6-2"
|
||||
class="td11"><!--l. 720--><p class="noindent" ><span
|
||||
class="cmr-12">The communication descriptor associated to the matrix to be</span>
|
||||
<span
|
||||
class="cmr-12">preconditioned.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-14-7-"><td style="white-space:normal; text-align:left;" id="TBL-14-7-1"
|
||||
class="td11"><!--l. 711--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 722--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">info</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-7-2"
|
||||
class="td11"><!--l. 711--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 722--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">integer,</span><span
|
||||
class="cmtt-12"> intent(out)</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-14-8-"><td style="white-space:normal; text-align:left;" id="TBL-14-8-1"
|
||||
class="td11"><!--l. 712--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-8-2"
|
||||
class="td11"><!--l. 712--><p class="noindent" ><span
|
||||
class="td11"><!--l. 723--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-8-2"
|
||||
class="td11"><!--l. 723--><p class="noindent" ><span
|
||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlse8.html#x30-340008"><span
|
||||
@@ -167,16 +167,16 @@ class="cmr-12">8</span><!--tex4ht:ref: sec:errors --></a> <span
|
||||
class="cmr-12">for details.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-14-9-"><td style="white-space:normal; text-align:left;" id="TBL-14-9-1"
|
||||
class="td11"><!--l. 713--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 724--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">trans</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-9-2"
|
||||
class="td11"><!--l. 713--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 724--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">character(len=1),</span><span
|
||||
class="cmtt-12"> optional,</span><span
|
||||
class="cmtt-12"> intent(in).</span></span></span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-14-10-"><td style="white-space:normal; text-align:left;" id="TBL-14-10-1"
|
||||
class="td11"><!--l. 714--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-10-2"
|
||||
class="td11"><!--l. 714--><p class="noindent" ><span
|
||||
class="td11"><!--l. 725--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-10-2"
|
||||
class="td11"><!--l. 725--><p class="noindent" ><span
|
||||
class="cmr-12">If </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">trans</span></span></span> <span
|
||||
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span
|
||||
@@ -232,9 +232,9 @@ class="cmr-8">1</span></sup><span
|
||||
class="cmr-12">).</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-14-11-"><td style="white-space:normal; text-align:left;" id="TBL-14-11-1"
|
||||
class="td11"><!--l. 718--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 729--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">work</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-11-2"
|
||||
class="td11"><!--l. 718--><p class="noindent" ><span
|
||||
class="td11"><!--l. 729--><p class="noindent" ><span
|
||||
class="cmti-12">type</span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">(</span></span></span><span
|
||||
class="cmti-12">kind</span><span
|
||||
@@ -246,8 +246,8 @@ class="cmtt-12"> target</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-14-12-"><td style="white-space:normal; text-align:left;" id="TBL-14-12-1"
|
||||
class="td11"><!--l. 719--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-12-2"
|
||||
class="td11"><!--l. 719--><p class="noindent" ><span
|
||||
class="td11"><!--l. 730--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-12-2"
|
||||
class="td11"><!--l. 730--><p class="noindent" ><span
|
||||
class="cmr-12">Workspace. Its size should be at least </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">4</span><span
|
||||
class="cmtt-12"> *</span><span
|
||||
@@ -272,7 +272,7 @@ class="td11"> </td> </tr></table></div>
|
||||
|
||||
|
||||
|
||||
<!--l. 728--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 739--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu16.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -289,6 +289,6 @@ class="cmr-12">] [</span><a
|
||||
href="userhtmlse6.html#userhtmlsu15.html" ><span
|
||||
class="cmr-12">up</span></a><span
|
||||
class="cmr-12">] </span></p></div>
|
||||
<!--l. 728--><p class="indent" > <a
|
||||
<!--l. 739--><p class="indent" > <a
|
||||
id="tailuserhtmlsu15.html"></a>
|
||||
</body></html>
|
||||
|
||||
+11
-11
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 728--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 739--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu17.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -33,16 +33,16 @@ class="cmr-12">6.7 </span></span> <a
|
||||
class="cmr-12">Method free</span></h4>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 730--><p class="noindent" >
|
||||
<!--l. 731--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
<!--l. 741--><p class="noindent" >
|
||||
<!--l. 742--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">call</span><span
|
||||
class="cmtt-12"> p%free(p,info)</span></span></span><br />
|
||||
</div>
|
||||
<!--l. 734--><p class="noindent" ><span
|
||||
<!--l. 745--><p class="noindent" ><span
|
||||
class="cmr-12">This method deallocates the preconditioner data structure </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">p</span></span></span><span
|
||||
class="cmr-12">.</span>
|
||||
<!--l. 737--><p class="noindent" ><span
|
||||
<!--l. 748--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<div class="tabular"> <table id="TBL-15" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
@@ -50,16 +50,16 @@ cellspacing="0" cellpadding="0"
|
||||
id="TBL-15-1"><col
|
||||
id="TBL-15-2"></colgroup><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-1-"><td style="white-space:normal; text-align:left;" id="TBL-15-1-1"
|
||||
class="td11"><!--l. 740--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 751--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">info</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-15-1-2"
|
||||
class="td11"><!--l. 740--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 751--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">integer,</span><span
|
||||
class="cmtt-12"> intent(out)</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-15-2-"><td style="white-space:normal; text-align:left;" id="TBL-15-2-1"
|
||||
class="td11"><!--l. 741--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-2-2"
|
||||
class="td11"><!--l. 741--><p class="noindent" ><span
|
||||
class="td11"><!--l. 752--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-2-2"
|
||||
class="td11"><!--l. 752--><p class="noindent" ><span
|
||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlse8.html#x30-340008"><span
|
||||
@@ -76,7 +76,7 @@ class="td11"> </td> </tr></table></div>
|
||||
|
||||
|
||||
|
||||
<!--l. 747--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 758--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu17.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -93,6 +93,6 @@ class="cmr-12">] [</span><a
|
||||
href="userhtmlse6.html#userhtmlsu16.html" ><span
|
||||
class="cmr-12">up</span></a><span
|
||||
class="cmr-12">] </span></p></div>
|
||||
<!--l. 747--><p class="indent" > <a
|
||||
<!--l. 758--><p class="indent" > <a
|
||||
id="tailuserhtmlsu16.html"></a>
|
||||
</body></html>
|
||||
|
||||
+15
-15
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 747--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 758--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu18.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -33,13 +33,13 @@ class="cmr-12">6.8 </span></span> <a
|
||||
class="cmr-12">Method descr</span></h4>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 749--><p class="noindent" >
|
||||
<!--l. 750--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
<!--l. 760--><p class="noindent" >
|
||||
<!--l. 761--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">call</span><span
|
||||
class="cmtt-12"> p%descr(info,</span><span
|
||||
class="cmtt-12"> [iout])</span></span></span><br />
|
||||
</div>
|
||||
<!--l. 753--><p class="noindent" ><span
|
||||
<!--l. 764--><p class="noindent" ><span
|
||||
class="cmr-12">This method prints a description of the preconditioner </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">p</span></span></span> <span
|
||||
class="cmr-12">to the standard output or to a</span>
|
||||
@@ -53,7 +53,7 @@ class="cmtt-12">build</span></span></span><span
|
||||
class="cmr-12">, have</span>
|
||||
<span
|
||||
class="cmr-12">been called.</span>
|
||||
<!--l. 758--><p class="noindent" ><span
|
||||
<!--l. 769--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<div class="tabular"> <table id="TBL-16" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
@@ -61,16 +61,16 @@ cellspacing="0" cellpadding="0"
|
||||
id="TBL-16-1"><col
|
||||
id="TBL-16-2"></colgroup><tr
|
||||
style="vertical-align:baseline;" id="TBL-16-1-"><td style="white-space:normal; text-align:left;" id="TBL-16-1-1"
|
||||
class="td11"><!--l. 761--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 772--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">info</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-1-2"
|
||||
class="td11"><!--l. 761--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 772--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">integer,</span><span
|
||||
class="cmtt-12"> intent(out)</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-16-2-"><td style="white-space:normal; text-align:left;" id="TBL-16-2-1"
|
||||
class="td11"><!--l. 762--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-2-2"
|
||||
class="td11"><!--l. 762--><p class="noindent" ><span
|
||||
class="td11"><!--l. 773--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-2-2"
|
||||
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"> </span><a
|
||||
href="userhtmlse8.html#x30-340008"><span
|
||||
@@ -78,17 +78,17 @@ class="cmr-12">8</span><!--tex4ht:ref: sec:errors --></a> <span
|
||||
class="cmr-12">for details.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-16-3-"><td style="white-space:normal; text-align:left;" id="TBL-16-3-1"
|
||||
class="td11"><!--l. 763--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 774--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">iout</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-3-2"
|
||||
class="td11"><!--l. 763--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 774--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">integer,</span><span
|
||||
class="cmtt-12"> intent(in),</span><span
|
||||
class="cmtt-12"> optional</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-16-4-"><td style="white-space:normal; text-align:left;" id="TBL-16-4-1"
|
||||
class="td11"><!--l. 764--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-4-2"
|
||||
class="td11"><!--l. 764--><p class="noindent" ><span
|
||||
class="td11"><!--l. 775--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-4-2"
|
||||
class="td11"><!--l. 775--><p class="noindent" ><span
|
||||
class="cmr-12">The id of the file where the preconditioner description will be</span>
|
||||
<span
|
||||
class="cmr-12">printed; the default is the standard output.</span> </td>
|
||||
@@ -98,7 +98,7 @@ class="td11"> </td> </tr></table></div>
|
||||
|
||||
|
||||
|
||||
<!--l. 769--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 780--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu18.html" ><span
|
||||
class="cmr-12">next</span></a><span
|
||||
@@ -115,6 +115,6 @@ class="cmr-12">] [</span><a
|
||||
href="userhtmlse6.html#userhtmlsu17.html" ><span
|
||||
class="cmr-12">up</span></a><span
|
||||
class="cmr-12">] </span></p></div>
|
||||
<!--l. 769--><p class="indent" > <a
|
||||
<!--l. 780--><p class="indent" > <a
|
||||
id="tailuserhtmlsu17.html"></a>
|
||||
</body></html>
|
||||
|
||||
+55
-55
@@ -10,7 +10,7 @@
|
||||
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
||||
</head><body
|
||||
>
|
||||
<!--l. 769--><div class="crosslinks"><p class="noindent"><span
|
||||
<!--l. 780--><div class="crosslinks"><p class="noindent"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlsu17.html" ><span
|
||||
class="cmr-12">prev</span></a><span
|
||||
@@ -28,25 +28,25 @@ class="cmr-12">] </span></p></div>
|
||||
class="cmr-12">6.9 </span></span> <a
|
||||
id="x28-270006.9"></a><span
|
||||
class="cmr-12">Auxiliary Methods</span></h4>
|
||||
<!--l. 770--><p class="noindent" ><span
|
||||
<!--l. 781--><p class="noindent" ><span
|
||||
class="cmr-12">Various functionalities are implemented as additional methods of the preconditioner</span>
|
||||
<span
|
||||
class="cmr-12">object.</span>
|
||||
<!--l. 773--><p class="noindent" >
|
||||
<!--l. 784--><p class="noindent" >
|
||||
<h5 class="subsubsectionHead"><span class="titlemark"><span
|
||||
class="cmr-12">6.9.1 </span></span> <a
|
||||
id="x28-280006.9.1"></a><span
|
||||
class="cmr-12">Method: dump</span></h5>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 775--><p class="noindent" >
|
||||
<!--l. 776--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
<!--l. 786--><p class="noindent" >
|
||||
<!--l. 787--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">call</span><span
|
||||
class="cmtt-12"> p%dump(info[,istart,iend,prefix,head,ac,rp,smoother,solver,global_num])</span></span></span><br />
|
||||
</div>
|
||||
<!--l. 779--><p class="noindent" ><span
|
||||
<!--l. 790--><p class="noindent" ><span
|
||||
class="cmr-12">Dump on file.</span>
|
||||
<!--l. 782--><p class="noindent" ><span
|
||||
<!--l. 793--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<div class="tabular"> <table id="TBL-17" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
@@ -54,16 +54,16 @@ cellspacing="0" cellpadding="0"
|
||||
id="TBL-17-1"><col
|
||||
id="TBL-17-2"></colgroup><tr
|
||||
style="vertical-align:baseline;" id="TBL-17-1-"><td style="white-space:normal; text-align:left;" id="TBL-17-1-1"
|
||||
class="td11"><!--l. 785--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 796--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">info</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-17-1-2"
|
||||
class="td11"><!--l. 785--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 796--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">integer,</span><span
|
||||
class="cmtt-12"> intent(out)</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-17-2-"><td style="white-space:normal; text-align:left;" id="TBL-17-2-1"
|
||||
class="td11"><!--l. 786--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-2-2"
|
||||
class="td11"><!--l. 786--><p class="noindent" ><span
|
||||
class="td11"><!--l. 797--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-2-2"
|
||||
class="td11"><!--l. 797--><p class="noindent" ><span
|
||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlse8.html#x30-340008"><span
|
||||
@@ -71,9 +71,9 @@ class="cmr-12">8</span><!--tex4ht:ref: sec:errors --></a> <span
|
||||
class="cmr-12">for details.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-17-3-"><td style="white-space:normal; text-align:left;" id="TBL-17-3-1"
|
||||
class="td11"><!--l. 787--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 798--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">amold</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-17-3-2"
|
||||
class="td11"><!--l. 787--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 798--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">class(psb_</span></span></span><span
|
||||
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">_base_sparse_mat),</span><span
|
||||
@@ -82,8 +82,8 @@ class="cmtt-12"> optional</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-17-4-"><td style="white-space:normal; text-align:left;" id="TBL-17-4-1"
|
||||
class="td11"><!--l. 788--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-4-2"
|
||||
class="td11"><!--l. 788--><p class="noindent" ><span
|
||||
class="td11"><!--l. 799--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-4-2"
|
||||
class="td11"><!--l. 799--><p class="noindent" ><span
|
||||
class="cmr-12">The desired dynamic type for internal matrix components; this</span>
|
||||
<span
|
||||
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
|
||||
@@ -91,30 +91,30 @@ 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">[</span><a
|
||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">15</span></a><span
|
||||
class="cmr-12">16</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-17-5-"><td style="white-space:normal; text-align:left;" id="TBL-17-5-1"
|
||||
class="td11"> </td> </tr></table></div>
|
||||
<!--l. 795--><p class="noindent" >
|
||||
<!--l. 806--><p class="noindent" >
|
||||
<h5 class="subsubsectionHead"><span class="titlemark"><span
|
||||
class="cmr-12">6.9.2 </span></span> <a
|
||||
id="x28-290006.9.2"></a><span
|
||||
class="cmr-12">Method: clone</span></h5>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 797--><p class="noindent" >
|
||||
<!--l. 798--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
<!--l. 808--><p class="noindent" >
|
||||
<!--l. 809--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">call</span><span
|
||||
class="cmtt-12"> p%clone(pout,info)</span></span></span><br />
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!--l. 801--><p class="noindent" ><span
|
||||
<!--l. 812--><p class="noindent" ><span
|
||||
class="cmr-12">Create a (deep) copy of the preconditioner object.</span>
|
||||
<!--l. 804--><p class="noindent" ><span
|
||||
<!--l. 815--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<div class="tabular"> <table id="TBL-18" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
@@ -122,9 +122,9 @@ cellspacing="0" cellpadding="0"
|
||||
id="TBL-18-1"><col
|
||||
id="TBL-18-2"></colgroup><tr
|
||||
style="vertical-align:baseline;" id="TBL-18-1-"><td style="white-space:normal; text-align:left;" id="TBL-18-1-1"
|
||||
class="td11"><!--l. 807--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 818--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">pout</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-18-1-2"
|
||||
class="td11"><!--l. 807--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 818--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">type(amg_</span></span></span><span
|
||||
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">prec_type),</span><span
|
||||
@@ -132,8 +132,8 @@ class="cmtt-12"> intent(out)</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-18-2-"><td style="white-space:normal; text-align:left;" id="TBL-18-2-1"
|
||||
class="td11"><!--l. 808--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-2-2"
|
||||
class="td11"><!--l. 808--><p class="noindent" ><span
|
||||
class="td11"><!--l. 819--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-2-2"
|
||||
class="td11"><!--l. 819--><p class="noindent" ><span
|
||||
class="cmr-12">The copy of the preconditioner data structure. Note that </span><span
|
||||
class="cmti-12">x </span><span
|
||||
class="cmr-12">must</span>
|
||||
@@ -143,16 +143,16 @@ class="cmr-12">be chosen according to the real/complex, single/double precision<
|
||||
class="cmr-12">version of AMG4PSBLAS under use.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-18-3-"><td style="white-space:normal; text-align:left;" id="TBL-18-3-1"
|
||||
class="td11"><!--l. 811--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 822--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">info</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-18-3-2"
|
||||
class="td11"><!--l. 811--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 822--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">integer,</span><span
|
||||
class="cmtt-12"> intent(out)</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-18-4-"><td style="white-space:normal; text-align:left;" id="TBL-18-4-1"
|
||||
class="td11"><!--l. 812--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-4-2"
|
||||
class="td11"><!--l. 812--><p class="noindent" ><span
|
||||
class="td11"><!--l. 823--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-4-2"
|
||||
class="td11"><!--l. 823--><p class="noindent" ><span
|
||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlse8.html#x30-340008"><span
|
||||
@@ -161,23 +161,23 @@ class="cmr-12">for details.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-18-5-"><td style="white-space:normal; text-align:left;" id="TBL-18-5-1"
|
||||
class="td11"> </td> </tr></table></div>
|
||||
<!--l. 817--><p class="noindent" >
|
||||
<!--l. 828--><p class="noindent" >
|
||||
<h5 class="subsubsectionHead"><span class="titlemark"><span
|
||||
class="cmr-12">6.9.3 </span></span> <a
|
||||
id="x28-300006.9.3"></a><span
|
||||
class="cmr-12">Method: sizeof</span></h5>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 819--><p class="noindent" >
|
||||
<!--l. 820--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
<!--l. 830--><p class="noindent" >
|
||||
<!--l. 831--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">sz</span><span
|
||||
class="cmtt-12"> =</span><span
|
||||
class="cmtt-12"> </span><span
|
||||
class="cmtt-12"> p%sizeof()</span></span></span><br />
|
||||
</div>
|
||||
<!--l. 823--><p class="noindent" ><span
|
||||
<!--l. 834--><p class="noindent" ><span
|
||||
class="cmr-12">Return memory footprint in bytes.</span>
|
||||
<!--l. 826--><p class="noindent" >
|
||||
<!--l. 837--><p class="noindent" >
|
||||
<h5 class="subsubsectionHead"><span class="titlemark"><span
|
||||
class="cmr-12">6.9.4 </span></span> <a
|
||||
id="x28-310006.9.4"></a><span
|
||||
@@ -185,13 +185,13 @@ class="cmr-12">Method: allocate</span><span
|
||||
class="cmr-12">_wrk</span></h5>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 828--><p class="noindent" >
|
||||
<!--l. 829--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
<!--l. 839--><p class="noindent" >
|
||||
<!--l. 840--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">call</span><span
|
||||
class="cmtt-12"> p%allocate_wrk(info[,</span><span
|
||||
class="cmtt-12"> vmold])</span></span></span><br />
|
||||
</div>
|
||||
<!--l. 832--><p class="noindent" ><span
|
||||
<!--l. 843--><p class="noindent" ><span
|
||||
class="cmr-12">Allocate internal work vectors. Each application of the preconditioner uses a number of</span>
|
||||
<span
|
||||
class="cmr-12">work vectors which are allocated internally as necessary; therefore allocation and</span>
|
||||
@@ -223,7 +223,7 @@ class="cmr-12">argument to the </span><span class="obeylines-h"><span class="ver
|
||||
class="cmtt-12">apply</span></span></span>
|
||||
<span
|
||||
class="cmr-12">method.</span>
|
||||
<!--l. 848--><p class="noindent" ><span
|
||||
<!--l. 859--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<div class="tabular"> <table id="TBL-19" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
@@ -231,16 +231,16 @@ cellspacing="0" cellpadding="0"
|
||||
id="TBL-19-1"><col
|
||||
id="TBL-19-2"></colgroup><tr
|
||||
style="vertical-align:baseline;" id="TBL-19-1-"><td style="white-space:normal; text-align:left;" id="TBL-19-1-1"
|
||||
class="td11"><!--l. 851--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 862--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">info</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-19-1-2"
|
||||
class="td11"><!--l. 851--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 862--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">integer,</span><span
|
||||
class="cmtt-12"> intent(out)</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-19-2-"><td style="white-space:normal; text-align:left;" id="TBL-19-2-1"
|
||||
class="td11"><!--l. 852--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-2-2"
|
||||
class="td11"><!--l. 852--><p class="noindent" ><span
|
||||
class="td11"><!--l. 863--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-2-2"
|
||||
class="td11"><!--l. 863--><p class="noindent" ><span
|
||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlse8.html#x30-340008"><span
|
||||
@@ -248,9 +248,9 @@ class="cmr-12">8</span><!--tex4ht:ref: sec:errors --></a> <span
|
||||
class="cmr-12">for details.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-19-3-"><td style="white-space:normal; text-align:left;" id="TBL-19-3-1"
|
||||
class="td11"><!--l. 853--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 864--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">vmold</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-19-3-2"
|
||||
class="td11"><!--l. 853--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 864--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">class(psb_</span></span></span><span
|
||||
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">_base_vect_type),</span><span
|
||||
@@ -259,15 +259,15 @@ class="cmtt-12"> optional</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-19-4-"><td style="white-space:normal; text-align:left;" id="TBL-19-4-1"
|
||||
class="td11"><!--l. 854--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-4-2"
|
||||
class="td11"><!--l. 854--><p class="noindent" ><span
|
||||
class="td11"><!--l. 865--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-4-2"
|
||||
class="td11"><!--l. 865--><p class="noindent" ><span
|
||||
class="cmr-12">The desired dynamic type for internal vector components; this</span>
|
||||
<span
|
||||
class="cmr-12">allows e.g. running on GPUs.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-19-5-"><td style="white-space:normal; text-align:left;" id="TBL-19-5-1"
|
||||
class="td11"> </td> </tr></table></div>
|
||||
<!--l. 860--><p class="noindent" >
|
||||
<!--l. 871--><p class="noindent" >
|
||||
<h5 class="subsubsectionHead"><span class="titlemark"><span
|
||||
class="cmr-12">6.9.5 </span></span> <a
|
||||
id="x28-320006.9.5"></a><span
|
||||
@@ -275,14 +275,14 @@ class="cmr-12">Method: free</span><span
|
||||
class="cmr-12">_wrk</span></h5>
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 862--><p class="noindent" >
|
||||
<!--l. 863--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
<!--l. 873--><p class="noindent" >
|
||||
<!--l. 874--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">call</span><span
|
||||
class="cmtt-12"> p%free_wrk(info)</span></span></span><br />
|
||||
</div>
|
||||
<!--l. 866--><p class="noindent" ><span
|
||||
<!--l. 877--><p class="noindent" ><span
|
||||
class="cmr-12">Deallocate internal work vectors.</span>
|
||||
<!--l. 869--><p class="noindent" ><span
|
||||
<!--l. 880--><p class="noindent" ><span
|
||||
class="cmbx-12">Arguments</span>
|
||||
<div class="tabular"> <table id="TBL-20" class="tabular"
|
||||
cellspacing="0" cellpadding="0"
|
||||
@@ -290,16 +290,16 @@ cellspacing="0" cellpadding="0"
|
||||
id="TBL-20-1"><col
|
||||
id="TBL-20-2"></colgroup><tr
|
||||
style="vertical-align:baseline;" id="TBL-20-1-"><td style="white-space:normal; text-align:left;" id="TBL-20-1-1"
|
||||
class="td11"><!--l. 872--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 883--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">info</span></span></span> </td><td style="white-space:normal; text-align:left;" id="TBL-20-1-2"
|
||||
class="td11"><!--l. 872--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="td11"><!--l. 883--><p class="noindent" ><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">integer,</span><span
|
||||
class="cmtt-12"> intent(out)</span></span></span><span
|
||||
class="cmr-12">.</span> </td>
|
||||
</tr><tr
|
||||
style="vertical-align:baseline;" id="TBL-20-2-"><td style="white-space:normal; text-align:left;" id="TBL-20-2-1"
|
||||
class="td11"><!--l. 873--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-20-2-2"
|
||||
class="td11"><!--l. 873--><p class="noindent" ><span
|
||||
class="td11"><!--l. 884--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-20-2-2"
|
||||
class="td11"><!--l. 884--><p class="noindent" ><span
|
||||
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlse8.html#x30-340008"><span
|
||||
|
||||
@@ -44,7 +44,7 @@ class="cmbx-12">UMFPACK</span> </dt><dd
|
||||
class="description"><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli4.html#XUMFPACK"><span
|
||||
class="cmr-12">11</span></a><span
|
||||
class="cmr-12">12</span></a><span
|
||||
class="cmr-12">]</span></span> <span
|
||||
class="cmr-12">A sparse LU factorization package included in the SuiteSparse</span>
|
||||
<span
|
||||
@@ -86,7 +86,7 @@ class="cmbx-12">SuperLU</span> </dt><dd
|
||||
class="description"><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli4.html#XSUPERLU"><span
|
||||
class="cmr-12">12</span></a><span
|
||||
class="cmr-12">13</span></a><span
|
||||
class="cmr-12">]</span></span> <span
|
||||
class="cmr-12">A sparse LU factorization package available from</span>
|
||||
<a
|
||||
@@ -108,7 +108,7 @@ class="cmbx-12">_Dist</span> </dt><dd
|
||||
class="description"><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli4.html#XSUPERLUDIST"><span
|
||||
class="cmr-12">21</span></a><span
|
||||
class="cmr-12">22</span></a><span
|
||||
class="cmr-12">]</span></span> <span
|
||||
class="cmr-12">A sparse LU factorization package available from the same</span>
|
||||
<span
|
||||
|
||||
@@ -349,7 +349,7 @@ class="cmr-12">denotes the preconditioner,</span>
|
||||
class="cmr-12">usually within an iteration of a Krylov solver </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli4.html#XSaad_book"><span
|
||||
class="cmr-12">23</span></a><span
|
||||
class="cmr-12">24</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">. An example of such a combination,</span>
|
||||
<span
|
||||
@@ -377,7 +377,7 @@ class="cmr-12">in</span><span
|
||||
class="cmr-12"> </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli4.html#XNotay2008"><span
|
||||
class="cmr-12">22</span></a><span
|
||||
class="cmr-12">23</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span>
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@ class="cmr-12">2</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli4.html#XVANEK_MANDEL_BREZINA"><span
|
||||
class="cmr-12">28</span></a><span
|
||||
class="cmr-12">29</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">. The basic idea</span>
|
||||
<span
|
||||
@@ -113,7 +113,7 @@ class="cmr-12">described in</span><span
|
||||
class="cmr-12"> </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli4.html#XVANEK_MANDEL_BREZINA"><span
|
||||
class="cmr-12">28</span></a><span
|
||||
class="cmr-12">29</span></a><span
|
||||
class="cmr-12">]</span></span> <span
|
||||
class="cmr-12">is used. In this algorithm, each index </span><span
|
||||
class="cmmi-12">j </span><span
|
||||
@@ -163,7 +163,7 @@ class="cmr-12">1] (see</span><span
|
||||
class="cmr-12"> </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli4.html#XVANEK_MANDEL_BREZINA"><span
|
||||
class="cmr-12">28</span></a><span
|
||||
class="cmr-12">29</span></a><span
|
||||
class="cmr-12">]</span></span> <span
|
||||
class="cmr-12">for the details). Since this algorithm has a</span>
|
||||
<span
|
||||
@@ -189,11 +189,11 @@ class="cmr-12">5</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli4.html#Xapnum_07"><span
|
||||
class="cmr-12">7</span></a><span
|
||||
class="cmr-12">8</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli4.html#XTUMINARO_TONG"><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>
|
||||
<!--l. 172--><p class="indent" > <span
|
||||
@@ -271,7 +271,7 @@ class="cmr-12">2</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli4.html#XStuben_01"><span
|
||||
class="cmr-12">26</span></a><span
|
||||
class="cmr-12">27</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">. A simple</span>
|
||||
<span
|
||||
|
||||
@@ -36,11 +36,11 @@ class="cmr-12">a hybrid version of the forward and backward Gauss-Seidel methods
|
||||
class="cmr-12">Schwarz (AS) ones (see, e.g., </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli4.html#XSaad_book"><span
|
||||
class="cmr-12">23</span></a><span
|
||||
class="cmr-12">24</span></a><span
|
||||
class="cmr-12">,</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="userhtmlli4.html#Xdd2_96"><span
|
||||
class="cmr-12">24</span></a><span
|
||||
class="cmr-12">25</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">).</span>
|
||||
<!--l. 222--><p class="indent" > <span
|
||||
|
||||
+39
-32
@@ -87,7 +87,7 @@ class="cmr-12">PSBLAS User’s Guide</span><span
|
||||
class="cmr-12"> </span><span class="cite"><span
|
||||
class="cmr-12">[</span><a
|
||||
href="userhtmlli4.html#XPSBLASGUIDE"><span
|
||||
class="cmr-12">15</span></a><span
|
||||
class="cmr-12">16</span></a><span
|
||||
class="cmr-12">]</span></span><span
|
||||
class="cmr-12">.</span>
|
||||
|
||||
@@ -203,41 +203,46 @@ class="cmr-12">post-smoother, and solves the coarsest-level system with 8 block-
|
||||
<span
|
||||
class="cmr-12">that the ILU(0) factorization (plus triangular solve) is used as local solver for the</span>
|
||||
<span
|
||||
class="cmr-12">block-Jacobi sweeps, since this is the default associated with block-Jacobi and set</span>
|
||||
class="cmr-12">block-Jacobi sweeps, since this is the default associated with block-Jacobi</span>
|
||||
<span
|
||||
class="cmr-12">by</span><span
|
||||
class="cmr-12">and set by</span><span
|
||||
class="cmr-12"> </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">P%init</span></span></span><span
|
||||
class="cmr-12">. Furthermore, specifying block-Jacobi as coarsest-level solver implies that</span>
|
||||
class="cmr-12">. Furthermore, specifying block-Jacobi as coarsest-level</span>
|
||||
<span
|
||||
class="cmr-12">the coarsest-level matrix is distributed among the processes. Figure</span><span
|
||||
class="cmr-12">solver implies that the coarsest-level matrix is distributed among the processes.</span>
|
||||
<span
|
||||
class="cmr-12">Figure</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="#x18-170034"><span
|
||||
class="cmr-12">4</span><!--tex4ht:ref: fig:ex3 --></a> <span
|
||||
class="cmr-12">shows how to set</span>
|
||||
class="cmr-12">shows how to set a W-cycle preconditioner using the Coarsening</span>
|
||||
<span
|
||||
class="cmr-12">a W-cycle preconditioner which applies 2 hybrid Gauss-Seidel sweeps as pre- and</span>
|
||||
class="cmr-12">based on Compatible Weighted Matching. It applies 2 hybrid Gauss-Seidel</span>
|
||||
<span
|
||||
class="cmr-12">post-smoother, and solves the coarsest-level system with the multifrontal LU</span>
|
||||
class="cmr-12">sweeps as pre- and post-smoother, and solves the coarsest-level system with the</span>
|
||||
<span
|
||||
class="cmr-12">factorization implemented in MUMPS. It is specified that the coarsest-level matrix is</span>
|
||||
class="cmr-12">multifrontal LU factorization implemented in MUMPS. It is specified that the</span>
|
||||
<span
|
||||
class="cmr-12">distributed, since MUMPS can be used on both replicated and distributed matrices,</span>
|
||||
class="cmr-12">coarsest-level matrix is distributed, since MUMPS can be used on both replicated and</span>
|
||||
<span
|
||||
class="cmr-12">and by default it is used on replicated ones. The code fragments shown in</span>
|
||||
class="cmr-12">distributed matrices, and by default it is used on replicated ones. The code</span>
|
||||
<span
|
||||
class="cmr-12">Figures</span><span
|
||||
class="cmr-12">fragments shown in Figures</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="#x18-170023"><span
|
||||
class="cmr-12">3</span><!--tex4ht:ref: fig:ex2 --></a> <span
|
||||
class="cmr-12">and </span><a
|
||||
href="#x18-170034"><span
|
||||
class="cmr-12">4</span><!--tex4ht:ref: fig:ex3 --></a> <span
|
||||
class="cmr-12">are included in the example program file </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">amg_dexample_ml.f90</span></span></span>
|
||||
class="cmr-12">are included in the example program file</span>
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">amg_dexample_ml.f90</span></span></span> <span
|
||||
class="cmr-12">too. </span><span
|
||||
class="cmbx-12">DA CORREGGERE NEL CODICE ESEMPIO</span>
|
||||
<span
|
||||
class="cmr-12">too.</span>
|
||||
<!--l. 227--><p class="indent" > <span
|
||||
class="cmbx-12">3</span>
|
||||
<!--l. 228--><p class="indent" > <span
|
||||
class="cmr-12">Finally, Figure</span><span
|
||||
class="cmr-12"> </span><a
|
||||
href="#x18-170045"><span
|
||||
@@ -252,7 +257,7 @@ class="cmr-12">nonsymmetric. The corresponding example program is available in t
|
||||
<span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">amg_dexample_1lev.f90</span></span></span><span
|
||||
class="cmr-12">.</span>
|
||||
<!--l. 234--><p class="indent" > <span
|
||||
<!--l. 235--><p class="indent" > <span
|
||||
class="cmr-12">For all the previous preconditioners, example programs where the sparse matrix and</span>
|
||||
<span
|
||||
class="cmr-12">the right-hand side are generated by discretizing a PDE with Dirichlet boundary</span>
|
||||
@@ -260,7 +265,7 @@ class="cmr-12">the right-hand side are generated by discretizing a PDE with Diri
|
||||
class="cmr-12">conditions are also available in the directory </span><span class="obeylines-h"><span class="verb"><span
|
||||
class="cmtt-12">examples/pdegen</span></span></span><span
|
||||
class="cmr-12">.</span>
|
||||
<!--l. 238--><p class="indent" > <hr class="figure"><div class="figure"
|
||||
<!--l. 239--><p class="indent" > <hr class="figure"><div class="figure"
|
||||
>
|
||||
|
||||
|
||||
@@ -272,7 +277,7 @@ class="cmr-12">.</span>
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 239--><p class="noindent" >
|
||||
<!--l. 240--><p class="noindent" >
|
||||
<div class="minipage"><pre class="verbatim" id="verbatim-7">
|
||||
... ...
|
||||
! build a V-cycle preconditioner with 1 block-Jacobi sweep (with
|
||||
@@ -286,16 +291,16 @@ class="cmr-12">.</span>
|
||||
  call P%smoothers_build(A,desc_A,info)
|
||||
... ...
|
||||
</pre>
|
||||
<!--l. 254--><p class="nopar" ></div>
|
||||
<br /> <div class="caption"
|
||||
<!--l. 255--><p class="nopar" ></div>
|
||||
<br /><div class="caption"
|
||||
><span class="id">Figure 3: </span><span
|
||||
class="content">setup of a multilevel preconditioner</span></div><!--tex4ht:label?: x18-170023 -->
|
||||
class="content">setup of a multilevel preconditioner based on the default decoupled coarsening</span></div><!--tex4ht:label?: x18-170023 -->
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!--l. 260--><p class="indent" > </div><hr class="endfigure">
|
||||
<!--l. 262--><p class="indent" > <hr class="figure"><div class="figure"
|
||||
<!--l. 261--><p class="indent" > </div><hr class="endfigure">
|
||||
<!--l. 263--><p class="indent" > <hr class="figure"><div class="figure"
|
||||
>
|
||||
|
||||
|
||||
@@ -307,13 +312,14 @@ class="content">setup of a multilevel preconditioner</span></div><!--tex4ht:labe
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 263--><p class="noindent" >
|
||||
<!--l. 264--><p class="noindent" >
|
||||
<div class="minipage"><pre class="verbatim" id="verbatim-8">
|
||||
... ...
|
||||
! 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)
|
||||
@@ -323,16 +329,17 @@ class="content">setup of a multilevel preconditioner</span></div><!--tex4ht:labe
|
||||
  call P%smoothers_build(A,desc_A,info)
|
||||
... ...
|
||||
</pre>
|
||||
<!--l. 280--><p class="nopar" ></div>
|
||||
<!--l. 282--><p class="nopar" ></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Figure 4: </span><span
|
||||
class="content">setup of a multilevel preconditioner</span></div><!--tex4ht:label?: x18-170034 -->
|
||||
class="content">setup of a multilevel preconditioner based on the coupled coarsening based
|
||||
on weighted matching</span></div><!--tex4ht:label?: x18-170034 -->
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<!--l. 285--><p class="indent" > </div><hr class="endfigure">
|
||||
<!--l. 287--><p class="indent" > <hr class="figure"><div class="figure"
|
||||
<!--l. 287--><p class="indent" > </div><hr class="endfigure">
|
||||
<!--l. 289--><p class="indent" > <hr class="figure"><div class="figure"
|
||||
>
|
||||
|
||||
|
||||
@@ -344,7 +351,7 @@ class="content">setup of a multilevel preconditioner</span></div><!--tex4ht:labe
|
||||
|
||||
<div class="center"
|
||||
>
|
||||
<!--l. 288--><p class="noindent" >
|
||||
<!--l. 290--><p class="noindent" >
|
||||
<div class="minipage"><pre class="verbatim" id="verbatim-9">
|
||||
... ...
|
||||
! set RAS with overlap 2 and ILU(0) on the local blocks
|
||||
@@ -355,7 +362,7 @@ class="content">setup of a multilevel preconditioner</span></div><!--tex4ht:labe
|
||||
! solve Ax=b with preconditioned BiCGSTAB
|
||||
  call psb_krylov(’BICGSTAB’,A,P,b,x,tol,desc_A,info)
|
||||
</pre>
|
||||
<!--l. 300--><p class="nopar" ></div>
|
||||
<!--l. 302--><p class="nopar" ></div>
|
||||
<br /> <div class="caption"
|
||||
><span class="id">Figure 5: </span><span
|
||||
class="content">setup of a one-level Schwarz preconditioner.</span></div><!--tex4ht:label?: x18-170045 -->
|
||||
@@ -363,7 +370,7 @@ class="content">setup of a one-level Schwarz preconditioner.</span></div><!--tex
|
||||
|
||||
|
||||
|
||||
<!--l. 305--><p class="indent" > </div><hr class="endfigure">
|
||||
<!--l. 307--><p class="indent" > </div><hr class="endfigure">
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -43,10 +43,11 @@ X.~C.~Cai, M.~Sarkis,
|
||||
{\em A Restricted Additive Schwarz Preconditioner for General Sparse Linear Systems},
|
||||
SIAM Journal on Scientific Computing, 21 (2), 1999, 792--797.
|
||||
%
|
||||
%\bibitem{Cai_Widlund_92}
|
||||
%X.~C.~Cai, O.~B.~Widlund,
|
||||
%{\em Domain Decomposition Algorithms for Indefinite Elliptic Problems},
|
||||
%SIAM Journal on Scientific and Statistical Computing, 13 (1), 1992, 243--258.
|
||||
\bibitem{MatchBoxP}
|
||||
U..~V.~Catalyurek, F.~Dobrian, A.~Gebremedhin, M.~Halappanavar, and A.~Pothen,
|
||||
{\em Distributed-memory parallel algorithms for matching and coloring}, in PCO’11 New Trends
|
||||
in Parallel Computing and Optimization, IEEE International Symposium on Parallel and
|
||||
Distributed Processing Workshops, IEEE CS, 2011.
|
||||
%
|
||||
%\bibitem{dd1_94}
|
||||
%T.~Chan and T.~Mathew,
|
||||
|
||||
@@ -211,8 +211,9 @@ with block-Jacobi and set by~\verb|P%init|.
|
||||
Furthermore, specifying block-Jacobi as coarsest-level
|
||||
solver implies that the coarsest-level matrix is distributed
|
||||
among the processes.
|
||||
Figure~\ref{fig:ex3} shows how to set a W-cycle preconditioner which
|
||||
applies 2 hybrid Gauss-Seidel sweeps as pre- and post-smoother,
|
||||
Figure~\ref{fig:ex3} shows how to set a W-cycle preconditioner using
|
||||
the Coarsening based on Compatible Weighted Matching. It applies
|
||||
2 hybrid Gauss-Seidel sweeps as pre- and post-smoother,
|
||||
and solves the coarsest-level system with the multifrontal LU factorization
|
||||
implemented in MUMPS. It is specified that the coarsest-level
|
||||
matrix is distributed, since MUMPS can be used on both
|
||||
@@ -222,7 +223,7 @@ it is used on replicated ones.
|
||||
%to specify a property only for the pre-smoother or the post-smoother
|
||||
%(see Section~\ref{sec:precset} for more details).
|
||||
The code fragments shown in Figures~\ref{fig:ex2} and \ref{fig:ex3} are
|
||||
included in the example program file \verb|amg_dexample_ml.f90| too.
|
||||
included in the example program file \verb|amg_dexample_ml.f90| too. \textbf{DA CORREGGERE NEL CODICE ESEMPIO 3}
|
||||
|
||||
Finally, Figure~\ref{fig:ex4} shows the setup of a one-level
|
||||
additive Schwarz preconditioner, i.e., RAS with overlap 2.
|
||||
@@ -255,7 +256,7 @@ boundary conditions are also available in the directory \verb|examples/pdegen|.
|
||||
}
|
||||
\end{minipage}
|
||||
|
||||
\caption{setup of a multilevel preconditioner\label{fig:ex2}}
|
||||
\caption{setup of a multilevel preconditioner based on the default decoupled coarsening\label{fig:ex2}}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
|
||||
@@ -269,6 +270,7 @@ boundary conditions are also available in the directory \verb|examples/pdegen|.
|
||||
! 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)
|
||||
@@ -280,7 +282,7 @@ boundary conditions are also available in the directory \verb|examples/pdegen|.
|
||||
\end{verbatim}
|
||||
}
|
||||
\end{minipage}
|
||||
\caption{setup of a multilevel preconditioner\label{fig:ex3}}
|
||||
\caption{setup of a multilevel preconditioner based on the coupled coarsening based on weighted matching\label{fig:ex3}}
|
||||
\end{center}
|
||||
\end{figure}
|
||||
|
||||
|
||||
+56
-12
@@ -2,22 +2,66 @@
|
||||
\markboth{\textsc{AMG4PSBLAS User's and Reference Guide}}
|
||||
{\textsc{\ref{sec:license} License}}
|
||||
|
||||
{\bf DA CONTROLLARE E MODIFICARE INCLUDENDO I CREDITS A MLD2P4}
|
||||
|
||||
The AMG4PSBLAS is freely distributable under the following copyright
|
||||
AMG4PSBLAS is freely distributable under the following copyright
|
||||
terms: {\small
|
||||
\begin{verbatim}
|
||||
|
||||
|
||||
AMG4PSBLAS version 1.0
|
||||
Algebraic Multigrid Package
|
||||
based on PSBLAS (Parallel Sparse BLAS version 3.7)
|
||||
|
||||
(C) Copyright 2021
|
||||
|
||||
Salvatore Filippone
|
||||
Pasqua D'Ambra
|
||||
Fabio Durastante
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions, and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. The name of the AMG4PSBLAS group or the names of its contributors may
|
||||
not be used to endorse or promote products derived from this
|
||||
software without specific written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AMG4PSBLAS GROUP OR ITS CONTRIBUTORS
|
||||
BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
AMG4PSBLAS version 1.0
|
||||
Algebraic MultiGrid Preconditioners Package
|
||||
\end{verbatim}
|
||||
}
|
||||
\newpage
|
||||
AMG4PSBLAS is an evolution (a rather substantial one) of MLD2P4, whose
|
||||
license we reproduce here to abide by its terms:
|
||||
{\small
|
||||
\begin{verbatim}
|
||||
|
||||
|
||||
MLD2P4 version 2.2
|
||||
MultiLevel Domain Decomposition Parallel Preconditioners Package
|
||||
based on PSBLAS (Parallel Sparse BLAS version 3.5)
|
||||
|
||||
(C) Copyright 2008-2018
|
||||
|
||||
(C) Copyright 2008, 2010, 2012, 2015, 2017
|
||||
|
||||
Pasqua D'Ambra IAC-CNR, IT
|
||||
Fabio Durastante University of Pisa and IAC-CNR, IT
|
||||
Salvatore Filippone University of Rome Tor-Vergata and IAC-CNR, IT
|
||||
Salvatore Filippone
|
||||
Pasqua D'Ambra
|
||||
Daniela di Serafino
|
||||
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
@@ -29,7 +73,7 @@ terms: {\small
|
||||
3. The name of the MLD2P4 group or the names of its contributors may
|
||||
not be used to endorse or promote products derived from this
|
||||
software without specific written permission.
|
||||
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
||||
``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
|
||||
TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||
@@ -41,6 +85,6 @@ terms: {\small
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
\end{verbatim}
|
||||
}
|
||||
}
|
||||
@@ -19,7 +19,8 @@ where $A$ is a square, real or complex, sparse symmetric positive definite (s.p.
|
||||
The preconditioners implemented in AMG4PSBLAS are obtained by combining
|
||||
3 different types of AMG cycles with smoothers and coarsest-level solvers. The V-, W-, and a version of a Krylov-type cycle (K-cycle)~\cite{Briggs2000,Notay2008} are available, which can be combined with weighted versions of Jacobi, hybrid
|
||||
%\footnote{see Note 2 in Table~\ref{tab:p_coarse}, p.~28.}
|
||||
forward/backward Gauss-Seidel, block-Jacobi, and additive Schwarz smoothers. An algebraic approach is used to generate a hierarchy of
|
||||
forward/backward Gauss-Seidel, block-Jacobi, and additive Schwarz smoothers. Also $\ell_1$ versions of Jacobi, block-Jacobi and Gauss-Seidel smoothers are available.
|
||||
An algebraic approach is used to generate a hierarchy of
|
||||
coarse-level matrices and operators, without explicitly using any information on the
|
||||
geometry of the original problem, e.g., the discretization of a PDE. To this end,
|
||||
two different coarsening strategies, based on aggregation, are available:
|
||||
@@ -46,7 +47,8 @@ AMG4PSBLAS has been designed to implement scalable and easy-to-use
|
||||
multilevel preconditioners in the context of the PSBLAS (Parallel Sparse BLAS)
|
||||
computational framework~\cite{psblas_00,PSBLAS3}. PSBLAS provides basic linear algebra
|
||||
operators and data management facilities for distributed sparse matrices,
|
||||
as well as parallel Krylov solvers which can be used with the AMG4PSBLAS preconditioners.
|
||||
kernels for sequential incomplete factorizations needed for the parallel block-Jacobi and additive Schwarz smoothers, and
|
||||
parallel Krylov solvers which can be used with the AMG4PSBLAS preconditioners.
|
||||
The choice of PSBLAS has been mainly motivated by the need of having
|
||||
a portable and efficient software infrastructure implementing ``de facto'' standard
|
||||
parallel sparse linear algebra kernels, to pursue goals such as performance,
|
||||
@@ -55,7 +57,9 @@ package. On the other hand, the implementation of AMG4PSBLAS, which was driven b
|
||||
The inter-process comunication required by AMG4PSBLAS is encapsulated
|
||||
in the PSBLAS routines;
|
||||
therefore, AMG4PSBLAS can be run on any parallel machine where PSBLAS
|
||||
implementations are available.
|
||||
implementations are available. In the most recent version of PSBLAS (release 3.7), a plug-in for GPU is included; it includes CUDA versions of
|
||||
main vector operations and of sparse matrix-vector multiplication, so that Krylov methods coupled with AMG4PBLAS preconditioners
|
||||
relying on Jacobi and block-Jacobi smoothers with sparse approximate inverses on the blocks can be efficiently executed on cluster of GPUs.
|
||||
|
||||
AMG4PSBLAS has a layered and modular software architecture where three main layers can be
|
||||
identified. The lower layer consists of the PSBLAS kernels, the middle one implements
|
||||
|
||||
+32
-21
@@ -137,7 +137,7 @@ by a suitable setting of the preconditioner parameters. These parameters
|
||||
can be logically divided into four groups, i.e., parameters defining
|
||||
\begin{enumerate}
|
||||
\item the type of multilevel cycle and how many cycles must be applied;
|
||||
\item the aggregation algorithm;
|
||||
\item the coarsening algorithm;
|
||||
\item the coarse-space correction at the coarsest level (for multilevel
|
||||
preconditioners only);
|
||||
\item the smoother of the multilevel preconditioners, or the one-level
|
||||
@@ -145,9 +145,7 @@ can be logically divided into four groups, i.e., parameters defining
|
||||
|
||||
\end{enumerate}
|
||||
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}.
|
||||
For a description of the meaning of the parameters, please
|
||||
refer also to Section~\ref{sec:background}. \\
|
||||
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:
|
||||
a smoother (\verb|SMOOTHER_TYPE|) and a local solver (\verb|SUB_SOLVE|),
|
||||
@@ -159,7 +157,7 @@ the hybrid Gauss-Seidel smoother (see Note in Table~\ref{tab:p_smoother})
|
||||
is obtained by combining the block-Jacobi smoother object with a single sweep
|
||||
of the Gauss-Seidel solver object, while the point-Jacobi smoother is the
|
||||
result of combining the block-Jacobi smoother object with a single sweep
|
||||
of the pointwise-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
|
||||
hybrid backward Gauss-Seidel, i.e., the previous smoothers can be defined
|
||||
by setting only \verb|SMOOTHER_TYPE| to appropriate values (see
|
||||
@@ -272,7 +270,7 @@ be applied.
|
||||
& Any number \par $> 1$
|
||||
& 1.5
|
||||
& Minimum coarsening ratio. The aggregation stops
|
||||
if the ratio between the matrix dimensions
|
||||
if the ratio between the global matrix dimensions
|
||||
at two consecutive levels is lower than or equal to this
|
||||
threshold (see Note).\\ \hline
|
||||
|
||||
@@ -285,9 +283,8 @@ be applied.
|
||||
\verb|'PAR_AGGR_ALG'| & \verb|character(len=*)| \hspace*{-3mm}
|
||||
& \texttt{'DEC'}, \texttt{'SYMDEC'}, \texttt{'COUPLED'}
|
||||
& \texttt{'DEC'}
|
||||
& Parallel aggregation algorithm. \par Currently, only the
|
||||
decoupled aggregation (\verb|DEC|) is available; the
|
||||
\verb|SYMDEC| option applies decoupled
|
||||
& Parallel aggregation algorithm. \par the
|
||||
\verb|SYMDEC| option applies decoupled
|
||||
aggregation to the sparsity pattern
|
||||
of $A+A^T$.\\ \hline
|
||||
|
||||
@@ -297,10 +294,21 @@ be applied.
|
||||
\textbf{\texttt{'SOC2'}},
|
||||
\textbf{\texttt{'MATCHBOXP'}}
|
||||
& Type of aggregation algorithm: currently,
|
||||
we implement to measures of strength of
|
||||
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}. \\ \hline
|
||||
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'}
|
||||
@@ -309,7 +317,7 @@ be applied.
|
||||
\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} \\
|
||||
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
|
||||
@@ -332,7 +340,7 @@ of levels. } \\
|
||||
\verb|'AGGR_ORD'| & \verb|character(len=*)|
|
||||
& \texttt{'NATURAL'} \par \texttt{'DEGREE'}
|
||||
& \texttt{'NATURAL'}
|
||||
& Initial ordering of indices for the aggregation
|
||||
& Initial ordering of indices for the decoupled aggregation
|
||||
algorithm: either natural ordering or sorted by
|
||||
descending degrees of the nodes in the
|
||||
matrix graph. \\ \hline
|
||||
@@ -342,7 +350,7 @@ of levels. } \\
|
||||
\verb|'AGGR_THRESH'| & \verb|real(|\emph{kind\_parameter}\verb|)|
|
||||
& Any~real \par number~$\in [0, 1]$
|
||||
& 0.01
|
||||
& The threshold $\theta$ in the aggregation algorithm,
|
||||
& The threshold $\theta$ in the decoupled aggregation algorithm,
|
||||
see (\ref{eq:strongly_coup}) in Section~\ref{sec:aggregation}.
|
||||
See also the note at the bottom of this table. \\ \hline
|
||||
\verb|'AGGR_FILTER'|
|
||||
@@ -377,18 +385,20 @@ the parameter \texttt{ilev}.} \\
|
||||
\verb|'COARSE_SOLVE'| & \verb|character(len=*)|
|
||||
& \texttt{'MUMPS'} \par \texttt{'UMF'} \par
|
||||
\texttt{'SLU'} \par \texttt{'SLUDIST'} \par
|
||||
\texttt{'JACOBI'} \par \texttt{'GS'} \par \texttt{'BJAC'}
|
||||
\texttt{'JACOBI'} \par \texttt{'GS'} \par \texttt{'BJAC'} \par \texttt{'PCG'}
|
||||
& See~Note.
|
||||
& Solver used at the coarsest level: sequential
|
||||
LU from MUMPS, UMFPACK, or SuperLU
|
||||
(plus tri\-an\-gular solve);
|
||||
distributed LU from MUMPS or SuperLU\_Dist
|
||||
(plus triangular solve);
|
||||
point-Jacobi, hybrid Gauss-Seidel or block-Jacobi. \par
|
||||
point-Jacobi, hybrid Gauss-Seidel or block-Jacobi and related $\ell_1$-versions;
|
||||
{\bf preconditioned Conjugate Gradient coupled with the block-Jacobi preconditioner
|
||||
with ILU(0) on the blocks}. \par
|
||||
Note that \texttt{UMF} and \texttt{SLU} require the coarsest
|
||||
matrix to be replicated, \texttt{SLUDIST}, \texttt{JACOBI},
|
||||
\texttt{GS} and \texttt{BJAC} require it to be
|
||||
distributed, and \texttt{MUMPS} can be used with either
|
||||
\texttt{GS}, \texttt{BJAC} and \texttt{PCG} require it to be
|
||||
distributed, \texttt{MUMPS} can be used with either
|
||||
a replicated or a distributed matrix. When any of the previous
|
||||
solvers is specified, the matrix layout is set to a default
|
||||
value which allows the use of the solver (see Remark 3, p.~24).
|
||||
@@ -402,7 +412,7 @@ the parameter \texttt{ilev}.} \\
|
||||
in case the block Jacobi solver
|
||||
is chosen as coarsest-level solver: ILU($p$), ILU($p,t$),
|
||||
MILU($p$), LU from MUMPS, SuperLU or UMFPACK
|
||||
(plus triangular solve).
|
||||
(plus triangular solve). {\bf Aggiungere Sparse Approssimate per GPU?}
|
||||
Note that UMFPACK and SuperLU\_Dist
|
||||
are available only in double precision. \\
|
||||
\hline
|
||||
@@ -431,7 +441,7 @@ level.\label{tab:p_coarse}}
|
||||
& Any integer \par number $> 0$
|
||||
& 10
|
||||
& Number of sweeps when \verb|JACOBI|, \verb|GS| or \verb|BJAC|
|
||||
is chosen as coarsest-level solver. \\ \hline
|
||||
is chosen as coarsest-level solver. {\bf Aggiungere criterio di arresto del PCG?}\\ \hline
|
||||
\verb|'COARSE_FILLIN'| & \verb|integer|
|
||||
& Any integer \par number $\ge 0$
|
||||
& 0
|
||||
@@ -462,7 +472,7 @@ level (continued).\label{tab:p_coarse_1}}
|
||||
& \verb|'FBGS'|
|
||||
& Type of smoother used in the multilevel preconditioner:
|
||||
point-Jacobi, hybrid (forward) Gauss-Seidel,
|
||||
hybrid backward Gauss-Seidel, block-Jacobi, and
|
||||
hybrid backward Gauss-Seidel, block-Jacobi, \textbf{$\ell_1$-versions?} and
|
||||
Additive Schwarz. \par
|
||||
It is ignored by one-level preconditioners. \\ \hline
|
||||
\verb|'SUB_SOLVE'| & \verb|character(len=*)|
|
||||
@@ -474,6 +484,7 @@ level (continued).\label{tab:p_coarse_1}}
|
||||
of multilevel preconditioners, respectively \par
|
||||
\texttt{ILU} for block-Jacobi and Additive Schwarz
|
||||
one-level preconditioners
|
||||
\textbf{$\ell_1$-versions?}
|
||||
& The local solver to be used with the smoother or one-level
|
||||
preconditioner (see Remark~2, page~24): point-Jacobi,
|
||||
hybrid (forward) Gauss-Seidel, hybrid backward
|
||||
|
||||
Reference in New Issue
Block a user