SpECTRE Documentation Coverage Report
Current view: top level - Evolution/Systems/Ccz4 - DerivChristoffel.hpp Hit Total Coverage
Commit: 047f5140268fc2680430d095fc7d96883747c68e Lines: 4 5 80.0 %
Date: 2024-12-09 22:54:54
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 spatial derivative of the conformal spatial christoffel
      15             :  * symbols of the second kind
      16             :  *
      17             :  * \details Computes the derivative as:
      18             :  * \f{align}
      19             :  *     \partial_k \tilde{\Gamma}^m{}_{ij} &=
      20             :  *       -2 D_k{}^{ml} (D_{ijl} + D_{jil} - D_{lij}) +
      21             :  *       \tilde{\gamma}^{ml}(\partial_{(k} D_{i)jl} + \partial_{(k} D_{j)il} -
      22             :  *       \partial_{(k} D_{l)ij})
      23             :  * \f}
      24             :  * where \f$\tilde{\gamma}^{ij}\f$, \f$D_{ijk}\f$, \f$\partial_l D_{ijk}\f$, and
      25             :  * \f$D_k{}^{ij}\f$ are the inverse conformal spatial metric defined by
      26             :  * `Ccz4::Tags::InverseConformalMetric`, the CCZ4 auxiliary variable defined by
      27             :  * `Ccz4::Tags::FieldD`, its spatial derivative, and the CCZ4 identity defined
      28             :  * by `Ccz4::Tags::FieldDUp`.
      29             :  */
      30             : template <typename DataType, size_t Dim, typename Frame>
      31           1 : void deriv_conformal_christoffel_second_kind(
      32             :     const gsl::not_null<tnsr::iJkk<DataType, Dim, Frame>*> result,
      33             :     const tnsr::II<DataType, Dim, Frame>& inverse_conformal_spatial_metric,
      34             :     const tnsr::ijj<DataType, Dim, Frame>& field_d,
      35             :     const tnsr::ijkk<DataType, Dim, Frame>& d_field_d,
      36             :     const tnsr::iJJ<DataType, Dim, Frame>& field_d_up);
      37             : 
      38             : template <typename DataType, size_t Dim, typename Frame>
      39           1 : tnsr::iJkk<DataType, Dim, Frame> deriv_conformal_christoffel_second_kind(
      40             :     const tnsr::II<DataType, Dim, Frame>& inverse_conformal_spatial_metric,
      41             :     const tnsr::ijj<DataType, Dim, Frame>& field_d,
      42             :     const tnsr::ijkk<DataType, Dim, Frame>& d_field_d,
      43             :     const tnsr::iJJ<DataType, Dim, Frame>& field_d_up);
      44             : /// @}
      45             : 
      46             : /// @{
      47             : /*!
      48             :  * \brief Computes the spatial derivative of the contraction of the conformal
      49             :  * spatial Christoffel symbols of the second kind
      50             :  *
      51             :  * \details Computes the derivative as:
      52             :  *
      53             :  * \f{align}
      54             :  *     \partial_k \tilde{\Gamma}^i &= -2 D_k{}^{jl} \tilde{\Gamma}^i_{jl} +
      55             :  *       \tilde{\gamma}^{jl} \partial_k \tilde{\Gamma}^i_{jl}
      56             :  * \f}
      57             :  *
      58             :  * where \f$\tilde{\gamma}^{ij}\f$ is the inverse conformal spatial metric
      59             :  * defined by `Ccz4::Tags::InverseConformalMetric`, \f$D_k{}^{ij}\f$ is the CCZ4
      60             :  * identity defined by `Ccz4::Tags::FieldDUp`, \f$\tilde{\Gamma}^k_{ij}\f$ is
      61             :  * the conformal spatial Christoffel symbols of the second kind defined by
      62             :  * `Ccz4::Tags::ConformalChristoffelSecondKind`, and
      63             :  * \f$\partial_k \tilde{\Gamma}^k_{ij}\f$ is its spatial derivative defined by
      64             :  * `Ccz4::Tags::DerivConformalChristoffelSecondKind`.
      65             :  */
      66             : template <typename DataType, size_t Dim, typename Frame>
      67           1 : void deriv_contracted_conformal_christoffel_second_kind(
      68             :     const gsl::not_null<tnsr::iJ<DataType, Dim, Frame>*> result,
      69             :     const tnsr::II<DataType, Dim, Frame>& inverse_conformal_spatial_metric,
      70             :     const tnsr::iJJ<DataType, Dim, Frame>& field_d_up,
      71             :     const tnsr::Ijj<DataType, Dim, Frame>& conformal_christoffel_second_kind,
      72             :     const tnsr::iJkk<DataType, Dim, Frame>&
      73             :         d_conformal_christoffel_second_kind);
      74             : 
      75             : template <typename DataType, size_t Dim, typename Frame>
      76             : tnsr::iJ<DataType, Dim, Frame>
      77           1 : deriv_contracted_conformal_christoffel_second_kind(
      78             :     const tnsr::II<DataType, Dim, Frame>& inverse_conformal_spatial_metric,
      79             :     const tnsr::iJJ<DataType, Dim, Frame>& field_d_up,
      80             :     const tnsr::Ijj<DataType, Dim, Frame>& conformal_christoffel_second_kind,
      81             :     const tnsr::iJkk<DataType, Dim, Frame>&
      82             :         d_conformal_christoffel_second_kind);
      83             : /// @}
      84             : }  // namespace Ccz4

Generated by: LCOV version 1.14