SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/NewtonianEuler - InternalEnergyDensity.hpp Hit Total Coverage
Commit: 664546099c4dbf27a1b708fac45e39c82dd743d2 Lines: 3 8 37.5 %
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/Tag.hpp"
       9             : #include "DataStructures/Tensor/Tensor.hpp"
      10             : #include "Evolution/Systems/NewtonianEuler/Tags.hpp"
      11             : #include "PointwiseFunctions/Hydro/EquationsOfState/EquationOfState.hpp"
      12             : #include "PointwiseFunctions/Hydro/Tags.hpp"
      13             : #include "Utilities/Gsl.hpp"
      14             : #include "Utilities/TMPL.hpp"
      15             : 
      16             : namespace NewtonianEuler {
      17             : /// @{
      18             : /*!
      19             :  * Compute the internal energy density, \f$\rho \epsilon\f$,
      20             :  * where \f$\rho\f$ is the mass density, and \f$\epsilon\f$ is the
      21             :  * specific internal energy.
      22             :  */
      23             : template <typename DataType>
      24           1 : void internal_energy_density(gsl::not_null<Scalar<DataType>*> result,
      25             :                              const Scalar<DataType>& mass_density,
      26             :                              const Scalar<DataType>& specific_internal_energy);
      27             : 
      28             : template <typename DataType>
      29           1 : Scalar<DataType> internal_energy_density(
      30             :     const Scalar<DataType>& mass_density,
      31             :     const Scalar<DataType>& specific_internal_energy);
      32             : /// @}
      33             : 
      34             : namespace Tags {
      35             : /// Compute item for the internal energy density, \f$\rho \epsilon\f$.
      36             : /// \see NewtonianEuler::internal_energy_density
      37             : ///
      38             : /// Can be retrieved using `NewtonianEuler::Tags::InternalEnergyDensity`
      39             : template <typename DataType>
      40           1 : struct InternalEnergyDensityCompute : InternalEnergyDensity<DataType>,
      41             :                                       db::ComputeTag {
      42           0 :   using base = InternalEnergyDensity<DataType>;
      43             : 
      44           0 :   using argument_tags =
      45             :       tmpl::list<hydro::Tags::RestMassDensity<DataType>,
      46             :                  hydro::Tags::SpecificInternalEnergy<DataType>>;
      47             : 
      48           0 :   using return_type = Scalar<DataType>;
      49             : 
      50           0 :   static constexpr auto function =
      51             :       static_cast<void (*)(const gsl::not_null<Scalar<DataType>*>,
      52             :                            const Scalar<DataType>&, const Scalar<DataType>&)>(
      53             :           &internal_energy_density<DataType>);
      54             : };
      55             : }  // namespace Tags
      56             : }  // namespace NewtonianEuler

Generated by: LCOV version 1.14