Tags.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <string>
7 
8 #include "DataStructures/DataBox/PrefixHelpers.hpp"
9 #include "DataStructures/DataBox/Tag.hpp"
10 #include "DataStructures/DataBox/TagName.hpp"
11 #include "Elliptic/BoundaryConditions/BoundaryConditionType.hpp"
12 #include "Options/Options.hpp"
13 #include "Utilities/TaggedTuple.hpp"
14 
15 namespace elliptic {
16 namespace OptionTags {
17 
18 template <typename Tag>
20  static std::string name() noexcept { return db::tag_name<Tag>(); }
22  static constexpr Options::String help =
23  "Type of boundary conditions to impose on this variable";
24 };
25 
26 } // namespace OptionTags
27 
28 namespace Tags {
29 
30 /// The `elliptic::BoundaryConditionType` to impose on the variable represented
31 /// by `Tag`, e.g. Dirichlet or Neumann boundary conditions
32 template <typename Tag>
35  using tag = Tag;
36 };
37 
38 /// The `elliptic::BoundaryConditionType` to impose on the variables represented
39 /// by `Tags`, e.g. Dirichlet or Neumann boundary conditions
40 template <typename Tags>
42  using type = tuples::tagged_tuple_from_typelist<
44 };
45 
46 } // namespace Tags
47 } // namespace elliptic
std::string
elliptic::Tags::BoundaryConditionType
The elliptic::BoundaryConditionType to impose on the variable represented by Tag, e....
Definition: Tags.hpp:33
db::PrefixTag
Mark a struct as a prefix tag by inheriting from this.
Definition: Tag.hpp:103
Options.hpp
elliptic::BoundaryConditionType
BoundaryConditionType
Identify types of boundary conditions for elliptic equations.
Definition: BoundaryConditionType.hpp:19
db::SimpleTag
Mark a struct as a simple tag by inheriting from this.
Definition: Tag.hpp:36
elliptic::Tags::BoundaryConditionTypes
The elliptic::BoundaryConditionType to impose on the variables represented by Tags,...
Definition: Tags.hpp:41
elliptic
Functionality related to solving elliptic partial differential equations.
Definition: InitializeAnalyticSolution.hpp:29
Options::String
const char *const String
The string used in option structs.
Definition: Options.hpp:32
db::wrap_tags_in
tmpl::transform< TagList, tmpl::bind< Wrapper, tmpl::_1, tmpl::pin< Args >... > > wrap_tags_in
Create a new tmpl::list of tags by wrapping each tag in TagList in Wrapper<_, Args....
Definition: PrefixHelpers.hpp:30
elliptic::OptionTags::BoundaryConditionType
Definition: Tags.hpp:19
string