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 Ccz4 {
12 : /// @{
13 : /*!
14 : * \brief Computes the sum of the Ricci scalar and twice the divergence of the
15 : * upper spatial Z4 constraint
16 : *
17 : * \details Computes the expression as:
18 : *
19 : * \f{align}
20 : * R + 2 \nabla_k Z^k &=
21 : * \phi^2 \tilde{\gamma}^{ij} (R_{ij} + \nabla_i Z_j + \nabla_j Z_i)
22 : * \f}
23 : *
24 : * where \f$R\f$ is the spatial Ricci scalar, \f$Z^i\f$ is the upper spatial Z4
25 : * constraint defined by `Ccz4::Tags::Z4ConstraintUp`, \f$phi^2\f$ is the square
26 : * of the conformal factor defined by `Ccz4::Tags::ConformalFactorSquared`,
27 : * \f$\tilde{\gamma}^{ij}\f$ is the inverse conformal spatial metric defined by
28 : * `Ccz4::Tags::InverseConformalMetric`, \f$R_{ij}\f$ is the spatial Ricci
29 : * tensor defined by `Ccz4::Tags::Ricci`, and \f$\nabla_j Z_i\f$ is the gradient
30 : * of the spatial Z4 constraint defined by `Ccz4::Tags::GradZ4Constraint`.
31 : */
32 : template <typename DataType, size_t Dim, typename Frame>
33 1 : void ricci_scalar_plus_divergence_z4_constraint(
34 : const gsl::not_null<Scalar<DataType>*> result,
35 : const Scalar<DataType>& conformal_factor_squared,
36 : const tnsr::II<DataType, Dim, Frame>& inverse_conformal_spatial_metric,
37 : const tnsr::ii<DataType, Dim, Frame>& spatial_ricci_tensor,
38 : const tnsr::ij<DataType, Dim, Frame>& grad_spatial_z4_constraint);
39 :
40 : template <typename DataType, size_t Dim, typename Frame>
41 1 : Scalar<DataType> ricci_scalar_plus_divergence_z4_constraint(
42 : const Scalar<DataType>& conformal_factor_squared,
43 : const tnsr::II<DataType, Dim, Frame>& inverse_conformal_spatial_metric,
44 : const tnsr::ii<DataType, Dim, Frame>& spatial_ricci_tensor,
45 : const tnsr::ij<DataType, Dim, Frame>& grad_spatial_z4_constraint);
46 : /// @}
47 : } // namespace Ccz4
|