System.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <cstddef>
7 
8 #include "DataStructures/Tensor/EagerMath/Magnitude.hpp"
10 #include "Evolution/Conservative/ConservativeDuDt.hpp"
11 #include "Evolution/Systems/RadiationTransport/M1Grey/Characteristics.hpp"
12 #include "Evolution/Systems/RadiationTransport/M1Grey/Fluxes.hpp"
13 #include "Evolution/Systems/RadiationTransport/M1Grey/Sources.hpp"
14 #include "Evolution/Systems/RadiationTransport/M1Grey/Tags.hpp"
15 #include "PointwiseFunctions/GeneralRelativity/Tags.hpp"
16 #include "PointwiseFunctions/Hydro/Tags.hpp"
17 #include "Utilities/TMPL.hpp"
18 
19 namespace Tags {
20 template <class>
21 class Variables;
22 } // namespace Tags
23 
24 /// \ingroup EvolutionSystemsGroup
25 /// \brief Items related to general relativistic radiation transport
26 namespace RadiationTransport {
27 /// The M1 scheme for radiation transport
28 ///
29 /// References:
30 /// - Post-merger evolution of a neutron star-black hole binary with
31 /// neutrino transport, \cite Foucart2015vpa
32 namespace M1Grey {
33 
34 template <typename NeutrinoSpeciesList>
35 struct System;
36 
37 template <typename... NeutrinoSpecies>
38 struct System<tmpl::list<NeutrinoSpecies...>> {
39  static constexpr bool is_in_flux_conservative_form = true;
40  static constexpr bool has_primitive_and_conservative_vars = false;
41  static constexpr size_t volume_dim = 3;
42  // If coupling to hydro, we'll want 3D equations of state
43  // i.e. P(rho,T,Ye)... but this is not implemented yet.
44  // For early tests of M1, we'll ignore coupling to the fluid
45  // and provide analytical expressions for its 4-velocity / LorentzFactor
46  //static constexpr size_t thermodynamic_dim = 3;
47 
49  tmpl::list<Tags::TildeE<Frame::Inertial, NeutrinoSpecies>...,
51 
52  using spacetime_variables_tag = ::Tags::Variables<tmpl::list<
57  ::Tags::deriv<gr::Tags::Lapse<DataVector>, tmpl::size_t<3>,
59  ::Tags::deriv<gr::Tags::Shift<3, Frame::Inertial, DataVector>,
60  tmpl::size_t<3>, Frame::Inertial>,
61  ::Tags::deriv<gr::Tags::SpatialMetric<3, Frame::Inertial, DataVector>,
62  tmpl::size_t<3>, Frame::Inertial>,
64 
66  tmpl::list<hydro::Tags::LorentzFactor<DataVector>,
68 
69  using primitive_variables_tag = ::Tags::Variables<tmpl::list<
74 
75  template <typename Tag>
77  Tag, gr::Tags::InverseSpatialMetric<3, Frame::Inertial, DataVector>>;
78 
80 
81  using volume_fluxes = ComputeFluxes<NeutrinoSpecies...>;
82 
83  using volume_sources = ComputeSources<NeutrinoSpecies...>;
84 
86 
87  using sourced_variables =
88  tmpl::list<Tags::TildeE<Frame::Inertial, NeutrinoSpecies>...,
90 };
91 } // namespace M1Grey
92 } // namespace RadiationTransport
Definition: Variables.hpp:46
The spatial velocity of the fluid, where . Here is the spatial part of the 4-velocity of the fluid...
Definition: Tags.hpp:157
Definition: Digraph.hpp:11
The M1 closure factor of neutrinos of a given species .
Definition: Tags.hpp:74
Items related to general relativistic radiation transport.
Definition: Characteristics.hpp:20
Definition: Tags.hpp:59
The densitized pressure tensor of neutrinos of a given species computed from , using the M1 closure...
Definition: Tags.hpp:53
Inverse of the spatial metric.
Definition: Tags.hpp:36
Compute the characteristic speeds for the M1 system.
Definition: Characteristics.hpp:53
Compute the curvature source terms for the flux-balanced grey M1 radiation transport.
Definition: Sources.hpp:75
Calculate for a conservative system.
Definition: ConservativeDuDt.hpp:26
The densitized momentum density of neutrinos of a given species .
Definition: Tags.hpp:42
The fluid-frame densitized energy density of neutrinos of a given species .
Definition: Tags.hpp:84
The normal component of the fluid-frame momentum density of neutrinos of a given species ...
Definition: Tags.hpp:94
Definition: Tags.hpp:28
Defines class Variables.
Definition: Tags.hpp:54
Definition: DataBoxTag.hpp:29
Definition: System.hpp:35
Wraps the template metaprogramming library used (brigand)
The magnitude of a (co)vector with respect to a specific metric.
Definition: Magnitude.hpp:90
Definition: IndexType.hpp:44
The spatial components of the fluid-frame momentum density of neutrinos of a given species ...
Definition: Tags.hpp:104
The fluxes of the conservative variables in the M1 scheme.
Definition: Fluxes.hpp:61
Definition: Tags.hpp:148