InitialDataTci.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <cstddef>
7 
9 #include "Domain/Tags.hpp"
10 #include "Evolution/DgSubcell/Tags/Inactive.hpp"
11 #include "Evolution/Systems/NewtonianEuler/Tags.hpp"
12 #include "Utilities/TMPL.hpp"
13 
14 /// \cond
15 class DataVector;
16 template <size_t Dim>
17 class Mesh;
18 template <typename TagsList>
19 class Variables;
20 /// \endcond
21 
23 /*!
24  * \brief The troubled-cell indicator run on DG initial data to see if we need
25  * to switch to subcell.
26  *
27  * Uses the two-mesh relaxed discrete maximum principle as well as the Persson
28  * TCI applied to the mass density and pressure.
29  */
30 template <size_t Dim>
32  private:
37  template <typename Tag>
39 
40  public:
41  using argument_tags = tmpl::list<domain::Tags::Mesh<Dim>, Pressure>;
42 
43  static bool apply(
44  const Variables<
45  tmpl::list<MassDensityCons, MomentumDensity, EnergyDensity>>& dg_vars,
46  const Variables<
48  Inactive<EnergyDensity>>>& subcell_vars,
49  double rdmp_delta0, double rdmp_epsilon, double persson_exponent,
50  const Mesh<Dim>& dg_mesh, const Scalar<DataVector>& dg_pressure) noexcept;
51 };
52 } // namespace NewtonianEuler::subcell
Tags.hpp
NewtonianEuler::Tags::MassDensityCons
The mass density of the fluid (as a conservative variable).
Definition: Tags.hpp:31
NewtonianEuler::subcell
Code required by the DG-subcell/FD hybrid solver.
Definition: InitialDataTci.hpp:22
NewtonianEuler::subcell::DgInitialDataTci
The troubled-cell indicator run on DG initial data to see if we need to switch to subcell.
Definition: InitialDataTci.hpp:31
cstddef
DataVector
Stores a collection of function values.
Definition: DataVector.hpp:46
NewtonianEuler::Tags::Pressure
The fluid pressure.
Definition: Tags.hpp:66
NewtonianEuler::Tags::EnergyDensity
The energy density of the fluid.
Definition: Tags.hpp:45
Mesh
Holds the number of grid points, basis, and quadrature in each direction of the computational grid.
Definition: Mesh.hpp:49
NewtonianEuler::Tags::MomentumDensity
The momentum density of the fluid.
Definition: Tags.hpp:37
Scalar
Tensor< T, Symmetry<>, index_list<> > Scalar
Definition: TypeAliases.hpp:21
TypeAliases.hpp
evolution::dg::subcell::Tags::Inactive
Mark a tag as holding data for the inactive grid.
Definition: Inactive.hpp:23
TMPL.hpp