Formulation.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 "NumericalAlgorithms/DiscontinuousGalerkin/Formulation.hpp"
8 #include "NumericalAlgorithms/DiscontinuousGalerkin/Tags/OptionsGroup.hpp"
9 #include "Options/Options.hpp"
10 #include "Utilities/TMPL.hpp"
11 
12 namespace dg {
13 namespace OptionTags {
14 struct Formulation {
15  using type = dg::Formulation;
17  static constexpr Options::String help =
18  "Discontinuous Galerkin formulation to use, e.g. StrongInertial for the "
19  "strong form.";
20 };
21 } // namespace OptionTags
22 
23 namespace Tags {
24 /*!
25  * \brief The DG formulation to use.
26  */
28  using type = dg::Formulation;
29 
30  using option_tags = tmpl::list<OptionTags::Formulation>;
31  static constexpr bool pass_metavariables = false;
32  static dg::Formulation create_from_options(
33  const dg::Formulation& formulation) noexcept;
34 };
35 } // namespace Tags
36 } // namespace dg
Options.hpp
db::SimpleTag
Mark a struct as a simple tag by inheriting from this.
Definition: Tag.hpp:36
dg
Functionality related to discontinuous Galerkin schemes.
Definition: ComputeNonconservativeBoundaryFluxes.hpp:23
dg::Tags::Formulation
The DG formulation to use.
Definition: Formulation.hpp:27
Options::String
const char *const String
The string used in option structs.
Definition: Options.hpp:32
dg::OptionTags::Formulation
Definition: Formulation.hpp:14
dg::OptionTags::DiscontinuousGalerkinGroup
Group holding options for controlling the DG discretization.
Definition: OptionsGroup.hpp:19
dg::Formulation
Formulation
The DG formulation to use.
Definition: Formulation.hpp:34
TMPL.hpp