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 : #include <string> 8 : 9 : #include "DataStructures/DataBox/Tag.hpp" 10 : #include "DataStructures/Tensor/TypeAliases.hpp" 11 : #include "Evolution/Systems/RelativisticEuler/Valencia/TagsDeclarations.hpp" 12 : 13 : /// \cond 14 : class DataVector; 15 : /// \endcond 16 : 17 : namespace RelativisticEuler { 18 : namespace Valencia { 19 : /// %Tags for the Valencia formulation of the relativistic Euler system. 20 : namespace Tags { 21 : /// The characteristic speeds 22 : template <size_t Dim> 23 1 : struct CharacteristicSpeeds : db::SimpleTag { 24 0 : using type = std::array<DataVector, Dim + 2>; 25 : }; 26 : 27 : /// The densitized rest-mass density \f${\tilde D}\f$ 28 1 : struct TildeD : db::SimpleTag { 29 0 : using type = Scalar<DataVector>; 30 : }; 31 : 32 : /// The densitized energy density \f${\tilde \tau}\f$ 33 1 : struct TildeTau : db::SimpleTag { 34 0 : using type = Scalar<DataVector>; 35 : }; 36 : 37 : /// The densitized momentum density \f${\tilde S_i}\f$ 38 : template <size_t Dim, typename Fr> 39 1 : struct TildeS : db::SimpleTag { 40 0 : using type = tnsr::i<DataVector, Dim, Fr>; 41 0 : static std::string name() { return Frame::prefix<Fr>() + "TildeS"; } 42 : }; 43 : 44 : } // namespace Tags 45 : } // namespace Valencia 46 : } // namespace RelativisticEuler