SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/NewtonianEuler/Subcell - InitialDataTci.hpp Hit Total Coverage
Commit: b5ffa4904430ccef0b226f73dcd25c74cb5188f6 Lines: 2 10 20.0 %
Date: 2021-07-28 22:05:18
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/Tensor/TypeAliases.hpp"
       9             : #include "Domain/Tags.hpp"
      10             : #include "Evolution/DgSubcell/Tags/Inactive.hpp"
      11             : #include "Evolution/Systems/NewtonianEuler/Tags.hpp"
      12             : #include "Utilities/TMPL.hpp"
      13             : 
      14             : /// \cond
      15             : class DataVector;
      16             : template <size_t Dim>
      17             : class Mesh;
      18             : template <typename TagsList>
      19             : class Variables;
      20             : /// \endcond
      21             : 
      22           1 : namespace NewtonianEuler::subcell {
      23             : /*!
      24             :  * \brief The troubled-cell indicator run on DG initial data to see if we need
      25             :  * to switch to subcell.
      26             :  *
      27             :  * Uses the two-mesh relaxed discrete maximum principle as well as the Persson
      28             :  * TCI applied to the mass density and pressure.
      29             :  */
      30             : template <size_t Dim>
      31           1 : struct DgInitialDataTci {
      32             :  private:
      33           0 :   using MassDensityCons = NewtonianEuler::Tags::MassDensityCons;
      34           0 :   using EnergyDensity = NewtonianEuler::Tags::EnergyDensity;
      35           0 :   using MomentumDensity = NewtonianEuler::Tags::MomentumDensity<Dim>;
      36           0 :   using Pressure = NewtonianEuler::Tags::Pressure<DataVector>;
      37             :   template <typename Tag>
      38           0 :   using Inactive = evolution::dg::subcell::Tags::Inactive<Tag>;
      39             : 
      40             :  public:
      41           0 :   using argument_tags = tmpl::list<domain::Tags::Mesh<Dim>, Pressure>;
      42             : 
      43           0 :   static bool apply(
      44             :       const Variables<
      45             :           tmpl::list<MassDensityCons, MomentumDensity, EnergyDensity>>& dg_vars,
      46             :       const Variables<
      47             :           tmpl::list<Inactive<MassDensityCons>, Inactive<MomentumDensity>,
      48             :                      Inactive<EnergyDensity>>>& subcell_vars,
      49             :       double rdmp_delta0, double rdmp_epsilon, double persson_exponent,
      50             :       const Mesh<Dim>& dg_mesh, const Scalar<DataVector>& dg_pressure) noexcept;
      51             : };
      52             : }  // namespace NewtonianEuler::subcell

Generated by: LCOV version 1.14