SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/NewtonianEuler - KineticEnergyDensity.hpp Hit Total Coverage
Commit: 47056168667e3fcaf5c2563461756c37676bb94c Lines: 3 8 37.5 %
Date: 2024-04-19 14:00:09
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 kinetic energy density, \f$\rho v^2/2\f$,
      20             :  * where \f$\rho\f$ is the mass density, and \f$v\f$ is the
      21             :  * magnitude of the velocity.
      22             :  */
      23             : template <typename DataType, size_t Dim, typename Fr>
      24           1 : void kinetic_energy_density(gsl::not_null<Scalar<DataType>*> result,
      25             :                             const Scalar<DataType>& mass_density,
      26             :                             const tnsr::I<DataType, Dim, Fr>& velocity);
      27             : 
      28             : template <typename DataType, size_t Dim, typename Fr>
      29           1 : Scalar<DataType> kinetic_energy_density(
      30             :     const Scalar<DataType>& mass_density,
      31             :     const tnsr::I<DataType, Dim, Fr>& velocity);
      32             : /// @}
      33             : 
      34             : namespace Tags {
      35             : /// Compute item for the kinetic energy density, \f$\rho v^2/2\f$.
      36             : /// \see NewtonianEuler::kinetic_energy_density
      37             : ///
      38             : /// Can be retrieved using `NewtonianEuler::Tags::KineticEnergyDensity`
      39             : template <typename DataType, size_t Dim, typename Fr = Frame::Inertial>
      40           1 : struct KineticEnergyDensityCompute : KineticEnergyDensity<DataType>,
      41             :                                      db::ComputeTag {
      42           0 :   using base = KineticEnergyDensity<DataType>;
      43             : 
      44           0 :   using argument_tags =
      45             :       tmpl::list<hydro::Tags::RestMassDensity<DataType>,
      46             :                  hydro::Tags::SpatialVelocity<DataType, Dim, Fr>>;
      47             : 
      48           0 :   using return_type = Scalar<DataType>;
      49             : 
      50           0 :   static constexpr auto function = static_cast<void (*)(
      51             :       const gsl::not_null<Scalar<DataType>*>, const Scalar<DataType>&,
      52             :       const tnsr::I<DataType, Dim, Fr>&)>(
      53             :       &kinetic_energy_density<DataType, Dim, Fr>);
      54             : };
      55             : }  // namespace Tags
      56             : }  // namespace NewtonianEuler

Generated by: LCOV version 1.14