Merge branch 'development' into mergeparmatch

mergeparmatch
Cirdans-Home 4 years ago
commit 01c7d09fdd

Binary file not shown.

@ -112,73 +112,73 @@ href="userhtmlsu7.html#x16-150004.2" id="QQ2-16-21"><span
class="cmr-12">GPU example</span></a></span> class="cmr-12">GPU example</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span class="sectionToc" ><span
class="cmr-12">5 </span><a class="cmr-12">5 </span><a
href="userhtmlse5.html#x17-160005" id="QQ2-17-23"><span href="userhtmlse5.html#x17-160005" id="QQ2-17-25"><span
class="cmr-12">User Interface</span></a></span> class="cmr-12">User Interface</span></a></span>
<br /> <span <br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.1 </span><a class="cmr-12">5.1 </span><a
href="userhtmlsu8.html#x18-170005.1" id="QQ2-18-24"><span href="userhtmlsu8.html#x18-170005.1" id="QQ2-18-26"><span
class="cmr-12">Method init</span></a></span> class="cmr-12">Method init</span></a></span>
<br /> <span <br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.2 </span><a class="cmr-12">5.2 </span><a
href="userhtmlsu9.html#x19-180005.2" id="QQ2-19-25"><span href="userhtmlsu9.html#x19-180005.2" id="QQ2-19-27"><span
class="cmr-12">Method set</span></a></span> class="cmr-12">Method set</span></a></span>
<br /> <span <br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.3 </span><a class="cmr-12">5.3 </span><a
href="userhtmlsu10.html#x20-190005.3" id="QQ2-20-33"><span href="userhtmlsu10.html#x20-190005.3" id="QQ2-20-35"><span
class="cmr-12">Method hierarchy</span><span class="cmr-12">Method hierarchy</span><span
class="cmr-12">_build</span></a></span> class="cmr-12">_build</span></a></span>
<br /> <span <br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.4 </span><a class="cmr-12">5.4 </span><a
href="userhtmlsu11.html#x21-200005.4" id="QQ2-21-34"><span href="userhtmlsu11.html#x21-200005.4" id="QQ2-21-36"><span
class="cmr-12">Method smoothers</span><span class="cmr-12">Method smoothers</span><span
class="cmr-12">_build</span></a></span> class="cmr-12">_build</span></a></span>
<br /> <span <br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.5 </span><a class="cmr-12">5.5 </span><a
href="userhtmlsu12.html#x22-210005.5" id="QQ2-22-35"><span href="userhtmlsu12.html#x22-210005.5" id="QQ2-22-37"><span
class="cmr-12">Method build</span></a></span> class="cmr-12">Method build</span></a></span>
<br /> <span <br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.6 </span><a class="cmr-12">5.6 </span><a
href="userhtmlsu13.html#x23-220005.6" id="QQ2-23-36"><span href="userhtmlsu13.html#x23-220005.6" id="QQ2-23-38"><span
class="cmr-12">Method apply</span></a></span> class="cmr-12">Method apply</span></a></span>
<br /> <span <br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.7 </span><a class="cmr-12">5.7 </span><a
href="userhtmlsu14.html#x24-230005.7" id="QQ2-24-37"><span href="userhtmlsu14.html#x24-230005.7" id="QQ2-24-39"><span
class="cmr-12">Method free</span></a></span> class="cmr-12">Method free</span></a></span>
<br /> <span <br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.8 </span><a class="cmr-12">5.8 </span><a
href="userhtmlsu15.html#x25-240005.8" id="QQ2-25-38"><span href="userhtmlsu15.html#x25-240005.8" id="QQ2-25-40"><span
class="cmr-12">Method descr</span></a></span> class="cmr-12">Method descr</span></a></span>
<br /> <span <br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.9 </span><a class="cmr-12">5.9 </span><a
href="userhtmlsu16.html#x26-250005.9" id="QQ2-26-39"><span href="userhtmlsu16.html#x26-250005.9" id="QQ2-26-41"><span
class="cmr-12">Auxiliary Methods</span></a></span> class="cmr-12">Auxiliary Methods</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span class="sectionToc" ><span
class="cmr-12">6 </span><a class="cmr-12">6 </span><a
href="userhtmlse6.html#x27-310006" id="QQ2-27-45"><span href="userhtmlse6.html#x27-310006" id="QQ2-27-47"><span
class="cmr-12">Adding new smoother and solver objects to AMG4PSBLAS</span></a></span> class="cmr-12">Adding new smoother and solver objects to AMG4PSBLAS</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span class="sectionToc" ><span
class="cmr-12">7 </span><a class="cmr-12">7 </span><a
href="userhtmlse7.html#x28-320007" id="QQ2-28-46"><span href="userhtmlse7.html#x28-320007" id="QQ2-28-48"><span
class="cmr-12">Error Handling</span></a></span> class="cmr-12">Error Handling</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span class="sectionToc" ><span
class="cmr-12">A </span><a class="cmr-12">A </span><a
href="userhtmlse8.html#x29-33000A" id="QQ2-29-47"><span href="userhtmlse8.html#x29-33000A" id="QQ2-29-49"><span
class="cmr-12">License</span></a></span> class="cmr-12">License</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span class="sectionToc" ><span
class="cmr-12">B </span><a class="cmr-12">B </span><a
href="userhtmlse9.html#x30-34000B" id="QQ2-30-48"><span href="userhtmlse9.html#x30-34000B" id="QQ2-30-50"><span
class="cmr-12">Contributor Covenant Code of Conduct</span></a></span> class="cmr-12">Contributor Covenant Code of Conduct</span></a></span>
<br /> <span class="likesectionToc" ><a <br /> <span class="likesectionToc" ><a
href="userhtmlli5.html#x31-39000B" id="QQ2-31-53"><span href="userhtmlli5.html#x31-39000B" id="QQ2-31-55"><span
class="cmr-12">References</span></a></span> class="cmr-12">References</span></a></span>
</div> </div>

@ -112,73 +112,73 @@ href="userhtmlsu7.html#x16-150004.2" id="QQ2-16-21"><span
class="cmr-12">GPU example</span></a></span> class="cmr-12">GPU example</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span class="sectionToc" ><span
class="cmr-12">5 </span><a class="cmr-12">5 </span><a
href="userhtmlse5.html#x17-160005" id="QQ2-17-23"><span href="userhtmlse5.html#x17-160005" id="QQ2-17-25"><span
class="cmr-12">User Interface</span></a></span> class="cmr-12">User Interface</span></a></span>
<br /> <span <br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.1 </span><a class="cmr-12">5.1 </span><a
href="userhtmlsu8.html#x18-170005.1" id="QQ2-18-24"><span href="userhtmlsu8.html#x18-170005.1" id="QQ2-18-26"><span
class="cmr-12">Method init</span></a></span> class="cmr-12">Method init</span></a></span>
<br /> <span <br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.2 </span><a class="cmr-12">5.2 </span><a
href="userhtmlsu9.html#x19-180005.2" id="QQ2-19-25"><span href="userhtmlsu9.html#x19-180005.2" id="QQ2-19-27"><span
class="cmr-12">Method set</span></a></span> class="cmr-12">Method set</span></a></span>
<br /> <span <br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.3 </span><a class="cmr-12">5.3 </span><a
href="userhtmlsu10.html#x20-190005.3" id="QQ2-20-33"><span href="userhtmlsu10.html#x20-190005.3" id="QQ2-20-35"><span
class="cmr-12">Method hierarchy</span><span class="cmr-12">Method hierarchy</span><span
class="cmr-12">_build</span></a></span> class="cmr-12">_build</span></a></span>
<br /> <span <br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.4 </span><a class="cmr-12">5.4 </span><a
href="userhtmlsu11.html#x21-200005.4" id="QQ2-21-34"><span href="userhtmlsu11.html#x21-200005.4" id="QQ2-21-36"><span
class="cmr-12">Method smoothers</span><span class="cmr-12">Method smoothers</span><span
class="cmr-12">_build</span></a></span> class="cmr-12">_build</span></a></span>
<br /> <span <br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.5 </span><a class="cmr-12">5.5 </span><a
href="userhtmlsu12.html#x22-210005.5" id="QQ2-22-35"><span href="userhtmlsu12.html#x22-210005.5" id="QQ2-22-37"><span
class="cmr-12">Method build</span></a></span> class="cmr-12">Method build</span></a></span>
<br /> <span <br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.6 </span><a class="cmr-12">5.6 </span><a
href="userhtmlsu13.html#x23-220005.6" id="QQ2-23-36"><span href="userhtmlsu13.html#x23-220005.6" id="QQ2-23-38"><span
class="cmr-12">Method apply</span></a></span> class="cmr-12">Method apply</span></a></span>
<br /> <span <br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.7 </span><a class="cmr-12">5.7 </span><a
href="userhtmlsu14.html#x24-230005.7" id="QQ2-24-37"><span href="userhtmlsu14.html#x24-230005.7" id="QQ2-24-39"><span
class="cmr-12">Method free</span></a></span> class="cmr-12">Method free</span></a></span>
<br /> <span <br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.8 </span><a class="cmr-12">5.8 </span><a
href="userhtmlsu15.html#x25-240005.8" id="QQ2-25-38"><span href="userhtmlsu15.html#x25-240005.8" id="QQ2-25-40"><span
class="cmr-12">Method descr</span></a></span> class="cmr-12">Method descr</span></a></span>
<br /> <span <br /> <span
class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span class="cmr-12">&#x00A0;</span><span class="subsectionToc" ><span
class="cmr-12">5.9 </span><a class="cmr-12">5.9 </span><a
href="userhtmlsu16.html#x26-250005.9" id="QQ2-26-39"><span href="userhtmlsu16.html#x26-250005.9" id="QQ2-26-41"><span
class="cmr-12">Auxiliary Methods</span></a></span> class="cmr-12">Auxiliary Methods</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span class="sectionToc" ><span
class="cmr-12">6 </span><a class="cmr-12">6 </span><a
href="userhtmlse6.html#x27-310006" id="QQ2-27-45"><span href="userhtmlse6.html#x27-310006" id="QQ2-27-47"><span
class="cmr-12">Adding new smoother and solver objects to AMG4PSBLAS</span></a></span> class="cmr-12">Adding new smoother and solver objects to AMG4PSBLAS</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span class="sectionToc" ><span
class="cmr-12">7 </span><a class="cmr-12">7 </span><a
href="userhtmlse7.html#x28-320007" id="QQ2-28-46"><span href="userhtmlse7.html#x28-320007" id="QQ2-28-48"><span
class="cmr-12">Error Handling</span></a></span> class="cmr-12">Error Handling</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span class="sectionToc" ><span
class="cmr-12">A </span><a class="cmr-12">A </span><a
href="userhtmlse8.html#x29-33000A" id="QQ2-29-47"><span href="userhtmlse8.html#x29-33000A" id="QQ2-29-49"><span
class="cmr-12">License</span></a></span> class="cmr-12">License</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span class="sectionToc" ><span
class="cmr-12">B </span><a class="cmr-12">B </span><a
href="userhtmlse9.html#x30-34000B" id="QQ2-30-48"><span href="userhtmlse9.html#x30-34000B" id="QQ2-30-50"><span
class="cmr-12">Contributor Covenant Code of Conduct</span></a></span> class="cmr-12">Contributor Covenant Code of Conduct</span></a></span>
<br /> <span class="likesectionToc" ><a <br /> <span class="likesectionToc" ><a
href="userhtmlli5.html#x31-39000B" id="QQ2-31-53"><span href="userhtmlli5.html#x31-39000B" id="QQ2-31-55"><span
class="cmr-12">References</span></a></span> class="cmr-12">References</span></a></span>
</div> </div>

@ -137,32 +137,32 @@ class="cmr-12">Auxiliary Methods</span></a></span>
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span
class="cmr-12">5.9.1 </span><a class="cmr-12">5.9.1 </span><a
href="userhtmlsu16.html#x26-260005.9.1" id="QQ2-26-40"><span href="userhtmlsu16.html#x26-260005.9.1" id="QQ2-26-42"><span
class="cmr-12">Method: dump</span></a></span> class="cmr-12">Method: dump</span></a></span>
<br /> <span <br /> <span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span
class="cmr-12">5.9.2 </span><a class="cmr-12">5.9.2 </span><a
href="userhtmlsu16.html#x26-270005.9.2" id="QQ2-26-41"><span href="userhtmlsu16.html#x26-270005.9.2" id="QQ2-26-43"><span
class="cmr-12">Method: clone</span></a></span> class="cmr-12">Method: clone</span></a></span>
<br /> <span <br /> <span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span
class="cmr-12">5.9.3 </span><a class="cmr-12">5.9.3 </span><a
href="userhtmlsu16.html#x26-280005.9.3" id="QQ2-26-42"><span href="userhtmlsu16.html#x26-280005.9.3" id="QQ2-26-44"><span
class="cmr-12">Method: sizeof</span></a></span> class="cmr-12">Method: sizeof</span></a></span>
<br /> <span <br /> <span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span
class="cmr-12">5.9.4 </span><a class="cmr-12">5.9.4 </span><a
href="userhtmlsu16.html#x26-290005.9.4" id="QQ2-26-43"><span href="userhtmlsu16.html#x26-290005.9.4" id="QQ2-26-45"><span
class="cmr-12">Method: allocate</span><span class="cmr-12">Method: allocate</span><span
class="cmr-12">_wrk</span></a></span> class="cmr-12">_wrk</span></a></span>
<br /> <span <br /> <span
class="cmr-12">&#x00A0;</span><span class="cmr-12">&#x00A0;</span><span
class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span class="cmr-12">&#x00A0;</span><span class="subsubsectionToc" ><span
class="cmr-12">5.9.5 </span><a class="cmr-12">5.9.5 </span><a
href="userhtmlsu16.html#x26-300005.9.5" id="QQ2-26-44"><span href="userhtmlsu16.html#x26-300005.9.5" id="QQ2-26-46"><span
class="cmr-12">Method: free</span><span class="cmr-12">Method: free</span><span
class="cmr-12">_wrk</span></a></span> class="cmr-12">_wrk</span></a></span>
<br /> <span class="sectionToc" ><span <br /> <span class="sectionToc" ><span

@ -215,11 +215,7 @@ class="cmr-12">pass it as follows:</span>
<<<<<<< HEAD <pre class="verbatim" id="verbatim-13">
<pre class="verbatim" id="verbatim-10">
=======
<pre class="verbatim" id="verbatim-11">
>>>>>>> development
&#x00A0;&#x00A0;!&#x00A0;sparse&#x00A0;matrix&#x00A0;and&#x00A0;preconditioner &#x00A0;&#x00A0;!&#x00A0;sparse&#x00A0;matrix&#x00A0;and&#x00A0;preconditioner
&#x00A0;&#x00A0;type(psb_dspmat_type)&#x00A0;::&#x00A0;a &#x00A0;&#x00A0;type(psb_dspmat_type)&#x00A0;::&#x00A0;a
&#x00A0;&#x00A0;type(amg_dprec_type)&#x00A0;&#x00A0;::&#x00A0;prec &#x00A0;&#x00A0;type(amg_dprec_type)&#x00A0;&#x00A0;::&#x00A0;prec

