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 ylm { 11 : template <typename Frame> 12 : class Strahlkorper; 13 : } // namespace ylm 14 : namespace gsl { 15 : template <typename> 16 : struct not_null; 17 : } // namespace gsl 18 : /// \endcond 19 : 20 : namespace gr::surfaces { 21 : /*! 22 : * \ingroup SurfacesGroup 23 : * \brief Radial distance between two `Strahlkorper`s. 24 : * 25 : * \details Computes the pointwise radial distance \f$r_a-r_b\f$ between two 26 : * Strahlkorpers `strahlkorper_a` and `strahlkorper_b` that have the same 27 : * center. If the Strahlkorpers' resolutions are unequal, the lower-resolution 28 : * Strahlkorper is internally prolonged to match the higher-resolution 29 : * Strahlkorper. The `radial_distance` DataVector must already have size 30 : * consistent with the higher-resolution Strahlkorper's resolution (or the 31 : * common size when the resolutions match); a mismatch triggers an error. 32 : */ 33 : template <typename Frame> 34 1 : void radial_distance(gsl::not_null<Scalar<DataVector>*> radial_distance, 35 : const ylm::Strahlkorper<Frame>& strahlkorper_a, 36 : const ylm::Strahlkorper<Frame>& strahlkorper_b); 37 : } // namespace gr::surfaces