Tags.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <string>
7 
10 #include "TagsDeclarations.hpp"
11 
12 namespace gr {
13 namespace Tags {
14 template <size_t Dim, typename Frame, typename DataType>
16  using type = tnsr::aa<DataType, Dim, Frame>;
17  static std::string name() noexcept { return "SpacetimeMetric"; }
18 };
19 template <size_t Dim, typename Frame, typename DataType>
21  using type = tnsr::AA<DataType, Dim, Frame>;
22  static std::string name() noexcept { return "InverseSpacetimeMetric"; }
23 };
24 
25 template <size_t Dim, typename Frame, typename DataType>
27  using type = tnsr::ii<DataType, Dim, Frame>;
28  static std::string name() noexcept { return "SpatialMetric"; }
29 };
30 template <size_t Dim, typename Frame, typename DataType>
32  using type = tnsr::II<DataType, Dim, Frame>;
33  static std::string name() noexcept { return "InverseSpatialMetric"; }
34 };
35 template <typename DataType>
37  using type = Scalar<DataType>;
38  static std::string name() noexcept { return "SqrtDetSpatialMetric"; }
39 };
40 template <size_t Dim, typename Frame, typename DataType>
41 struct Shift : db::SimpleTag {
42  using type = tnsr::I<DataType, Dim, Frame>;
43  static std::string name() noexcept { return "Shift"; }
44 };
45 template <typename DataType>
46 struct Lapse : db::SimpleTag {
47  using type = Scalar<DataType>;
48  static std::string name() noexcept { return "Lapse"; }
49 };
50 
51 template <size_t Dim, typename Frame, typename DataType>
53  using type = tnsr::abb<DataType, Dim, Frame>;
54  static std::string name() noexcept { return "SpacetimeChristoffelFirstKind"; }
55 };
56 template <size_t Dim, typename Frame, typename DataType>
58  using type = tnsr::Abb<DataType, Dim, Frame>;
59  static std::string name() noexcept { return "SpactimeChristoffelSecondKind"; }
60 };
61 template <size_t Dim, typename Frame, typename DataType>
63  using type = tnsr::ijj<DataType, Dim, Frame>;
64  static std::string name() noexcept { return "SpatialChristoffelFirstKind"; }
65 };
66 template <size_t Dim, typename Frame, typename DataType>
68  using type = tnsr::Ijj<DataType, Dim, Frame>;
69  static std::string name() noexcept { return "SpatialChristoffelSecondKind"; }
70 };
71 template <size_t Dim, typename Frame, typename DataType>
73  using type = tnsr::a<DataType, Dim, Frame>;
74  static std::string name() noexcept { return "SpacetimeNormalOneForm"; }
75 };
76 template <size_t Dim, typename Frame, typename DataType>
78  using type = tnsr::A<DataType, Dim, Frame>;
79  static std::string name() noexcept { return "SpacetimeNormalVector"; }
80 };
81 template <size_t Dim, typename Frame, typename DataType>
83  using type = tnsr::a<DataType, Dim, Frame>;
84  static std::string name() noexcept {
85  return "TraceSpacetimeChristoffelFirstKind";
86  }
87 };
88 template <size_t Dim, typename Frame, typename DataType>
90  using type = tnsr::I<DataType, Dim, Frame>;
91  static std::string name() noexcept {
92  return "TraceSpatialChristoffelSecondKind";
93  }
94 };
95 template <size_t Dim, typename Frame, typename DataType>
97  using type = tnsr::ii<DataType, Dim, Frame>;
98  static std::string name() noexcept { return "ExtrinsicCurvature"; }
99 };
100 template <typename DataType>
102  using type = Scalar<DataType>;
103  static std::string name() noexcept { return "TraceExtrinsicCurvature"; }
104 };
105 } // namespace Tags
106 } // namespace gr
Definition: Tags.hpp:101
Definition: Tags.hpp:15
Definition: Tags.hpp:36
Tags for the DataBox inherit from this type.
Definition: DataBoxTag.hpp:65
Definition: Tags.hpp:46
Definition: Tags.hpp:31
Holds functions related to general relativity.
Definition: KerrHorizon.cpp:14
Definition: Tags.hpp:77
Definition: Tags.hpp:26
Definition: Tags.hpp:41
Definition: DataBoxTag.hpp:29
Defines a list of useful type aliases for tensors.
Definition: Tags.hpp:72
Definition: Tags.hpp:20
Defines classes SimpleTag, PrefixTag, ComputeTag and several functions for retrieving tag info...
Tensor< T, Symmetry<>, index_list<> > Scalar
Scalar type.
Definition: TypeAliases.hpp:21
Definition: Tags.hpp:96