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.
907 lines
40 KiB
HTML
907 lines
40 KiB
HTML
<!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="node21.html">
|
|
<LINK REL="previous" HREF="node19.html">
|
|
<LINK REL="up" HREF="node18.html">
|
|
<LINK REL="next" HREF="node21.html">
|
|
</HEAD>
|
|
|
|
<BODY >
|
|
<!--Navigation Panel-->
|
|
<A NAME="tex2html331"
|
|
HREF="node21.html">
|
|
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
|
<A NAME="tex2html327"
|
|
HREF="node18.html">
|
|
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
|
<A NAME="tex2html321"
|
|
HREF="node19.html">
|
|
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
|
<A NAME="tex2html329"
|
|
HREF="node2.html">
|
|
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
|
<BR>
|
|
<B> Next:</B> <A NAME="tex2html332"
|
|
HREF="node21.html">Subroutine build</A>
|
|
<B> Up:</B> <A NAME="tex2html328"
|
|
HREF="node18.html">User Interface</A>
|
|
<B> Previous:</B> <A NAME="tex2html322"
|
|
HREF="node19.html">Subroutine init</A>
|
|
<B> <A NAME="tex2html330"
|
|
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><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
|
<P>
|
|
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
|
<DIV ALIGN="CENTER"><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><code>call p%set(what,val,info [,ilev, ilmax, pos])</code>
|
|
</FONT></FONT></FONT></DIV><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
|
<P>
|
|
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
|
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>.
|
|
</FONT></FONT></FONT>
|
|
<P>
|
|
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><B>Arguments</B></FONT> </FONT></FONT></FONT>
|
|
<P></P>
|
|
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
|
<P>
|
|
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT><TABLE CELLPADDING=3>
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><code>what</code> </FONT></FONT></FONT></TD>
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>character(len=*)</code>. </FONT></FONT></FONT></TD>
|
|
</TR>
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
|
</FONT></FONT></FONT></TD>
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> The parameter to be set. It can be specified through its name;
|
|
the string is case-insensitive. See
|
|
Tables <A HREF="#tab:p_cycle">2</A>-<A HREF="#tab:p_smoother_1">8</A>.</FONT></FONT></FONT></TD>
|
|
</TR>
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
|
<code>val </code> </FONT></FONT></FONT></TD>
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <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>.</FONT></FONT></FONT></TD>
|
|
</TR>
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
|
</FONT></FONT></FONT></TD>
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> 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.</FONT></FONT></FONT></TD>
|
|
</TR>
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
|
<code>info</code> </FONT></FONT></FONT></TD>
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>integer, intent(out)</code>.</FONT></FONT></FONT></TD>
|
|
</TR>
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
|
</FONT></FONT></FONT></TD>
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> Error code. If no error, 0 is returned. See Section <A HREF="node28.html#sec:errors">8</A>
|
|
for details.</FONT></FONT></FONT></TD>
|
|
</TR>
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
|
<code>ilev</code> </FONT></FONT></FONT></TD>
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>integer, optional, intent(in)</code>.</FONT></FONT></FONT></TD>
|
|
</TR>
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
|
</FONT></FONT></FONT></TD>
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> 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 <A HREF="#tab:p_cycle">2</A>-<A HREF="#tab:p_smoother_1">8</A>).</FONT></FONT></FONT></TD>
|
|
</TR>
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
|
<code>ilmax</code> </FONT></FONT></FONT></TD>
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>integer, optional, intent(in)</code>.</FONT></FONT></FONT></TD>
|
|
</TR>
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
|
</FONT></FONT></FONT></TD>
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> 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. </FONT></FONT></FONT></TD>
|
|
</TR>
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
|
<code>pos</code> </FONT></FONT></FONT></TD>
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>charater(len=*), optional, intent(in)</code>.</FONT></FONT></FONT></TD>
|
|
</TR>
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=34><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
|
</FONT></FONT></FONT></TD>
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> 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.
|
|
</FONT></FONT></FONT></TD>
|
|
</TR>
|
|
</TABLE><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
|
<P>
|
|
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">For compatibility with the previous versions of MLD2P4, this routine can be also invoked
|
|
as follows:
|
|
</FONT></FONT></FONT>
|
|
<P>
|
|
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
|
<DIV ALIGN="CENTER"><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><code>call mld_precset(p,what,val,info)</code>
|
|
</FONT></FONT></FONT></DIV><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
|
<P>
|
|
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
|
However, in this case the optional arguments <code>ilev</code>, <code>ilmax</code>, and <code>pos</code>
|
|
cannot be used.
|
|
<BR></FONT></FONT></FONT>
|
|
<P>
|
|
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">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
|
|
</FONT></FONT></FONT>
|
|
<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><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">
|
|
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="node12.html#sec:background">4</A>.
|
|
<BR></FONT></FONT></FONT>
|
|
<P>
|
|
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><B>Remark 2.</B> 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 <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>SMOOTHER_TYPE</code> to appropriate values (see
|
|
Tables <A HREF="#tab:p_smoother">7</A>), i.e., without setting
|
|
<code>SUB_SOLVE</code> too.
|
|
</FONT></FONT></FONT>
|
|
<P>
|
|
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">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.
|
|
</FONT></FONT></FONT>
|
|
<P>
|
|
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">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></FONT></FONT></FONT>
|
|
<P>
|
|
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"><B>Remark 3.</B> 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.
|
|
</FONT></FONT></FONT>
|
|
<P>
|
|
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">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.
|
|
</FONT></FONT></FONT>
|
|
<P>
|
|
<FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1">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.
|
|
</FONT></FONT></FONT>
|
|
<P>
|
|
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
|
<BR><P></P>
|
|
<DIV ALIGN="CENTER"><A NAME="1337"></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 <IMG
|
|
WIDTH="31" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
SRC="img74.png"
|
|
ALT="$\ge 1$"></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><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
|
<P>
|
|
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
|
<BR><P></P>
|
|
<DIV ALIGN="CENTER"><A NAME="1342"></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>
|
|
<IMG
|
|
WIDTH="32" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
SRC="img75.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="img76.png"
|
|
ALT="$\lfloor 40 \sqrt[3]{n} \rfloor$">, where <IMG
|
|
WIDTH="15" HEIGHT="18" ALIGN="BOTTOM" BORDER="0"
|
|
SRC="img77.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>'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="img78.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>'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="img78.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>'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 <IMG
|
|
WIDTH="63" HEIGHT="40" ALIGN="MIDDLE" BORDER="0"
|
|
SRC="img79.png"
|
|
ALT="$A+A^T$">.</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><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="node30.html#VANEK_MANDEL_BREZINA">25</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><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><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
|
<P>
|
|
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
|
<BR><P></P>
|
|
<DIV ALIGN="CENTER"><A NAME="1346"></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><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="img80.png"
|
|
ALT="$\in [0, 1]$"></TD>
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=65>0.01</TD>
|
|
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=187>The threshold <IMG
|
|
WIDTH="13" HEIGHT="16" ALIGN="BOTTOM" BORDER="0"
|
|
SRC="img81.png"
|
|
ALT="$\theta$"> in the aggregation algorithm,
|
|
see (<A HREF="node14.html#eq:strongly_coup">3</A>) in Section <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 (<A HREF="node14.html#eq:filtered">5</A>) in Section <A HREF="node14.html#sec:aggregation">4.2</A>).</TD>
|
|
</TR>
|
|
<TR><TD ALIGN="LEFT" COLSPAN=5><B>Note.</B> Different thresholds at different levels, such as
|
|
those used in [<A
|
|
HREF="node30.html#VANEK_MANDEL_BREZINA">25</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><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
|
<P>
|
|
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
|
<BR><P></P>
|
|
<DIV ALIGN="CENTER"><A NAME="1351"></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 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. 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 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(<IMG
|
|
WIDTH="13" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
SRC="img82.png"
|
|
ALT="$p$">), ILU(<IMG
|
|
WIDTH="27" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
SRC="img83.png"
|
|
ALT="$p,t$">),
|
|
MILU(<IMG
|
|
WIDTH="13" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
SRC="img82.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.</B> Defaults for <TT>COARSE_SOLVE</TT> and
|
|
<TT>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>
|
|
</TABLE>
|
|
</DIV>
|
|
</TD></TR>
|
|
</TABLE>
|
|
</DIV><P></P>
|
|
<BR><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
|
<P>
|
|
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
|
<BR><P></P>
|
|
<DIV ALIGN="CENTER"><A NAME="1353"></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 <IMG
|
|
WIDTH="32" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
SRC="img75.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>'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="img84.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="img82.png"
|
|
ALT="$p$"> 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><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="img84.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="img85.png"
|
|
ALT="$t$"> in the ILU(<IMG
|
|
WIDTH="27" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
SRC="img83.png"
|
|
ALT="$p,t$">) factorization.</TD>
|
|
</TR>
|
|
</TABLE>
|
|
</DIV>
|
|
</TD></TR>
|
|
</TABLE>
|
|
</DIV><P></P>
|
|
<BR><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
|
<P>
|
|
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
|
<BR><P></P>
|
|
<DIV ALIGN="CENTER"><A NAME="1355"></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>'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 multilevel preconditioner:
|
|
point-Jacobi, hybrid (forward) Gauss-Seidel,
|
|
hybrid backward Gauss-Seidel, block-Jacobi, and
|
|
Additive Schwarz. </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>'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 multilevel 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="img82.png"
|
|
ALT="$p$">), ILU(<IMG
|
|
WIDTH="27" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
SRC="img83.png"
|
|
ALT="$p,t$">), MILU(<IMG
|
|
WIDTH="13" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
SRC="img82.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>'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="img84.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 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. </FONT></TD>
|
|
</TR>
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=102><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="img84.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>
|
|
</TABLE></DIV>
|
|
</TD></TR>
|
|
</TABLE>
|
|
</DIV><P></P>
|
|
<BR><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
|
<P>
|
|
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
|
<BR><P></P>
|
|
<DIV ALIGN="CENTER"><A NAME="1357"></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>'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>
|
|
<P>
|
|
<FONT SIZE="-1">Note that <TT>HALO</TT> must be chosen for
|
|
the classical Addditive Schwarz smoother and its RAS variant.</FONT></TD>
|
|
</TR>
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=85><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>
|
|
<P>
|
|
<FONT SIZE="-1">Note that <TT>SUM</TT> must be chosen for the classical Additive
|
|
Schwarz smoother, and <TT>NONE</TT> for its RAS variant. </FONT></TD>
|
|
</TR>
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=85><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="img84.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="img82.png"
|
|
ALT="$p$"> of the incomplete LU factorizations. </FONT></TD>
|
|
</TR>
|
|
<TR><TD ALIGN="LEFT" VALIGN="TOP" WIDTH=85><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="img84.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="img85.png"
|
|
ALT="$t$"> in the ILU(<IMG
|
|
WIDTH="27" HEIGHT="31" ALIGN="MIDDLE" BORDER="0"
|
|
SRC="img83.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><FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
|
<P>
|
|
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT>
|
|
<P>
|
|
<FONT SIZE="+1"><FONT SIZE="+1"></FONT></FONT><HR>
|
|
<!--Navigation Panel-->
|
|
<A NAME="tex2html331"
|
|
HREF="node21.html">
|
|
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
|
<A NAME="tex2html327"
|
|
HREF="node18.html">
|
|
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
|
<A NAME="tex2html321"
|
|
HREF="node19.html">
|
|
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
|
<A NAME="tex2html329"
|
|
HREF="node2.html">
|
|
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
|
<BR>
|
|
<B> Next:</B> <A NAME="tex2html332"
|
|
HREF="node21.html">Subroutine build</A>
|
|
<B> Up:</B> <A NAME="tex2html328"
|
|
HREF="node18.html">User Interface</A>
|
|
<B> Previous:</B> <A NAME="tex2html322"
|
|
HREF="node19.html">Subroutine init</A>
|
|
<B> <A NAME="tex2html330"
|
|
HREF="node2.html">Contents</A></B>
|
|
<!--End of Navigation Panel-->
|
|
|
|
</BODY>
|
|
</HTML>
|