|
SpECTRE
2021.08.02
|
Checks the interpolation managers and if they are ready, performs the interpolation and sends the data to file via observers::ThreadedActions::WriteSimpleData.
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 std::tuple< db::DataBox< DbTags > && > | apply (db::DataBox< DbTags > &box, const tuples::TaggedTuple< InboxTags... > &, Parallel::GlobalCache< Metavariables > &cache, const ArrayIndex &, const ActionList, const ParallelComponent *const) noexcept |
Checks the interpolation managers and if they are ready, performs the interpolation and sends the data to file via observers::ThreadedActions::WriteSimpleData.
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 [18] 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*}
DataBox changes:
InterpolagionManager<ComplexDataVector, Tag> for each Tag in Metavariables::scri_values_to_observe