SpECTRE  v2022.05.05
control_system::ControlErrors::Expansion Struct Reference

Control error in the 3D CubicScale coordinate map. More...

#include <Expansion.hpp>

Public Types

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 Options::String help

Detailed Description

Control error in the 3D CubicScale coordinate map.


Computes the error in the map parameter \(a(t)\) using Eq. (40) from [93] (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}_B - \vec{x}_A\) and \(\vec{C} = \vec{c}_B - \vec{c}_A\). Here, object B is located on the positive x-axis and object A is located on the negative x-axis, \(\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 x-axis, which is why we were able to make the simplification in the second line above.


  • This control error requires that there be exactly two objects in the simulation
  • Currently both these objects must be black holes
  • Currently this control system can only be used with the Expansion control system

Member Data Documentation

◆ help

constexpr Options::String control_system::ControlErrors::Expansion::help
Initial value:
"Computes the control error for expansion control. This should not "
"take any options."}

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