SpECTRE  v2024.06.18
control_system::Systems::Rotation< DerivOrder, Measurement > Struct Template Reference

Controls the 3D Rotation map. More...

#include <Rotation.hpp>


struct  MeasurementQueue
struct  process_measurement

Public Types

using measurement = Measurement
using control_error = ControlErrors::Rotation
using simple_tags = tmpl::list< MeasurementQueue >

Static Public Member Functions

static std::string name ()
static std::optional< std::stringcomponent_name (const size_t component, const size_t num_components)

Static Public Attributes

static constexpr size_t deriv_order = DerivOrder

Detailed Description

template<size_t DerivOrder, typename Measurement>
struct control_system::Systems::Rotation< DerivOrder, Measurement >

Controls the 3D Rotation map.


Controls the quaternion in the 3D Rotation map by updating a QuaternionFunctionOfTime .


  • The function of time this control system controls must be a QuaternionFunctionOfTime.
  • This control system 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 BothHorizons measurement
  • Currently this control system can only be used with the Rotation control error
Internally, QuaternionFunctionOfTime holds a PiecewisePolynomial representing the angle about each axis that the system has rotated through. The rotation control error is technically for this internal PiecewisePolynomial, not the quaternion itself. However, the user doesn't need to know this. The QuaternionFunctionOfTime::update() function takes care of everything automatically.

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