SpECTRE Documentation Coverage Report
Current view: top level - PointwiseFunctions/GeneralRelativity/Surfaces - ExtrinsicCurvature.hpp Hit Total Coverage
Commit: 965048f86d23c819715b3af1ca3f880c8145d4bb Lines: 2 3 66.7 %
Date: 2024-05-16 17:00:40
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/TypeAliases.hpp"
       7             : 
       8             : /// \cond
       9             : class DataVector;
      10             : namespace gsl {
      11             : template <typename>
      12             : struct not_null;
      13             : }  // namespace gsl
      14             : /// \endcond
      15             : 
      16             : namespace gr::surfaces {
      17             : /// @{
      18             : /*!
      19             :  * \ingroup SurfacesGroup
      20             :  * \brief Extrinsic curvature of a 2D `Strahlkorper` embedded in a 3D space.
      21             :  *
      22             :  * \details Implements Eq. (D.43) of Carroll's Spacetime and Geometry text.
      23             :  * Specifically,
      24             :  * \f$ K_{ij} = P^k_i P^l_j \nabla_{(k} S_{l)} \f$, where
      25             :  * \f$ P^k_i = \delta^k_i - S^k S_i \f$,
      26             :  * `grad_normal` is the quantity \f$ \nabla_k S_l \f$ returned by
      27             :  * `gr::surfaces::grad_unit_normal_one_form`, and `unit_normal_vector` is
      28             :  * \f$S^i = g^{ij} S_j\f$ where \f$S_j\f$ is the unit normal one form.
      29             :  * Not to be confused with the extrinsic curvature of a 3D spatial slice
      30             :  * embedded in 3+1 spacetime.
      31             :  * Because gr::surfaces::grad_unit_normal_one_form is symmetric, this
      32             :  * can be expanded into
      33             :  * \f$ K_{ij} = \nabla_{i}S_{j} - 2 S^k S_{(i}\nabla_{j)}S_k
      34             :  * + S_i S_j S^k S^l \nabla_{k} n_{l}\f$.
      35             :  */
      36             : template <typename Frame>
      37           1 : void extrinsic_curvature(
      38             :     gsl::not_null<tnsr::ii<DataVector, 3, Frame>*> result,
      39             :     const tnsr::ii<DataVector, 3, Frame>& grad_normal,
      40             :     const tnsr::i<DataVector, 3, Frame>& unit_normal_one_form,
      41             :     const tnsr::I<DataVector, 3, Frame>& unit_normal_vector);
      42             : 
      43             : template <typename Frame>
      44           1 : tnsr::ii<DataVector, 3, Frame> extrinsic_curvature(
      45             :     const tnsr::ii<DataVector, 3, Frame>& grad_normal,
      46             :     const tnsr::i<DataVector, 3, Frame>& unit_normal_one_form,
      47             :     const tnsr::I<DataVector, 3, Frame>& unit_normal_vector);
      48             : /// @}
      49             : }  // namespace gr::surfaces

Generated by: LCOV version 1.14