TagsTypeAliases.hpp
1 // Distributed under the MIT License.
2 // See LICENSE.txt for details.
3 
4 #pragma once
5 
6 #include <cstdint>
7 
9 #include "Utilities/TMPL.hpp"
10 
11 class DataVector;
12 
13 namespace StrahlkorperTags {
14 /// Defines type aliases used in Strahlkorper-related Tags.
15 namespace aliases {
16 template <typename Frame>
17 using ThetaPhi = tnsr::i<DataVector, 2, ::Frame::Spherical<Frame>>;
18 template <typename Frame>
19 using OneForm = tnsr::i<DataVector, 3, Frame>;
20 template <typename Frame>
21 using Vector = tnsr::I<DataVector, 3, Frame>;
22 template <typename Frame>
23 using Jacobian =
24  Tensor<DataVector, tmpl::integral_list<std::int32_t, 2, 1>,
25  index_list<SpatialIndex<3, UpLo::Up, Frame>,
27 template <typename Frame>
28 using InvJacobian =
29  Tensor<DataVector, tmpl::integral_list<std::int32_t, 2, 1>,
30  index_list<SpatialIndex<2, UpLo::Up, ::Frame::Spherical<Frame>>,
32 template <typename Frame>
33 using InvHessian =
34  Tensor<DataVector, tmpl::integral_list<std::int32_t, 3, 2, 1>,
35  index_list<SpatialIndex<2, UpLo::Up, ::Frame::Spherical<Frame>>,
36  SpatialIndex<3, UpLo::Lo, Frame>,
37  SpatialIndex<3, UpLo::Lo, Frame>>>;
38 template <typename Frame>
39 using SecondDeriv = tnsr::ii<DataVector, 3, Frame>;
40 } // namespace aliases
41 } // namespace StrahlkorperTags
Tensor_detail::TensorIndexType< SpatialDim, Ul, Fr, IndexType::Spatial > SpatialIndex
A SpatialIndex holds information about the number of spatial dimensions, whether the index is covaria...
Definition: IndexType.hpp:185
Defines a list of useful type aliases for tensors.
Stores a collection of function values.
Definition: DataVector.hpp:46
Wraps the template metaprogramming library used (brigand)
Holds tags and ComputeItems associated with a Strahlkorper.
Definition: Tags.cpp:15