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 "DataStructures/Tensor/TypeAliases.hpp" 10 : #include "Domain/Tags.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/GrMhd/ValenciaDivClean/Subcell/TciOptions.hpp" 16 : #include "Evolution/Systems/GrMhd/ValenciaDivClean/Tags.hpp" 17 : #include "PointwiseFunctions/Hydro/TagsDeclarations.hpp" 18 : #include "Utilities/TMPL.hpp" 19 : 20 : /// \cond 21 : class DataVector; 22 : template <size_t Dim> 23 : class Mesh; 24 : template <typename TagsList> 25 : class Variables; 26 : /// \endcond 27 : 28 : namespace grmhd::ValenciaDivClean::subcell { 29 : /// \brief Sets the initial RDMP data. 30 : /// 31 : /// Used on the subcells after the TCI marked the DG solution as inadmissible. 32 1 : struct SetInitialRdmpData { 33 0 : using argument_tags = tmpl::list< 34 : ValenciaDivClean::Tags::TildeD, ValenciaDivClean::Tags::TildeYe, 35 : ValenciaDivClean::Tags::TildeTau, ValenciaDivClean::Tags::TildeB<>, 36 : evolution::dg::subcell::Tags::ActiveGrid, ::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 Scalar<DataVector>& subcell_tilde_d, 43 : const Scalar<DataVector>& subcell_tilde_ye, 44 : const Scalar<DataVector>& subcell_tilde_tau, 45 : const tnsr::I<DataVector, 3, Frame::Inertial>& subcell_tilde_b, 46 : evolution::dg::subcell::ActiveGrid active_grid, const Mesh<3>& dg_mesh, 47 : const Mesh<3>& subcell_mesh); 48 : }; 49 : } // namespace grmhd::ValenciaDivClean::subcell