<!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>minimum 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>