Line data Source code
1 0 : // Distributed under the MIT License.
2 : // See LICENSE.txt for details.
3 :
4 : #pragma once
5 :
6 : #include <cstddef>
7 :
8 : #include "Utilities/TMPL.hpp"
9 :
10 : /// \cond
11 : namespace Frame {
12 : struct Inertial;
13 : } // namespace Frame
14 :
15 : class DataVector;
16 :
17 : namespace hydro {
18 : namespace Tags {
19 :
20 : template <typename DataType>
21 : struct AlfvenSpeedSquared;
22 : template <typename DataType, size_t Dim, typename Fr = Frame::Inertial>
23 : struct ComovingMagneticField;
24 : template <typename DataType>
25 : struct ComovingMagneticFieldSquared;
26 : template <typename DataType>
27 : struct ComovingMagneticFieldMagnitude;
28 : template <typename DataType>
29 : struct DivergenceCleaningField;
30 : template <typename DataType>
31 : struct ElectronFraction;
32 : template <bool IsRelativistic, size_t ThermodynamicDim>
33 : struct EquationOfState;
34 : struct GrmhdEquationOfState;
35 : template <typename DataType>
36 : struct InversePlasmaBeta;
37 : template <typename DataType>
38 : struct LorentzFactor;
39 : template <typename DataType>
40 : struct LorentzFactorSquared;
41 : template <typename DataType, size_t Dim, typename Fr = Frame::Inertial>
42 : struct MagneticField;
43 : template <typename DataType>
44 : struct MagneticFieldDotSpatialVelocity;
45 : template <typename DataType, size_t Dim, typename Fr = Frame::Inertial>
46 : struct MagneticFieldOneForm;
47 : template <typename DataType>
48 : struct MagneticFieldSquared;
49 : template <typename DataType>
50 : struct MagneticPressure;
51 : template <typename DataType, size_t Dim, typename Fr = Frame::Inertial>
52 : struct MassFlux;
53 : template <typename DataType>
54 : struct Pressure;
55 : template <typename DataType>
56 : struct RestMassDensity;
57 : template <typename DataType>
58 : struct SoundSpeedSquared;
59 : template <typename DataType, size_t Dim, typename Fr = Frame::Inertial>
60 : struct SpatialVelocity;
61 : template <typename DataType, size_t Dim, typename Fr = Frame::Inertial>
62 : struct SpatialVelocityOneForm;
63 : template <typename DataType>
64 : struct SpatialVelocitySquared;
65 : template <typename DataType>
66 : struct SpecificEntropy;
67 : template <typename DataType>
68 : struct SpecificEnthalpy;
69 : template <typename DataType>
70 : struct SpecificInternalEnergy;
71 : template <typename DataType>
72 : struct Temperature;
73 : template <typename DataType, size_t Dim, typename Fr = Frame::Inertial>
74 : struct TransportVelocity;
75 : template <typename DataType, size_t Dim, typename Fr = Frame::Inertial>
76 : struct LowerSpatialFourVelocity;
77 : template <typename DataType, size_t Dim, typename Fr = Frame::Inertial>
78 : struct LorentzFactorTimesSpatialVelocity;
79 : } // namespace Tags
80 : /// \endcond
81 :
82 : /// The tags for the primitive variables for GRMHD.
83 : template <typename DataType>
84 1 : using grmhd_tags = tmpl::list<hydro::Tags::RestMassDensity<DataType>,
85 : hydro::Tags::ElectronFraction<DataType>,
86 : hydro::Tags::SpecificInternalEnergy<DataType>,
87 : hydro::Tags::SpatialVelocity<DataType, 3>,
88 : hydro::Tags::MagneticField<DataType, 3>,
89 : hydro::Tags::DivergenceCleaningField<DataType>,
90 : hydro::Tags::LorentzFactor<DataType>,
91 : hydro::Tags::Pressure<DataType>,
92 : hydro::Tags::Temperature<DataType> >;
93 : } // namespace hydro
|