Tags.hpp
1 // 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 "Utilities/TMPL.hpp"
9 
10 namespace elliptic::dg {
11 /// Option tags related to elliptic discontinuous Galerkin schemes
12 namespace OptionTags {
13 
15  static constexpr Options::String help =
16  "Options for the discretization of the elliptic equations";
17 };
18 
20  using group = Discretization;
21  static constexpr Options::String help =
22  "Options for the discontinuous Galerkin discretization";
23 };
24 
26  using type = double;
27  static constexpr Options::String help =
28  "The prefactor to the penalty term of the numerical flux. Values closer "
29  "to one lead to better-conditioned problems, but on curved meshes the "
30  "penalty parameter may need to be increased to keep the problem "
31  "well-defined.";
33 };
34 
35 } // namespace OptionTags
36 
37 /// DataBox tags related to elliptic discontinuous Galerkin schemes
38 namespace Tags {
39 
40 /*!
41  * \brief The prefactor to the penalty term of the numerical flux
42  *
43  * \see elliptic::dg::penalty
44  */
46  using type = double;
47  static constexpr bool pass_metavariables = false;
48  using option_tags = tmpl::list<OptionTags::PenaltyParameter>;
49  static double create_from_options(const double value) noexcept {
50  return value;
51  }
52 };
53 
54 } // namespace Tags
55 } // namespace elliptic::dg
elliptic::dg::OptionTags::Discretization
Definition: Tags.hpp:14
Options.hpp
db::SimpleTag
Mark a struct as a simple tag by inheriting from this.
Definition: Tag.hpp:36
elliptic::dg::OptionTags::PenaltyParameter
Definition: Tags.hpp:25
elliptic::dg::Tags::PenaltyParameter
The prefactor to the penalty term of the numerical flux.
Definition: Tags.hpp:45
elliptic::dg
Functionality related to discontinuous Galerkin discretizations of elliptic equations.
Definition: DiscontinuousGalerkin.hpp:12
Options::String
const char *const String
The string used in option structs.
Definition: Options.hpp:32
elliptic::dg::OptionTags::DiscontinuousGalerkin
Definition: Tags.hpp:19
TMPL.hpp