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 SpecificEnthalpy; 67 : template <typename DataType> 68 : struct SpecificInternalEnergy; 69 : template <typename DataType> 70 : struct Temperature; 71 : template <typename DataType, size_t Dim, typename Fr = Frame::Inertial> 72 : struct LowerSpatialFourVelocity; 73 : template <typename DataType, size_t Dim, typename Fr = Frame::Inertial> 74 : struct LorentzFactorTimesSpatialVelocity; 75 : } // namespace Tags 76 : /// \endcond 77 : 78 : /// The tags for the primitive variables for GRMHD. 79 : template <typename DataType> 80 1 : using grmhd_tags = tmpl::list<hydro::Tags::RestMassDensity<DataType>, 81 : hydro::Tags::ElectronFraction<DataType>, 82 : hydro::Tags::SpecificInternalEnergy<DataType>, 83 : hydro::Tags::SpatialVelocity<DataType, 3>, 84 : hydro::Tags::MagneticField<DataType, 3>, 85 : hydro::Tags::DivergenceCleaningField<DataType>, 86 : hydro::Tags::LorentzFactor<DataType>, 87 : hydro::Tags::Pressure<DataType>, 88 : hydro::Tags::Temperature<DataType> >; 89 : } // namespace hydro