Tags.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <cstddef>
7 #include <memory>
8 
10 #include "Evolution/Systems/GeneralizedHarmonic/ConstraintDamping/DampingFunction.hpp"
11 #include "Options/Options.hpp"
12 
13 /// \cond
15 struct Group;
16 } // namespace GeneralizedHarmonic::OptionTags
17 /// \endcond
18 
20 namespace OptionTags {
21 template <size_t VolumeDim, typename Fr>
23  using type = std::unique_ptr<
25  static constexpr Options::String help{
26  "DampingFunction for damping parameter gamma0"};
28 };
29 
30 template <size_t VolumeDim, typename Fr>
32  using type = std::unique_ptr<
34  static constexpr Options::String help{
35  "DampingFunction for damping parameter gamma1"};
37 };
38 
39 template <size_t VolumeDim, typename Fr>
41  using type = std::unique_ptr<
43  static constexpr Options::String help{
44  "DampingFunction for damping parameter gamma2"};
46 };
47 } // namespace OptionTags
48 
49 namespace Tags {
50 /*!
51  * \brief Constraint dammping parameter \f$\gamma_0\f$ for the generalized
52  * harmonic system (cf. \cite Lindblom2005qh).
53  */
55  using type = Scalar<DataVector>;
56 };
57 
58 /*!
59  * \brief Constraint dammping parameter \f$\gamma_1\f$ for the generalized
60  * harmonic system (cf. \cite Lindblom2005qh).
61  */
63  using type = Scalar<DataVector>;
64 };
65 
66 /*!
67  * \brief Constraint dammping parameter \f$\gamma_2\f$ for the generalized
68  * harmonic system (cf. \cite Lindblom2005qh).
69  */
71  using type = Scalar<DataVector>;
72 };
73 
74 /*!
75  * \brief A DampingFunction to compute the constraint damping parameter
76  * \f$\gamma_0\f$.
77  */
78 template <size_t VolumeDim, typename Fr>
80  using DampingFunctionType =
83  using option_tags =
84  tmpl::list<::GeneralizedHarmonic::ConstraintDamping::OptionTags::
85  DampingFunctionGamma0<VolumeDim, Fr>>;
86 
87  static constexpr bool pass_metavariables = false;
88  static type create_from_options(const type& damping_function) noexcept {
89  return damping_function->get_clone();
90  }
91 };
92 
93 /*!
94  * \brief A DampingFunction to compute the constraint damping parameter
95  * \f$\gamma_0\f$.
96  */
97 template <size_t VolumeDim, typename Fr>
99  using DampingFunctionType =
102  using option_tags =
103  tmpl::list<::GeneralizedHarmonic::ConstraintDamping::OptionTags::
104  DampingFunctionGamma1<VolumeDim, Fr>>;
105 
106  static constexpr bool pass_metavariables = false;
107  static type create_from_options(const type& damping_function) noexcept {
108  return std::move(damping_function->get_clone());
109  }
110 };
111 
112 /*!
113  * \brief A DampingFunction to compute the constraint damping parameter
114  * \f$\gamma_0\f$.
115  */
116 template <size_t VolumeDim, typename Fr>
118  using DampingFunctionType =
121  using option_tags =
122  tmpl::list<::GeneralizedHarmonic::ConstraintDamping::OptionTags::
123  DampingFunctionGamma2<VolumeDim, Fr>>;
124 
125  static constexpr bool pass_metavariables = false;
126  static type create_from_options(const type& damping_function) noexcept {
127  return std::move(damping_function->get_clone());
128  }
129 };
130 } // namespace Tags
131 } // namespace GeneralizedHarmonic::ConstraintDamping
GeneralizedHarmonic::ConstraintDamping::Tags::DampingFunctionGamma2
A DampingFunction to compute the constraint damping parameter .
Definition: Tags.hpp:117
GeneralizedHarmonic::ConstraintDamping
Holds classes implementing DampingFunction (functions ).
Definition: DampingFunction.hpp:17
Options.hpp
GeneralizedHarmonic::OptionTags::Group
Definition: Tags.hpp:188
GeneralizedHarmonic::ConstraintDamping::OptionTags::DampingFunctionGamma0
Definition: Tags.hpp:22
db::SimpleTag
Mark a struct as a simple tag by inheriting from this.
Definition: Tag.hpp:36
GeneralizedHarmonic::ConstraintDamping::OptionTags::DampingFunctionGamma1
Definition: Tags.hpp:31
GeneralizedHarmonic::ConstraintDamping::Tags::ConstraintGamma0
Constraint dammping parameter for the generalized harmonic system (cf. ).
Definition: Tags.hpp:54
cstddef
memory
GeneralizedHarmonic::ConstraintDamping::Tags::DampingFunctionGamma0
A DampingFunction to compute the constraint damping parameter .
Definition: Tags.hpp:79
GeneralizedHarmonic::ConstraintDamping::Tags::ConstraintGamma2
Constraint dammping parameter for the generalized harmonic system (cf. ).
Definition: Tags.hpp:70
GeneralizedHarmonic::ConstraintDamping::OptionTags::DampingFunctionGamma2
Definition: Tags.hpp:40
Scalar
Tensor< T, Symmetry<>, index_list<> > Scalar
Definition: TypeAliases.hpp:21
Options::String
const char *const String
The string used in option structs.
Definition: Options.hpp:32
GeneralizedHarmonic::ConstraintDamping::DampingFunction
Base class defining interface for constraint damping functions.
Definition: DampingFunction.hpp:31
GeneralizedHarmonic::OptionTags
Input option tags for the generalized harmonic evolution system.
Definition: Tags.hpp:183
GeneralizedHarmonic::ConstraintDamping::Tags::DampingFunctionGamma1
A DampingFunction to compute the constraint damping parameter .
Definition: Tags.hpp:98
GeneralizedHarmonic::ConstraintDamping::Tags::ConstraintGamma1
Constraint dammping parameter for the generalized harmonic system (cf. ).
Definition: Tags.hpp:62
std::unique_ptr
Prefixes.hpp