\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}

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

\title{CottonmouthBSSN}
\author{Lucas Sanches \\ Max Morris \\ Steven R. Brandt}
\date{$ $Date$ $}

\maketitle

% Do not delete next line
% START CACTUS THORNGUIDE

% Add all definitions used in this documentation here

\begin{abstract}
    Provides the BSSN equations as generated by the EinsteinEngine.
\end{abstract}

\section{Introduction}

%Einstein Engine
The Einstein Engine is a DSL and toolkit for creating Cactus thorns.
It can generate complete CarpetX thorns from simple recipes written in Python.

\subsection{How to set up EinsteinEngine}

\begin{itemize}
   \item Create a venv and activate it. 
   \begin{verbatim}
   python -m venv venv && . ./venv/bin/activate
   \end{verbatim}
\item Install the dependencies.
   \begin{verbatim}
   python -m pip install -r requirements.txt
   \end{verbatim}

\item Install EinsteinEngine. 
   \begin{verbatim}
   python -m pip install .
   \end{verbatim}
\end{itemize}
   
\subsection{How to generate a thorn}

\begin{itemize}
\item Be sure the venv is activated.
   \begin{verbatim}
   . ./venv/bin/activate
   \end{verbatim}

\item Typecheck the recipe with MyPy.
   \begin{verbatim}
   mypy recipes/Cottonmouth/bssnok.py
   \end{verbatim}

\item Run the recipe.
   \begin{verbatim}
   python recipes/Cottonmouth/bssnok.py [--vacuum] [--fd-order N]
   \end{verbatim}
\end{itemize}

\section{Parameters}

By default, the code is generated with matter terms on. To disable them, run using the --vacuum flag.

By default, the code will be generated with 4th order finite difference stencils and 5th order Kreiss-Oliger dissipation. Use the --fd-order flag to switch this to Nth order finite difference stencils and (N+1)th Kreiss-Oliger dissipation.

% Do not delete next line
% END CACTUS THORNGUIDE



\section{Parameters} 


\parskip = 0pt

\setlength{\tableWidth}{160mm}

\setlength{\paraWidth}{\tableWidth}
\setlength{\descWidth}{\tableWidth}
\settowidth{\maxVarWidth}{conformal\_factor\_floor}

\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}}{apply\_newradx} & {\bf Scope:} restricted & BOOLEAN \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Apply NewRadX boundary conditions}} \\
\hline & & {\bf Default:} false \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{conformal\_factor\_floor} & {\bf Scope:} restricted & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em The conformal factor W will never be smaller than this value}} \\
\hline{\bf Range} & &  {\bf Default:} 1e-06 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering *} & \multicolumn{2}{p{\paraWidth}|}{} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{dissipation\_epsilon} & {\bf Scope:} restricted & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em The ammount of dissipation to add. Should be in the [0, 1/3[ range}} \\
\hline{\bf Range} & &  {\bf Default:} 0.32 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering *} & \multicolumn{2}{p{\paraWidth}|}{} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{eta\_b} & {\bf Scope:} restricted & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em Standard Gamma driver eta gauge parameter. Must be of order 2 / M\_ADM}} \\
\hline{\bf Range} & &  {\bf Default:} 2.0 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering *} & \multicolumn{2}{p{\paraWidth}|}{} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{evolved\_lapse\_floor} & {\bf Scope:} restricted & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em The evolved lapse will never be smaller than this value}} \\
\hline{\bf Range} & &  {\bf Default:} 1e-08 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering *} & \multicolumn{2}{p{\paraWidth}|}{} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{radpower\_at} & {\bf Scope:} restricted & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em NewRadX radpower for At\_ij}} \\
\hline{\bf Range} & &  {\bf Default:} 1.0 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering *} & \multicolumn{2}{p{\paraWidth}|}{} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{radpower\_chi} & {\bf Scope:} restricted & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em NewRadX radpower for w}} \\
\hline{\bf Range} & &  {\bf Default:} 1.0 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering *} & \multicolumn{2}{p{\paraWidth}|}{} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{radpower\_confconnect} & {\bf Scope:} restricted & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em NewRadX radpower Gamma\^i}} \\
\hline{\bf Range} & &  {\bf Default:} 1.0 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering *} & \multicolumn{2}{p{\paraWidth}|}{} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{radpower\_evo\_lapse} & {\bf Scope:} restricted & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em NewRadX radpower for the lapse, alpha}} \\
\hline{\bf Range} & &  {\bf Default:} 1.0 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering *} & \multicolumn{2}{p{\paraWidth}|}{} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{radpower\_evo\_shift} & {\bf Scope:} restricted & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em NewRadX radpower for the shift, beta\^i}} \\
\hline{\bf Range} & &  {\bf Default:} 1.0 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering *} & \multicolumn{2}{p{\paraWidth}|}{} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{radpower\_gt} & {\bf Scope:} restricted & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em NewRadX radpower for gt\_ij}} \\
\hline{\bf Range} & &  {\bf Default:} 1.0 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering *} & \multicolumn{2}{p{\paraWidth}|}{} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{radpower\_shiftb} & {\bf Scope:} restricted & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em NewRadX radpower for the aux. shift vector B\^i}} \\
\hline{\bf Range} & &  {\bf Default:} 1.0 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering *} & \multicolumn{2}{p{\paraWidth}|}{} \\\hline
\end{tabular*}

\vspace{0.5cm}\noindent \begin{tabular*}{\tableWidth}{|c|l@{\extracolsep{\fill}}r|}
\hline
\multicolumn{1}{|p{\maxVarWidth}}{radpower\_trk} & {\bf Scope:} restricted & REAL \\\hline
\multicolumn{3}{|p{\descWidth}|}{{\bf Description:}   {\em NewRadX radpower for the trace of K\_ij}} \\
\hline{\bf Range} & &  {\bf Default:} 1.0 \\\multicolumn{1}{|p{\maxVarWidth}|}{\centering *} & \multicolumn{2}{p{\paraWidth}|}{} \\\hline
\end{tabular*}

\vspace{0.5cm}\parskip = 10pt 

\section{Interfaces} 


\parskip = 0pt

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

\noindent {\bf Implements}: 

cottonmouthbssnok4m
\vspace{2mm}

