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/BoundaryCorrections/BoundaryCorrection.hpp"
12 #include "Evolution/Systems/GrMhd/GhValenciaDivClean/TimeDerivativeTerms.hpp"
13 #include "Evolution/Systems/GrMhd/ValenciaDivClean/Characteristics.hpp"
14 #include "Evolution/Systems/GrMhd/ValenciaDivClean/ConservativeFromPrimitive.hpp"
15 #include "Evolution/Systems/GrMhd/ValenciaDivClean/Fluxes.hpp"
16 #include "Evolution/Systems/GrMhd/ValenciaDivClean/NewmanHamlin.hpp"
17 #include "Evolution/Systems/GrMhd/ValenciaDivClean/PrimitiveFromConservative.hpp"
18 #include "Evolution/Systems/GrMhd/ValenciaDivClean/Sources.hpp"
19 #include "Evolution/Systems/GrMhd/ValenciaDivClean/System.hpp"
20 #include "Evolution/Systems/GrMhd/ValenciaDivClean/Tags.hpp"
21 #include "Evolution/Systems/GrMhd/ValenciaDivClean/TimeDerivativeTerms.hpp"
22 #include "PointwiseFunctions/GeneralRelativity/Tags.hpp"
23 #include "PointwiseFunctions/Hydro/Tags.hpp"
24 #include "Utilities/TMPL.hpp"
25 
26 namespace grmhd {
27 
28 /// Namespace associated with utilities for the combined Generalized Harmonic
29 /// and Valencia formulation of ideal GRMHD with divergence cleaning systems.
30 namespace GhValenciaDivClean {
31 struct System {
33  static constexpr bool has_primitive_and_conservative_vars = true;
34  static constexpr size_t volume_dim = 3;
37 
39  tmpl::append<typename gh_system::variables_tag::tags_list,
40  typename grmhd_system::variables_tag::tags_list>>;
41  using flux_variables = tmpl::append<typename gh_system::flux_variables,
42  typename grmhd_system::flux_variables>;
43  using gradient_variables =
44  tmpl::append<typename gh_system::gradient_variables,
45  typename grmhd_system::gradient_variables>;
46  using gradient_tags = gradient_variables;
47  using sourced_variables = typename grmhd_system::sourced_variables;
48 
49  using primitive_variables_tag =
51  using spacetime_variables_tag =
53 
55  using volume_fluxes = typename grmhd_system::volume_fluxes;
56  using volume_sources = typename grmhd_system::volume_sources;
57 
58  using conservative_from_primitive =
60  template <typename OrderedListOfPrimitiveRecoverySchemes>
61  using primitive_from_conservative =
62  typename grmhd_system::template primitive_from_conservative<
63  OrderedListOfPrimitiveRecoverySchemes>;
64 
67 
68  using inverse_spatial_metric_tag =
70 };
71 } // namespace GhValenciaDivClean
72 } // namespace grmhd
grmhd
Items related to general relativistic magnetohydrodynamics (GRMHD)
Definition: BoundaryCorrection.hpp:17
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::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:31
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
TMPL.hpp
gr::Tags::InverseSpatialMetric
Inverse of the spatial metric.
Definition: Tags.hpp:33