multibody_vesc

macro_lightning.physics.multibody_vesc(*vescs, vo: Union[None, Sequence] = None, accumulate: bool = False)[source]

Multi-body escape velocity.

Parameters
*vescs: |Quantity|

velocities, ordered from 1st to last body.

volist of Quantity or None, optional

The orbital velocity of object vescs[i+1] around object vescs[i]. if list of quantities, must match vescs in length if None (default) then orbits are assumed circular.

accumulatebool

whether to return the accumulative escape velocity for each larger system (True), or just the total escape velocity (False, default).

Returns
Quantity

The compound escape velocity if accumulate False (default) then scalar, else accumulated vector.

See also

twobody_vesc()

Notes

From Wikipedia [1]:

When escaping a compound system, such as a moon orbiting a planet or a planet orbiting a sun, a rocket that leaves at escape velocity (ve1) for the first (orbiting) body, (e.g. Earth) will not travel to an infinite distance because it needs an even higher speed to escape gravity of the second body (e.g. the Sun). Near the Earth, the rocket’s trajectory will appear parabolic, but it will still be gravitationally bound to the second body and will enter an elliptical orbit around that body, with an orbital speed similar to the first body.

To escape the gravity of the second body once it has escaped the first body the rocket will need to be traveling at the escape velocity for the second body (ve2) (at the orbital distance of the first body). However, when the rocket escapes the first body it will still have the same orbital speed around the second body that the first body has (vo). So its excess velocity as it escapes the first body will need to be the difference between the orbital velocity and the escape velocity. With a circular orbit, escape velocity is sqrt(2) times the orbital speed. Thus the total escape velocity vte when leaving one body orbiting a second and seeking to escape them both is, under simplified assumptions:

\[v_{te}=\sqrt{(v_{e2} - v_o)^2 + v_{e1}^2} = \sqrt{\left(k v_{e2}\right)^2 + v_{e1}^2}\]

where \(k=1−1/\sqrt{2} \sim 0.2929\) for circular orbits.

References

1

https://en.wikipedia.org/wiki/Escape_velocity

Examples

For a rocket attempting to escape the Galaxy.

>>> vesc_earth = 11.186 * u.km / u.s
>>> vesc_sun_at_earth = 42.1 * u.km / u.s
>>> vesc_gal_at_sun = 550 * u.km / u.s
>>> multibody_vesc(vesc_earth, vesc_sun_at_earth, vesc_gal_at_sun)
<Quantity 161.94929058 km / s>