% *======================================================================*
%  Cactus Thorn template for ThornGuide documentation
%  Author: Ian Kelley
%  Date: Sun Jun 02, 2002
%  $Header$
%
%  Thorn documentation in the latex file doc/documentation.tex
%  will be included in ThornGuides built with the Cactus make system.
%  The scripts employed by the make system automatically include
%  pages about variables, parameters and scheduling parsed from the
%  relevant thorn CCL files.
%
%  This template contains guidelines which help to assure that your
%  documentation will be correctly added to ThornGuides. More
%  information is available in the Cactus UsersGuide.
%
%  Guidelines:
%   - Do not change anything before the line
%       % START CACTUS THORNGUIDE",
%     except for filling in the title, author, date, etc. fields.
%        - Each of these fields should only be on ONE line.
%        - Author names should be separated with a \\ or a comma.
%   - You can define your own macros, but they must appear after
%     the START CACTUS THORNGUIDE line, and must not redefine standard
%     latex commands.
%   - To avoid name clashes with other thorns, 'labels', 'citations',
%     'references', and 'image' names should conform to the following
%     convention:
%       ARRANGEMENT_THORN_LABEL
%     For example, an image wave.eps in the arrangement CactusWave and
%     thorn WaveToyC should be renamed to CactusWave_WaveToyC_wave.eps
%   - Graphics should only be included using the graphicx package.
%     More specifically, with the "\includegraphics" command.  Do
%     not specify any graphic file extensions in your .tex file. This
%     will allow us to create a PDF version of the ThornGuide
%     via pdflatex.
%   - References should be included with the latex "\bibitem" command.
%   - Use \begin{abstract}...\end{abstract} instead of \abstract{...}
%   - Do not use \appendix, instead include any appendices you need as
%     standard sections.
%   - For the benefit of our Perl scripts, and for future extensions,
%     please use simple latex.
%
% *======================================================================*
%
% Example of including a graphic image:
%    \begin{figure}[ht]
% 	\begin{center}
%    	   \includegraphics[width=6cm]{/home/runner/work/tests/tests/arrangements/EinsteinInitialData/NRPyEllipticET/doc/MyArrangement_MyThorn_MyFigure}
% 	\end{center}
% 	\caption{Illustration of this and that}
% 	\label{MyArrangement_MyThorn_MyLabel}
%    \end{figure}
%
% Example of using a label:
%   \label{MyArrangement_MyThorn_MyLabel}
%
% Example of a citation:
%    \cite{MyArrangement_MyThorn_Author99}
%
% Example of including a reference
%   \bibitem{MyArrangement_MyThorn_Author99}
%   {J. Author, {\em The Title of the Book, Journal, or periodical}, 1 (1999),
%   1--16. {\tt http://www.nowhere.com/}}
%
% *======================================================================*

% If you are using CVS use this line to give version information
% $Header$

\documentclass{article}

% Use the Cactus ThornGuide style file
% (Automatically used from Cactus distribution, if you have a
%  thorn without the Cactus Flesh download this from the Cactus
%  homepage at www.cactuscode.org)
\usepackage{../../../../../doc/latex/cactus}
\usepackage{xspace}
\newcommand{\nrpyell}{\texttt{NRPyEllipticET}\xspace}

\newlength{\tableWidth} \newlength{\maxVarWidth} \newlength{\paraWidth} \newlength{\descWidth} \begin{document}

% The author of the documentation
\author{Leo~R.~Werneck \textless wernecklr@gmail.com\textgreater, \\
  Thiago~Assumpção \textless assumpcaothiago@gmail.com\textgreater,\\
  Zach~Etienne \textless zachetie@gmail.com\textgreater,\\
  Terrence~Pierre~Jacques \textless tp0052@mix.wvu.edu\textgreater}

% The title of the document (not necessarily the name of the Thorn)
\title{\nrpyell}

% the date your document was last changed, if your document is in CVS,
% please use:
%    \date{$ $Date: 2004-01-07 12:12:39 -0800 (Wed, 07 Jan 2004) $ $}
\date{August, 2022}

\maketitle

% Do not delete next line
% START CACTUS THORNGUIDE

% Add all definitions used in this documentation here
%   \def\mydef etc

\begin{abstract}
  \noindent This thorn generates numerical relativity initial data
  by solving the constraints of general relativity using the
  hyperbolic relaxation method.
\end{abstract}


\section{Introduction}

The hyperbolic relaxation method of~\cite{ruter:2018} converts an elliptic
problem into a hyperbolic one. The prototypical elliptic problem---Poisson's
equation---reads
%%
\begin{equation}
  \nabla^{2}\vec{u} = \vec{\rho}\;,
\end{equation}
%%
where $\vec{u}$ is a set of unknowns and $\vec{\rho}$ are sources. One introduces
a \emph{relaxation} time $t$ and replaces this elliptic equation with
%%
\begin{equation}
  \partial_{t}^{2}\vec{u} + \eta\partial_{t}\vec{u} = c^{2}\left(\nabla^{2}\vec{u} - \vec{\rho}\right)\;,
\end{equation}
%%
where $\eta$ is a damping parameter with units of inverse time and $c$ is
the speed of the relaxation waves. One then evolves this hyperbolic equation
until a steady state is reached at $t=t_{\star}$, for which
%%
\begin{equation}
  \left.\partial_{t}^{2}\vec{u}\right|_{t=t_{\star}} = 0 = \left.\partial_{t}\vec{u}\right|_{t=t_{\star}}\;,
\end{equation}
%%
and thus $\left.\vec{u}\right|_{t=t_{\star}}$ is also a solution to the original
elliptic problem. For more details of how this method is implemented in \nrpyell,
please see~\cite{assumpcao:2022}.


\section{Initial data types}
\subsection{Conformally flat binary black hole initial data}

As described in~\cite{assumpcao:2022}, \nrpyell solves the Hamiltonian
constraint using the conformal transverse-traceless (CTT) decomposition, i.e.,
%%
\begin{equation}
  \hat\nabla^{2}u + \frac{1}{8}\tilde{A}_{ij}\tilde{A}^{ij}\left(\psi_{\rm singular}+u\right)^{-7} = 0\;,
\end{equation}
%%
where $\hat\nabla_{i}$ is the covariant derivative compatible with the flat
spatial metric $\hat\gamma_{ij}$, $\hat\nabla^{2} = \hat\nabla_{i}\hat\nabla^{i}$,
$\tilde{A}_{ij} = \psi^{-4}A_{ij}$, where $A_{ij}$ is the traceless part of the
extrinsic curvature, and $\psi$ is the conformal factor, given by
%%
\begin{equation}
  \psi = \psi_{\rm singular} + u \equiv 1 + \sum_{n=1}^{N_{p}}\frac{m_{n}}{2|\vec{x}_{n}|} + u\;,
\end{equation}
%%
where $m_{n}$ are $\vec{x}_{n}$ are the bare mass and position vector of the
$n$\textsuperscript{th} puncture and $u$ is a to-be-determined non-singular
piece of the conformal factor.

We thus solve the Hamiltonian constraint using the hyperbolic relaxation method,
i.e.,
%%
\begin{align}
  \partial_{t}u &= v - \eta u\;,\\
  \partial_{t}v &= c^{2}\left[\hat{\nabla}^{2}u + \frac{1}{8}\tilde{A}_{ij}\tilde{A}^{ij}\left(\psi_{\rm singular} + u\right)\right]\;,
\end{align}
%%
where the first equation defines $v$.

\begin{thebibliography}{9}
  \bibitem{ruter:2018} Rüter,~H.~R., Hildich,~D., Bugner,~M., and Brügmann,~B., Phys. Rev. D \textbf{98}, 084044, 2018 (arXiv: \href{https://arxiv.org/abs/1708.07358}{1708.07358}).
  \bibitem{assumpcao:2022} Assumpção,~T., Werneck,~L.~R., Etienne,~Z.~B., and Pierre Jacques,~T., Phys. Rev. D \textbf{105}, 104037, 2022 (arXiv: \href{https://arxiv.org/abs/2111.02424}{2111.02424}).
\end{thebibliography}

% Do not delete next line
% END CACTUS THORNGUIDE



\section{Parameters} 


\parskip = 0pt

\setlength{\tableWidth}{160mm}

\setlength{\paraWidth}{\tableWidth}
\setlength{\descWidth}{\tableWidth}
\settowidth{\maxVarWidth}{conformally\_flat\_bbh\_puncture\_0\_bare\_mass}

\addtolength{\paraWidth}{-\maxVarWidth}
\addtolength{\paraWidth}{-\columnsep}
\addtolength{\paraWidth}{-\columnsep}
\addtolength{\paraWidth}{-\columnsep}

\addtolength{\descWidth}{-\columnsep}
\addtolength{\descWidth}{-\columnsep}
\addtolength{\descWidth}{-\columnsep}
\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{cfl\_factor} & {\bf Scope:} private & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em CFL factor of the relaxation time evolution.}} \\
\hline{\bf Range} & &  {\bf Default:} 0.7 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering 0:1} & \multicolumn{2}{p{\paraWidth}|}{Between zero and one. For higher resolutions this will have to be lowered.} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{conformally\_flat\_bbh\_puncture\_0\_bare\_mass} & {\bf Scope:} private & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Bare mass of first puncture}} \\
\hline{\bf Range} & &  {\bf Default:} 1e123 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering 0:*} & \multicolumn{2}{p{\paraWidth}|}{Must be positive} \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering 1e123} & \multicolumn{2}{p{\paraWidth}|}{Forbidden value to make sure it is explicitly set in the parfile} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{conformally\_flat\_bbh\_puncture\_0\_p} & {\bf Scope:} private & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Linear momentum of first puncture}} \\
\hline{\bf Range} & &  {\bf Default:} (none) \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering *:*} & \multicolumn{2}{p{\paraWidth}|}{This parameter can have any value} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{conformally\_flat\_bbh\_puncture\_0\_pos} & {\bf Scope:} private & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Position of first puncture}} \\
\hline{\bf Range} & &  {\bf Default:} (none) \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering *:*} & \multicolumn{2}{p{\paraWidth}|}{This parameter can have any value} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{conformally\_flat\_bbh\_puncture\_0\_s} & {\bf Scope:} private & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Angular momentum of first puncture}} \\
\hline{\bf Range} & &  {\bf Default:} (none) \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering *:*} & \multicolumn{2}{p{\paraWidth}|}{This parameter can have any value} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{conformally\_flat\_bbh\_puncture\_1\_bare\_mass} & {\bf Scope:} private & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Bare mass of second puncture}} \\
\hline{\bf Range} & &  {\bf Default:} 1e123 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering 0:*} & \multicolumn{2}{p{\paraWidth}|}{Must be positive} \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering 1e123} & \multicolumn{2}{p{\paraWidth}|}{Forbidden value to make sure it is explicitly set in the parfile} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{conformally\_flat\_bbh\_puncture\_1\_p} & {\bf Scope:} private & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Linear momentum of second puncture}} \\
\hline{\bf Range} & &  {\bf Default:} (none) \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering *:*} & \multicolumn{2}{p{\paraWidth}|}{This parameter can have any value} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{conformally\_flat\_bbh\_puncture\_1\_pos} & {\bf Scope:} private & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Position of second puncture}} \\
\hline{\bf Range} & &  {\bf Default:} (none) \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering *:*} & \multicolumn{2}{p{\paraWidth}|}{This parameter can have any value} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{conformally\_flat\_bbh\_puncture\_1\_s} & {\bf Scope:} private & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Angular momentum of second puncture}} \\
\hline{\bf Range} & &  {\bf Default:} (none) \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering *:*} & \multicolumn{2}{p{\paraWidth}|}{This parameter can have any value} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{domain\_size} & {\bf Scope:} private & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Domain size for the initial data}} \\
\hline{\bf Range} & &  {\bf Default:} 1e6 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering 0:*} & \multicolumn{2}{p{\paraWidth}|}{Must be positive} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{eta\_damping} & {\bf Scope:} private & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Wave equation damping parameter}} \\
\hline{\bf Range} & &  {\bf Default:} -1 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering 0:*} & \multicolumn{2}{p{\paraWidth}|}{Must be positive} \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering -1} & \multicolumn{2}{p{\paraWidth}|}{Compute optimum eta\_damping (requires domain\_size=1e6; sinh\_width=0.07; foci\_position=5)} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{foci\_position} & {\bf Scope:} private & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Position of the foci of the prolate spheroidal coordinate system. Typically the position of the puncture.}} \\
\hline{\bf Range} & &  {\bf Default:} 5.0 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering 0:*} & \multicolumn{2}{p{\paraWidth}|}{Must be positive} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{info\_output\_freq} & {\bf Scope:} private & INT \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Print progress of relaxation time evolution every info\_output\_freq iterations}} \\
\hline{\bf Range} & &  {\bf Default:} (none) \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering 0:*} & \multicolumn{2}{p{\paraWidth}|}{Any positive value. 0 disables it} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{initial\_data\_type} & {\bf Scope:} private & STRING \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Type of initial data generated by NRPyEllipticET}} \\
\hline{\bf Range} & &  {\bf Default:} ConformallyFlatBBH \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering ConformallyFlatBBH} & \multicolumn{2}{p{\paraWidth}|}{Conformally flat binary black hole initial data} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{interpolation\_order} & {\bf Scope:} private & INT \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Interpolation order}} \\
\hline{\bf Range} & &  {\bf Default:} 4 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering 0:*} & \multicolumn{2}{p{\paraWidth}|}{Must be positive} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{interpolator\_name} & {\bf Scope:} private & STRING \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Interpolator name}} \\
\hline{\bf Range} & &  {\bf Default:} Lagrange polynomial interpolation \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering .+} & \multicolumn{2}{p{\paraWidth}|}{Can be anything} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{lapse\_exponent\_n} & {\bf Scope:} private & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Exponent of lapse initial data alpha = psi\^\{n\}}} \\
\hline{\bf Range} & &  {\bf Default:} -2 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering *:*} & \multicolumn{2}{p{\paraWidth}|}{This parameter can have any value} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{log\_target\_residual} & {\bf Scope:} private & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Stopping criterion: log10(l2norm(residual))}} \\
\hline{\bf Range} & &  {\bf Default:} -16.0 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering *:0} & \multicolumn{2}{p{\paraWidth}|}{Should be negative, since we typically want small residuals} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{max\_iterations} & {\bf Scope:} private & INT \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Maximum number of time steps in the relaxation time evolution.}} \\
\hline{\bf Range} & &  {\bf Default:} 10000 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering 0:*} & \multicolumn{2}{p{\paraWidth}|}{Must be positive} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{n0} & {\bf Scope:} private & INT \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Number of points in the xx0 direction}} \\
\hline{\bf Range} & &  {\bf Default:} 128 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering 0:*} & \multicolumn{2}{p{\paraWidth}|}{Must be positive} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{n1} & {\bf Scope:} private & INT \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Number of points in the xx1 direction}} \\
\hline{\bf Range} & &  {\bf Default:} 128 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering 0:*} & \multicolumn{2}{p{\paraWidth}|}{Must be positive} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{n2} & {\bf Scope:} private & INT \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Number of points in the xx2 direction}} \\
\hline{\bf Range} & &  {\bf Default:} 16 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering 0:*} & \multicolumn{2}{p{\paraWidth}|}{Must be positive} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{nrpy\_epsilon} & {\bf Scope:} private & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Small number to avoid singularities at the punctures}} \\
\hline{\bf Range} & &  {\bf Default:} 1e-8 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering *:*} & \multicolumn{2}{p{\paraWidth}|}{Can be anything} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{number\_of\_lct} & {\bf Scope:} private & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Number of light-crossing times}} \\
\hline{\bf Range} & &  {\bf Default:} 5.5e-6 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering 0:*} & \multicolumn{2}{p{\paraWidth}|}{Must be positive} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{orbital\_plane} & {\bf Scope:} private & STRING \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Orbital plane}} \\
\hline{\bf Range} & &  {\bf Default:} xy \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering xy} & \multicolumn{2}{p{\paraWidth}|}{Orbital plane is the xy-plane} \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering yx} & \multicolumn{2}{p{\paraWidth}|}{Equivalent to xy} \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering xz} & \multicolumn{2}{p{\paraWidth}|}{Orbital plane is the xz-plane} \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering zx} & \multicolumn{2}{p{\paraWidth}|}{Equivalent to xz} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{position\_shift} & {\bf Scope:} private & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Shift punctures on the axis while keeping their distance fixed}} \\
\hline{\bf Range} & &  {\bf Default:} (none) \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering *:*} & \multicolumn{2}{p{\paraWidth}|}{Can be anything} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{residual\_integration\_radius} & {\bf Scope:} private & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em The L2-norm of the residual is integrated in a sphere with this radius.}} \\
\hline{\bf Range} & &  {\bf Default:} 100.0 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering 0:*} & \multicolumn{2}{p{\paraWidth}|}{Must be positive; if set to {\textgreater}=domain\_size then will integrate over the entire NRPy+-generated grid.} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{sinh\_width} & {\bf Scope:} private & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em This parameter controls how densily sampled the regions near the punctures are. Smaller values ={\textgreater} higher resolution}} \\
\hline{\bf Range} & &  {\bf Default:} 0.07 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering 0:*} & \multicolumn{2}{p{\paraWidth}|}{Must be positive} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{verbose} & {\bf Scope:} private & BOOLEAN \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Whether or not to print information as the relaxation progresses}} \\
\hline & & {\bf Default:} no \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{initial\_data} & {\bf Scope:} shared from ADMBASE & KEYWORD \\\hline
\multicolumn{3}{|l|}{\bf Extends ranges:}\\ 
\hline\multicolumn{1}{|p{\maxVarWidth}|}{\centering NRPyEllipticET} & \multicolumn{2}{p{\paraWidth}|}{Initial data from NRPyEllipticET solution} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{initial\_dtlapse} & {\bf Scope:} shared from ADMBASE & KEYWORD \\\hline
\multicolumn{3}{|l|}{\bf Extends ranges:}\\ 
\hline\multicolumn{1}{|p{\maxVarWidth}|}{\centering NRPyEllipticET} & \multicolumn{2}{p{\paraWidth}|}{Initial dtlapse from NRPyEllipticET solution} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{initial\_dtshift} & {\bf Scope:} shared from ADMBASE & KEYWORD \\\hline
\multicolumn{3}{|l|}{\bf Extends ranges:}\\ 
\hline\multicolumn{1}{|p{\maxVarWidth}|}{\centering NRPyEllipticET} & \multicolumn{2}{p{\paraWidth}|}{Initial dtshift from NRPyEllipticET solution} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{initial\_lapse} & {\bf Scope:} shared from ADMBASE & KEYWORD \\\hline
\multicolumn{3}{|l|}{\bf Extends ranges:}\\ 
\hline\multicolumn{1}{|p{\maxVarWidth}|}{see [1] below} & \multicolumn{2}{p{\paraWidth}|}{Based on the initial conformal factor} \\\multicolumn{1}{|p{\maxVarWidth}|}{see [1] below} & \multicolumn{2}{p{\paraWidth}|}{Averaged lapse for two puncture black holes} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent {\bf [1]} \noindent \begin{verbatim}NRPyEllipticET-psi\^n\end{verbatim}\noindent {\bf [1]} \noindent \begin{verbatim}NRPyEllipticET-averaged\end{verbatim}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{initial\_shift} & {\bf Scope:} shared from ADMBASE & KEYWORD \\\hline
\multicolumn{3}{|l|}{\bf Extends ranges:}\\ 
\hline\multicolumn{1}{|p{\maxVarWidth}|}{\centering NRPyEllipticET} & \multicolumn{2}{p{\paraWidth}|}{Initial shift from NRPyEllipticET solution} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{lapse\_timelevels} & {\bf Scope:} shared from ADMBASE & INT \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{metric\_timelevels} & {\bf Scope:} shared from ADMBASE & INT \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{shift\_timelevels} & {\bf Scope:} shared from ADMBASE & INT \\\hline
\end{tabular*}

