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
|