SpECTRE  v2024.12.16
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
control_system::ControlErrors::Shape< Horizon > Struct Template Reference

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

#include <Shape.hpp>

Public Types

using object_centers = domain::object_list< Horizon >
 
using options = implementation defined
 

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 &function_of_time_name, const tuples::TaggedTuple< TupleTags... > &measurements)
 

Static Public Attributes

static constexpr Options::String help
 

Detailed Description

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

Control error in the Shape coordinate map.

Details

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 [91] which is

(1)Qlm=rEBY00λ00(t)π2Y00S00Slmλlm(t),l>=2

where rEB is the radius of the excision boundary in the grid frame, λ00(t) is the size map parameter, λlm(t) for l>=2 are the shape map parameters, and Slm are the coefficients of the harmonic expansion of the apparent horizon. The coefficients λlm(t) (not including l=0) and Slm (including l=0) are stored as the real-valued coefficients alm and blm of the SPHEREPACK spherical-harmonic expansion (in ylm::Spherepack). The λ00(t) coefficient, on the other hand, is stored as the complex coefficient A00 of the standard Ylm decomposition. Because a00=2πA00, there is an extra factor of π2 in the above formula in the denominator of the fraction multiplying the S00 component so it is represented in the Ylm decomposition just like rEB and λ00 are). That way, we ensure the numerator and denominator are represented in the same way before we take their ratio.

Requirements:

  • 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<::domain::ObjectLabel Horizon>
constexpr Options::String control_system::ControlErrors::Shape< Horizon >::help
staticconstexpr
Initial value:
{
"Computes the control error for shape control. This should not take any "
"options."}

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