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 <pup_stl.h>
8 : #include <vector>
9 :
10 : #include "DataStructures/DataBox/Tag.hpp"
11 : #include "Time/OptionTags/LtsStepChoosers.hpp"
12 : #include "Time/StepChoosers/StepChooser.hpp"
13 : #include "Utilities/Serialization/Serialize.hpp"
14 : #include "Utilities/TMPL.hpp"
15 :
16 : namespace Tags {
17 : /// \ingroup DataBoxTagsGroup
18 : /// \ingroup TimeGroup
19 : /// \brief Tag for a vector of ::StepChooser%s
20 1 : struct LtsStepChoosers : db::SimpleTag {
21 0 : using type =
22 : std::vector<std::unique_ptr<::StepChooser<StepChooserUse::LtsStep>>>;
23 0 : using option_tags = tmpl::list<::OptionTags::LtsStepChoosers>;
24 0 : static constexpr bool is_overlayable = true;
25 :
26 0 : static constexpr bool pass_metavariables = false;
27 0 : static type create_from_options(const type& step_choosers) {
28 : return serialize_and_deserialize<type>(step_choosers);
29 : }
30 : };
31 : } // namespace Tags
|