SpECTRE  v2025.03.17
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Modules Pages
control_system::ControlErrors::GridCenters Struct Reference

Tracks the grid-frame object centers. More...

#include <GridCenters.hpp>

Public Types

using object_centers = domain::object_list< domain::ObjectLabel::A, domain::ObjectLabel::B >
 
using options = implementation defined
 

Public Member Functions

std::optional< double > get_suggested_timescale () const
 
void reset ()
 
 GridCenters (const Options::Context &context={})
 
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

Tracks the grid-frame object centers.

Tracks the 3d grid-frame centers of the two objects. Tracking the grid-frame centers is better than tracking the inertial-frame centers because the timescale at which the grid frame locations change is much larger than the inertial ones. This is because in the grid frame only the radial inspiral really changes because the rotation control system handles the orbital movement. The orbital time scale is much larger than the Cartesian coordinate location timescale, so splitting the system into angular and radial allows for both to be slowly varying.

The intended use case of the output of this control system is for binary neutron star simulations where the rotation control needs to be disabled at merger. It is also necessary for changing from harmonic to damped harmonic gauge near when the neutron stars merge. Finally, it can also be used for triggering a grid change from the inspiral grid to the remnant grid in a BNS merger simulation.

Requirements:

  • This control error requires that there be either one or two objects in the simulation (typically neutron stars).
  • Currently this control error can only be used with the GridCenters control system
  • There must exist a PiecewisePolynomial<2> function of time named "GridCenters". It is assumed that components [0,2] are the grid coordinates of object A and the components [3,5] are the grid coordinates of object B.

Member Data Documentation

◆ help

constexpr Options::String control_system::ControlErrors::GridCenters::help
staticconstexpr
Initial value:
{
"Computes the control error for the grid centers of two objects. "
"This should not take any options."}

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