\noindent {\bf Inherits}: 

admbasex

driver

odesolvers

tmunubasex
\vspace{2mm}
\subsection*{Grid Variables}
\vspace{5mm}\subsubsection{PUBLIC GROUPS}

\vspace{5mm}

\begin{tabular*}{150mm}{|c|c@{\extracolsep{\fill}}|rl|} \hline 
~ {\bf Group Names} ~ & ~ {\bf Variable Names} ~  &{\bf Details} ~ & ~\\ 
\hline 
at &  & centering & centering=\{0 0 0\} \\ 
 & AtDD00 & compact & 0 \\ 
 & AtDD01 & dimensions & 3 \\ 
 & AtDD02 & distribution & DEFAULT \\ 
 & AtDD11 & group type & GF \\ 
 & AtDD12 & tags & rhs="CottonmouthBSSNOK4m::At\_rhs" parities=\{+1 +1 +1  -1 -1 +1  -1 +1 -1  +1 +1 +1  +1 -1 -1  +1 +1 +1\} \\ 
 & AtDD22 & timelevels & 1 \\ 
 &  & variable type & REAL \\ 
\hline 
at\_rhs &  & centering & centering=\{0 0 0\} \\ 
 & At\_rhsDD00 & compact & 0 \\ 
 & At\_rhsDD01 & dimensions & 3 \\ 
 & At\_rhsDD02 & distribution & DEFAULT \\ 
 & At\_rhsDD11 & group type & GF \\ 
 & At\_rhsDD12 & tags & checkpoint="no" parities=\{+1 +1 +1  -1 -1 +1  -1 +1 -1  +1 +1 +1  +1 -1 -1  +1 +1 +1\} \\ 
 & At\_rhsDD22 & timelevels & 1 \\ 
 &  & variable type & REAL \\ 
\hline 
confconnect &  & centering & centering=\{0 0 0\} \\ 
 & ConfConnectU0 & compact & 0 \\ 
 & ConfConnectU1 & dimensions & 3 \\ 
 & ConfConnectU2 & distribution & DEFAULT \\ 
 &  & group type & GF \\ 
 &  & tags & rhs="CottonmouthBSSNOK4m::ConfConnect\_rhs" parities=\{-1 +1 +1  +1 -1 +1  +1 +1 -1\} \\ 
 &  & timelevels & 1 \\ 
 &  & variable type & REAL \\ 
\hline 
confconnect\_rhs &  & centering & centering=\{0 0 0\} \\ 
 & ConfConnect\_rhsU0 & compact & 0 \\ 
 & ConfConnect\_rhsU1 & dimensions & 3 \\ 
 & ConfConnect\_rhsU2 & distribution & DEFAULT \\ 
 &  & group type & GF \\ 
 &  & tags & checkpoint="no" parities=\{-1 +1 +1  +1 -1 +1  +1 +1 -1\} \\ 
 &  & timelevels & 1 \\ 
 &  & variable type & REAL \\ 
\hline 
deltacons &  & centering & centering=\{0 0 0\} \\ 
 & DeltaConsU0 & compact & 0 \\ 
 & DeltaConsU1 & dimensions & 3 \\ 
 & DeltaConsU2 & distribution & DEFAULT \\ 
 &  & group type & GF \\ 
 &  & tags & checkpoint="no" parities=\{-1 +1 +1  +1 -1 +1  +1 +1 -1\} \\ 
 &  & timelevels & 1 \\ 
 &  & variable type & REAL \\ 
\hline 
hamcons &  & centering & centering=\{0 0 0\} \\ 
 & HamCons & compact & 0 \\ 
 &  & dimensions & 3 \\ 
 &  & distribution & DEFAULT \\ 
 &  & group type & GF \\ 
 &  & tags & checkpoint="no" parities=\{+1 +1 +1\} \\ 
 &  & timelevels & 1 \\ 
 &  & variable type & REAL \\ 
\hline 
\end{tabular*} 



\vspace{5mm}
\vspace{5mm}

\begin{tabular*}{150mm}{|c|c@{\extracolsep{\fill}}|rl|} \hline 
~ {\bf Group Names} ~ & ~ {\bf Variable Names} ~  &{\bf Details} ~ & ~ \\ 
\hline 
momcons &  & centering & centering=\{0 0 0\} \\ 
 & MomConsU0 & compact & 0 \\ 
 & MomConsU1 & dimensions & 3 \\ 
 & MomConsU2 & distribution & DEFAULT \\ 
 &  & group type & GF \\ 
 &  & tags & checkpoint="no" parities=\{-1 +1 +1  +1 -1 +1  +1 +1 -1\} \\ 
 &  & timelevels & 1 \\ 
 &  & variable type & REAL \\ 
\hline 
evo\_lapse &  & centering & centering=\{0 0 0\} \\ 
 & evo\_lapse & compact & 0 \\ 
 &  & dimensions & 3 \\ 
 &  & distribution & DEFAULT \\ 
 &  & group type & GF \\ 
 &  & tags & rhs="CottonmouthBSSNOK4m::evo\_lapse\_rhs" parities=\{+1 +1 +1\} \\ 
 &  & timelevels & 1 \\ 
 &  & variable type & REAL \\ 
\hline 
evo\_lapse\_rhs &  & centering & centering=\{0 0 0\} \\ 
 & evo\_lapse\_rhs & compact & 0 \\ 
 &  & dimensions & 3 \\ 
 &  & distribution & DEFAULT \\ 
 &  & group type & GF \\ 
 &  & tags & checkpoint="no" parities=\{+1 +1 +1\} \\ 
 &  & timelevels & 1 \\ 
 &  & variable type & REAL \\ 
\hline 
evo\_shift &  & centering & centering=\{0 0 0\} \\ 
 & evo\_shiftU0 & compact & 0 \\ 
 & evo\_shiftU1 & dimensions & 3 \\ 
 & evo\_shiftU2 & distribution & DEFAULT \\ 
 &  & group type & GF \\ 
 &  & tags & rhs="CottonmouthBSSNOK4m::evo\_shift\_rhs" parities=\{-1 +1 +1  +1 -1 +1  +1 +1 -1\} \\ 
 &  & timelevels & 1 \\ 
 &  & variable type & REAL \\ 
