SpECTRE
v2024.06.18

Control error in the Shape coordinate map. More...
#include <Shape.hpp>
Public Types  
using  object_centers = domain::object_list< Horizon > 
using  options = tmpl::list<> 
Public Member Functions  
void  pup (PUP::er &) 
template<typename Metavariables , typename... TupleTags>  
DataVector  operator() (const ::TimescaleTuner< true > &, const Parallel::GlobalCache< Metavariables > &cache, const double time, const std::string &function_of_time_name, const tuples::TaggedTuple< TupleTags... > &measurements) 
Static Public Attributes  
static constexpr size_t  expected_number_of_excisions = 1 
static constexpr Options::String  help 
Control error in the Shape coordinate map.
Computes the error for each \( l,m \) mode of the shape map except for \( l=0 \) and \( l=1 \). This is because the \( l=0 \) mode is controlled by characteristic speed control, and the \( l=1 \) mode is redundant with the Translation map. The equation for the control error is Eq. (77) from [87] which is
\begin{align} Q_{lm} &= \frac{r_\mathrm{EB}  Y_{00}\lambda_{00}(t)}{\sqrt{\frac{\pi}{2}} Y_{00}S_{00}} S_{lm}  \lambda_{lm}(t), \quad l>=2 \label{eq:shape_control_error} \end{align}
where \( r_\mathrm{EB} \) is the radius of the excision boundary in the grid frame, \( \lambda_{00}(t) \) is the size map parameter, \( \lambda_{lm}(t) \) for \( l>=2 \) are the shape map parameters, and \( S_{lm}\) are the coefficients of the harmonic expansion of the apparent horizon. The coefficients \( \lambda_{lm}(t) \) (not including \( l=0 \)) and \( S_{lm}\) (including \( l=0 \)) are stored as the realvalued coefficients \( a_{lm} \) and \( b_{lm} \) of the SPHEREPACK sphericalharmonic expansion (in ylm::Spherepack). The \(\lambda_{00}(t)\) coefficient, on the other hand, is stored as the complex coefficient \( A_{00} \) of the standard \( Y_{lm} \) decomposition. Because \( a_{00} = \sqrt{\frac{2}{\pi}}A_{00} \), there is an extra factor of \( \sqrt{\frac{\pi}{2}} \) in the above formula in the denominator of the fraction multiplying the \( S_{00}\) component so it is represented in the \( Y_{lm} \) decomposition just like \( r_{EB} \) and \( \lambda_{00} \) are). That way, we ensure the numerator and denominator are represented in the same way before we take their ratio.
Requirements:

staticconstexpr 