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 <utility> 8 : 9 : #include "DataStructures/DataBox/PrefixHelpers.hpp" 10 : #include "DataStructures/Tensor/IndexType.hpp" 11 : #include "DataStructures/Tensor/TypeAliases.hpp" 12 : #include "Domain/Structure/Direction.hpp" 13 : #include "Domain/Structure/DirectionalId.hpp" 14 : #include "Domain/Structure/DirectionalIdMap.hpp" 15 : #include "Domain/Structure/ElementId.hpp" 16 : #include "Evolution/Systems/GrMhd/GhValenciaDivClean/System.hpp" 17 : #include "NumericalAlgorithms/LinearOperators/PartialDerivatives.hpp" 18 : #include "Utilities/Gsl.hpp" 19 : #include "Utilities/TMPL.hpp" 20 : 21 : /// \cond 22 : class DataVector; 23 : template <size_t Dim> 24 : class Mesh; 25 : template <typename TagsList> 26 : class Variables; 27 : namespace evolution::dg::subcell { 28 : class GhostData; 29 : } // namespace evolution::dg::subcell 30 : /// \endcond 31 : 32 : namespace grmhd::GhValenciaDivClean::fd { 33 : /*! 34 : * \brief Apply a Kreiss-Oliger filter to \f$g_{ab}\f$, \f$\Phi_{iab}\f$, and 35 : * \f$\Pi_{ab}\f$. 36 : */ 37 : template <typename VariableTags> 38 1 : void spacetime_kreiss_oliger_filter( 39 : gsl::not_null<Variables<VariableTags>*> result, 40 : const Variables<VariableTags>& volume_evolved_variables, 41 : const DirectionalIdMap<3, evolution::dg::subcell::GhostData>& 42 : all_ghost_data, 43 : const Mesh<3>& volume_mesh, size_t order, double epsilon); 44 : } // namespace grmhd::GhValenciaDivClean::fd