\hline 
evo\_shift\_rhs &  & centering & centering=\{0 0 0\} \\ 
 & evo\_shift\_rhsU0 & compact & 0 \\ 
 & evo\_shift\_rhsU1 & dimensions & 3 \\ 
 & evo\_shift\_rhsU2 & distribution & DEFAULT \\ 
 &  & group type & GF \\ 
 &  & tags & checkpoint="no" parities=\{-1 +1 +1  +1 -1 +1  +1 +1 -1\} \\ 
 &  & timelevels & 1 \\ 
 &  & variable type & REAL \\ 
\hline 
gt &  & centering & centering=\{0 0 0\} \\ 
 & gtDD00 & compact & 0 \\ 
 & gtDD01 & dimensions & 3 \\ 
 & gtDD02 & distribution & DEFAULT \\ 
 & gtDD11 & group type & GF \\ 
 & gtDD12 & tags & rhs="CottonmouthBSSNOK4m::gt\_rhs" parities=\{+1 +1 +1  -1 -1 +1  -1 +1 -1  +1 +1 +1  +1 -1 -1  +1 +1 +1\} \\ 
 & gtDD22 & timelevels & 1 \\ 
 &  & variable type & REAL \\ 
\hline 
\end{tabular*} 



\vspace{5mm}
\vspace{5mm}

\begin{tabular*}{150mm}{|c|c@{\extracolsep{\fill}}|rl|} \hline 
~ {\bf Group Names} ~ & ~ {\bf Variable Names} ~  &{\bf Details} ~ & ~ \\ 
\hline 
gt\_rhs &  & centering & centering=\{0 0 0\} \\ 
 & gt\_rhsDD00 & compact & 0 \\ 
 & gt\_rhsDD01 & dimensions & 3 \\ 
 & gt\_rhsDD02 & distribution & DEFAULT \\ 
 & gt\_rhsDD11 & group type & GF \\ 
 & gt\_rhsDD12 & tags & checkpoint="no" parities=\{+1 +1 +1  -1 -1 +1  -1 +1 -1  +1 +1 +1  +1 -1 -1  +1 +1 +1\} \\ 
 & gt\_rhsDD22 & timelevels & 1 \\ 
 &  & variable type & REAL \\ 
\hline 
shift\_b &  & centering & centering=\{0 0 0\} \\ 
 & shift\_BU0 & compact & 0 \\ 
 & shift\_BU1 & dimensions & 3 \\ 
 & shift\_BU2 & distribution & DEFAULT \\ 
 &  & group type & GF \\ 
 &  & tags & rhs="CottonmouthBSSNOK4m::shift\_B\_rhs" parities=\{-1 +1 +1  +1 -1 +1  +1 +1 -1\} \\ 
 &  & timelevels & 1 \\ 
 &  & variable type & REAL \\ 
\hline 
shift\_b\_rhs &  & centering & centering=\{0 0 0\} \\ 
 & shift\_B\_rhsU0 & compact & 0 \\ 
 & shift\_B\_rhsU1 & dimensions & 3 \\ 
 & shift\_B\_rhsU2 & distribution & DEFAULT \\ 
 &  & group type & GF \\ 
 &  & tags & checkpoint="no" parities=\{-1 +1 +1  +1 -1 +1  +1 +1 -1\} \\ 
 &  & timelevels & 1 \\ 
 &  & variable type & REAL \\ 
\hline 
trk &  & centering & centering=\{0 0 0\} \\ 
 & trK & compact & 0 \\ 
 &  & dimensions & 3 \\ 
 &  & distribution & DEFAULT \\ 
 &  & group type & GF \\ 
 &  & tags & rhs="CottonmouthBSSNOK4m::trK\_rhs" parities=\{+1 +1 +1\} \\ 
 &  & timelevels & 1 \\ 
 &  & variable type & REAL \\ 
\hline 
trk\_rhs &  & centering & centering=\{0 0 0\} \\ 
 & trK\_rhs & compact & 0 \\ 
 &  & dimensions & 3 \\ 
 &  & distribution & DEFAULT \\ 
 &  & group type & GF \\ 
 &  & tags & checkpoint="no" parities=\{+1 +1 +1\} \\ 
 &  & timelevels & 1 \\ 
 &  & variable type & REAL \\ 
\hline 
w &  & centering & centering=\{0 0 0\} \\ 
 & w & compact & 0 \\ 
 &  & dimensions & 3 \\ 
 &  & distribution & DEFAULT \\ 
 &  & group type & GF \\ 
 &  & tags & rhs="CottonmouthBSSNOK4m::w\_rhs" parities=\{+1 +1 +1\} \\ 
 &  & timelevels & 1 \\ 
 &  & variable type & REAL \\ 
\hline 
\end{tabular*} 



\vspace{5mm}
\vspace{5mm}

\begin{tabular*}{150mm}{|c|c@{\extracolsep{\fill}}|rl|} \hline 
~ {\bf Group Names} ~ & ~ {\bf Variable Names} ~  &{\bf Details} ~ & ~ \\ 
\hline 
w\_rhs &  & centering & centering=\{0 0 0\} \\ 
 & w\_rhs & compact & 0 \\ 
 &  & dimensions & 3 \\ 
 &  & distribution & DEFAULT \\ 
 &  & group type & GF \\ 
 &  & tags & checkpoint="no" parities=\{+1 +1 +1\} \\ 
 &  & timelevels & 1 \\ 
 &  & variable type & REAL \\ 
\hline 
\end{tabular*} 



\vspace{5mm}

\noindent {\bf Uses header}: 

newradx.hxx
\vspace{2mm}\parskip = 10pt 

\section{Schedule} 


\parskip = 0pt


\noindent This section lists all the variables which are assigned storage by thorn Cottonmouth/CottonmouthBSSNOK4m.  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:}&  ~ \\ 
 At[1] & ~\\ 
 At\_rhs[1] & ~\\ 
 evo\_shift\_rhs[1] & ~\\ 
 gt[1] & ~\\ 
 gt\_rhs[1] & ~\\ 
 shift\_B[1] & ~\\ 
 shift\_B\_rhs[1] & ~\\ 
 trK[1] & ~\\ 
 trK\_rhs[1] & ~\\ 
 w[1] & ~\\ 
 w\_rhs[1] & ~\\ 
 ConfConnect[1] & ~\\ 
 ConfConnect\_rhs[1] & ~\\ 
 DeltaCons[1] & ~\\ 
 HamCons[1] & ~\\ 
 MomCons[1] & ~\\ 
 evo\_lapse[1] & ~\\ 
 evo\_lapse\_rhs[1] & ~\\ 
 evo\_shift[1] & ~\\ 
