SpECTRE  v2026.04.01
Loading...
Searching...
No Matches
Cce::Actions::ScriObserveInterpolated< ObserverWriterComponent, BoundaryComponent, WriteSynchronously > Struct Template Reference

Checks the interpolation managers and if they are ready, performs the interpolation and sends the data to file. More...

#include <ScriObserveInterpolated.hpp>

Public Types

using const_global_cache_tags

Static Public Member Functions

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

Detailed Description

template<typename ObserverWriterComponent, typename BoundaryComponent, bool WriteSynchronously = true>
struct Cce::Actions::ScriObserveInterpolated< ObserverWriterComponent, BoundaryComponent, WriteSynchronously >

Checks the interpolation managers and if they are ready, performs the interpolation and sends the data to file.

Details

This uses the ScriPlusInterpolationManager to perform the interpolations of all requested scri quantities (determined by scri_values_to_observe in the metavariables), and write them to disk using observers::threadedActions::WriteSimpleData. When using an analytic worldtube solution, this action also uses the AnalyticBoundaryDataManager to output the expected News value at the appropriate asymptotically inertial time.

Note
This action also uses the Tags::EthInertialRetardedTime, interpolated to the inertial frame, to perform the coordinate transformations presented in [30] to the Weyl scalars after interpolation. For our formulas, we need to adjust the signs and factors of two to be compatible with our definitions of \(\eth\) and choice of Newman-Penrose tetrad.

\begin{align*}\Psi_0^{\prime (5)} =& \Psi_0^{(5)} + 2 \eth u^\prime \Psi_1^{(4)} + \frac{3}{4} \left(\eth u^\prime\right)^2 \Psi_2^{(3)} + \frac{1}{2} \left( \eth u^\prime\right)^3 \Psi_3^{(2)} + \frac{1}{16} \left(\eth u^\prime\right)^4 \Psi_4^{(1)}, \\ \Psi_1^{\prime (4)} =& \Psi_1^{(4)} + \frac{3}{2} \eth u^\prime \Psi_2^{(3)} + \frac{3}{4} \left(\eth u^\prime\right)^2 \Psi_3^{(2)} + \frac{1}{8} \left(\eth u^\prime\right)^3 \Psi_4^{(1)}, \\ \Psi_2^{\prime (3)} =& \Psi_2^{(3)} + \eth u^\prime \Psi_3^{(2)} + \frac{1}{4} \left(\eth u^\prime\right)^2 \Psi_4^{(1)}, \\ \Psi_3^{\prime (2)} =& \Psi_3^{(2)} + \frac{1}{2} \eth u^{\prime} \Psi_4^{ (1)}, \\ \Psi_4^{\prime (1)} =& \Psi_4^{(1)}. \end{align*}

Note
If WriteSynchronously is true, then a local synchronous action will be used to write the News value rather than a threaded action.

DataBox changes:

  • Adds: nothing
  • Removes: nothing
  • Modifies: InterpolagionManager<ComplexDataVector, Tag> for each Tag in Metavariables::scri_values_to_observe

Member Typedef Documentation

◆ const_global_cache_tags

template<typename ObserverWriterComponent, typename BoundaryComponent, bool WriteSynchronously = true>
using Cce::Actions::ScriObserveInterpolated< ObserverWriterComponent, BoundaryComponent, WriteSynchronously >::const_global_cache_tags
Initial value:
tmpl::flatten<
tmpl::list<Tags::OutputNoninertialNews>, tmpl::list<>>>>
constexpr bool is_a_v
Definition IsA.hpp:62
Definition OptionTags.hpp:382

The documentation for this struct was generated from the following file:
  • src/Evolution/Systems/Cce/Actions/ScriObserveInterpolated.hpp