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 The troubled-cell indicator run on the DG grid to check if the 27 : * solution is admissible. 28 : * 29 : * Applies the Persson and RDMP TCI to \f$U\f$. 30 : */ 31 1 : struct TciOnDgGrid { 32 : public: 33 0 : using return_tags = tmpl::list<>; 34 0 : using argument_tags = 35 : tmpl::list<Burgers::Tags::U, domain::Tags::Mesh<1>, 36 : evolution::dg::subcell::Tags::Mesh<1>, 37 : evolution::dg::subcell::Tags::DataForRdmpTci, 38 : evolution::dg::subcell::Tags::SubcellOptions<1>>; 39 : 40 0 : static std::tuple<bool, evolution::dg::subcell::RdmpTciData> apply( 41 : const Scalar<DataVector>& dg_u, const Mesh<1>& dg_mesh, 42 : const Mesh<1>& subcell_mesh, 43 : const evolution::dg::subcell::RdmpTciData& past_rdmp_tci_data, 44 : const evolution::dg::subcell::SubcellOptions& subcell_options, 45 : double persson_exponent, bool element_stays_on_dg); 46 : }; 47 : } // namespace Burgers::subcell