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