12 #include "DataStructures/DataBox/Tag.hpp"
15 #include "PointwiseFunctions/GeneralRelativity/Tags.hpp"
16 #include "Utilities/ContainerHelpers.hpp"
19 #include "Utilities/TaggedTuple.hpp"
42 template <
size_t SpatialDim,
typename Frame,
typename DataType>
45 spacetime_deriv_spacetime_metric,
47 const tnsr::i<DataType, SpatialDim, Frame>& deriv_lapse,
48 const tnsr::I<DataType, SpatialDim, Frame>&
shift,
49 const tnsr::I<DataType, SpatialDim, Frame>& dt_shift,
50 const tnsr::iJ<DataType, SpatialDim, Frame>& deriv_shift,
52 const tnsr::ii<DataType, SpatialDim, Frame>& dt_spatial_metric,
53 const tnsr::ijj<DataType, SpatialDim, Frame>&
56 template <
size_t SpatialDim,
typename Frame,
typename DataType>
59 const tnsr::i<DataType, SpatialDim, Frame>& deriv_lapse,
60 const tnsr::I<DataType, SpatialDim, Frame>&
shift,
61 const tnsr::I<DataType, SpatialDim, Frame>& dt_shift,
62 const tnsr::iJ<DataType, SpatialDim, Frame>& deriv_shift,
64 const tnsr::ii<DataType, SpatialDim, Frame>& dt_spatial_metric,
65 const tnsr::ijj<DataType, SpatialDim, Frame>&
77 template <
size_t SpatialDim,
typename Frame>
81 using argument_tags = tmpl::list<
88 tmpl::size_t<SpatialDim>,
Frame>,
92 tmpl::size_t<SpatialDim>,
Frame>>;
94 using return_type = tnsr::abb<DataVector, SpatialDim, Frame>;
96 static constexpr
auto function =
static_cast<void (*)(
98 spacetime_deriv_spacetime_metric,
100 const tnsr::i<DataVector, SpatialDim, Frame>&,
101 const tnsr::I<DataVector, SpatialDim, Frame>&,
102 const tnsr::I<DataVector, SpatialDim, Frame>&,
103 const tnsr::iJ<DataVector, SpatialDim, Frame>&,
104 const tnsr::ii<DataVector, SpatialDim, Frame>&,
105 const tnsr::ii<DataVector, SpatialDim, Frame>&,
106 const tnsr::ijj<DataVector, SpatialDim, Frame>&) noexcept>(
107 &gr::derivatives_of_spacetime_metric<SpatialDim, Frame, DataVector>);