|
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
|
|
|
|
|
|
|
|
<!--Converted with LaTeX2HTML 2012 (1.2)
|
|
|
|
original version by: Nikos Drakos, CBLU, University of Leeds
|
|
|
|
* revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan
|
|
|
|
* with significant contributions from:
|
|
|
|
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
|
|
|
<HTML>
|
|
|
|
<HEAD>
|
|
|
|
<TITLE>Subroutine set</TITLE>
|
|
|
|
<META NAME="description" CONTENT="Subroutine set">
|
|
|
|
<META NAME="keywords" CONTENT="userhtml">
|
|
|
|
<META NAME="resource-type" CONTENT="document">
|
|
|
|
<META NAME="distribution" CONTENT="global">
|
|
|
|
|
|
|
|
<META NAME="Generator" CONTENT="LaTeX2HTML v2012">
|
|
|
|
<META HTTP-EQUIV="Content-Style-Type" CONTENT="text/css">
|
|
|
|
|
|
|
|
<LINK REL="STYLESHEET" HREF="userhtml.css">
|
|
|
|
|
|
|
|
<LINK REL="next" HREF="node19.html">
|
|
|
|
<LINK REL="previous" HREF="node17.html">
|
|
|
|
<LINK REL="up" HREF="node16.html">
|
|
|
|
<LINK REL="next" HREF="node19.html">
|
|
|
|
</HEAD>
|
|
|
|
|
|
|
|
<BODY >
|
|
|
|
<!--Navigation Panel-->
|
|
|
|
<A NAME="tex2html303"
|
|
|
|
HREF="node19.html">
|
|
|
|
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
|
|
|
<A NAME="tex2html299"
|
|
|
|
HREF="node16.html">
|
|
|
|
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
|
|
|
<A NAME="tex2html293"
|
|
|
|
HREF="node17.html">
|
|
|
|
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
|
|
|
<A NAME="tex2html301"
|
|
|
|
HREF="node2.html">
|
|
|
|
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
|
|
|
<BR>
|
|
|
|
<B> Next:</B> <A NAME="tex2html304"
|
|
|
|
HREF="node19.html">Subroutine bld</A>
|
|
|
|
<B> Up:</B> <A NAME="tex2html300"
|
|
|
|
HREF="node16.html">User Interface</A>
|
|
|
|
<B> Previous:</B> <A NAME="tex2html294"
|
|
|
|
HREF="node17.html">Subroutine init</A>
|
|
|
|
<B> <A NAME="tex2html302"
|
|
|
|
HREF="node2.html">Contents</A></B>
|
|
|
|
<BR>
|
|
|
|
<BR>
|
|
|
|
<!--End of Navigation Panel-->
|
|
|
|
|
|
|
|
<H2><A NAME="SECTION00082000000000000000"></A><A NAME="sec:precset"></A>
|
|
|
|
<BR>
|
|
|
|
Subroutine set
|
|
|
|
</H2>
|
|
|
|
|
|
|
|
<P>
|
|
|
|
<DIV ALIGN="CENTER">
|
|
|
|
<code>call p%set(what,val,info [,ilev, ilmax, pos])</code>
|
|
|
|
|
|
|
|
</DIV>
|
|
|
|
|
|
|
|
<P>
|
|
|
|
This routine 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>.
|
|
|
|
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="+1"><B>Arguments</B></FONT>
|
|
|
|
<P></P>
|
|
|
|
|
|
|
|
<P>
|
|
|
|
<TABLE CELLPADDING=3>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><code>what</code></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><code>integer, intent(in)</code> <I>or</I> <code>character(len=*)</code>.</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34> </TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340>The parameter to be set. It can be specified by
|
|
|
|
a predefined constant, or through its name; the string
|
|
|
|
is case-insensitive. See also
|
|
|
|
Tables <A HREF="#tab:p_cycle">2</A>-<A HREF="#tab:p_smoother_1">8</A>.</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><code>val </code></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><code>integer</code> <I>or</I> <code>character(len=*)</code> <I>or</I>
|
|
|
|
<code>real(psb_spk_)</code> <I>or</I> <code>real(psb_dpk_)</code>,
|
|
|
|
<code>intent(in)</code>.</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34> </TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340>The value of the parameter to be set. The list of allowed
|
|
|
|
values and the corresponding data types is given in
|
|
|
|
Tables <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.</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><code>info</code></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><code>integer, intent(out)</code>.</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34> </TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340>Error code. If no error, 0 is returned. See Section <A HREF="node26.html#sec:errors">8</A>
|
|
|
|
for details.</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><code>ilev</code></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><code>integer, optional, intent(in)</code>.</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34> </TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340>For the multi-level 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 <A HREF="#tab:p_cycle">2</A>-<A HREF="#tab:p_smoother_1">8</A>).</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><code>ilmax</code></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><code>integer, optional, intent(in)</code>.</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34> </TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340>For the multi-level 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.</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><code>pos</code></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><code>charater(len=*), optional, intent(in)</code>.</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34> </TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340>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.</TD>
|
|
|
|
</TR>
|
|
|
|
</TABLE>
|
|
|
|
|
|
|
|
<P>
|
|
|
|
For compatibility with the previous versions of MLD2P4, this routine can be also invoked
|
|
|
|
as follows:
|
|
|
|
|
|
|
|
<P>
|
|
|
|
<DIV ALIGN="CENTER">
|
|
|
|
<code>call mld_precset(p,what,val,info)</code>
|
|
|
|
|
|
|
|
</DIV>
|
|
|
|
|
|
|
|
<P>
|
|
|
|
However, in this case the optional arguments <code>ilev</code>, <code>ilmax</code>, and <code>pos</code>
|
|
|
|
cannot be used.
|
|
|
|
<BR>
|
|
|
|
<P>
|
|
|
|
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
|
|
|
|
|
|
|
|
<OL>
|
|
|
|
<LI>the type of multi-level cycle and how many cycles must be applied;
|
|
|
|
</LI>
|
|
|
|
<LI>the aggregation algorithm;
|
|
|
|
</LI>
|
|
|
|
<LI>the coarse-space correction at the coarsest level (for multi-level
|
|
|
|
preconditioners only);
|
|
|
|
</LI>
|
|
|
|
<LI>the smoother of the multi-level preconditioners, or the one-level
|
|
|
|
preconditioner.
|
|
|
|
|
|
|
|
<P>
|
|
|
|
</LI>
|
|
|
|
</OL>
|
|
|
|
A list of the parameters that can be set, along with their allowed and
|
|
|
|
default values, is given in Tables <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 <A HREF="node11.html#sec:background">4</A>.
|
|
|
|
<BR>
|
|
|
|
<P>
|
|
|
|
<B>Remark 2.</B> A smoother is usually obtained by combining two objects:
|
|
|
|
a smoother (<code>mld_smoother_type_</code>) and a local solver (<code>mld_sub_solve_</code>),
|
|
|
|
as specified in Tables <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 <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>mld_smoother_type_</code> to appropriate values (see
|
|
|
|
Tables <A HREF="#tab:p_smoother">7</A>), i.e., without setting
|
|
|
|
<code>mld_sub_solve_</code> too.
|
|
|
|
|
|
|
|
<P>
|
|
|
|
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
|
|
|
|
<I>after</I> the call to set the smoother.
|
|
|
|
|
|
|
|
<P>
|
|
|
|
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 <A HREF="#tab:p_coarse">5</A>).
|
|
|
|
<BR>
|
|
|
|
<P>
|
|
|
|
<B>Remark 3.</B> In general, a coarsest-level solver cannot be used with
|
|
|
|
both the replicated and distributed coarsest-matrix layout, and vice versa;
|
|
|
|
therefore, setting the solver after the layout may change the layout, and setting
|
|
|
|
the layout after the solver may change the solver, if the choices of the two
|
|
|
|
parameters do not agree.
|
|
|
|
|
|
|
|
<P>
|
|
|
|
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 2).
|
|
|
|
For the point-Jacobi and Gauss-Seidel solvers, these objects
|
|
|
|
correspond to a <I>single</I> point-Jacobi sweep and a <I>single</I>
|
|
|
|
Gauss-Seidel sweep, respectively, which are very poor solvers.
|
|
|
|
|
|
|
|
<P>
|
|
|
|
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.
|
|
|
|
|
|
|
|
<P>
|
|
|
|
<BR><P></P>
|
|
|
|
<DIV ALIGN="CENTER"><A NAME="1424"></A>
|
|
|
|
<TABLE>
|
|
|
|
<CAPTION><STRONG>Table 2:</STRONG>
|
|
|
|
Parameters defining the multi-level 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>mld_ml_cycle_</code>
|
|
|
|
<P>
|
|
|
|
<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>Multi-level 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>mld_outer_sweeps_</code>
|
|
|
|
<P>
|
|
|
|
<code>OUTER_SWEEPS</code></TD>
|
|
|
|
<TD ALIGN="LEFT"><TT>integer</TT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=68>Any integer
|
|
|
|
<P>
|
|
|
|
number <IMG
|
|
|
|
WIDTH="31" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img89.png"
|
|
|
|
ALT="$\ge 1$"></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=68>1</TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=204>Number of multi-level cycles.</TD>
|
|
|
|
</TR>
|
|
|
|
</TABLE>
|
|
|
|
</DIV>
|
|
|
|
</TD></TR>
|
|
|
|
</TABLE>
|
|
|
|
</DIV><P></P>
|
|
|
|
<BR>
|
|
|
|
|
|
|
|
<P>
|
|
|
|
<BR><P></P>
|
|
|
|
<DIV ALIGN="CENTER"><A NAME="1429"></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>mld_min_coarse_size_</code>
|
|
|
|
<P>
|
|
|
|
<code>MIN_COARSE_SIZE</code></TD>
|
|
|
|
<TD ALIGN="LEFT"><code>integer</code></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=65>Any number
|
|
|
|
<P>
|
|
|
|
<IMG
|
|
|
|
WIDTH="32" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img90.png"
|
|
|
|
ALT="$> 0$"></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=82><!-- MATH
|
|
|
|
$\lfloor 40 \sqrt[3]{n} \rfloor$
|
|
|
|
-->
|
|
|
|
<IMG
|
|
|
|
WIDTH="63" HEIGHT="38" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img91.png"
|
|
|
|
ALT="$\lfloor 40 \sqrt[3]{n} \rfloor$">, where <IMG
|
|
|
|
WIDTH="15" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
|
|
|
SRC="img92.png"
|
|
|
|
ALT="$n$"> 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>mld_min_cr_ratio_</code>
|
|
|
|
<P>
|
|
|
|
<code>MIN_CR_RATIO</code></TD>
|
|
|
|
<TD ALIGN="LEFT"><code>real</code></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=65>Any number
|
|
|
|
<P>
|
|
|
|
<IMG
|
|
|
|
WIDTH="31" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img93.png"
|
|
|
|
ALT="$> 1$"></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>mld_max_levs_</code>
|
|
|
|
<P>
|
|
|
|
<code>MAX_LEVS</code></TD>
|
|
|
|
<TD ALIGN="LEFT"><code>integer</code></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=65>Any integer
|
|
|
|
<P>
|
|
|
|
number <IMG
|
|
|
|
WIDTH="31" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img93.png"
|
|
|
|
ALT="$> 1$"></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>mld_par_aggr_alg_</code>
|
|
|
|
<P>
|
|
|
|
<code>PAR_AGGR</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 <IMG
|
|
|
|
WIDTH="63" HEIGHT="40" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img94.png"
|
|
|
|
ALT="$A+A^T$">.</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=111><code>mld_aggr_type_</code>
|
|
|
|
<P>
|
|
|
|
<code>AGGR_TYPE</code></TD>
|
|
|
|
<TD ALIGN="LEFT"><code>character(len=*)</code></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=65><B><TT>'VMB'</TT></B></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=82><B><TT>'VMB'</TT></B></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=196>Type of aggregation algorithm: currently, the scalar aggregation
|
|
|
|
algorithm by Vanek, Mandel and Brezina is implemented
|
|
|
|
[<A
|
|
|
|
HREF="node28.html#VANEK_MANDEL_BREZINA">27</A>].</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=111><code>mld_aggr_prol_</code>
|
|
|
|
<P>
|
|
|
|
<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><B>Note.</B> The aggregation algorithm stops when
|
|
|
|
at least one of the following criteria is met:
|
|
|
|
the coarse size threshold, the</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" COLSPAN=5>maximum coarsening ratio, or the maximum number
|
|
|
|
of levels is reached. Therefore, the actual number of levels may be</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" COLSPAN=5>smaller than the specified maximum number
|
|
|
|
of levels.</TD>
|
|
|
|
</TR>
|
|
|
|
</TABLE>
|
|
|
|
</DIV>
|
|
|
|
</TD></TR>
|
|
|
|
</TABLE>
|
|
|
|
</DIV><P></P>
|
|
|
|
<BR>
|
|
|
|
|
|
|
|
<P>
|
|
|
|
<BR><P></P>
|
|
|
|
<DIV ALIGN="CENTER"><A NAME="1433"></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>mld_aggr_ord_</code>
|
|
|
|
<P>
|
|
|
|
<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>mld_aggr_thresh_</code>
|
|
|
|
<P>
|
|
|
|
<code>AGGR_THRESH</code></TD>
|
|
|
|
<TD ALIGN="LEFT"><code>real(</code><I>kind_parameter</I><code>)</code></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=71>Any real
|
|
|
|
<P>
|
|
|
|
number <IMG
|
|
|
|
WIDTH="56" HEIGHT="36" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img95.png"
|
|
|
|
ALT="$\in [0, 1]$"></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=65>0.05</TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=187>The threshold <IMG
|
|
|
|
WIDTH="13" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
|
|
|
|
SRC="img96.png"
|
|
|
|
ALT="$\theta$"> in the aggregation algorithm
|
|
|
|
(see Note).</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=108><code>mld_aggr_omega_alg_</code>
|
|
|
|
<P>
|
|
|
|
<code>AGGR_OMEGA_ALG</code></TD>
|
|
|
|
<TD ALIGN="LEFT"><code>character(len=*)</code></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=71><TT>'EIG_EST'</TT>
|
|
|
|
<P>
|
|
|
|
<TT>'USER_CHOICE'</TT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=65><TT>'EIG_EST'</TT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=187>How the damping parameter <IMG
|
|
|
|
WIDTH="16" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
|
|
|
SRC="img86.png"
|
|
|
|
ALT="$\omega$"> in the
|
|
|
|
smoothed aggregation is obtained:
|
|
|
|
either via an estimate of the spectral radius of
|
|
|
|
<IMG
|
|
|
|
WIDTH="50" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
|
|
|
|
SRC="img87.png"
|
|
|
|
ALT="$D^{-1}A$">, or explicily
|
|
|
|
specified by the user.</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=108><code>mld_aggr_eig_</code>
|
|
|
|
<P>
|
|
|
|
<code>AGGR_EIG</code></TD>
|
|
|
|
<TD ALIGN="LEFT"><code>character(len=*)</code></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=71><TT>'A_NORMI'</TT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=65><TT>'A_NORMI'</TT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=187>How to estimate the spectral radius of <IMG
|
|
|
|
WIDTH="50" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
|
|
|
|
SRC="img87.png"
|
|
|
|
ALT="$D^{-1}A$">.
|
|
|
|
Currently only the infinity norm estimate
|
|
|
|
is available.</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=108><code>mld_aggr_omega_val_</code>
|
|
|
|
<P>
|
|
|
|
<code>AGGR_OMEGA_VAL</code></TD>
|
|
|
|
<TD ALIGN="LEFT"><code>real(</code><I>kind_parameter</I><code>)</code></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=71>Any real
|
|
|
|
<P>
|
|
|
|
number <IMG
|
|
|
|
WIDTH="32" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img90.png"
|
|
|
|
ALT="$> 0$"></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=65><!-- MATH
|
|
|
|
$4/(3\rho(D^{-1}A))$
|
|
|
|
-->
|
|
|
|
<IMG
|
|
|
|
WIDTH="113" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img97.png"
|
|
|
|
ALT="$4/(3\rho(D^{-1}A))$"></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=187>Damping parameter <IMG
|
|
|
|
WIDTH="16" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
|
|
|
SRC="img86.png"
|
|
|
|
ALT="$\omega$"> in the smoothed aggregation algorithm.
|
|
|
|
It must be set by the user if
|
|
|
|
<code>USER_CHOICE</code> was specified for
|
|
|
|
<code>mld_aggr_omega_alg_</code>,
|
|
|
|
otherwise it is computed by the library, using the
|
|
|
|
selected estimate of the spectral radius <IMG
|
|
|
|
WIDTH="73" HEIGHT="39" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img98.png"
|
|
|
|
ALT="$\rho(D^{-1}A)$"> of
|
|
|
|
<IMG
|
|
|
|
WIDTH="50" HEIGHT="21" ALIGN="BOTTOM" BORDER="0"
|
|
|
|
SRC="img87.png"
|
|
|
|
ALT="$D^{-1}A$">.</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=108><code>mld_aggr_filter_</code>
|
|
|
|
<P>
|
|
|
|
<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.</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" COLSPAN=5><B>Note.</B> Different thresholds at different levels, such as
|
|
|
|
those used in [<A
|
|
|
|
HREF="node28.html#VANEK_MANDEL_BREZINA">27</A>, Section 5.1], can be easily set by
|
|
|
|
invoking the rou-</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" COLSPAN=5>tine <TT>set</TT> with
|
|
|
|
the parameter <TT>ilev</TT>.</TD>
|
|
|
|
</TR>
|
|
|
|
</TABLE>
|
|
|
|
</DIV>
|
|
|
|
</TD></TR>
|
|
|
|
</TABLE>
|
|
|
|
</DIV><P></P>
|
|
|
|
<BR>
|
|
|
|
|
|
|
|
<P>
|
|
|
|
<BR><P></P>
|
|
|
|
<DIV ALIGN="CENTER"><A NAME="1439"></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>mld_coarse_mat_</code>
|
|
|
|
<P>
|
|
|
|
<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>mld_coarse_solve_</code>
|
|
|
|
<P>
|
|
|
|
<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 Note 1</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 (see Note 2) 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, <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
|
|
|
|
value UMFPACK and SuperLU_Dist
|
|
|
|
are available only in double precision.</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=111><code>mld_coarse_subsolve_</code>
|
|
|
|
<P>
|
|
|
|
<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 Note 1</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(<IMG
|
|
|
|
WIDTH="13" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img35.png"
|
|
|
|
ALT="$p$">), ILU(<IMG
|
|
|
|
WIDTH="27" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img36.png"
|
|
|
|
ALT="$p,t$">),
|
|
|
|
MILU(<IMG
|
|
|
|
WIDTH="13" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img35.png"
|
|
|
|
ALT="$p$">), 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><B>Note 1.</B> Defaults for <TT>mld_coarse_solve_</TT> and
|
|
|
|
<TT>mld_coarse_subsolve_</TT> are chosen in the following order:</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" COLSPAN=5>single precision version - <TT>MUMPS</TT> if installed,
|
|
|
|
then <TT>SLU</TT> if installed,
|
|
|
|
<TT>ILU</TT> otherwise;</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" COLSPAN=5>double precision version - <TT>UMF</TT> if installed,
|
|
|
|
then <TT>MUMPS</TT> if installed, then <TT>SLU</TT> if
|
|
|
|
installed, <TT>ILU</TT> otherwise.</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" COLSPAN=5><B>Note 2.</B> The hybrid Gauss-Seidel method is
|
|
|
|
between the Gauss-Seidel and Jacobi methods: at each iteration, the process-</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" COLSPAN=5>es use the most recent values of their own local variables, and the values of
|
|
|
|
the non-local variables computed at the previ-</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" COLSPAN=5>ous iteration.</TD>
|
|
|
|
</TR>
|
|
|
|
</TABLE>
|
|
|
|
</DIV>
|
|
|
|
</TD></TR>
|
|
|
|
</TABLE>
|
|
|
|
</DIV><P></P>
|
|
|
|
<BR>
|
|
|
|
|
|
|
|
<P>
|
|
|
|
<BR><P></P>
|
|
|
|
<DIV ALIGN="CENTER"><A NAME="1441"></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>mld_coarse_sweeps_</code>
|
|
|
|
<P>
|
|
|
|
<code>COARSE_SWEEPS</code></TD>
|
|
|
|
<TD ALIGN="LEFT"><code>integer</code></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=57>Any integer
|
|
|
|
<P>
|
|
|
|
number <IMG
|
|
|
|
WIDTH="32" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img90.png"
|
|
|
|
ALT="$> 0$"></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>mld_coarse_fillin_</code>
|
|
|
|
<P>
|
|
|
|
<code>COARSE_FILLIN</code></TD>
|
|
|
|
<TD ALIGN="LEFT"><code>integer</code></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=57>Any integer
|
|
|
|
<P>
|
|
|
|
number <IMG
|
|
|
|
WIDTH="31" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img99.png"
|
|
|
|
ALT="$\ge 0$"></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=43>0</TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=213>Fill-in level <IMG
|
|
|
|
WIDTH="13" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img35.png"
|
|
|
|
ALT="$p$"> of the ILU factorizations.</TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=111><code>mld_coarse_iluthrs_</code>
|
|
|
|
<P>
|
|
|
|
<code>COARSE_ILUTHRS</code></TD>
|
|
|
|
<TD ALIGN="LEFT"><code>real(</code><I>kind_parameter</I><code>)</code></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=57>Any real
|
|
|
|
<P>
|
|
|
|
number <IMG
|
|
|
|
WIDTH="31" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img99.png"
|
|
|
|
ALT="$\ge 0$"></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=43>0</TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=213>Drop tolerance <IMG
|
|
|
|
WIDTH="11" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
|
|
|
SRC="img100.png"
|
|
|
|
ALT="$t$"> in the ILU(<IMG
|
|
|
|
WIDTH="27" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img36.png"
|
|
|
|
ALT="$p,t$">) factorization.</TD>
|
|
|
|
</TR>
|
|
|
|
</TABLE>
|
|
|
|
</DIV>
|
|
|
|
</TD></TR>
|
|
|
|
</TABLE>
|
|
|
|
</DIV><P></P>
|
|
|
|
<BR>
|
|
|
|
|
|
|
|
<P>
|
|
|
|
<BR><P></P>
|
|
|
|
<DIV ALIGN="CENTER"><A NAME="1444"></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><FONT SIZE="-1">
|
|
|
|
<code>what</code> </FONT></TD>
|
|
|
|
<TD ALIGN="LEFT"><FONT SIZE="-1"> <SMALL>DATA TYPE</SMALL> </FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=54><FONT SIZE="-1"> <code>val</code> </FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=102><FONT SIZE="-1"> <SMALL>DEFAULT</SMALL> </FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=184><FONT SIZE="-1">
|
|
|
|
<SMALL>COMMENTS</SMALL> </FONT></TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=102><FONT SIZE="-1"> <code>mld_smoother_type_</code> </FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1"><code>SMOOTHER_TYPE</code> </FONT></TD>
|
|
|
|
<TD ALIGN="LEFT"><FONT SIZE="-1"> <code>character(len=*)</code>
|
|
|
|
</FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=54><FONT SIZE="-1"> <code>'JACOBI'</code> </FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1"><code>'GS'</code> </FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1"><code>'BGS'</code> </FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1"><code>'BJAC'</code>
|
|
|
|
</FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1"><code>'AS'</code>
|
|
|
|
</FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=102><FONT SIZE="-1"> <code>'FBGS'</code>
|
|
|
|
</FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=184><FONT SIZE="-1"> Type of smoother used in the multi-level preconditioner:
|
|
|
|
point-Jacobi, hybrid (forward) Gauss-Seidel,
|
|
|
|
hybrid backward Gauss-Seidel, block-Jacobi, and
|
|
|
|
Additive Schwarz. See Note for details on hybrix Gauss-Seidel.</FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1">It is ignored by one-level preconditioners. </FONT></TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=102><FONT SIZE="-1">
|
|
|
|
<code>mld_sub_solve_</code> </FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1"><code>SUB_SOLVE</code> </FONT></TD>
|
|
|
|
<TD ALIGN="LEFT"><FONT SIZE="-1"> <code>character(len=*)</code>
|
|
|
|
</FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=54><FONT SIZE="-1"> <TT>'JACOBI'</TT> </FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1"><TT>'GS'</TT> </FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1"><TT>'BGS'</TT> </FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1"><TT>'ILU'</TT> </FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1"><TT>'ILUT'</TT> </FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1"><TT>'MILU'</TT> </FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1"><TT>'MUMPS'</TT> </FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1"><TT>'SLU'</TT> </FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1"><TT>'UMF'</TT>
|
|
|
|
</FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=102><FONT SIZE="-1"> <TT>GS</TT> and <TT>BGS</TT> for pre- and post-smoothers
|
|
|
|
of multi-level preconditioners, respectively </FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1"><TT>ILU</TT> for block-Jacobi and Additive Schwarz
|
|
|
|
one-level preconditioners
|
|
|
|
</FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=184><FONT SIZE="-1"> The local solver to be used with the smoother or one-level
|
|
|
|
preconditioner (see Remark 2, page 24): point-Jacobi,
|
|
|
|
hybrid (forward) Gauss-Seidel, hybrid backward
|
|
|
|
Gauss-Seidel, ILU(<IMG
|
|
|
|
WIDTH="13" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img35.png"
|
|
|
|
ALT="$p$">), ILU(<IMG
|
|
|
|
WIDTH="27" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img36.png"
|
|
|
|
ALT="$p,t$">), MILU(<IMG
|
|
|
|
WIDTH="13" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img35.png"
|
|
|
|
ALT="$p$">),
|
|
|
|
LU from MUMPS, SuperLU or UMFPACK
|
|
|
|
(plus triangular solve). See Note for details on hybrid
|
|
|
|
Gauss-Seidel. </FONT></TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=102><FONT SIZE="-1">
|
|
|
|
<code>mld_moother_sweeps_</code> </FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1"><code>SMOOTHER_SWEEPS</code> </FONT></TD>
|
|
|
|
<TD ALIGN="LEFT"><FONT SIZE="-1"> <code>integer</code>
|
|
|
|
</FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=54><FONT SIZE="-1"> Any integer </FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1">number <IMG
|
|
|
|
WIDTH="31" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img99.png"
|
|
|
|
ALT="$\ge 0$">
|
|
|
|
</FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=102><FONT SIZE="-1"> 1
|
|
|
|
</FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=184><FONT SIZE="-1"> Number of sweeps of the smoother or one-level preconditioner.
|
|
|
|
In the multi-level 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. </FONT></TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=102><FONT SIZE="-1">
|
|
|
|
<code>mld_sub_ovr_</code> </FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1"><code>SUB_OVR</code> </FONT></TD>
|
|
|
|
<TD ALIGN="LEFT"><FONT SIZE="-1"> <code>integer</code>
|
|
|
|
</FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=54><FONT SIZE="-1"> Any integer </FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1">number <IMG
|
|
|
|
WIDTH="31" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img99.png"
|
|
|
|
ALT="$\ge 0$">
|
|
|
|
</FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=102><FONT SIZE="-1"> 1
|
|
|
|
</FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=184><FONT SIZE="-1"> Number of overlap layers, for Additive Schwarz only. </FONT></TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" COLSPAN=5><FONT SIZE="-1">
|
|
|
|
</FONT><FONT SIZE="-1"><B>Note.</B> The hybrid Gauss-Seidel method is
|
|
|
|
between the Gauss-Seidel and Jacobi methods: at each iteration, the processes use the</FONT></TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" COLSPAN=5><FONT SIZE="-1">
|
|
|
|
most recent values of their own local variables, and the values of
|
|
|
|
the non-local variables computed at the previous iteration.</FONT></TD>
|
|
|
|
</TR>
|
|
|
|
</TABLE></DIV>
|
|
|
|
</TD></TR>
|
|
|
|
</TABLE>
|
|
|
|
</DIV><P></P>
|
|
|
|
<BR>
|
|
|
|
|
|
|
|
<P>
|
|
|
|
<BR><P></P>
|
|
|
|
<DIV ALIGN="CENTER"><A NAME="1446"></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><FONT SIZE="-1">
|
|
|
|
<code>what</code> </FONT></TD>
|
|
|
|
<TD ALIGN="LEFT"><FONT SIZE="-1"> <SMALL>DATA TYPE</SMALL> </FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=71><FONT SIZE="-1"> <code>val</code> </FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=62><FONT SIZE="-1"> <SMALL>DEFAULT</SMALL> </FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=201><FONT SIZE="-1">
|
|
|
|
<SMALL>COMMENTS</SMALL> </FONT></TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=85><FONT SIZE="-1">
|
|
|
|
<code>mld_sub_restr_</code> </FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1"><code>SUB_RESTR</code> </FONT></TD>
|
|
|
|
<TD ALIGN="LEFT"><FONT SIZE="-1"> <code>character(len=*)</code>
|
|
|
|
</FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=71><FONT SIZE="-1"> <TT>'HALO'</TT> </FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1"><TT>'NONE'</TT>
|
|
|
|
</FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=62><FONT SIZE="-1"> <TT>'HALO'</TT>
|
|
|
|
</FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=201><FONT SIZE="-1"> Type of restriction operator, for Additive Schwarz only:
|
|
|
|
<TT>HALO</TT> for taking into account the overlap, <TT>NONE</TT>
|
|
|
|
for neglecting it. </FONT></TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=85><FONT SIZE="-1">
|
|
|
|
<code>mld_sub_prol_</code> </FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1"><code>SUB_PROL</code> </FONT></TD>
|
|
|
|
<TD ALIGN="LEFT"><FONT SIZE="-1"> <code>character(len=*)</code>
|
|
|
|
</FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=71><FONT SIZE="-1"> <TT>'SUM'</TT> </FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1"><TT>'NONE'</TT>
|
|
|
|
</FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=62><FONT SIZE="-1"> <TT>'NONE'</TT>
|
|
|
|
</FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=201><FONT SIZE="-1"> Type of prolongation operator, for Additive Schwarz only:
|
|
|
|
<TT>SUM</TT> for adding the contributions from the overlap, <TT>NONE</TT>
|
|
|
|
for neglecting them. </FONT></TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=85><FONT SIZE="-1">
|
|
|
|
<code>mld_sub_fillin_</code> </FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1"><code>SUB_FILLIN</code> </FONT></TD>
|
|
|
|
<TD ALIGN="LEFT"><FONT SIZE="-1"> <code>integer</code>
|
|
|
|
</FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=71><FONT SIZE="-1"> Any integer </FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1">number <IMG
|
|
|
|
WIDTH="31" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img99.png"
|
|
|
|
ALT="$\ge 0$">
|
|
|
|
</FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=62><FONT SIZE="-1"> 0
|
|
|
|
</FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=201><FONT SIZE="-1"> Fill-in level <IMG
|
|
|
|
WIDTH="13" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img35.png"
|
|
|
|
ALT="$p$"> of the incomplete LU factorizations. </FONT></TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=85><FONT SIZE="-1">
|
|
|
|
<code>mld_sub_iluthrs_</code> </FONT>
|
|
|
|
<P>
|
|
|
|
<FONT SIZE="-1"><code>SUB_ILUTHRS</code> </FONT></TD>
|
|
|
|
<TD ALIGN="LEFT"><FONT SIZE="-1"> <code>real(</code><I>kind_parameter</I><code>)</code>
|
|
|
|
</FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=71><FONT SIZE="-1"> Any real number <IMG
|
|
|
|
WIDTH="31" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img99.png"
|
|
|
|
ALT="$\ge 0$">
|
|
|
|
</FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=62><FONT SIZE="-1"> 0
|
|
|
|
</FONT></TD>
|
|
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=201><FONT SIZE="-1"> Drop tolerance <IMG
|
|
|
|
WIDTH="11" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
|
|
|
SRC="img100.png"
|
|
|
|
ALT="$t$"> in the ILU(<IMG
|
|
|
|
WIDTH="27" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
|
|
SRC="img36.png"
|
|
|
|
ALT="$p,t$">) factorization. </FONT></TD>
|
|
|
|
</TR>
|
|
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=85><FONT SIZE="-1"> </FONT></TD>
|
|
|
|
<TD></TD>
|
|
|
|
<TD></TD>
|
|
|
|
<TD></TD>
|
|
|
|
<TD></TD>
|
|
|
|
</TR>
|
|
|
|
</TABLE></DIV>
|
|
|
|
</TD></TR>
|
|
|
|
</TABLE>
|
|
|
|
</DIV><P></P>
|
|
|
|
<BR>
|
|
|
|
|
|
|
|
<P>
|
|
|
|
|
|
|
|
<P>
|
|
|
|
<HR>
|
|
|
|
<!--Navigation Panel-->
|
|
|
|
<A NAME="tex2html303"
|
|
|
|
HREF="node19.html">
|
|
|
|
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
|
|
|
<A NAME="tex2html299"
|
|
|
|
HREF="node16.html">
|
|
|
|
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
|
|
|
<A NAME="tex2html293"
|
|
|
|
HREF="node17.html">
|
|
|
|
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
|
|
|
<A NAME="tex2html301"
|
|
|
|
HREF="node2.html">
|
|
|
|
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
|
|
|
<BR>
|
|
|
|
<B> Next:</B> <A NAME="tex2html304"
|
|
|
|
HREF="node19.html">Subroutine bld</A>
|
|
|
|
<B> Up:</B> <A NAME="tex2html300"
|
|
|
|
HREF="node16.html">User Interface</A>
|
|
|
|
<B> Previous:</B> <A NAME="tex2html294"
|
|
|
|
HREF="node17.html">Subroutine init</A>
|
|
|
|
<B> <A NAME="tex2html302"
|
|
|
|
HREF="node2.html">Contents</A></B>
|
|
|
|
<!--End of Navigation Panel-->
|
|
|
|
|
|
|
|
</BODY>
|
|
|
|
</HTML>
|