\documentclass{article}
\pagestyle{empty}
\usepackage[landscape,vmargin=1cm,hmargin=1cm]{geometry}
\usepackage{array}
\usepackage{longtable}
\usepackage{url}
\usepackage{amsmath}
\usepackage{color, colortbl}
\usepackage[utf8]{inputenc}
\definecolor{LightRed}{rgb}{1,0.88,0.88}
\begin{document}
\begin{center} {\LARGE --- $\quad$ HPDDM $\quad$ ---} \\[5pt] \url{https://github.com/hpddm/hpddm} \end{center}
    All keywords must be prefixed by \texttt{-hpddm\_}. If a value is specified in the column ``Default'', this value is used when the corresponding option is not set by the user. When no default value is specified but the corresponding option is set by the user, the option is true (represented internally by 1). If the option is not set, its value is false (represented internally by 0). Options highlighted in \colorbox{LightRed}{red} should be reserved to expert users.
\vspace*{-0.4cm}
\begin{center}
    \begin{longtable}{| >{\tt}p{.25\textwidth} | p{.49\textwidth}| p{.14\textwidth}| >{\tt}p{.05\textwidth} |} \hline
        \normalfont{Keyword} & Description & Possible values & Default \\ \hline
        help & Display available options & Anything & \\ \hline
        version & Display information about HPDDM & Anything & \\ \hline
        tol & Relative decrease in residual norm to reach in order to stop iterative methods & Numeric & $10^{-6}$ \\ \hline
        max\_it & Maximum number of iterations of iterative methods & Integer & $100$ \\ \hline
        verbosity & Level of output (higher means more displayed information) & Integer & \\ \hline
        \rowcolor{LightRed}reuse\_preconditioner & Do not factorize again the local matrices when solving subsequent systems & Boolean & \\ \hline
        local\_operators\_not\_spd & Assume local operators are general symmetric (instead of symmetric or Hermitian positive definite) & Boolean & \\ \hline
        orthogonalization & Method used to orthogonalize a vector against a previously generated orthogonal basis & \texttt{cgs}, \texttt{mgs} & cgs \\ \hline
        dump\_local\_matri(ces|x\_[[:digit:]]+) & Save either one or all local matrices to disk & String & \\ \hline
        krylov\_method & Type of iterative method used to solve linear systems & \texttt{gmres}, \texttt{bgmres}, \texttt{cg}, \texttt{gcrodr}, \texttt{bgcrodr} & gmres \\ \hline
        gmres\_restart & Maximum number of Arnoldi vectors generated per cycle & Integer & $50$ \\ \hline
        variant & Left, right, or variable preconditioning & \texttt{left}, \texttt{right}, \texttt{flexible} & right \\ \hline
        qr & Method used to perform distributed QR factorizations & \texttt{cholqr}, \texttt{cgs}, \texttt{mgs} & cholqr \\ \hline
        initial\_deflation\_tol & Tolerance when deflating right-hand sides inside Block GMRES or Block GCRODR & Numeric & \\ \hline
        recycle & Number of harmonic Ritz vectors to compute & Integer & \\ \hline
        recycle\_same\_system & Assume the system is the same as the one for which Ritz vectors have been computed & Boolean & \\ \hline
        \rowcolor{LightRed}recycle\_strategy & Generalized eigenvalue problem to solve for recycling & \texttt{A}, \texttt{B} & A \\ \hline
        \rowcolor{LightRed}recycle\_target & Criterion to select harmonic Ritz vectors & \texttt{SM}, \texttt{LM}, \texttt{SR}, \texttt{LR}, \texttt{SI}, \texttt{LI} & SM \\ \hline
        \rowcolor{LightRed}eigensolver\_tol & Tolerance for computing eigenvectors by ARPACK or LAPACK & Numeric & $10^{-6}$ \\ \hline
        geneo\_nu & Number of local eigenvectors to compute for adaptive methods & Integer & $20$ \\ \hline
        \rowcolor{LightRed}geneo\_threshold & Threshold for selecting local eigenvectors for adaptive methods & Numeric & \\ \hline
        master\_p & Number of master processes & Integer & $1$ \\ \hline
        \rowcolor{LightRed}master\_distribution & Distribution of coarse right-hand sides and solution vectors & \texttt{centralized}, \texttt{sol}, \texttt{sol\_and\_rhs} & cen\-tra\-li\-zed \\ \hline
        \rowcolor{LightRed}master\_topology & Distribution of the master processes & \texttt{0}, \texttt{1}, \texttt{2} & 0 \\ \hline
        master\_filename & Save the coarse operator to disk & String & \\ \hline
        \rowcolor{LightRed}master\_exclude & Exclude the master processes from the domain decomposition & Boolean & \\ \hline
        master\_not\_spd & Assume the coarse operator is general symmetric (instead of symmetric positive definite) & Boolean & \\ \hline
    \end{longtable}
\vspace*{-0.4cm}
\end{center}
\newpage
\noindent{
When using Schwarz methods, there are additional options.}
\vspace*{-0.4cm}
\begin{center}
    \begin{longtable}{| >{\tt}p{.26\textwidth} | p{.4\textwidth}| p{.20\textwidth} | p{.04\textwidth} |} \hline
        \normalfont{Keyword} & Description & Possible values & Default \\ \hline
        schwarz\_method & Type of Schwarz preconditioner used to solve linear systems & \texttt{ras}, \texttt{oras}, \texttt{soras}, \texttt{asm}, \texttt{osm}, \texttt{none} & \texttt{ras} \\ \hline
        schwarz\_coarse\_correction & Type of coarse correction used in two-level methods & \texttt{deflated}, \texttt{additive}, \texttt{balanced} & \\ \hline
    \end{longtable}
\vspace*{-0.4cm}
\end{center}
When using substructuring methods, there is an additional option.
\vspace*{-0.4cm}
\begin{center}
    \begin{longtable}{| >{\tt}p{.15\textwidth} | p{.42\textwidth}| p{.25\textwidth} | p{.085\textwidth} |} \hline
        \normalfont{Keyword} & Description & Possible values & Default \\ \hline
        substructuring\_scaling & Scaling used in the definition of the Schur complement preconditioner & \texttt{multiplicity}, \texttt{stiffness}, \texttt{coefficient} & \texttt{multiplicity} \\ \hline
    \end{longtable}
\vspace*{-0.4cm}
\end{center}
When using MKL PARDISO as a subdomain solver (resp. coarse operator solver), there are additional options, cf. \url{https://software.intel.com/en-us/node/470298} (resp. \url{https://software.intel.com/en-us/node/590089}).
\vspace*{-0.4cm}
\begin{center}
    \begin{longtable}{| >{\tt}p{.3\textwidth} | p{.5\textwidth}| p{.1\textwidth} |} \hline
        \normalfont{Keyword} & Description & Possible values \\ \hline
        \rowcolor{LightRed}mkl\_pardiso\_iparm\_(2|8|1[013]|2[147]) & Integer control parameters of MKL PARDISO for the subdomain solvers & Integer \\ \hline
        \rowcolor{LightRed}master\_mkl\_pardiso\_iparm\_(2|1[013]|2[17]) & Integer control parameters of MKL PARDISO for the coarse operator solver & Integer \\ \hline
    \end{longtable}
\vspace*{-0.4cm}
\end{center}
When using MUMPS as a subdomain solver (resp. coarse operator solver), there are additional options, cf. \url{http://mumps.enseeiht.fr/index.php?page=doc}.
\vspace*{-0.4cm}
\begin{center}
    \begin{longtable}{| >{\tt}p{.3\textwidth} | p{.5\textwidth}| p{.1\textwidth} |} \hline
        \normalfont{Keyword} & Description & Possible values \\ \hline
        \rowcolor{LightRed}mumps\_icntl\_([6-9]|[1-3][0-9]|40) & Integer control parameters of MUMPS for the subdomain solvers & Integer \\ \hline
        \rowcolor{LightRed}master\_mumps\_icntl\_([6-9]|[1-3][0-9]|40) & Integer control parameters of MUMPS for the coarse operator solver & Integer \\ \hline
    \end{longtable}
\vspace*{-0.4cm}
\end{center}
When using \textit{hypre} as a coarse operator solver, there are additional options, cf. \url{http://acts.nersc.gov/hypre/#Documentation}.
\vspace*{-0.4cm}
\begin{center}
    \begin{longtable}{| >{\tt}p{.26\textwidth} | p{.49\textwidth}| p{.115\textwidth}| p{.05\textwidth} |} \hline
        \normalfont{Keyword} & Description & Possible values & Default \\ \hline
        \rowcolor{LightRed}master\_hypre\_solver & Solver used by \textit{hypre} to solve coarse linear systems & \texttt{fgmres}, \texttt{pcg}, \texttt{amg} & \texttt{fgmres} \\ \hline
        \rowcolor{LightRed}master\_hypre\_tol & Relative convergence tolerance & Numeric & $10^{-12}$ \\ \hline
        \rowcolor{LightRed}master\_hypre\_max\_it & Maximum number of iterations & Integer & 500 \\ \hline
        \rowcolor{LightRed}master\_hypre\_gmres\_restart & Maximum number of Arnoldi vectors generated per cycle when using FlexGMRES & Integer & 100 \\ \hline
        \rowcolor{LightRed}master\_boomeramg\_coarsen\_type & Parallel coarsening algorithm & Integer & 6 \\ \hline
        \rowcolor{LightRed}master\_boomeramg\_relax\_type & Smoother & Integer & 3 \\ \hline
        \rowcolor{LightRed}master\_boomeramg\_num\_sweeps & Number of sweeps & Integer & 1 \\ \hline
        \rowcolor{LightRed}master\_boomeramg\_max\_levels & Maximum number of multigrid levels & Integer & 10 \\ \hline
        \rowcolor{LightRed}master\_boomeramg\_interp\_type & Parallel interpolation operator & Integer & 0 \\ \hline
    \end{longtable}
\vspace*{-0.4cm}
\end{center}
\end{document}
