SpECTRE Documentation Coverage Report
Current view: top level - PointwiseFunctions/AnalyticSolutions/GeneralRelativity - Minkowski.cpp Hit Total Coverage
Commit: 2db722c93a8e9b106e406b439b79c8e05c2057fb Lines: 0 1 0.0 %
Date: 2021-03-03 22:01:00
Legend: Lines: hit not hit

          Line data    Source code
       1           0 : // Distributed under the MIT License.
       2             : // See LICENSE.txt for details.
       3             : 
       4             : #include "PointwiseFunctions/AnalyticSolutions/GeneralRelativity/Minkowski.hpp"
       5             : 
       6             : #include "DataStructures/DataBox/Prefixes.hpp"  // IWYU pragma: keep
       7             : #include "DataStructures/DataVector.hpp"        // IWYU pragma: keep
       8             : #include "DataStructures/Tensor/Tensor.hpp"     // IWYU pragma: keep
       9             : #include "Utilities/GenerateInstantiations.hpp"
      10             : #include "Utilities/MakeWithValue.hpp"
      11             : 
      12             : // IWYU pragma: no_forward_declare ::Tags::deriv
      13             : 
      14             : /// \cond
      15             : namespace gr {
      16             : namespace Solutions {
      17             : 
      18             : template <size_t Dim>
      19             : template <typename DataType>
      20             : tuples::TaggedTuple<gr::Tags::Lapse<DataType>> Minkowski<Dim>::variables(
      21             :     const tnsr::I<DataType, Dim>& x, double /*t*/,
      22             :     tmpl::list<gr::Tags::Lapse<DataType>> /*meta*/) const noexcept {
      23             :   return {Scalar<DataType>(make_with_value<DataType>(x, 1.))};
      24             : }
      25             : 
      26             : template <size_t Dim>
      27             : template <typename DataType>
      28             : tuples::TaggedTuple<::Tags::dt<gr::Tags::Lapse<DataType>>>
      29             : Minkowski<Dim>::variables(
      30             :     const tnsr::I<DataType, Dim>& x, double /*t*/,
      31             :     tmpl::list<::Tags::dt<gr::Tags::Lapse<DataType>>> /*meta*/) const noexcept {
      32             :   return {Scalar<DataType>(make_with_value<DataType>(x, 0.))};
      33             : }
      34             : 
      35             : template <size_t Dim>
      36             : template <typename DataType>
      37             : tuples::TaggedTuple<::Tags::deriv<gr::Tags::Lapse<DataType>, tmpl::size_t<Dim>,
      38             :                                   Frame::Inertial>>
      39             : Minkowski<Dim>::variables(
      40             :     const tnsr::I<DataType, Dim>& x, double /*t*/,
      41             :     tmpl::list<::Tags::deriv<gr::Tags::Lapse<DataType>, tmpl::size_t<Dim>,
      42             :                              Frame::Inertial>> /*meta*/) const noexcept {
      43             :   return {make_with_value<tnsr::i<DataType, Dim>>(x, 0.)};
      44             : }
      45             : 
      46             : template <size_t Dim>
      47             : template <typename DataType>
      48             : tuples::TaggedTuple<gr::Tags::Shift<Dim, Frame::Inertial, DataType>>
      49             : Minkowski<Dim>::variables(
      50             :     const tnsr::I<DataType, Dim>& x, double /*t*/,
      51             :     tmpl::list<gr::Tags::Shift<Dim, Frame::Inertial, DataType>> /*meta*/) const
      52             :     noexcept {
      53             :   return {make_with_value<tnsr::I<DataType, Dim>>(x, 0.)};
      54             : }
      55             : 
      56             : template <size_t Dim>
      57             : template <typename DataType>
      58             : tuples::TaggedTuple<::Tags::dt<gr::Tags::Shift<Dim, Frame::Inertial, DataType>>>
      59             : Minkowski<Dim>::variables(
      60             :     const tnsr::I<DataType, Dim>& x, double /*t*/,
      61             :     tmpl::list<
      62             :         ::Tags::dt<gr::Tags::Shift<Dim, Frame::Inertial, DataType>>> /*meta*/)
      63             :     const noexcept {
      64             :   return {make_with_value<tnsr::I<DataType, Dim>>(x, 0.)};
      65             : }
      66             : 
      67             : template <size_t Dim>
      68             : template <typename DataType>
      69             : tuples::TaggedTuple<
      70             :     ::Tags::deriv<gr::Tags::Shift<Dim, Frame::Inertial, DataType>,
      71             :                   tmpl::size_t<Dim>, Frame::Inertial>>
      72             : Minkowski<Dim>::variables(
      73             :     const tnsr::I<DataType, Dim>& x, double /*t*/,
      74             :     tmpl::list<::Tags::deriv<gr::Tags::Shift<Dim, Frame::Inertial, DataType>,
      75             :                              tmpl::size_t<Dim>, Frame::Inertial>> /*meta*/)
      76             :     const noexcept {
      77             :   return {make_with_value<tnsr::iJ<DataType, Dim>>(x, 0.)};
      78             : }
      79             : 
      80             : template <size_t Dim>
      81             : template <typename DataType>
      82             : tuples::TaggedTuple<gr::Tags::SpatialMetric<Dim, Frame::Inertial, DataType>>
      83             : Minkowski<Dim>::variables(
      84             :     const tnsr::I<DataType, Dim>& x, double /*t*/,
      85             :     tmpl::list<
      86             :         gr::Tags::SpatialMetric<Dim, Frame::Inertial, DataType>> /*meta*/) const
      87             :     noexcept {
      88             :   tnsr::ii<DataType, Dim> lower_metric(make_with_value<DataType>(x, 0.));
      89             :   for (size_t i = 0; i < Dim; ++i) {
      90             :     lower_metric.get(i, i) = 1.;
      91             :   }
      92             :   return {std::move(lower_metric)};
      93             : }
      94             : 
      95             : template <size_t Dim>
      96             : template <typename DataType>
      97             : tuples::TaggedTuple<
      98             :     ::Tags::dt<gr::Tags::SpatialMetric<Dim, Frame::Inertial, DataType>>>
      99             : Minkowski<Dim>::variables(const tnsr::I<DataType, Dim>& x, double /*t*/,
     100             :                           tmpl::list<::Tags::dt<gr::Tags::SpatialMetric<
     101             :                               Dim, Frame::Inertial, DataType>>> /*meta*/) const
     102             :     noexcept {
     103             :   return {make_with_value<tnsr::ii<DataType, Dim>>(x, 0.)};
     104             : }
     105             : 
     106             : template <size_t Dim>
     107             : template <typename DataType>
     108             : tuples::TaggedTuple<
     109             :     ::Tags::deriv<gr::Tags::SpatialMetric<Dim, Frame::Inertial, DataType>,
     110             :                   tmpl::size_t<Dim>, Frame::Inertial>>
     111             : Minkowski<Dim>::variables(
     112             :     const tnsr::I<DataType, Dim>& x, double /*t*/,
     113             :     tmpl::list<
     114             :         ::Tags::deriv<gr::Tags::SpatialMetric<Dim, Frame::Inertial, DataType>,
     115             :                       tmpl::size_t<Dim>, Frame::Inertial>> /*meta*/) const
     116             :     noexcept {
     117             :   return {make_with_value<tnsr::ijj<DataType, Dim>>(x, 0.)};
     118             : }
     119             : 
     120             : template <size_t Dim>
     121             : template <typename DataType>
     122             : tuples::TaggedTuple<
     123             :     gr::Tags::InverseSpatialMetric<Dim, Frame::Inertial, DataType>>
     124             : Minkowski<Dim>::variables(const tnsr::I<DataType, Dim>& x, double /*t*/,
     125             :                           tmpl::list<gr::Tags::InverseSpatialMetric<
     126             :                               Dim, Frame::Inertial, DataType>> /*meta*/) const
     127             :     noexcept {
     128             :   tnsr::II<DataType, Dim> upper_metric(make_with_value<DataType>(x, 0.));
     129             :   for (size_t i = 0; i < Dim; ++i) {
     130             :     upper_metric.get(i, i) = 1.;
     131             :   }
     132             :   return {std::move(upper_metric)};
     133             : }
     134             : 
     135             : template <size_t Dim>
     136             : template <typename DataType>
     137             : tuples::TaggedTuple<
     138             :     gr::Tags::ExtrinsicCurvature<Dim, Frame::Inertial, DataType>>
     139             : Minkowski<Dim>::variables(const tnsr::I<DataType, Dim>& x, double /*t*/,
     140             :                           tmpl::list<gr::Tags::ExtrinsicCurvature<
     141             :                               Dim, Frame::Inertial, DataType>> /*meta*/) const
     142             :     noexcept {
     143             :   return {make_with_value<tnsr::ii<DataType, Dim>>(x, 0.)};
     144             : }
     145             : 
     146             : template <size_t Dim>
     147             : template <typename DataType>
     148             : tuples::TaggedTuple<gr::Tags::SqrtDetSpatialMetric<DataType>>
     149             : Minkowski<Dim>::variables(
     150             :     const tnsr::I<DataType, Dim>& x, double /*t*/,
     151             :     tmpl::list<gr::Tags::SqrtDetSpatialMetric<DataType>> /*meta*/) const
     152             :     noexcept {
     153             :   return {make_with_value<Scalar<DataType>>(x, 1.)};
     154             : }
     155             : 
     156             : template <size_t Dim>
     157             : template <typename DataType>
     158             : tuples::TaggedTuple<::Tags::dt<gr::Tags::SqrtDetSpatialMetric<DataType>>>
     159             : Minkowski<Dim>::variables(
     160             :     const tnsr::I<DataType, Dim>& x, double /*t*/,
     161             :     tmpl::list<::Tags::dt<gr::Tags::SqrtDetSpatialMetric<DataType>>> /*meta*/)
     162             :     const noexcept {
     163             :   return {make_with_value<Scalar<DataType>>(x, 0.)};
     164             : }
     165             : }  // namespace Solutions
     166             : }  // namespace gr
     167             : 
     168             : #define DIM(data) BOOST_PP_TUPLE_ELEM(0, data)
     169             : #define DTYPE(data) BOOST_PP_TUPLE_ELEM(1, data)
     170             : 
     171             : #define INSTANTIATE(_, data)                                                   \
     172             :   template tuples::TaggedTuple<gr::Tags::Lapse<DTYPE(data)>>                   \
     173             :   gr::Solutions::Minkowski<DIM(data)>::variables(                              \
     174             :       const tnsr::I<DTYPE(data), DIM(data)>& x, double /*t*/,                  \
     175             :       tmpl::list<gr::Tags::Lapse<DTYPE(data)>> /*meta*/) const noexcept;       \
     176             :   template tuples::TaggedTuple<::Tags::dt<gr::Tags::Lapse<DTYPE(data)>>>       \
     177             :   gr::Solutions::Minkowski<DIM(data)>::variables(                              \
     178             :       const tnsr::I<DTYPE(data), DIM(data)>& x, double /*t*/,                  \
     179             :       tmpl::list<::Tags::dt<gr::Tags::Lapse<DTYPE(data)>>> /*meta*/)           \
     180             :       const noexcept;                                                          \
     181             :   template tuples::TaggedTuple<::Tags::deriv<                                  \
     182             :       gr::Tags::Lapse<DTYPE(data)>, tmpl::size_t<DIM(data)>, Frame::Inertial>> \
     183             :   gr::Solutions::Minkowski<DIM(data)>::variables(                              \
     184             :       const tnsr::I<DTYPE(data), DIM(data)>& x, double /*t*/,                  \
     185             :       tmpl::list<                                                              \
     186             :           ::Tags::deriv<gr::Tags::Lapse<DTYPE(data)>, tmpl::size_t<DIM(data)>, \
     187             :                         Frame::Inertial>> /*meta*/) const noexcept;            \
     188             :   template tuples::TaggedTuple<                                                \
     189             :       gr::Tags::Shift<DIM(data), Frame::Inertial, DTYPE(data)>>                \
     190             :   gr::Solutions::Minkowski<DIM(data)>::variables(                              \
     191             :       const tnsr::I<DTYPE(data), DIM(data)>& x, double /*t*/,                  \
     192             :       tmpl::list<                                                              \
     193             :           gr::Tags::Shift<DIM(data), Frame::Inertial, DTYPE(data)>> /*meta*/)  \
     194             :       const noexcept;                                                          \
     195             :   template tuples::TaggedTuple<                                                \
     196             :       ::Tags::dt<gr::Tags::Shift<DIM(data), Frame::Inertial, DTYPE(data)>>>    \
     197             :   gr::Solutions::Minkowski<DIM(data)>::variables(                              \
     198             :       const tnsr::I<DTYPE(data), DIM(data)>& x, double /*t*/,                  \
     199             :       tmpl::list<::Tags::dt<                                                   \
     200             :           gr::Tags::Shift<DIM(data), Frame::Inertial, DTYPE(data)>>> /*meta*/) \
     201             :       const noexcept;                                                          \
     202             :   template tuples::TaggedTuple<                                                \
     203             :       ::Tags::deriv<gr::Tags::Shift<DIM(data), Frame::Inertial, DTYPE(data)>,  \
     204             :                     tmpl::size_t<DIM(data)>, Frame::Inertial>>                 \
     205             :   gr::Solutions::Minkowski<DIM(data)>::variables(                              \
     206             :       const tnsr::I<DTYPE(data), DIM(data)>& x, double /*t*/,                  \
     207             :       tmpl::list<::Tags::deriv<                                                \
     208             :           gr::Tags::Shift<DIM(data), Frame::Inertial, DTYPE(data)>,            \
     209             :           tmpl::size_t<DIM(data)>, Frame::Inertial>> /*meta*/) const noexcept; \
     210             :   template tuples::TaggedTuple<                                                \
     211             :       gr::Tags::SpatialMetric<DIM(data), Frame::Inertial, DTYPE(data)>>        \
     212             :   gr::Solutions::Minkowski<DIM(data)>::variables(                              \
     213             :       const tnsr::I<DTYPE(data), DIM(data)>& x, double /*t*/,                  \
     214             :       tmpl::list<gr::Tags::SpatialMetric<DIM(data), Frame::Inertial,           \
     215             :                                          DTYPE(data)>> /*meta*/)               \
     216             :       const noexcept;                                                          \
     217             :   template tuples::TaggedTuple<::Tags::dt<                                     \
     218             :       gr::Tags::SpatialMetric<DIM(data), Frame::Inertial, DTYPE(data)>>>       \
     219             :   gr::Solutions::Minkowski<DIM(data)>::variables(                              \
     220             :       const tnsr::I<DTYPE(data), DIM(data)>& x, double /*t*/,                  \
     221             :       tmpl::list<::Tags::dt<gr::Tags::SpatialMetric<                           \
     222             :           DIM(data), Frame::Inertial, DTYPE(data)>>> /*meta*/) const noexcept; \
     223             :   template tuples::TaggedTuple<::Tags::deriv<                                  \
     224             :       gr::Tags::SpatialMetric<DIM(data), Frame::Inertial, DTYPE(data)>,        \
     225             :       tmpl::size_t<DIM(data)>, Frame::Inertial>>                               \
     226             :   gr::Solutions::Minkowski<DIM(data)>::variables(                              \
     227             :       const tnsr::I<DTYPE(data), DIM(data)>& x, double /*t*/,                  \
     228             :       tmpl::list<::Tags::deriv<                                                \
     229             :           gr::Tags::SpatialMetric<DIM(data), Frame::Inertial, DTYPE(data)>,    \
     230             :           tmpl::size_t<DIM(data)>, Frame::Inertial>> /*meta*/) const noexcept; \
     231             :   template tuples::TaggedTuple<                                                \
     232             :       gr::Tags::InverseSpatialMetric<DIM(data), Frame::Inertial, DTYPE(data)>> \
     233             :   gr::Solutions::Minkowski<DIM(data)>::variables(                              \
     234             :       const tnsr::I<DTYPE(data), DIM(data)>& x, double /*t*/,                  \
     235             :       tmpl::list<gr::Tags::InverseSpatialMetric<DIM(data), Frame::Inertial,    \
     236             :                                                 DTYPE(data)>> /*meta*/)        \
     237             :       const noexcept;                                                          \
     238             :   template tuples::TaggedTuple<                                                \
     239             :       gr::Tags::ExtrinsicCurvature<DIM(data), Frame::Inertial, DTYPE(data)>>   \
     240             :   gr::Solutions::Minkowski<DIM(data)>::variables(                              \
     241             :       const tnsr::I<DTYPE(data), DIM(data)>& x, double /*t*/,                  \
     242             :       tmpl::list<gr::Tags::ExtrinsicCurvature<DIM(data), Frame::Inertial,      \
     243             :                                               DTYPE(data)>> /*meta*/)          \
     244             :       const noexcept;                                                          \
     245             :   template tuples::TaggedTuple<gr::Tags::SqrtDetSpatialMetric<DTYPE(data)>>    \
     246             :   gr::Solutions::Minkowski<DIM(data)>::variables(                              \
     247             :       const tnsr::I<DTYPE(data), DIM(data)>& x, double /*t*/,                  \
     248             :       tmpl::list<gr::Tags::SqrtDetSpatialMetric<DTYPE(data)>> /*meta*/)        \
     249             :       const noexcept;                                                          \
     250             :   template tuples::TaggedTuple<                                                \
     251             :       ::Tags::dt<gr::Tags::SqrtDetSpatialMetric<DTYPE(data)>>>                 \
     252             :   gr::Solutions::Minkowski<DIM(data)>::variables(                              \
     253             :       const tnsr::I<DTYPE(data), DIM(data)>& x, double /*t*/,                  \
     254             :       tmpl::list<                                                              \
     255             :           ::Tags::dt<gr::Tags::SqrtDetSpatialMetric<DTYPE(data)>>> /*meta*/)   \
     256             :       const noexcept;
     257             : 
     258             : GENERATE_INSTANTIATIONS(INSTANTIATE, (1, 2, 3), (double, DataVector))
     259             : 
     260             : #undef DIM
     261             : #undef DTYPE
     262             : #undef INSTANTIATE
     263             : /// \endcond

Generated by: LCOV version 1.14