SpECTRE
v2024.05.11
|
Compute the curvature source terms for the flux-balanced grey M1 radiation transport. More...
#include <Sources.hpp>
Public Types | |
using | return_tags = tmpl::list< ::Tags::Source< Tags::TildeE< Frame::Inertial, NeutrinoSpecies > >..., ::Tags::Source< Tags::TildeS< Frame::Inertial, NeutrinoSpecies > >... > |
using | argument_tags = tmpl::list< Tags::TildeE< Frame::Inertial, NeutrinoSpecies >..., Tags::TildeS< Frame::Inertial, NeutrinoSpecies >..., Tags::TildeP< Frame::Inertial, NeutrinoSpecies >..., Tags::M1HydroCouplingNormal< NeutrinoSpecies >..., Tags::M1HydroCouplingSpatial< Frame::Inertial, NeutrinoSpecies >..., gr::Tags::Lapse< DataVector >, ::Tags::deriv< gr::Tags::Lapse< DataVector >, tmpl::size_t< 3 >, Frame::Inertial >, ::Tags::deriv< gr::Tags::Shift< DataVector, 3 >, tmpl::size_t< 3 >, Frame::Inertial >, ::Tags::deriv< gr::Tags::SpatialMetric< DataVector, 3 >, tmpl::size_t< 3 >, Frame::Inertial >, gr::Tags::InverseSpatialMetric< DataVector, 3 >, gr::Tags::ExtrinsicCurvature< DataVector, 3 > > |
Static Public Member Functions | |
static void | apply (const gsl::not_null< typename Tags::TildeE< Frame::Inertial, NeutrinoSpecies >::type * >... sources_tilde_e, const gsl::not_null< typename Tags::TildeS< Frame::Inertial, NeutrinoSpecies >::type * >... sources_tilde_s, const typename Tags::TildeE< Frame::Inertial, NeutrinoSpecies >::type &... tilde_e, const typename Tags::TildeS< Frame::Inertial, NeutrinoSpecies >::type &... tilde_s, const typename Tags::TildeP< Frame::Inertial, NeutrinoSpecies >::type &... tilde_p, const typename Tags::M1HydroCouplingNormal< NeutrinoSpecies >::type &... source_n, const typename Tags::M1HydroCouplingSpatial< Frame::Inertial, NeutrinoSpecies >::type &... source_i, const Scalar< DataVector > &lapse, const tnsr::i< DataVector, 3 > &d_lapse, const tnsr::iJ< DataVector, 3 > &d_shift, const tnsr::ijj< DataVector, 3 > &d_spatial_metric, const tnsr::II< DataVector, 3 > &inv_spatial_metric, const tnsr::ii< DataVector, 3 > &extrinsic_curvature) |
Compute the curvature source terms for the flux-balanced grey M1 radiation transport.
A flux-balanced system has the generic form:
\[ \partial_t U_i + \partial_m F^m(U_i) = S(U_i) \]
where \(F^a()\) denotes the flux of a conserved variable \(U_i\) and \(S()\) denotes the source term for the conserved variable.
For the grey M1 formalism (neglecting coupling to the fluid):
\begin{align*} S({\tilde E}) &= \alpha \tilde P^{ij} K_{ij} - \tilde S^i \partial_i \alpha,\\ S({\tilde S_i}) &= -\tilde E \partial_i \alpha + \tilde S_k \partial_i \beta^k + \frac{1}{2} \alpha \tilde P^{jk} \partial_i \gamma_{jk}, \end{align*}
where \({\tilde E}\), \({\tilde S_i}\), \({\tilde P}^{ij}\) are the densitized energy, momentum, and pressure tensor of the neutrinos/photons, \(K_{ij}\) is the extrinsic curvature, and \(\alpha\), \(\beta^i\), \(\gamma_{ij}\) are the lapse, shift and 3-metric.
In the main function, we loop over all neutrino species, and then call the actual implementation of the curvature source terms.