@ -36,11 +36,7 @@ class="cmr-12">AMG4PSBLAS is freely distributable under the following copyright
<<<<<<< HEAD <pre class="verbatim" id="verbatim-14">
<pre class="verbatim" id="verbatim-11">
=======
<pre class="verbatim" id="verbatim-12">
>>>>>>> development
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;AMG4PSBLAS&#x00A0;&#x00A0;version&#x00A0;1.0 &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;AMG4PSBLAS&#x00A0;&#x00A0;version&#x00A0;1.0
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Algebraic&#x00A0;MultiGrid&#x00A0;Preconditioners&#x00A0;Package &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Algebraic&#x00A0;MultiGrid&#x00A0;Preconditioners&#x00A0;Package
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;based&#x00A0;on&#x00A0;PSBLAS&#x00A0;(Parallel&#x00A0;Sparse&#x00A0;BLAS&#x00A0;version&#x00A0;3.7) &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;based&#x00A0;on&#x00A0;PSBLAS&#x00A0;(Parallel&#x00A0;Sparse&#x00A0;BLAS&#x00A0;version&#x00A0;3.7)
@ -82,11 +78,7 @@ class="cmr-12">abide by its terms:</span>
<<<<<<< HEAD <pre class="verbatim" id="verbatim-15">
<pre class="verbatim" id="verbatim-12">
=======
<pre class="verbatim" id="verbatim-13">
>>>>>>> development
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;MLD2P4&#x00A0;&#x00A0;version&#x00A0;2.2 &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;MLD2P4&#x00A0;&#x00A0;version&#x00A0;2.2
&#x00A0;&#x00A0;MultiLevel&#x00A0;Domain&#x00A0;Decomposition&#x00A0;Parallel&#x00A0;Preconditioners&#x00A0;Package &#x00A0;&#x00A0;MultiLevel&#x00A0;Domain&#x00A0;Decomposition&#x00A0;Parallel&#x00A0;Preconditioners&#x00A0;Package
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;based&#x00A0;on&#x00A0;PSBLAS&#x00A0;(Parallel&#x00A0;Sparse&#x00A0;BLAS&#x00A0;version&#x00A0;3.5) &#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;based&#x00A0;on&#x00A0;PSBLAS&#x00A0;(Parallel&#x00A0;Sparse&#x00A0;BLAS&#x00A0;version&#x00A0;3.5)
@ -129,22 +121,13 @@ class="cmr-12">[</span><a
href="userhtmlli5.html#XMatchBoxP"><span href="userhtmlli5.html#XMatchBoxP"><span
class="cmr-12">9</span></a><span class="cmr-12">9</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">. The relevant license is reproduced here:</span> class="cmr-12">. Per the license requirements, we reproduce the relative part</span>
<span
class="cmr-12">here.</span>
<<<<<<< HEAD <pre class="verbatim" id="verbatim-16">
<pre class="verbatim" id="verbatim-13">
//&#x00A0;***********************************************************************
//
//&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;MatchboxP:&#x00A0;A&#x00A0;C++&#x00A0;library&#x00A0;for&#x00A0;approximate&#x00A0;weighted&#x00A0;matching
//&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Mahantesh&#x00A0;Halappanavar&#x00A0;(hala@pnnl.gov)
//&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Pacific&#x00A0;Northwest&#x00A0;National&#x00A0;Laboratory
//
//&#x00A0;***********************************************************************
//
=======
<pre class="verbatim" id="verbatim-14">
//&#x00A0;*********************************************************************** //&#x00A0;***********************************************************************
// //
//&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;MatchboxP:&#x00A0;A&#x00A0;C++&#x00A0;library&#x00A0;for&#x00A0;approximate&#x00A0;weighted&#x00A0;matching //&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;MatchboxP:&#x00A0;A&#x00A0;C++&#x00A0;library&#x00A0;for&#x00A0;approximate&#x00A0;weighted&#x00A0;matching
@ -153,7 +136,6 @@ class="cmr-12">. The relevant license is reproduced here:</span>
// //
//&#x00A0;*********************************************************************** //&#x00A0;***********************************************************************
// //
>>>>>>> development
//&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Copyright&#x00A0;(2021)&#x00A0;Battelle&#x00A0;Memorial&#x00A0;Institute //&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;Copyright&#x00A0;(2021)&#x00A0;Battelle&#x00A0;Memorial&#x00A0;Institute
//&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;All&#x00A0;rights&#x00A0;reserved. //&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;All&#x00A0;rights&#x00A0;reserved.
// //

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 674--><div class="crosslinks"><p class="noindent"><span <!--l. 678--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu11.html" ><span href="userhtmlsu11.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -34,8 +34,8 @@ class="cmr-12">Method hierarchy</span><span
class="cmr-12">_build</span></h4> class="cmr-12">_build</span></h4>
<div class="center" <div class="center"
> >
<!--l. 676--><p class="noindent" > <!--l. 680--><p class="noindent" >
<!--l. 677--><p class="noindent" ><span class="lstinline"></span><span <!--l. 681--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">call</span><span class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span class="cmtt-12">p</span><span
@ -49,7 +49,7 @@ class="cmtt-12">,</span><span
class="cmtt-12">info</span><span class="cmtt-12">info</span><span
class="cmtt-12">)</span><br /> class="cmtt-12">)</span><br />
</div> </div>
<!--l. 680--><p class="noindent" ><span <!--l. 684--><p class="noindent" ><span
class="cmr-12">This method builds the hierarchy of matrices and restriction/prolongation operators for</span> class="cmr-12">This method builds the hierarchy of matrices and restriction/prolongation operators for</span>
<span <span
class="cmr-12">the multilevel preconditioner </span><span class="lstinline"></span><span class="cmr-12">the multilevel preconditioner </span><span class="lstinline"></span><span
@ -61,27 +61,17 @@ class="cmtt-12">init</span> <span
class="cmr-12">and </span><span class="lstinline"></span><span class="cmr-12">and </span><span class="lstinline"></span><span
class="cmtt-12">set</span><span class="cmtt-12">set</span><span
class="cmr-12">.</span> class="cmr-12">.</span>
<!--l. 685--><p class="noindent" ><span <!--l. 689--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-11" class="tabular" <div class="tabular"> <table id="TBL-11" class="tabular"
cellspacing="0" cellpadding="0" cellspacing="0" cellpadding="0"
<<<<<<< HEAD
><colgroup id="TBL-12-1g"><col
id="TBL-12-1"><col
id="TBL-12-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-12-1-"><td style="white-space:normal; text-align:left;" id="TBL-12-1-1"
class="td11"><!--l. 721--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">a</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-1-2"
class="td11"><!--l. 721--><p class="noindent" ><span class="lstinline"></span><span
=======
><colgroup id="TBL-11-1g"><col ><colgroup id="TBL-11-1g"><col
id="TBL-11-1"><col id="TBL-11-1"><col
id="TBL-11-2"></colgroup><tr 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" style="vertical-align:baseline;" id="TBL-11-1-"><td style="white-space:normal; text-align:left;" id="TBL-11-1-1"
class="td11"><!--l. 688--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 692--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">a</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-1-2" class="cmtt-12">a</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-1-2"
class="td11"><!--l. 688--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 692--><p class="noindent" ><span class="lstinline"></span><span
>>>>>>> development
class="cmtt-12">type</span><span class="cmtt-12">type</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span class="cmtt-12">psb_</span><span
@ -95,15 +85,9 @@ class="cmtt-12">in</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-12-2-"><td style="white-space:normal; text-align:left;" id="TBL-12-2-1"
class="td11"><!--l. 722--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-2-2"
class="td11"><!--l. 722--><p class="noindent" ><span
=======
style="vertical-align:baseline;" id="TBL-11-2-"><td style="white-space:normal; text-align:left;" id="TBL-11-2-1" style="vertical-align:baseline;" id="TBL-11-2-"><td style="white-space:normal; text-align:left;" id="TBL-11-2-1"
class="td11"><!--l. 689--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-2-2" class="td11"><!--l. 693--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-2-2"
class="td11"><!--l. 689--><p class="noindent" ><span class="td11"><!--l. 693--><p class="noindent" ><span
>>>>>>> development
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span> class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
<span <span
class="cmr-12">to be preconditioned. Note that </span><span class="cmr-12">to be preconditioned. Note that </span><span
@ -122,17 +106,10 @@ class="cmr-12">20</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-12-3-"><td style="white-space:normal; text-align:left;" id="TBL-12-3-1"
class="td11"><!--l. 726--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-12-3-2"
class="td11"><!--l. 726--><p class="noindent" ><span class="lstinline"></span><span
=======
style="vertical-align:baseline;" id="TBL-11-3-"><td style="white-space:normal; text-align:left;" id="TBL-11-3-1" style="vertical-align:baseline;" id="TBL-11-3-"><td style="white-space:normal; text-align:left;" id="TBL-11-3-1"
class="td11"><!--l. 694--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 698--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-11-3-2" class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-11-3-2"
class="td11"><!--l. 694--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 698--><p class="noindent" ><span class="lstinline"></span><span
>>>>>>> development
class="cmtt-12">type</span><span class="cmtt-12">type</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
class="cmtt-12">psb_desc_type</span><span class="cmtt-12">psb_desc_type</span><span
@ -144,15 +121,9 @@ class="cmtt-12">in</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-12-4-"><td style="white-space:normal; text-align:left;" id="TBL-12-4-1"
class="td11"><!--l. 727--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-4-2"
class="td11"><!--l. 727--><p class="noindent" ><span
=======
style="vertical-align:baseline;" id="TBL-11-4-"><td style="white-space:normal; text-align:left;" id="TBL-11-4-1" style="vertical-align:baseline;" id="TBL-11-4-"><td style="white-space:normal; text-align:left;" id="TBL-11-4-1"
class="td11"><!--l. 695--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-4-2" class="td11"><!--l. 699--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-4-2"
class="td11"><!--l. 695--><p class="noindent" ><span class="td11"><!--l. 699--><p class="noindent" ><span
>>>>>>> development
class="cmr-12">The communication descriptor of </span><span class="lstinline"></span><span class="cmr-12">The communication descriptor of </span><span class="lstinline"></span><span
class="cmtt-12">a</span><span class="cmtt-12">a</span><span
class="cmr-12">. See the PSBLAS User&#8217;s Guide</span> class="cmr-12">. See the PSBLAS User&#8217;s Guide</span>
@ -164,17 +135,10 @@ class="cmr-12">20</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-12-5-"><td style="white-space:normal; text-align:left;" id="TBL-12-5-1"
class="td11"><!--l. 729--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-5-2"
class="td11"><!--l. 729--><p class="noindent" ><span class="lstinline"></span><span
=======
style="vertical-align:baseline;" id="TBL-11-5-"><td style="white-space:normal; text-align:left;" id="TBL-11-5-1" style="vertical-align:baseline;" id="TBL-11-5-"><td style="white-space:normal; text-align:left;" id="TBL-11-5-1"
class="td11"><!--l. 697--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 701--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-5-2" class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-11-5-2"
class="td11"><!--l. 697--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 701--><p class="noindent" ><span class="lstinline"></span><span
>>>>>>> development
class="cmtt-12">integer</span><span class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
@ -184,109 +148,16 @@ class="cmtt-12">out</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-12-6-"><td style="white-space:normal; text-align:left;" id="TBL-12-6-1"
class="td11"><!--l. 730--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-6-2"
class="td11"><!--l. 730--><p class="noindent" ><span
=======
style="vertical-align:baseline;" id="TBL-11-6-"><td style="white-space:normal; text-align:left;" id="TBL-11-6-1" style="vertical-align:baseline;" id="TBL-11-6-"><td style="white-space:normal; text-align:left;" id="TBL-11-6-1"
class="td11"><!--l. 698--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-6-2" class="td11"><!--l. 702--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-11-6-2"
class="td11"><!--l. 698--><p class="noindent" ><span class="td11"><!--l. 702--><p class="noindent" ><span
>>>>>>> development
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><span
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td> class="cmr-12">for details.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-12-7-"><td style="white-space:normal; text-align:left;" id="TBL-12-7-1"
class="td11"><!--l. 731--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">amold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-7-2"
class="td11"><!--l. 731--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span
class="cmti-12">x</span><span class="lstinline"></span><span
class="cmtt-12">_base_sparse_mat</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</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. 732--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-8-2"
class="td11"><!--l. 732--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal matrix components; this</span>
<span
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
<span
class="cmr-12">processes. See the PSBLAS User&#8217;s Guide for details </span><span class="cite"><span
class="cmr-12">[</span><a
href="userhtmlli5.html#XPSBLASGUIDE"><span
class="cmr-12">20</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. 736--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">vmold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-9-2"
class="td11"><!--l. 736--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span
class="cmti-12">x</span><span class="lstinline"></span><span
class="cmtt-12">_base_vect_type</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</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. 737--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-10-2"
class="td11"><!--l. 737--><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. 739--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">imold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-11-2"
class="td11"><!--l. 739--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_i_base_vect_type</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</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. 740--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-12-2"
class="td11"><!--l. 740--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal integer vector components;</span>
<span
class="cmr-12">this allows e.g. running on GPUs.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-12-13-"><td style="white-space:normal; text-align:left;" id="TBL-12-13-1"
=======
style="vertical-align:baseline;" id="TBL-11-7-"><td style="white-space:normal; text-align:left;" id="TBL-11-7-1" style="vertical-align:baseline;" id="TBL-11-7-"><td style="white-space:normal; text-align:left;" id="TBL-11-7-1"
>>>>>>> development
class="td11"> </td> </tr></table></div> class="td11"> </td> </tr></table></div>
@ -294,7 +165,7 @@ class="td11"> </td> </tr></table></div>
<!--l. 704--><div class="crosslinks"><p class="noindent"><span <!--l. 708--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu11.html" ><span href="userhtmlsu11.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -311,6 +182,6 @@ class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu10.html" ><span href="userhtmlse5.html#userhtmlsu10.html" ><span
class="cmr-12">up</span></a><span class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<!--l. 704--><p class="indent" > <a <!--l. 708--><p class="indent" > <a
id="tailuserhtmlsu10.html"></a> id="tailuserhtmlsu10.html"></a>
</body></html> </body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 704--><div class="crosslinks"><p class="noindent"><span <!--l. 708--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu12.html" ><span href="userhtmlsu12.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -34,8 +34,8 @@ class="cmr-12">Method smoothers</span><span
class="cmr-12">_build</span></h4> class="cmr-12">_build</span></h4>
<div class="center" <div class="center"
> >
<!--l. 707--><p class="noindent" > <!--l. 711--><p class="noindent" >
<!--l. 708--><p class="noindent" ><span class="lstinline"></span><span <!--l. 712--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">call</span><span class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span class="cmtt-12">p</span><span
@ -57,7 +57,7 @@ class="cmtt-12">,</span><span
class="cmtt-12">imold</span><span class="cmtt-12">imold</span><span
class="cmtt-12">])</span><br /> class="cmtt-12">])</span><br />
</div> </div>
<!--l. 711--><p class="noindent" ><span <!--l. 715--><p class="noindent" ><span
class="cmr-12">This method builds the smoothers and the coarsest-level solvers for the multilevel</span> class="cmr-12">This method builds the smoothers and the coarsest-level solvers for the multilevel</span>
<span <span
class="cmr-12">preconditioner </span><span class="lstinline"></span><span class="cmr-12">preconditioner </span><span class="lstinline"></span><span
@ -75,27 +75,17 @@ class="cmr-12">&#x00A0;</span><a
href="userhtmlsu10.html#x20-190005.3"><span href="userhtmlsu10.html#x20-190005.3"><span
class="cmr-12">5.3</span><!--tex4ht:ref: sec:hier_bld --></a><span class="cmr-12">5.3</span><!--tex4ht:ref: sec:hier_bld --></a><span
class="cmr-12">).</span> class="cmr-12">).</span>
<!--l. 718--><p class="noindent" ><span <!--l. 722--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-12" class="tabular" <div class="tabular"> <table id="TBL-12" class="tabular"
cellspacing="0" cellpadding="0" cellspacing="0" cellpadding="0"
<<<<<<< HEAD
><colgroup id="TBL-13-1g"><col
id="TBL-13-1"><col
id="TBL-13-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-13-1-"><td style="white-space:normal; text-align:left;" id="TBL-13-1-1"
class="td11"><!--l. 765--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">a</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-1-2"
class="td11"><!--l. 765--><p class="noindent" ><span class="lstinline"></span><span
=======
><colgroup id="TBL-12-1g"><col ><colgroup id="TBL-12-1g"><col
id="TBL-12-1"><col id="TBL-12-1"><col
id="TBL-12-2"></colgroup><tr 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" style="vertical-align:baseline;" id="TBL-12-1-"><td style="white-space:normal; text-align:left;" id="TBL-12-1-1"
class="td11"><!--l. 721--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 725--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">a</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-1-2" class="cmtt-12">a</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-1-2"
class="td11"><!--l. 721--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 725--><p class="noindent" ><span class="lstinline"></span><span
>>>>>>> development
class="cmtt-12">type</span><span class="cmtt-12">type</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span class="cmtt-12">psb_</span><span
@ -109,15 +99,9 @@ class="cmtt-12">in</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-13-2-"><td style="white-space:normal; text-align:left;" id="TBL-13-2-1"
class="td11"><!--l. 766--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-2-2"
class="td11"><!--l. 766--><p class="noindent" ><span
=======
style="vertical-align:baseline;" id="TBL-12-2-"><td style="white-space:normal; text-align:left;" id="TBL-12-2-1" style="vertical-align:baseline;" id="TBL-12-2-"><td style="white-space:normal; text-align:left;" id="TBL-12-2-1"
class="td11"><!--l. 722--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-2-2" class="td11"><!--l. 726--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-2-2"
class="td11"><!--l. 722--><p class="noindent" ><span class="td11"><!--l. 726--><p class="noindent" ><span
>>>>>>> development
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span> class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
<span <span
class="cmr-12">to be preconditioned. Note that </span><span class="cmr-12">to be preconditioned. Note that </span><span
@ -136,17 +120,10 @@ class="cmr-12">20</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-13-3-"><td style="white-space:normal; text-align:left;" id="TBL-13-3-1"
class="td11"><!--l. 770--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-13-3-2"
class="td11"><!--l. 770--><p class="noindent" ><span class="lstinline"></span><span
=======
style="vertical-align:baseline;" id="TBL-12-3-"><td style="white-space:normal; text-align:left;" id="TBL-12-3-1" style="vertical-align:baseline;" id="TBL-12-3-"><td style="white-space:normal; text-align:left;" id="TBL-12-3-1"
class="td11"><!--l. 726--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 730--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-12-3-2" class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-12-3-2"
class="td11"><!--l. 726--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 730--><p class="noindent" ><span class="lstinline"></span><span
>>>>>>> development
class="cmtt-12">type</span><span class="cmtt-12">type</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
class="cmtt-12">psb_desc_type</span><span class="cmtt-12">psb_desc_type</span><span
@ -158,15 +135,9 @@ class="cmtt-12">in</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-13-4-"><td style="white-space:normal; text-align:left;" id="TBL-13-4-1"
class="td11"><!--l. 771--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-4-2"
class="td11"><!--l. 771--><p class="noindent" ><span
=======
style="vertical-align:baseline;" id="TBL-12-4-"><td style="white-space:normal; text-align:left;" id="TBL-12-4-1" style="vertical-align:baseline;" id="TBL-12-4-"><td style="white-space:normal; text-align:left;" id="TBL-12-4-1"
class="td11"><!--l. 727--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-4-2" class="td11"><!--l. 731--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-4-2"
class="td11"><!--l. 727--><p class="noindent" ><span class="td11"><!--l. 731--><p class="noindent" ><span
>>>>>>> development
class="cmr-12">The communication descriptor of </span><span class="lstinline"></span><span class="cmr-12">The communication descriptor of </span><span class="lstinline"></span><span
class="cmtt-12">a</span><span class="cmtt-12">a</span><span
class="cmr-12">. See the PSBLAS User&#8217;s Guide</span> class="cmr-12">. See the PSBLAS User&#8217;s Guide</span>
@ -178,17 +149,10 @@ class="cmr-12">20</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-13-5-"><td style="white-space:normal; text-align:left;" id="TBL-13-5-1"
class="td11"><!--l. 773--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-5-2"
class="td11"><!--l. 773--><p class="noindent" ><span class="lstinline"></span><span
=======
style="vertical-align:baseline;" id="TBL-12-5-"><td style="white-space:normal; text-align:left;" id="TBL-12-5-1" style="vertical-align:baseline;" id="TBL-12-5-"><td style="white-space:normal; text-align:left;" id="TBL-12-5-1"
class="td11"><!--l. 729--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 733--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-5-2" class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-5-2"
class="td11"><!--l. 729--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 733--><p class="noindent" ><span class="lstinline"></span><span
>>>>>>> development
class="cmtt-12">integer</span><span class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
@ -198,32 +162,19 @@ class="cmtt-12">out</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-13-6-"><td style="white-space:normal; text-align:left;" id="TBL-13-6-1"
class="td11"><!--l. 774--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-6-2"
class="td11"><!--l. 774--><p class="noindent" ><span
=======
style="vertical-align:baseline;" id="TBL-12-6-"><td style="white-space:normal; text-align:left;" id="TBL-12-6-1" style="vertical-align:baseline;" id="TBL-12-6-"><td style="white-space:normal; text-align:left;" id="TBL-12-6-1"
class="td11"><!--l. 730--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-6-2" class="td11"><!--l. 734--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-6-2"
class="td11"><!--l. 730--><p class="noindent" ><span class="td11"><!--l. 734--><p class="noindent" ><span
>>>>>>> development
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><span
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td> class="cmr-12">for details.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-13-7-"><td style="white-space:normal; text-align:left;" id="TBL-13-7-1"
class="td11"><!--l. 775--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">amold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-7-2"
class="td11"><!--l. 775--><p class="noindent" ><span class="lstinline"></span><span
=======
style="vertical-align:baseline;" id="TBL-12-7-"><td style="white-space:normal; text-align:left;" id="TBL-12-7-1" style="vertical-align:baseline;" id="TBL-12-7-"><td style="white-space:normal; text-align:left;" id="TBL-12-7-1"
class="td11"><!--l. 731--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 735--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">amold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-7-2" class="cmtt-12">amold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-7-2"
class="td11"><!--l. 731--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 735--><p class="noindent" ><span class="lstinline"></span><span
>>>>>>> development
class="cmtt-12">class</span><span class="cmtt-12">class</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span class="cmtt-12">psb_</span><span
@ -239,15 +190,9 @@ class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-13-8-"><td style="white-space:normal; text-align:left;" id="TBL-13-8-1"
class="td11"><!--l. 776--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-8-2"
class="td11"><!--l. 776--><p class="noindent" ><span
=======
style="vertical-align:baseline;" id="TBL-12-8-"><td style="white-space:normal; text-align:left;" id="TBL-12-8-1" style="vertical-align:baseline;" id="TBL-12-8-"><td style="white-space:normal; text-align:left;" id="TBL-12-8-1"
class="td11"><!--l. 732--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-8-2" class="td11"><!--l. 736--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-8-2"
class="td11"><!--l. 732--><p class="noindent" ><span class="td11"><!--l. 736--><p class="noindent" ><span
>>>>>>> development
class="cmr-12">The desired dynamic type for internal matrix components; this</span> class="cmr-12">The desired dynamic type for internal matrix components; this</span>
<span <span
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span> class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
@ -259,17 +204,10 @@ class="cmr-12">20</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-13-9-"><td style="white-space:normal; text-align:left;" id="TBL-13-9-1"
class="td11"><!--l. 780--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">vmold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-9-2"
class="td11"><!--l. 780--><p class="noindent" ><span class="lstinline"></span><span
=======
style="vertical-align:baseline;" id="TBL-12-9-"><td style="white-space:normal; text-align:left;" id="TBL-12-9-1" style="vertical-align:baseline;" id="TBL-12-9-"><td style="white-space:normal; text-align:left;" id="TBL-12-9-1"
class="td11"><!--l. 736--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 740--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">vmold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-9-2" class="cmtt-12">vmold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-9-2"
class="td11"><!--l. 736--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 740--><p class="noindent" ><span class="lstinline"></span><span
>>>>>>> development
class="cmtt-12">class</span><span class="cmtt-12">class</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span class="cmtt-12">psb_</span><span
@ -285,30 +223,17 @@ class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-13-10-"><td style="white-space:normal; text-align:left;" id="TBL-13-10-1"
class="td11"><!--l. 781--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-10-2"
class="td11"><!--l. 781--><p class="noindent" ><span
=======
style="vertical-align:baseline;" id="TBL-12-10-"><td style="white-space:normal; text-align:left;" id="TBL-12-10-1" style="vertical-align:baseline;" id="TBL-12-10-"><td style="white-space:normal; text-align:left;" id="TBL-12-10-1"
class="td11"><!--l. 737--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-10-2" class="td11"><!--l. 741--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-10-2"
class="td11"><!--l. 737--><p class="noindent" ><span class="td11"><!--l. 741--><p class="noindent" ><span
>>>>>>> development
class="cmr-12">The desired dynamic type for internal vector components; this</span> class="cmr-12">The desired dynamic type for internal vector components; this</span>
<span <span
class="cmr-12">allows e.g. running on GPUs.</span> </td> class="cmr-12">allows e.g. running on GPUs.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-13-11-"><td style="white-space:normal; text-align:left;" id="TBL-13-11-1"
class="td11"><!--l. 783--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">imold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-11-2"
class="td11"><!--l. 783--><p class="noindent" ><span class="lstinline"></span><span
=======
style="vertical-align:baseline;" id="TBL-12-11-"><td style="white-space:normal; text-align:left;" id="TBL-12-11-1" style="vertical-align:baseline;" id="TBL-12-11-"><td style="white-space:normal; text-align:left;" id="TBL-12-11-1"
class="td11"><!--l. 739--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 743--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">imold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-11-2" class="cmtt-12">imold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-12-11-2"
class="td11"><!--l. 739--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 743--><p class="noindent" ><span class="lstinline"></span><span
>>>>>>> development
class="cmtt-12">class</span><span class="cmtt-12">class</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
class="cmtt-12">psb_i_base_vect_type</span><span class="cmtt-12">psb_i_base_vect_type</span><span
@ -322,24 +247,14 @@ class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-13-12-"><td style="white-space:normal; text-align:left;" id="TBL-13-12-1"
class="td11"><!--l. 784--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-12-2"
class="td11"><!--l. 784--><p class="noindent" ><span
=======
style="vertical-align:baseline;" id="TBL-12-12-"><td style="white-space:normal; text-align:left;" id="TBL-12-12-1" style="vertical-align:baseline;" id="TBL-12-12-"><td style="white-space:normal; text-align:left;" id="TBL-12-12-1"
class="td11"><!--l. 740--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-12-2" class="td11"><!--l. 744--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-12-12-2"
class="td11"><!--l. 740--><p class="noindent" ><span class="td11"><!--l. 744--><p class="noindent" ><span
>>>>>>> development
class="cmr-12">The desired dynamic type for internal integer vector components;</span> class="cmr-12">The desired dynamic type for internal integer vector components;</span>
<span <span
class="cmr-12">this allows e.g. running on GPUs.</span> </td> class="cmr-12">this allows e.g. running on GPUs.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-13-13-"><td style="white-space:normal; text-align:left;" id="TBL-13-13-1"
=======
style="vertical-align:baseline;" id="TBL-12-13-"><td style="white-space:normal; text-align:left;" id="TBL-12-13-1" style="vertical-align:baseline;" id="TBL-12-13-"><td style="white-space:normal; text-align:left;" id="TBL-12-13-1"
>>>>>>> development
class="td11"> </td> </tr></table></div> class="td11"> </td> </tr></table></div>
@ -347,7 +262,7 @@ class="td11"> </td> </tr></table></div>
<!--l. 746--><div class="crosslinks"><p class="noindent"><span <!--l. 750--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu12.html" ><span href="userhtmlsu12.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -364,6 +279,6 @@ class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu11.html" ><span href="userhtmlse5.html#userhtmlsu11.html" ><span
class="cmr-12">up</span></a><span class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<!--l. 746--><p class="indent" > <a <!--l. 750--><p class="indent" > <a
id="tailuserhtmlsu11.html"></a> id="tailuserhtmlsu11.html"></a>
</body></html> </body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 746--><div class="crosslinks"><p class="noindent"><span <!--l. 750--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu13.html" ><span href="userhtmlsu13.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -33,8 +33,8 @@ class="cmr-12">5.5 </span></span> <a
class="cmr-12">Method build</span></h4> class="cmr-12">Method build</span></h4>
<div class="center" <div class="center"
> >
<!--l. 748--><p class="noindent" > <!--l. 752--><p class="noindent" >
<!--l. 749--><p class="noindent" ><span class="lstinline"></span><span <!--l. 753--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">call</span><span class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span class="cmtt-12">p</span><span
@ -54,7 +54,7 @@ class="cmtt-12">,</span><span
class="cmtt-12">imold</span><span class="cmtt-12">imold</span><span
class="cmtt-12">])</span><br /> class="cmtt-12">])</span><br />
</div> </div>
<!--l. 752--><p class="noindent" ><span <!--l. 756--><p class="noindent" ><span
class="cmr-12">This method builds the preconditioner </span><span class="lstinline"></span><span class="cmr-12">This method builds the preconditioner </span><span class="lstinline"></span><span
class="cmtt-12">p</span> <span class="cmtt-12">p</span> <span
class="cmr-12">according to the requirements made by the</span> class="cmr-12">according to the requirements made by the</span>
@ -83,56 +83,17 @@ class="cmtt-12">smoothers_build</span><span
class="cmr-12">, whose nomenclature would however be somewhat unnatural when</span> class="cmr-12">, whose nomenclature would however be somewhat unnatural when</span>
<span <span
class="cmr-12">dealing with simple one-level preconditioners.</span> class="cmr-12">dealing with simple one-level preconditioners.</span>
<!--l. 762--><p class="noindent" ><span <!--l. 766--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-13" class="tabular" <div class="tabular"> <table id="TBL-13" class="tabular"
cellspacing="0" cellpadding="0" cellspacing="0" cellpadding="0"
<<<<<<< HEAD
><colgroup id="TBL-14-1g"><col
id="TBL-14-1"><col
id="TBL-14-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-14-1-"><td style="white-space:normal; text-align:left;" id="TBL-14-1-1"
class="td11"><!--l. 812--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">x</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-1-2"
class="td11"><!--l. 812--><p class="noindent" ><span
class="cmti-12">type</span><span class="lstinline"></span><span
class="cmtt-12">(</span><span
class="cmtt-12">kind_parameter</span><span
class="cmtt-12">)</span><span
class="cmr-12">, dimension(:), intent(in)&#8212;.</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. 813--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-2-2"
class="td11"><!--l. 813--><p class="noindent" ><span
class="cmr-12">The local part of the vector </span><span
class="cmmi-12">x</span><span
class="cmr-12">. Note that </span><span
class="cmti-12">type </span><span
class="cmr-12">and </span><span
class="cmti-12">kind</span><span
class="cmti-12">_parameter</span>
<span
class="cmr-12">must be chosen according to the </span><span class="lstinline"></span><span
class="cmtt-12">real</span><span
class="cmr-12">/</span><span class="lstinline"></span><span
class="cmtt-12">complex</span><span
class="cmr-12">, single/double</span>
<span
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. 816--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">y</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-3-2"
class="td11"><!--l. 816--><p class="noindent" ><span
class="cmti-12">type</span><span class="lstinline"></span><span
=======
><colgroup id="TBL-13-1g"><col ><colgroup id="TBL-13-1g"><col
id="TBL-13-1"><col id="TBL-13-1"><col
id="TBL-13-2"></colgroup><tr 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" style="vertical-align:baseline;" id="TBL-13-1-"><td style="white-space:normal; text-align:left;" id="TBL-13-1-1"
class="td11"><!--l. 765--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 769--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">a</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-1-2" class="cmtt-12">a</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-1-2"
class="td11"><!--l. 765--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 769--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">type</span><span class="cmtt-12">type</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span class="cmtt-12">psb_</span><span
@ -141,29 +102,15 @@ class="cmtt-12">spmat_type</span><span
class="cmtt-12">),</span><span class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span class="cmtt-12">intent</span><span
>>>>>>> development
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
class="cmtt-12">in</span><span class="cmtt-12">in</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-14-4-"><td style="white-space:normal; text-align:left;" id="TBL-14-4-1"
class="td11"><!--l. 817--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-4-2"
class="td11"><!--l. 817--><p class="noindent" ><span
class="cmr-12">The local part of the vector </span><span
class="cmmi-12">y</span><span
class="cmr-12">. Note that </span><span
class="cmti-12">type </span><span
class="cmr-12">and </span><span
class="cmti-12">kind</span><span
class="cmti-12">_parameter</span>
=======
style="vertical-align:baseline;" id="TBL-13-2-"><td style="white-space:normal; text-align:left;" id="TBL-13-2-1" style="vertical-align:baseline;" id="TBL-13-2-"><td style="white-space:normal; text-align:left;" id="TBL-13-2-1"
class="td11"><!--l. 766--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-2-2" class="td11"><!--l. 770--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-2-2"
class="td11"><!--l. 766--><p class="noindent" ><span class="td11"><!--l. 770--><p class="noindent" ><span
class="cmr-12">The sparse matrix structure containing the local part of the matrix</span> class="cmr-12">The sparse matrix structure containing the local part of the matrix</span>
>>>>>>> development
<span <span
class="cmr-12">to be preconditioned. Note that </span><span class="cmr-12">to be preconditioned. Note that </span><span
class="cmti-12">x </span><span class="cmti-12">x </span><span
@ -181,17 +128,10 @@ class="cmr-12">20</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-14-5-"><td style="white-space:normal; text-align:left;" id="TBL-14-5-1"
class="td11"><!--l. 820--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-14-5-2"
class="td11"><!--l. 820--><p class="noindent" ><span class="lstinline"></span><span
=======
style="vertical-align:baseline;" id="TBL-13-3-"><td style="white-space:normal; text-align:left;" id="TBL-13-3-1" style="vertical-align:baseline;" id="TBL-13-3-"><td style="white-space:normal; text-align:left;" id="TBL-13-3-1"
class="td11"><!--l. 770--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 774--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-13-3-2" class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-13-3-2"
class="td11"><!--l. 770--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 774--><p class="noindent" ><span class="lstinline"></span><span
>>>>>>> development
class="cmtt-12">type</span><span class="cmtt-12">type</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
class="cmtt-12">psb_desc_type</span><span class="cmtt-12">psb_desc_type</span><span
@ -203,19 +143,12 @@ class="cmtt-12">in</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-14-6-"><td style="white-space:normal; text-align:left;" id="TBL-14-6-1"
class="td11"><!--l. 821--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-6-2"
class="td11"><!--l. 821--><p class="noindent" ><span
class="cmr-12">The communication descriptor associated to the matrix to be</span>
=======
style="vertical-align:baseline;" id="TBL-13-4-"><td style="white-space:normal; text-align:left;" id="TBL-13-4-1" style="vertical-align:baseline;" id="TBL-13-4-"><td style="white-space:normal; text-align:left;" id="TBL-13-4-1"
class="td11"><!--l. 771--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-4-2" class="td11"><!--l. 775--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-4-2"
class="td11"><!--l. 771--><p class="noindent" ><span class="td11"><!--l. 775--><p class="noindent" ><span
class="cmr-12">The communication descriptor of </span><span class="lstinline"></span><span class="cmr-12">The communication descriptor of </span><span class="lstinline"></span><span
class="cmtt-12">a</span><span class="cmtt-12">a</span><span
class="cmr-12">. See the PSBLAS User&#8217;s Guide</span> class="cmr-12">. See the PSBLAS User&#8217;s Guide</span>
>>>>>>> development
<span <span
class="cmr-12">for details </span><span class="cite"><span class="cmr-12">for details </span><span class="cite"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
@ -224,17 +157,10 @@ class="cmr-12">20</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-14-7-"><td style="white-space:normal; text-align:left;" id="TBL-14-7-1"
class="td11"><!--l. 823--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-7-2"
class="td11"><!--l. 823--><p class="noindent" ><span class="lstinline"></span><span
=======
style="vertical-align:baseline;" id="TBL-13-5-"><td style="white-space:normal; text-align:left;" id="TBL-13-5-1" style="vertical-align:baseline;" id="TBL-13-5-"><td style="white-space:normal; text-align:left;" id="TBL-13-5-1"
class="td11"><!--l. 773--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 777--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-5-2" class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-5-2"
class="td11"><!--l. 773--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 777--><p class="noindent" ><span class="lstinline"></span><span
>>>>>>> development
class="cmtt-12">integer</span><span class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
@ -244,34 +170,20 @@ class="cmtt-12">out</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-14-8-"><td style="white-space:normal; text-align:left;" id="TBL-14-8-1"
class="td11"><!--l. 824--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-8-2"
class="td11"><!--l. 824--><p class="noindent" ><span
=======
style="vertical-align:baseline;" id="TBL-13-6-"><td style="white-space:normal; text-align:left;" id="TBL-13-6-1" style="vertical-align:baseline;" id="TBL-13-6-"><td style="white-space:normal; text-align:left;" id="TBL-13-6-1"
class="td11"><!--l. 774--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-6-2" class="td11"><!--l. 778--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-6-2"
class="td11"><!--l. 774--><p class="noindent" ><span class="td11"><!--l. 778--><p class="noindent" ><span
>>>>>>> development
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><span
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td> class="cmr-12">for details.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-14-9-"><td style="white-space:normal; text-align:left;" id="TBL-14-9-1"
class="td11"><!--l. 825--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">trans</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-9-2"
class="td11"><!--l. 825--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">character</span><span
=======
style="vertical-align:baseline;" id="TBL-13-7-"><td style="white-space:normal; text-align:left;" id="TBL-13-7-1" style="vertical-align:baseline;" id="TBL-13-7-"><td style="white-space:normal; text-align:left;" id="TBL-13-7-1"
class="td11"><!--l. 775--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 779--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">amold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-7-2" class="cmtt-12">amold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-7-2"
class="td11"><!--l. 775--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 779--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span class="cmtt-12">class</span><span
>>>>>>> development
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span class="cmtt-12">psb_</span><span
class="cmti-12">x</span><span class="lstinline"></span><span class="cmti-12">x</span><span class="lstinline"></span><span
@ -286,46 +198,10 @@ class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-14-10-"><td style="white-space:normal; text-align:left;" id="TBL-14-10-1"
class="td11"><!--l. 826--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-10-2"
class="td11"><!--l. 826--><p class="noindent" ><span
class="cmr-12">If </span><span class="lstinline"></span><span
class="cmtt-12">trans</span> <span
class="cmr-12">= </span><span class="lstinline"></span><span
class="cmtt-12">&#8217;</span><span
class="cmtt-12">N</span><span
class="cmtt-12">&#8217;</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#8217;</span><span
class="cmtt-12">n</span><span
class="cmtt-12">&#8217;</span> <span
class="cmr-12">then </span><span
class="cmmi-12">op</span><span
class="cmr-12">(</span><span
class="cmmi-12">B</span><sup><span
class="cmsy-8">-</span><span
class="cmr-8">1</span></sup><span
class="cmr-12">) = </span><span
class="cmmi-12">B</span><sup><span
class="cmsy-8">-</span><span
class="cmr-8">1</span></sup><span
class="cmr-12">; if </span><span class="lstinline"></span><span
class="cmtt-12">trans</span> <span
class="cmr-12">= </span><span class="lstinline"></span><span
class="cmtt-12">&#8217;</span><span
class="cmtt-12">T</span><span
class="cmtt-12">&#8217;</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#8217;</span><span
class="cmtt-12">t</span><span
class="cmtt-12">&#8217;</span>
=======
style="vertical-align:baseline;" id="TBL-13-8-"><td style="white-space:normal; text-align:left;" id="TBL-13-8-1" style="vertical-align:baseline;" id="TBL-13-8-"><td style="white-space:normal; text-align:left;" id="TBL-13-8-1"
class="td11"><!--l. 776--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-8-2" class="td11"><!--l. 780--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-8-2"
class="td11"><!--l. 776--><p class="noindent" ><span class="td11"><!--l. 780--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal matrix components; this</span> class="cmr-12">The desired dynamic type for internal matrix components; this</span>
>>>>>>> development
<span <span
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span> class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
<span <span
@ -336,36 +212,16 @@ class="cmr-12">20</span></a><span
class="cmr-12">]</span></span><span class="cmr-12">]</span></span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-14-11-"><td style="white-space:normal; text-align:left;" id="TBL-14-11-1"
class="td11"><!--l. 830--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">work</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-11-2"
class="td11"><!--l. 830--><p class="noindent" ><span
class="cmti-12">type</span><span class="lstinline"></span><span
class="cmtt-12">(</span><span
class="cmtt-12">kind_parameter</span><span
class="cmtt-12">)</span><span
class="cmr-12">, dimension(:), optional, target&#8212;.</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. 831--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-12-2"
class="td11"><!--l. 831--><p class="noindent" ><span
class="cmr-12">Workspace. Its size should be at least </span><span class="lstinline"></span><span
class="cmtt-12">4</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">*</span><span
=======
style="vertical-align:baseline;" id="TBL-13-9-"><td style="white-space:normal; text-align:left;" id="TBL-13-9-1" style="vertical-align:baseline;" id="TBL-13-9-"><td style="white-space:normal; text-align:left;" id="TBL-13-9-1"
class="td11"><!--l. 780--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 784--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">vmold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-9-2" class="cmtt-12">vmold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-9-2"
class="td11"><!--l. 780--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 784--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span class="cmtt-12">class</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span class="cmtt-12">psb_</span><span
class="cmti-12">x</span><span class="lstinline"></span><span class="cmti-12">x</span><span class="lstinline"></span><span
class="cmtt-12">_base_vect_type</span><span class="cmtt-12">_base_vect_type</span><span
class="cmtt-12">),</span><span class="cmtt-12">),</span><span
>>>>>>> development
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
@ -376,16 +232,16 @@ class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-10-"><td style="white-space:normal; text-align:left;" id="TBL-13-10-1" style="vertical-align:baseline;" id="TBL-13-10-"><td style="white-space:normal; text-align:left;" id="TBL-13-10-1"
class="td11"><!--l. 781--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-10-2" class="td11"><!--l. 785--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-10-2"
class="td11"><!--l. 781--><p class="noindent" ><span class="td11"><!--l. 785--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal vector components; this</span> class="cmr-12">The desired dynamic type for internal vector components; this</span>
<span <span
class="cmr-12">allows e.g. running on GPUs.</span> </td> class="cmr-12">allows e.g. running on GPUs.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-11-"><td style="white-space:normal; text-align:left;" id="TBL-13-11-1" style="vertical-align:baseline;" id="TBL-13-11-"><td style="white-space:normal; text-align:left;" id="TBL-13-11-1"
class="td11"><!--l. 783--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 787--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">imold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-11-2" class="cmtt-12">imold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-13-11-2"
class="td11"><!--l. 783--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 787--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span class="cmtt-12">class</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
class="cmtt-12">psb_i_base_vect_type</span><span class="cmtt-12">psb_i_base_vect_type</span><span
@ -400,19 +256,15 @@ class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-13-12-"><td style="white-space:normal; text-align:left;" id="TBL-13-12-1" style="vertical-align:baseline;" id="TBL-13-12-"><td style="white-space:normal; text-align:left;" id="TBL-13-12-1"
class="td11"><!--l. 784--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-12-2" class="td11"><!--l. 788--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-13-12-2"
class="td11"><!--l. 784--><p class="noindent" ><span class="td11"><!--l. 788--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal integer vector components;</span> class="cmr-12">The desired dynamic type for internal integer vector components;</span>
<span <span
class="cmr-12">this allows e.g. running on GPUs.</span> </td> class="cmr-12">this allows e.g. running on GPUs.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-14-13-"><td style="white-space:normal; text-align:left;" id="TBL-14-13-1"
=======
style="vertical-align:baseline;" id="TBL-13-13-"><td style="white-space:normal; text-align:left;" id="TBL-13-13-1" style="vertical-align:baseline;" id="TBL-13-13-"><td style="white-space:normal; text-align:left;" id="TBL-13-13-1"
>>>>>>> development
class="td11"> </td> </tr></table></div> class="td11"> </td> </tr></table></div>
<!--l. 789--><p class="noindent" ><span <!--l. 793--><p class="noindent" ><span
class="cmr-12">The method can be used to build multilevel preconditioners too.</span> class="cmr-12">The method can be used to build multilevel preconditioners too.</span>
@ -420,7 +272,7 @@ class="cmr-12">The method can be used to build multilevel preconditioners too.</
<!--l. 794--><div class="crosslinks"><p class="noindent"><span <!--l. 798--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu13.html" ><span href="userhtmlsu13.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -437,6 +289,6 @@ class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu12.html" ><span href="userhtmlse5.html#userhtmlsu12.html" ><span
class="cmr-12">up</span></a><span class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<!--l. 794--><p class="indent" > <a <!--l. 798--><p class="indent" > <a
id="tailuserhtmlsu12.html"></a> id="tailuserhtmlsu12.html"></a>
</body></html> </body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 794--><div class="crosslinks"><p class="noindent"><span <!--l. 798--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu14.html" ><span href="userhtmlsu14.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -33,8 +33,8 @@ class="cmr-12">5.6 </span></span> <a
class="cmr-12">Method apply</span></h4> class="cmr-12">Method apply</span></h4>
<div class="center" <div class="center"
> >
<!--l. 796--><p class="noindent" > <!--l. 800--><p class="noindent" >
<!--l. 797--><p class="noindent" ><span class="lstinline"></span><span <!--l. 801--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">call</span><span class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span class="cmtt-12">p</span><span
@ -55,7 +55,7 @@ class="cmtt-12">,</span><span
class="cmtt-12">work</span><span class="cmtt-12">work</span><span
class="cmtt-12">])</span><br /> class="cmtt-12">])</span><br />
</div> </div>
<!--l. 800--><p class="noindent" ><span <!--l. 804--><p class="noindent" ><span
class="cmr-12">This method computes </span><span class="cmr-12">This method computes </span><span
class="cmmi-12">y </span><span class="cmmi-12">y </span><span
class="cmr-12">= </span><span class="cmr-12">= </span><span
@ -89,26 +89,17 @@ class="cmtt-12">psb_krylov</span> <span
class="cmr-12">and hence it is</span> class="cmr-12">and hence it is</span>
<span <span
class="cmr-12">completely transparent to the user.</span> class="cmr-12">completely transparent to the user.</span>
<!--l. 809--><p class="noindent" ><span <!--l. 813--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-14" class="tabular" <div class="tabular"> <table id="TBL-14" class="tabular"
cellspacing="0" cellpadding="0" cellspacing="0" cellpadding="0"
<<<<<<< HEAD
><colgroup id="TBL-15-1g"><col
id="TBL-15-1"><col
id="TBL-15-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-15-1-"><td style="white-space:normal; text-align:left;" id="TBL-15-1-1"
class="td11"><!--l. 852--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-15-1-2"
class="td11"><!--l. 852--><p class="noindent" ><span class="lstinline"></span><span
=======
><colgroup id="TBL-14-1g"><col ><colgroup id="TBL-14-1g"><col
id="TBL-14-1"><col id="TBL-14-1"><col
id="TBL-14-2"></colgroup><tr 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" style="vertical-align:baseline;" id="TBL-14-1-"><td style="white-space:normal; text-align:left;" id="TBL-14-1-1"
class="td11"><!--l. 812--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 816--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">x</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-1-2" class="cmtt-12">x</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-1-2"
class="td11"><!--l. 812--><p class="noindent" ><span class="td11"><!--l. 816--><p class="noindent" ><span
class="cmti-12">type</span><span class="lstinline"></span><span class="cmti-12">type</span><span class="lstinline"></span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
class="cmtt-12">kind_parameter</span><span class="cmtt-12">kind_parameter</span><span
@ -116,8 +107,8 @@ class="cmtt-12">)</span><span
class="cmr-12">, dimension(:), intent(in)&#8212;.</span> </td> class="cmr-12">, dimension(:), intent(in)&#8212;.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-2-"><td style="white-space:normal; text-align:left;" id="TBL-14-2-1" style="vertical-align:baseline;" id="TBL-14-2-"><td style="white-space:normal; text-align:left;" id="TBL-14-2-1"
class="td11"><!--l. 813--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-2-2" class="td11"><!--l. 817--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-2-2"
class="td11"><!--l. 813--><p class="noindent" ><span class="td11"><!--l. 817--><p class="noindent" ><span
class="cmr-12">The local part of the vector </span><span class="cmr-12">The local part of the vector </span><span
class="cmmi-12">x</span><span class="cmmi-12">x</span><span
class="cmr-12">. Note that </span><span class="cmr-12">. Note that </span><span
@ -135,9 +126,9 @@ class="cmr-12">, single/double</span>
class="cmr-12">precision version of AMG4PSBLAS under use.</span> </td> class="cmr-12">precision version of AMG4PSBLAS under use.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-3-"><td style="white-space:normal; text-align:left;" id="TBL-14-3-1" style="vertical-align:baseline;" id="TBL-14-3-"><td style="white-space:normal; text-align:left;" id="TBL-14-3-1"
class="td11"><!--l. 816--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 820--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">y</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-3-2" class="cmtt-12">y</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-3-2"
class="td11"><!--l. 816--><p class="noindent" ><span class="td11"><!--l. 820--><p class="noindent" ><span
class="cmti-12">type</span><span class="lstinline"></span><span class="cmti-12">type</span><span class="lstinline"></span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
class="cmtt-12">kind_parameter</span><span class="cmtt-12">kind_parameter</span><span
@ -145,8 +136,8 @@ class="cmtt-12">)</span><span
class="cmr-12">, dimension(:), intent(out)&#8212;.</span> </td> class="cmr-12">, dimension(:), intent(out)&#8212;.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-4-"><td style="white-space:normal; text-align:left;" id="TBL-14-4-1" style="vertical-align:baseline;" id="TBL-14-4-"><td style="white-space:normal; text-align:left;" id="TBL-14-4-1"
class="td11"><!--l. 817--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-4-2" class="td11"><!--l. 821--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-4-2"
class="td11"><!--l. 817--><p class="noindent" ><span class="td11"><!--l. 821--><p class="noindent" ><span
class="cmr-12">The local part of the vector </span><span class="cmr-12">The local part of the vector </span><span
class="cmmi-12">y</span><span class="cmmi-12">y</span><span
class="cmr-12">. Note that </span><span class="cmr-12">. Note that </span><span
@ -164,9 +155,9 @@ class="cmr-12">, single/double</span>
class="cmr-12">precision version of AMG4PSBLAS under use.</span> </td> class="cmr-12">precision version of AMG4PSBLAS under use.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-5-"><td style="white-space:normal; text-align:left;" id="TBL-14-5-1" style="vertical-align:baseline;" id="TBL-14-5-"><td style="white-space:normal; text-align:left;" id="TBL-14-5-1"
class="td11"><!--l. 820--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 824--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-14-5-2" class="cmtt-12">desc_a</span></td><td style="white-space:normal; text-align:left;" id="TBL-14-5-2"
class="td11"><!--l. 820--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 824--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">type</span><span class="cmtt-12">type</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
class="cmtt-12">psb_desc_type</span><span class="cmtt-12">psb_desc_type</span><span
@ -179,17 +170,16 @@ class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-6-"><td style="white-space:normal; text-align:left;" id="TBL-14-6-1" style="vertical-align:baseline;" id="TBL-14-6-"><td style="white-space:normal; text-align:left;" id="TBL-14-6-1"
class="td11"><!--l. 821--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-6-2" class="td11"><!--l. 825--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-6-2"
class="td11"><!--l. 821--><p class="noindent" ><span class="td11"><!--l. 825--><p class="noindent" ><span
class="cmr-12">The communication descriptor associated to the matrix to be</span> class="cmr-12">The communication descriptor associated to the matrix to be</span>
<span <span
class="cmr-12">preconditioned.</span> </td> class="cmr-12">preconditioned.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-7-"><td style="white-space:normal; text-align:left;" id="TBL-14-7-1" style="vertical-align:baseline;" id="TBL-14-7-"><td style="white-space:normal; text-align:left;" id="TBL-14-7-1"
class="td11"><!--l. 823--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 827--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-7-2" class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-7-2"
class="td11"><!--l. 823--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 827--><p class="noindent" ><span class="lstinline"></span><span
>>>>>>> development
class="cmtt-12">integer</span><span class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
@ -199,15 +189,9 @@ class="cmtt-12">out</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-15-2-"><td style="white-space:normal; text-align:left;" id="TBL-15-2-1"
class="td11"><!--l. 853--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-2-2"
class="td11"><!--l. 853--><p class="noindent" ><span
=======
style="vertical-align:baseline;" id="TBL-14-8-"><td style="white-space:normal; text-align:left;" id="TBL-14-8-1" style="vertical-align:baseline;" id="TBL-14-8-"><td style="white-space:normal; text-align:left;" id="TBL-14-8-1"
class="td11"><!--l. 824--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-8-2" class="td11"><!--l. 828--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-8-2"
class="td11"><!--l. 824--><p class="noindent" ><span class="td11"><!--l. 828--><p class="noindent" ><span
>>>>>>> development
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><span
@ -215,9 +199,9 @@ class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td> class="cmr-12">for details.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-9-"><td style="white-space:normal; text-align:left;" id="TBL-14-9-1" style="vertical-align:baseline;" id="TBL-14-9-"><td style="white-space:normal; text-align:left;" id="TBL-14-9-1"
class="td11"><!--l. 825--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 829--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">trans</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-9-2" class="cmtt-12">trans</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-9-2"
class="td11"><!--l. 825--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 829--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">character</span><span class="cmtt-12">character</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
class="cmtt-12">len</span><span class="cmtt-12">len</span><span
@ -232,8 +216,8 @@ class="cmtt-12">in</span><span
class="cmtt-12">).</span> </td> class="cmtt-12">).</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-10-"><td style="white-space:normal; text-align:left;" id="TBL-14-10-1" style="vertical-align:baseline;" id="TBL-14-10-"><td style="white-space:normal; text-align:left;" id="TBL-14-10-1"
class="td11"><!--l. 826--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-10-2" class="td11"><!--l. 830--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-10-2"
class="td11"><!--l. 826--><p class="noindent" ><span class="td11"><!--l. 830--><p class="noindent" ><span
class="cmr-12">If </span><span class="lstinline"></span><span class="cmr-12">If </span><span class="lstinline"></span><span
class="cmtt-12">trans</span> <span class="cmtt-12">trans</span> <span
class="cmr-12">= </span><span class="lstinline"></span><span class="cmr-12">= </span><span class="lstinline"></span><span
@ -307,9 +291,9 @@ class="cmr-8">1</span></sup><span
class="cmr-12">).</span> </td> class="cmr-12">).</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-11-"><td style="white-space:normal; text-align:left;" id="TBL-14-11-1" style="vertical-align:baseline;" id="TBL-14-11-"><td style="white-space:normal; text-align:left;" id="TBL-14-11-1"
class="td11"><!--l. 830--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 834--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">work</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-11-2" class="cmtt-12">work</span> </td><td style="white-space:normal; text-align:left;" id="TBL-14-11-2"
class="td11"><!--l. 830--><p class="noindent" ><span class="td11"><!--l. 834--><p class="noindent" ><span
class="cmti-12">type</span><span class="lstinline"></span><span class="cmti-12">type</span><span class="lstinline"></span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
class="cmtt-12">kind_parameter</span><span class="cmtt-12">kind_parameter</span><span
@ -317,8 +301,8 @@ class="cmtt-12">)</span><span
class="cmr-12">, dimension(:), optional, target&#8212;.</span> </td> class="cmr-12">, dimension(:), optional, target&#8212;.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-14-12-"><td style="white-space:normal; text-align:left;" id="TBL-14-12-1" style="vertical-align:baseline;" id="TBL-14-12-"><td style="white-space:normal; text-align:left;" id="TBL-14-12-1"
class="td11"><!--l. 831--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-12-2" class="td11"><!--l. 835--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-14-12-2"
class="td11"><!--l. 831--><p class="noindent" ><span class="td11"><!--l. 835--><p class="noindent" ><span
class="cmr-12">Workspace. Its size should be at least </span><span class="lstinline"></span><span class="cmr-12">Workspace. Its size should be at least </span><span class="lstinline"></span><span
class="cmtt-12">4</span><span class="cmtt-12">4</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
@ -344,11 +328,7 @@ class="cmr-12">,</span>
<span <span
class="cmr-12">single/double precision version of AMG4PSBLAS under use.</span> </td> class="cmr-12">single/double precision version of AMG4PSBLAS under use.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-15-3-"><td style="white-space:normal; text-align:left;" id="TBL-15-3-1"
=======
style="vertical-align:baseline;" id="TBL-14-13-"><td style="white-space:normal; text-align:left;" id="TBL-14-13-1" style="vertical-align:baseline;" id="TBL-14-13-"><td style="white-space:normal; text-align:left;" id="TBL-14-13-1"
>>>>>>> development
class="td11"> </td> </tr></table></div> class="td11"> </td> </tr></table></div>
@ -359,7 +339,7 @@ class="td11"> </td> </tr></table></div>
<!--l. 840--><div class="crosslinks"><p class="noindent"><span <!--l. 844--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu14.html" ><span href="userhtmlsu14.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -376,6 +356,6 @@ class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu13.html" ><span href="userhtmlse5.html#userhtmlsu13.html" ><span
class="cmr-12">up</span></a><span class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<!--l. 840--><p class="indent" > <a <!--l. 844--><p class="indent" > <a
id="tailuserhtmlsu13.html"></a> id="tailuserhtmlsu13.html"></a>
</body></html> </body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 840--><div class="crosslinks"><p class="noindent"><span <!--l. 844--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu15.html" ><span href="userhtmlsu15.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -33,8 +33,8 @@ class="cmr-12">5.7 </span></span> <a
class="cmr-12">Method free</span></h4> class="cmr-12">Method free</span></h4>
<div class="center" <div class="center"
> >
<!--l. 842--><p class="noindent" > <!--l. 846--><p class="noindent" >
<!--l. 843--><p class="noindent" ><span class="lstinline"></span><span <!--l. 847--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">call</span><span class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span class="cmtt-12">p</span><span
@ -46,31 +46,21 @@ class="cmtt-12">,</span><span
class="cmtt-12">info</span><span class="cmtt-12">info</span><span
class="cmtt-12">)</span><br /> class="cmtt-12">)</span><br />
</div> </div>
<!--l. 846--><p class="noindent" ><span <!--l. 850--><p class="noindent" ><span
class="cmr-12">This method deallocates the preconditioner data structure </span><span class="lstinline"></span><span class="cmr-12">This method deallocates the preconditioner data structure </span><span class="lstinline"></span><span
class="cmtt-12">p</span><span class="cmtt-12">p</span><span
class="cmr-12">.</span> class="cmr-12">.</span>
<!--l. 849--><p class="noindent" ><span <!--l. 853--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-15" class="tabular" <div class="tabular"> <table id="TBL-15" class="tabular"
cellspacing="0" cellpadding="0" cellspacing="0" cellpadding="0"
<<<<<<< HEAD
><colgroup id="TBL-16-1g"><col
id="TBL-16-1"><col
id="TBL-16-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-16-1-"><td style="white-space:normal; text-align:left;" id="TBL-16-1-1"
class="td11"><!--l. 873--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-1-2"
class="td11"><!--l. 873--><p class="noindent" ><span class="lstinline"></span><span
=======
><colgroup id="TBL-15-1g"><col ><colgroup id="TBL-15-1g"><col
id="TBL-15-1"><col id="TBL-15-1"><col
id="TBL-15-2"></colgroup><tr 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" style="vertical-align:baseline;" id="TBL-15-1-"><td style="white-space:normal; text-align:left;" id="TBL-15-1-1"
class="td11"><!--l. 852--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 856--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-15-1-2" class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-15-1-2"
class="td11"><!--l. 852--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 856--><p class="noindent" ><span class="lstinline"></span><span
>>>>>>> development
class="cmtt-12">integer</span><span class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
@ -80,109 +70,26 @@ class="cmtt-12">out</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-16-2-"><td style="white-space:normal; text-align:left;" id="TBL-16-2-1"
class="td11"><!--l. 874--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-2-2"
class="td11"><!--l. 874--><p class="noindent" ><span
=======
style="vertical-align:baseline;" id="TBL-15-2-"><td style="white-space:normal; text-align:left;" id="TBL-15-2-1" style="vertical-align:baseline;" id="TBL-15-2-"><td style="white-space:normal; text-align:left;" id="TBL-15-2-1"
class="td11"><!--l. 853--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-2-2" class="td11"><!--l. 857--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-15-2-2"
class="td11"><!--l. 853--><p class="noindent" ><span class="td11"><!--l. 857--><p class="noindent" ><span
>>>>>>> development
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><span
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
<<<<<<< HEAD
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. 875--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">iout</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-3-2"
class="td11"><!--l. 875--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</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. 876--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-4-2"
class="td11"><!--l. 876--><p class="noindent" ><span
class="cmr-12">The id of the file where the preconditioner description will be</span>
<span
class="cmr-12">printed; the default is the standard output.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-16-5-"><td style="white-space:normal; text-align:left;" id="TBL-16-5-1"
class="td11"><!--l. 878--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">root</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-5-2"
class="td11"><!--l. 878--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-16-6-"><td style="white-space:normal; text-align:left;" id="TBL-16-6-1"
class="td11"><!--l. 879--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-6-2"
class="td11"><!--l. 879--><p class="noindent" ><span
class="cmr-12">The id of the process where the preconditioner description</span>
<span
class="cmr-12">will be printed; the default is </span><span class="lstinline"></span><span
class="cmtt-12">psb_root_</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-16-7-"><td style="white-space:normal; text-align:left;" id="TBL-16-7-1"
class="td11"><!--l. 881--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">verbosity</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-7-2"
class="td11"><!--l. 881--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-16-8-"><td style="white-space:normal; text-align:left;" id="TBL-16-8-1"
class="td11"><!--l. 882--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-8-2"
class="td11"><!--l. 882--><p class="noindent" ><span
class="cmr-12">The verbosity level of the description. Default value is 0. For</span>
<span
class="cmr-12">values higher than 0, it prints out further information, e.g., for</span>
=======
class="cmr-12">for</span> class="cmr-12">for</span>
>>>>>>> development
<span <span
class="cmr-12">details.</span> </td> class="cmr-12">details.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-16-9-"><td style="white-space:normal; text-align:left;" id="TBL-16-9-1"
class="td11"> </td> </tr></table></div>
=======
style="vertical-align:baseline;" id="TBL-15-3-"><td style="white-space:normal; text-align:left;" id="TBL-15-3-1" style="vertical-align:baseline;" id="TBL-15-3-"><td style="white-space:normal; text-align:left;" id="TBL-15-3-1"
class="td11"> </td> </tr></table></div> class="td11"> </td> </tr></table></div>
>>>>>>> development
<!--l. 859--><div class="crosslinks"><p class="noindent"><span <!--l. 863--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu15.html" ><span href="userhtmlsu15.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -199,6 +106,6 @@ class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu14.html" ><span href="userhtmlse5.html#userhtmlsu14.html" ><span
class="cmr-12">up</span></a><span class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<!--l. 859--><p class="indent" > <a <!--l. 863--><p class="indent" > <a
id="tailuserhtmlsu14.html"></a> id="tailuserhtmlsu14.html"></a>
</body></html> </body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 859--><div class="crosslinks"><p class="noindent"><span <!--l. 863--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu16.html" ><span href="userhtmlsu16.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -33,8 +33,8 @@ class="cmr-12">5.8 </span></span> <a
class="cmr-12">Method descr</span></h4> class="cmr-12">Method descr</span></h4>
<div class="center" <div class="center"
> >
<!--l. 861--><p class="noindent" > <!--l. 865--><p class="noindent" >
<!--l. 862--><p class="noindent" ><span class="lstinline"></span><span <!--l. 866--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">call</span><span class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span class="cmtt-12">p</span><span
@ -54,7 +54,7 @@ class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">verbosity</span><span class="cmtt-12">verbosity</span><span
class="cmtt-12">])</span><br /> class="cmtt-12">])</span><br />
</div> </div>
<!--l. 865--><p class="noindent" ><span <!--l. 869--><p class="noindent" ><span
class="cmr-12">This method prints a description of the preconditioner </span><span class="lstinline"></span><span class="cmr-12">This method prints a description of the preconditioner </span><span class="lstinline"></span><span
class="cmtt-12">p</span> <span class="cmtt-12">p</span> <span
class="cmr-12">to the standard output or to a</span> class="cmr-12">to the standard output or to a</span>
@ -68,27 +68,17 @@ class="cmtt-12">build</span><span
class="cmr-12">, have</span> class="cmr-12">, have</span>
<span <span
class="cmr-12">been called.</span> class="cmr-12">been called.</span>
<!--l. 870--><p class="noindent" ><span <!--l. 874--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-16" class="tabular" <div class="tabular"> <table id="TBL-16" class="tabular"
cellspacing="0" cellpadding="0" cellspacing="0" cellpadding="0"
<<<<<<< HEAD
><colgroup id="TBL-17-1g"><col
id="TBL-17-1"><col
id="TBL-17-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-17-1-"><td style="white-space:normal; text-align:left;" id="TBL-17-1-1"
class="td11"><!--l. 905--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-17-1-2"
class="td11"><!--l. 905--><p class="noindent" ><span class="lstinline"></span><span
=======
><colgroup id="TBL-16-1g"><col ><colgroup id="TBL-16-1g"><col
id="TBL-16-1"><col id="TBL-16-1"><col
id="TBL-16-2"></colgroup><tr 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" style="vertical-align:baseline;" id="TBL-16-1-"><td style="white-space:normal; text-align:left;" id="TBL-16-1-1"
class="td11"><!--l. 873--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 877--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-1-2" class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-1-2"
class="td11"><!--l. 873--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 877--><p class="noindent" ><span class="lstinline"></span><span
>>>>>>> development
class="cmtt-12">integer</span><span class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
@ -98,40 +88,21 @@ class="cmtt-12">out</span><span
class="cmtt-12">)</span><span class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-17-2-"><td style="white-space:normal; text-align:left;" id="TBL-17-2-1"
class="td11"><!--l. 906--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-2-2"
class="td11"><!--l. 906--><p class="noindent" ><span
=======
style="vertical-align:baseline;" id="TBL-16-2-"><td style="white-space:normal; text-align:left;" id="TBL-16-2-1" style="vertical-align:baseline;" id="TBL-16-2-"><td style="white-space:normal; text-align:left;" id="TBL-16-2-1"
class="td11"><!--l. 874--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-2-2" class="td11"><!--l. 878--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-2-2"
class="td11"><!--l. 874--><p class="noindent" ><span class="td11"><!--l. 878--><p class="noindent" ><span
>>>>>>> development
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><span
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span></td> class="cmr-12">for details.</span></td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-17-3-"><td style="white-space:normal; text-align:left;" id="TBL-17-3-1"
class="td11"><!--l. 907--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">amold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-17-3-2"
class="td11"><!--l. 907--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span
class="cmti-12">x</span><span class="lstinline"></span><span
class="cmtt-12">_base_sparse_mat</span><span
class="cmtt-12">),</span><span
=======
style="vertical-align:baseline;" id="TBL-16-3-"><td style="white-space:normal; text-align:left;" id="TBL-16-3-1" style="vertical-align:baseline;" id="TBL-16-3-"><td style="white-space:normal; text-align:left;" id="TBL-16-3-1"
class="td11"><!--l. 875--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 879--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">iout</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-3-2" class="cmtt-12">iout</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-3-2"
class="td11"><!--l. 875--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 879--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
>>>>>>> development
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
@ -141,355 +112,55 @@ class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-17-4-"><td style="white-space:normal; text-align:left;" id="TBL-17-4-1"
class="td11"><!--l. 908--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-4-2"
class="td11"><!--l. 908--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal matrix components; this</span>
=======
style="vertical-align:baseline;" id="TBL-16-4-"><td style="white-space:normal; text-align:left;" id="TBL-16-4-1" style="vertical-align:baseline;" id="TBL-16-4-"><td style="white-space:normal; text-align:left;" id="TBL-16-4-1"
class="td11"><!--l. 876--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-4-2" class="td11"><!--l. 880--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-4-2"
class="td11"><!--l. 876--><p class="noindent" ><span class="td11"><!--l. 880--><p class="noindent" ><span
class="cmr-12">The id of the file where the preconditioner description will be</span> class="cmr-12">The id of the file where the preconditioner description will be</span>
>>>>>>> development
<span <span
class="cmr-12">printed; the default is the standard output.</span> </td> class="cmr-12">printed; the default is the standard output.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
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. 915--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.2 </span></span> <a
id="x25-260005.9.2"></a><span
class="cmr-12">Method: clone</span></h5>
<div class="center"
>
<!--l. 917--><p class="noindent" >
<!--l. 918--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
class="cmtt-12">%</span><span
class="cmtt-12">clone</span><span
class="cmtt-12">(</span><span
class="cmtt-12">pout</span><span
class="cmtt-12">,</span><span
class="cmtt-12">info</span><span
class="cmtt-12">)</span><br />
</div>
<!--l. 921--><p class="noindent" ><span
class="cmr-12">Create a (deep) copy of the preconditioner object.</span>
<!--l. 924--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-18" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-18-1g"><col
id="TBL-18-1"><col
id="TBL-18-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-18-1-"><td style="white-space:normal; text-align:left;" id="TBL-18-1-1"
class="td11"><!--l. 927--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">pout</span> </td><td style="white-space:normal; text-align:left;" id="TBL-18-1-2"
class="td11"><!--l. 927--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">type</span><span
class="cmtt-12">(</span><span
class="cmtt-12">amg_</span><span
class="cmti-12">x</span><span class="lstinline"></span><span
class="cmtt-12">prec_type</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">out</span><span
class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-18-2-"><td style="white-space:normal; text-align:left;" id="TBL-18-2-1"
class="td11"><!--l. 928--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-2-2"
class="td11"><!--l. 928--><p class="noindent" ><span
class="cmr-12">The copy of the preconditioner data structure. Note that </span><span
class="cmti-12">x </span><span
class="cmr-12">must</span>
<span
class="cmr-12">be chosen according to the </span><span class="lstinline"></span><span
class="cmtt-12">real</span><span
class="cmr-12">/</span><span class="lstinline"></span><span
class="cmtt-12">complex</span><span
class="cmr-12">, single/double precision</span>
<span
class="cmr-12">version of AMG4PSBLAS under use.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-18-3-"><td style="white-space:normal; text-align:left;" id="TBL-18-3-1"
class="td11"><!--l. 931--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-18-3-2"
class="td11"><!--l. 931--><p class="noindent" ><span class="lstinline"></span><span
=======
style="vertical-align:baseline;" id="TBL-16-5-"><td style="white-space:normal; text-align:left;" id="TBL-16-5-1" style="vertical-align:baseline;" id="TBL-16-5-"><td style="white-space:normal; text-align:left;" id="TBL-16-5-1"
class="td11"><!--l. 878--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 882--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">root</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-5-2" class="cmtt-12">root</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-5-2"
class="td11"><!--l. 878--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 882--><p class="noindent" ><span class="lstinline"></span><span
>>>>>>> development
class="cmtt-12">integer</span><span class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
<<<<<<< HEAD
class="cmtt-12">out</span><span
class="cmtt-12">)</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. 932--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-4-2"
class="td11"><!--l. 932--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x27-310007"><span
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-18-5-"><td style="white-space:normal; text-align:left;" id="TBL-18-5-1"
class="td11"> </td> </tr></table></div>
<!--l. 937--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.3 </span></span> <a
id="x25-270005.9.3"></a><span
class="cmr-12">Method: sizeof</span></h5>
<div class="center"
>
<!--l. 939--><p class="noindent" >
<!--l. 940--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">sz</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">=</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
class="cmtt-12">%</span><span
class="cmtt-12">sizeof</span><span
class="cmtt-12">([</span><span
class="cmtt-12">global</span><span
class="cmtt-12">])</span><br />
</div>
<div class="tabular"> <table id="TBL-19" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-19-1g"><col
id="TBL-19-1"><col
id="TBL-19-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-19-1-"><td style="white-space:normal; text-align:left;" id="TBL-19-1-1"
class="td11"><!--l. 944--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">global</span> </td> <td style="white-space:normal; text-align:left;" id="TBL-19-1-2"
class="td11"><!--l. 944--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">logical</span><span
class="cmtt-12">,</span><span
=======
class="cmtt-12">in</span><span class="cmtt-12">in</span><span
class="cmtt-12">),</span><span class="cmtt-12">),</span><span
>>>>>>> development
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-19-2-"><td style="white-space:normal; text-align:left;" id="TBL-19-2-1"
class="td11"><!--l. 945--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-2-2"
class="td11"><!--l. 945--><p class="noindent" ><span
class="cmr-12">Whether the global or local preconditioner memory occupation is</span>
=======
style="vertical-align:baseline;" id="TBL-16-6-"><td style="white-space:normal; text-align:left;" id="TBL-16-6-1" style="vertical-align:baseline;" id="TBL-16-6-"><td style="white-space:normal; text-align:left;" id="TBL-16-6-1"
class="td11"><!--l. 879--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-6-2" class="td11"><!--l. 883--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-6-2"
class="td11"><!--l. 879--><p class="noindent" ><span class="td11"><!--l. 883--><p class="noindent" ><span
class="cmr-12">The id of the process where the preconditioner description</span> class="cmr-12">The id of the process where the preconditioner description</span>
>>>>>>> development
<span <span
class="cmr-12">will be printed; the default is </span><span class="lstinline"></span><span class="cmr-12">will be printed; the default is </span><span class="lstinline"></span><span
class="cmtt-12">psb_root_</span><span class="cmtt-12">psb_root_</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-19-3-"><td style="white-space:normal; text-align:left;" id="TBL-19-3-1"
class="td11"> </td> </tr></table>
</div> <span
class="cmr-12">Return memory footprint in bytes.</span>
<!--l. 952--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.4 </span></span> <a
id="x25-280005.9.4"></a><span
class="cmr-12">Method: allocate</span><span
class="cmr-12">_wrk</span></h5>
<div class="center"
>
<!--l. 954--><p class="noindent" >
<!--l. 955--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
class="cmtt-12">%</span><span
class="cmtt-12">allocate_wrk</span><span
class="cmtt-12">(</span><span
class="cmtt-12">info</span><span
class="cmtt-12">[,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">vmold</span><span
class="cmtt-12">])</span><br />
</div>
<!--l. 958--><p class="noindent" ><span
class="cmr-12">Allocate internal work vectors. Each application of the preconditioner uses a number of</span>
<span
class="cmr-12">work vectors which are allocated internally as necessary; therefore allocation and</span>
<span
class="cmr-12">deallocation of memory occurs multiple times during the execution of a Krylov method.</span>
<span
class="cmr-12">In most cases this strategy is perfectly acceptable, but on some platforms, most</span>
<span
class="cmr-12">notably GPUs, memory allocation is a slow operation, and the default behaviour would</span>
<span
class="cmr-12">lead to a slowdown. This method allows to trade space for time by preallocating</span>
<span
class="cmr-12">the internal workspace outside of the invocation of a Krylov method. When</span>
<span
class="cmr-12">using GPUs or other specialized devices, the </span><span class="lstinline"></span><span
class="cmtt-12">vmold</span> <span
class="cmr-12">argument is also necessary</span>
<span
class="cmr-12">to ensure the internal work vectors are of the appropriate dynamic type to</span>
<span
class="cmr-12">exploit the accelerator hardware; when allocation occurs internally this is</span>
<span
class="cmr-12">taken care of based on the dynamic type of the </span><span class="lstinline"></span><span
class="cmtt-12">x</span> <span
class="cmr-12">argument to the </span><span class="lstinline"></span><span
class="cmtt-12">apply</span>
<span
class="cmr-12">method.</span>
<!--l. 974--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-20" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-20-1g"><col
id="TBL-20-1"><col
id="TBL-20-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-20-1-"><td style="white-space:normal; text-align:left;" id="TBL-20-1-1"
class="td11"><!--l. 977--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-20-1-2"
class="td11"><!--l. 977--><p class="noindent" ><span class="lstinline"></span><span
=======
style="vertical-align:baseline;" id="TBL-16-7-"><td style="white-space:normal; text-align:left;" id="TBL-16-7-1" style="vertical-align:baseline;" id="TBL-16-7-"><td style="white-space:normal; text-align:left;" id="TBL-16-7-1"
class="td11"><!--l. 881--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 885--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">verbosity</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-7-2" class="cmtt-12">verbosity</span> </td><td style="white-space:normal; text-align:left;" id="TBL-16-7-2"
class="td11"><!--l. 881--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 885--><p class="noindent" ><span class="lstinline"></span><span
>>>>>>> development
class="cmtt-12">integer</span><span class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
<<<<<<< HEAD
class="cmtt-12">out</span><span
class="cmtt-12">)</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. 978--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-20-2-2"
class="td11"><!--l. 978--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x27-310007"><span
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-20-3-"><td style="white-space:normal; text-align:left;" id="TBL-20-3-1"
class="td11"><!--l. 979--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">vmold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-20-3-2"
class="td11"><!--l. 979--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span
class="cmti-12">x</span><span class="lstinline"></span><span
class="cmtt-12">_base_vect_type</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
=======
>>>>>>> development
class="cmtt-12">in</span><span class="cmtt-12">in</span><span
class="cmtt-12">),</span><span class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">optional</span><span class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
<<<<<<< HEAD
style="vertical-align:baseline;" id="TBL-20-4-"><td style="white-space:normal; text-align:left;" id="TBL-20-4-1"
class="td11"><!--l. 980--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-20-4-2"
class="td11"><!--l. 980--><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-20-5-"><td style="white-space:normal; text-align:left;" id="TBL-20-5-1"
class="td11"> </td> </tr></table></div>
<!--l. 986--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.5 </span></span> <a
id="x25-290005.9.5"></a><span
class="cmr-12">Method: free</span><span
class="cmr-12">_wrk</span></h5>
<div class="center"
>
<!--l. 988--><p class="noindent" >
<!--l. 989--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
class="cmtt-12">%</span><span
class="cmtt-12">free_wrk</span><span
class="cmtt-12">(</span><span
class="cmtt-12">info</span><span
class="cmtt-12">)</span><br />
</div>
<!--l. 992--><p class="noindent" ><span
class="cmr-12">Deallocate internal work vectors.</span>
<!--l. 995--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-21" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-21-1g"><col
id="TBL-21-1"><col
id="TBL-21-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-21-1-"><td style="white-space:normal; text-align:left;" id="TBL-21-1-1"
class="td11"><!--l. 998--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-21-1-2"
class="td11"><!--l. 998--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">out</span><span
class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-21-2-"><td style="white-space:normal; text-align:left;" id="TBL-21-2-1"
class="td11"><!--l. 999--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-21-2-2"
class="td11"><!--l. 999--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x27-310007"><span
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-21-3-"><td style="white-space:normal; text-align:left;" id="TBL-21-3-1"
class="td11"> </td> </tr></table></div>
=======
style="vertical-align:baseline;" id="TBL-16-8-"><td style="white-space:normal; text-align:left;" id="TBL-16-8-1" style="vertical-align:baseline;" id="TBL-16-8-"><td style="white-space:normal; text-align:left;" id="TBL-16-8-1"
class="td11"><!--l. 882--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-8-2" class="td11"><!--l. 886--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-16-8-2"
class="td11"><!--l. 882--><p class="noindent" ><span class="td11"><!--l. 886--><p class="noindent" ><span
class="cmr-12">The verbosity level of the description. Default value is 0. For</span> class="cmr-12">The verbosity level of the description. Default value is 0. For</span>
<span <span
class="cmr-12">values higher than 0, it prints out further information, e.g., for</span> class="cmr-12">values higher than 0, it prints out further information, e.g., for</span>
@ -500,11 +171,10 @@ class="cmr-12">matrices on every process.</span>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-16-9-"><td style="white-space:normal; text-align:left;" id="TBL-16-9-1" style="vertical-align:baseline;" id="TBL-16-9-"><td style="white-space:normal; text-align:left;" id="TBL-16-9-1"
class="td11"> </td> </tr></table></div> class="td11"> </td> </tr></table></div>
>>>>>>> development
<!--l. 889--><div class="crosslinks"><p class="noindent"><span <!--l. 893--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu16.html" ><span href="userhtmlsu16.html" ><span
class="cmr-12">next</span></a><span class="cmr-12">next</span></a><span
@ -521,6 +191,6 @@ class="cmr-12">] [</span><a
href="userhtmlse5.html#userhtmlsu15.html" ><span href="userhtmlse5.html#userhtmlsu15.html" ><span
class="cmr-12">up</span></a><span class="cmr-12">up</span></a><span
class="cmr-12">] </span></p></div> class="cmr-12">] </span></p></div>
<!--l. 889--><p class="indent" > <a <!--l. 893--><p class="indent" > <a
id="tailuserhtmlsu15.html"></a> id="tailuserhtmlsu15.html"></a>
</body></html> </body></html>

