Third-body accelerations

Settings for a third-body and central gravitational acceleration are defined identically to direct gravitational accelerations. During the creation and processing of the acceleration models, TudatPy distinguishes three different cases, for the body \(A\) undergoing the acceleration, the body \(B\) exerting the acceleration, and the body \(C\) as the center of propagation.

Third-body perturbation

The central body is non-inertial (e.g. is not the SSB), and the acceleration is not exerted by central body. The acceleration is then computed from:

\[\mathbf{a}=\nabla U_{B}(\mathbf{r}_{A})-\nabla U_{B}(\mathbf{r}_{C})\]

This is the typical third body perturbation, for instance for the case where \(A\) is a spacecraft orbiting the Moon, \(B\) is the Earth and \(C\) is the Moon

Central gravitational acceleration

The central body is non-inertial (e.g. is not the SSB), and the acceleration is exerted by the central body. If the body undergoing the acceleration itself possesses a gravity field, the gravitational back-reaction is accounted for when setting up the gravitational acceleration.

\[\mathbf{a}=\nabla U_{B}(\mathbf{r}_{A})-\nabla U_{A}(\mathbf{r}_{B})\]

The backreaction (accounted for by the second term) becomes relevant when computing the mutual dynamics of two natural bodies. For instance, when propagating the Moon w.r.t. the Earth, and adding the point-mass gravitational acceleration of the Earth on the Moon, the following acceleration will be used:


with \(\mathbf{r}\) the position of the Moon w.r.t. the Earth. The backreaction is taken into account by using the sum of the gravitational parameters (as opposed to only the gravitational parameter of the Earth).

Direct gravitational acceleration

The central body is inertial (e.g. is the SSB). In this case, the direct acceleration is used:

\[\mathbf{a}=\nabla U_{B}(\mathbf{r}_{A})\]


We stress that the above works equally well for point-mass, spherical-harmonic and mutual-spherical-harmonic accelerations (see examples below).


When propagating the dynamics of a spacecraft w.r.t. the Moon, the following will add the third-body point-mass acceleration of the Earth:

acceleration_settings_on_vehicle = dict(
            Earth = [ propagation_setup.acceleration.point_mass_gravity( ) ]  )

while the following will add the third-body spherical-harmonic acceleration of the Earth (zonal coefficients up to degree 4)

maximum_degree = 4
maximum_order = 0
acceleration_settings_on_vehicle = dict(
            Earth = [ propagation_setup.acceleration.spherical_harmonic_gravity(maximum_degree, maximum_order) ] )

Note that above two code blocks are identical to those given as example in the API documentation entries of point_mass_gravity() and spherical_harmonic_acceleration(). It is through the definition of the central body that a direct, central or third-body acceleration is created.