SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/RadiationTransport/M1Grey - TimeDerivativeTerms.hpp Hit Total Coverage
Commit: 1f2210958b4f38fdc0400907ee7c6d5af5111418 Lines: 0 7 0.0 %
Date: 2025-12-05 05:03:31
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 <array>
       7             : 
       8             : #include "DataStructures/DataBox/DataBoxTag.hpp"
       9             : #include "DataStructures/DataBox/Prefixes.hpp"
      10             : #include "DataStructures/DataVector.hpp"
      11             : #include "DataStructures/Tensor/Tensor.hpp"
      12             : #include "Evolution/DiscontinuousGalerkin/TimeDerivativeDecisions.hpp"
      13             : #include "Evolution/Systems/RadiationTransport/M1Grey/Fluxes.hpp"
      14             : #include "Evolution/Systems/RadiationTransport/M1Grey/Sources.hpp"
      15             : #include "Evolution/Systems/RadiationTransport/M1Grey/Tags.hpp"
      16             : #include "NumericalAlgorithms/LinearOperators/PartialDerivatives.hpp"
      17             : #include "PointwiseFunctions/GeneralRelativity/Tags.hpp"
      18             : #include "PointwiseFunctions/Hydro/Tags.hpp"
      19             : #include "Utilities/Gsl.hpp"
      20             : #include "Utilities/TMPL.hpp"
      21             : 
      22             : namespace RadiationTransport::M1Grey {
      23             : template <typename... NeutrinoSpecies>
      24           0 : struct TimeDerivativeTerms {
      25           0 :   struct TildeSUp : db::SimpleTag {
      26           0 :     using type = tnsr::I<DataVector, 3, Frame::Inertial>;
      27             :   };
      28             : 
      29           0 :   using temporary_tags =
      30             :       tmpl::list<TildeSUp, gr::Tags::InverseSpatialMetric<DataVector, 3>>;
      31           0 :   using argument_tags =
      32             :       tmpl::list<Tags::TildeE<Frame::Inertial, NeutrinoSpecies>...,
      33             :                  Tags::TildeS<Frame::Inertial, NeutrinoSpecies>...,
      34             :                  Tags::TildeP<Frame::Inertial, NeutrinoSpecies>...,
      35             :                  gr::Tags::Lapse<DataVector>, gr::Tags::Shift<DataVector, 3>,
      36             :                  gr::Tags::SpatialMetric<DataVector, 3>,
      37             :                  gr::Tags::InverseSpatialMetric<DataVector, 3>,
      38             :                  ::Tags::deriv<gr::Tags::Lapse<DataVector>, tmpl::size_t<3>,
      39             :                                Frame::Inertial>,
      40             :                  ::Tags::deriv<gr::Tags::Shift<DataVector, 3>, tmpl::size_t<3>,
      41             :                                Frame::Inertial>,
      42             :                  ::Tags::deriv<gr::Tags::SpatialMetric<DataVector, 3>,
      43             :                                tmpl::size_t<3>, Frame::Inertial>,
      44             :                  gr::Tags::ExtrinsicCurvature<DataVector, 3>,
      45             :                  Tags::GreyEmissivity<NeutrinoSpecies>...,
      46             :                  Tags::GreyAbsorptionOpacity<NeutrinoSpecies>...,
      47             :                  Tags::GreyScatteringOpacity<NeutrinoSpecies>...,
      48             :                  Tags::TildeJ<NeutrinoSpecies>...,
      49             :                  Tags::TildeHNormal<NeutrinoSpecies>...,
      50             :                  Tags::TildeHSpatial<Frame::Inertial, NeutrinoSpecies>...,
      51             :                  hydro::Tags::SpatialVelocity<DataVector, 3>,
      52             :                  hydro::Tags::LorentzFactor<DataVector>,
      53             :                  gr::Tags::SqrtDetSpatialMetric<DataVector>>;
      54             : 
      55           0 :   static ::evolution::dg::TimeDerivativeDecisions<3> apply(
      56             :       const gsl::not_null<typename Tags::TildeE<
      57             :           Frame::Inertial,
      58             :           NeutrinoSpecies>::type*>... non_flux_terms_dt_tilde_e,
      59             :       const gsl::not_null<typename Tags::TildeS<
      60             :           Frame::Inertial,
      61             :           NeutrinoSpecies>::type*>... non_flux_terms_dt_tilde_s,
      62             : 
      63             :       const gsl::not_null<typename ::Tags::Flux<
      64             :           Tags::TildeE<Frame::Inertial, NeutrinoSpecies>, tmpl::size_t<3>,
      65             :           Frame::Inertial>::type*>... tilde_e_flux,
      66             :       const gsl::not_null<typename ::Tags::Flux<
      67             :           Tags::TildeS<Frame::Inertial, NeutrinoSpecies>, tmpl::size_t<3>,
      68             :           Frame::Inertial>::type*>... tilde_s_flux,
      69             : 
      70             :       const gsl::not_null<tnsr::I<DataVector, 3, Frame::Inertial>*> tilde_s_M,
      71             :       const gsl::not_null<tnsr::II<DataVector, 3, Frame::Inertial>*>
      72             :           temp_inv_spatial_metric,
      73             : 
      74             :       const typename Tags::TildeE<Frame::Inertial,
      75             :                                   NeutrinoSpecies>::type&... tilde_e,
      76             :       const typename Tags::TildeS<Frame::Inertial,
      77             :                                   NeutrinoSpecies>::type&... tilde_s,
      78             :       const typename Tags::TildeP<Frame::Inertial,
      79             :                                   NeutrinoSpecies>::type&... tilde_p,
      80             :       const Scalar<DataVector>& lapse,
      81             :       const tnsr::I<DataVector, 3, Frame::Inertial>& shift,
      82             :       const tnsr::ii<DataVector, 3, Frame::Inertial>& spatial_metric,
      83             :       const tnsr::II<DataVector, 3, Frame::Inertial>& inv_spatial_metric,
      84             :       const tnsr::i<DataVector, 3>& d_lapse,
      85             :       const tnsr::iJ<DataVector, 3>& d_shift,
      86             :       const tnsr::ijj<DataVector, 3>& d_spatial_metric,
      87             :       const tnsr::ii<DataVector, 3>& extrinsic_curvature,
      88             :       const Scalar<DataVector>& emissivity,
      89             :       const Scalar<DataVector>& absorption_opacity,
      90             :       const Scalar<DataVector>& scattering_opacity,
      91             :       const typename Tags::TildeJ<NeutrinoSpecies>::type&... tilde_j,
      92             :       const typename Tags::TildeHNormal<
      93             :           NeutrinoSpecies>::type&... tilde_h_normal,
      94             :       const typename Tags::TildeHSpatial<
      95             :           Frame::Inertial, NeutrinoSpecies>::type&... tilde_h_spatial,
      96             :       const tnsr::I<DataVector, 3>& spatial_velocity,
      97             :       const Scalar<DataVector>& lorentz,
      98             :       const Scalar<DataVector>& sqrt_det_spatial_metric) {
      99             :     *temp_inv_spatial_metric = inv_spatial_metric;
     100             :     EXPAND_PACK_LEFT_TO_RIGHT(detail::compute_fluxes_impl(
     101             :         tilde_e_flux, tilde_s_flux, tilde_s_M, tilde_e, tilde_s, tilde_p, lapse,
     102             :         shift, spatial_metric, inv_spatial_metric));
     103             :     EXPAND_PACK_LEFT_TO_RIGHT(detail::compute_sources_impl(
     104             :         non_flux_terms_dt_tilde_e, non_flux_terms_dt_tilde_s, tilde_e, tilde_s,
     105             :         tilde_p, lapse, d_lapse, d_shift, d_spatial_metric, inv_spatial_metric,
     106             :         extrinsic_curvature, spatial_metric, emissivity, absorption_opacity,
     107             :         scattering_opacity, tilde_j, tilde_h_normal, tilde_h_spatial,
     108             :         spatial_velocity, lorentz, sqrt_det_spatial_metric));
     109             :     return {true};
     110             :   }
     111             : };
     112             : }  // namespace RadiationTransport::M1Grey

Generated by: LCOV version 1.14