\vspace{0.5cm}\parskip = 10pt 

\section{Interfaces} 


\parskip = 0pt

\vspace{3mm} \subsection*{General}

\noindent {\bf Implements}: 

nrpyellipticet
\vspace{2mm}

\noindent {\bf Inherits}: 

admbase

grid
\vspace{2mm}
\subsection*{Grid Variables}
\vspace{5mm}\subsubsection{PRIVATE GROUPS}

\vspace{5mm}

\begin{tabular*}{150mm}{|c|c@{\extracolsep{\fill}}|rl|} \hline 
~ {\bf Group Names} ~ & ~ {\bf Variable Names} ~  &{\bf Details} ~ & ~\\ 
\hline 
nrpyellipticet\_relaxation\_vars &  & compact & 0 \\ 
 & uuGF & description & These are the variables NRPyEllipticET solves for. E.g. \\ 
& ~ & description &  for conformally flat BBH \\ 
 & uuGF & description &  uuGF is the nonsingular part of the conformal factor. \\ 
 &  & dimensions & 3 \\ 
 &  & distribution & DEFAULT \\ 
 &  & group type & GF \\ 
 &  & tags & prolongation="none" \\ 
 &  & timelevels & 1 \\ 
 &  & variable type & REAL \\ 
\hline 
\end{tabular*} 



