SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/Ccz4 - Christoffel.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 <cstddef>
       7              : 
       8              : #include "DataStructures/Tensor/TypeAliases.hpp"
       9              : #include "Utilities/Gsl.hpp"
      10              : 
      11              : namespace Ccz4 {
      12              : /// @{
      13              : /*!
      14              :  * \brief Computes the conformal spatial christoffel symbols of the second kind.
      15              :  *
      16              :  * \details Computes the christoffel symbols as:
      17              :  * \f{align}
      18              :  *     \tilde{\Gamma}^k_{ij} &=
      19              :  *         \tilde{\gamma}^{kl} (D_{ijl} + D_{jil} - D_{lij})
      20              :  * \f}
      21              :  * where \f$\tilde{\gamma}^{ij}\f$ and \f$D_{ijk}\f$ are the inverse conformal
      22              :  * spatial metric and the CCZ4 auxiliary variable defined by
      23              :  * `Ccz4::Tags::InverseConformalMetric` and `Ccz4::Tags::FieldD`, respectively.
      24              :  */
      25              : template <typename DataType, size_t Dim, typename Frame>
      26            1 : void conformal_christoffel_second_kind(
      27              :     const gsl::not_null<tnsr::Ijj<DataType, Dim, Frame>*> result,
      28              :     const tnsr::II<DataType, Dim, Frame>& inverse_conformal_spatial_metric,
      29              :     const tnsr::ijj<DataType, Dim, Frame>& field_d);
      30              : 
      31              : template <typename DataType, size_t Dim, typename Frame>
      32            1 : tnsr::Ijj<DataType, Dim, Frame> conformal_christoffel_second_kind(
      33              :     const tnsr::II<DataType, Dim, Frame>& inverse_conformal_spatial_metric,
      34              :     const tnsr::ijj<DataType, Dim, Frame>& field_d);
      35              : /// @}
      36              : 
      37              : /// @{
      38              : /*!
      39              :  * \brief Computes the spatial christoffel symbols of the second kind.
      40              :  *
      41              :  * \details Computes the christoffel symbols as:
      42              :  * \f{align}
      43              :  *     \Gamma^k_{ij} &= \tilde{\Gamma}^k_{ij} -
      44              :  *         \tilde{\gamma}^{kl} (\tilde{\gamma}_{jl} P_i +
      45              :  *                              \tilde{\gamma}_{il} P_j -
      46              :  *                              \tilde{\gamma}_{ij} P_l)
      47              :  * \f}
      48              :  * where \f$\tilde{\gamma}^{ij}\f$, \f$\tilde{\gamma}_{ij}\f$,
      49              :  * \f$\tilde{\Gamma}^k_{ij}\f$, and \f$P_i\f$ are the conformal spatial metric,
      50              :  * the inverse conformal spatial metric, the conformal spatial christoffel
      51              :  * symbols of the second kind, and the CCZ4 auxiliary variable defined by
      52              :  * `Ccz4::Tags::ConformalMetric`, `Ccz4::Tags::InverseConformalMetric`,
      53              :  * `Ccz4::Tags::ConformalChristoffelSecondKind`, and `Ccz4::Tags::FieldP`,
      54              :  * respectively.
      55              :  */
      56              : template <typename DataType, size_t Dim, typename Frame>
      57            1 : void christoffel_second_kind(
      58              :     const gsl::not_null<tnsr::Ijj<DataType, Dim, Frame>*> result,
      59              :     const tnsr::ii<DataType, Dim, Frame>& conformal_spatial_metric,
      60              :     const tnsr::II<DataType, Dim, Frame>& inverse_conformal_spatial_metric,
      61              :     const tnsr::i<DataType, Dim, Frame>& field_p,
      62              :     const tnsr::Ijj<DataType, Dim, Frame>& conformal_christoffel_second_kind);
      63              : 
      64              : template <typename DataType, size_t Dim, typename Frame>
      65            1 : tnsr::Ijj<DataType, Dim, Frame> christoffel_second_kind(
      66              :     const tnsr::ii<DataType, Dim, Frame>& conformal_spatial_metric,
      67              :     const tnsr::II<DataType, Dim, Frame>& inverse_conformal_spatial_metric,
      68              :     const tnsr::i<DataType, Dim, Frame>& field_p,
      69              :     const tnsr::Ijj<DataType, Dim, Frame>& conformal_christoffel_second_kind);
      70              : /// @}
      71              : 
      72              : /// @{
      73              : /*!
      74              :  * \brief Computes the contraction of the conformal spatial Christoffel symbols
      75              :  * of the second kind.
      76              :  *
      77              :  * \details Computes the contraction as:
      78              :  *
      79              :  * \f{align}
      80              :  *     \tilde{\Gamma}^i &= \tilde{\gamma}^{jl} \tilde{\Gamma}^i_{jl}
      81              :  * \f}
      82              :  *
      83              :  * where \f$\tilde{\gamma}^{ij}\f$ is the inverse conformal spatial metric
      84              :  * defined by `Ccz4::Tags::InverseConformalMetric` and
      85              :  * \f$\tilde{\Gamma}^k_{ij}\f$ is the conformal spatial Christoffel symbols of
      86              :  * the second kind defined by `Ccz4::Tags::ConformalChristoffelSecondKind`.
      87              :  */
      88              : template <typename DataType, size_t Dim, typename Frame>
      89            1 : void contracted_conformal_christoffel_second_kind(
      90              :     const gsl::not_null<tnsr::I<DataType, Dim, Frame>*> result,
      91              :     const tnsr::II<DataType, Dim, Frame>& inverse_conformal_spatial_metric,
      92              :     const tnsr::Ijj<DataType, Dim, Frame>& conformal_christoffel_second_kind);
      93              : 
      94              : template <typename DataType, size_t Dim, typename Frame>
      95            1 : tnsr::I<DataType, Dim, Frame> contracted_conformal_christoffel_second_kind(
      96              :     const tnsr::II<DataType, Dim, Frame>& inverse_conformal_spatial_metric,
      97              :     const tnsr::Ijj<DataType, Dim, Frame>& conformal_christoffel_second_kind);
      98              : /// @}
      99              : }  // namespace Ccz4
        

Generated by: LCOV version 2.0-1