SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/NewtonianEuler - Tags.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 33.3 % 39 13
Test Date: 2026-10-22 17:29:42
Legend: Lines:     hit not hit

            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/NewtonianEuler/Sources/Source.hpp"
      12              : #include "Evolution/Systems/NewtonianEuler/TagsDeclarations.hpp"
      13              : #include "Evolution/Tags.hpp"
      14              : #include "Options/String.hpp"
      15              : 
      16              : /// \cond
      17              : class DataVector;
      18              : /// \endcond
      19              : 
      20              : namespace NewtonianEuler {
      21              : /// %OptionTags for the conservative formulation of the Newtonian Euler system
      22            1 : namespace OptionTags {
      23              : template <size_t Dim>
      24            0 : struct SourceTerm {
      25            0 :   using type = std::unique_ptr<NewtonianEuler::Sources::Source<Dim>>;
      26            0 :   static constexpr Options::String help = "The source term to be used.";
      27            0 :   using group = ::evolution::OptionTags::SystemGroup;
      28              : };
      29              : }  // namespace OptionTags
      30              : 
      31              : /// %Tags for the conservative formulation of the Newtonian Euler system
      32              : namespace Tags {
      33              : /// The mass density of the fluid (as a conservative variable).
      34            1 : struct MassDensityCons : db::SimpleTag {
      35            0 :   using type = Scalar<DataVector>;
      36              : };
      37              : 
      38              : /// The momentum density of the fluid.
      39              : template <size_t Dim, typename Fr>
      40            1 : struct MomentumDensity : db::SimpleTag {
      41            0 :   using type = tnsr::I<DataVector, Dim, Fr>;
      42            0 :   static std::string name() { return Frame::prefix<Fr>() + "MomentumDensity"; }
      43              : };
      44              : 
      45              : /// The energy density of the fluid.
      46            1 : struct EnergyDensity : db::SimpleTag {
      47            0 :   using type = Scalar<DataVector>;
      48              : };
      49              : 
      50              : /// The sound speed.
      51              : template <typename DataType>
      52            1 : struct SoundSpeed : db::SimpleTag {
      53            0 :   using type = Scalar<DataType>;
      54              : };
      55              : 
      56              : /// The characteristic speeds.
      57              : template <size_t Dim>
      58            1 : struct CharacteristicSpeeds : db::SimpleTag {
      59            0 :   using type = std::array<DataVector, Dim + 2>;
      60              : };
      61              : 
      62              : /// @{
      63              : /// The characteristic fields of the NewtonianEuler system.
      64            1 : struct VMinus : db::SimpleTag {
      65            0 :   using type = Scalar<DataVector>;
      66              : };
      67              : template <size_t Dim>
      68            0 : struct VMomentum : db::SimpleTag {
      69            0 :   using type = tnsr::I<DataVector, Dim>;
      70              : };
      71            0 : struct VPlus : db::SimpleTag {
      72            0 :   using type = Scalar<DataVector>;
      73              : };
      74              : /// @}
      75              : 
      76              : /// The internal energy density.
      77              : template <typename DataType>
      78            1 : struct InternalEnergyDensity : db::SimpleTag {
      79            0 :   using type = Scalar<DataType>;
      80              : };
      81              : 
      82              : /// The kinetic energy density.
      83              : template <typename DataType>
      84            1 : struct KineticEnergyDensity : db::SimpleTag {
      85            0 :   using type = Scalar<DataType>;
      86              : };
      87              : 
      88              : /// The local Mach number of the flow
      89              : template <typename DataType>
      90            1 : struct MachNumber : db::SimpleTag {
      91            0 :   using type = Scalar<DataType>;
      92              : };
      93              : 
      94              : /// The ram pressure of the fluid.
      95              : template <typename DataType, size_t Dim, typename Fr>
      96            1 : struct RamPressure : db::SimpleTag {
      97            0 :   using type = tnsr::II<DataType, Dim, Fr>;
      98            0 :   static std::string name() { return Frame::prefix<Fr>() + "RamPressure"; }
      99              : };
     100              : 
     101              : /// The specific kinetic energy.
     102              : template <typename DataType>
     103            1 : struct SpecificKineticEnergy : db::SimpleTag {
     104            0 :   using type = Scalar<DataType>;
     105              : };
     106              : 
     107              : /// The source term in the evolution equations
     108              : template <size_t Dim>
     109            1 : struct SourceTerm : db::SimpleTag {
     110            0 :   using type = std::unique_ptr<NewtonianEuler::Sources::Source<Dim>>;
     111              : 
     112            0 :   using option_tags = tmpl::list<OptionTags::SourceTerm<Dim>>;
     113              : 
     114            0 :   static constexpr bool pass_metavariables = false;
     115            0 :   static type create_from_options(const type& source_term) {
     116              :     return source_term->get_clone();
     117              :   }
     118              : };
     119              : 
     120              : }  // namespace Tags
     121              : }  // namespace NewtonianEuler
        

Generated by: LCOV version 2.0-1