System.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <cstddef>
7 
8 #include "DataStructures/Tensor/EagerMath/Magnitude.hpp"
10 #include "Evolution/Conservative/ConservativeDuDt.hpp"
11 #include "Evolution/Systems/NewtonianEuler/Characteristics.hpp"
12 #include "Evolution/Systems/NewtonianEuler/ConservativeFromPrimitive.hpp"
13 #include "Evolution/Systems/NewtonianEuler/Fluxes.hpp"
14 #include "Evolution/Systems/NewtonianEuler/PrimitiveFromConservative.hpp"
15 #include "Evolution/Systems/NewtonianEuler/Sources.hpp"
16 #include "Evolution/Systems/NewtonianEuler/Tags.hpp"
17 #include "PointwiseFunctions/Hydro/Tags.hpp"
18 #include "Utilities/TMPL.hpp"
19 
20 /// \cond
21 namespace Tags {
22 template <class>
23 class Variables;
24 } // namespace Tags
25 /// \endcond
26 
27 /// \ingroup EvolutionSystemsGroup
28 /// \brief Items related to evolving the Newtonian Euler system
29 namespace NewtonianEuler {
30 
31 template <size_t Dim, typename EquationOfStateType, typename InitialDataType>
32 struct System {
33  static constexpr bool is_in_flux_conservative_form = true;
34  static constexpr bool has_primitive_and_conservative_vars = true;
35  static constexpr size_t volume_dim = Dim;
36  static constexpr size_t thermodynamic_dim =
37  EquationOfStateType::thermodynamic_dim;
38 
39  // Compute item for pressure not currently implemented in SpECTRE,
40  // so its simple tag is passed along with the primitive variables.
41  using primitive_variables_tag = ::Tags::Variables<tmpl::list<
44 
45  using variables_tag =
49 
50  template <typename Tag>
52 
56 
60 
62 
64 
66 
67  using sourced_variables =
68  typename InitialDataType::source_term_type::sourced_variables;
69 };
70 
71 } // namespace NewtonianEuler
The mass density of the fluid.
Definition: Tags.hpp:29
The momentum density of the fluid.
Definition: Tags.hpp:43
Definition: Variables.hpp:46
Definition: System.hpp:32
The Euclidean magnitude of a (co)vector.
Definition: Magnitude.hpp:77
The macroscopic or flow velocity of the fluid.
Definition: Tags.hpp:59
Compute the source terms for the NewtonianEuler evolution using a problem-specific source...
Definition: Sources.hpp:36
Compute the conservative variables from the primitive variables.
Definition: ConservativeFromPrimitive.hpp:46
The specific internal energy of the fluid.
Definition: Tags.hpp:68
Calculate for a conservative system.
Definition: ConservativeDuDt.hpp:26
The energy density of the fluid.
Definition: Tags.hpp:52
Compute the fluxes of the conservative variables of the Newtonian Euler system.
Definition: Fluxes.hpp:55
Defines class Variables.
Definition: DataBoxTag.hpp:29
The fluid pressure.
Definition: Tags.hpp:75
Definition: Characteristics.hpp:138
Definition: Characteristics.hpp:120
Wraps the template metaprogramming library used (brigand)
Compute the primitive variables from the conservative variables.
Definition: PrimitiveFromConservative.hpp:54
Items related to evolving the Newtonian Euler system.
Definition: EvolveNewtonianEulerFwd.hpp:8