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 x-axis 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 |