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/RdmpTciData.hpp" 11 : #include "Evolution/DgSubcell/Tags/ActiveGrid.hpp" 12 : #include "Evolution/DgSubcell/Tags/DataForRdmpTci.hpp" 13 : #include "Evolution/DgSubcell/Tags/Mesh.hpp" 14 : #include "Evolution/Systems/NewtonianEuler/Tags.hpp" 15 : #include "Utilities/TMPL.hpp" 16 : 17 : /// \cond 18 : class DataVector; 19 : template <size_t Dim> 20 : class Mesh; 21 : template <typename TagsList> 22 : class Variables; 23 : /// \endcond 24 : 25 : namespace NewtonianEuler::subcell { 26 : /// \brief Sets the initial RDMP data. 27 : /// 28 : /// Used on the subcells after the TCI marked the DG solution as inadmissible. 29 : template <size_t Dim> 30 1 : struct SetInitialRdmpData { 31 : private: 32 0 : using MassDensityCons = NewtonianEuler::Tags::MassDensityCons; 33 0 : using EnergyDensity = NewtonianEuler::Tags::EnergyDensity; 34 0 : using MomentumDensity = NewtonianEuler::Tags::MomentumDensity<Dim>; 35 : 36 : public: 37 0 : using argument_tags = tmpl::list< 38 : ::Tags::Variables< 39 : tmpl::list<MassDensityCons, MomentumDensity, EnergyDensity>>, 40 : evolution::dg::subcell::Tags::ActiveGrid, ::domain::Tags::Mesh<Dim>, 41 : evolution::dg::subcell::Tags::Mesh<Dim>>; 42 0 : using return_tags = tmpl::list<evolution::dg::subcell::Tags::DataForRdmpTci>; 43 : 44 0 : static void apply( 45 : gsl::not_null<evolution::dg::subcell::RdmpTciData*> rdmp_tci_data, 46 : const Variables<tmpl::list<MassDensityCons, MomentumDensity, 47 : EnergyDensity>>& subcell_vars, 48 : evolution::dg::subcell::ActiveGrid active_grid, const Mesh<Dim>& dg_mesh, 49 : const Mesh<Dim>& subcell_mesh); 50 : }; 51 : } // namespace NewtonianEuler::subcell