mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-06 22:55:12 +00:00
HTML doc fixes.
This commit is contained in:
+824
-51
@@ -7,8 +7,8 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
Jens Lippmann, Marek Rouchal, Martin Wilck and others -->
|
||||
<HTML>
|
||||
<HEAD>
|
||||
<TITLE>Subroutine hierarchy_build</TITLE>
|
||||
<META NAME="description" CONTENT="Subroutine hierarchy_build">
|
||||
<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">
|
||||
@@ -20,50 +20,50 @@ original version by: Nikos Drakos, CBLU, University of Leeds
|
||||
|
||||
<LINK REL="next" HREF="node20.html">
|
||||
<LINK REL="previous" HREF="node18.html">
|
||||
<LINK REL="up" HREF="node15.html">
|
||||
<LINK REL="up" HREF="node17.html">
|
||||
<LINK REL="next" HREF="node20.html">
|
||||
</HEAD>
|
||||
|
||||
<BODY >
|
||||
<!--Navigation Panel-->
|
||||
<A NAME="tex2html311"
|
||||
<A NAME="tex2html318"
|
||||
HREF="node20.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html307"
|
||||
HREF="node15.html">
|
||||
<A NAME="tex2html314"
|
||||
HREF="node17.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html301"
|
||||
<A NAME="tex2html308"
|
||||
HREF="node18.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html309"
|
||||
<A NAME="tex2html316"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html312"
|
||||
HREF="node20.html">Subroutine smoothers_build</A>
|
||||
<B> Up:</B> <A NAME="tex2html308"
|
||||
HREF="node15.html">User Interface</A>
|
||||
<B> Previous:</B> <A NAME="tex2html302"
|
||||
HREF="node18.html">Subroutine build</A>
|
||||
<B> <A NAME="tex2html310"
|
||||
<B> Next:</B> <A NAME="tex2html319"
|
||||
HREF="node20.html">Subroutine build</A>
|
||||
<B> Up:</B> <A NAME="tex2html315"
|
||||
HREF="node17.html">User Interface</A>
|
||||
<B> Previous:</B> <A NAME="tex2html309"
|
||||
HREF="node18.html">Subroutine init</A>
|
||||
<B> <A NAME="tex2html317"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<BR>
|
||||
<BR>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
<H2><A NAME="SECTION00084000000000000000"></A><A NAME="sec:hier_bld"></A>
|
||||
<H2><A NAME="SECTION00082000000000000000"></A><A NAME="sec:precset"></A>
|
||||
<BR>
|
||||
Subroutine hierarchy_build
|
||||
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%hierarchy_build(a,desc_a,info)</code>
|
||||
<BR></FONT></FONT></FONT></DIV><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 builds the hierarchy of matrices and restriction/prolongation
|
||||
operators for the multi-level preconditioner <code>p</code>, according to the requirements
|
||||
made by the user through the routines <code>init</code> and <code>set</code>.
|
||||
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>
|
||||
@@ -71,62 +71,835 @@ made by the user through the routines <code>init</code> and <code>set</code>.
|
||||
<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>a</code> </FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>type(psb_</code><I>x</I><code>spmat_type), intent(in)</code>. </FONT></FONT></FONT></TD>
|
||||
<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 sparse matrix structure containing the local part of the
|
||||
matrix to be preconditioned. Note that <I>x</I> must be chosen according
|
||||
to the real/complex,
|
||||
single/double precision version of MLD2P4 under use.
|
||||
See the PSBLAS User's Guide for details [<A
|
||||
HREF="node27.html#PSBLASGUIDE">13</A>].</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>desc_a</code> </FONT></FONT></FONT></TD>
|
||||
<TD ALIGN="LEFT" VALIGN="TOP" WIDTH=340><FONT SIZE="+1"><FONT SIZE="+1"><FONT SIZE="+1"> <code>type(psb_desc_type), intent(in)</code>. </FONT></FONT></FONT></TD>
|
||||
<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 communication descriptor of <code>a</code>. See the PSBLAS User's Guide for
|
||||
details [<A
|
||||
HREF="node27.html#PSBLASGUIDE">13</A>].</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>
|
||||
<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="node25.html#sec:errors">8</A> for details.</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="node27.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 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>).</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 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. </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 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><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="node11.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="1290"></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>'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>'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 multi-level 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="1295"></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'</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="node29.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="1299"></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.05</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="node13.html#eq:strongly_coup">3</A>) in Section <A HREF="node13.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="node13.html#eq:filtered">5</A>) in Section <A HREF="node13.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="node29.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="1304"></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, <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>'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="1306"></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="1308"></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 multi-level 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 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="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 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>'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="1310"></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="tex2html311"
|
||||
<A NAME="tex2html318"
|
||||
HREF="node20.html">
|
||||
<IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="next.png"></A>
|
||||
<A NAME="tex2html307"
|
||||
HREF="node15.html">
|
||||
<A NAME="tex2html314"
|
||||
HREF="node17.html">
|
||||
<IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="up.png"></A>
|
||||
<A NAME="tex2html301"
|
||||
<A NAME="tex2html308"
|
||||
HREF="node18.html">
|
||||
<IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="prev.png"></A>
|
||||
<A NAME="tex2html309"
|
||||
<A NAME="tex2html316"
|
||||
HREF="node2.html">
|
||||
<IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="contents.png"></A>
|
||||
<BR>
|
||||
<B> Next:</B> <A NAME="tex2html312"
|
||||
HREF="node20.html">Subroutine smoothers_build</A>
|
||||
<B> Up:</B> <A NAME="tex2html308"
|
||||
HREF="node15.html">User Interface</A>
|
||||
<B> Previous:</B> <A NAME="tex2html302"
|
||||
HREF="node18.html">Subroutine build</A>
|
||||
<B> <A NAME="tex2html310"
|
||||
<B> Next:</B> <A NAME="tex2html319"
|
||||
HREF="node20.html">Subroutine build</A>
|
||||
<B> Up:</B> <A NAME="tex2html315"
|
||||
HREF="node17.html">User Interface</A>
|
||||
<B> Previous:</B> <A NAME="tex2html309"
|
||||
HREF="node18.html">Subroutine init</A>
|
||||
<B> <A NAME="tex2html317"
|
||||
HREF="node2.html">Contents</A></B>
|
||||
<!--End of Navigation Panel-->
|
||||
|
||||
|
||||
Reference in New Issue
Block a user