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