Line data Source code
1 0 : // Distributed under the MIT License.
2 : // See LICENSE.txt for details.
3 :
4 : #pragma once
5 :
6 : #include "DataStructures/Tensor/Tensor.hpp"
7 : #include "Utilities/Gsl.hpp"
8 :
9 : namespace gr {
10 : /// @{
11 : /*!
12 : * \brief Computes the momentum constraint in vacuum.
13 : *
14 : * \details The momentum constraint in vacuum GR reads (cf. Eq. (2.96) in
15 : * \cite BaumgarteShapiro)
16 : * \begin{equation}
17 : * \mathcal{M}_i = D_j {K^j}_i - D_i K = 0,
18 : * \end{equation}
19 : * where $D_i$ is the covariant derivative with respect to the spatial metric,
20 : * $K_{ij}$ is the extrinsic curvature and $K$ is its trace.
21 : */
22 : template <typename DataType, size_t SpatialDim, typename Frame>
23 1 : void momentum_constraint_in_vacuum(
24 : gsl::not_null<tnsr::i<DataType, SpatialDim, Frame>*> momentum_constraint,
25 : const tnsr::ijj<DataType, SpatialDim, Frame>& d_extrinsic_curvature,
26 : const tnsr::i<DataType, SpatialDim, Frame>& d_trace_extrinsic_curvature,
27 : const tnsr::II<DataType, SpatialDim, Frame>& inverse_spatial_metric);
28 :
29 : template <typename DataType, size_t SpatialDim, typename Frame>
30 1 : tnsr::i<DataType, SpatialDim, Frame> momentum_constraint_in_vacuum(
31 : const tnsr::ijj<DataType, SpatialDim, Frame>& d_extrinsic_curvature,
32 : const tnsr::i<DataType, SpatialDim, Frame>& d_trace_extrinsic_curvature,
33 : const tnsr::II<DataType, SpatialDim, Frame>& inverse_spatial_metric);
34 : /// @}
35 :
36 : } // namespace gr
|