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
|