System.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <cstddef>
7 
8 #include "DataStructures/Tensor/EagerMath/Magnitude.hpp"
9 #include "DataStructures/VariablesTag.hpp"
10 #include "Evolution/Systems/GeneralizedHarmonic/System.hpp"
11 #include "Evolution/Systems/GrMhd/GhValenciaDivClean/BoundaryConditions/BoundaryCondition.hpp"
12 #include "Evolution/Systems/GrMhd/GhValenciaDivClean/BoundaryCorrections/BoundaryCorrection.hpp"
13 #include "Evolution/Systems/GrMhd/GhValenciaDivClean/TimeDerivativeTerms.hpp"
14 #include "Evolution/Systems/GrMhd/ValenciaDivClean/Characteristics.hpp"
15 #include "Evolution/Systems/GrMhd/ValenciaDivClean/ConservativeFromPrimitive.hpp"
16 #include "Evolution/Systems/GrMhd/ValenciaDivClean/Fluxes.hpp"
17 #include "Evolution/Systems/GrMhd/ValenciaDivClean/NewmanHamlin.hpp"
18 #include "Evolution/Systems/GrMhd/ValenciaDivClean/PrimitiveFromConservative.hpp"
19 #include "Evolution/Systems/GrMhd/ValenciaDivClean/Sources.hpp"
20 #include "Evolution/Systems/GrMhd/ValenciaDivClean/System.hpp"
21 #include "Evolution/Systems/GrMhd/ValenciaDivClean/Tags.hpp"
22 #include "Evolution/Systems/GrMhd/ValenciaDivClean/TimeDerivativeTerms.hpp"
23 #include "PointwiseFunctions/GeneralRelativity/Tags.hpp"
24 #include "PointwiseFunctions/Hydro/Tags.hpp"
25 #include "Utilities/TMPL.hpp"
26 
27 namespace grmhd {
28 
29 /// Namespace associated with utilities for the combined Generalized Harmonic
30 /// and Valencia formulation of ideal GRMHD with divergence cleaning systems.
31 namespace GhValenciaDivClean {
32 struct System {
35  static constexpr bool has_primitive_and_conservative_vars = true;
36  static constexpr size_t volume_dim = 3;
39 
41  tmpl::append<typename gh_system::variables_tag::tags_list,
42  typename grmhd_system::variables_tag::tags_list>>;
43  using non_conservative_variables =
44  typename gh_system::variables_tag::tags_list;
45  using flux_variables = tmpl::append<typename gh_system::flux_variables,
46  typename grmhd_system::flux_variables>;
47  using gradient_variables =
48  tmpl::append<typename gh_system::gradient_variables,
49  typename grmhd_system::gradient_variables>;
50  using gradients_tags = gradient_variables;
51  using sourced_variables = typename grmhd_system::sourced_variables;
52  static constexpr bool is_in_flux_conservative_form = false;
53 
54  using primitive_variables_tag =
56  using spacetime_variables_tag = ::Tags::Variables<tmpl::list<
60  tmpl::size_t<3>, Frame::Inertial>,
62  tmpl::size_t<3>, Frame::Inertial>,
64 
66  using volume_fluxes = typename grmhd_system::volume_fluxes;
67  using volume_sources = typename grmhd_system::volume_sources;
68 
69  using conservative_from_primitive =
71  template <typename OrderedListOfPrimitiveRecoverySchemes>
72  using primitive_from_conservative =
73  typename grmhd_system::template primitive_from_conservative<
74  OrderedListOfPrimitiveRecoverySchemes>;
75 
78 
79  using inverse_spatial_metric_tag =
81 };
82 } // namespace GhValenciaDivClean
83 } // namespace grmhd
grmhd
Items related to general relativistic magnetohydrodynamics (GRMHD)
Definition: BoundaryCondition.hpp:19
Frame::Inertial
Definition: IndexType.hpp:44
grmhd::GhValenciaDivClean::TimeDerivativeTerms
Compute the RHS terms and flux values for both the Generalized Harmonic formulation of Einstein's equ...
Definition: TimeDerivativeTerms.hpp:181
GeneralizedHarmonic::Tags::ComputeLargestCharacteristicSpeed
Computes the largest magnitude of the characteristic speeds.
Definition: Characteristics.hpp:241
Tags::Variables
Definition: VariablesTag.hpp:21
grmhd::ValenciaDivClean::System
Definition: System.hpp:36
grmhd::GhValenciaDivClean::BoundaryConditions::BoundaryCondition
The base class for Generalized Harmonic and Valencia combined boundary conditions; all boundary condi...
Definition: BoundaryCondition.hpp:60
grmhd::GhValenciaDivClean::BoundaryCorrections::BoundaryCorrection
The base class used to make boundary corrections factory createable so they can be specified in the i...
Definition: BoundaryCorrection.hpp:39
grmhd::GhValenciaDivClean::System
Definition: System.hpp:32
grmhd::ValenciaDivClean::ConservativeFromPrimitive
Compute the conservative variables from primitive variables.
Definition: ConservativeFromPrimitive.hpp:61
grmhd::ValenciaDivClean::ComputeFluxes
The fluxes of the conservative variables.
Definition: Fluxes.hpp:59
GeneralizedHarmonic::System
Definition: System.hpp:25
cstddef
grmhd::ValenciaDivClean::ComputeSources
Compute the source terms for the flux-conservative Valencia formulation of GRMHD with divergence clea...
Definition: Sources.hpp:84
Tags::deriv
Prefix indicating spatial derivatives.
Definition: PartialDerivatives.hpp:52
gr::Tags::ExtrinsicCurvature
Definition: Tags.hpp:116
TMPL.hpp
gr::Tags::InverseSpatialMetric
Inverse of the spatial metric.
Definition: Tags.hpp:33