SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/NewtonianEuler - MachNumber.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 37.5 % 8 3
Test Date: 2026-10-22 17:29:42
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/Tags.hpp"
      12              : #include "Utilities/Gsl.hpp"
      13              : #include "Utilities/TMPL.hpp"
      14              : 
      15              : namespace NewtonianEuler {
      16              : /// @{
      17              : /*!
      18              :  * Compute the local Mach number, \f$\text{Ma} = v/c_s\f$,
      19              :  * where \f$v\f$ is the magnitude of the velocity, and
      20              :  * \f$c_s\f$ is the sound speed.
      21              :  */
      22              : template <typename DataType, size_t Dim, typename Fr>
      23            1 : void mach_number(gsl::not_null<Scalar<DataType>*> result,
      24              :                  const tnsr::I<DataType, Dim, Fr>& velocity,
      25              :                  const Scalar<DataType>& sound_speed);
      26              : 
      27              : template <typename DataType, size_t Dim, typename Fr>
      28            1 : Scalar<DataType> mach_number(const tnsr::I<DataType, Dim, Fr>& velocity,
      29              :                              const Scalar<DataType>& sound_speed);
      30              : /// @}
      31              : 
      32              : namespace Tags {
      33              : /// Compute item for the local Mach number, \f$\text{Ma}\f$.
      34              : /// \see NewtonianEuler::mach_number
      35              : ///
      36              : /// Can be retrieved using `NewtonianEuler::Tags::MachNumber`
      37              : template <typename DataType, size_t Dim, typename Fr = Frame::Inertial>
      38            1 : struct MachNumberCompute : MachNumber<DataType>, db::ComputeTag {
      39            0 :   using base = MachNumber<DataType>;
      40              : 
      41            0 :   using argument_tags =
      42              :       tmpl::list<hydro::Tags::SpatialVelocity<DataType, Dim, Fr>,
      43              :                  SoundSpeed<DataType>>;
      44              : 
      45            0 :   using return_type = Scalar<DataType>;
      46              : 
      47            0 :   static constexpr auto function = static_cast<void (*)(
      48              :       const gsl::not_null<Scalar<DataType>*>, const tnsr::I<DataType, Dim, Fr>&,
      49              :       const Scalar<DataType>&)>(&mach_number<DataType, Dim, Fr>);
      50              : };
      51              : }  // namespace Tags
      52              : }  // namespace NewtonianEuler
        

Generated by: LCOV version 2.0-1