mld2p4-2:

docs/html/img100.png
 docs/html/img101.png
 docs/html/img102.png
 docs/html/img103.png
 docs/html/img104.png
 docs/html/img105.png
 docs/html/img106.png
 docs/html/img107.png
 docs/html/img108.png
 docs/html/img93.png
 docs/html/img94.png
 docs/html/img95.png
 docs/html/img96.png
 docs/html/img97.png
 docs/html/img98.png
 docs/html/img99.png
 docs/html/node17.html
 docs/html/node18.html
 docs/html/node20.html
 docs/html/node26.html
 docs/mld2p4-2.1-guide.pdf
 docs/src/userinterface.tex
 tests/pdegen/runs/ppde.inp

Update docs with new aggregation and solvers.
This commit is contained in:
Salvatore Filippone
2016-05-23 08:44:34 +00:00
parent 111313d3c6
commit f6d0f6de23
23 changed files with 597 additions and 387 deletions
+61 -27
View File
@@ -63,9 +63,11 @@ according to the preconditioner type chosen by the user.
\verb|info| & \verb|integer, intent(out)|.\\
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors} for details.\\
\verb|nlev| & \verb|integer, optional, intent(in)|.\\
& The number of levels of the multilevel preconditioner.
If \verb|nlev| is not present and \verb|ptype|=\verb|'ML'|, \verb|'ml'|,
then \verb|nlev|=2 is assumed. Otherwise, \verb|nlev| is ignored.\\
& The number of levels of the multilevel
preconditioner. This optional argument is deprecated,
new codes should set the number of levels with \verb|mld_precset|.\\
% If \verb|nlev| is not present and \verb|ptype|=\verb|'ML'|, \verb|'ml'|,
% then \verb|nlev|=2 is assumed. Otherwise, \verb|nlev| is ignored.\\
\end{tabular}
\clearpage
@@ -96,7 +98,7 @@ variable of the new type in the main program, it is possible to pass
the new smoother/solver variable to the setup routine as follows:
\begin{center}
\verb|call p%set(smoother,info [,ilev ,pos])|\\
\verb|call p%set(solver,info [,ilev ,poss])|
\verb|call p%set(solver,info [,ilev ,pos])|
\end{center}
In this way, the variable will act as a \emph{mold} to which the
preconditioner will conform, even though the MLD2P4 library is not
@@ -133,6 +135,10 @@ modified, and thus has no direct knowledge about the new type.
\verb|info| & \verb|integer, intent(out)|.\\
& Error code. If no error, 0 is returned. See Section~\ref{sec:errors}
for details.\\
\verb|pos| & \verb|charater(len=*), intent(in)|.\\
& Whether the other arguments apply to the \verb|'PRE'|
or to the \verb|'POST'| smoothers.\\
%
%\verb|ilev| & \verb|integer, optional, intent(in)|.\\
% & For the multilevel preconditioner, the level at which the
@@ -297,19 +303,43 @@ according to their needs.
%\multicolumn{5}{|c|}{\emph{aggregation algorithm}} \\ \hline
\verb|mld_coarse_aggr_size_| \break \verb|COARSE_AGGR_SIZE| & \verb|integer|
& A positive number
& 0, meaning that the size is fixed at
\verb|precinit| time
& Coarse size threshold. Disregard the
original specification of number of levels in
\verb|precinit| and continue aggregation
until either the global number of variables
is below this threshold, or the aggregation
does not reduce the size any longer. \\ \hline
& The cubic root of
the matrix size at the fine level.
& Coarse size threshold. Aggregation will
proceed until either the global number of
variables is below this threshold, or the
aggregation does not reduce the size any
longer, or the maximum number of levels is
reached. \\ \hline
\verb|mld_min_aggr_ratio| \break \verb|MIN_AGGR_RATIO| & \verb|real|
& A number greater than one
& 1.5
& Minimum aggregation ratio. Aggregation will
stop if the ratio between the matrix sizes
at two consecutive levels drops below this
threshold.\\ \hline
\verb|mld_n_prec_levs_| \break \verb|N_PREC_LEVS| & \verb|integer|
& A number greater than 1, or -1.
& -1
& Number of levels; if set to a positive
number greater than 1, it will force the
aggregation algorithm to use this many
levels (unless there is no reduction in the
coarse matrix size). \\ \hline
\verb|mld_max_prec_levs_| \break \verb|MAX_PREC_LEVS| & \verb|integer|
& A positive number
& 20
& Maximum number of levels: irrespective of
the other settings, do not use more than
this many levels. \\ \hline
\verb|mld_aggr_alg_| \break \verb|AGGR_ALG| & \verb|character(len=*)|
& \texttt{'DEC'}
& \texttt{'DEC'}, \texttt{'SYMDEC'}
& \texttt{'DEC'}
& Aggregation algorithm. Currently, only the
decoupled aggregation is available. \\ \hline
decoupled aggregation is available; the
\verb|SYMDEC| option applies decoupled
aggregation to the sparsity pattern
of $A+A^T$.\\ \hline
\verb|mld_aggr_ord_| \break \verb|AGGR_ORD| & \verb|character(len=*)|
& \texttt{'NATURAL'}
& \texttt{'DEGREE'}
@@ -331,15 +361,15 @@ according to their needs.
& Any~real~num. $\in [0, 1]$
& 1.0
& Scale factor applied to the threshold going
from level $ilev$ to level $ilev+1$. \\ \hline
from level $ilev$ to level $ilev+1$. \\ \hline
\verb|mld_aggr_omega_alg_| \break \verb|AGGR_OMEGA_ALG|& \verb|character(len=*)|
& \texttt{'EIG\_EST'} \hspace{2.5cm} \texttt{'USER\_CHOICE'}
& \texttt{'EIG\_EST'}
& How the damping parameter $\omega$ in the
smoothed aggregation should be computed:
either via an estimate of the spectral radius of
$D^{-1}A$, or explicily
specified by the user. \\ \hline
smoothed aggregation should be computed:
either via an estimate of the spectral radius of
$D^{-1}A$, or explicily
specified by the user. \\ \hline
\verb|mld_aggr_eig_| \break \verb|AGGR_EIG| & \verb|character(len=*)|
& \texttt{'A\_NORMI'}
& \texttt{'A\_NORMI'}
@@ -376,19 +406,23 @@ according to their needs.
& Coarsest matrix: distributed among the processors or
replicated on each of them. \\ \hline
\verb|mld_coarse_solve_| \break \verb|COARSE_SOLVE| & \verb|character(len=*)|
& \texttt{'BJAC'} \hspace{2.5cm} \texttt{'UMF'} \hspace{2.5cm}
& \texttt{'BJAC'} \hspace{2.5cm}
\texttt{'UMF'} \hspace{2.5cm} \texttt{'MUMPS'} \hspace{2.5cm}
\texttt{'SLU'} \hspace{2.5cm} \texttt{'SLUDIST'}
& \texttt{'BJAC'}
& Solver used at the coarsest level: block Jacobi, sequential
LU from UMFPACK, sequential LU from SuperLU,
distributed LU from SuperLU\_Dist.
\texttt{'SLUDIST'} requires the coarsest
matrix to be distributed, while \texttt{'UMF'} and
\texttt{'SLU'} require it to be replicated. \\ \hline
distributed LU from SuperLU\_Dist or MUMPS.
\texttt{'SLUDIST'} and \texttt{'MUMPS'}
require the coarsest matrix to be distributed, while
\texttt{'UMF'} and \texttt{'SLU'} require
it to be replicated. \\ \hline
\verb|mld_coarse_subsolve_| \break \verb|COARSE_SUBSOLVE| & \verb|character(len=*)|
& \texttt{'ILU'} \hspace{2.5cm} \texttt{'MILU'}
\hspace{2.5cm} \texttt{'ILUT'}
\hspace{2.5cm} \texttt{'UMF'} \hspace{2.5cm} \texttt{'SLU'}
\hspace{2.5cm} \texttt{'UMF'}
\hspace{2.5cm} \texttt{'SLU'}
\hspace{2.5cm} \texttt{'MUMPS'}
& See note
& Solver for the diagonal blocks of the coarse matrix,
in case the block Jacobi solver
@@ -411,8 +445,8 @@ according to their needs.
\hline
\multicolumn{5}{|l|}{{\bfseries Note:} defaults for
{\texttt mld\_coarse\_subsolve\_} are chosen as }\\
\multicolumn{5}{|l|}{single precision version: 'SLU' if installed, 'ILU' otherwise}\\
\multicolumn{5}{|l|}{double precision version: 'UMF' if installed,
\multicolumn{5}{|l|}{single precision version: 'MUMPS' if installed, 'SLU' if installed, 'ILU' otherwise}\\
\multicolumn{5}{|l|}{double precision version: 'MUMPS' if installed, 'UMF' if installed,
else 'SLU' if installed, 'ILU' otherwise}\\
\hline
\end{tabular}