|
SpECTRE
v2025.08.19
|
Compute the curvature source terms for the flux-balanced grey M1 radiation transport. More...
#include <Sources.hpp>
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 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, const tnsr::ii< DataVector, 3 > &spatial_metric, const Scalar< DataVector > &emissivity, const Scalar< DataVector > &absorption_opacity, const Scalar< DataVector > &scattering_opacity, const typename Tags::TildeJ< NeutrinoSpecies >::type &... tilde_j, const typename Tags::TildeHNormal< NeutrinoSpecies >::type &... tilde_h_normal, const typename Tags::TildeHSpatial< Frame::Inertial, NeutrinoSpecies >::type &... tilde_h_spatial, const tnsr::I< DataVector, 3 > &spatial_velocity, const Scalar< DataVector > &lorentz, const Scalar< DataVector > &sqrt_det_spatial_metric) |
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.