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