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.

### 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 [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.

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

## ◆ help

template<::ah::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:
• src/ControlSystem/ControlErrors/Shape.hpp