Line data Source code
1 0 : // Distributed under the MIT License. 2 : // See LICENSE.txt for details. 3 : 4 : #pragma once 5 : 6 : #include "DataStructures/DataBox/Protocols/Mutator.hpp" 7 : #include "DataStructures/Tensor/Tensor.hpp" 8 : #include "Domain/Structure/DirectionalIdMap.hpp" 9 : #include "Evolution/DgSubcell/GhostData.hpp" 10 : #include "Evolution/DgSubcell/Mesh.hpp" 11 : #include "Evolution/DgSubcell/Tags/GhostDataForReconstruction.hpp" 12 : #include "Evolution/DgSubcell/Tags/Mesh.hpp" 13 : #include "Evolution/Systems/Ccz4/FiniteDifference/System.hpp" 14 : #include "Evolution/Systems/Ccz4/FiniteDifference/Tags.hpp" 15 : #include "Evolution/Systems/Ccz4/Tags.hpp" 16 : #include "Utilities/Gsl.hpp" 17 : #include "Utilities/ProtocolHelpers.hpp" 18 : #include "Utilities/TMPL.hpp" 19 : 20 1 : namespace Ccz4::fd { 21 : /*! 22 : * \brief Apply the Kreiss-Oliger filter to the evolved variables 23 : * 24 : */ 25 1 : struct ApplyFilter : tt::ConformsTo<db::protocols::Mutator> { 26 0 : using return_tags = tmpl::list<System::variables_tag>; 27 0 : using argument_tags = 28 : tmpl::list<evolution::dg::subcell::Tags::Mesh<3>, 29 : Tags::EvolveLapseAndShift, Tags::KreissOligerEpsilon, 30 : evolution::dg::subcell::Tags::GhostDataForReconstruction<3>>; 31 : 32 0 : static void apply( 33 : gsl::not_null<typename System::variables_tag::type*> 34 : evolved_vars_ptr, 35 : const Mesh<3>& subcell_mesh, bool evolve_lapse_and_shift, 36 : double kreiss_oliger_epsilon, 37 : const DirectionalIdMap<3, evolution::dg::subcell::GhostData>& ghost_data); 38 : }; 39 : } // namespace Ccz4::fd