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/DataBox/Prefixes.hpp" 9 : #include "NumericalAlgorithms/LinearOperators/PartialDerivatives.hpp" 10 : #include "PointwiseFunctions/GeneralRelativity/TagsDeclarations.hpp" 11 : 12 1 : namespace gr { 13 : /// Base struct for properties common to all GR analytic data classes 14 : template <size_t Dim> 15 1 : struct AnalyticDataBase { 16 0 : static constexpr size_t volume_dim = Dim; 17 : template <typename DataType, typename Frame = ::Frame::Inertial> 18 0 : using DerivLapse = 19 : ::Tags::deriv<gr::Tags::Lapse<DataType>, tmpl::size_t<volume_dim>, Frame>; 20 : template <typename DataType, typename Frame = ::Frame::Inertial> 21 0 : using DerivShift = ::Tags::deriv<gr::Tags::Shift<DataType, volume_dim, Frame>, 22 : tmpl::size_t<volume_dim>, Frame>; 23 : template <typename DataType, typename Frame = ::Frame::Inertial> 24 0 : using DerivSpatialMetric = 25 : ::Tags::deriv<gr::Tags::SpatialMetric<DataType, volume_dim, Frame>, 26 : tmpl::size_t<volume_dim>, Frame>; 27 : 28 : template <typename DataType, typename Frame = ::Frame::Inertial> 29 0 : using tags = tmpl::list< 30 : gr::Tags::Lapse<DataType>, ::Tags::dt<gr::Tags::Lapse<DataType>>, 31 : DerivLapse<DataType, Frame>, gr::Tags::Shift<DataType, volume_dim, Frame>, 32 : ::Tags::dt<gr::Tags::Shift<DataType, volume_dim, Frame>>, 33 : DerivShift<DataType, Frame>, 34 : gr::Tags::SpatialMetric<DataType, volume_dim, Frame>, 35 : ::Tags::dt<gr::Tags::SpatialMetric<DataType, volume_dim, Frame>>, 36 : DerivSpatialMetric<DataType, Frame>, 37 : gr::Tags::SqrtDetSpatialMetric<DataType>, 38 : gr::Tags::ExtrinsicCurvature<DataType, volume_dim, Frame>, 39 : gr::Tags::InverseSpatialMetric<DataType, volume_dim, Frame>>; 40 : }; 41 : 42 : /*! 43 : * \ingroup AnalyticDataGroup 44 : * \brief Classes which implement analytic data for general relativity 45 : */ 46 1 : namespace AnalyticData {} 47 : } // namespace gr