~ & ~\\ 
\end{tabular*} 


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

\noindent {\bf CottonmouthBSSNOK\_InitialGroup} 

\hspace{5mm} adm2bssn\_pt1\_group 

\hspace{5mm}{\it group for function `adm2bssn\_pt1`. generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & Language:  & c \\ 
~ & Type:  & group \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf adm2bssn\_pt1\_group} 

\hspace{5mm} adm2bssn\_pt1 

\hspace{5mm}{\it function `adm2bssn\_pt1` generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & Language:  & c \\ 
~ & Reads:  & admbasex::alp(interior) \\ 
~& ~ &admbasex::betax(everywhere)\\ 
~& ~ &admbasex::betay(everywhere)\\ 
~& ~ &admbasex::betaz(everywhere)\\ 
~& ~ &admbasex::dtbetax(interior)\\ 
~& ~ &admbasex::dtbetay(interior)\\ 
~& ~ &admbasex::dtbetaz(interior)\\ 
~& ~ &admbasex::gxx(interior)\\ 
~& ~ &admbasex::gxy(interior)\\ 
~& ~ &admbasex::gxz(interior)\\ 
~& ~ &admbasex::gyy(interior)\\ 
~& ~ &admbasex::gyz(interior)\\ 
~& ~ &admbasex::gzz(interior)\\ 
~& ~ &admbasex::kxx(interior)\\ 
~& ~ &admbasex::kxy(interior)\\ 
~& ~ &admbasex::kxz(interior)\\ 
~& ~ &admbasex::kyy(interior)\\ 
~& ~ &admbasex::kyz(interior)\\ 
~& ~ &admbasex::kzz(interior)\\ 
~ & Type:  & function \\ 
~ & Writes:  & atdd00(interior) \\ 
~& ~ &atdd01(interior)\\ 
~& ~ &atdd02(interior)\\ 
~& ~ &atdd11(interior)\\ 
~& ~ &atdd12(interior)\\ 
~& ~ &atdd22(interior)\\ 
~& ~ &evo\_lapse(interior)\\ 
~& ~ &evo\_shiftu0(interior)\\ 
~& ~ &evo\_shiftu1(interior)\\ 
~& ~ &evo\_shiftu2(interior)\\ 
~& ~ &gtdd00(interior)\\ 
~& ~ &gtdd01(interior)\\ 
~& ~ &gtdd02(interior)\\ 
~& ~ &gtdd11(interior)\\ 
~& ~ &gtdd12(interior)\\ 
~& ~ &gtdd22(interior)\\ 
~& ~ &shift\_bu0(interior)\\ 
~& ~ &shift\_bu1(interior)\\ 
~& ~ &shift\_bu2(interior)\\ 
~& ~ &trk(interior)\\ 
~& ~ &w(interior)\\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CottonmouthBSSNOK\_PostStepGroup} 

\hspace{5mm} enforce\_pt1\_group 

\hspace{5mm}{\it group for function `enforce\_pt1`. generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & Language:  & c \\ 
~ & Type:  & group \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf enforce\_pt1\_group} 

\hspace{5mm} enforce\_pt1 

\hspace{5mm}{\it function `enforce\_pt1` generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & Language:  & c \\ 
~ & Reads:  & evo\_lapse(interior) \\ 
~& ~ &gtdd00(interior)\\ 
~& ~ &gtdd01(interior)\\ 
~& ~ &gtdd02(interior)\\ 
~& ~ &gtdd11(interior)\\ 
~& ~ &gtdd12(interior)\\ 
~& ~ &gtdd22(interior)\\ 
~& ~ &w(interior)\\ 
~ & Type:  & function \\ 
~ & Writes:  & evo\_lapse(interior) \\ 
~& ~ &gtdd00(interior)\\ 
~& ~ &gtdd01(interior)\\ 
~& ~ &gtdd02(interior)\\ 
~& ~ &gtdd11(interior)\\ 
~& ~ &gtdd12(interior)\\ 
~& ~ &gtdd22(interior)\\ 
~& ~ &w(interior)\\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CottonmouthBSSNOK\_PostStepGroup} 

\hspace{5mm} enforce\_pt2\_group 

\hspace{5mm}{\it group for function `enforce\_pt2`. generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & After:  & enforce\_pt1\_group \\ 
~ & Language:  & c \\ 
~ & Type:  & group \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf enforce\_pt2\_group} 

\hspace{5mm} enforce\_pt2 

\hspace{5mm}{\it function `enforce\_pt2` generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & Language:  & c \\ 
~ & Reads:  & atdd00(interior) \\ 
~& ~ &atdd01(interior)\\ 
~& ~ &atdd02(interior)\\ 
~& ~ &atdd11(interior)\\ 
~& ~ &atdd12(interior)\\ 
~& ~ &atdd22(interior)\\ 
~& ~ &gtdd00(interior)\\ 
~& ~ &gtdd01(interior)\\ 
~& ~ &gtdd02(interior)\\ 
~& ~ &gtdd11(interior)\\ 
~& ~ &gtdd12(interior)\\ 
~& ~ &gtdd22(interior)\\ 
~ & Type:  & function \\ 
~ & Writes:  & atdd00(interior) \\ 
~& ~ &atdd01(interior)\\ 
~& ~ &atdd02(interior)\\ 
~& ~ &atdd11(interior)\\ 
~& ~ &atdd12(interior)\\ 
~& ~ &atdd22(interior)\\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CottonmouthBSSNOK\_RHSGroup} 

\hspace{5mm} rhs\_group 

\hspace{5mm}{\it group for function `rhs`. generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & Language:  & c \\ 
~ & Type:  & group \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf rhs\_group} 

\hspace{5mm} rhs 

