Line data Source code
1 0 : // Distributed under the MIT License. 2 : // See LICENSE.txt for details. 3 : 4 : #pragma once 5 : 6 : #include "DataStructures/DataBox/Tag.hpp" 7 : #include "Options/Options.hpp" 8 : #include "ParallelAlgorithms/EventsAndDenseTriggers/EventsAndDenseTriggers.hpp" 9 : #include "Utilities/Serialization/Serialize.hpp" 10 : #include "Utilities/TMPL.hpp" 11 : 12 : namespace OptionTags { 13 : /*! 14 : * \ingroup EventsAndTriggersGroup 15 : * \brief The Event%s to run based on DenseTrigger%s, similar to 16 : * OptionTags::EventsAndTriggers 17 : */ 18 1 : struct EventsAndDenseTriggers { 19 0 : using type = ::EventsAndDenseTriggers; 20 0 : static constexpr Options::String help = "Events to run at arbitrary times"; 21 : }; 22 : } // namespace OptionTags 23 : 24 : namespace Tags { 25 : /*! 26 : * \ingroup EventsAndTriggersGroup 27 : * \brief The Event%s to run based on DenseTrigger%s 28 : */ 29 1 : struct EventsAndDenseTriggers : db::SimpleTag { 30 0 : using type = ::EventsAndDenseTriggers; 31 0 : using option_tags = tmpl::list<OptionTags::EventsAndDenseTriggers>; 32 0 : static constexpr bool pass_metavariables = false; 33 0 : static type create_from_options(const type& events_and_triggers) { 34 : return deserialize<type>(serialize(events_and_triggers).data()); 35 : } 36 : }; 37 : } // namespace Tags