Added options for BJAC coarse solver and L1-smoothers

mergeparmatch
Cirdans-Home 4 years ago
parent 5b2169672b
commit 6b95ed7d9b

@ -40,7 +40,7 @@ The following base libraries are needed:
behaviour of the BLAS interface, so they are not optimized for any behaviour of the BLAS interface, so they are not optimized for any
particular platform, and should only be used as a last particular platform, and should only be used as a last
resort. Note that BLAS computations form a relatively small part of resort. Note that BLAS computations form a relatively small part of
the AMG4PSBLAS/PSBLAS; however they are critical when using the AMG4PSBLAS/\-PSBLAS; however they are critical when using
preconditioners based on the MUMPS, UMFPACK or SuperLU third party preconditioners based on the MUMPS, UMFPACK or SuperLU third party
libraries. UMFPACK requires a full LAPACK library; our libraries. UMFPACK requires a full LAPACK library; our
experience is that configuring ATLAS for building full LAPACK does not always experience is that configuring ATLAS for building full LAPACK does not always

@ -30,6 +30,26 @@ whose current value is \verb|1.0|.
\subsection*{Citing AMG4PSBLAS} \subsection*{Citing AMG4PSBLAS}
When use the library, please cite the following: When use the library, please cite the following:
\ifpdf
\begin{minted}[breakanywhere,fontsize=\small]{bibtex}
@article{DDF2021,
author = {D'Ambra, Pasqua and Durastante, Fabio and Filippone, Salvatore},
title = {{{AMG Preconditioners for Linear Solvers towards Extreme Scale}},
journal = {arXiv e-preprints},
eprint = {2006.16147v3},
archivePrefix = {arXiv},
year={2021}
}
@Misc{psctoolkit-web-page,
author = {D'Ambra, Pasqua and Durastante, Fabio and Filippone, Salvatore},
title = {{PSCToolkit} {W}eb page},
url = {https://psctoolkit.github.io/},
howpublished = {\url{https://psctoolkit.github.io/}},
year = {2021}
}
\end{minted}
\else
\begin{verbatim} \begin{verbatim}
@article{DDF2021, @article{DDF2021,
author = {D'Ambra, Pasqua and Durastante, Fabio and Filippone, Salvatore}, author = {D'Ambra, Pasqua and Durastante, Fabio and Filippone, Salvatore},
@ -47,4 +67,5 @@ When use the library, please cite the following:
howpublished = {\url{https://psctoolkit.github.io/}}, howpublished = {\url{https://psctoolkit.github.io/}},
year = {2021} year = {2021}
} }
\end{verbatim} \end{verbatim}
\fi

@ -468,7 +468,7 @@ the parameter \texttt{ilev}.} \\
& Any integer \par number $> 0$ & Any integer \par number $> 0$
& 10 & 10
& Number of sweeps when \fortinline|JACOBI|, \fortinline|GS| or \fortinline|BJAC| & Number of sweeps when \fortinline|JACOBI|, \fortinline|GS| or \fortinline|BJAC|
is chosen as coarsest-level solver. {\bf Aggiungere criterio di arresto del PCG?}\\ \hline is chosen as coarsest-level solver.\\ \hline
\fortinline|'COARSE_FILLIN'| & \fortinline|integer| \fortinline|'COARSE_FILLIN'| & \fortinline|integer|
& Any integer \par number $\ge 0$ & Any integer \par number $\ge 0$
& 0 & 0
@ -481,12 +481,34 @@ the parameter \texttt{ilev}.} \\
& Drop tolerance $t$ in the ILU($p,t$) & Drop tolerance $t$ in the ILU($p,t$)
factorization and first drop-tolerance for the approximate inverses. \\ factorization and first drop-tolerance for the approximate inverses. \\
\hline \hline
\multicolumn{5}{|l|}{{\bfseries Note.} Further options for coarse solvers are contained in Table~\ref{tab:p_coarse_2}.} \\
\multicolumn{5}{|l|}{For a first use it is suggested to use the default options obtained by simply selecting the solver type.} \\
\hline
\end{tabular} \end{tabular}
\end{center} \end{center}
\caption{Parameters defining the coarse-space correction at the coarsest \caption{Parameters defining the coarse-space correction at the coarsest
level (continued).\label{tab:p_coarse_1}} level (continued).\label{tab:p_coarse_1}}
\esideways \esideways
\bsideways
\begin{center}
\begin{tabular}{|p{3.9cm}|l|p{1.7cm}|p{1.7cm}|p{8cm}|}
\hline
\fortinline|what| & \textsc{data type} & \fortinline|val| & \textsc{default} &
\textsc{comments} \\ \hline
\fortinline|'BJAC_STOP'| & \fortinline|character(len=*)| & \fortinline|'FALSE'| \par \fortinline|'TRUE'| & \fortinline|'FALSE'| & Select whether to use a stopping criterion for the Block-Jacobi method used as a coarse solver. \\ \hline
\fortinline|'BJAC_TRACE'| & \fortinline|character(len=*)| & \fortinline|'FALSE'| \par \fortinline|'TRUE'| & \fortinline|'FALSE'| & Select whether to print a trace for the calculated residual for the Block-Jacobi method used as a coarse solver. \\ \hline
\fortinline|'BJAC_ITRACE'| & \fortinline|integer| & Any integer $>0$ & -1 & Number of iterations after which a trace is to be printed. \\ \hline
\fortinline|'BJAC_RESCHECK'|& \fortinline|integer| & Any integer $>0$ & -1 & Number of iterations after which a residual is to be calculated. \\ \hline
\fortinline|'BJAC_STOPTOL'| & \fortinline|real(kind_parameter)| & Any real $<1$ & 0 & Tolerance for the stopping criterion on the residual. \\ \hline
\hline
\end{tabular}
\end{center}
\caption{Additional parameters defining the coarse-space correction at the coarsest
level.\label{tab:p_coarse_2}}
\esideways
\bsideways \bsideways
\begin{center} \begin{center}
\small \small
@ -497,16 +519,16 @@ level (continued).\label{tab:p_coarse_1}}
\fortinline|'SMOOTHER_TYPE'| & \fortinline|character(len=*)| \fortinline|'SMOOTHER_TYPE'| & \fortinline|character(len=*)|
& \fortinline|'JACOBI'| \par \fortinline|'GS'| \par \fortinline|'BGS'| \par \fortinline|'BJAC'| & \fortinline|'JACOBI'| \par \fortinline|'GS'| \par \fortinline|'BGS'| \par \fortinline|'BJAC'|
\par \fortinline|'AS'| \par \fortinline|'AS'| \par \fortinline|'L1-JACOBI'| \par \fortinline|'L1-BJAC'| \par \fortinline|'L1-FBGS'|
& \fortinline|'FBGS'| & \fortinline|'FBGS'|
& Type of smoother used in the multilevel preconditioner: & Type of smoother used in the multilevel preconditioner:
point-Jacobi, hybrid (forward) Gauss-Seidel, point-Jacobi, hybrid (forward) Gauss-Seidel,
hybrid backward Gauss-Seidel, block-Jacobi, \textbf{$\ell_1$-versions?} and hybrid backward Gauss-Seidel, block-Jacobi, $\ell_1$-Jacobi, $\ell_1$--hybrid (forward) Gauss-Seidel, $\ell_1$-point-Jacobi and
Additive Schwarz. \par Additive Schwarz. \par
It is ignored by one-level preconditioners. \\ \hline It is ignored by one-level preconditioners. \\ \hline
\fortinline|'SUB_SOLVE'| & \fortinline|character(len=*)| \fortinline|'SUB_SOLVE'| & \fortinline|character(len=*)|
& \fortinline|'JACOBI'| \par & \fortinline|'JACOBI'|
\fortinline|'GS'| \par \texttt{'BGS'} \par \fortinline|'ILU'| \par \fortinline|'GS'| \par \fortinline|'BGS'| \par \fortinline|'ILU'| \par
\fortinline|'ILUT'| \par \fortinline|'MILU'| \par \fortinline|'ILUT'| \par \fortinline|'MILU'| \par
\par \fortinline|'MUMPS'| \par \par \fortinline|'MUMPS'| \par
\fortinline|'SLU'| \par \fortinline|'UMF'| \fortinline|'SLU'| \par \fortinline|'UMF'|
@ -515,7 +537,6 @@ level (continued).\label{tab:p_coarse_1}}
of multilevel preconditioners, respectively \par of multilevel preconditioners, respectively \par
\texttt{ILU} for block-Jacobi and Additive Schwarz \texttt{ILU} for block-Jacobi and Additive Schwarz
one-level preconditioners one-level preconditioners
\textbf{$\ell_1$-versions?}
& The local solver to be used with the smoother or one-level & The local solver to be used with the smoother or one-level
preconditioner (see Remark~2, page~24): point-Jacobi, preconditioner (see Remark~2, page~24): point-Jacobi,
hybrid (forward) Gauss-Seidel, hybrid backward hybrid (forward) Gauss-Seidel, hybrid backward
@ -536,7 +557,7 @@ level (continued).\label{tab:p_coarse_1}}
& Number of sweeps of the smoother or one-level preconditioner. & Number of sweeps of the smoother or one-level preconditioner.
In the multilevel case, no pre-smother or In the multilevel case, no pre-smother or
post-smoother is used if this parameter is set to 0 post-smoother is used if this parameter is set to 0
together with \fortinline|pos='PRE'| or \fortinline|pos='POST|, together with \fortinline|pos='PRE'| or \fortinline|pos='POST'|,
respectively. \\ \hline respectively. \\ \hline
\fortinline|'SUB_OVR'| & \fortinline|integer| \fortinline|'SUB_OVR'| & \fortinline|integer|
& Any integer \par number~$\ge 0$ & Any integer \par number~$\ge 0$

Loading…
Cancel
Save