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 : #include <tuple> 8 : 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/ScalarAdvection/Subcell/TciOptions.hpp" 15 : #include "Evolution/Systems/ScalarAdvection/Tags.hpp" 16 : #include "Utilities/Gsl.hpp" 17 : #include "Utilities/TMPL.hpp" 18 : 19 : /// \cond 20 : template <size_t Dim> 21 : class Mesh; 22 : template <typename TagsList> 23 : class Variables; 24 : /// \endcond 25 : 26 : namespace ScalarAdvection::subcell { 27 : /// \brief Sets the initial RDMP data. 28 : /// 29 : /// Used on the subcells after the TCI marked the DG solution as inadmissible. 30 : template <size_t Dim> 31 1 : struct SetInitialRdmpData { 32 0 : using argument_tags = tmpl::list< 33 : ScalarAdvection::Tags::U, evolution::dg::subcell::Tags::ActiveGrid, 34 : ::domain::Tags::Mesh<Dim>, evolution::dg::subcell::Tags::Mesh<Dim>>; 35 0 : using return_tags = tmpl::list<evolution::dg::subcell::Tags::DataForRdmpTci>; 36 : 37 0 : static void apply( 38 : gsl::not_null<evolution::dg::subcell::RdmpTciData*> rdmp_tci_data, 39 : const Scalar<DataVector>& u, 40 : evolution::dg::subcell::ActiveGrid active_grid, const Mesh<Dim>& dg_mesh, 41 : const Mesh<Dim>& subcell_mesh); 42 : }; 43 : } // namespace ScalarAdvection::subcell