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/DataForRdmpTci.hpp" 13 : #include "Evolution/DgSubcell/Tags/Mesh.hpp" 14 : #include "Evolution/DgSubcell/Tags/SubcellOptions.hpp" 15 : #include "Evolution/Systems/Burgers/Tags.hpp" 16 : #include "Utilities/TMPL.hpp" 17 : 18 : /// \cond 19 : class DataVector; 20 : template <size_t Dim> 21 : class Mesh; 22 : /// \endcond 23 : 24 : namespace Burgers::subcell { 25 : /*! 26 : * \brief Troubled-cell indicator applied to the finite difference subcell 27 : * solution to check if the corresponding DG solution is admissible. 28 : * 29 : * Applies the Persson to \f$U\f$ on the DG grid, and the RDMP TCI to \f$U\f$. 30 : */ 31 1 : struct TciOnFdGrid { 32 0 : using return_tags = tmpl::list<>; 33 0 : using argument_tags = 34 : tmpl::list<Burgers::Tags::U, ::domain::Tags::Mesh<1>, 35 : evolution::dg::subcell::Tags::Mesh<1>, 36 : evolution::dg::subcell::Tags::DataForRdmpTci, 37 : evolution::dg::subcell::Tags::SubcellOptions<1>>; 38 : 39 0 : static std::tuple<bool, evolution::dg::subcell::RdmpTciData> apply( 40 : const Scalar<DataVector>& subcell_u, const Mesh<1>& dg_mesh, 41 : const Mesh<1>& subcell_mesh, 42 : const evolution::dg::subcell::RdmpTciData& past_rdmp_tci_data, 43 : const evolution::dg::subcell::SubcellOptions& subcell_options, 44 : double persson_exponent, bool need_rdmp_data_only); 45 : }; 46 : } // namespace Burgers::subcell