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 : struct EquationOfStateBase; 33 : template <bool IsRelativistic, size_t ThermodynamicDim> 34 : struct EquationOfState; 35 : struct GrmhdEquationOfState; 36 : template <typename DataType> 37 : struct InversePlasmaBeta; 38 : template <typename DataType> 39 : struct LorentzFactor; 40 : template <typename DataType> 41 : struct LorentzFactorSquared; 42 : template <typename DataType, size_t Dim, typename Fr = Frame::Inertial> 43 : struct MagneticField; 44 : template <typename DataType> 45 : struct MagneticFieldDotSpatialVelocity; 46 : template <typename DataType, size_t Dim, typename Fr = Frame::Inertial> 47 : struct MagneticFieldOneForm; 48 : template <typename DataType> 49 : struct MagneticFieldSquared; 50 : template <typename DataType> 51 : struct MagneticPressure; 52 : template <typename DataType, size_t Dim, typename Fr = Frame::Inertial> 53 : struct MassFlux; 54 : template <typename DataType> 55 : struct Pressure; 56 : template <typename DataType> 57 : struct RestMassDensity; 58 : template <typename DataType> 59 : struct SoundSpeedSquared; 60 : template <typename DataType, size_t Dim, typename Fr = Frame::Inertial> 61 : struct SpatialVelocity; 62 : template <typename DataType, size_t Dim, typename Fr = Frame::Inertial> 63 : struct SpatialVelocityOneForm; 64 : template <typename DataType> 65 : struct SpatialVelocitySquared; 66 : template <typename DataType> 67 : struct SpecificEnthalpy; 68 : template <typename DataType> 69 : struct SpecificInternalEnergy; 70 : template <typename DataType> 71 : struct Temperature; 72 : template <typename DataType, size_t Dim, typename Fr = Frame::Inertial> 73 : struct LowerSpatialFourVelocity; 74 : template <typename DataType, size_t Dim, typename Fr = Frame::Inertial> 75 : struct LorentzFactorTimesSpatialVelocity; 76 : } // namespace Tags 77 : /// \endcond 78 : 79 : /// The tags for the primitive variables for GRMHD. 80 : template <typename DataType> 81 1 : using grmhd_tags = tmpl::list<hydro::Tags::RestMassDensity<DataType>, 82 : hydro::Tags::ElectronFraction<DataType>, 83 : hydro::Tags::SpecificInternalEnergy<DataType>, 84 : hydro::Tags::SpatialVelocity<DataType, 3>, 85 : hydro::Tags::MagneticField<DataType, 3>, 86 : hydro::Tags::DivergenceCleaningField<DataType>, 87 : hydro::Tags::LorentzFactor<DataType>, 88 : hydro::Tags::Pressure<DataType>, 89 : hydro::Tags::Temperature<DataType> >; 90 : } // namespace hydro