@ -10,7 +10,7 @@
<link rel="stylesheet" type="text/css" href="userhtml.css"> <link rel="stylesheet" type="text/css" href="userhtml.css">
</head><body </head><body
> >
<!--l. 889--><div class="crosslinks"><p class="noindent"><span <!--l. 893--><div class="crosslinks"><p class="noindent"><span
class="cmr-12">[</span><a class="cmr-12">[</span><a
href="userhtmlsu15.html" ><span href="userhtmlsu15.html" ><span
class="cmr-12">prev</span></a><span class="cmr-12">prev</span></a><span
@ -28,19 +28,19 @@ class="cmr-12">] </span></p></div>
class="cmr-12">5.9 </span></span> <a class="cmr-12">5.9 </span></span> <a
id="x26-250005.9"></a><span id="x26-250005.9"></a><span
class="cmr-12">Auxiliary Methods</span></h4> class="cmr-12">Auxiliary Methods</span></h4>
<!--l. 890--><p class="noindent" ><span <!--l. 894--><p class="noindent" ><span
class="cmr-12">Various functionalities are implemented as additional methods of the preconditioner</span> class="cmr-12">Various functionalities are implemented as additional methods of the preconditioner</span>
<span <span
class="cmr-12">object.</span> class="cmr-12">object.</span>
<!--l. 893--><p class="noindent" > <!--l. 897--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span <h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.1 </span></span> <a class="cmr-12">5.9.1 </span></span> <a
id="x26-260005.9.1"></a><span id="x26-260005.9.1"></a><span
class="cmr-12">Method: dump</span></h5> class="cmr-12">Method: dump</span></h5>
<div class="center" <div class="center"
> >
<!--l. 895--><p class="noindent" > <!--l. 899--><p class="noindent" >
<!--l. 896--><p class="noindent" ><span class="lstinline"></span><span <!--l. 900--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">call</span><span class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span class="cmtt-12">p</span><span
@ -68,9 +68,9 @@ class="cmtt-12">,</span><span
class="cmtt-12">global_num</span><span class="cmtt-12">global_num</span><span
class="cmtt-12">])</span><br /> class="cmtt-12">])</span><br />
</div> </div>
<!--l. 899--><p class="noindent" ><span <!--l. 903--><p class="noindent" ><span
class="cmr-12">Dump on file.</span> class="cmr-12">Dump on file.</span>
<!--l. 902--><p class="noindent" ><span <!--l. 906--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-17" class="tabular" <div class="tabular"> <table id="TBL-17" class="tabular"
cellspacing="0" cellpadding="0" cellspacing="0" cellpadding="0"
@ -78,9 +78,9 @@ cellspacing="0" cellpadding="0"
id="TBL-17-1"><col id="TBL-17-1"><col
id="TBL-17-2"></colgroup><tr 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" style="vertical-align:baseline;" id="TBL-17-1-"><td style="white-space:normal; text-align:left;" id="TBL-17-1-1"
class="td11"><!--l. 905--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 909--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-17-1-2" class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-17-1-2"
class="td11"><!--l. 905--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 909--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
@ -91,8 +91,8 @@ class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-17-2-"><td style="white-space:normal; text-align:left;" id="TBL-17-2-1" style="vertical-align:baseline;" id="TBL-17-2-"><td style="white-space:normal; text-align:left;" id="TBL-17-2-1"
class="td11"><!--l. 906--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-2-2" class="td11"><!--l. 910--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-2-2"
class="td11"><!--l. 906--><p class="noindent" ><span class="td11"><!--l. 910--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><span
@ -100,9 +100,9 @@ class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td> class="cmr-12">for details.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-17-3-"><td style="white-space:normal; text-align:left;" id="TBL-17-3-1" style="vertical-align:baseline;" id="TBL-17-3-"><td style="white-space:normal; text-align:left;" id="TBL-17-3-1"
class="td11"><!--l. 907--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 911--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">amold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-17-3-2" class="cmtt-12">amold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-17-3-2"
class="td11"><!--l. 907--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 911--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span class="cmtt-12">class</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span class="cmtt-12">psb_</span><span
@ -119,8 +119,8 @@ class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-17-4-"><td style="white-space:normal; text-align:left;" id="TBL-17-4-1" style="vertical-align:baseline;" id="TBL-17-4-"><td style="white-space:normal; text-align:left;" id="TBL-17-4-1"
class="td11"><!--l. 908--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-4-2" class="td11"><!--l. 912--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-17-4-2"
class="td11"><!--l. 908--><p class="noindent" ><span class="td11"><!--l. 912--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal matrix components; this</span> class="cmr-12">The desired dynamic type for internal matrix components; this</span>
<span <span
class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span> class="cmr-12">allows e.g. running on GPUs; it needs not be the same on all</span>
@ -134,15 +134,15 @@ class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-17-5-"><td style="white-space:normal; text-align:left;" id="TBL-17-5-1" style="vertical-align:baseline;" id="TBL-17-5-"><td style="white-space:normal; text-align:left;" id="TBL-17-5-1"
class="td11"> </td> </tr></table></div> class="td11"> </td> </tr></table></div>
<!--l. 915--><p class="noindent" > <!--l. 919--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span <h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.2 </span></span> <a class="cmr-12">5.9.2 </span></span> <a
id="x26-270005.9.2"></a><span id="x26-270005.9.2"></a><span
class="cmr-12">Method: clone</span></h5> class="cmr-12">Method: clone</span></h5>
<div class="center" <div class="center"
> >
<!--l. 917--><p class="noindent" > <!--l. 921--><p class="noindent" >
<!--l. 918--><p class="noindent" ><span class="lstinline"></span><span <!--l. 922--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">call</span><span class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span class="cmtt-12">p</span><span
@ -157,9 +157,9 @@ class="cmtt-12">)</span><br />
<!--l. 921--><p class="noindent" ><span <!--l. 925--><p class="noindent" ><span
class="cmr-12">Create a (deep) copy of the preconditioner object.</span> class="cmr-12">Create a (deep) copy of the preconditioner object.</span>
<!--l. 924--><p class="noindent" ><span <!--l. 928--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-18" class="tabular" <div class="tabular"> <table id="TBL-18" class="tabular"
cellspacing="0" cellpadding="0" cellspacing="0" cellpadding="0"
@ -167,9 +167,9 @@ cellspacing="0" cellpadding="0"
id="TBL-18-1"><col id="TBL-18-1"><col
id="TBL-18-2"></colgroup><tr 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" style="vertical-align:baseline;" id="TBL-18-1-"><td style="white-space:normal; text-align:left;" id="TBL-18-1-1"
class="td11"><!--l. 927--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 931--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">pout</span> </td><td style="white-space:normal; text-align:left;" id="TBL-18-1-2" class="cmtt-12">pout</span> </td><td style="white-space:normal; text-align:left;" id="TBL-18-1-2"
class="td11"><!--l. 927--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 931--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">type</span><span class="cmtt-12">type</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
class="cmtt-12">amg_</span><span class="cmtt-12">amg_</span><span
@ -184,8 +184,8 @@ class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-18-2-"><td style="white-space:normal; text-align:left;" id="TBL-18-2-1" style="vertical-align:baseline;" id="TBL-18-2-"><td style="white-space:normal; text-align:left;" id="TBL-18-2-1"
class="td11"><!--l. 928--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-2-2" class="td11"><!--l. 932--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-2-2"
class="td11"><!--l. 928--><p class="noindent" ><span class="td11"><!--l. 932--><p class="noindent" ><span
class="cmr-12">The copy of the preconditioner data structure. Note that </span><span class="cmr-12">The copy of the preconditioner data structure. Note that </span><span
class="cmti-12">x </span><span class="cmti-12">x </span><span
class="cmr-12">must</span> class="cmr-12">must</span>
@ -199,9 +199,9 @@ class="cmr-12">, single/double precision</span>
class="cmr-12">version of AMG4PSBLAS under use.</span> </td> class="cmr-12">version of AMG4PSBLAS under use.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-18-3-"><td style="white-space:normal; text-align:left;" id="TBL-18-3-1" style="vertical-align:baseline;" id="TBL-18-3-"><td style="white-space:normal; text-align:left;" id="TBL-18-3-1"
class="td11"><!--l. 931--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 935--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-18-3-2" class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-18-3-2"
class="td11"><!--l. 931--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 935--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
@ -212,8 +212,8 @@ class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-18-4-"><td style="white-space:normal; text-align:left;" id="TBL-18-4-1" style="vertical-align:baseline;" id="TBL-18-4-"><td style="white-space:normal; text-align:left;" id="TBL-18-4-1"
class="td11"><!--l. 932--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-4-2" class="td11"><!--l. 936--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-18-4-2"
class="td11"><!--l. 932--><p class="noindent" ><span class="td11"><!--l. 936--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><span
@ -222,15 +222,15 @@ class="cmr-12">for details.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-18-5-"><td style="white-space:normal; text-align:left;" id="TBL-18-5-1" style="vertical-align:baseline;" id="TBL-18-5-"><td style="white-space:normal; text-align:left;" id="TBL-18-5-1"
class="td11"> </td> </tr></table></div> class="td11"> </td> </tr></table></div>
<!--l. 937--><p class="noindent" > <!--l. 941--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span <h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.3 </span></span> <a class="cmr-12">5.9.3 </span></span> <a
id="x26-280005.9.3"></a><span id="x26-280005.9.3"></a><span
class="cmr-12">Method: sizeof</span></h5> class="cmr-12">Method: sizeof</span></h5>
<div class="center" <div class="center"
> >
<!--l. 939--><p class="noindent" > <!--l. 943--><p class="noindent" >
<!--l. 940--><p class="noindent" ><span class="lstinline"></span><span <!--l. 944--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">sz</span><span class="cmtt-12">sz</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">=</span><span class="cmtt-12">=</span><span
@ -248,9 +248,9 @@ cellspacing="0" cellpadding="0"
id="TBL-19-1"><col id="TBL-19-1"><col
id="TBL-19-2"></colgroup><tr 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" style="vertical-align:baseline;" id="TBL-19-1-"><td style="white-space:normal; text-align:left;" id="TBL-19-1-1"
class="td11"><!--l. 944--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 948--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">global</span> </td> <td style="white-space:normal; text-align:left;" id="TBL-19-1-2" class="cmtt-12">global</span> </td> <td style="white-space:normal; text-align:left;" id="TBL-19-1-2"
class="td11"><!--l. 944--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 948--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">logical</span><span class="cmtt-12">logical</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
@ -258,8 +258,8 @@ class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-19-2-"><td style="white-space:normal; text-align:left;" id="TBL-19-2-1" style="vertical-align:baseline;" id="TBL-19-2-"><td style="white-space:normal; text-align:left;" id="TBL-19-2-1"
class="td11"><!--l. 945--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-2-2" class="td11"><!--l. 949--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-19-2-2"
class="td11"><!--l. 945--><p class="noindent" ><span class="td11"><!--l. 949--><p class="noindent" ><span
class="cmr-12">Whether the global or local preconditioner memory occupation is</span> class="cmr-12">Whether the global or local preconditioner memory occupation is</span>
<span <span
class="cmr-12">desired. Default: </span><span class="lstinline"></span><span class="cmr-12">desired. Default: </span><span class="lstinline"></span><span
@ -272,7 +272,7 @@ class="cmr-12">.</span> </td
class="td11"> </td> </tr></table> class="td11"> </td> </tr></table>
</div> <span </div> <span
class="cmr-12">Return memory footprint in bytes.</span> class="cmr-12">Return memory footprint in bytes.</span>
<!--l. 952--><p class="noindent" > <!--l. 956--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span <h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.4 </span></span> <a class="cmr-12">5.9.4 </span></span> <a
id="x26-290005.9.4"></a><span id="x26-290005.9.4"></a><span
@ -280,8 +280,8 @@ class="cmr-12">Method: allocate</span><span
class="cmr-12">_wrk</span></h5> class="cmr-12">_wrk</span></h5>
<div class="center" <div class="center"
> >
<!--l. 954--><p class="noindent" > <!--l. 958--><p class="noindent" >
<!--l. 955--><p class="noindent" ><span class="lstinline"></span><span <!--l. 959--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">call</span><span class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span class="cmtt-12">p</span><span
@ -294,7 +294,7 @@ class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">vmold</span><span class="cmtt-12">vmold</span><span
class="cmtt-12">])</span><br /> class="cmtt-12">])</span><br />
</div> </div>
<!--l. 958--><p class="noindent" ><span <!--l. 962--><p class="noindent" ><span
class="cmr-12">Allocate internal work vectors. Each application of the preconditioner uses a number of</span> class="cmr-12">Allocate internal work vectors. Each application of the preconditioner uses a number of</span>
<span <span
class="cmr-12">work vectors which are allocated internally as necessary; therefore allocation and</span> class="cmr-12">work vectors which are allocated internally as necessary; therefore allocation and</span>
@ -326,7 +326,7 @@ class="cmr-12">argument to the </span><span class="lstinline"></span><span
class="cmtt-12">apply</span> class="cmtt-12">apply</span>
<span <span
class="cmr-12">method.</span> class="cmr-12">method.</span>
<!--l. 974--><p class="noindent" ><span <!--l. 978--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-20" class="tabular" <div class="tabular"> <table id="TBL-20" class="tabular"
cellspacing="0" cellpadding="0" cellspacing="0" cellpadding="0"
@ -334,9 +334,9 @@ cellspacing="0" cellpadding="0"
id="TBL-20-1"><col id="TBL-20-1"><col
id="TBL-20-2"></colgroup><tr 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" style="vertical-align:baseline;" id="TBL-20-1-"><td style="white-space:normal; text-align:left;" id="TBL-20-1-1"
class="td11"><!--l. 977--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 981--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-20-1-2" class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-20-1-2"
class="td11"><!--l. 977--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 981--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
@ -347,8 +347,8 @@ class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-20-2-"><td style="white-space:normal; text-align:left;" id="TBL-20-2-1" style="vertical-align:baseline;" id="TBL-20-2-"><td style="white-space:normal; text-align:left;" id="TBL-20-2-1"
class="td11"><!--l. 978--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-20-2-2" class="td11"><!--l. 982--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-20-2-2"
class="td11"><!--l. 978--><p class="noindent" ><span class="td11"><!--l. 982--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><span
@ -356,9 +356,9 @@ class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td> class="cmr-12">for details.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-20-3-"><td style="white-space:normal; text-align:left;" id="TBL-20-3-1" style="vertical-align:baseline;" id="TBL-20-3-"><td style="white-space:normal; text-align:left;" id="TBL-20-3-1"
class="td11"><!--l. 979--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 983--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">vmold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-20-3-2" class="cmtt-12">vmold</span> </td><td style="white-space:normal; text-align:left;" id="TBL-20-3-2"
class="td11"><!--l. 979--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 983--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">class</span><span class="cmtt-12">class</span><span
class="cmtt-12">(</span><span class="cmtt-12">(</span><span
class="cmtt-12">psb_</span><span class="cmtt-12">psb_</span><span
@ -375,15 +375,15 @@ class="cmtt-12">optional</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-20-4-"><td style="white-space:normal; text-align:left;" id="TBL-20-4-1" style="vertical-align:baseline;" id="TBL-20-4-"><td style="white-space:normal; text-align:left;" id="TBL-20-4-1"
class="td11"><!--l. 980--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-20-4-2" class="td11"><!--l. 984--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-20-4-2"
class="td11"><!--l. 980--><p class="noindent" ><span class="td11"><!--l. 984--><p class="noindent" ><span
class="cmr-12">The desired dynamic type for internal vector components; this</span> class="cmr-12">The desired dynamic type for internal vector components; this</span>
<span <span
class="cmr-12">allows e.g. running on GPUs.</span> </td> class="cmr-12">allows e.g. running on GPUs.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-20-5-"><td style="white-space:normal; text-align:left;" id="TBL-20-5-1" style="vertical-align:baseline;" id="TBL-20-5-"><td style="white-space:normal; text-align:left;" id="TBL-20-5-1"
class="td11"> </td> </tr></table></div> class="td11"> </td> </tr></table></div>
<!--l. 986--><p class="noindent" > <!--l. 990--><p class="noindent" >
<h5 class="subsubsectionHead"><span class="titlemark"><span <h5 class="subsubsectionHead"><span class="titlemark"><span
class="cmr-12">5.9.5 </span></span> <a class="cmr-12">5.9.5 </span></span> <a
id="x26-300005.9.5"></a><span id="x26-300005.9.5"></a><span
@ -391,8 +391,8 @@ class="cmr-12">Method: free</span><span
class="cmr-12">_wrk</span></h5> class="cmr-12">_wrk</span></h5>
<div class="center" <div class="center"
> >
<!--l. 988--><p class="noindent" > <!--l. 992--><p class="noindent" >
<!--l. 989--><p class="noindent" ><span class="lstinline"></span><span <!--l. 993--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">call</span><span class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span class="cmtt-12">p</span><span
@ -402,9 +402,9 @@ class="cmtt-12">(</span><span
class="cmtt-12">info</span><span class="cmtt-12">info</span><span
class="cmtt-12">)</span><br /> class="cmtt-12">)</span><br />
</div> </div>
<!--l. 992--><p class="noindent" ><span <!--l. 996--><p class="noindent" ><span
class="cmr-12">Deallocate internal work vectors.</span> class="cmr-12">Deallocate internal work vectors.</span>
<!--l. 995--><p class="noindent" ><span <!--l. 999--><p class="noindent" ><span
class="cmbx-12">Arguments</span> class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-21" class="tabular" <div class="tabular"> <table id="TBL-21" class="tabular"
cellspacing="0" cellpadding="0" cellspacing="0" cellpadding="0"
@ -412,9 +412,9 @@ cellspacing="0" cellpadding="0"
id="TBL-21-1"><col id="TBL-21-1"><col
id="TBL-21-2"></colgroup><tr id="TBL-21-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-21-1-"><td style="white-space:normal; text-align:left;" id="TBL-21-1-1" style="vertical-align:baseline;" id="TBL-21-1-"><td style="white-space:normal; text-align:left;" id="TBL-21-1-1"
class="td11"><!--l. 998--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 1002--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-21-1-2" class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-21-1-2"
class="td11"><!--l. 998--><p class="noindent" ><span class="lstinline"></span><span class="td11"><!--l. 1002--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span class="cmtt-12">&#x00A0;</span><span
@ -425,8 +425,8 @@ class="cmtt-12">)</span><span
class="cmr-12">.</span> </td> class="cmr-12">.</span> </td>
</tr><tr </tr><tr
style="vertical-align:baseline;" id="TBL-21-2-"><td style="white-space:normal; text-align:left;" id="TBL-21-2-1" style="vertical-align:baseline;" id="TBL-21-2-"><td style="white-space:normal; text-align:left;" id="TBL-21-2-1"
class="td11"><!--l. 999--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-21-2-2" class="td11"><!--l. 1003--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-21-2-2"
class="td11"><!--l. 999--><p class="noindent" ><span class="td11"><!--l. 1003--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x28-320007"><span href="userhtmlse7.html#x28-320007"><span

