SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/RelativisticEuler/Valencia - Fluxes.hpp Hit Total Coverage
Commit: 664546099c4dbf27a1b708fac45e39c82dd743d2 Lines: 1 5 20.0 %
Date: 2024-04-19 16:28:01
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 <cstddef>
       7             : 
       8             : #include "DataStructures/DataBox/Prefixes.hpp"
       9             : #include "DataStructures/Tensor/TypeAliases.hpp"  // IWYU pragma: keep
      10             : #include "Evolution/Systems/RelativisticEuler/Valencia/TagsDeclarations.hpp"
      11             : #include "PointwiseFunctions/GeneralRelativity/TagsDeclarations.hpp"
      12             : #include "PointwiseFunctions/Hydro/TagsDeclarations.hpp"
      13             : #include "Utilities/TMPL.hpp"
      14             : 
      15             : /// \cond
      16             : namespace gsl {
      17             : template <typename T>
      18             : class not_null;
      19             : }  // namespace gsl
      20             : 
      21             : class DataVector;
      22             : /// \endcond
      23             : 
      24             : // IWYU pragma: no_forward_declare Tensor
      25             : 
      26             : namespace RelativisticEuler {
      27             : namespace Valencia {
      28             : 
      29             : /*!
      30             :  * \brief The fluxes of the conservative variables
      31             :  *
      32             :  * \f{align*}
      33             :  * F^i({\tilde D}) = &~ {\tilde D} v^i_{tr} \\
      34             :  * F^i({\tilde S}_j) = &~  {\tilde S}_j v^i_{tr} + \sqrt{\gamma} \alpha p
      35             :  * \delta^i_j \\
      36             :  * F^i({\tilde \tau}) = &~  {\tilde \tau} v^i_{tr} + \sqrt{\gamma} \alpha p v^i
      37             :  * \f}
      38             :  * where the conservative variables \f${\tilde D}\f$, \f${\tilde S}_i\f$, and
      39             :  * \f${\tilde \tau}\f$ are a generalized mass-energy density, momentum density,
      40             :  * and specific internal energy density as measured by an Eulerian observer,
      41             :  * \f$v^i_{tr} = \alpha v^i - \beta^i\f$ is the transport velocity, \f$\alpha\f$
      42             :  * is the lapse, \f$\beta^i\f$ is the shift, \f$v^i\f$ is the spatial velocity,
      43             :  * \f$\gamma\f$ is the determinant of the spatial metric, and \f$p\f$ is the
      44             :  * pressure.
      45             :  */
      46             : template <size_t Dim>
      47           1 : struct ComputeFluxes {
      48           0 :   using return_tags =
      49             :       tmpl::list<::Tags::Flux<RelativisticEuler::Valencia::Tags::TildeD,
      50             :                               tmpl::size_t<Dim>, Frame::Inertial>,
      51             :                  ::Tags::Flux<RelativisticEuler::Valencia::Tags::TildeTau,
      52             :                               tmpl::size_t<Dim>, Frame::Inertial>,
      53             :                  ::Tags::Flux<RelativisticEuler::Valencia::Tags::TildeS<Dim>,
      54             :                               tmpl::size_t<Dim>, Frame::Inertial>>;
      55             : 
      56           0 :   using argument_tags =
      57             :       tmpl::list<RelativisticEuler::Valencia::Tags::TildeD,
      58             :                  RelativisticEuler::Valencia::Tags::TildeTau,
      59             :                  RelativisticEuler::Valencia::Tags::TildeS<Dim>,
      60             :                  gr::Tags::Lapse<DataVector>, gr::Tags::Shift<DataVector, Dim>,
      61             :                  gr::Tags::SqrtDetSpatialMetric<DataVector>,
      62             :                  hydro::Tags::Pressure<DataVector>,
      63             :                  hydro::Tags::SpatialVelocity<DataVector, Dim>>;
      64             : 
      65           0 :   static void apply(
      66             :       gsl::not_null<tnsr::I<DataVector, Dim, Frame::Inertial>*> tilde_d_flux,
      67             :       gsl::not_null<tnsr::I<DataVector, Dim, Frame::Inertial>*> tilde_tau_flux,
      68             :       gsl::not_null<tnsr::Ij<DataVector, Dim, Frame::Inertial>*> tilde_s_flux,
      69             :       const Scalar<DataVector>& tilde_d, const Scalar<DataVector>& tilde_tau,
      70             :       const tnsr::i<DataVector, Dim, Frame::Inertial>& tilde_s,
      71             :       const Scalar<DataVector>& lapse,
      72             :       const tnsr::I<DataVector, Dim, Frame::Inertial>& shift,
      73             :       const Scalar<DataVector>& sqrt_det_spatial_metric,
      74             :       const Scalar<DataVector>& pressure,
      75             :       const tnsr::I<DataVector, Dim, Frame::Inertial>& spatial_velocity);
      76             : };
      77             : }  // namespace Valencia
      78             : }  // namespace RelativisticEuler

Generated by: LCOV version 1.14