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