@ -45,11 +45,7 @@ class="cmr-12">As a minimal example consider the following:</span>
<pre class="verbatim" id="verbatim-2"> <pre class="verbatim" id="verbatim-2">
./configure&#x00A0;--with-psblas=PSB-INSTALL-DIR ./configure&#x00A0;--with-psblas=PSB-INSTALL-DIR
</pre> </pre>
<<<<<<< HEAD
<!--l. 115--><p class="nopar" > <span
=======
<!--l. 127--><p class="nopar" > <span <!--l. 127--><p class="nopar" > <span
>>>>>>> development
class="cmr-12">which assumes that the various MPI compilers and support libraries are available in</span> class="cmr-12">which assumes that the various MPI compilers and support libraries are available in</span>
<span <span
class="cmr-12">the standard directories on the system, and specifies only the PSBLAS install directory</span> class="cmr-12">the standard directories on the system, and specifies only the PSBLAS install directory</span>
@ -4255,11 +4251,7 @@ class="cmr-12">might be configured with:</span>
./configure&#x00A0;--with-psblas=/opt/psblas-3.7/&#x00A0;\ ./configure&#x00A0;--with-psblas=/opt/psblas-3.7/&#x00A0;\
--with-umfpackincdir=/usr/include/suitesparse/ --with-umfpackincdir=/usr/include/suitesparse/
</pre> </pre>
<<<<<<< HEAD
<!--l. 140--><p class="nopar" > <span
=======
<!--l. 152--><p class="nopar" > <span <!--l. 152--><p class="nopar" > <span
>>>>>>> development
class="cmr-12">Once the configure script has completed execution, it will have generated the file</span> class="cmr-12">Once the configure script has completed execution, it will have generated the file</span>
<span class="obeylines-h"><span class="verb"><span <span class="obeylines-h"><span class="verb"><span
class="cmtt-12">Make.inc</span></span></span> <span class="cmtt-12">Make.inc</span></span></span> <span
@ -4296,11 +4288,7 @@ class="cmr-12">To build the library the user will now enter</span>
<pre class="verbatim" id="verbatim-4"> <pre class="verbatim" id="verbatim-4">
make make
</pre> </pre>
<<<<<<< HEAD
<!--l. 163--><p class="nopar" > <span
=======
<!--l. 175--><p class="nopar" > <span <!--l. 175--><p class="nopar" > <span
>>>>>>> development
class="cmr-12">followed (optionally) by</span> class="cmr-12">followed (optionally) by</span>
@ -4308,11 +4296,7 @@ class="cmr-12">followed (optionally) by</span>
<pre class="verbatim" id="verbatim-5"> <pre class="verbatim" id="verbatim-5">
make&#x00A0;install make&#x00A0;install
</pre> </pre>
<<<<<<< HEAD
<!--l. 173--><p class="nopar" >
=======
<!--l. 185--><p class="nopar" > <!--l. 185--><p class="nopar" >
>>>>>>> development

