SpECTRE
v2023.05.16

Control error in the 3D CubicScale coordinate map. More...
#include <Expansion.hpp>
Public Types  
using  object_centers = domain::object_list< domain::ObjectLabel::A, domain::ObjectLabel::B > 
using  options = tmpl::list<> 
Public Member Functions  
void  pup (PUP::er &) 
template<typename Metavariables , typename... TupleTags>  
DataVector  operator() (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 = 2 
static constexpr Options::String  help 
Control error in the 3D CubicScale coordinate map.
Computes the error in the map parameter \(a(t)\) using Eq. (40) from [126] (see CubicScale for a definition of \(a(t)\)). The equation is
\begin{align} \delta a &= a\left( \frac{\vec{X}\cdot\vec{C}}{\vec{C}^2}  1 \right) \\ \delta a &= a\left( \frac{X_0}{C_0}  1 \right) \end{align}
where \(\vec{X} = \vec{x}_A  \vec{x}_B\) and \(\vec{C} = \vec{c}_A  \vec{c}_B\). Here, object A is located on the positive xaxis and object B is located on the negative xaxis, \(\vec{X}\) is the difference in positions of the centers of the mapped objects, and \(\vec{C}\) is the difference of the centers of the excision spheres, all in the grid frame. It is assumed that the positions of the excision spheres are exactly along the xaxis, which is why we were able to make the simplification in the second line above.
Requirements:

staticconstexpr 