SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/RadiationTransport/M1Grey - Tags.hpp Coverage Total Hit
Commit: cc5b83499fe165ca4dd2648641bbec43af94d464 Lines: 33.3 % 42 14
Test Date: 2026-10-06 18:49:30
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              : 
      12              : #include "Evolution/Systems/RadiationTransport/Tags.hpp"
      13              : 
      14              : class DataVector;
      15              : 
      16              : /// Namespace for all radiation transport algorithms
      17              : namespace RadiationTransport {
      18              : /// Namespace for the grey-M1 radiation transport scheme
      19              : namespace M1Grey {
      20              : /// %Tags for the evolution of neutrinos using a grey M1 scheme.
      21              : namespace Tags {
      22              : 
      23              : /// The characteristic speeds
      24            1 : struct CharacteristicSpeeds : db::SimpleTag {
      25            0 :   using type = std::array<DataVector, 4>;
      26              : };
      27              : 
      28              : /// The densitized energy density of neutrinos of a given species
      29              : /// \f${\tilde E}\f$
      30              : template <typename Fr, class Species>
      31            1 : struct TildeE : db::SimpleTag {
      32            0 :   using type = Scalar<DataVector>;
      33            0 :   static std::string name() {
      34              :     return Frame::prefix<Fr>() + "TildeE_" + neutrinos::get_name(Species{});
      35              :   }
      36              : };
      37              : 
      38              : /// The densitized momentum density of neutrinos of a given species
      39              : /// \f${\tilde S_i}\f$
      40              : template <typename Fr, class Species>
      41            1 : struct TildeS : db::SimpleTag {
      42            0 :   using type = tnsr::i<DataVector, 3, Fr>;
      43            0 :   static std::string name() {
      44              :     return Frame::prefix<Fr>() + "TildeS_" + neutrinos::get_name(Species{});
      45              :   }
      46              : };
      47              : 
      48              : /// The densitized pressure tensor of neutrinos of a given species
      49              : /// \f${\tilde P^{ij}}\f$
      50              : /// computed from \f${\tilde E}\f$, \f${\tilde S_i}\f$ using the M1 closure
      51              : template <typename Fr, class Species>
      52            1 : struct TildeP : db::SimpleTag {
      53            0 :   using type = tnsr::II<DataVector, 3, Fr>;
      54            0 :   static std::string name() {
      55              :     return Frame::prefix<Fr>() + "TildeP_" + neutrinos::get_name(Species{});
      56              :   }
      57              : };
      58              : 
      59              : /// The upper index momentum density of a neutrino species.
      60              : ///
      61              : /// This tag does not know the species of neutrinos being used.
      62              : /// \f${\tilde S^i}\f$
      63              : template <typename Fr>
      64            1 : struct TildeSVector : db::SimpleTag {
      65            0 :   using type = tnsr::I<DataVector, 3, Fr>;
      66            0 :   static std::string name() { return Frame::prefix<Fr>() + "TildeSVector"; }
      67              : };
      68              : 
      69              : /// The M1 closure factor of neutrinos of
      70              : /// a given species \f${\xi}\f$
      71              : template <class Species>
      72            1 : struct ClosureFactor : db::SimpleTag {
      73            0 :   using type = Scalar<DataVector>;
      74            0 :   static std::string name() {
      75              :     return "ClosureFactor_" + neutrinos::get_name(Species{});
      76              :   }
      77              : };
      78              : 
      79              : /// The fluid-frame densitized energy density of neutrinos of
      80              : /// a given species \f${\tilde J}\f$
      81              : template <class Species>
      82            1 : struct TildeJ : db::SimpleTag {
      83            0 :   using type = Scalar<DataVector>;
      84            0 :   static std::string name() {
      85              :     return "TildeJ_" + neutrinos::get_name(Species{});
      86              :   }
      87              : };
      88              : 
      89              : /// The normal component of the fluid-frame momentum density of neutrinos of
      90              : /// a given species \f${\tilde H}^a t_a\f$
      91              : template <class Species>
      92            1 : struct TildeHNormal : db::SimpleTag {
      93            0 :   using type = Scalar<DataVector>;
      94            0 :   static std::string name() {
      95              :     return "TildeHNormal_" + neutrinos::get_name(Species{});
      96              :   }
      97              : };
      98              : 
      99              : /// The spatial components of the fluid-frame momentum density of neutrinos of
     100              : /// a given species \f${\tilde H}^a {\gamma}_{ia}\f$
     101              : template <typename Fr, class Species>
     102            1 : struct TildeHSpatial : db::SimpleTag {
     103            0 :   using type = tnsr::i<DataVector, 3, Fr>;
     104            0 :   static std::string name() {
     105              :     return Frame::prefix<Fr>() + "TildeHSpatial_" +
     106              :            neutrinos::get_name(Species{});
     107              :   }
     108              : };
     109              : 
     110              : /// The emissivity of the fluid for neutrinos of a given species.
     111              : ///
     112              : /// By convention, this is the emitted energy per unit volume.
     113              : template <class Species>
     114            1 : struct GreyEmissivity : db::SimpleTag {
     115            0 :   using type = Scalar<DataVector>;
     116            0 :   static std::string name() {
     117              :     return "GreyEmissivity_" + neutrinos::get_name(Species{});
     118              :   }
     119              : };
     120              : 
     121              : /// The absorption opacity of the fluid for neutrinos of a
     122              : /// given species.
     123              : ///
     124              : /// As c=1, this is both the absorption per unit length
     125              : /// and per unit time.
     126              : template <class Species>
     127            1 : struct GreyAbsorptionOpacity : db::SimpleTag {
     128            0 :   using type = Scalar<DataVector>;
     129            0 :   static std::string name() {
     130              :     return "GreyAbsorptionOpacity_" + neutrinos::get_name(Species{});
     131              :   }
     132              : };
     133              : 
     134              : /// The scattering opacity of the fluid for neutrinos of a
     135              : /// given species.
     136              : ///
     137              : /// As c=1, this is both the absorption per unit length and per unit time.
     138              : template <class Species>
     139            1 : struct GreyScatteringOpacity : db::SimpleTag {
     140            0 :   using type = Scalar<DataVector>;
     141            0 :   static std::string name() {
     142              :     return "GreyScatteringOpacity_" + neutrinos::get_name(Species{});
     143              :   }
     144              : };
     145              : 
     146              : /// The normal component of the source term coupling the M1 and hydro equations.
     147              : ///
     148              : /// This is the source term for the evolution of \f${\tilde E}\f$ (by
     149              : /// convention, added with a positive sign to \f${\tilde E}\f$ and a negative
     150              : /// sign to the hydro variable \f${\tilde \tau}\f$)
     151              : template <class Species>
     152            1 : struct M1HydroCouplingNormal : db::SimpleTag {
     153            0 :   using type = Scalar<DataVector>;
     154            0 :   static std::string name() {
     155              :     return "M1HydroCouplingNormal_" + neutrinos::get_name(Species{});
     156              :   }
     157              : };
     158              : 
     159              : /// The spatial components of source term coupling the M1 and hydro equations.
     160              : ///
     161              : /// i.e. \f${\tilde G}^a \gamma_{ia}\f$.
     162              : /// This is the source term for the evolution of \f${\tilde S}_i\f$ (by
     163              : /// convention, added with a positive sign to the neutrino \f${\tilde S}_i\f$
     164              : /// and a negative sign to the hydro variable \f${\tilde S}_i\f$)
     165              : template <typename Fr, class Species>
     166            1 : struct M1HydroCouplingSpatial : db::SimpleTag {
     167            0 :   using type = tnsr::i<DataVector, 3, Fr>;
     168            0 :   static std::string name() {
     169              :     return Frame::prefix<Fr>() + "M1HydroCouplingSpatial_" +
     170              :            neutrinos::get_name(Species{});
     171              :   }
     172              : };
     173              : 
     174              : }  // namespace Tags
     175              : }  // namespace M1Grey
     176              : }  // namespace RadiationTransport
        

Generated by: LCOV version 2.0-1