SpECTRE
v2024.09.29

Control error in the 3D Translation coordinate map. More...
#include <Translation.hpp>
Public Types  
using  object_centers = tmpl::conditional_t< NumberOfObjects==1, domain::object_list< domain::ObjectLabel::None >, 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 ::TimescaleTuner< true > &, const Parallel::GlobalCache< Metavariables > &cache, const double time, const std::string &, const tuples::TaggedTuple< TupleTags... > &measurements) 
Static Public Attributes  
static constexpr Options::String  help 
Control error in the 3D Translation coordinate map.
Computes the error in how much the system has translated. When there are two excisions, it does this by using a modified version of Eq. (42) from [149]. The equation is
\begin{equation} \left(0, \delta\vec{T}\right) = a\mathbf{q}\left(\frac{1}{2}(\mathbf{x}_A + \mathbf{x}_B  \frac{1}{2}(\mathbf{c}_A + \mathbf{c}_B))  \mathbf{\delta q}\wedge\frac{1}{2}(\mathbf{c}_A + \mathbf{c}_B)  \frac{\delta a}{a}\frac{1}{2}(\mathbf{c}_A + \mathbf{c}_B) \right)\mathbf{q}^* \end{equation}
where object A is located on the positive xaxis in the grid frame, bold face letters are quaternions, vectors are promoted to quaternions as \( \mathbf{v} = (0, \vec{v}) \), \( \mathbf{q} \) is the quaternion from the Rotation map, \( a \) is the function \( a(t) \) from the CubicScale map, \( \mathbf{\delta q}\wedge\mathbf{c}_A \equiv (0, \delta\vec{q} \times \vec{c}_A) \), \( \delta\vec{q} \) is the Rotation control error, and \( \delta a\) is the Expansion control error.
When there is only a single excision, the control error assumes that the center of the excision is at the origin. Thus, the control error is just taken to be the current center of the horizon mapped through the expansion and rotation maps if there are any.
Requirements:

staticconstexpr 