|
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
|
|
|
|
"http://www.w3.org/TR/html4/loose.dtd">
|
|
|
|
<html >
|
|
|
|
<head><title>User Interface</title>
|
|
|
|
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
|
|
|
|
<meta name="generator" content="TeX4ht (https://tug.org/tex4ht/)">
|
|
|
|
<meta name="originator" content="TeX4ht (https://tug.org/tex4ht/)">
|
|
|
|
<!-- html,3 -->
|
|
|
|
<meta name="src" content="userhtml.tex">
|
|
|
|
<link rel="stylesheet" type="text/css" href="userhtml.css">
|
|
|
|
</head><body
|
|
|
|
>
|
|
|
|
<!--l. 1--><div class="crosslinks"><p class="noindent"><span
|
|
|
|
class="cmr-12">[</span><a
|
|
|
|
href="userhtmlse6.html" ><span
|
|
|
|
class="cmr-12">next</span></a><span
|
|
|
|
class="cmr-12">] [</span><a
|
|
|
|
href="userhtmlse4.html" ><span
|
|
|
|
class="cmr-12">prev</span></a><span
|
|
|
|
class="cmr-12">] [</span><a
|
|
|
|
href="userhtmlse4.html#tailuserhtmlse4.html" ><span
|
|
|
|
class="cmr-12">prev-tail</span></a><span
|
|
|
|
class="cmr-12">] [</span><a
|
|
|
|
href="#tailuserhtmlse5.html"><span
|
|
|
|
class="cmr-12">tail</span></a><span
|
|
|
|
class="cmr-12">] [</span><a
|
|
|
|
href="userhtml.html#userhtmlse5.html" ><span
|
|
|
|
class="cmr-12">up</span></a><span
|
|
|
|
class="cmr-12">] </span></p></div>
|
|
|
|
<h3 class="sectionHead"><span class="titlemark"><span
|
|
|
|
class="cmr-12">5 </span></span> <a
|
|
|
|
id="x15-140005"></a><span
|
|
|
|
class="cmr-12">User Interface</span></h3>
|
|
|
|
<!--l. 5--><p class="noindent" ><span
|
|
|
|
class="cmr-12">The basic user interface of AMG4PBLAS consists of eight methods. The six methods</span>
|
|
|
|
<span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-12">init</span></span></span><span
|
|
|
|
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-12">set</span></span></span><span
|
|
|
|
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-12">build</span></span></span><span
|
|
|
|
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-12">hierarchy_build</span></span></span><span
|
|
|
|
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-12">smoothers_build</span></span></span> <span
|
|
|
|
class="cmr-12">and </span><span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-12">apply</span></span></span> <span
|
|
|
|
class="cmr-12">encapsulate all the</span>
|
|
|
|
<span
|
|
|
|
class="cmr-12">functionalities for the setup and the application of any multilevel and one-level</span>
|
|
|
|
<span
|
|
|
|
class="cmr-12">preconditioner implemented in the package. The method </span><span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-12">free</span></span></span> <span
|
|
|
|
class="cmr-12">deallocates the</span>
|
|
|
|
<span
|
|
|
|
class="cmr-12">preconditioner data structure, while </span><span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-12">descr</span></span></span> <span
|
|
|
|
class="cmr-12">prints a description of the preconditioner</span>
|
|
|
|
<span
|
|
|
|
class="cmr-12">setup by the user. For backward compatibility, methods are also accessible as</span>
|
|
|
|
<span
|
|
|
|
class="cmr-12">stand-alone subroutines.</span>
|
|
|
|
<!--l. 16--><p class="indent" > <span
|
|
|
|
class="cmr-12">For each method, the same user interface is overloaded with respect to the real/</span>
|
|
|
|
<span
|
|
|
|
class="cmr-12">complex case and the single/double precision; arguments with appropriate data types</span>
|
|
|
|
<span
|
|
|
|
class="cmr-12">must be passed to the method, i.e.,</span>
|
|
|
|
<ul class="itemize1">
|
|
|
|
<li class="itemize"><span
|
|
|
|
class="cmr-12">the sparse matrix data structure, containing the matrix to be preconditioned,</span>
|
|
|
|
<span
|
|
|
|
class="cmr-12">must be of type </span><span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-12">psb_</span></span></span><span
|
|
|
|
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-12">spmat_type</span></span></span> <span
|
|
|
|
class="cmr-12">with </span><span
|
|
|
|
class="cmti-12">x </span><span
|
|
|
|
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-12">s</span></span></span> <span
|
|
|
|
class="cmr-12">for real single precision, </span><span
|
|
|
|
class="cmti-12">x</span>
|
|
|
|
<span
|
|
|
|
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-12">d</span></span></span> <span
|
|
|
|
class="cmr-12">for real double precision, </span><span
|
|
|
|
class="cmti-12">x </span><span
|
|
|
|
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-12">c</span></span></span> <span
|
|
|
|
class="cmr-12">for complex single precision, </span><span
|
|
|
|
class="cmti-12">x </span><span
|
|
|
|
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-12">z</span></span></span> <span
|
|
|
|
class="cmr-12">for</span>
|
|
|
|
<span
|
|
|
|
class="cmr-12">complex double precision;</span>
|
|
|
|
</li>
|
|
|
|
<li class="itemize"><span
|
|
|
|
class="cmr-12">the preconditioner data structure must be of type </span><span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-12">amg_</span></span></span><span
|
|
|
|
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-12">prec_type</span></span></span><span
|
|
|
|
class="cmr-12">, with </span><span
|
|
|
|
class="cmti-12">x</span>
|
|
|
|
<span
|
|
|
|
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-12">s</span></span></span><span
|
|
|
|
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-12">d</span></span></span><span
|
|
|
|
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-12">c</span></span></span><span
|
|
|
|
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-12">z</span></span></span><span
|
|
|
|
class="cmr-12">, according to the sparse matrix data structure;</span>
|
|
|
|
</li>
|
|
|
|
<li class="itemize"><span
|
|
|
|
class="cmr-12">the arrays containing the vectors </span><span
|
|
|
|
class="cmmi-12">v </span><span
|
|
|
|
class="cmr-12">and </span><span
|
|
|
|
class="cmmi-12">w </span><span
|
|
|
|
class="cmr-12">involved in the preconditioner</span>
|
|
|
|
<span
|
|
|
|
class="cmr-12">application </span><span
|
|
|
|
class="cmmi-12">w </span><span
|
|
|
|
class="cmr-12">= </span><span
|
|
|
|
class="cmmi-12">B</span><sup><span
|
|
|
|
class="cmsy-8">-</span><span
|
|
|
|
class="cmr-8">1</span></sup><span
|
|
|
|
class="cmmi-12">v </span><span
|
|
|
|
class="cmr-12">must be of type </span><span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-12">psb_</span></span></span><span
|
|
|
|
class="cmti-12">x</span><span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-12">vect_type</span></span></span> <span
|
|
|
|
class="cmr-12">with </span><span
|
|
|
|
class="cmti-12">x </span><span
|
|
|
|
class="cmr-12">= </span><span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-12">s</span></span></span><span
|
|
|
|
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-12">d</span></span></span><span
|
|
|
|
class="cmr-12">, </span><span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-12">c</span></span></span><span
|
|
|
|
class="cmr-12">,</span>
|
|
|
|
<span class="obeylines-h"><span class="verb"><span
|
|
|
|
class="cmtt-12">z</span></span></span><span
|
|
|
|
class="cmr-12">, in a manner completely analogous to the sparse matrix type;</span>
|
|
|
|
</li>
|
|
|
|
<li class="itemize"><span
|
|
|
|
class="cmr-12">real parameters defining the preconditioner must be declared according to</span>
|
|
|
|
<span
|
|
|
|
class="cmr-12">the precision of the sparse matrix and preconditioner data structures (see</span>
|
|
|
|
<span
|
|
|
|
class="cmr-12">Section</span><span
|
|
|
|
class="cmr-12"> </span><a
|
|
|
|
href="userhtmlsu8.html#x17-160005.2"><span
|
|
|
|
class="cmr-12">5.2</span><!--tex4ht:ref: sec:precset --></a><span
|
|
|
|
class="cmr-12">).</span></li></ul>
|
|
|
|
<!--l. 39--><p class="noindent" ><span
|
|
|
|
class="cmr-12">A description of each method is given in the remainder of this section.</span>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<div class="subsectionTOCS">
|
|
|
|
<span
|
|
|
|
class="cmr-12"> </span><span class="subsectionToc" ><span
|
|
|
|
class="cmr-12">5.1 </span><a
|
|
|
|
href="userhtmlsu7.html#x16-150005.1"><span
|
|
|
|
class="cmr-12">Method init</span></a></span>
|
|
|
|
<br /> <span
|
|
|
|
class="cmr-12"> </span><span class="subsectionToc" ><span
|
|
|
|
class="cmr-12">5.2 </span><a
|
|
|
|
href="userhtmlsu8.html#x17-160005.2"><span
|
|
|
|
class="cmr-12">Method set</span></a></span>
|
|
|
|
<br /> <span
|
|
|
|
class="cmr-12"> </span><span class="subsectionToc" ><span
|
|
|
|
class="cmr-12">5.3 </span><a
|
|
|
|
href="userhtmlsu9.html#x18-170005.3"><span
|
|
|
|
class="cmr-12">Method hierarchy</span><span
|
|
|
|
class="cmr-12">_build</span></a></span>
|
|
|
|
<br /> <span
|
|
|
|
class="cmr-12"> </span><span class="subsectionToc" ><span
|
|
|
|
class="cmr-12">5.4 </span><a
|
|
|
|
href="userhtmlsu10.html#x19-180005.4"><span
|
|
|
|
class="cmr-12">Method smoothers</span><span
|
|
|
|
class="cmr-12">_build</span></a></span>
|
|
|
|
<br /> <span
|
|
|
|
class="cmr-12"> </span><span class="subsectionToc" ><span
|
|
|
|
class="cmr-12">5.5 </span><a
|
|
|
|
href="userhtmlsu11.html#x20-190005.5"><span
|
|
|
|
class="cmr-12">Method build</span></a></span>
|
|
|
|
<br /> <span
|
|
|
|
class="cmr-12"> </span><span class="subsectionToc" ><span
|
|
|
|
class="cmr-12">5.6 </span><a
|
|
|
|
href="userhtmlsu12.html#x21-200005.6"><span
|
|
|
|
class="cmr-12">Method apply</span></a></span>
|
|
|
|
<br /> <span
|
|
|
|
class="cmr-12"> </span><span class="subsectionToc" ><span
|
|
|
|
class="cmr-12">5.7 </span><a
|
|
|
|
href="userhtmlsu13.html#x22-210005.7"><span
|
|
|
|
class="cmr-12">Method free</span></a></span>
|
|
|
|
<br /> <span
|
|
|
|
class="cmr-12"> </span><span class="subsectionToc" ><span
|
|
|
|
class="cmr-12">5.8 </span><a
|
|
|
|
href="userhtmlsu14.html#x23-220005.8"><span
|
|
|
|
class="cmr-12">Method descr</span></a></span>
|
|
|
|
<br /> <span
|
|
|
|
class="cmr-12"> </span><span class="subsectionToc" ><span
|
|
|
|
class="cmr-12">5.9 </span><a
|
|
|
|
href="userhtmlsu15.html#x24-230005.9"><span
|
|
|
|
class="cmr-12">Auxiliary Methods</span></a></span>
|
|
|
|
<br /> <span
|
|
|
|
class="cmr-12"> </span><span
|
|
|
|
class="cmr-12"> </span><span class="subsubsectionToc" ><span
|
|
|
|
class="cmr-12">5.9.1 </span><a
|
|
|
|
href="userhtmlsu15.html#x24-240005.9.1"><span
|
|
|
|
class="cmr-12">Method: dump</span></a></span>
|
|
|
|
<br /> <span
|
|
|
|
class="cmr-12"> </span><span
|
|
|
|
class="cmr-12"> </span><span class="subsubsectionToc" ><span
|
|
|
|
class="cmr-12">5.9.2 </span><a
|
|
|
|
href="userhtmlsu15.html#x24-250005.9.2"><span
|
|
|
|
class="cmr-12">Method: clone</span></a></span>
|
|
|
|
<br /> <span
|
|
|
|
class="cmr-12"> </span><span
|
|
|
|
class="cmr-12"> </span><span class="subsubsectionToc" ><span
|
|
|
|
class="cmr-12">5.9.3 </span><a
|
|
|
|
href="userhtmlsu15.html#x24-260005.9.3"><span
|
|
|
|
class="cmr-12">Method: sizeof</span></a></span>
|
|
|
|
<br /> <span
|
|
|
|
class="cmr-12"> </span><span
|
|
|
|
class="cmr-12"> </span><span class="subsubsectionToc" ><span
|
|
|
|
class="cmr-12">5.9.4 </span><a
|
|
|
|
href="userhtmlsu15.html#x24-270005.9.4"><span
|
|
|
|
class="cmr-12">Method: allocate</span><span
|
|
|
|
class="cmr-12">_wrk</span></a></span>
|
|
|
|
<br /> <span
|
|
|
|
class="cmr-12"> </span><span
|
|
|
|
class="cmr-12"> </span><span class="subsubsectionToc" ><span
|
|
|
|
class="cmr-12">5.9.5 </span><a
|
|
|
|
href="userhtmlsu15.html#x24-280005.9.5"><span
|
|
|
|
class="cmr-12">Method: free</span><span
|
|
|
|
class="cmr-12">_wrk</span></a></span>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
<!--l. 4--><div class="crosslinks"><p class="noindent"><span
|
|
|
|
class="cmr-12">[</span><a
|
|
|
|
href="userhtmlse6.html" ><span
|
|
|
|
class="cmr-12">next</span></a><span
|
|
|
|
class="cmr-12">] [</span><a
|
|
|
|
href="userhtmlse4.html" ><span
|
|
|
|
class="cmr-12">prev</span></a><span
|
|
|
|
class="cmr-12">] [</span><a
|
|
|
|
href="userhtmlse4.html#tailuserhtmlse4.html" ><span
|
|
|
|
class="cmr-12">prev-tail</span></a><span
|
|
|
|
class="cmr-12">] [</span><a
|
|
|
|
href="userhtmlse5.html" ><span
|
|
|
|
class="cmr-12">front</span></a><span
|
|
|
|
class="cmr-12">] [</span><a
|
|
|
|
href="userhtml.html#userhtmlse5.html" ><span
|
|
|
|
class="cmr-12">up</span></a><span
|
|
|
|
class="cmr-12">] </span></p></div>
|
|
|
|
<!--l. 4--><p class="indent" > <a
|
|
|
|
id="tailuserhtmlse5.html"></a>
|
|
|
|
</body></html>
|