SpECTRE
v2024.09.29
|
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 = tmpl::flatten< tmpl::list< Tags::ObservationLMax, std::conditional_t< tt::is_a_v< AnalyticWorldtubeBoundary, BoundaryComponent >, tmpl::list< Tags::OutputNoninertialNews >, tmpl::list<> > > > |
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) |
Checks the interpolation managers and if they are ready, performs the interpolation and sends the data to file.
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.
Tags::EthInertialRetardedTime
, interpolated to the inertial frame, to perform the coordinate transformations presented in [26] 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*}
WriteSynchronously
is true, then a local synchronous action will be used to write the News value rather than a threaded action.DataBox changes:
InterpolagionManager<ComplexDataVector, Tag>
for each Tag
in Metavariables::scri_values_to_observe