You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
amg4psblas/docs/html/userhtmlse5.html

274 lines
12 KiB
HTML

<!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">&#x00A0;</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">&#x00A0;</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">&#x00A0;</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">&#x00A0;</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">&#x00A0;</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">&#x00A0;</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">&#x00A0;</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">&#x00A0;</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">&#x00A0;</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">&#x00A0;</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">&#x00A0;</span><span
class="cmr-12">&#x00A0;</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">&#x00A0;</span><span
class="cmr-12">&#x00A0;</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">&#x00A0;</span><span
class="cmr-12">&#x00A0;</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">&#x00A0;</span><span
class="cmr-12">&#x00A0;</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">&#x00A0;</span><span
class="cmr-12">&#x00A0;</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>