RunEventsAndTriggers.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <tuple>
7 
9 #include "Evolution/EventsAndTriggers/EventsAndTriggers.hpp"
12 
13 namespace Actions {
14 /// \ingroup ActionsGroup
15 /// \ingroup EventsAndTriggersGroup
16 /// \brief Run the events and triggers
17 ///
18 /// Uses:
19 /// - ConstGlobalCache: the EventsAndTriggers tag, as required by
20 /// events and triggers
21 /// - DataBox: as required by events and triggers
22 ///
23 /// DataBox changes:
24 /// - Adds: nothing
25 /// - Removes: nothing
26 /// - Modifies: nothing
28  template <typename DbTags, typename... InboxTags, typename Metavariables,
29  typename ArrayIndex, typename ActionList,
30  typename ParallelComponent>
31  static auto apply(db::DataBox<DbTags>& box,
34  const ArrayIndex& array_index,
35  const ActionList /*meta*/,
36  const ParallelComponent* const component) noexcept {
37  Parallel::get<Tags::EventsAndTriggersTagBase>(cache).run_events(
38  box, cache, array_index, component);
39 
40  return std::forward_as_tuple(std::move(box));
41  }
42 };
43 } // namespace Actions
Defines class tuples::TaggedTuple.
An associative container that is indexed by structs.
Definition: TaggedTuple.hpp:272
Defines classes and functions used for manipulating DataBox&#39;s.
Definition: InterpolationTargetWedgeSectionTorus.hpp:24
A Charm++ chare that caches constant data once per Charm++ node.
Definition: ConstGlobalCache.hpp:76
Run the events and triggers.
Definition: RunEventsAndTriggers.hpp:27
Definition: SolvePoissonProblem.hpp:38
Defines class template ConstGlobalCache.
Definition: ComputeTimeDerivative.hpp:28