SpECTRE  v2022.12.02
control_system::ControlErrors::Shape< Horizon > Struct Template Reference

Control error in the Shape coordinate map. More...

#include <Shape.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

template<::ah::ObjectLabel Horizon>
struct control_system::ControlErrors::Shape< Horizon >

Control error in the Shape coordinate map.


Computes the error for each \( l,m \) mode of the shape map except for \( l=0 \) and \( l=1 \). This is because the \( l=0 \) mode is controlled by characteristic speed control, and the \( l=1 \) mode is redundant with the Translation map. The equation for the control error is Eq. (77) from [69] which is

\begin{align} Q_{lm} &= -\frac{\sqrt{\frac{\pi}{2}} r_\mathrm{EB} - Y_{00}\lambda_{00}(t)}{Y_{00}S_{00}} S_{lm} - \lambda_{lm}(t), \quad l>1 \label{eq:shape_control_error} \end{align}

where \( r_\mathrm{EB} \) is the radius of the excision boundary in the grid frame, \( \lambda_{00}(t) \) is the size map parameter, \( \lambda_{lm}(t) \) for \( l>1 \) are the shape map parameters, and \( S_{lm}\) are the coefficients of the harmonic expansion of the apparent horizon. The coefficients \( \lambda_{lm}(t) \) (including \( l=0 \)) and \( S_{lm}\) are stored as the real-valued coefficients \( a_{lm} \) and \( b_{lm} \) of the SPHEREPACK spherical-harmonic expansion (in YlmSpherepack) as opposed to complex coefficients \( A_{lm} \) of the standard \( Y_{lm} \) decomposition. The representation does not matter here except for the term involving \( r_\mathrm{EB} \). Because \( a_{00} = \sqrt{\frac{2}{\pi}}A_{00} \), there is an extra factor of \( \sqrt{\frac{2}{\pi}} \) in the above formula.


  • This control error requires that there be at least one excision surface in the simulation
  • Currently this control error can only be used with the Shape control system

Member Data Documentation

◆ help

template<::ah::ObjectLabel Horizon>
constexpr Options::String control_system::ControlErrors::Shape< Horizon >::help
Initial value:
"Computes the control error for shape control. This should not take any "

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