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/node20.html

955 lines
44 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!--Converted with LaTeX2HTML 2018 (Released Feb 1, 2018) -->
<HTML>
<HEAD>
<TITLE>Method set</TITLE>
<META NAME="description" CONTENT="Method set">
<META NAME="keywords" CONTENT="userhtml">
<META NAME="resource-type" CONTENT="document">
<META NAME="distribution" CONTENT="global">
<META NAME="Generator" CONTENT="LaTeX2HTML v2018">
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
<LINK REL="STYLESHEET" HREF="userhtml.css">
<LINK REL="next" HREF="node21.html">
<LINK REL="previous" HREF="node19.html">
<LINK REL="up" HREF="node18.html">
<LINK REL="next" HREF="node21.html">
</HEAD>
<BODY >
<DIV CLASS="navigation"><!--Navigation Panel-->
<A NAME="tex2html344"
HREF="node21.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html340"
HREF="node18.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html334"
HREF="node19.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html342"
HREF="node2.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html345"
HREF="node21.html">Method hierarchy_build</A>
<B> Up:</B> <A NAME="tex2html341"
HREF="node18.html">User Interface</A>
<B> Previous:</B> <A NAME="tex2html335"
HREF="node19.html">Method init</A>
&nbsp; <B> <A NAME="tex2html343"
HREF="node2.html">Contents</A></B>
<BR>
<BR></DIV>
<!--End of Navigation Panel-->
<H2><A NAME="SECTION00082000000000000000"></A><A NAME="sec:precset"></A>
<BR>
Method set
</H2><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<DIV ALIGN="CENTER"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><code>call p%set(what,val,info [,ilev, ilmax, pos, idx])</code>
</BIG></BIG></BIG></DIV><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
This method sets the parameters defining the preconditioner <code>p</code>. More
precisely, the parameter identified by <code>what</code> is assigned the value
contained in <code>val</code>.
</BIG></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><B>Arguments</B></BIG> </BIG></BIG></BIG>
<P></P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG><TABLE CELLPADDING=3>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
<code>what</code> </BIG></BIG></BIG></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>character(len=*)</code>. </BIG></BIG></BIG></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
</BIG></BIG></BIG></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The parameter to be set. It can be specified through its name;
the string is case-insensitive. See
Tables&nbsp;<A HREF="#tab:p_cycle">2</A>-<A HREF="#tab:p_smoother_1">8</A>.</BIG></BIG></BIG></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
<code>val </code> </BIG></BIG></BIG></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>integer</code> <SPAN CLASS="textit">or</SPAN> <code>character(len=*)</code> <SPAN CLASS="textit">or</SPAN>
<code>real(psb_spk_)</code> <SPAN CLASS="textit">or</SPAN> <code>real(psb_dpk_)</code>,
<code>intent(in)</code>.</BIG></BIG></BIG></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
</BIG></BIG></BIG></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> The value of the parameter to be set. The list of allowed
values and the corresponding data types is given in
Tables&nbsp;<A HREF="#tab:p_cycle">2</A>-<A HREF="#tab:p_smoother_1">8</A>.
When the value is of type <code>character(len=*)</code>,
it is also treated as case insensitive.</BIG></BIG></BIG></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
<code>info</code> </BIG></BIG></BIG></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>integer, intent(out)</code>.</BIG></BIG></BIG></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
</BIG></BIG></BIG></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> Error code. If no error, 0 is returned. See Section&nbsp;<A HREF="node34.html#sec:errors">8</A>
for details.</BIG></BIG></BIG></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
<code>ilev</code> </BIG></BIG></BIG></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>integer, optional, intent(in)</code>.</BIG></BIG></BIG></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
</BIG></BIG></BIG></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> For the multilevel preconditioner, the level at which the
preconditioner parameter has to be set.
The levels are numbered in increasing
order starting from the finest one, i.e., level 1 is the finest level.
If <code>ilev</code> is not present, the parameter identified by <code>what</code>
is set at all the appropriate levels (see
Tables&nbsp;<A HREF="#tab:p_cycle">2</A>-<A HREF="#tab:p_smoother_1">8</A>).</BIG></BIG></BIG></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
<code>ilmax</code> </BIG></BIG></BIG></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>integer, optional, intent(in)</code>.</BIG></BIG></BIG></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
</BIG></BIG></BIG></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> For the multilevel preconditioner, when both
<code>ilev</code> and <code>ilmax</code> are present, the settings
are applied at all levels <code>ilev:ilmax</code>. When
<code>ilev</code> is present but <code>ilmax</code> is not, then
the default is <code>ilmax=ilev</code>.
The levels are numbered in increasing
order starting from the finest one, i.e., level 1 is the finest level. </BIG></BIG></BIG></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
<code>pos</code> </BIG></BIG></BIG></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>charater(len=*), optional, intent(in)</code>.</BIG></BIG></BIG></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
</BIG></BIG></BIG></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> Whether the other arguments apply only to the pre-smoother (<code>'PRE'</code>)
or to the post-smoother (<code>'POST'</code>). If <code>pos</code> is not present,
the other arguments are applied to both smoothers.
If the preconditioner is one-level or the parameter identified by <code>what</code>
does not concern the smoothers, <code>pos</code> is ignored.</BIG></BIG></BIG></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
<code>idx</code> </BIG></BIG></BIG></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> <code>integer, optional, intent(in)</code>.</BIG></BIG></BIG></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
</BIG></BIG></BIG></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"> An auxiliary input argument that can be passed to the
underlying objects.
</BIG></BIG></BIG></TD>
</TR>
</TABLE><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">For compatibility with the previous versions of MLD2P4, this method can be also invoked
as follows:
</BIG></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<DIV ALIGN="CENTER"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><code>call mld_precset(p,what,val,info)</code>
</BIG></BIG></BIG></DIV><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
However, in this case the optional arguments <code>ilev</code>,
<code>ilmax</code>, <code>pos</code> and <code>idx</code>
cannot be used.
<BR></BIG></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">A variety of preconditioners can be obtained
by a suitable setting of the preconditioner parameters. These parameters
can be logically divided into four groups, i.e., parameters defining
</BIG></BIG></BIG>
<OL>
<LI>the type of multilevel cycle and how many cycles must be applied;
</LI>
<LI>the aggregation algorithm;
</LI>
<LI>the coarse-space correction at the coarsest level (for multilevel
preconditioners only);
</LI>
<LI>the smoother of the multilevel preconditioners, or the one-level
preconditioner.
<P>
</LI>
</OL><BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">
A list of the parameters that can be set, along with their allowed and
default values, is given in Tables&nbsp;<A HREF="#tab:p_cycle">2</A>-<A HREF="#tab:p_smoother_1">8</A>.
For a description of the meaning of the parameters, please
refer also to Section&nbsp;<A HREF="node12.html#sec:background">4</A>.
<BR></BIG></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><SPAN CLASS="textbf">Remark 2.</SPAN> A smoother is usually obtained by combining two objects:
a smoother (<code>SMOOTHER_TYPE</code>) and a local solver (<code>SUB_SOLVE</code>),
as specified in Tables&nbsp;<A HREF="#tab:p_smoother">7</A>-<A HREF="#tab:p_smoother_1">8</A>.
For example, the block-Jacobi smoother using
ILU(0) on the blocks is obtained by combining the block-Jacobi smoother
object with the ILU(0) solver object. Similarly,
the hybrid Gauss-Seidel smoother (see Note in Table&nbsp;<A HREF="#tab:p_smoother">7</A>)
is obtained by combining the block-Jacobi smoother object with a single sweep
of the Gauss-Seidel solver object, while the point-Jacobi smoother is the
result of combining the block-Jacobi smoother object with a single sweep
of the pointwise-Jacobi solver object. However, for simplicity, shortcuts are
provided to set point-Jacobi, hybrid (forward) Gauss-Seidel, and
hybrid backward Gauss-Seidel, i.e., the previous smoothers can be defined
by setting only <code>SMOOTHER_TYPE</code> to appropriate values (see
Tables&nbsp;<A HREF="#tab:p_smoother">7</A>), i.e., without setting
<code>SUB_SOLVE</code> too.
</BIG></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">The smoother and solver objects are arranged in a
hierarchical manner. When specifying a smoother object, its parameters,
including the local solver, are set to their default values, and when a solver
object is specified, its defaults are also set, overriding in both
cases any previous settings even if explicitly specified. Therefore if
the user sets a smoother, and wishes to use a solver
different from the default one, the call to set the solver must come
<SPAN CLASS="textit">after</SPAN> the call to set the smoother.
</BIG></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">Similar considerations apply to the point-Jacobi, Gauss-Seidel and block-Jacobi
coarsest-level solvers, and shortcuts are available
in this case too (see Table&nbsp;<A HREF="#tab:p_coarse">5</A>).
<BR></BIG></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><SPAN CLASS="textbf">Remark 3.</SPAN> In general, a coarsest-level solver cannot be used with
both the replicated and distributed coarsest-matrix layout;
therefore, setting the solver after the layout may change the layout.
Similarly, setting the layout after the solver may change the solver.
</BIG></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">More precisely, UMFPACK and SuperLU require the coarsest-level
matrix to be replicated, while SuperLU_Dist requires it to be distributed.
In these cases, setting the coarsest-level solver implies that
the layout is redefined according to the solver, ovverriding any
previous settings. MUMPS, point-Jacobi,
hybrid Gauss-Seidel and block-Jacobi can be applied to
replicated and distributed matrices, thus their choice
does not modify any previously specified layout.
It is worth noting that, when the matrix is replicated,
the point-Jacobi, hybrid Gauss-Seidel and block-Jacobi solvers
reduce to the corresponding local solver objects (see Remark&nbsp;2).
For the point-Jacobi and Gauss-Seidel solvers, these objects
correspond to a <SPAN CLASS="textit">single</SPAN> point-Jacobi sweep and a <SPAN CLASS="textit">single</SPAN>
Gauss-Seidel sweep, respectively, which are very poor solvers.
</BIG></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE">On the other hand, the distributed layout can be used with any solver
but UMFPACK and SuperLU; therefore, if any of these two solvers has already
been selected, the coarsest-level solver is changed to block-Jacobi,
with the previously chosen solver applied to the local blocks.
Likewise, the replicated layout can be used with any solver but SuperLu_Dist;
therefore, if SuperLu_Dist has been previously set, the coarsest-level
solver is changed to the default sequential solver.
</BIG></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"><BIG CLASS="LARGE"><SPAN CLASS="textbf">Remark 4.</SPAN> The argument <code>idx</code> can be used to allow finer
control for those solvers; for instance, by specifying the keyword
<code>MUMPS_IPAR_ENTRY</code> and an appropriate value for <code>idx</code>, it is
possible to set any entry in the MUMPS integer control array.
See also Sec.&nbsp;<A HREF="node33.html#sec:adding">7</A>.
</BIG></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1392"></A>
<TABLE>
<CAPTION><STRONG>Table 2:</STRONG>
Parameters defining the multilevel cycle and the number of cycles to
be applied.
</CAPTION>
<TR><TD>
<DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=102><code>what</code></TD>
<TD ALIGN="LEFT"><SMALL>DATA TYPE</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=68><code>val</code></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=68><SMALL>DEFAULT</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=204><SMALL>COMMENTS</SMALL></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=102><code>'ML_CYCLE'</code></TD>
<TD ALIGN="LEFT"><code>character(len=*)</code></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=68><TT>'VCYCLE'</TT>
<P>
<TT>'WCYCLE'</TT>
<P>
<TT>'KCYCLE'</TT>
<P>
<TT>'MULT'</TT>
<P>
<TT>'ADD'</TT></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=68><TT>'VCYCLE'</TT></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=204>Multilevel cycle: V-cycle, W-cycle, K-cycle, hybrid Multiplicative Schwarz,
and Additive Schwarz.
<P>
Note that hybrid Multiplicative Schwarz is equivalent to V-cycle and
is included for compatibility with previous versions of MLD2P4.</TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=102><code>'OUTER_SWEEPS'</code></TD>
<TD ALIGN="LEFT"><TT>integer</TT></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=68>Any integer
<P>
number <SPAN CLASS="MATH"><IMG
WIDTH="32" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img74.png"
ALT="$\ge 1$"></SPAN></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=68>1</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=204>Number of multilevel cycles.</TD>
</TR>
</TABLE>
</DIV>
</TD></TR>
</TABLE>
</DIV><P></P>
<BR><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1398"></A>
<TABLE>
<CAPTION><STRONG>Table 3:</STRONG>
Parameters defining the aggregation algorithm.
</CAPTION>
<TR><TD>
<DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=111><code>what</code></TD>
<TD ALIGN="LEFT"><SMALL>DATA TYPE</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=65><code>val</code></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=82><SMALL>DEFAULT</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=196><SMALL>COMMENTS</SMALL></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=111><code>'MIN_COARSE_SIZE'</code></TD>
<TD ALIGN="LEFT"><code>integer</code></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=65>Any number
<P>
<SPAN CLASS="MATH"><IMG
WIDTH="31" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img75.png"
ALT="$&gt; 0$"></SPAN></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=82><!-- MATH
$\lfloor 40 \sqrt[3]{n} \rfloor$
-->
<SPAN CLASS="MATH"><IMG
WIDTH="63" HEIGHT="37" ALIGN="MIDDLE" BORDER="0"
SRC="img76.png"
ALT="$\lfloor 40 \sqrt[3]{n} \rfloor$"></SPAN>, where <SPAN CLASS="MATH"><IMG
WIDTH="15" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
SRC="img77.png"
ALT="$n$"></SPAN> is the dimension
of the matrix at the finest level</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=196>Coarse size threshold. The aggregation stops
if the global number of variables of the
computed coarsest matrix
is lower than or equal to this threshold
(see Note).</TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=111><code>'MIN_CR_RATIO'</code></TD>
<TD ALIGN="LEFT"><code>real</code></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=65>Any number
<P>
<SPAN CLASS="MATH"><IMG
WIDTH="31" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img78.png"
ALT="$&gt; 1$"></SPAN></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=82>1.5</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=196>Minimum coarsening ratio. The aggregation stops
if the ratio between the matrix dimensions
at two consecutive levels is lower than or equal to this
threshold (see Note).</TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=111><code>'MAX_LEVS'</code></TD>
<TD ALIGN="LEFT"><code>integer</code></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=65>Any integer
<P>
number <SPAN CLASS="MATH"><IMG
WIDTH="31" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img78.png"
ALT="$&gt; 1$"></SPAN></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=82>20</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=196>Maximum number of levels. The aggregation stops
if the number of levels reaches this value (see Note).</TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=111><code>'PAR_AGGR_ALG'</code></TD>
<TD ALIGN="LEFT"><code>character(len=*)</code></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=65><TT>'DEC'</TT>, <TT>'SYMDEC'</TT></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=82><TT>'DEC'</TT></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=196>Parallel aggregation algorithm.
<P>
Currently, only the
decoupled aggregation (<code>DEC</code>) is available; the
<code>SYMDEC</code> option applies decoupled
aggregation to the sparsity pattern
of <SPAN CLASS="MATH"><IMG
WIDTH="62" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
SRC="img79.png"
ALT="$A+A^T$"></SPAN>.</TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=111><code>'AGGR_TYPE'</code></TD>
<TD ALIGN="LEFT"><code>character(len=*)</code></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=65><SPAN CLASS="textbf"><TT>'SOC1'</TT></SPAN></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=82><SPAN CLASS="textbf"><TT>'SOC1'</TT></SPAN>,
<SPAN CLASS="textbf"><TT>'SOC2'</TT></SPAN></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=196>Type of aggregation algorithm: currently,
we implement to measures of strength of
connection, the one by Vanek, Mandel
and Brezina&nbsp;[<A
HREF="node36.html#VANEK_MANDEL_BREZINA">26</A>],
and the one by Gratton et al&nbsp;[<A
HREF="node36.html#GrHeJi:16">16</A>].</TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=111><code>'AGGR_PROL'</code></TD>
<TD ALIGN="LEFT"><code>character(len=*)</code></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=65><TT>'SMOOTHED'</TT>, <TT>'UNSMOOTHED'</TT></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=82><TT>'SMOOTHED'</TT></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=196>Prolongator used by the aggregation algorithm: smoothed or unsmoothed
(i.e., tentative prolongator).</TD>
</TR>
<TR><TD ALIGN="LEFT" COLSPAN=5><SPAN><B>Note.</B> The aggregation algorithm stops when
at least one of the following criteria is met:
the coarse size threshold, the</SPAN></TD>
</TR>
<TR><TD ALIGN="LEFT" COLSPAN=5><SPAN>minimum coarsening ratio, or the maximum number
of levels is reached. Therefore, the actual number of levels may be</SPAN></TD>
</TR>
<TR><TD ALIGN="LEFT" COLSPAN=5><SPAN>smaller than the specified maximum number
of levels. </SPAN></TD>
</TR>
</TABLE>
</DIV>
</TD></TR>
</TABLE>
</DIV><P></P>
<BR><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1402"></A>
<TABLE>
<CAPTION><STRONG>Table 4:</STRONG>
Parameters defining the aggregation algorithm (continued).
</CAPTION>
<TR><TD>
<DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=108><code>what</code></TD>
<TD ALIGN="LEFT"><SMALL>DATA TYPE</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=71><code>val</code></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=65><SMALL>DEFAULT</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=187><SMALL>COMMENTS</SMALL></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=108><code>'AGGR_ORD'</code></TD>
<TD ALIGN="LEFT"><code>character(len=*)</code></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=71><TT>'NATURAL'</TT>
<P>
<TT>'DEGREE'</TT></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=65><TT>'NATURAL'</TT></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=187>Initial ordering of indices for the aggregation
algorithm: either natural ordering or sorted by
descending degrees of the nodes in the
matrix graph.</TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=108><code>'AGGR_THRESH'</code></TD>
<TD ALIGN="LEFT"><code>real(</code><SPAN CLASS="textit">kind_parameter</SPAN><code>)</code></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=71>Any&nbsp;real
<P>
number&nbsp;<SPAN CLASS="MATH"><IMG
WIDTH="56" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
SRC="img80.png"
ALT="$\in [0, 1]$"></SPAN></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=65>0.01</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=187>The threshold <SPAN CLASS="MATH"><IMG
WIDTH="13" HEIGHT="20" ALIGN="BOTTOM" BORDER="0"
SRC="img81.png"
ALT="$\theta$"></SPAN> in the aggregation algorithm,
see (<A HREF="node14.html#eq:strongly_coup">3</A>) in Section&nbsp;<A HREF="node14.html#sec:aggregation">4.2</A>.
See also the note at the bottom of this table.</TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=108><code>'AGGR_FILTER'</code></TD>
<TD ALIGN="LEFT"><code>character(len=*)</code></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=71><TT>'FILTER'</TT>
<P>
<TT>'NOFILTER'</TT></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=65><TT>'NOFILTER'</TT></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=187>Matrix used in computing the smoothed
prolongator: filtered or unfiltered (see&nbsp;(<A HREF="node14.html#eq:filtered">5</A>) in Section&nbsp;<A HREF="node14.html#sec:aggregation">4.2</A>).</TD>
</TR>
<TR><TD ALIGN="LEFT" COLSPAN=5><SPAN><B>Note.</B> Different thresholds at different levels, such as
those used in [<A
HREF="node36.html#VANEK_MANDEL_BREZINA">26</A>, Section&nbsp;5.1], can be easily set by
invoking the rou-</SPAN></TD>
</TR>
<TR><TD ALIGN="LEFT" COLSPAN=5><SPAN>tine <TT>set</TT> with
the parameter <TT>ilev</TT>.</SPAN></TD>
</TR>
</TABLE>
</DIV>
</TD></TR>
</TABLE>
</DIV><P></P>
<BR><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1407"></A>
<TABLE>
<CAPTION><STRONG>Table 5:</STRONG>
Parameters defining the coarse-space correction at the coarsest
level.</CAPTION>
<TR><TD>
<DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=111><code>what</code></TD>
<TD ALIGN="LEFT"><SMALL>DATA TYPE</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=48><code>val</code></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=48><SMALL>DEFAULT</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=244><SMALL>COMMENTS</SMALL></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=111><code>'COARSE_MAT'</code></TD>
<TD ALIGN="LEFT"><code>character(len=*)</code></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=48><TT>'DIST'</TT>
<P>
<TT>'REPL'</TT></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=48><TT>'REPL'</TT></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=244>Coarsest matrix layout: distributed among the processes or
replicated on each of them.</TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=111><code>'COARSE_SOLVE'</code></TD>
<TD ALIGN="LEFT"><code>character(len=*)</code></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=48><TT>'MUMPS'</TT>
<P>
<TT>'UMF'</TT>
<P>
<TT>'SLU'</TT>
<P>
<TT>'SLUDIST'</TT>
<P>
<TT>'JACOBI'</TT>
<P>
<TT>'GS'</TT>
<P>
<TT>'BJAC'</TT></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=48>See&nbsp;Note.</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=244>Solver used at the coarsest level: sequential
LU from MUMPS, UMFPACK, or SuperLU
(plus triangular solve);
distributed LU from MUMPS or SuperLU_Dist
(plus triangular solve);
point-Jacobi, hybrid Gauss-Seidel or block-Jacobi.
<P>
Note that <TT>UMF</TT> and <TT>SLU</TT> require the coarsest
matrix to be replicated, <TT>SLUDIST</TT>, <TT>JACOBI</TT>,
<TT>GS</TT> and <TT>BJAC</TT> require it to be
distributed, and <TT>MUMPS</TT> can be used with either
a replicated or a distributed matrix. When any of the previous
solvers is specified, the matrix layout is set to a default
value which allows the use of the solver (see Remark 3, p.&nbsp;24).
Note also that UMFPACK and SuperLU_Dist
are available only in double precision.</TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=111><code>'COARSE_SUBSOLVE'</code></TD>
<TD ALIGN="LEFT"><code>character(len=*)</code></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=48><TT>'ILU'</TT>
<P>
<TT>'ILUT'</TT>
<P>
<TT>'MILU'</TT>
<P>
<TT>'MUMPS'</TT>
<P>
<TT>'SLU'</TT>
<P>
<TT>'UMF'</TT></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=48>See&nbsp;Note.</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=244>Solver for the diagonal blocks of the coarse matrix,
in case the block Jacobi solver
is chosen as coarsest-level solver: ILU(<SPAN CLASS="MATH"><IMG
WIDTH="13" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img82.png"
ALT="$p$"></SPAN>), ILU(<SPAN CLASS="MATH"><IMG
WIDTH="27" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img83.png"
ALT="$p,t$"></SPAN>),
MILU(<SPAN CLASS="MATH"><IMG
WIDTH="13" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img82.png"
ALT="$p$"></SPAN>), LU from MUMPS, SuperLU or UMFPACK
(plus triangular solve).
Note that UMFPACK and SuperLU_Dist
are available only in double precision.</TD>
</TR>
<TR><TD ALIGN="LEFT" COLSPAN=5><SPAN><B>Note.</B> Defaults for <TT>COARSE_SOLVE</TT> and
<TT>COARSE_SUBSOLVE</TT> are chosen in the following order:</SPAN></TD>
</TR>
<TR><TD ALIGN="LEFT" COLSPAN=5><SPAN>single precision version - <TT>MUMPS</TT> if installed,
then <TT>SLU</TT> if installed,
<TT>ILU</TT> otherwise;</SPAN></TD>
</TR>
<TR><TD ALIGN="LEFT" COLSPAN=5><SPAN>double precision version - <TT>UMF</TT> if installed,
then <TT>MUMPS</TT> if installed, then <TT>SLU</TT> if
installed, <TT>ILU</TT> otherwise.</SPAN></TD>
</TR>
</TABLE>
</DIV>
</TD></TR>
</TABLE>
</DIV><P></P>
<BR><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1409"></A>
<TABLE>
<CAPTION><STRONG>Table 6:</STRONG>
Parameters defining the coarse-space correction at the coarsest
level (continued).</CAPTION>
<TR><TD>
<DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=111><code>what</code></TD>
<TD ALIGN="LEFT"><SMALL>DATA TYPE</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=57><code>val</code></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=43><SMALL>DEFAULT</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=213><SMALL>COMMENTS</SMALL></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=111><code>'COARSE_SWEEPS'</code></TD>
<TD ALIGN="LEFT"><code>integer</code></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=57>Any integer
<P>
number <SPAN CLASS="MATH"><IMG
WIDTH="31" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img75.png"
ALT="$&gt; 0$"></SPAN></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=43>10</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=213>Number of sweeps when <code>JACOBI</code>, <code>GS</code> or <code>BJAC</code>
is chosen as coarsest-level solver.</TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=111><code>'COARSE_FILLIN'</code></TD>
<TD ALIGN="LEFT"><code>integer</code></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=57>Any integer
<P>
number <SPAN CLASS="MATH"><IMG
WIDTH="32" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img84.png"
ALT="$\ge 0$"></SPAN></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=43>0</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=213>Fill-in level <SPAN CLASS="MATH"><IMG
WIDTH="13" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img82.png"
ALT="$p$"></SPAN> of the ILU factorizations.</TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=111><code>'COARSE_ILUTHRS'</code></TD>
<TD ALIGN="LEFT"><code>real(</code><SPAN CLASS="textit">kind_parameter</SPAN><code>)</code></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=57>Any real
<P>
number <SPAN CLASS="MATH"><IMG
WIDTH="32" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img84.png"
ALT="$\ge 0$"></SPAN></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=43>0</TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=213>Drop tolerance <SPAN CLASS="MATH"><IMG
WIDTH="11" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
SRC="img85.png"
ALT="$t$"></SPAN> in the ILU(<SPAN CLASS="MATH"><IMG
WIDTH="27" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img83.png"
ALT="$p,t$"></SPAN>) factorization.</TD>
</TR>
</TABLE>
</DIV>
</TD></TR>
</TABLE>
</DIV><P></P>
<BR><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1411"></A>
<TABLE>
<CAPTION><STRONG>Table 7:</STRONG>
Parameters defining the smoother or the details of the one-level preconditioner.
</CAPTION>
<TR><TD>
<DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=102><SMALL CLASS="SMALL">
<code>what</code> </SMALL></TD>
<TD ALIGN="LEFT"><SMALL CLASS="SMALL"> <SMALL>DATA TYPE</SMALL> </SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=54><SMALL CLASS="SMALL"> <code>val</code> </SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=102><SMALL CLASS="SMALL"> <SMALL>DEFAULT</SMALL> </SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=184><SMALL CLASS="SMALL">
<SMALL>COMMENTS</SMALL> </SMALL></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=102><SMALL CLASS="SMALL">
<code>'SMOOTHER_TYPE'</code> </SMALL></TD>
<TD ALIGN="LEFT"><SMALL CLASS="SMALL"> <code>character(len=*)</code>
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=54><SMALL CLASS="SMALL"> <code>'JACOBI'</code> </SMALL>
<P>
<SMALL CLASS="SMALL"><code>'GS'</code> </SMALL>
<P>
<SMALL CLASS="SMALL"><code>'BGS'</code> </SMALL>
<P>
<SMALL CLASS="SMALL"><code>'BJAC'</code>
</SMALL>
<P>
<SMALL CLASS="SMALL"><code>'AS'</code>
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=102><SMALL CLASS="SMALL"> <code>'FBGS'</code>
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=184><SMALL CLASS="SMALL"> Type of smoother used in the multilevel preconditioner:
point-Jacobi, hybrid (forward) Gauss-Seidel,
hybrid backward Gauss-Seidel, block-Jacobi, and
Additive Schwarz. </SMALL>
<P>
<SMALL CLASS="SMALL">It is ignored by one-level preconditioners. </SMALL></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=102><SMALL CLASS="SMALL">
<code>'SUB_SOLVE'</code> </SMALL></TD>
<TD ALIGN="LEFT"><SMALL CLASS="SMALL"> <code>character(len=*)</code>
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=54><SMALL CLASS="SMALL"> <TT>'JACOBI'</TT> </SMALL>
<P>
<SMALL CLASS="SMALL"><TT>'GS'</TT> </SMALL>
<P>
<SMALL CLASS="SMALL"><TT>'BGS'</TT> </SMALL>
<P>
<SMALL CLASS="SMALL"><TT>'ILU'</TT> </SMALL>
<P>
<SMALL CLASS="SMALL"><TT>'ILUT'</TT> </SMALL>
<P>
<SMALL CLASS="SMALL"><TT>'MILU'</TT> </SMALL>
<P>
<SMALL CLASS="SMALL"><TT>'MUMPS'</TT> </SMALL>
<P>
<SMALL CLASS="SMALL"><TT>'SLU'</TT> </SMALL>
<P>
<SMALL CLASS="SMALL"><TT>'UMF'</TT>
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=102><SMALL CLASS="SMALL"> <TT>GS</TT> and <TT>BGS</TT> for pre- and post-smoothers
of multilevel preconditioners, respectively </SMALL>
<P>
<SMALL CLASS="SMALL"><TT>ILU</TT> for block-Jacobi and Additive Schwarz
one-level preconditioners
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=184><SMALL CLASS="SMALL"> The local solver to be used with the smoother or one-level
preconditioner (see Remark&nbsp;2, page&nbsp;24): point-Jacobi,
hybrid (forward) Gauss-Seidel, hybrid backward
Gauss-Seidel, ILU(<SPAN CLASS="MATH"><IMG
WIDTH="13" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img82.png"
ALT="$p$"></SPAN>), ILU(<SPAN CLASS="MATH"><IMG
WIDTH="27" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img83.png"
ALT="$p,t$"></SPAN>), MILU(<SPAN CLASS="MATH"><IMG
WIDTH="13" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img82.png"
ALT="$p$"></SPAN>),
LU from MUMPS, SuperLU or UMFPACK
(plus triangular solve). See Note for details on hybrid
Gauss-Seidel. </SMALL></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=102><SMALL CLASS="SMALL">
<code>'SMOOTHER_SWEEPS'</code> </SMALL></TD>
<TD ALIGN="LEFT"><SMALL CLASS="SMALL"> <code>integer</code>
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=54><SMALL CLASS="SMALL"> Any integer </SMALL>
<P>
<SMALL CLASS="SMALL">number&nbsp;<SPAN CLASS="MATH"><IMG
WIDTH="32" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img84.png"
ALT="$\ge 0$"></SPAN>
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=102><SMALL CLASS="SMALL"> 1
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=184><SMALL CLASS="SMALL"> Number of sweeps of the smoother or one-level preconditioner.
In the multilevel case, no pre-smother or
post-smoother is used if this parameter is set to 0
together with <code>pos='PRE'</code> or <code>pos='POST</code>,
respectively. </SMALL></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=102><SMALL CLASS="SMALL">
<code>'SUB_OVR'</code> </SMALL></TD>
<TD ALIGN="LEFT"><SMALL CLASS="SMALL"> <code>integer</code>
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=54><SMALL CLASS="SMALL"> Any integer </SMALL>
<P>
<SMALL CLASS="SMALL">number&nbsp;<SPAN CLASS="MATH"><IMG
WIDTH="32" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img84.png"
ALT="$\ge 0$"></SPAN>
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=102><SMALL CLASS="SMALL"> 1
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=184><SMALL CLASS="SMALL"> Number of overlap layers, for Additive Schwarz only. </SMALL></TD>
</TR>
</TABLE></DIV>
</TD></TR>
</TABLE>
</DIV><P></P>
<BR><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<BR><P></P>
<DIV ALIGN="CENTER"><A NAME="1413"></A>
<TABLE>
<CAPTION><STRONG>Table 8:</STRONG>
Parameters defining the smoother or the details of the one-level preconditioner
(continued).</CAPTION>
<TR><TD>
<DIV ALIGN="CENTER">
<TABLE CELLPADDING=3 BORDER="1" ALIGN="CENTER">
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=85><SMALL CLASS="SMALL">
<code>what</code> </SMALL></TD>
<TD ALIGN="LEFT"><SMALL CLASS="SMALL"> <SMALL>DATA TYPE</SMALL> </SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=71><SMALL CLASS="SMALL"> <code>val</code> </SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=62><SMALL CLASS="SMALL"> <SMALL>DEFAULT</SMALL> </SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=201><SMALL CLASS="SMALL">
<SMALL>COMMENTS</SMALL> </SMALL></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=85><SMALL CLASS="SMALL">
<code>'SUB_RESTR'</code> </SMALL></TD>
<TD ALIGN="LEFT"><SMALL CLASS="SMALL"> <code>character(len=*)</code>
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=71><SMALL CLASS="SMALL"> <TT>'HALO'</TT> </SMALL>
<P>
<SMALL CLASS="SMALL"><TT>'NONE'</TT>
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=62><SMALL CLASS="SMALL"> <TT>'HALO'</TT>
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=201><SMALL CLASS="SMALL"> Type of restriction operator, for Additive Schwarz only:
<TT>HALO</TT> for taking into account the overlap, <TT>NONE</TT>
for neglecting it. </SMALL>
<P>
<SMALL CLASS="SMALL">Note that <TT>HALO</TT> must be chosen for
the classical Addditive Schwarz smoother and its RAS variant.</SMALL></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=85><SMALL CLASS="SMALL">
<code>'SUB_PROL'</code> </SMALL></TD>
<TD ALIGN="LEFT"><SMALL CLASS="SMALL"> <code>character(len=*)</code>
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=71><SMALL CLASS="SMALL"> <TT>'SUM'</TT> </SMALL>
<P>
<SMALL CLASS="SMALL"><TT>'NONE'</TT>
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=62><SMALL CLASS="SMALL"> <TT>'NONE'</TT>
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=201><SMALL CLASS="SMALL"> Type of prolongation operator, for Additive Schwarz only:
<TT>SUM</TT> for adding the contributions from the overlap, <TT>NONE</TT>
for neglecting them. </SMALL>
<P>
<SMALL CLASS="SMALL">Note that <TT>SUM</TT> must be chosen for the classical Additive
Schwarz smoother, and <TT>NONE</TT> for its RAS variant. </SMALL></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=85><SMALL CLASS="SMALL">
<code>'SUB_FILLIN'</code> </SMALL></TD>
<TD ALIGN="LEFT"><SMALL CLASS="SMALL"> <code>integer</code>
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=71><SMALL CLASS="SMALL"> Any integer </SMALL>
<P>
<SMALL CLASS="SMALL">number&nbsp;<SPAN CLASS="MATH"><IMG
WIDTH="32" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img84.png"
ALT="$\ge 0$"></SPAN>
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=62><SMALL CLASS="SMALL"> 0
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=201><SMALL CLASS="SMALL"> Fill-in level <SPAN CLASS="MATH"><IMG
WIDTH="13" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img82.png"
ALT="$p$"></SPAN> of the incomplete LU factorizations. </SMALL></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=85><SMALL CLASS="SMALL">
<code>'SUB_ILUTHRS'</code> </SMALL></TD>
<TD ALIGN="LEFT"><SMALL CLASS="SMALL"> <code>real(</code><SPAN CLASS="textit">kind_parameter</SPAN><code>)</code>
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=71><SMALL CLASS="SMALL"> Any real number&nbsp;<SPAN CLASS="MATH"><IMG
WIDTH="32" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img84.png"
ALT="$\ge 0$"></SPAN>
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=62><SMALL CLASS="SMALL"> 0
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=201><SMALL CLASS="SMALL"> Drop tolerance <SPAN CLASS="MATH"><IMG
WIDTH="11" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
SRC="img85.png"
ALT="$t$"></SPAN> in the ILU(<SPAN CLASS="MATH"><IMG
WIDTH="27" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
SRC="img83.png"
ALT="$p,t$"></SPAN>) factorization. </SMALL></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=85><SMALL CLASS="SMALL"> <code>'MUMPS_IPAR_ENTRY'</code> </SMALL></TD>
<TD ALIGN="LEFT"><SMALL CLASS="SMALL"> <code>integer</code>
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=71><SMALL CLASS="SMALL"> Any integer number
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=62><SMALL CLASS="SMALL"> 0
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=201><SMALL CLASS="SMALL"> Set an entry in the MUMPS integer control array, as
chosen via the <code>idx</code> optional argument. </SMALL></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=85><SMALL CLASS="SMALL"> <code>'MUMPS_RPAR_ENTRY'</code> </SMALL></TD>
<TD ALIGN="LEFT"><SMALL CLASS="SMALL"> <code>real</code>
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=71><SMALL CLASS="SMALL"> Any real number
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=62><SMALL CLASS="SMALL"> 0
</SMALL></TD>
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=201><SMALL CLASS="SMALL"> Set an entry in the MUMPS real control array, as
chosen via the <code>idx</code> optional argument. </SMALL></TD>
</TR>
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=85><SMALL CLASS="SMALL"> </SMALL></TD>
<TD></TD>
<TD></TD>
<TD></TD>
<TD></TD>
</TR>
</TABLE></DIV>
</TD></TR>
</TABLE>
</DIV><P></P>
<BR><BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<P>
<BIG CLASS="LARGE"><BIG CLASS="LARGE"></BIG></BIG>
<DIV CLASS="navigation"><HR>
<!--Navigation Panel-->
<A NAME="tex2html344"
HREF="node21.html">
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
<A NAME="tex2html340"
HREF="node18.html">
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
<A NAME="tex2html334"
HREF="node19.html">
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
<A NAME="tex2html342"
HREF="node2.html">
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
<BR>
<B> Next:</B> <A NAME="tex2html345"
HREF="node21.html">Method hierarchy_build</A>
<B> Up:</B> <A NAME="tex2html341"
HREF="node18.html">User Interface</A>
<B> Previous:</B> <A NAME="tex2html335"
HREF="node19.html">Method init</A>
&nbsp; <B> <A NAME="tex2html343"
HREF="node2.html">Contents</A></B> </DIV>
<!--End of Navigation Panel-->
</BODY>
</HTML>