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 :
8 : #include "DataStructures/Tensor/IndexType.hpp"
9 :
10 : namespace gh {
11 :
12 : /// \brief Tags for the generalized harmonic formulation of Einstein equations
13 : namespace Tags {
14 : template <typename DataType, size_t Dim, typename Frame = Frame::Inertial>
15 : struct Pi;
16 : template <typename DataType, size_t Dim, typename Frame = Frame::Inertial>
17 : struct Phi;
18 :
19 : template <typename DataType, size_t Dim, typename Frame = Frame::Inertial>
20 : struct InitialGaugeH;
21 : template <typename DataType, size_t Dim, typename Frame = Frame::Inertial>
22 : struct SpacetimeDerivInitialGaugeH;
23 : template <typename DataType, size_t Dim, typename Frame = Frame::Inertial>
24 : struct GaugeH;
25 : template <typename DataType, size_t Dim, typename Frame = Frame::Inertial>
26 : struct SpacetimeDerivGaugeH;
27 :
28 : template <typename DataType, size_t Dim, typename Frame = Frame::Inertial>
29 : struct VSpacetimeMetric;
30 : template <typename DataType, size_t Dim, typename Frame = Frame::Inertial>
31 : struct VZero;
32 : template <typename DataType, size_t Dim, typename Frame = Frame::Inertial>
33 : struct VPlus;
34 : template <typename DataType, size_t Dim, typename Frame = Frame::Inertial>
35 : struct VMinus;
36 :
37 : template <typename DataType, size_t SpatialDim,
38 : typename Frame = Frame::ElementLogical>
39 : struct VSpacetimeMetricSpeed;
40 : template <typename DataType, size_t SpatialDim,
41 : typename Frame = Frame::ElementLogical>
42 : struct VZeroSpeed;
43 : template <typename DataType, size_t SpatialDim,
44 : typename Frame = Frame::ElementLogical>
45 : struct VPlusSpeed;
46 : template <typename DataType, size_t SpatialDim,
47 : typename Frame = Frame::ElementLogical>
48 : struct VMinusSpeed;
49 :
50 : template <typename DataType, size_t Dim, typename Frame = Frame::Inertial>
51 : struct CharacteristicSpeeds;
52 : template <typename DataType, size_t Dim, typename Frame = Frame::Inertial>
53 : struct CharacteristicFields;
54 : template <typename DataType, size_t Dim, typename Frame = Frame::Inertial>
55 : struct EvolvedFieldsFromCharacteristicFields;
56 :
57 : template <typename DataType, size_t SpatialDim,
58 : typename Frame = Frame::Inertial>
59 : struct GaugeConstraint;
60 : template <typename DataType, size_t SpatialDim,
61 : typename Frame = Frame::Inertial>
62 : struct FConstraint;
63 : template <typename DataType, size_t SpatialDim,
64 : typename Frame = Frame::Inertial>
65 : struct TwoIndexConstraint;
66 : template <typename DataType, size_t SpatialDim,
67 : typename Frame = Frame::Inertial>
68 : struct ThreeIndexConstraint;
69 : template <typename DataType, size_t SpatialDim,
70 : typename Frame = Frame::Inertial>
71 : struct FourIndexConstraint;
72 : template <typename DataType, size_t SpatialDim,
73 : typename Frame = Frame::Inertial>
74 : struct ConstraintEnergy;
75 : } // namespace Tags
76 :
77 : /// \brief Input option tags for the generalized harmonic evolution system
78 : namespace OptionTags {
79 : struct Group;
80 : } // namespace OptionTags
81 : } // namespace gh
|