11 #include "DataStructures/DataBox/Tag.hpp"
12 #include "IO/Observer/ArrayComponentId.hpp"
14 #include "Parallel/InboxInserters.hpp"
15 #include "Utilities/TaggedTuple.hpp"
21 namespace OptionTags {
28 static std::string name() noexcept {
return "Importers"; }
29 static constexpr
Options::String help =
"Options for loading data files";
35 template <
typename ImporterOptionsGroup>
38 std::is_same_v<typename ImporterOptionsGroup::group, Group>,
39 "The importer options should be placed in the 'Importers' option "
40 "group. Add a type alias `using group = importers::OptionTags::Group`.");
43 using group = ImporterOptionsGroup;
51 template <
typename ImporterOptionsGroup>
54 std::is_same_v<typename ImporterOptionsGroup::group, Group>,
55 "The importer options should be placed in the 'Importers' option "
56 "group. Add a type alias `using group = importers::OptionTags::Group`.");
59 "The subgroup within the file, excluding extensions";
60 using group = ImporterOptionsGroup;
66 template <
typename ImporterOptionsGroup>
69 std::is_same_v<typename ImporterOptionsGroup::group, Group>,
70 "The importer options should be placed in the 'Importers' option "
71 "group. Add a type alias `using group = importers::OptionTags::Group`.");
74 "The observation value at which to read data";
75 using group = ImporterOptionsGroup;
85 template <
typename ImporterOptionsGroup>
88 return "FileName(" + Options::name<ImporterOptionsGroup>() +
")";
91 using option_tags = tmpl::list<OptionTags::FileName<ImporterOptionsGroup>>;
93 static constexpr
bool pass_metavariables =
false;
94 static type create_from_options(
const type& file_name) noexcept {
104 template <
typename ImporterOptionsGroup>
107 return "Subgroup(" + Options::name<ImporterOptionsGroup>() +
")";
110 using option_tags = tmpl::list<OptionTags::Subgroup<ImporterOptionsGroup>>;
112 static constexpr
bool pass_metavariables =
false;
113 static type create_from_options(
const type& subgroup) noexcept {
121 template <
typename ImporterOptionsGroup>
124 return "ObservationValue(" + Options::name<ImporterOptionsGroup>() +
129 tmpl::list<OptionTags::ObservationValue<ImporterOptionsGroup>>;
131 static constexpr
bool pass_metavariables =
false;
132 static type create_from_options(
const type& observation_value) noexcept {
133 return observation_value;
159 template <
typename ImporterOptionsGroup,
typename FieldTagsList>
161 VolumeData<ImporterOptionsGroup, FieldTagsList>> {
162 using temporal_id = size_t;