mirror of
https://github.com/sfilippone/amg4psblas.git
synced 2026-10-06 22:55:12 +00:00
Added options for BJAC coarse solver and L1-smoothers
This commit is contained in:
@@ -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},
|
||||||
@@ -48,3 +68,4 @@ When use the library, please cite the following:
|
|||||||
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$
|
||||||
|
|||||||
Reference in New Issue
Block a user