SpECTRE Documentation Coverage Report
Current view: top level - PointwiseFunctions/GeneralRelativity/Surfaces - InverseSurfaceMetric.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             : /// \ingroup SurfacesGroup
      19             : /// \brief Computes inverse 2-metric \f$g^{ij}-S^i S^j\f$ of a Strahlkorper.
      20             : ///
      21             : /// \details See Eqs. (1--9) of \cite Baumgarte1996hh.
      22             : /// Here \f$S^i\f$ is the (normalized) unit vector to the surface,
      23             : /// and \f$g^{ij}\f$ is the 3-metric.  This object is expressed in the
      24             : /// usual 3-d Cartesian basis, so it is written as a 3-dimensional tensor.
      25             : /// But because it is orthogonal to \f$S_i\f$, it has only 3 independent
      26             : /// degrees of freedom, and could be expressed as a 2-d tensor with an
      27             : /// appropriate choice of basis. The input argument `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             : template <typename Frame>
      30           1 : void inverse_surface_metric(
      31             :     gsl::not_null<tnsr::II<DataVector, 3, Frame>*> result,
      32             :     const tnsr::I<DataVector, 3, Frame>& unit_normal_vector,
      33             :     const tnsr::II<DataVector, 3, Frame>& upper_spatial_metric);
      34             : 
      35             : template <typename Frame>
      36           1 : tnsr::II<DataVector, 3, Frame> inverse_surface_metric(
      37             :     const tnsr::I<DataVector, 3, Frame>& unit_normal_vector,
      38             :     const tnsr::II<DataVector, 3, Frame>& upper_spatial_metric);
      39             : /// @}
      40             : }  // namespace gr::surfaces

Generated by: LCOV version 1.14