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 Expansion of a `Strahlkorper`. Should be zero on apparent horizons.
20 : ///
21 : /// \details Implements Eq. (5) in \cite Baumgarte1996hh. The input argument
22 : /// `grad_normal` is the quantity returned by
23 : /// `gr::surfaces::grad_unit_normal_one_form`, and `inverse_surface_metric`
24 : /// is the quantity returned by `gr::surfaces::inverse_surface_metric`.
25 : template <typename Frame>
26 1 : void expansion(gsl::not_null<Scalar<DataVector>*> result,
27 : const tnsr::ii<DataVector, 3, Frame>& grad_normal,
28 : const tnsr::II<DataVector, 3, Frame>& inverse_surface_metric,
29 : const tnsr::ii<DataVector, 3, Frame>& extrinsic_curvature);
30 :
31 : template <typename Frame>
32 1 : Scalar<DataVector> expansion(
33 : const tnsr::ii<DataVector, 3, Frame>& grad_normal,
34 : const tnsr::II<DataVector, 3, Frame>& inverse_surface_metric,
35 : const tnsr::ii<DataVector, 3, Frame>& extrinsic_curvature);
36 : /// @}
37 : } // namespace gr::surfaces
|