SpECTRE  v2024.03.19
observers::Actions::RegisterEventsWithObservers Struct Reference

Registers this element of a parallel component with the local Observer parallel component for each triggered observation. More...

#include <RegisterEvents.hpp>

Static Public Member Functions

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

Detailed Description

Registers this element of a parallel component with the local Observer parallel component for each triggered observation.

Details

This tells the Observer to expect data from this component, as well as whether each observation is a Reduction or Volume observation. Should be added to the phase dependent action list of the components that contribute data for volume and reduction observations.

When this struct is used as an action, the apply function will perform the registration with observers. However, this struct also offers the static member functions perform_registration and perform_deregistration that are needed for either registering when an element is added to a core outside of initialization or deregistering when an element is being eliminated from a core. The use of separate functions is necessary to provide an interface usable outside of iterable actions, e.g. in specialized pup functions.


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