\hspace{5mm}{\it function `rhs` generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & Language:  & c \\ 
~ & Reads:  & atdd00(everywhere) \\ 
~& ~ &atdd01(everywhere)\\ 
~& ~ &atdd02(everywhere)\\ 
~& ~ &atdd11(everywhere)\\ 
~& ~ &atdd12(everywhere)\\ 
~& ~ &atdd22(everywhere)\\ 
~& ~ &confconnectu0(everywhere)\\ 
~& ~ &confconnectu1(everywhere)\\ 
~& ~ &confconnectu2(everywhere)\\ 
~& ~ &tmunubasex::ettt(interior)\\ 
~& ~ &tmunubasex::ettx(interior)\\ 
~& ~ &tmunubasex::etty(interior)\\ 
~& ~ &tmunubasex::ettz(interior)\\ 
~& ~ &tmunubasex::etxx(interior)\\ 
~& ~ &tmunubasex::etxy(interior)\\ 
~& ~ &tmunubasex::etxz(interior)\\ 
~& ~ &tmunubasex::etyy(interior)\\ 
~& ~ &tmunubasex::etyz(interior)\\ 
~& ~ &tmunubasex::etzz(interior)\\ 
~& ~ &evo\_lapse(everywhere)\\ 
~& ~ &evo\_shiftu0(everywhere)\\ 
~& ~ &evo\_shiftu1(everywhere)\\ 
~& ~ &evo\_shiftu2(everywhere)\\ 
~& ~ &gtdd00(everywhere)\\ 
~& ~ &gtdd01(everywhere)\\ 
~& ~ &gtdd02(everywhere)\\ 
~& ~ &gtdd11(everywhere)\\ 
~& ~ &gtdd12(everywhere)\\ 
~& ~ &gtdd22(everywhere)\\ 
~& ~ &shift\_bu0(everywhere)\\ 
~& ~ &shift\_bu1(everywhere)\\ 
~& ~ &shift\_bu2(everywhere)\\ 
~& ~ &trk(everywhere)\\ 
~& ~ &w(everywhere)\\ 
~ & Type:  & function \\ 
~ & Writes:  & at\_rhsdd00(interior) \\ 
~& ~ &at\_rhsdd01(interior)\\ 
~& ~ &at\_rhsdd02(interior)\\ 
~& ~ &at\_rhsdd11(interior)\\ 
~& ~ &at\_rhsdd12(interior)\\ 
~& ~ &at\_rhsdd22(interior)\\ 
~& ~ &confconnect\_rhsu0(interior)\\ 
~& ~ &confconnect\_rhsu1(interior)\\ 
~& ~ &confconnect\_rhsu2(interior)\\ 
~& ~ &evo\_lapse\_rhs(interior)\\ 
~& ~ &evo\_shift\_rhsu0(interior)\\ 
~& ~ &evo\_shift\_rhsu1(interior)\\ 
~& ~ &evo\_shift\_rhsu2(interior)\\ 
~& ~ &gt\_rhsdd00(interior)\\ 
~& ~ &gt\_rhsdd01(interior)\\ 
~& ~ &gt\_rhsdd02(interior)\\ 
~& ~ &gt\_rhsdd11(interior)\\ 
~& ~ &gt\_rhsdd12(interior)\\ 
~& ~ &gt\_rhsdd22(interior)\\ 
~& ~ &shift\_b\_rhsu0(interior)\\ 
~& ~ &shift\_b\_rhsu1(interior)\\ 
~& ~ &shift\_b\_rhsu2(interior)\\ 
~& ~ &trk\_rhs(interior)\\ 
~& ~ &w\_rhs(interior)\\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf ODESolvers\_Initial} 

\hspace{5mm} cottonmouthbssnok\_initialgroup 

\hspace{5mm}{\it bssnok initialization routines } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & After:  & admbasex\_postinitial \\ 
~ & Type:  & group \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf ODESolvers\_PostStep} 

\hspace{5mm} cottonmouthbssnok\_poststepgroup 

\hspace{5mm}{\it bssnok post-step routines } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & Before:  & admbasex\_setadmvars \\ 
~ & Type:  & group \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf ODESolvers\_RHS} 

\hspace{5mm} cottonmouthbssnok\_rhsgroup 

\hspace{5mm}{\it bssnok equations rhs computation } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & Type:  & group \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CCTK\_ANALYSIS} 

\hspace{5mm} cottonmouthbssnok\_analysisgroup 

\hspace{5mm}{\it bssnok analysis routines } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & Type:  & group \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CottonmouthBSSNOK\_InitialGroup}   (conditional) 

\hspace{5mm} adm2bssn\_pt2\_group 

\hspace{5mm}{\it group for function `adm2bssn\_pt2`. generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & After:  & adm2bssn\_pt1\_group \\ 
~ & Language:  & c \\ 
~ & Type:  & group \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf bssn2adm\_group} 

\hspace{5mm} sync\_bssn 

\hspace{5mm}{\it empty function for explicitly syncing variables as provided in an explicitsyncbatch. syncs: at, confconnect, evo\_lapse, evo\_shift, gt, shift\_b, trk, w. generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & Before:  & bssn2adm \\ 
~ & Language:  & c \\ 
~ & Sync:  & at \\ 
~& ~ &confconnect\\ 
~& ~ &evo\_lapse\\ 
~& ~ &evo\_shift\\ 
~& ~ &gt\\ 
~& ~ &shift\_b\\ 
~& ~ &trk\\ 
~& ~ &w\\ 
~ & Type:  & function \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf adm2bssn\_pt2\_group} 

\hspace{5mm} sync\_bssn\_pt2 

\hspace{5mm}{\it empty function for explicitly syncing variables as provided in an explicitsyncbatch. syncs: gt. generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & Before:  & adm2bssn\_pt2 \\ 
~ & Language:  & c \\ 
~ & Sync:  & gt \\ 
~ & Type:  & function \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CottonmouthBSSNOK\_RHSGroup}   (conditional) 

\hspace{5mm} bssnok\_apply\_newradx\_w 

