SpECTRE  v2024.09.29
control_system::ControlErrors::Translation< NumberOfObjects > Struct Template Reference

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
 

Detailed Description

template<size_t NumberOfObjects>
struct control_system::ControlErrors::Translation< NumberOfObjects >

Control error in the 3D Translation coordinate map.

Details

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:

  • This control error requires that there be either one or two objects in the simulation
  • Currently this control error can only be used with the Translation control system
  • There must exist an expansion map and a quaternion rotation map in the coordinate map with names "Expansion" and "Rotation", respectively if there are two object. If there is a single object, then the "Expansion" and "Rotation" maps may exist, but don't need to.

Member Data Documentation

◆ help

template<size_t NumberOfObjects>
constexpr Options::String control_system::ControlErrors::Translation< NumberOfObjects >::help
staticconstexpr
Initial value:
{
"Computes the control error for translation control. This should not "
"take any options."}

The documentation for this struct was generated from the following file: