SpECTRE  v2024.04.12
RadiationTransport::M1Grey::ComputeSources< NeutrinoSpecies > Struct Template Reference

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)
 

Detailed Description

template<typename... NeutrinoSpecies>
struct RadiationTransport::M1Grey::ComputeSources< NeutrinoSpecies >

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.


The documentation for this struct was generated from the following file: