SpECTRE Documentation Coverage Report
Current view: top level - PointwiseFunctions/GeneralRelativity - WeylPropagating.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 66.7 % 3 2
Test Date: 2026-10-22 17:29:42
Legend: Lines:     hit not hit

            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              : 
      10              : /// \cond
      11              : namespace gsl {
      12              : template <typename>
      13              : struct not_null;
      14              : }  // namespace gsl
      15              : /// \endcond
      16              : 
      17              : namespace gr {
      18              : /// @{
      19              : /*!
      20              :  * \ingroup GeneralRelativityGroup
      21              :  * \brief Computes the propagating modes of the Weyl tensor
      22              :  *
      23              :  * \details The Weyl tensor evolution system in vacuum has six characteristic
      24              :  * fields, of which two (\f$ U^{8\pm}\f$) are proportional to the
      25              :  * Newman-Penrose components of the Weyl tensor \f$\Psi_4\f$ and \f$\Psi_0\f$.
      26              :  * These represent the true gravitational-wave degrees of freedom, and
      27              :  * can be written down in terms of \f$3+1\f$ quantities as
      28              :  * \cite Kidder2004rw (see Eq. 75):
      29              :  *
      30              :  * \f{align}
      31              :  * U^{8\pm}_{ij} &= \left(P^{k}_i P^{l}_j - \frac{1}{2} P_{ij} P^{kl}\right)
      32              :  *                  \left(R_{kl} + K K_{kl} - K_k^m K_{ml}
      33              :  *                       \mp n^m \nabla_m K_{kl} \pm n^m \nabla_{(k}K_{l)m}
      34              :  *                       \right),\\
      35              :  *               &= \left(P^{k}_i P^{l}_j - \frac{1}{2} P_{ij} P^{kl}\right)
      36              :  *                  \left(E_{kl} \mp n^m \nabla_m K_{kl}
      37              :  *                        \pm n^m \nabla_{(k}K_{l)m}\right),
      38              :  * \f}
      39              :  *
      40              :  * where \f$R_{ij}\f$ is the spatial Ricci tensor, \f$K_{ij}\f$ is the
      41              :  * extrinsic curvature, \f$K\f$ is the trace of \f$K_{ij}\f$, \f$E_{ij}\f$ is
      42              :  * the electric part of the Weyl tensor in vacuum, \f$n^i\f$ is the outward
      43              :  * directed unit normal vector to the interface, \f$\nabla_i\f$ denotes the
      44              :  * covariant derivative, and \f$P^{ij}\f$ and its index-raised and lowered forms
      45              :  * project tensors transverse to \f$n^i\f$.
      46              :  */
      47              : template <typename DataType, size_t SpatialDim, typename Frame>
      48            1 : tnsr::ii<DataType, SpatialDim, Frame> weyl_propagating(
      49              :     const tnsr::ii<DataType, SpatialDim, Frame>& ricci,
      50              :     const tnsr::ii<DataType, SpatialDim, Frame>& extrinsic_curvature,
      51              :     const tnsr::II<DataType, SpatialDim, Frame>& inverse_spatial_metric,
      52              :     const tnsr::ijj<DataType, SpatialDim, Frame>& cov_deriv_extrinsic_curvature,
      53              :     const tnsr::I<DataType, SpatialDim, Frame>& unit_interface_normal_vector,
      54              :     const tnsr::II<DataType, SpatialDim, Frame>& projection_IJ,
      55              :     const tnsr::ii<DataType, SpatialDim, Frame>& projection_ij,
      56              :     const tnsr::Ij<DataType, SpatialDim, Frame>& projection_Ij, double sign);
      57              : 
      58              : template <typename DataType, size_t SpatialDim, typename Frame>
      59            1 : void weyl_propagating(
      60              :     gsl::not_null<tnsr::ii<DataType, SpatialDim, Frame>*> weyl_prop_u8,
      61              :     const tnsr::ii<DataType, SpatialDim, Frame>& ricci,
      62              :     const tnsr::ii<DataType, SpatialDim, Frame>& extrinsic_curvature,
      63              :     const tnsr::II<DataType, SpatialDim, Frame>& inverse_spatial_metric,
      64              :     const tnsr::ijj<DataType, SpatialDim, Frame>& cov_deriv_extrinsic_curvature,
      65              :     const tnsr::I<DataType, SpatialDim, Frame>& unit_interface_normal_vector,
      66              :     const tnsr::II<DataType, SpatialDim, Frame>& projection_IJ,
      67              :     const tnsr::ii<DataType, SpatialDim, Frame>& projection_ij,
      68              :     const tnsr::Ij<DataType, SpatialDim, Frame>& projection_Ij, double sign);
      69              : /// @}
      70              : }  // namespace gr
        

Generated by: LCOV version 2.0-1