SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/NewtonianEuler/Subcell - PrimitiveGhostData.hpp Hit Total Coverage
Commit: aabde07399ba7837e5db64eedfd0a21f31f96922 Lines: 1 11 9.1 %
Date: 2024-04-26 02:38:13
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/VariablesTag.hpp"
       9             : #include "PointwiseFunctions/Hydro/Tags.hpp"
      10             : #include "Utilities/TMPL.hpp"
      11             : 
      12             : /// \cond
      13             : template <typename TagsList>
      14             : class Variables;
      15             : /// \endcond
      16             : 
      17             : namespace NewtonianEuler::subcell {
      18             : /*!
      19             :  * \brief Computes the mass density, velocity, and pressure on the subcells so
      20             :  * they can be sent to the neighbors for their reconstructions.
      21             :  *
      22             :  * The computation just copies the data from the primitive variables tag to a
      23             :  * new Variables (the copy is subcell grid to subcell grid). In the future we
      24             :  * will likely want to elide this copy but that requires support from the
      25             :  * actions.
      26             :  *
      27             :  * This mutator is passed to
      28             :  * `evolution::dg::subcell::Actions::SendDataForReconstruction`.
      29             :  */
      30             : template <size_t Dim>
      31           1 : class PrimitiveGhostVariables {
      32             :  private:
      33           0 :   using MassDensity = hydro::Tags::RestMassDensity<DataVector>;
      34           0 :   using Velocity = hydro::Tags::SpatialVelocity<DataVector, Dim>;
      35           0 :   using SpecificInternalEnergy =
      36             :       hydro::Tags::SpecificInternalEnergy<DataVector>;
      37           0 :   using Pressure = hydro::Tags::Pressure<DataVector>;
      38             : 
      39           0 :   using prim_tags =
      40             :       tmpl::list<MassDensity, Velocity, SpecificInternalEnergy, Pressure>;
      41           0 :   using prims_to_reconstruct_tags = tmpl::list<MassDensity, Velocity, Pressure>;
      42             : 
      43             :  public:
      44           0 :   using return_tags = tmpl::list<>;
      45           0 :   using argument_tags = tmpl::list<::Tags::Variables<prim_tags>>;
      46             : 
      47           0 :   static DataVector apply(const Variables<prim_tags>& prims, size_t rdmp_size);
      48             : };
      49             : }  // namespace NewtonianEuler::subcell

Generated by: LCOV version 1.14