SpECTRE Documentation Coverage Report
Current view: top level - PointwiseFunctions/ScalarTensor/ScalarGaussBonnet - DoubleCovariantDerivativeOfCoupling.hpp Coverage Total Hit
Commit: 0d1d717af84a81fb1284a20c4013708fe85cc2f0 Lines: 85.7 % 7 6
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 "DataStructures/Tensor/Tensor.hpp"
       7              : #include "Utilities/Gsl.hpp"
       8              : 
       9              : namespace ScalarTensor::sgb {
      10              : /// @{
      11              : /*!
      12              :  * \brief Computes the projection of the second covariant derivative of the
      13              :  * coupling function onto the normal vector.
      14              :  *
      15              :  * \details Computes the term
      16              :  * \begin{equation}
      17              :  *   n^a n^b \nabla_a\nabla_b F[\Psi]
      18              :  *     = \frac{\delta^2 F[\Psi]}{\delta \Psi^2} \Pi^2
      19              :  *     + \frac{\delta F[\Psi]}{\delta \Psi} n^a n^b \nabla_a \nabla_b \Psi,
      20              :  * \end{equation}
      21              :  * where $\Psi$ is the scalar field, $\Pi$ is its conjugate momentum, $F[\Psi]$
      22              :  * is the coupling function and $n^a$ is the unit vector normal to
      23              :  * the spatial hypersurfaces.
      24              :  */
      25              : template <typename DataType>
      26            1 : void DDCoupling_normal_normal_projection(
      27              :     gsl::not_null<Scalar<DataType>*> DDCoupling_normal_normal_result,
      28              :     const Scalar<DataType>& coupling_prime,
      29              :     const Scalar<DataType>& coupling_prime_prime,
      30              :     const Scalar<DataType>& pi_scalar,
      31              :     const Scalar<DataType>& normal_normal_DD_scalar);
      32              : 
      33              : template <typename DataType>
      34            1 : Scalar<DataType> DDCoupling_normal_normal_projection(
      35              :     const Scalar<DataType>& coupling_prime,
      36              :     const Scalar<DataType>& coupling_prime_prime,
      37              :     const Scalar<DataType>& pi_scalar,
      38              :     const Scalar<DataType>& normal_normal_DD_scalar);
      39              : /// @}
      40              : 
      41              : /// @{
      42              : /*!
      43              :  * \brief Computes the mixed projection of the second covariant derivative of
      44              :  * the coupling function.
      45              :  *
      46              :  * \details Computes the term
      47              :  * \begin{equation}
      48              :  *   \gamma^a_i n^b \nabla_a \nabla_b F[\Psi]
      49              :  *     = - \frac{\delta^2 F[\Psi]}{\delta \Psi^2} \Pi \partial_i \Psi
      50              :  *     + \frac{\delta F[\Psi]}{\delta \Psi}
      51              :  *       \gamma^a_i n^b \nabla_a \nabla_b \Psi,
      52              :  * \end{equation}
      53              :  * where $\Psi$ is the scalar field, $\Pi$ is its conjugate momentum and
      54              :  * $F[\Psi]$ is the coupling function; $n^a$ is the unit vector normal to the
      55              :  * spatial hypersurfaces and $\gamma^a_b = \delta^a_b + n^a n_b$ is the
      56              :  * projection operator onto them.
      57              :  */
      58              : template <typename DataType, typename Frame>
      59            1 : void DDCoupling_normal_spatial_projection(
      60              :     gsl::not_null<tnsr::i<DataType, 3, Frame>*>
      61              :         DDCoupling_normal_spatial_result,
      62              :     const Scalar<DataType>& coupling_prime,
      63              :     const Scalar<DataType>& coupling_prime_prime,
      64              :     const Scalar<DataType>& pi_scalar,
      65              :     const tnsr::i<DataType, 3, Frame>& d_scalar_field,
      66              :     const tnsr::i<DataType, 3, Frame>& normal_spatial_DD_scalar);
      67              : 
      68              : template <typename DataType, typename Frame>
      69            1 : tnsr::i<DataType, 3, Frame> DDCoupling_normal_spatial_projection(
      70              :     const Scalar<DataType>& coupling_prime,
      71              :     const Scalar<DataType>& coupling_prime_prime,
      72              :     const Scalar<DataType>& pi_scalar,
      73              :     const tnsr::i<DataType, 3, Frame>& d_scalar_field,
      74              :     const tnsr::i<DataType, 3, Frame>& normal_spatial_DD_scalar);
      75              : /// @}
      76              : 
      77              : /// @{
      78              : /*!
      79              :  * \brief Computes the spatial projection of the second covariant derivative of
      80              :  * the coupling function.
      81              :  *
      82              :  * \details Computes the term
      83              :  * \begin{equation}
      84              :  *   \gamma^a_i \gamma^b_j \nabla_a \nabla_b F[\Psi]
      85              :  *     = \frac{\delta^2 F[\Psi]}{\delta \Psi^2} (\partial_i \Psi)
      86              :  *       (\partial_j \Psi)
      87              :  *     + \frac{\delta F[\Psi]}{\delta \Psi}
      88              :  *       \gamma^a_i \gamma^b_j \nabla_a \nabla_b \Psi,
      89              :  * \end{equation}
      90              :  * where $\Psi$ is the scalar field, $\Pi$ is its conjugate momentum and
      91              :  * $F[\Psi]$ is the coupling function; $n^a$ is the unit vector normal to the
      92              :  * spatial hypersurfaces and $\gamma^a_b = \delta^a_b + n^a n_b$ is the
      93              :  * projection operator onto them.
      94              :  */
      95              : template <typename DataType, typename Frame>
      96            1 : void DDCoupling_spatial_spatial_projection(
      97              :     gsl::not_null<tnsr::ii<DataType, 3, Frame>*>
      98              :         DDCoupling_spatial_spatial_result,
      99              :     const Scalar<DataType>& coupling_prime,
     100              :     const Scalar<DataType>& coupling_prime_prime,
     101              :     const tnsr::i<DataType, 3, Frame>& d_scalar_field,
     102              :     const tnsr::ii<DataType, 3, Frame>& spatial_spatial_DD_scalar);
     103              : 
     104              : template <typename DataType, typename Frame>
     105            1 : tnsr::ii<DataType, 3, Frame> DDCoupling_spatial_spatial_projection(
     106              :     const Scalar<DataType>& coupling_prime,
     107              :     const Scalar<DataType>& coupling_prime_prime,
     108              :     const tnsr::i<DataType, 3, Frame>& d_scalar_field,
     109              :     const tnsr::ii<DataType, 3, Frame>& spatial_spatial_DD_scalar);
     110              : /// @}
     111              : }  // namespace ScalarTensor::sgb
        

Generated by: LCOV version 2.0-1