\hspace{5mm}{\it function for applying newradx boundary conditions: w -{\textgreater} w\_rhs. generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & After:  & apply\_dissipation\_group \\ 
~ & Language:  & c \\ 
~ & Reads:  & w(interior) \\ 
~& ~ &w\_rhs(interior)\\ 
~ & Type:  & function \\ 
~ & Writes:  & w\_rhs(interior) \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CottonmouthBSSNOK\_RHSGroup}   (conditional) 

\hspace{5mm} bssnok\_apply\_newradx\_gt\_xx 

\hspace{5mm}{\it function for applying newradx boundary conditions: gt[l0, l0] -{\textgreater} gt\_rhs[l0, l0]. generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & After:  & apply\_dissipation\_group \\ 
~ & Language:  & c \\ 
~ & Reads:  & gt(interior) \\ 
~& ~ &gt\_rhs(interior)\\ 
~ & Type:  & function \\ 
~ & Writes:  & gt\_rhs(interior) \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CottonmouthBSSNOK\_RHSGroup}   (conditional) 

\hspace{5mm} bssnok\_apply\_newradx\_gt\_xy 

\hspace{5mm}{\it function for applying newradx boundary conditions: gt[l0, l1] -{\textgreater} gt\_rhs[l0, l1]. generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & After:  & apply\_dissipation\_group \\ 
~ & Language:  & c \\ 
~ & Reads:  & gt(interior) \\ 
~& ~ &gt\_rhs(interior)\\ 
~ & Type:  & function \\ 
~ & Writes:  & gt\_rhs(interior) \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CottonmouthBSSNOK\_RHSGroup}   (conditional) 

\hspace{5mm} bssnok\_apply\_newradx\_gt\_xz 

\hspace{5mm}{\it function for applying newradx boundary conditions: gt[l0, l2] -{\textgreater} gt\_rhs[l0, l2]. generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & After:  & apply\_dissipation\_group \\ 
~ & Language:  & c \\ 
~ & Reads:  & gt(interior) \\ 
~& ~ &gt\_rhs(interior)\\ 
~ & Type:  & function \\ 
~ & Writes:  & gt\_rhs(interior) \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CottonmouthBSSNOK\_RHSGroup}   (conditional) 

\hspace{5mm} bssnok\_apply\_newradx\_gt\_yy 

\hspace{5mm}{\it function for applying newradx boundary conditions: gt[l1, l1] -{\textgreater} gt\_rhs[l1, l1]. generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & After:  & apply\_dissipation\_group \\ 
~ & Language:  & c \\ 
~ & Reads:  & gt(interior) \\ 
~& ~ &gt\_rhs(interior)\\ 
~ & Type:  & function \\ 
~ & Writes:  & gt\_rhs(interior) \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CottonmouthBSSNOK\_RHSGroup}   (conditional) 

\hspace{5mm} bssnok\_apply\_newradx\_gt\_yz 

\hspace{5mm}{\it function for applying newradx boundary conditions: gt[l1, l2] -{\textgreater} gt\_rhs[l1, l2]. generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & After:  & apply\_dissipation\_group \\ 
~ & Language:  & c \\ 
~ & Reads:  & gt(interior) \\ 
~& ~ &gt\_rhs(interior)\\ 
~ & Type:  & function \\ 
~ & Writes:  & gt\_rhs(interior) \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CottonmouthBSSNOK\_RHSGroup}   (conditional) 

\hspace{5mm} bssnok\_apply\_newradx\_gt\_zz 

\hspace{5mm}{\it function for applying newradx boundary conditions: gt[l2, l2] -{\textgreater} gt\_rhs[l2, l2]. generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & After:  & apply\_dissipation\_group \\ 
~ & Language:  & c \\ 
~ & Reads:  & gt(interior) \\ 
~& ~ &gt\_rhs(interior)\\ 
~ & Type:  & function \\ 
~ & Writes:  & gt\_rhs(interior) \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CottonmouthBSSNOK\_RHSGroup}   (conditional) 

\hspace{5mm} bssnok\_apply\_newradx\_at 

\hspace{5mm}{\it function for applying newradx boundary conditions: at -{\textgreater} at\_rhs. generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & After:  & apply\_dissipation\_group \\ 
~ & Language:  & c \\ 
~ & Reads:  & at(interior) \\ 
~& ~ &at\_rhs(interior)\\ 
~ & Type:  & function \\ 
~ & Writes:  & at\_rhs(interior) \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf adm2bssn\_pt2\_group}   (conditional) 

\hspace{5mm} adm2bssn\_pt2 

\hspace{5mm}{\it function `adm2bssn\_pt2` generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & Language:  & c \\ 
~ & Reads:  & gtdd00(everywhere) \\ 
~& ~ &gtdd01(everywhere)\\ 
~& ~ &gtdd02(everywhere)\\ 
~& ~ &gtdd11(everywhere)\\ 
~& ~ &gtdd12(everywhere)\\ 
~& ~ &gtdd22(everywhere)\\ 
~ & Type:  & function \\ 
~ & Writes:  & confconnectu0(interior) \\ 
~& ~ &confconnectu1(interior)\\ 
~& ~ &confconnectu2(interior)\\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CottonmouthBSSNOK\_RHSGroup}   (conditional) 

\hspace{5mm} bssnok\_apply\_newradx\_trk 

\hspace{5mm}{\it function for applying newradx boundary conditions: trk -{\textgreater} trk\_rhs. generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & After:  & apply\_dissipation\_group \\ 
~ & Language:  & c \\ 
~ & Reads:  & trk(interior) \\ 
~& ~ &trk\_rhs(interior)\\ 
~ & Type:  & function \\ 
~ & Writes:  & trk\_rhs(interior) \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CottonmouthBSSNOK\_RHSGroup}   (conditional) 

\hspace{5mm} bssnok\_apply\_newradx\_confconnect 

\hspace{5mm}{\it function for applying newradx boundary conditions: confconnect -{\textgreater} confconnect\_rhs. generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & After:  & apply\_dissipation\_group \\ 
~ & Language:  & c \\ 
~ & Reads:  & confconnect(interior) \\ 
~& ~ &confconnect\_rhs(interior)\\ 
~ & Type:  & function \\ 
~ & Writes:  & confconnect\_rhs(interior) \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CottonmouthBSSNOK\_RHSGroup}   (conditional) 

\hspace{5mm} bssnok\_apply\_newradx\_evo\_lapse 

