11 #include "IO/Observer/Actions/ObserverRegistration.hpp"
12 #include "IO/Observer/ObservationId.hpp"
13 #include "IO/Observer/ObserverComponent.hpp"
14 #include "IO/Observer/TypeOfObservation.hpp"
15 #include "Parallel/ArrayIndex.hpp"
17 #include "Parallel/Invoke.hpp"
20 template <
class... Tags>
38 template <
typename RegisterHelper>
40 template <
typename DbTagList,
typename... InboxTags,
typename Metavariables,
41 typename ArrayIndex,
typename ActionList,
42 typename ParallelComponent>
44 db::DataBox<DbTagList>& box,
47 const ArrayIndex& array_index,
const ActionList ,
48 const ParallelComponent*
const ) noexcept {
50 *Parallel::get_parallel_component<observers::Observer<Metavariables>>(
53 const auto [type_of_observation, observation_id] =
54 RegisterHelper::template register_info<ParallelComponent>(box,
59 observer, observation_id,
64 return {std::move(box)};
Definition: ElementReceiveInterpPoints.hpp:15
An associative container that is indexed by structs.
Definition: TaggedTuple.hpp:271
Parallel::GlobalCache< Metavariables > & cache(MockRuntimeSystem< Metavariables > &runner, const ArrayIndex &array_index) noexcept
Returns the GlobalCache of Component with index array_index.
Definition: MockRuntimeSystemFreeFunctions.hpp:362
An ID type that identifies both the parallel component and the index in the parallel component.
Definition: ArrayComponentId.hpp:27
void simple_action(Proxy &&proxy) noexcept
Invoke a simple action on proxy
Definition: Invoke.hpp:84
The array index used for indexing Chare Arrays, mostly an implementation detail.
Definition: ArrayIndex.hpp:28
Actions used by the observer parallel component
Definition: ObserverRegistration.hpp:30
Register the ArrayComponentId that will send the data to the observer for the given ObservationIdRegi...
Definition: ObserverRegistration.hpp:209
Register an observation ID with the observers.
Definition: RegisterWithObservers.hpp:39