SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/RadiationTransport/M1Grey - TimeDerivativeTerms.hpp Hit Total Coverage
Commit: 3c072f0ce967e2e56649d3fa12aa2a0e4fe2a42e Lines: 0 7 0.0 %
Date: 2024-04-23 20:50:18
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/Systems/RadiationTransport/M1Grey/Fluxes.hpp"
      13             : #include "Evolution/Systems/RadiationTransport/M1Grey/Sources.hpp"
      14             : #include "Evolution/Systems/RadiationTransport/M1Grey/Tags.hpp"
      15             : #include "NumericalAlgorithms/LinearOperators/PartialDerivatives.hpp"
      16             : #include "PointwiseFunctions/GeneralRelativity/Tags.hpp"
      17             : #include "Utilities/Gsl.hpp"
      18             : #include "Utilities/TMPL.hpp"
      19             : 
      20             : namespace RadiationTransport::M1Grey {
      21             : template <typename... NeutrinoSpecies>
      22           0 : struct TimeDerivativeTerms {
      23           0 :   struct TildeSUp : db::SimpleTag {
      24           0 :     using type = tnsr::I<DataVector, 3, Frame::Inertial>;
      25             :   };
      26             : 
      27           0 :   using temporary_tags =
      28             :       tmpl::list<TildeSUp, gr::Tags::InverseSpatialMetric<DataVector, 3>>;
      29           0 :   using argument_tags = tmpl::list<
      30             :       Tags::TildeE<Frame::Inertial, NeutrinoSpecies>...,
      31             :       Tags::TildeS<Frame::Inertial, NeutrinoSpecies>...,
      32             :       Tags::TildeP<Frame::Inertial, NeutrinoSpecies>...,
      33             :       gr::Tags::Lapse<DataVector>, gr::Tags::Shift<DataVector, 3>,
      34             :       gr::Tags::SpatialMetric<DataVector, 3>,
      35             :       gr::Tags::InverseSpatialMetric<DataVector, 3>,
      36             : 
      37             :       Tags::M1HydroCouplingNormal<NeutrinoSpecies>...,
      38             :       Tags::M1HydroCouplingSpatial<Frame::Inertial, NeutrinoSpecies>...,
      39             :       ::Tags::deriv<gr::Tags::Lapse<DataVector>, tmpl::size_t<3>,
      40             :                     Frame::Inertial>,
      41             :       ::Tags::deriv<gr::Tags::Shift<DataVector, 3>, tmpl::size_t<3>,
      42             :                     Frame::Inertial>,
      43             :       ::Tags::deriv<gr::Tags::SpatialMetric<DataVector, 3>, tmpl::size_t<3>,
      44             :                     Frame::Inertial>,
      45             :       gr::Tags::ExtrinsicCurvature<DataVector, 3>>;
      46             : 
      47           0 :   static void apply(
      48             :       const gsl::not_null<typename Tags::TildeE<
      49             :           Frame::Inertial,
      50             :           NeutrinoSpecies>::type*>... non_flux_terms_dt_tilde_e,
      51             :       const gsl::not_null<typename Tags::TildeS<
      52             :           Frame::Inertial,
      53             :           NeutrinoSpecies>::type*>... non_flux_terms_dt_tilde_s,
      54             : 
      55             :       const gsl::not_null<typename ::Tags::Flux<
      56             :           Tags::TildeE<Frame::Inertial, NeutrinoSpecies>, tmpl::size_t<3>,
      57             :           Frame::Inertial>::type*>... tilde_e_flux,
      58             :       const gsl::not_null<typename ::Tags::Flux<
      59             :           Tags::TildeS<Frame::Inertial, NeutrinoSpecies>, tmpl::size_t<3>,
      60             :           Frame::Inertial>::type*>... tilde_s_flux,
      61             : 
      62             :       const gsl::not_null<tnsr::I<DataVector, 3, Frame::Inertial>*> tilde_s_M,
      63             :       const gsl::not_null<tnsr::II<DataVector, 3, Frame::Inertial>*>
      64             :           temp_inv_spatial_metric,
      65             : 
      66             :       const typename Tags::TildeE<Frame::Inertial,
      67             :                                   NeutrinoSpecies>::type&... tilde_e,
      68             :       const typename Tags::TildeS<Frame::Inertial,
      69             :                                   NeutrinoSpecies>::type&... tilde_s,
      70             :       const typename Tags::TildeP<Frame::Inertial,
      71             :                                   NeutrinoSpecies>::type&... tilde_p,
      72             :       const Scalar<DataVector>& lapse,
      73             :       const tnsr::I<DataVector, 3, Frame::Inertial>& shift,
      74             :       const tnsr::ii<DataVector, 3, Frame::Inertial>& spatial_metric,
      75             :       const tnsr::II<DataVector, 3, Frame::Inertial>& inv_spatial_metric,
      76             : 
      77             :       const typename Tags::M1HydroCouplingNormal<
      78             :           NeutrinoSpecies>::type&... source_n,
      79             :       const typename Tags::M1HydroCouplingSpatial<
      80             :           Frame::Inertial, NeutrinoSpecies>::type&... source_i,
      81             :       const tnsr::i<DataVector, 3>& d_lapse,
      82             :       const tnsr::iJ<DataVector, 3>& d_shift,
      83             :       const tnsr::ijj<DataVector, 3>& d_spatial_metric,
      84             :       const tnsr::ii<DataVector, 3>& extrinsic_curvature) {
      85             :     *temp_inv_spatial_metric = inv_spatial_metric;
      86             :     EXPAND_PACK_LEFT_TO_RIGHT(detail::compute_fluxes_impl(
      87             :         tilde_e_flux, tilde_s_flux, tilde_s_M, tilde_e, tilde_s, tilde_p, lapse,
      88             :         shift, spatial_metric, inv_spatial_metric));
      89             :     EXPAND_PACK_LEFT_TO_RIGHT(detail::compute_sources_impl(
      90             :         non_flux_terms_dt_tilde_e, non_flux_terms_dt_tilde_s, tilde_e, tilde_s,
      91             :         tilde_p, source_n, source_i, lapse, d_lapse, d_shift, d_spatial_metric,
      92             :         inv_spatial_metric, extrinsic_curvature));
      93             :   }
      94             : };
      95             : }  // namespace RadiationTransport::M1Grey

Generated by: LCOV version 1.14