SpECTRE  v2025.03.17
control_system::Actions::SwitchGridRotationToSettle Struct Reference

Checks if the Rotation function of time has been updated because the separation between the neutron star grid centers is small enough. More...

#include <GridCenters.hpp>

Classes

struct  DisableControlSystem
 Invokable used to disable the rotation control system via a call to Parallel::mutate. More...
 
struct  UpdateRotationToSettle
 Invokable that changes the rotation function of time to a QuaternionSettleToConstant matching the current function of time values and derivatives for the rotation and decaying over a specified timescale. More...
 

Public Types

using const_global_cache_tags = tmpl::list< control_system::Tags::DisableRotationWhen >
 

Static Public Member Functions

template<typename DbTags , typename... InboxTags, typename Metavariables , typename ActionList , typename ParallelComponent >
static Parallel::iterable_action_return_t apply (db::DataBox< DbTags > &box, tuples::TaggedTuple< InboxTags... > &, Parallel::GlobalCache< Metavariables > &cache, const ElementId< 3 > &element_id, const ActionList, const ParallelComponent *const)
 

Detailed Description

Checks if the Rotation function of time has been updated because the separation between the neutron star grid centers is small enough.

Note
This is an iterable action that is to be run on the elements. It is only run on the element that satisfies is_zeroth_element().
Warning
This action should only ever be run in the Parallel::Phase::DisableRotationControl phase.

The desired separation is controlled via the control_systems::Tags::DisableRotationWhen tag. The main use for this functionality is to disable the rotation control system in binary neutron star mergers when the stars are sufficiently close because as the stars merge, the dual control system starts to lose anything to lock on to and can even start counter rotating.

Tags used and modified:


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