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/Tensor/TypeAliases.hpp"
9 : #include "Utilities/Gsl.hpp"
10 :
11 : namespace gh {
12 : /// @{
13 : /*!
14 : * \ingroup GeneralRelativityGroup
15 : * \brief Computes the time derivative of the spacetime metric from the
16 : * generalized harmonic quantities \f$\Pi_{a b}\f$, \f$\Phi_{i a b}\f$, and the
17 : * lapse \f$\alpha\f$ and shift \f$\beta^i\f$.
18 : *
19 : * \details Computes the derivative as:
20 : *
21 : * \f{align}{
22 : * \partial_t g_{a b} = \beta^i \Phi_{i a b} - \alpha \Pi_{a b}.
23 : * \f}
24 : */
25 : template <typename DataType, size_t SpatialDim, typename Frame>
26 1 : void time_derivative_of_spacetime_metric(
27 : gsl::not_null<tnsr::aa<DataType, SpatialDim, Frame>*> dt_spacetime_metric,
28 : const Scalar<DataType>& lapse,
29 : const tnsr::I<DataType, SpatialDim, Frame>& shift,
30 : const tnsr::aa<DataType, SpatialDim, Frame>& pi,
31 : const tnsr::iaa<DataType, SpatialDim, Frame>& phi);
32 :
33 : template <typename DataType, size_t SpatialDim, typename Frame>
34 1 : tnsr::aa<DataType, SpatialDim, Frame> time_derivative_of_spacetime_metric(
35 : const Scalar<DataType>& lapse,
36 : const tnsr::I<DataType, SpatialDim, Frame>& shift,
37 : const tnsr::aa<DataType, SpatialDim, Frame>& pi,
38 : const tnsr::iaa<DataType, SpatialDim, Frame>& phi);
39 : /// @}
40 : } // namespace gh
|