SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Particles/MonteCarlo - Tags.hpp Hit Total Coverage
Commit: 6e1258ccd353220e12442198913007fb6c170b6b Lines: 5 11 45.5 %
Date: 2024-10-23 19:54:13
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 <random>
       7             : #include <vector>
       8             : 
       9             : #include "DataStructures/DataBox/Tag.hpp"
      10             : #include "DataStructures/Tensor/TypeAliases.hpp"
      11             : #include "Evolution/Particles/MonteCarlo/NeutrinoInteractionTable.hpp"
      12             : #include "Evolution/Particles/MonteCarlo/Packet.hpp"
      13             : 
      14             : /// Items related to the evolution of particles
      15             : /// Items related to Monte-Carlo radiation transport
      16             : /// Tags for MC
      17             : namespace Particles::MonteCarlo::Tags {
      18             : 
      19             : /// Simple tag containing the vector of Monte-Carlo
      20             : /// packets belonging to an element.
      21           1 : struct PacketsOnElement : db::SimpleTag {
      22           0 :   using type = std::vector<Particles::MonteCarlo::Packet>;
      23             : };
      24             : 
      25             : /// Simple tag containing an approximation of the light
      26             : /// crossing time for each cell (the shortest time among
      27             : /// all coordinate axis directions).
      28             : template <typename DataType>
      29           1 : struct CellLightCrossingTime : db::SimpleTag {
      30           0 :   using type = Scalar<DataType>;
      31             : };
      32             : 
      33             : /// Simple tag storing the random number generator
      34             : /// used by Monte-Carlo
      35           1 : struct RandomNumberGenerator : db::SimpleTag {
      36           0 :   using type = std::mt19937;
      37             : };
      38             : 
      39             : /// Simple tag containing the desired energy of
      40             : /// packets in low-density regions. The energy
      41             : /// can be different for each neutrino species.
      42             : template <size_t NeutrinoSpecies>
      43           1 : struct DesiredPacketEnergyAtEmission : db::SimpleTag {
      44           0 :   using type = std::array<DataVector, NeutrinoSpecies>;
      45             : };
      46             : 
      47             : /// Simple tag for the table of neutrino-matter interaction
      48             : /// rates (emission, absorption and scattering for each
      49             : /// energy bin and neutrino species).
      50             : template <size_t EnergyBins, size_t NeutrinoSpecies>
      51           1 : struct InteractionRatesTable : db::SimpleTag {
      52           0 :   using type =
      53             :       std::unique_ptr<NeutrinoInteractionTable<EnergyBins, NeutrinoSpecies>>;
      54             : };
      55             : 
      56             : }  // namespace Particles::MonteCarlo::Tags

Generated by: LCOV version 1.14