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/TypeAliases.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
|