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 1 : namespace Ccz4 { 12 : /// @{ 13 : /*! 14 : * \brief Computes the trace-free part of the extrinsic curvature 15 : * 16 : * \details Computes the trace-free part as: 17 : * 18 : * \f{align} 19 : * \tilde A_{ij} &= \phi^2 \left(K_{ij} - \frac{1}{3} K \gamma_{ij}\right) 20 : * \f} 21 : * 22 : * where \f$\phi^2\f$ is the square of the conformal factor defined by 23 : * `Ccz4::Tags::ConformalFactorSquared`, \f$\gamma_{ij}\f$ is the spatial metric 24 : * defined by `gr::Tags::SpatialMetric`, \f$K_{ij}\f$ is the extrinsic curvature 25 : * defined by `gr::Tags::ExtrinsicCurvature`, and \f$K\f$ is the trace of the 26 : * extrinsic curvature defined by `gr::Tags::TraceExtrinsicCurvature`. 27 : */ 28 : template <typename DataType, size_t Dim, typename Frame> 29 1 : void a_tilde(const gsl::not_null<tnsr::ii<DataType, Dim, Frame>*> result, 30 : const gsl::not_null<Scalar<DataType>*> buffer, 31 : const Scalar<DataType>& conformal_factor_squared, 32 : const tnsr::ii<DataType, Dim, Frame>& spatial_metric, 33 : const tnsr::ii<DataType, Dim, Frame>& extrinsic_curvature, 34 : const Scalar<DataType>& trace_extrinsic_curvature); 35 : 36 : template <typename DataType, size_t Dim, typename Frame> 37 1 : tnsr::ii<DataType, Dim, Frame> a_tilde( 38 : const Scalar<DataType>& conformal_factor_squared, 39 : const tnsr::ii<DataType, Dim, Frame>& spatial_metric, 40 : const tnsr::ii<DataType, Dim, Frame>& extrinsic_curvature, 41 : const Scalar<DataType>& trace_extrinsic_curvature); 42 : /// @} 43 : } // namespace Ccz4