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 "PointwiseFunctions/AnalyticSolutions/GeneralRelativity/Solutions.hpp"
9 : #include "PointwiseFunctions/Hydro/TagsDeclarations.hpp"
10 : #include "PointwiseFunctions/Hydro/Temperature.hpp"
11 :
12 : namespace RelativisticEuler {
13 : /// Base struct for properties common to all Relativistic Euler analytic
14 : /// solutions
15 : template <size_t Dim>
16 1 : struct AnalyticSolution {
17 0 : static constexpr size_t volume_dim = Dim;
18 :
19 : template <typename DataType>
20 0 : using tags = tmpl::push_back<
21 : typename gr::AnalyticSolution<Dim>::template tags<DataType>,
22 : hydro::Tags::RestMassDensity<DataType>,
23 : hydro::Tags::ElectronFraction<DataType>,
24 : hydro::Tags::SpecificInternalEnergy<DataType>,
25 : hydro::Tags::Temperature<DataType>, hydro::Tags::Pressure<DataType>,
26 : hydro::Tags::SpatialVelocity<DataType, Dim>,
27 : hydro::Tags::MagneticField<DataType, Dim>,
28 : hydro::Tags::DivergenceCleaningField<DataType>,
29 : hydro::Tags::LorentzFactor<DataType>,
30 : hydro::Tags::SpecificEnthalpy<DataType>>;
31 : };
32 :
33 : /*!
34 : * \ingroup AnalyticSolutionsGroup
35 : * \brief Holds classes implementing a solution to the relativistic Euler
36 : * system.
37 : */
38 : namespace Solutions {}
39 : } // namespace RelativisticEuler
|