SpECTRE  v2025.03.17
control_system::ControlErrors::Skew Struct Reference

Control error in the for the domain::CoordinateMaps::TimeDependent::Skew map. More...

#include <Skew.hpp>

Public Types

using object_centers = domain::object_list<>
 
using options = tmpl::list<>
 

Public Member Functions

 Skew (Skew &&rhs)=default
 
Skewoperator= (Skew &&rhs)=default
 
 Skew (const Skew &)
 
Skewoperator= (const Skew &)
 
std::optional< double > get_suggested_timescale () const
 Returns the internal suggested timescale. A std::nullopt means that no timescale is suggested.
 
void reset ()
 Resets the internal suggested timescale to nullopt.
 
void pup (PUP::er &p)
 
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

Control error in the for the domain::CoordinateMaps::TimeDependent::Skew map.

Details

Computes the error in the map parameters \(F_y(t)\) and \(F_z(t)\) of the Skew using a modified version of Eq. (71) from [94]. This modified control error is

\begin{equation} Q_{F_j} = g\left(\frac{w_A \Theta_A^j + w_B \Theta_B^j}{w_A + w_B}\right) - (1-g)F_j \end{equation}

where the falloff function is assumed to be \(W(\vec{x}) \approx 1\) from the Skew map, \(\Theta_H^j\) are the inclination angles between the \(x\)-axis and the normal to the horizon at the intersection point \(x_H^\textrm{Int}\) between the \(x\)-axis and the horizon, \(w_A\) and \(w_B\) are averaging weights defined by

\begin{equation} w_H = \exp{\left(-\frac{x^0_C - x_H^\textrm{Int}}{x^0_C - C^0_H}\right)} \end{equation}

with \(C^0_H\) being the centers of the excision boundaries, and finally with

\begin{equation} g = \frac{1}{2}\left(1-\tanh\left(10\frac{x_A^\textrm{Int} - x_B^\textrm{Int}}{C^0_A - C^0_B} - 5\right)\right). \end{equation}

This transition function \(g\) is meant to only activate skew control when the black holes are close to merger to avoid adverse effects with junk radiation. If \(g < 0.0025\), then we turn skew control off completely and the control error just becomes

\begin{equation} Q_{F_j} = -F_j. \end{equation}

This threshold value of \(g = 0.0025\) was chosen in SpEC and seems to work well.

Requirements:

  • 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 Skew control system

Member Data Documentation

◆ help

constexpr Options::String control_system::ControlErrors::Skew::help
staticconstexpr
Initial value:
{
"Computes the control error for skew control."}

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