SpECTRE
v2025.03.17
|
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 |
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:
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.
|
staticconstexpr |