mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-20 04:42:10 +00:00
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:
+61
-27
@@ -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}
|
||||
|
||||
Reference in New Issue
Block a user