@ -29,17 +29,21 @@ class="cmr-12">4.2 </span></span> <a
id="x16-150004.2"></a><span id="x16-150004.2"></a><span
class="cmr-12">GPU example</span></h4> class="cmr-12">GPU example</span></h4>
<!--l. 422--><p class="noindent" ><span <!--l. 422--><p class="noindent" ><span
class="cmr-12">The code reported in Figure</span><span class="cmr-12">The code discussed here shows how to set up a program exploiting the combined GPU</span>
class="cmr-12">&#x00A0;</span><a
href="#x16-15001r5"><span
class="cmr-12">5</span><!--tex4ht:ref: fig:gpu-ex1 --></a> <span
class="cmr-12">shows how to set up a program exploiting the combined</span>
<span <span
class="cmr-12">GPU capabilities of PSBLAS and AMG4PSBLAS.</span> class="cmr-12">capabilities of PSBLAS and AMG4PSBLAS. The code example is available in the</span>
<span
class="cmr-12">source distribution directory </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">amg4psblas/examples/gpu</span></span></span><span
class="cmr-12">.</span>
<!--l. 427--><p class="indent" > <span
class="cmr-12">First of all, we need to include the appropriate modules and declare some auxiliary</span>
<span
class="cmr-12">variables:</span>
<!--l. 425--><p class="indent" > <a <!--l. 429--><p class="indent" > <a
id="x16-15001r5"></a><hr class="float"><div class="float" id="x16-15001r5"></a><hr class="float"><div class="float"
> >
@ -47,126 +51,153 @@ class="cmr-12">GPU capabilities of PSBLAS and AMG4PSBLAS.</span>
<div class="center" <div class="center"
> >
<<<<<<< HEAD <!--l. 448--><p class="noindent" >
<!--l. 44--><p class="noindent" >
<!--l. 45--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">call</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">p</span><span
class="cmtt-12">%</span><span
class="cmtt-12">init</span><span
class="cmtt-12">(</span><span
class="cmtt-12">contxt</span><span
class="cmtt-12">,</span><span
class="cmtt-12">ptype</span><span
class="cmtt-12">,</span><span
class="cmtt-12">info</span><span
class="cmtt-12">)</span></div>
<!--l. 48--><p class="noindent" ><span
class="cmr-12">This method allocates and initializes the preconditioner </span><span class="lstinline"></span><span
class="cmtt-12">p</span><span
class="cmr-12">, according to the</span>
<span
class="cmr-12">preconditioner type chosen by the user.</span>
<!--l. 52--><p class="noindent" ><span
class="cmbx-12">Arguments</span>
<div class="tabular"> <table id="TBL-2" class="tabular"
cellspacing="0" cellpadding="0"
><colgroup id="TBL-2-1g"><col
id="TBL-2-1"><col
id="TBL-2-2"></colgroup><tr
style="vertical-align:baseline;" id="TBL-2-1-"><td style="white-space:normal; text-align:left;" id="TBL-2-1-1"
class="td11"><!--l. 56--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">contxt</span> </td> <td style="white-space:normal; text-align:left;" id="TBL-2-1-2"
class="td11"><!--l. 56--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">type</span><span
class="cmtt-12">(</span><span
class="cmtt-12">psb_ctxt_type</span><span
class="cmtt-12">),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-2-"><td style="white-space:normal; text-align:left;" id="TBL-2-2-1"
class="td11"><!--l. 57--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-2-2-2"
class="td11"><!--l. 57--><p class="noindent" ><span
class="cmr-12">The communication context.</span> </td></tr><tr
style="vertical-align:baseline;" id="TBL-2-3-"><td style="white-space:normal; text-align:left;" id="TBL-2-3-1"
class="td11"><!--l. 58--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">ptype</span> </td> <td style="white-space:normal; text-align:left;" id="TBL-2-3-2"
class="td11"><!--l. 58--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">character</span><span
class="cmtt-12">(</span><span
class="cmtt-12">len</span><span
class="cmtt-12">=*),</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">in</span><span
class="cmtt-12">)</span> <span
class="cmr-12">.</span></td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-4-"><td style="white-space:normal; text-align:left;" id="TBL-2-4-1"
class="td11"><!--l. 59--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-2-4-2"
class="td11"><!--l. 59--><p class="noindent" ><span
class="cmr-12">The type of preconditioner. Its values are specified in Table</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse4.html#x14-13015r1"><span
class="cmr-12">1</span><!--tex4ht:ref: tab:precinit --></a><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-5-"><td style="white-space:normal; text-align:left;" id="TBL-2-5-1"
class="td11"><!--l. 61--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-2-5-2"
class="td11"><!--l. 61--><p class="noindent" ><span
class="cmr-12">Note that strings are case insensitive.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-6-"><td style="white-space:normal; text-align:left;" id="TBL-2-6-1"
class="td11"><!--l. 62--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">info</span> </td><td style="white-space:normal; text-align:left;" id="TBL-2-6-2"
class="td11"><!--l. 62--><p class="noindent" ><span class="lstinline"></span><span
class="cmtt-12">integer</span><span
class="cmtt-12">,</span><span
class="cmtt-12">&#x00A0;</span><span
class="cmtt-12">intent</span><span
class="cmtt-12">(</span><span
class="cmtt-12">out</span><span
class="cmtt-12">)</span><span
class="cmr-12">.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-7-"><td style="white-space:normal; text-align:left;" id="TBL-2-7-1"
class="td11"><!--l. 63--><p class="noindent" > </td><td style="white-space:normal; text-align:left;" id="TBL-2-7-2"
class="td11"><!--l. 63--><p class="noindent" ><span
class="cmr-12">Error code. If no error, 0 is returned. See Section</span><span
class="cmr-12">&#x00A0;</span><a
href="userhtmlse7.html#x27-310007"><span
class="cmr-12">7</span><!--tex4ht:ref: sec:errors --></a> <span
class="cmr-12">for details.</span> </td>
</tr><tr
style="vertical-align:baseline;" id="TBL-2-8-"><td style="white-space:normal; text-align:left;" id="TBL-2-8-1"
class="td11"> </td> </tr></table></div>
=======
<!--l. 437--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-10"> <div class="minipage"><pre class="verbatim" id="verbatim-10">
!&#x00A0;build&#x00A0;a&#x00A0;one-level&#x00A0;RAS&#x00A0;with&#x00A0;overlap&#x00A0;2&#x00A0;and&#x00A0;ILU(0)&#x00A0;on&#x00A0;the&#x00A0;local&#x00A0;blocks. program&#x00A0;amg_dexample_gpu
call&#x00A0;P%init(&#8217;AS&#8217;,info) &#x00A0;&#x00A0;use&#x00A0;psb_base_mod
call&#x00A0;P%set(&#8217;SUB_OVR&#8217;,2,info) &#x00A0;&#x00A0;use&#x00A0;amg_prec_mod
call&#x00A0;P%build(A,desc_A,info) &#x00A0;&#x00A0;use&#x00A0;psb_krylov_mod
...&#x00A0;... &#x00A0;&#x00A0;use&#x00A0;psb_util_mod
!&#x00A0;solve&#x00A0;Ax=b&#x00A0;with&#x00A0;preconditioned&#x00A0;BiCGSTAB &#x00A0;&#x00A0;use&#x00A0;psb_gpu_mod
&#x00A0;&#x00A0;call&#x00A0;psb_krylov(&#8217;BICGSTAB&#8217;,A,P,b,x,tol,desc_A,info) &#x00A0;&#x00A0;use&#x00A0;data_input
&#x00A0;&#x00A0;use&#x00A0;amg_d_pde_mod
&#x00A0;&#x00A0;implicit&#x00A0;none
&#x00A0;&#x00A0;.......
&#x00A0;&#x00A0;!&#x00A0;GPU&#x00A0;variables
&#x00A0;&#x00A0;type(psb_d_hlg_sparse_mat)&#x00A0;::&#x00A0;agmold
&#x00A0;&#x00A0;type(psb_d_vect_gpu)&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;::&#x00A0;vgmold
&#x00A0;&#x00A0;type(psb_i_vect_gpu)&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;::&#x00A0;igmold
&#x00A0;
</pre> </pre>
<!--l. 448--><p class="nopar" ></div></div> <!--l. 467--><p class="nopar" ></div></div>
<br /> <div class="caption" <br /> <div class="caption"
><span class="id">Listing 5: </span><span ><span class="id">Listing 5: </span><span
class="content">setup of a one-level Schwarz preconditioner.</span></div><!--tex4ht:label?: x16-15001r5 --> class="content">setup of a GPU-enabled test program part one.</span></div><!--tex4ht:label?: x16-15001r5 -->
>>>>>>> development
</div><hr class="endfloat" />
<!--l. 474--><p class="indent" > <span
class="cmr-12">In this particular example we are choosing to employ a </span><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">HLG</span></span></span> <span
class="cmr-12">data structure for</span>
<span
class="cmr-12">sparse matrices on GPUs; for more information please refer to the PSBLAS-EXT users&#8217;</span>
<span
class="cmr-12">guide.</span>
<!--l. 478--><p class="indent" > <span
class="cmr-12">We then have to initialize the GPU environment, and pass the appropriate MOLD</span>
<span
class="cmr-12">variables to the build methods (see also the PSBLAS and PSBLAS-EXT users&#8217;</span>
<span
class="cmr-12">guides).</span>
<!--l. 481--><p class="indent" > <a
id="x16-15002r6"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 497--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-11">
&#x00A0;&#x00A0;call&#x00A0;psb_init(ctxt)
&#x00A0;&#x00A0;call&#x00A0;psb_info(ctxt,iam,np)
&#x00A0;&#x00A0;!
&#x00A0;&#x00A0;!&#x00A0;BEWARE:&#x00A0;if&#x00A0;you&#x00A0;have&#x00A0;NGPUS&#x00A0;&#x00A0;per&#x00A0;node,&#x00A0;the&#x00A0;default&#x00A0;is&#x00A0;to
&#x00A0;&#x00A0;!&#x00A0;attach&#x00A0;to&#x00A0;mod(IAM,NGPUS)
&#x00A0;&#x00A0;!
&#x00A0;&#x00A0;call&#x00A0;psb_gpu_init(ictxt)
&#x00A0;&#x00A0;......
&#x00A0;&#x00A0;t1&#x00A0;=&#x00A0;psb_wtime()
&#x00A0;&#x00A0;call&#x00A0;prec%smoothers_build(a,desc_a,info,&#x00A0;amold=agmold,&#x00A0;vmold=vgmold,&#x00A0;imold=igmold)
&#x00A0;
</pre>
<!--l. 512--><p class="nopar" ></div></div>
<br /> <div class="caption"
><span class="id">Listing 6: </span><span
class="content">setup of a GPU-enabled test program part two.</span></div><!--tex4ht:label?: x16-15002r6 -->
</div><hr class="endfloat" /> </div><hr class="endfloat" />
<!--l. 519--><p class="indent" > <span
class="cmr-12">Finally, we convert the input matrix, the descriptor and the vectors to use a</span>
<span
class="cmr-12">GPU-enabled internal storage format. We then preallocate the preconditioner</span>
<span
class="cmr-12">workspace before entering the Krylov method. At the end of the code, we close the</span>
<span
class="cmr-12">GPU environment</span>
<!--l. 523--><p class="indent" > <a
id="x16-15003r7"></a><hr class="float"><div class="float"
>
<div class="center"
>
<!--l. 552--><p class="noindent" >
<div class="minipage"><pre class="verbatim" id="verbatim-12">
&#x00A0;&#x00A0;call&#x00A0;desc_a%cnv(mold=igmold)
&#x00A0;&#x00A0;call&#x00A0;a%cscnv(info,mold=agmold)
&#x00A0;&#x00A0;call&#x00A0;psb_geasb(x,desc_a,info,mold=vgmold)
&#x00A0;&#x00A0;call&#x00A0;psb_geasb(b,desc_a,info,mold=vgmold)
&#x00A0;&#x00A0;!
&#x00A0;&#x00A0;!&#x00A0;iterative&#x00A0;method&#x00A0;parameters
&#x00A0;&#x00A0;!
&#x00A0;&#x00A0;call&#x00A0;psb_barrier(ctxt)
&#x00A0;&#x00A0;call&#x00A0;prec%allocate_wrk(info)
&#x00A0;&#x00A0;t1&#x00A0;=&#x00A0;psb_wtime()
&#x00A0;&#x00A0;call&#x00A0;psb_krylov(s_choice%kmethd,a,prec,b,x,s_choice%eps,&amp;
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&amp;&#x00A0;desc_a,info,itmax=s_choice%itmax,iter=iter,err=err,itrace=s_choice%itrace,&amp;
&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&#x00A0;&amp;&#x00A0;istop=s_choice%istopc,irst=s_choice%irst)
&#x00A0;&#x00A0;call&#x00A0;prec%deallocate_wrk(info)
&#x00A0;&#x00A0;call&#x00A0;psb_barrier(ctxt)
&#x00A0;&#x00A0;tslv&#x00A0;=&#x00A0;psb_wtime()&#x00A0;-&#x00A0;t1
&#x00A0;&#x00A0;......
&#x00A0;&#x00A0;call&#x00A0;psb_gpu_exit()
&#x00A0;&#x00A0;call&#x00A0;psb_exit(ctxt)
&#x00A0;&#x00A0;stop
&#x00A0;
</pre>
<!--l. 579--><p class="nopar" ></div></div>
<br /> <div class="caption"
><span class="id">Listing 7: </span><span
class="content">setup of a GPU-enabled test program part three.</span></div><!--tex4ht:label?: x16-15003r7 -->
</div><hr class="endfloat" />
<!--l. 587--><p class="indent" > <span
class="cmr-12">It is very important to employ solvers that are suited to the GPU, i.e. solvers that</span>
<span
class="cmr-12">do NOT employ triangular system solve kernels. Solvers that satisfy this constraint</span>
<span
class="cmr-12">include:</span>
<ul class="itemize1">
<li class="itemize"><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">JACOBI</span></span></span>
</li>
<li class="itemize"><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">INVK</span></span></span>
</li>
<li class="itemize"><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">INVT</span></span></span>
</li>
<li class="itemize"><span class="obeylines-h"><span class="verb"><span
class="cmtt-12">AINV</span></span></span></li></ul>
<!--l. 596--><p class="noindent" ><span
class="cmr-12">and their </span><span
class="cmmi-12">&#x2113;</span><sub><span
class="cmr-8">1</span></sub> <span
class="cmr-12">variants.</span>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

