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.
psblas3/docs/html/userhtmlse11.html

821 lines
33 KiB
HTML

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html >
<head><title>Iterative Methods</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">[<a
href="userhtmlse10.html" >prev</a>] [<a
href="userhtmlse10.html#tailuserhtmlse10.html" >prev-tail</a>] [<a
href="userhtmlse8.html#tailuserhtmlse11.html">tail</a>] [<a
href="userhtml.html# " >up</a>] </p></div>
<h3 class="sectionHead"><span class="titlemark">11 </span> <a
id="x17-14300011"></a>Iterative Methods</h3>
<!--l. 4--><p class="noindent" >In this chapter we provide routines for preconditioners and iterative methods. The
interfaces for iterative methods are available in the module <span class="obeylines-h"><span class="verb"><span
class="cmtt-10">psb_linsolve_mod</span></span></span>.
<h4 class="subsectionHead"><span class="titlemark">11.1 </span> <a
id="x17-14400011.1"></a>psb_krylov &#8212; Krylov Methods Driver Routine</h4>
<!--l. 17--><p class="noindent" >This subroutine is a driver that provides a general interface for all the Krylov-Subspace
family methods implemented in PSBLAS version 2.
<!--l. 20--><p class="indent" > The stopping criterion can take the following values:
<dl class="description"><dt class="description">
<!--l. 22--><p class="noindent" >
<span
class="pplb7t-">1</span> </dt><dd
class="description">
<!--l. 22--><p class="noindent" >normwise backward error in the infinity norm; the iteration is stopped
when
<div class="math-display" >
<img
src="userhtml30x.png" alt=" ------&#x2225;ri&#x2225;------
err = (&#x2225;A &#x2225;&#x2225;xi&#x2225; + &#x2225;b&#x2225;) &#x003C; eps
" class="math-display" ></div>
<!--l. 24--><p class="nopar" >
</dd><dt class="description">
<!--l. 25--><p class="noindent" >
<span
class="pplb7t-">2</span> </dt><dd
class="description">
<!--l. 25--><p class="noindent" >Relative residual in the 2-norm; the iteration is stopped when
<div class="math-display" >
<img
src="userhtml31x.png" alt=" &#x2225;ri&#x2225;
err = &#x2225;b&#x2225;-2 &#x003C; eps
" class="math-display" ></div>
<!--l. 27--><p class="nopar" >
</dd><dt class="description">
<!--l. 28--><p class="noindent" >
<span
class="pplb7t-">3</span> </dt><dd
class="description">
<!--l. 28--><p class="noindent" >Relative residual reduction in the 2-norm; the iteration is stopped when
<div class="math-display" >
<img
src="userhtml32x.png" alt=" &#x2225;ri&#x2225;
err = &#x2225;r0&#x2225;2 &#x003C; eps
" class="math-display" ></div>
<!--l. 30--><p class="nopar" ></dd></dl>
<!--l. 32--><p class="noindent" >The behaviour is controlled by the istop argument (see later). In the above formulae, <span
class="zplmr7m-">x</span><sub><span
class="zplmr7m-x-x-76">i</span></sub>
is the tentative solution and <span
class="zplmr7m-">r</span><sub><span
class="zplmr7m-x-x-76">i</span></sub> <span
class="zplmr7t-">= </span><span
class="zplmr7m-">b</span><span
class="zplmr7y-">-</span><span
class="zplmr7m-">Ax</span><sub><span
class="zplmr7m-x-x-76">i</span></sub> the corresponding residual at the <span
class="zplmr7m-">i</span>-th
iteration.
<!--l. 37-->
<pre class="lstlisting" id="listing-218"><span class="label"><a
id="x17-144001r1"></a></span><span style="color:#000000"><span
class="cmtt-10">call</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">psb_krylov</span></span><span style="color:#000000"><span
class="cmtt-10">(</span></span><span style="color:#000000"><span
class="cmtt-10">method</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">a</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">prec</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">b</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">x</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">eps</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">desc_a</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">info</span></span><span style="color:#000000"><span
class="cmtt-10">,&amp;</span></span>
<span class="label"><a
id="x17-144002r2"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span style="color:#000000"><span
class="cmtt-10">&amp;</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">itmax</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">iter</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">err</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">itrace</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">irst</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">istop</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">cond</span></span><span style="color:#000000"><span
class="cmtt-10">)</span></span></pre>
<!--l. 42--><p class="indent" >
<dl class="description"><dt class="description">
<!--l. 43--><p class="noindent" >
<span
class="pplb7t-">Type:</span> </dt><dd
class="description">
<!--l. 43--><p class="noindent" >Synchronous.
</dd><dt class="description">
<!--l. 44--><p class="noindent" >
<span
class="pplb7t-">On Entry</span> </dt><dd
class="description">
<!--l. 44--><p class="noindent" >
</dd><dt class="description">
<!--l. 45--><p class="noindent" >
<span
class="pplb7t-">method</span> </dt><dd
class="description">
<!--l. 45--><p class="noindent" >a string that defines the iterative method to be used. Supported values
are:
<dl class="description"><dt class="description">
<!--l. 48--><p class="noindent" >
<span
class="pplb7t-">CG:</span> </dt><dd
class="description">
<!--l. 48--><p class="noindent" >the Conjugate Gradient method;
</dd><dt class="description">
<!--l. 49--><p class="noindent" >
<span
class="pplb7t-">CGS:</span> </dt><dd
class="description">
<!--l. 49--><p class="noindent" >the Conjugate Gradient Stabilized method;
</dd><dt class="description">
<!--l. 51--><p class="noindent" >
<span
class="pplb7t-">GCR:</span> </dt><dd
class="description">
<!--l. 51--><p class="noindent" >the Generalized Conjugate Residual method;
</dd><dt class="description">
<!--l. 52--><p class="noindent" >
<span
class="pplb7t-">FCG:</span> </dt><dd
class="description">
<!--l. 52--><p class="noindent" >the Flexible Conjugate Gradient method<span class="footnote-mark"><a
href="userhtml18.html#fn5x0"><sup class="textsuperscript">5</sup></a></span><a
id="x17-144003f5"></a> ;
</dd><dt class="description">
<!--l. 55--><p class="noindent" >
<span
class="pplb7t-">BICG:</span> </dt><dd
class="description">
<!--l. 55--><p class="noindent" >the Bi-Conjugate Gradient method;
</dd><dt class="description">
<!--l. 56--><p class="noindent" >
<span
class="pplb7t-">BICGSTAB:</span> </dt><dd
class="description">
<!--l. 56--><p class="noindent" >the Bi-Conjugate Gradient Stabilized method;
</dd><dt class="description">
<!--l. 57--><p class="noindent" >
<span
class="pplb7t-">BICGSTABL:</span> </dt><dd
class="description">
<!--l. 57--><p class="noindent" >the Bi-Conjugate Gradient Stabilized method with restarting;
</dd><dt class="description">
<!--l. 58--><p class="noindent" >
<span
class="pplb7t-">RGMRES:</span> </dt><dd
class="description">
<!--l. 58--><p class="noindent" >the Generalized Minimal Residual method with restarting.</dd></dl>
</dd><dt class="description">
<!--l. 60--><p class="noindent" >
<span
class="pplb7t-">a</span> </dt><dd
class="description">
<!--l. 60--><p class="noindent" >the local portion of global sparse matrix <span
class="zplmr7m-">A</span>. <br
class="newline" />Scope: <span
class="pplb7t-">local </span><br
class="newline" />Type: <span
class="pplb7t-">required</span><br
class="newline" />Intent: <span
class="pplb7t-">in</span>.<br
class="newline" />Specified as: a structured data of type <a
href="userhtmlse3.html#spdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_Tspmat</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 66--><p class="noindent" >
<span
class="pplb7t-">prec</span> </dt><dd
class="description">
<!--l. 66--><p class="noindent" >The data structure containing the preconditioner.<br
class="newline" />Scope: <span
class="pplb7t-">local </span><br
class="newline" />Type: <span
class="pplb7t-">required</span><br
class="newline" />Intent: <span
class="pplb7t-">in</span>.<br
class="newline" />Specified as: a structured data of type <a
href="userhtmlse3.html#precdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_Tprec</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 71--><p class="noindent" >
<span
class="pplb7t-">b</span> </dt><dd
class="description">
<!--l. 71--><p class="noindent" >The RHS vector. <br
class="newline" />Scope: <span
class="pplb7t-">local </span><br
class="newline" />Type: <span
class="pplb7t-">required</span><br
class="newline" />Intent: <span
class="pplb7t-">in</span>.<br
class="newline" />Specified as: a rank one array or an object of type <a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 76--><p class="noindent" >
<span
class="pplb7t-">x</span> </dt><dd
class="description">
<!--l. 76--><p class="noindent" >The initial guess. <br
class="newline" />Scope: <span
class="pplb7t-">local </span><br
class="newline" />Type: <span
class="pplb7t-">required</span><br
class="newline" />Intent: <span
class="pplb7t-">inout</span>.<br
class="newline" />Specified as: a rank one array or an object of type <a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 81--><p class="noindent" >
<span
class="pplb7t-">eps</span> </dt><dd
class="description">
<!--l. 81--><p class="noindent" >The stopping tolerance. <br
class="newline" />Scope: <span
class="pplb7t-">global </span><br
class="newline" />Type: <span
class="pplb7t-">required</span><br
class="newline" />Intent: <span
class="pplb7t-">in</span>.<br
class="newline" />Specified as: a real number.
</dd><dt class="description">
<!--l. 86--><p class="noindent" >
<span
class="pplb7t-">desc</span><span
class="pplb7t-">_a</span> </dt><dd
class="description">
<!--l. 86--><p class="noindent" >contains data structures for communications.<br
class="newline" />Scope: <span
class="pplb7t-">local </span><br
class="newline" />Type: <span
class="pplb7t-">required</span><br
class="newline" />Intent: <span
class="pplb7t-">in</span>.<br
class="newline" />Specified as: a structured data of type <a
href="userhtmlse3.html#descdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_desc</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 91--><p class="noindent" >
<span
class="pplb7t-">itmax</span> </dt><dd
class="description">
<!--l. 91--><p class="noindent" >The maximum number of iterations to perform.<br
class="newline" />Scope: <span
class="pplb7t-">global </span><br
class="newline" />Type: <span
class="pplb7t-">optional</span><br
class="newline" />Intent: <span
class="pplb7t-">in</span>.<br
class="newline" />Default: <span
class="zplmr7m-">itmax </span><span
class="zplmr7t-">= </span>1000.<br
class="newline" />Specified as: an integer variable <span
class="zplmr7m-">itmax </span><span
class="zplmr7y-">&#x2265; </span>1.
</dd><dt class="description">
<!--l. 97--><p class="noindent" >
<span
class="pplb7t-">itrace</span> </dt><dd
class="description">
<!--l. 97--><p class="noindent" >If <span
class="zplmr7m-">&#x003E; </span>0 print out an informational message about convergence every <span
class="zplmr7m-">itrace</span>
iterations. If <span
class="zplmr7t-">= </span>0 print a message in case of convergence failure.<br
class="newline" />Scope: <span
class="pplb7t-">global </span><br
class="newline" />Type: <span
class="pplb7t-">optional</span><br
class="newline" />Intent: <span
class="pplb7t-">in</span>.<br
class="newline" />Default: <span
class="zplmr7m-">itrace </span><span
class="zplmr7t-">= </span><span
class="zplmr7y-">-</span>1.<br
class="newline" />
</dd><dt class="description">
<!--l. 104--><p class="noindent" >
<span
class="pplb7t-">irst</span> </dt><dd
class="description">
<!--l. 104--><p class="noindent" >An integer specifying the restart parameter.<br
class="newline" />Scope: <span
class="pplb7t-">global </span><br
class="newline" />Type: <span
class="pplb7t-">optional</span>.<br
class="newline" />Intent: <span
class="pplb7t-">in</span>.<br
class="newline" />Values: <span
class="zplmr7m-">irst &#x003E; </span>0. This is employed for the BiCGSTABL or RGMRES methods,
otherwise it is ignored.
</dd><dt class="description">
<!--l. 111--><p class="noindent" >
<span
class="pplb7t-">istop</span> </dt><dd
class="description">
<!--l. 111--><p class="noindent" >An integer specifying the stopping criterion.<br
class="newline" />Scope: <span
class="pplb7t-">global </span><br
class="newline" />Type: <span
class="pplb7t-">optional</span>.<br
class="newline" />Intent: <span
class="pplb7t-">in</span>.<br
class="newline" />Values: 1: use the normwise backward error, 2: use the scaled 2-norm
of the residual, 3: use the residual reduction in the 2-norm. Default:
2.
</dd><dt class="description">
<!--l. 117--><p class="noindent" >
<span
class="pplb7t-">On Return</span> </dt><dd
class="description">
<!--l. 117--><p class="noindent" >
</dd><dt class="description">
<!--l. 118--><p class="noindent" >
<span
class="pplb7t-">x</span> </dt><dd
class="description">
<!--l. 118--><p class="noindent" >The computed solution. <br
class="newline" />Scope: <span
class="pplb7t-">local </span><br
class="newline" />Type: <span
class="pplb7t-">required</span><br
class="newline" />Intent: <span
class="pplb7t-">inout</span>.<br
class="newline" />Specified as: a rank one array or an object of type <a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 123--><p class="noindent" >
<span
class="pplb7t-">iter</span> </dt><dd
class="description">
<!--l. 123--><p class="noindent" >The number of iterations performed.<br
class="newline" />Scope: <span
class="pplb7t-">global </span><br
class="newline" />Type: <span
class="pplb7t-">optional</span><br
class="newline" />Intent: <span
class="pplb7t-">out</span>.<br
class="newline" />Returned as: an integer variable.
</dd><dt class="description">
<!--l. 128--><p class="noindent" >
<span
class="pplb7t-">err</span> </dt><dd
class="description">
<!--l. 128--><p class="noindent" >The convergence estimate on exit.<br
class="newline" />Scope: <span
class="pplb7t-">global </span><br
class="newline" />Type: <span
class="pplb7t-">optional</span><br
class="newline" />Intent: <span
class="pplb7t-">out</span>.<br
class="newline" />Returned as: a real number.
</dd><dt class="description">
<!--l. 133--><p class="noindent" >
<span
class="pplb7t-">cond</span> </dt><dd
class="description">
<!--l. 133--><p class="noindent" >An estimate of the condition number of matrix <span
class="zplmr7m-">A</span>; only available with the <span
class="zplmr7m-">CG</span>
method on real data.<br
class="newline" />Scope: <span
class="pplb7t-">global </span><br
class="newline" />Type: <span
class="pplb7t-">optional</span><br
class="newline" />Intent: <span
class="pplb7t-">out</span>.<br
class="newline" />Returned as: a real number. A correct result will be greater than or
equal to one; if specified for non-real data, or an error occurred, zero is
returned.
</dd><dt class="description">
<!--l. 141--><p class="noindent" >
<span
class="pplb7t-">info</span> </dt><dd
class="description">
<!--l. 141--><p class="noindent" >Error code.<br
class="newline" />Scope: <span
class="pplb7t-">local </span><br
class="newline" />Type: <span
class="pplb7t-">required </span><br
class="newline" />Intent: <span
class="pplb7t-">out</span>.<br
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
<h4 class="subsectionHead"><span class="titlemark">11.2 </span> <a
id="x17-14500011.2"></a>psb_richardson &#8212; Richardson Iteration Driver Routine</h4>
<!--l. 158--><p class="noindent" >This subroutine is a driver implementig a Richardson iteration
<div class="math-display" >
<img
src="userhtml33x.png" alt="x = M - 1(b - Ax )+ x ,
k+1 k k
" class="math-display" ></div>
<!--l. 159--><p class="nopar" > with the preconditioner operator <span
class="zplmr7m-">M </span>defined in the previous section.
<!--l. 162--><p class="indent" > The stopping criterion can take the following values:
<dl class="description"><dt class="description">
<!--l. 164--><p class="noindent" >
<span
class="pplb7t-">1</span> </dt><dd
class="description">
<!--l. 164--><p class="noindent" >normwise backward error in the infinity norm; the iteration is stopped
when
<div class="math-display" >
<img
src="userhtml34x.png" alt=" ------&#x2225;ri&#x2225;------
err = (&#x2225;A &#x2225;&#x2225;xi&#x2225; + &#x2225;b&#x2225;) &#x003C; eps
" class="math-display" ></div>
<!--l. 166--><p class="nopar" >
</dd><dt class="description">
<!--l. 167--><p class="noindent" >
<span
class="pplb7t-">2</span> </dt><dd
class="description">
<!--l. 167--><p class="noindent" >Relative residual in the 2-norm; the iteration is stopped when
<div class="math-display" >
<img
src="userhtml35x.png" alt=" &#x2225;ri&#x2225;-
err = &#x2225;b&#x2225; 2 &#x003C; eps
" class="math-display" ></div>
<!--l. 169--><p class="nopar" >
</dd><dt class="description">
<!--l. 170--><p class="noindent" >
<span
class="pplb7t-">3</span> </dt><dd
class="description">
<!--l. 170--><p class="noindent" >Relative residual reduction in the 2-norm; the iteration is stopped when
<div class="math-display" >
<img
src="userhtml36x.png" alt=" -&#x2225;ri&#x2225;-
err = &#x2225;r0&#x2225;2 &#x003C; eps
" class="math-display" ></div>
<!--l. 172--><p class="nopar" ></dd></dl>
<!--l. 174--><p class="noindent" >The behaviour is controlled by the istop argument (see later). In the above formulae, <span
class="zplmr7m-">x</span><sub><span
class="zplmr7m-x-x-76">i</span></sub>
is the tentative solution and <span
class="zplmr7m-">r</span><sub><span
class="zplmr7m-x-x-76">i</span></sub> <span
class="zplmr7t-">= </span><span
class="zplmr7m-">b</span><span
class="zplmr7y-">-</span><span
class="zplmr7m-">Ax</span><sub><span
class="zplmr7m-x-x-76">i</span></sub> the corresponding residual at the <span
class="zplmr7m-">i</span>-th
iteration.
<!--l. 179-->
<pre class="lstlisting" id="listing-219"><span class="label"><a
id="x17-145001r1"></a></span><span style="color:#000000"><span
class="cmtt-10">call</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">psb_richardson</span></span><span style="color:#000000"><span
class="cmtt-10">(</span></span><span style="color:#000000"><span
class="cmtt-10">a</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">prec</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">b</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">x</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">eps</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">desc_a</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">info</span></span><span style="color:#000000"><span
class="cmtt-10">,&amp;</span></span>
<span class="label"><a
id="x17-145002r2"></a></span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span
class="cmtt-10">&#x00A0;</span><span style="color:#000000"><span
class="cmtt-10">&amp;</span></span><span style="color:#000000"> </span><span style="color:#000000"><span
class="cmtt-10">itmax</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">iter</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">err</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">itrace</span></span><span style="color:#000000"><span
class="cmtt-10">,</span></span><span style="color:#000000"><span
class="cmtt-10">istop</span></span><span style="color:#000000"><span
class="cmtt-10">)</span></span></pre>
<!--l. 184--><p class="indent" >
<dl class="description"><dt class="description">
<!--l. 185--><p class="noindent" >
<span
class="pplb7t-">Type:</span> </dt><dd
class="description">
<!--l. 185--><p class="noindent" >Synchronous.
</dd><dt class="description">
<!--l. 186--><p class="noindent" >
<span
class="pplb7t-">On Entry</span> </dt><dd
class="description">
<!--l. 186--><p class="noindent" >
</dd><dt class="description">
<!--l. 187--><p class="noindent" >
<span
class="pplb7t-">a</span> </dt><dd
class="description">
<!--l. 187--><p class="noindent" >the local portion of global sparse matrix <span
class="zplmr7m-">A</span>. <br
class="newline" />Scope: <span
class="pplb7t-">local </span><br
class="newline" />Type: <span
class="pplb7t-">required</span><br
class="newline" />Intent: <span
class="pplb7t-">in</span>.<br
class="newline" />Specified as: a structured data of type <a
href="userhtmlse3.html#spdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_Tspmat</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 193--><p class="noindent" >
<span
class="pplb7t-">prec</span> </dt><dd
class="description">
<!--l. 193--><p class="noindent" >The data structure containing the preconditioner.<br
class="newline" />Scope: <span
class="pplb7t-">local </span><br
class="newline" />Type: <span
class="pplb7t-">required</span><br
class="newline" />Intent: <span
class="pplb7t-">in</span>.<br
class="newline" />Specified as: a structured data of type <a
href="userhtmlse3.html#precdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_Tprec</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 198--><p class="noindent" >
<span
class="pplb7t-">b</span> </dt><dd
class="description">
<!--l. 198--><p class="noindent" >The RHS vector. <br
class="newline" />Scope: <span
class="pplb7t-">local </span><br
class="newline" />Type: <span
class="pplb7t-">required</span><br
class="newline" />Intent: <span
class="pplb7t-">in</span>.<br
class="newline" />Specified as: a rank one array or an object of type <a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 203--><p class="noindent" >
<span
class="pplb7t-">x</span> </dt><dd
class="description">
<!--l. 203--><p class="noindent" >The initial guess. <br
class="newline" />Scope: <span
class="pplb7t-">local </span><br
class="newline" />Type: <span
class="pplb7t-">required</span><br
class="newline" />Intent: <span
class="pplb7t-">inout</span>.<br
class="newline" />Specified as: a rank one array or an object of type <a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 208--><p class="noindent" >
<span
class="pplb7t-">eps</span> </dt><dd
class="description">
<!--l. 208--><p class="noindent" >The stopping tolerance. <br
class="newline" />Scope: <span
class="pplb7t-">global </span><br
class="newline" />Type: <span
class="pplb7t-">required</span><br
class="newline" />Intent: <span
class="pplb7t-">in</span>.<br
class="newline" />Specified as: a real number.
</dd><dt class="description">
<!--l. 213--><p class="noindent" >
<span
class="pplb7t-">desc</span><span
class="pplb7t-">_a</span> </dt><dd
class="description">
<!--l. 213--><p class="noindent" >contains data structures for communications.<br
class="newline" />Scope: <span
class="pplb7t-">local </span><br
class="newline" />Type: <span
class="pplb7t-">required</span><br
class="newline" />Intent: <span
class="pplb7t-">in</span>.<br
class="newline" />Specified as: a structured data of type <a
href="userhtmlse3.html#descdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_desc</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 218--><p class="noindent" >
<span
class="pplb7t-">itmax</span> </dt><dd
class="description">
<!--l. 218--><p class="noindent" >The maximum number of iterations to perform.<br
class="newline" />Scope: <span
class="pplb7t-">global </span><br
class="newline" />Type: <span
class="pplb7t-">optional</span><br
class="newline" />Intent: <span
class="pplb7t-">in</span>.<br
class="newline" />Default: <span
class="zplmr7m-">itmax </span><span
class="zplmr7t-">= </span>1000.<br
class="newline" />Specified as: an integer variable <span
class="zplmr7m-">itmax </span><span
class="zplmr7y-">&#x2265; </span>1.
</dd><dt class="description">
<!--l. 224--><p class="noindent" >
<span
class="pplb7t-">itrace</span> </dt><dd
class="description">
<!--l. 224--><p class="noindent" >If <span
class="zplmr7m-">&#x003E; </span>0 print out an informational message about convergence every <span
class="zplmr7m-">itrace</span>
iterations. If <span
class="zplmr7t-">= </span>0 print a message in case of convergence failure.<br
class="newline" />Scope: <span
class="pplb7t-">global </span><br
class="newline" />Type: <span
class="pplb7t-">optional</span><br
class="newline" />Intent: <span
class="pplb7t-">in</span>.<br
class="newline" />Default: <span
class="zplmr7m-">itrace </span><span
class="zplmr7t-">= </span><span
class="zplmr7y-">-</span>1.<br
class="newline" />
</dd><dt class="description">
<!--l. 232--><p class="noindent" >
<span
class="pplb7t-">istop</span> </dt><dd
class="description">
<!--l. 232--><p class="noindent" >An integer specifying the stopping criterion.<br
class="newline" />Scope: <span
class="pplb7t-">global </span><br
class="newline" />Type: <span
class="pplb7t-">optional</span>.<br
class="newline" />Intent: <span
class="pplb7t-">in</span>.<br
class="newline" />Values: 1: use the normwise backward error, 2: use the scaled 2-norm of
the residual, 3: use the residual reduction in the 2-norm. Default: 2.
</dd><dt class="description">
<!--l. 238--><p class="noindent" >
<span
class="pplb7t-">On Return</span> </dt><dd
class="description">
<!--l. 238--><p class="noindent" >
</dd><dt class="description">
<!--l. 239--><p class="noindent" >
<span
class="pplb7t-">x</span> </dt><dd
class="description">
<!--l. 239--><p class="noindent" >The computed solution. <br
class="newline" />Scope: <span
class="pplb7t-">local </span><br
class="newline" />Type: <span
class="pplb7t-">required</span><br
class="newline" />Intent: <span
class="pplb7t-">inout</span>.<br
class="newline" />Specified as: a rank one array or an object of type <a
href="userhtmlse3.html#vdata"><span
class="cmtt-10">psb</span><span
class="cmtt-10">_T</span><span
class="cmtt-10">_vect</span><span
class="cmtt-10">_type</span></a>.
</dd><dt class="description">
<!--l. 244--><p class="noindent" >
<span
class="pplb7t-">iter</span> </dt><dd
class="description">
<!--l. 244--><p class="noindent" >The number of iterations performed.<br
class="newline" />Scope: <span
class="pplb7t-">global </span><br
class="newline" />Type: <span
class="pplb7t-">optional</span><br
class="newline" />Intent: <span
class="pplb7t-">out</span>.<br
class="newline" />Returned as: an integer variable.
</dd><dt class="description">
<!--l. 249--><p class="noindent" >
<span
class="pplb7t-">err</span> </dt><dd
class="description">
<!--l. 249--><p class="noindent" >The convergence estimate on exit.<br
class="newline" />Scope: <span
class="pplb7t-">global </span><br
class="newline" />Type: <span
class="pplb7t-">optional</span><br
class="newline" />Intent: <span
class="pplb7t-">out</span>.<br
class="newline" />Returned as: a real number.
</dd><dt class="description">
<!--l. 254--><p class="noindent" >
<span
class="pplb7t-">info</span> </dt><dd
class="description">
<!--l. 254--><p class="noindent" >Error code.<br
class="newline" />Scope: <span
class="pplb7t-">local </span><br
class="newline" />Type: <span
class="pplb7t-">required </span><br
class="newline" />Intent: <span
class="pplb7t-">out</span>.<br
class="newline" />An integer value; 0 means no error has been detected.</dd></dl>
<!--l. 1--><div class="crosslinks"><p class="noindent">[<a
href="userhtmlse10.html" >prev</a>] [<a
href="userhtmlse10.html#tailuserhtmlse10.html" >prev-tail</a>] [<a
href="userhtmlse11.html" >front</a>] [<a
href="userhtml.html# " >up</a>] </p></div>
<!--l. 1--><p class="indent" > <a
id="tailuserhtmlse11.html"></a>
</body></html>