Line data Source code
1 0 : // Distributed under the MIT License. 2 : // See LICENSE.txt for details. 3 : 4 : #pragma once 5 : 6 : #include <cstddef> 7 : 8 : #include "DataStructures/Tensor/Tensor.hpp" 9 : #include "Utilities/Gsl.hpp" 10 : 11 : namespace gr { 12 : /// @{ 13 : 14 : /*! 15 : * \brief Computes the coordinate geodesic acceleration in the inertial frame. 16 : * 17 : * \details The geodesic acceleration in coordinate form is given by 18 : * \f{equation} 19 : * \frac{d^2 x^i}{d t^2} = (v^i \Gamma^0_{00} - \Gamma^i_{00} ) + 2 v^j (v^i 20 : * \Gamma^0_{j0} - \Gamma^i_{j0} ) + v^j v^k (v^i \Gamma^0_{jk} - \Gamma^i_{jk} 21 : * ), \f} 22 : * where \f$v^i\f$ is the coordinate velocity, \f$\Gamma^\mu_{\nu \rho}\f$ are 23 : * the spacetime Christoffel symbols of the second kind, and all latin indices 24 : * are spatial. 25 : */ 26 : template <typename DataType, size_t Dim> 27 1 : void geodesic_acceleration( 28 : gsl::not_null<tnsr::I<DataType, Dim>*> acceleration, 29 : const tnsr::I<DataType, Dim>& velocity, 30 : const tnsr::Abb<DataType, Dim>& christoffel_second_kind); 31 : 32 : template <typename DataType, size_t Dim> 33 1 : tnsr::I<DataType, Dim> geodesic_acceleration( 34 : const tnsr::I<DataType, Dim>& velocity, 35 : const tnsr::Abb<DataType, Dim>& christoffel_second_kind); 36 : /// @} 37 : 38 : } // namespace gr