SpECTRE  v2025.03.17
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
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 = implementation defined
 

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 Fy(t) and Fz(t) of the Skew using a modified version of Eq. (71) from . This modified control error is

(1)QFj=g(wAΘAj+wBΘBjwA+wB)(1g)Fj

where the falloff function is assumed to be W(x)1 from the Skew map, ΘHj are the inclination angles between the x-axis and the normal to the horizon at the intersection point xHInt between the x-axis and the horizon, wA and wB are averaging weights defined by

(2)wH=exp(xC0xHIntxC0CH0)

with CH0 being the centers of the excision boundaries, and finally with

(3)g=12(1tanh(10xAIntxBIntCA0CB05)).

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

(4)QFj=Fj.

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: