TempTensor.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <cstddef>
7 #include <string>
8 
9 #include "DataStructures/DataBox/Tag.hpp"
11 
12 /// \cond
13 class DataVector;
14 namespace Frame {
15 struct Inertial;
16 } // namespace Frame
17 /// \endcond
18 
19 namespace Tags {
20 template <size_t N, typename T>
22  using type = T;
23  static std::string name() noexcept {
24  return std::string("TempTensor") + std::to_string(N);
25  }
26 };
27 
28 // @{
29 /// \ingroup PeoGroup
30 /// Variables Tags for temporary tensors inside a function.
31 template <size_t N, typename DataType = DataVector>
33 
34 // Rank 1
35 template <size_t N, size_t SpatialDim, typename Fr = Frame::Inertial,
36  typename DataType = DataVector>
38 template <size_t N, size_t SpatialDim, typename Fr = Frame::Inertial,
39  typename DataType = DataVector>
41 
42 template <size_t N, size_t SpatialDim, typename Fr = Frame::Inertial,
43  typename DataType = DataVector>
45 template <size_t N, size_t SpatialDim, typename Fr = Frame::Inertial,
46  typename DataType = DataVector>
48 
49 // Rank 2
50 template <size_t N, size_t SpatialDim, typename Fr = Frame::Inertial,
51  typename DataType = DataVector>
53 template <size_t N, size_t SpatialDim, typename Fr = Frame::Inertial,
54  typename DataType = DataVector>
56 template <size_t N, size_t SpatialDim, typename Fr = Frame::Inertial,
57  typename DataType = DataVector>
59 template <size_t N, size_t SpatialDim, typename Fr = Frame::Inertial,
60  typename DataType = DataVector>
62 
63 template <size_t N, size_t SpatialDim, typename Fr = Frame::Inertial,
64  typename DataType = DataVector>
66 template <size_t N, size_t SpatialDim, typename Fr = Frame::Inertial,
67  typename DataType = DataVector>
69 template <size_t N, size_t SpatialDim, typename Fr = Frame::Inertial,
70  typename DataType = DataVector>
72 template <size_t N, size_t SpatialDim, typename Fr = Frame::Inertial,
73  typename DataType = DataVector>
75 
76 template <size_t N, size_t SpatialDim, typename Fr = Frame::Inertial,
77  typename DataType = DataVector>
79 
80 template <size_t N, size_t SpatialDim, typename Fr = Frame::Inertial,
81  typename DataType = DataVector>
83 template <size_t N, size_t SpatialDim, typename Fr = Frame::Inertial,
84  typename DataType = DataVector>
86 
87 template <size_t N, size_t SpatialDim, typename Fr = Frame::Inertial,
88  typename DataType = DataVector>
90 template <size_t N, size_t SpatialDim, typename Fr = Frame::Inertial,
91  typename DataType = DataVector>
93 
94 // Rank 3
95 template <size_t N, size_t SpatialDim, typename Fr = Frame::Inertial,
96  typename DataType = DataVector>
98 template <size_t N, size_t SpatialDim, typename Fr = Frame::Inertial,
99  typename DataType = DataVector>
101 template <size_t N, size_t SpatialDim, typename Fr = Frame::Inertial,
102  typename DataType = DataVector>
104 template <size_t N, size_t SpatialDim, typename Fr = Frame::Inertial,
105  typename DataType = DataVector>
107 template <size_t N, size_t SpatialDim, typename Fr = Frame::Inertial,
108  typename DataType = DataVector>
110 template <size_t N, size_t SpatialDim, typename Fr = Frame::Inertial,
111  typename DataType = DataVector>
113 template <size_t N, size_t SpatialDim, typename Fr = Frame::Inertial,
114  typename DataType = DataVector>
116 template <size_t N, size_t SpatialDim, typename Fr = Frame::Inertial,
117  typename DataType = DataVector>
119 
120 // Rank 4
121 template <size_t N, size_t SpatialDim, typename Fr = Frame::Inertial,
122  typename DataType = DataVector>
124 // @}
125 } // namespace Tags
std::string
Frame::Inertial
Definition: IndexType.hpp:44
db::SimpleTag
Mark a struct as a simple tag by inheriting from this.
Definition: Tag.hpp:36
cstddef
DataVector
Stores a collection of function values.
Definition: DataVector.hpp:42
Tags::TempTensor
Definition: TempTensor.hpp:21
TypeAliases.hpp
Frame
Definition: IndexType.hpp:36
string