38#include "../manifold/spacetime_manifold.hpp"
42using manifold::MetricTensor;
55 std::array<double, DIM>
x{};
56 std::array<double, DIM>
u{};
59 [[nodiscard]]
bool is_finite() const noexcept;
107 double dt) const noexcept;
GeodesicSolver() noexcept=default
constexpr int NUM_CHRISTOFFEL
Total Christoffel symbols: DIM³ = 64.
constexpr int DIM
Number of spacetime dimensions.
constexpr int christoffel_index(int lambda, int mu, int nu) noexcept
Pack (λ, μ, ν) into flat index in [0, 64).
State of a particle on a geodesic: position x^μ and 4-velocity u^μ.
std::array< double, DIM > u
4-velocity u^μ = dx^μ/dτ
bool is_finite() const noexcept
True iff all position and velocity components are finite.
std::array< double, DIM > x
Position x^μ (μ = 0…3)
Symmetric 4×4 spacetime metric tensor g_{μν}.