From 6b95ed7d9b0594ed57bd9db8e352528f456a846d Mon Sep 17 00:00:00 2001 From: Cirdans-Home Date: Tue, 30 Mar 2021 11:14:45 +0200 Subject: [PATCH] Added options for BJAC coarse solver and L1-smoothers --- docs/src/building.tex | 2 +- docs/src/distribution.tex | 23 ++++++++++++++++++++++- docs/src/userinterface.tex | 35 ++++++++++++++++++++++++++++------- 3 files changed, 51 insertions(+), 9 deletions(-) diff --git a/docs/src/building.tex b/docs/src/building.tex index 76c08e5a..38ae3bb7 100644 --- a/docs/src/building.tex +++ b/docs/src/building.tex @@ -40,7 +40,7 @@ The following base libraries are needed: behaviour of the BLAS interface, so they are not optimized for any particular platform, and should only be used as a last 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 libraries. UMFPACK requires a full LAPACK library; our experience is that configuring ATLAS for building full LAPACK does not always diff --git a/docs/src/distribution.tex b/docs/src/distribution.tex index 89cf14f8..8b7afa28 100644 --- a/docs/src/distribution.tex +++ b/docs/src/distribution.tex @@ -30,6 +30,26 @@ whose current value is \verb|1.0|. \subsection*{Citing AMG4PSBLAS} 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} @article{DDF2021, 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/}}, year = {2021} } -\end{verbatim} \ No newline at end of file +\end{verbatim} +\fi \ No newline at end of file diff --git a/docs/src/userinterface.tex b/docs/src/userinterface.tex index 10d80c8f..407b4e3c 100644 --- a/docs/src/userinterface.tex +++ b/docs/src/userinterface.tex @@ -468,7 +468,7 @@ the parameter \texttt{ilev}.} \\ & Any integer \par number $> 0$ & 10 & 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| & Any integer \par number $\ge 0$ & 0 @@ -481,12 +481,34 @@ the parameter \texttt{ilev}.} \\ & Drop tolerance $t$ in the ILU($p,t$) factorization and first drop-tolerance for the approximate inverses. \\ \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{center} \caption{Parameters defining the coarse-space correction at the coarsest level (continued).\label{tab:p_coarse_1}} \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 \begin{center} \small @@ -497,16 +519,16 @@ level (continued).\label{tab:p_coarse_1}} \fortinline|'SMOOTHER_TYPE'| & \fortinline|character(len=*)| & \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'| & Type of smoother used in the multilevel preconditioner: 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 It is ignored by one-level preconditioners. \\ \hline \fortinline|'SUB_SOLVE'| & \fortinline|character(len=*)| - & \fortinline|'JACOBI'| \par - \fortinline|'GS'| \par \texttt{'BGS'} \par \fortinline|'ILU'| \par + & \fortinline|'JACOBI'| + \fortinline|'GS'| \par \fortinline|'BGS'| \par \fortinline|'ILU'| \par \fortinline|'ILUT'| \par \fortinline|'MILU'| \par \par \fortinline|'MUMPS'| \par \fortinline|'SLU'| \par \fortinline|'UMF'| @@ -515,7 +537,6 @@ level (continued).\label{tab:p_coarse_1}} of multilevel preconditioners, respectively \par \texttt{ILU} for block-Jacobi and Additive Schwarz one-level preconditioners - \textbf{$\ell_1$-versions?} & 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 @@ -536,7 +557,7 @@ level (continued).\label{tab:p_coarse_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 \fortinline|pos='PRE'| or \fortinline|pos='POST|, + together with \fortinline|pos='PRE'| or \fortinline|pos='POST'|, respectively. \\ \hline \fortinline|'SUB_OVR'| & \fortinline|integer| & Any integer \par number~$\ge 0$