\vspace{5mm}\parskip = 10pt 

\section{Schedule} 


\parskip = 0pt


\noindent This section lists all the variables which are assigned storage by thorn EinsteinInitialData/NRPyEllipticET.  Storage can either last for the duration of the run ({\bf Always} means that if this thorn is activated storage will be assigned, {\bf Conditional} means that if this thorn is activated storage will be assigned for the duration of the run if some condition is met), or can be turned on for the duration of a schedule function.


\subsection*{Storage}

\hspace{5mm}

 \begin{tabular*}{160mm}{ll} 

{\bf Always:}&  ~ \\ 
 ADMBase::metric[metric\_timelevels] ADMBase::curv[metric\_timelevels] ADMBase::lapse[lapse\_timelevels] ADMBase::shift[shift\_timelevels] & ~\\ 
 NRPyEllipticET::NRPyEllipticET\_relaxation\_vars & ~\\ 
~ & ~\\ 
\end{tabular*} 


\subsection*{Scheduled Functions}
\vspace{5mm}

\noindent {\bf ADMBase\_InitialData} 

\hspace{5mm} nrpyellipticet 

\hspace{5mm}{\it set up metric fields for binary black hole initial data } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & Language:  & c \\ 
~ & Reads:  & grid::x(everywhere) \\ 
~& ~ &grid::y(everywhere)\\ 
~& ~ &grid::z(everywhere)\\ 
~ & Type:  & function \\ 
~ & Writes:  & admbase::alp(everywhere) \\ 
~& ~ &admbase::betax(everywhere)\\ 
~& ~ &admbase::betay(everywhere)\\ 
~& ~ &admbase::betaz(everywhere)\\ 
~& ~ &admbase::kxx(everywhere)\\ 
~& ~ &admbase::kxy(everywhere)\\ 
~& ~ &admbase::kxz(everywhere)\\ 
~& ~ &admbase::kyy(everywhere)\\ 
~& ~ &admbase::kyz(everywhere)\\ 
~& ~ &admbase::kzz(everywhere)\\ 
~& ~ &admbase::gxx(everywhere)\\ 
~& ~ &admbase::gxy(everywhere)\\ 
~& ~ &admbase::gxz(everywhere)\\ 
~& ~ &admbase::gyy(everywhere)\\ 
~& ~ &admbase::gyz(everywhere)\\ 
~& ~ &admbase::gzz(everywhere)\\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf ADMBase\_InitialData} 

\hspace{5mm} nrpyellipticet\_cleanup 

\hspace{5mm}{\it deallocate memory for arrays used when computing initial data } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & After:  & nrpyellipticet \\ 
~ & Language:  & c \\ 
~ & Options:  & global-late \\ 
~ & Type:  & function \\ 
\end{tabular*} 



\vspace{5mm}\parskip = 10pt 
\end{document}