@ -419,41 +419,181 @@ call P%build(A,desc_A,info)
\subsection{GPU example\label{sec:gpu-example}} \subsection{GPU example\label{sec:gpu-example}}
The code reported in Figure~\ref{fig:gpu-ex1} shows how to set up a The code discussed here shows how to set up a
program exploiting the combined GPU capabilities of PSBLAS and program exploiting the combined GPU capabilities of PSBLAS and
AMG4PSBLAS. AMG4PSBLAS. The code example is available in the source distribution
directory \verb|amg4psblas/examples/gpu|.
First of all, we need to include the appropriate modules and
declare some auxiliary variables:
\begin{listing}[h!] \begin{listing}[h!]
\ifpdf \ifpdf
\begin{minted}[breaklines=true,bgcolor=bg,fontsize=\small]{fortran} \begin{minted}[breaklines=true,bgcolor=bg,fontsize=\small]{fortran}
! build a one-level RAS with overlap 2 and ILU(0) on the local blocks. program amg_dexample_gpu
call P%init('AS',info) use psb_base_mod
call P%set('SUB_OVR',2,info) use amg_prec_mod
call P%build(A,desc_A,info) use psb_krylov_mod
... ... use psb_util_mod
! solve Ax=b with preconditioned BiCGSTAB use psb_gpu_mod
call psb_krylov('BICGSTAB',A,P,b,x,tol,desc_A,info) use data_input
use amg_d_pde_mod
implicit none
.......
! GPU variables
type(psb_d_hlg_sparse_mat) :: agmold
type(psb_d_vect_gpu) :: vgmold
type(psb_i_vect_gpu) :: igmold
\end{minted} \end{minted}
\else \else
\begin{center} \begin{center}
\begin{minipage}{.90\textwidth} \begin{minipage}{.90\textwidth}
{\small {\small
\begin{verbatim} \begin{verbatim}
! build a one-level RAS with overlap 2 and ILU(0) on the local blocks. program amg_dexample_gpu
call P%init('AS',info) use psb_base_mod
call P%set('SUB_OVR',2,info) use amg_prec_mod
call P%build(A,desc_A,info) use psb_krylov_mod
... ... use psb_util_mod
! solve Ax=b with preconditioned BiCGSTAB use psb_gpu_mod
call psb_krylov('BICGSTAB',A,P,b,x,tol,desc_A,info) use data_input
\end{verbatim} use amg_d_pde_mod
implicit none
.......
! GPU variables
type(psb_d_hlg_sparse_mat) :: agmold
type(psb_d_vect_gpu) :: vgmold
type(psb_i_vect_gpu) :: igmold
\end{verbatim}
}
\end{minipage}
\end{center}
\fi
\caption{setup of a GPU-enabled test program part one.\label{fig:gpu-ex1}}
\end{listing}
In this particular example we are choosing to employ a \verb|HLG| data
structure for sparse matrices on GPUs; for more information please
refer to the PSBLAS-EXT users' guide.
We then have to initialize the GPU environment, and pass the
appropriate MOLD variables to the build methods (see also the PSBLAS
and PSBLAS-EXT users' guides).
\begin{listing}[h!]
\ifpdf
\begin{minted}[breaklines=true,bgcolor=bg,fontsize=\small]{fortran}
call psb_init(ctxt)
call psb_info(ctxt,iam,np)
!
! BEWARE: if you have NGPUS per node, the default is to
! attach to mod(IAM,NGPUS)
!
call psb_gpu_init(ictxt)
......
t1 = psb_wtime()
call prec%smoothers_build(a,desc_a,info, amold=agmold, vmold=vgmold, imold=igmold)
\end{minted}
\else
\begin{center}
\begin{minipage}{.90\textwidth}
{\small
\begin{verbatim}
call psb_init(ctxt)
call psb_info(ctxt,iam,np)
!
! BEWARE: if you have NGPUS per node, the default is to
! attach to mod(IAM,NGPUS)
!
call psb_gpu_init(ictxt)
......
t1 = psb_wtime()
call prec%smoothers_build(a,desc_a,info, amold=agmold, vmold=vgmold, imold=igmold)
\end{verbatim}
} }
\end{minipage} \end{minipage}
\end{center} \end{center}
\fi \fi
\caption{setup of a one-level Schwarz preconditioner.\label{fig:gpu-ex1}} \caption{setup of a GPU-enabled test program part two.\label{fig:gpu-ex2}}
\end{listing} \end{listing}
Finally, we convert the input matrix, the descriptor and the vectors
to use a GPU-enabled internal storage format.
We then preallocate the preconditioner workspace before entering the
Krylov method. At the end of the code, we close the GPU environment
\begin{listing}[h!]
\ifpdf
\begin{minted}[breaklines=true,bgcolor=bg,fontsize=\small]{fortran}
call desc_a%cnv(mold=igmold)
call a%cscnv(info,mold=agmold)
call psb_geasb(x,desc_a,info,mold=vgmold)
call psb_geasb(b,desc_a,info,mold=vgmold)
!
! iterative method parameters
!
call psb_barrier(ctxt)
call prec%allocate_wrk(info)
t1 = psb_wtime()
call psb_krylov(s_choice%kmethd,a,prec,b,x,s_choice%eps,&
& desc_a,info,itmax=s_choice%itmax,iter=iter,err=err,itrace=s_choice%itrace,&
& istop=s_choice%istopc,irst=s_choice%irst)
call prec%deallocate_wrk(info)
call psb_barrier(ctxt)
tslv = psb_wtime() - t1
......
call psb_gpu_exit()
call psb_exit(ctxt)
stop
\end{minted}
\else
\begin{center}
\begin{minipage}{.90\textwidth}
{\small
\begin{verbatim}
call desc_a%cnv(mold=igmold)
call a%cscnv(info,mold=agmold)
call psb_geasb(x,desc_a,info,mold=vgmold)
call psb_geasb(b,desc_a,info,mold=vgmold)
!
! iterative method parameters
!
call psb_barrier(ctxt)
call prec%allocate_wrk(info)
t1 = psb_wtime()
call psb_krylov(s_choice%kmethd,a,prec,b,x,s_choice%eps,&
& desc_a,info,itmax=s_choice%itmax,iter=iter,err=err,itrace=s_choice%itrace,&
& istop=s_choice%istopc,irst=s_choice%irst)
call prec%deallocate_wrk(info)
call psb_barrier(ctxt)
tslv = psb_wtime() - t1
......
call psb_gpu_exit()
call psb_exit(ctxt)
stop
\end{verbatim}
}
\end{minipage}
\end{center}
\fi
\caption{setup of a GPU-enabled test program part three.\label{fig:gpu-ex3}}
\end{listing}
It is very important to employ solvers that are suited
to the GPU, i.e. solvers that do NOT employ triangular
system solve kernels. Solvers that satisfy this constraint include:
\begin{itemize}
\item \verb|JACOBI|
\item \verb|INVK|
\item \verb|INVT|
\item \verb|AINV|
\end{itemize}
and their $\ell_1$ variants.
%%% Local Variables: %%% Local Variables:
%%% mode: latex %%% mode: latex

@ -88,8 +88,8 @@ terms: {\small
} }
\pagebreak \pagebreak
AMG4PSBLAS is distributed together with (a small part) of the graph-matching AMG4PSBLAS is distributed together with (a small part) of the graph-matching
library MatchBox-P~\cite{MatchBoxP}. The relevant license is library MatchBox-P~\cite{MatchBoxP}. Per the license requirements, we reproduce
reproduced here: the relative part here.
{\small {\small
\begin{verbatim} \begin{verbatim}
// *********************************************************************** // ***********************************************************************

@ -0,0 +1 @@
tmp/userguide.pdf

@ -204,6 +204,10 @@ Likewise, the replicated layout can be used with any solver but SuperLu\_Dist an
therefore, if SuperLu\_Dist or KRM have been previously set, the coarsest-level therefore, if SuperLu\_Dist or KRM have been previously set, the coarsest-level
solver is changed to the default sequential solver. solver is changed to the default sequential solver.
In a parallel setting with many cores, we suggest to the users to change the default
coarsest solver for using the KRM choice, i.e. a parallel distributed iterative solution of the
coarsest system based on Krylov methods.
\textbf{Remark 4.} The argument \fortinline|idx| can be used to allow finer \textbf{Remark 4.} The argument \fortinline|idx| can be used to allow finer
control for those solvers; for instance, by specifying the keyword control for those solvers; for instance, by specifying the keyword
\fortinline|'MUMPS_IPAR_ENTRY'| and an appropriate value for \fortinline|idx|, it is \fortinline|'MUMPS_IPAR_ENTRY'| and an appropriate value for \fortinline|idx|, it is

@ -0,0 +1,31 @@
AMGDIR=../..
AMGINCDIR=$(AMGDIR)/include
include $(AMGINCDIR)/Make.inc.amg4psblas
AMGMODDIR=$(AMGDIR)/modules
AMGLIBDIR=$(AMGDIR)/lib
AMG_LIBS=-L$(AMGLIBDIR) -lpsb_krylov -lamg_prec -lpsb_prec
FINCLUDES=$(FMFLAG). $(FMFLAG)$(AMGMODDIR) $(FMFLAG)$(AMGINCDIR) $(PSBLAS_INCLUDES) $(FIFLAG).
LINKOPT=
DGOBJS=amg_dexample_gpu.o data_input.o amg_dpde_mod.o
EXEDIR=./runs
all: amg_dexample_gpu
amg_dexample_gpu: $(DGOBJS)
$(FLINK) $(LINKOPT) $(DGOBJS) -o amg_dexample_gpu \
$(AMG_LIBS) $(PSBLAS_LIBS) $(LDLIBS)
/bin/mv amg_dexample_gpu $(EXEDIR)
amg_dexample_gpu.o: data_input.o amg_dpde_mod.o
clean:
/bin/rm -f $(DGOBJS) *$(.mod) $(EXEDIR)/amg_dexample_gpu
lib:
(cd ../../; make library)
verycleanlib:
(cd ../../; make veryclean)

@ -0,0 +1,353 @@
!
!
! 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.
!
!
! File: amg_dexample_gpu.f90
!
! This sample program solves a linear system obtained by discretizing a
! PDE with Dirichlet BCs. The solver is CG, coupled with one of the
! following multi-level preconditioner, as explained in Section 4.1 of
! the AMG4PSBLAS User's and Reference Guide:
!
! - choice = 1, the default multi-level preconditioner solver, i.e.,
! V-cycle with decoupled smoothed aggregation, 1 hybrid forward/backward
! GS sweep as pre/post-smoother and UMFPACK as coarsest-level
! solver (Sec. 4.1, Listing 1)
!
! - choice = 2, a V-cycle preconditioner with 1 block-Jacobi sweep
! (with ILU(0) on the blocks) as pre- and post-smoother, and 8 block-Jacobi
! sweeps (with ILU(0) on the blocks) as coarsest-level solver (Sec. 4.1, Listing 2)
!
! - choice = 3, W-cycle preconditioner based on the coupled aggregation relying
! on matching, with maximum size of aggregates equal to 8 and smoothed prolongators,
! 2 hybrid forward/backward GS sweeps as pre/post-smoother, a distributed coarsest
! matrix, and preconditioned Flexible Conjugate Gradient as coarsest-level solver
! (Sec. 4.1, Listing 3)
!
! The matrix and the rhs are read from files (if an rhs is not available, the
! unit rhs is set).
!
!
! The PDE is a general second order equation in 3d
!
! a1 dd(u) a2 dd(u) a3 dd(u) b1 d(u) b2 d(u) b3 d(u)
! - ------ - ------ - ------ + ----- + ------ + ------ + c u = f
! dxdx dydy dzdz dx dy dz
!
! with Dirichlet boundary conditions
! u = g
!
! on the unit cube 0<=x,y,z<=1.
!
!
! Note that if b1=b2=b3=c=0., the PDE is the Laplace equation.
!
! In this sample program the index space of the discretized
! computational domain is first numbered sequentially in a standard way,
! then the corresponding vector is distributed according to a BLOCK
! data distribution.
!
program amg_dexample_gpu
use psb_base_mod
use amg_prec_mod
use psb_krylov_mod
use psb_util_mod
use psb_gpu_mod
use data_input
use amg_d_pde_mod
implicit none
! input parameters
! sparse matrices
type(psb_dspmat_type) :: A
! sparse matrices descriptor
type(psb_desc_type):: desc_A
! preconditioner
type(amg_dprec_type) :: P
! right-hand side, solution and residual vectors
type(psb_d_vect_type) :: x, b, r
! GPU variables
type(psb_d_hlg_sparse_mat) :: agmold
type(psb_d_vect_gpu) :: vgmold
type(psb_i_vect_gpu) :: igmold
! solver and preconditioner parameters
real(psb_dpk_) :: tol, err
integer :: itmax, iter, istop
integer :: nlev
! parallel environment parameters
type(psb_ctxt_type) :: ctxt
integer :: iam, np
! other variables
integer :: choice
integer :: i,info,j
integer(psb_epk_) :: amatsize, precsize, descsize
integer(psb_epk_) :: system_size
integer :: idim, ierr, ircode
real(psb_dpk_) :: resmx, resmxp
real(psb_dpk_) :: t1, t2, tprec
character(len=5) :: afmt='CSR'
character(len=20) :: name, kmethod
! initialize the parallel environment
call psb_init(ctxt)
call psb_info(ctxt,iam,np)
!
! BEWARE: if you have NGPUS per node, the default is to
! attach to mod(IAM,NGPUS)
!
call psb_gpu_init(ictxt)
if (iam < 0) then
! This should not happen, but just in case
call psb_exit(ctxt)
stop
endif
name='amg_dexample_gpu'
if(psb_get_errstatus() /= 0) goto 9999
info=psb_success_
call psb_set_errverbosity(2)
!
! Hello world
!
if (iam == psb_root_) then
write(*,*) 'Welcome to AMG4PSBLAS version: ',amg_version_string_
write(*,*) 'This is the ',trim(name),' sample program'
end if
write(*,*) 'Process ',iam,' running on device: ', psb_cuda_getDevice(),' out of', psb_cuda_getDeviceCount()
write(*,*) 'Process ',iam,' device ', psb_cuda_getDevice(),' is a: ', trim(psb_gpu_DeviceName())
! get parameters
call get_parms(ctxt,choice,idim,itmax,tol)
! allocate and fill in the coefficient matrix, rhs and initial guess
call psb_barrier(ctxt)
t1 = psb_wtime()
call amg_gen_pde3d(ctxt,idim,a,b,x,desc_a,afmt,&
& a1,a2,a3,b1,b2,b3,c,g,info)
call psb_barrier(ctxt)
t2 = psb_wtime() - t1
if(info /= psb_success_) then
info=psb_err_from_subroutine_
call psb_errpush(info,name)
goto 9999
end if
if (iam == psb_root_) write(*,'("Overall matrix creation time : ",es12.5)')t2
if (iam == psb_root_) write(*,'(" ")')
select case(choice)
case(1)
! initialize a V-cycle preconditioner with 4 Jacobi sweep
! and 8 Jacobi sweeps as coarsest-level solver
call P%init(ctxt,'ML',info)
call P%set('SMOOTHER_TYPE','JACOBI',info)
call P%set('SMOOTHER_SWEEPS',4,info)
call P%set('COARSE_SOLVE','JACOBI',info)
call P%set('COARSE_SWEEPS',8,info)
kmethod = 'CG'
case(2)
! initialize a V-cycle preconditioner based on the coupled aggregation relying on matching,
! with maximum size of aggregates equal to 8 and smoothed prolongators,
! Block-Jacobi smoother using approximate inverse INVK and
! and 4 sweeps of INVK on he coarsest level
call P%init(ctxt,'ML',info)
call P%set('PAR_AGGR_ALG','COUPLED',info)
call P%set('AGGR_TYPE','MATCHBOXP',info)
call P%set('AGGR_SIZE',8,info)
call P%set('ML_CYCLE','WCYCLE',info)
call P%set('SMOOTHER_SWEEPS',2,info)
call P%set('SUB_SOLVE','INVK',info)
call P%set('COARSE_SOLVE','INVK',info)
call P%set('COARSE_MAT','DIST',info)
kmethod = 'CG'
end select
call psb_barrier(ctxt)
t1 = psb_wtime()
! build the preconditioner
call P%hierarchy_build(A,desc_A,info)
call P%smoothers_build(A,desc_A,info, amold=agmold, vmold=vgmold, imold=igmold)
tprec = psb_wtime()-t1
call psb_amx(ctxt, tprec)
if (info /= psb_success_) then
call psb_errpush(psb_err_from_subroutine_,name,a_err='amg_precbld')
goto 9999
end if
! set the solver parameters and the initial guess
call psb_geall(x,desc_A,info)
call x%zero()
call psb_geasb(x,desc_A,info)
! Convert A, DESC_A,X,B to a GPU-enabled format
call desc_a%cnv(mold=igmold)
call a%cscnv(info,mold=agmold)
call psb_geasb(x,desc_a,info,mold=vgmold)
call psb_geasb(b,desc_a,info,mold=vgmold)
! solve Ax=b with preconditioned Krylov method
call psb_barrier(ctxt)
call prec%allocate_wrk(info)
t1 = psb_wtime()
call psb_krylov(kmethod,A,P,b,x,tol,desc_A,info,itmax,iter,err,itrace=1,istop=2)
t2 = psb_wtime() - t1
call psb_amx(ctxt,t2)
call prec%deallocate_wrk(info)
call psb_geall(r,desc_A,info)
call r%zero()
call psb_geasb(r,desc_A,info)
call psb_geaxpby(done,b,dzero,r,desc_A,info)
call psb_spmm(-done,A,x,done,r,desc_A,info)
resmx = psb_genrm2(r,desc_A,info)
resmxp = psb_geamax(r,desc_A,info)
amatsize = a%sizeof()
descsize = desc_a%sizeof()
precsize = p%sizeof()
system_size = desc_a%get_global_rows()
call psb_sum(ctxt,amatsize)
call psb_sum(ctxt,descsize)
call psb_sum(ctxt,precsize)
call P%descr(info)
if (iam == psb_root_) then
write(*,'(" ")')
write(*,'("Matrix from PDE example")')
write(*,'("Computed solution on ",i8," processors")')np
write(*,'("Linear system size : ",i12)') system_size
write(*,'("Krylov method : ",a)') kmethod
write(*,'("Iterations to convergence : ",i6)')iter
write(*,'("Error estimate on exit : ",es12.5)')err
write(*,'("Time to build prec. : ",es12.5)')tprec
write(*,'("Time to solve system : ",es12.5)')t2
write(*,'("Time per iteration : ",es12.5)')t2/(iter)
write(*,'("Total time : ",es12.5)')t2+tprec
write(*,'("Residual 2-norm : ",es12.5)')resmx
write(*,'("Residual inf-norm : ",es12.5)')resmxp
write(*,'("Total memory occupation for A : ",i12)')amatsize
write(*,'("Total memory occupation for DESC_A : ",i12)')descsize
write(*,'("Total memory occupation for PREC : ",i12)')precsize
end if
call psb_gefree(b, desc_A,info)
call psb_gefree(x, desc_A,info)
call psb_spfree(A, desc_A,info)
call P%free(info)
call psb_cdfree(desc_A,info)
call psb_gpu_exit()
call psb_exit(ctxt)
stop
9999 continue
call psb_error(ctxt)
contains
!
! get parameters from standard input
!
subroutine get_parms(ctxt,choice,idim,itmax,tol)
implicit none
type(psb_ctxt_type) :: ctxt
integer :: choice, idim, itmax
real(psb_dpk_) :: tol
integer :: iam, np, inp_unit
character(len=1024) :: filename
call psb_info(ctxt,iam,np)
if (iam == psb_root_) then
if (command_argument_count()>0) then
call get_command_argument(1,filename)
inp_unit = 30
open(inp_unit,file=filename,action='read',iostat=info)
if (info /= 0) then
write(psb_err_unit,*) 'Could not open file ',filename,' for input'
call psb_abort(ctxt)
stop
else
write(psb_err_unit,*) 'Opened file ',trim(filename),' for input'
end if
else
inp_unit=psb_inp_unit
end if
! read input parameters
call read_data(choice,inp_unit)
call read_data(idim,inp_unit)
call read_data(itmax,inp_unit)
call read_data(tol,inp_unit)
if (inp_unit /= psb_inp_unit) then
close(inp_unit)
end if
end if
call psb_bcast(ctxt,choice)
call psb_bcast(ctxt,idim)
call psb_bcast(ctxt,itmax)
call psb_bcast(ctxt,tol)
end subroutine get_parms
end program amg_dexample_gpu

@ -0,0 +1,182 @@
!
! AMG4PSBLAS version 1.0
! Algebraic Multigrid Package
! based on PSBLAS (Parallel Sparse BLAS version 3.7)
!
! (C) Copyright 2020
!
! 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.
module data_input
interface read_data
module procedure read_char, read_int,&
& read_double, read_single,&
& string_read_char, string_read_int,&
& string_read_double, string_read_single
end interface read_data
interface trim_string
module procedure trim_string
end interface
character(len=4096), private :: charbuf
character, private, parameter :: def_marker="!"
contains
subroutine read_char(val,file,marker)
character(len=*), intent(out) :: val
integer, intent(in) :: file
character(len=1), optional, intent(in) :: marker
read(file,'(a)')charbuf
call read_data(val,charbuf,marker)
end subroutine read_char
subroutine read_int(val,file,marker)
integer, intent(out) :: val
integer, intent(in) :: file
character(len=1), optional, intent(in) :: marker
read(file,'(a)')charbuf
call read_data(val,charbuf,marker)
end subroutine read_int
subroutine read_single(val,file,marker)
use psb_base_mod
real(psb_spk_), intent(out) :: val
integer, intent(in) :: file
character(len=1), optional, intent(in) :: marker
read(file,'(a)')charbuf
call read_data(val,charbuf,marker)
end subroutine read_single
subroutine read_double(val,file,marker)
use psb_base_mod
real(psb_dpk_), intent(out) :: val
integer, intent(in) :: file
character(len=1), optional, intent(in) :: marker
read(file,'(a)')charbuf
call read_data(val,charbuf,marker)
end subroutine read_double
subroutine string_read_char(val,file,marker)
character(len=*), intent(out) :: val
character(len=*), intent(in) :: file
character(len=1), optional, intent(in) :: marker
character(len=1) :: marker_
character(len=1024) :: charbuf
integer :: idx
if (present(marker)) then
marker_ = marker
else
marker_ = def_marker
end if
read(file,'(a)')charbuf
charbuf = adjustl(charbuf)
idx=index(charbuf,marker_)
if (idx == 0) idx = len(charbuf)+1
read(charbuf(1:idx-1),'(a)') val
end subroutine string_read_char
subroutine string_read_int(val,file,marker)
integer, intent(out) :: val
character(len=*), intent(in) :: file
character(len=1), optional, intent(in) :: marker
character(len=1) :: marker_
character(len=1024) :: charbuf
integer :: idx
if (present(marker)) then
marker_ = marker
else
marker_ = def_marker
end if
read(file,'(a)')charbuf
charbuf = adjustl(charbuf)
idx=index(charbuf,marker_)
if (idx == 0) idx = len(charbuf)+1
read(charbuf(1:idx-1),*) val
end subroutine string_read_int
subroutine string_read_single(val,file,marker)
use psb_base_mod
real(psb_spk_), intent(out) :: val
character(len=*), intent(in) :: file
character(len=1), optional, intent(in) :: marker
character(len=1) :: marker_
character(len=1024) :: charbuf
integer :: idx
if (present(marker)) then
marker_ = marker
else
marker_ = def_marker
end if
read(file,'(a)')charbuf
charbuf = adjustl(charbuf)
idx=index(charbuf,marker_)
if (idx == 0) idx = len(charbuf)+1
read(charbuf(1:idx-1),*) val
end subroutine string_read_single
subroutine string_read_double(val,file,marker)
use psb_base_mod
real(psb_dpk_), intent(out) :: val
character(len=*), intent(in) :: file
character(len=1), optional, intent(in) :: marker
character(len=1) :: marker_
character(len=1024) :: charbuf
integer :: idx
if (present(marker)) then
marker_ = marker
else
marker_ = def_marker
end if
read(file,'(a)')charbuf
charbuf = adjustl(charbuf)
idx=index(charbuf,marker_)
if (idx == 0) idx = len(charbuf)+1
read(charbuf(1:idx-1),*) val
end subroutine string_read_double
function trim_string(string,marker)
character(len=*), intent(in) :: string
character(len=1), optional, intent(in) :: marker
character(len=len(string)) :: trim_string
character(len=1) :: marker_
integer :: idx
if (present(marker)) then
marker_ = marker
else
marker_ = def_marker
end if
idx=index(string,marker_)
trim_string = adjustl(string(idx:))
end function trim_string
end module data_input

@ -0,0 +1,4 @@
1 ! Preconditioner choice
10 ! IDIM; domain size is idim**3
500 ! ITMAX
1.d-6 ! EPS
Loading…
Cancel
Save