\hspace{5mm}{\it function for applying newradx boundary conditions: evo\_lapse -{\textgreater} evo\_lapse\_rhs. generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & After:  & apply\_dissipation\_group \\ 
~ & Language:  & c \\ 
~ & Reads:  & evo\_lapse(interior) \\ 
~& ~ &evo\_lapse\_rhs(interior)\\ 
~ & Type:  & function \\ 
~ & Writes:  & evo\_lapse\_rhs(interior) \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CottonmouthBSSNOK\_RHSGroup}   (conditional) 

\hspace{5mm} bssnok\_apply\_newradx\_evo\_shift 

\hspace{5mm}{\it function for applying newradx boundary conditions: evo\_shift -{\textgreater} evo\_shift\_rhs. generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & After:  & apply\_dissipation\_group \\ 
~ & Language:  & c \\ 
~ & Reads:  & evo\_shift(interior) \\ 
~& ~ &evo\_shift\_rhs(interior)\\ 
~ & Type:  & function \\ 
~ & Writes:  & evo\_shift\_rhs(interior) \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CottonmouthBSSNOK\_RHSGroup}   (conditional) 

\hspace{5mm} bssnok\_apply\_newradx\_shift\_b 

\hspace{5mm}{\it function for applying newradx boundary conditions: shift\_b -{\textgreater} shift\_b\_rhs. generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & After:  & apply\_dissipation\_group \\ 
~ & Language:  & c \\ 
~ & Reads:  & shift\_b(interior) \\ 
~& ~ &shift\_b\_rhs(interior)\\ 
~ & Type:  & function \\ 
~ & Writes:  & shift\_b\_rhs(interior) \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CCTK\_POSTPOSTINITIAL} 

\hspace{5mm} init\_evolve\_cottonmouthbssnok4m 

\hspace{5mm}{\it group containing all functions from evolve that should run before step 0. generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & Language:  & c \\ 
~ & Type:  & group \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CCTK\_POSTPOSTINITIAL} 

\hspace{5mm} init\_analysis\_cottonmouthbssnok4m 

\hspace{5mm}{\it group containing all functions from analysis that should run before step 0. generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & After:  & init\_evolve\_cottonmouthbssnok4m \\ 
~ & Language:  & c \\ 
~ & Type:  & group \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CottonmouthBSSNOK\_RHSGroup} 

\hspace{5mm} apply\_dissipation\_group 

\hspace{5mm}{\it group for function `apply\_dissipation`. generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & After:  & rhs\_group \\ 
~ & Language:  & c \\ 
~ & Type:  & group \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf apply\_dissipation\_group} 

\hspace{5mm} apply\_dissipation 

\hspace{5mm}{\it function `apply\_dissipation` generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & Language:  & c \\ 
~ & Reads:  & atdd00(everywhere) \\ 
~& ~ &atdd01(everywhere)\\ 
~& ~ &atdd02(everywhere)\\ 
~& ~ &atdd11(everywhere)\\ 
~& ~ &atdd12(everywhere)\\ 
~& ~ &atdd22(everywhere)\\ 
~& ~ &at\_rhsdd00(interior)\\ 
~& ~ &at\_rhsdd01(interior)\\ 
~& ~ &at\_rhsdd02(interior)\\ 
~& ~ &at\_rhsdd11(interior)\\ 
~& ~ &at\_rhsdd12(interior)\\ 
~& ~ &at\_rhsdd22(interior)\\ 
~& ~ &confconnectu0(everywhere)\\ 
~& ~ &confconnectu1(everywhere)\\ 
~& ~ &confconnectu2(everywhere)\\ 
~& ~ &confconnect\_rhsu0(interior)\\ 
~& ~ &confconnect\_rhsu1(interior)\\ 
~& ~ &confconnect\_rhsu2(interior)\\ 
~& ~ &evo\_lapse(everywhere)\\ 
~& ~ &evo\_lapse\_rhs(interior)\\ 
~& ~ &evo\_shiftu0(everywhere)\\ 
~& ~ &evo\_shiftu1(everywhere)\\ 
~& ~ &evo\_shiftu2(everywhere)\\ 
~& ~ &evo\_shift\_rhsu0(interior)\\ 
~& ~ &evo\_shift\_rhsu1(interior)\\ 
~& ~ &evo\_shift\_rhsu2(interior)\\ 
~& ~ &gtdd00(everywhere)\\ 
~& ~ &gtdd01(everywhere)\\ 
~& ~ &gtdd02(everywhere)\\ 
~& ~ &gtdd11(everywhere)\\ 
~& ~ &gtdd12(everywhere)\\ 
~& ~ &gtdd22(everywhere)\\ 
~& ~ &gt\_rhsdd00(interior)\\ 
~& ~ &gt\_rhsdd01(interior)\\ 
~& ~ &gt\_rhsdd02(interior)\\ 
~& ~ &gt\_rhsdd11(interior)\\ 
~& ~ &gt\_rhsdd12(interior)\\ 
~& ~ &gt\_rhsdd22(interior)\\ 
~& ~ &shift\_bu0(everywhere)\\ 
~& ~ &shift\_bu1(everywhere)\\ 
~& ~ &shift\_bu2(everywhere)\\ 
~& ~ &shift\_b\_rhsu0(interior)\\ 
~& ~ &shift\_b\_rhsu1(interior)\\ 
~& ~ &shift\_b\_rhsu2(interior)\\ 
~& ~ &trk(everywhere)\\ 
~& ~ &trk\_rhs(interior)\\ 
~& ~ &w(everywhere)\\ 
~& ~ &w\_rhs(interior)\\ 
~ & Type:  & function \\ 
~ & Writes:  & at\_rhsdd00(interior) \\ 
~& ~ &at\_rhsdd01(interior)\\ 
~& ~ &at\_rhsdd02(interior)\\ 
~& ~ &at\_rhsdd11(interior)\\ 
~& ~ &at\_rhsdd12(interior)\\ 
~& ~ &at\_rhsdd22(interior)\\ 
~& ~ &confconnect\_rhsu0(interior)\\ 
~& ~ &confconnect\_rhsu1(interior)\\ 
~& ~ &confconnect\_rhsu2(interior)\\ 
~& ~ &evo\_lapse\_rhs(interior)\\ 
~& ~ &evo\_shift\_rhsu0(interior)\\ 
~& ~ &evo\_shift\_rhsu1(interior)\\ 
~& ~ &evo\_shift\_rhsu2(interior)\\ 
~& ~ &gt\_rhsdd00(interior)\\ 
~& ~ &gt\_rhsdd01(interior)\\ 
~& ~ &gt\_rhsdd02(interior)\\ 
~& ~ &gt\_rhsdd11(interior)\\ 
~& ~ &gt\_rhsdd12(interior)\\ 
~& ~ &gt\_rhsdd22(interior)\\ 
~& ~ &shift\_b\_rhsu0(interior)\\ 
~& ~ &shift\_b\_rhsu1(interior)\\ 
~& ~ &shift\_b\_rhsu2(interior)\\ 
~& ~ &trk\_rhs(interior)\\ 
~& ~ &w\_rhs(interior)\\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CottonmouthBSSNOK\_PostStepGroup} 

