Tags.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include "DataStructures/DataBox/Tag.hpp"
7 #include "Evolution/EventsAndDenseTriggers/EventsAndDenseTriggers.hpp"
8 #include "Options/Options.hpp"
9 #include "Parallel/Serialize.hpp"
10 #include "Utilities/TMPL.hpp"
11 
12 namespace evolution {
13 namespace OptionTags {
14 /*!
15  * \ingroup EventsAndTriggersGroup
16  * \brief The Event%s to run based on DenseTrigger%s, similar to
17  * OptionTags::EventsAndTriggers
18  */
21  static constexpr Options::String help = "Events to run at arbitrary times";
22 };
23 } // namespace OptionTags
24 
25 namespace Tags {
26 /*!
27  * \ingroup EventsAndTriggersGroup
28  * \brief The Event%s to run based on DenseTrigger%s
29  */
32  using option_tags = tmpl::list<OptionTags::EventsAndDenseTriggers>;
33  static constexpr bool pass_metavariables = false;
34  static type create_from_options(const type& events_and_triggers) noexcept {
35  return deserialize<type>(serialize(events_and_triggers).data());
36  }
37 };
38 } // namespace Tags
39 } // namespace evolution
evolution::EventsAndDenseTriggers
Definition: EventsAndDenseTriggers.hpp:36
evolution
Functionality for evolving hyperbolic partial differential equations.
Definition: RunEventsAndDenseTriggers.hpp:30
evolution::Tags::EventsAndDenseTriggers
The Events to run based on DenseTriggers.
Definition: Tags.hpp:30
Options.hpp
Serialize.hpp
db::SimpleTag
Mark a struct as a simple tag by inheriting from this.
Definition: Tag.hpp:36
evolution::OptionTags::EventsAndDenseTriggers
The Events to run based on DenseTriggers, similar to OptionTags::EventsAndTriggers.
Definition: Tags.hpp:19
Options::String
const char *const String
The string used in option structs.
Definition: Options.hpp:32
serialize
std::vector< char > serialize(const T &obj) noexcept
Serialize an object using PUP.
Definition: Serialize.hpp:26
TMPL.hpp