# 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\) exerting the acceleration, the body \(B\) undergoing the acceleration, and the body \(C\) as the center of propagation.

Contents:

## 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:

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.

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:

Note

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

## Examples

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( ) ] )
```

```
SelectedAccelerationMap accelerationSettings;
accelerationSettings[ "Apollo" ][ "Earth" ].push_back(
std::make_shared< AccelerationSettings >( central_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) ] )
```

- language
cpp

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.