\hspace{5mm} bssn2adm\_group 

\hspace{5mm}{\it group for function `bssn2adm`. generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & After:  & enforce\_pt2\_group \\ 
~ & Language:  & c \\ 
~ & Type:  & group \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf bssn2adm\_group} 

\hspace{5mm} bssn2adm 

\hspace{5mm}{\it function `bssn2adm` generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & Language:  & c \\ 
~ & Reads:  & atdd00(everywhere) \\ 
~& ~ &atdd01(everywhere)\\ 
~& ~ &atdd02(everywhere)\\ 
~& ~ &atdd11(everywhere)\\ 
~& ~ &atdd12(everywhere)\\ 
~& ~ &atdd22(everywhere)\\ 
~& ~ &evo\_lapse(everywhere)\\ 
~& ~ &evo\_shiftu0(everywhere)\\ 
~& ~ &evo\_shiftu1(everywhere)\\ 
~& ~ &evo\_shiftu2(everywhere)\\ 
~& ~ &gtdd00(everywhere)\\ 
~& ~ &gtdd01(everywhere)\\ 
~& ~ &gtdd02(everywhere)\\ 
~& ~ &gtdd11(everywhere)\\ 
~& ~ &gtdd12(everywhere)\\ 
~& ~ &gtdd22(everywhere)\\ 
~& ~ &trk(everywhere)\\ 
~& ~ &w(everywhere)\\ 
~ & Type:  & function \\ 
~ & Writes:  & admbasex::alp(everywhere) \\ 
~& ~ &admbasex::betax(everywhere)\\ 
~& ~ &admbasex::betay(everywhere)\\ 
~& ~ &admbasex::betaz(everywhere)\\ 
~& ~ &admbasex::gxx(everywhere)\\ 
~& ~ &admbasex::gxy(everywhere)\\ 
~& ~ &admbasex::gxz(everywhere)\\ 
~& ~ &admbasex::gyy(everywhere)\\ 
~& ~ &admbasex::gyz(everywhere)\\ 
~& ~ &admbasex::gzz(everywhere)\\ 
~& ~ &admbasex::kxx(everywhere)\\ 
~& ~ &admbasex::kxy(everywhere)\\ 
~& ~ &admbasex::kxz(everywhere)\\ 
~& ~ &admbasex::kyy(everywhere)\\ 
~& ~ &admbasex::kyz(everywhere)\\ 
~& ~ &admbasex::kzz(everywhere)\\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf CottonmouthBSSNOK\_AnalysisGroup} 

\hspace{5mm} constraints\_group 

\hspace{5mm}{\it group for function `constraints`. generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & Language:  & c \\ 
~ & Type:  & group \\ 
\end{tabular*} 


\vspace{5mm}

\noindent {\bf constraints\_group} 

\hspace{5mm} constraints 

\hspace{5mm}{\it function `constraints` generated by einsteinengine. } 


\hspace{5mm}

 \begin{tabular*}{160mm}{cll} 
~ & Language:  & c \\ 
~ & Reads:  & atdd00(everywhere) \\ 
~& ~ &atdd01(everywhere)\\ 
~& ~ &atdd02(everywhere)\\ 
~& ~ &atdd11(everywhere)\\ 
~& ~ &atdd12(everywhere)\\ 
~& ~ &atdd22(everywhere)\\ 
~& ~ &confconnectu0(everywhere)\\ 
~& ~ &confconnectu1(everywhere)\\ 
~& ~ &confconnectu2(everywhere)\\ 
~& ~ &tmunubasex::ettt(interior)\\ 
~& ~ &tmunubasex::ettx(interior)\\ 
~& ~ &tmunubasex::etty(interior)\\ 
~& ~ &tmunubasex::ettz(interior)\\ 
~& ~ &tmunubasex::etxx(interior)\\ 
~& ~ &tmunubasex::etxy(interior)\\ 
~& ~ &tmunubasex::etxz(interior)\\ 
~& ~ &tmunubasex::etyy(interior)\\ 
~& ~ &tmunubasex::etyz(interior)\\ 
~& ~ &tmunubasex::etzz(interior)\\ 
~& ~ &evo\_lapse(interior)\\ 
~& ~ &evo\_shiftu0(interior)\\ 
~& ~ &evo\_shiftu1(interior)\\ 
~& ~ &evo\_shiftu2(interior)\\ 
~& ~ &gtdd00(everywhere)\\ 
~& ~ &gtdd01(everywhere)\\ 
~& ~ &gtdd02(everywhere)\\ 
~& ~ &gtdd11(everywhere)\\ 
~& ~ &gtdd12(everywhere)\\ 
~& ~ &gtdd22(everywhere)\\ 
~& ~ &trk(everywhere)\\ 
~& ~ &w(everywhere)\\ 
~ & Type:  & function \\ 
~ & Writes:  & deltaconsu0(interior) \\ 
~& ~ &deltaconsu1(interior)\\ 
~& ~ &deltaconsu2(interior)\\ 
~& ~ &hamcons(interior)\\ 
~& ~ &momconsu0(interior)\\ 
~& ~ &momconsu1(interior)\\ 
~& ~ &momconsu2(interior)\\ 
\end{tabular*} 



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