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 hamiltonian constraint in vacuum. 13 : * 14 : * \details The hamiltonian constraint in vacuum GR reads (cf. Eq. (2.90) in 15 : * \cite BaumgarteShapiro) 16 : * \begin{equation} 17 : * \mathcal{H} = R + K^2 - K_{ij}K^{ij} = 0, 18 : * \end{equation} 19 : * where $R$ is the spatial Ricci scalar, $K_{ij}$ is the extrinsic curvature 20 : * and $K$ is its trace. 21 : */ 22 : template <typename DataType, size_t SpatialDim, typename Frame> 23 1 : void hamiltonian_constraint_in_vacuum( 24 : gsl::not_null<Scalar<DataType>*> hamiltonian_constraint, 25 : const Scalar<DataType>& ricci_scalar, 26 : const Scalar<DataType>& trace_extrinsic_curvature, 27 : const tnsr::II<DataType, SpatialDim, Frame>& inverse_spatial_metric, 28 : const tnsr::ii<DataType, SpatialDim, Frame>& extrinsic_curvature); 29 : 30 : template <typename DataType, size_t SpatialDim, typename Frame> 31 1 : Scalar<DataType> hamiltonian_constraint_in_vacuum( 32 : const Scalar<DataType>& ricci_scalar, 33 : const Scalar<DataType>& trace_extrinsic_curvature, 34 : const tnsr::II<DataType, SpatialDim, Frame>& inverse_spatial_metric, 35 : const tnsr::ii<DataType, SpatialDim, Frame>& extrinsic_curvature); 36 : /// @} 37 : } // namespace gr