Line data Source code
1 0 : // Distributed under the MIT License. 2 : // See LICENSE.txt for details. 3 : 4 : #pragma once 5 : 6 : #include <memory> 7 : #include <vector> 8 : 9 : #include "DataStructures/DataBox/Tag.hpp" 10 : #include "Time/OptionTags/StepChoosers.hpp" 11 : #include "Time/StepChoosers/StepChooser.hpp" 12 : #include "Utilities/Serialization/Serialize.hpp" 13 : #include "Utilities/TMPL.hpp" 14 : 15 : namespace Tags { 16 : /// \ingroup DataBoxTagsGroup 17 : /// \ingroup TimeGroup 18 : /// \brief Tag for a vector of ::StepChooser%s 19 1 : struct StepChoosers : db::SimpleTag { 20 0 : using type = 21 : std::vector<std::unique_ptr<::StepChooser<StepChooserUse::LtsStep>>>; 22 0 : using option_tags = tmpl::list<::OptionTags::StepChoosers>; 23 : 24 0 : static constexpr bool pass_metavariables = false; 25 0 : static type create_from_options(const type& step_choosers) { 26 : return deserialize<type>(serialize<type>(step_choosers).data()); 27 : } 28 : }; 29 : } // namespace Tags