This project examines Hohmann transfer orbits as a method for traveling between the Galilean moons, with a particular focus on Ganymede and Callisto. This study begins with two-dimensional plots assuming static celestial bodies, including Earth to moon and Jupiter to Galilean moon transfers. The scope of the project then expands to incorporate positions depending on time and Newtonian simulations to capture moon-to-moon navigation. It also goes into other concepts, including escape velocity and deflection angle. By transitioning from static approximations to simulations with time, the project displays the complexity and precision required for orbital transfers in a multi-body environment.
Introduction
Introduction
Jupiter hosts 95 officially recognized moons. The four largest moons are known as the Galilean satellites, named after Galileo, who discovered them in 1610. These satellites are Io, Europa, Ganymede, and Callisto.
Currently, there is high interest in the Galilean moons due to their unique properties. Europa, Ganymede, and Callisto to harbor subsurface oceans, raising the possibility of life and habitability. Io is the most volcanically active body in the solar system, offering a unique opportunity to study volcanism. Ganymede also stands out for possessing a magnetic field, which is a rare trait for moons. As missions to travel to the Jovian system are planned, it is crucial to understand orbital dynamics, especially to minimize the velocity change, or Δv, required for trajectory maneuvers. The Δv is directly correlated with fuel consumption, making its reduction vital for sustainable and cost-effective traveling.
One of the most efficient methods for minimizing Δv is the Hohmann transfer orbit, which involves thrusting a spacecraft from its original orbit into an elliptical trajectory, followed by executing a second boost to enter and remain in the final desired orbit. This orbit has a minimum energy requirement because the rocket only needs to use thrust two times, thus reducing the amount of Δv and the amount of fuel required.
Currently, there is high interest in the Galilean moons due to their unique properties. Europa, Ganymede, and Callisto to harbor subsurface oceans, raising the possibility of life and habitability. Io is the most volcanically active body in the solar system, offering a unique opportunity to study volcanism. Ganymede also stands out for possessing a magnetic field, which is a rare trait for moons. As missions to travel to the Jovian system are planned, it is crucial to understand orbital dynamics, especially to minimize the velocity change, or Δv, required for trajectory maneuvers. The Δv is directly correlated with fuel consumption, making its reduction vital for sustainable and cost-effective traveling.
One of the most efficient methods for minimizing Δv is the Hohmann transfer orbit, which involves thrusting a spacecraft from its original orbit into an elliptical trajectory, followed by executing a second boost to enter and remain in the final desired orbit. This orbit has a minimum energy requirement because the rocket only needs to use thrust two times, thus reducing the amount of Δv and the amount of fuel required.
Nomenclature
Nomenclature
G: Gravitational constant = .M: Mass of the central celestial body around which the object is orbiting.m: Mass of the orbiting object.r: The radius of the central body.h: Orbital altitude above the surface of the central body.R: Orbital radius, which is the distance between the centers of mass of the two objects (r + h).v: Velocity of the celestial body.Δv: The radius of the central body.a: The semimajor axis of the orbit, also known as the longest radius in an elliptical orbit.b: The semiminor axis of the orbit, also known as the shortest radius in an elliptical orbit. It is also the impact parameter when it comes to hyperbolic trajectories.c: Distance between the center of the ellipse and the focus of the ellipsee: The eccentricity of the orbit, which describes the shape of the orbit (e = 0 is perfect circle, 0 < e < 1 is elliptical orbit, e > 1 is hyperbolic trajectory)
6.67430×
-11
10
3
m
-1
kg
-2
s
Starting Simple
Starting Simple
Speed Of Motion
Speed Of Motion
In Hohmann transfer orbit, it is assumed that the orbit paths are circular around the central body. To remain in a stable circular orbit, the required centripetal force must exactly match the gravitational force pulling inwards. The centripetal force, denoted as , is the force that keeps the object moving in a circular path. The gravitational force, which is written as , is the force of attraction the body has on the object. When these forces equal, the object is able to constantly experience free fall, and hence, remains in an orbit path as long as it travels at the same speed. Therefore, we can state that Equation 1.= for circular orbits. It is important to note that the mass of the rocket cancels out in the calculations.
2
mv
r+h
GMm
2
(r+h)
2
mv
r+h
GMm
2
(r+h)
Getting the mass and the radius of Earth:
In[]:=
mEarth = PlanetData, "Mass";rEarth = UnitConvertPlanetData, "Radius", "Meters";
Getting the mass and radius of the Moon and the distance between the Earth and the Moon:
In[]:=
mMoon = PlanetaryMoonData, "Mass";rMoon = UnitConvertPlanetaryMoonData, "Radius", "Meters";rMoonEarth = UnitConvert[AstroDistance["Earth","Moon"], "Meters"];
Storing the gravitational constant:
In[]:=
G = Quantity[6.67430*10^-11,"Meters^3 kg^-1 s^-2"];
From Equation 1, we can derive Equation 2. , which will calculate the velocity of an object orbiting a celestial body in a circular path. For example, we can find the speed of a rocket traveling on a low-earth-orbit (LEO) and the speed of the Moon orbiting the Earth. A LEO is when the orbiting object is close enough to Earth that its altitude above the surface can be assumed as zero.
v=
GM
r+h
Creating a function for calculating the speed for orbiting a central body and calculating the speed of a Low-Earth-Orbit and the Moon’s orbit around Earth:
In[]:=
findV[M_, R_]:=Sqrt[(G*M)/R];vEarthLEO = findV[mEarth, rEarth]; vMoon = findV[mMoon, rMoonEarth];
Escape Velocity And Altitude
Escape Velocity And Altitude
Let’s say we have a rocket orbiting the Earth at a speed of 3km/s . We can find the altitude (h) that the rocket must be at for it to remain at orbit around Earth at that speed. From Equation 1, we can also derive Equation 3. , and use it to find the altitude from Earth our rocket must be traveling around the Earth.
h=-r
GM
2
v
Creating a function to calculate altitude at a given velocity :
In[]:=
findAlt[M_, R_, V_]:= (G*M/V^2) - R;vel = Quantity[3000, "m/s"];h = findAlt[mEarth, rEarth, vel]
Out[]=
But at certain distances from the central body, there is a point where if the speed is large enough, an object can overcome the gravitational forces exerted by that central body. This concept is known as escape velocity, which is written as Equation 4. =. In this case, we can find the speed required to escape Earth’s gravity at our original altitude.
v
e
2GM
R
Finding the escape velocity at the original altitude:
In[]:=
escapeV [M_, R_]:=Sqrt[2*G*M/R];vEarth = escapeV[mEarth, (h + rEarth)]
Out[]=
Considering The Elliptical Transfer Path
Considering The Elliptical Transfer Path
Lets try to take the Hohmann transfer orbit into mind. For now, we keep assuming that the rocket and the Moon is orbiting in a circular path around Earth. We already know the radius of the Earth and the distance between Earth and the Moon. Since our transfer orbit will be elliptic, it is crucial to know the semimajor axis, or the longest orbit radius, of the transfer orbit, which can be calculated with Equation 5. . It is important to note that this formula works only for elliptic paths.
a=
r1+r2
2
Creating a function to find the semimajor axis of an ellipse:
In[]:=
semiMajor[r1_, r2_]:= (r1+ r2)/2
Calculate the semimajor axis for the ellipse between an orbit around Earth and the Moon’s orbit around Earth:
In[]:=
a = semiMajor[(rEarth+ h), rMoonEarth];
Now to move from one orbit to another, the rocket requires burns, or orbital maneuvers, to leave one orbit and then enter and stay orbiting in the second orbit. The first burn always occurs at the shortest distance from the focus (periapsis) and the second burn always occurs at the longest distance from the focus (apoapsis) of the ellipse, where the focus is the central body. Equation 6. and Equation 7. can be used to find the velocity at the first and second burn when traveling from inner orbit to outer orbit.
v=
2GM-+
1
r
inner
1
r
inner
r
outer
v=
2GM-+
1
r
outer
1
r
inner
r
outer
Creating functions to calculate the velocities at the burns for going from inner orbit to outer orbit:
In[]:=
vBurnInner1[M_, rInner_, rOuter_]:=Sqrt[2*G*M*((1/rInner) -(1/(rInner + rOuter)))]vBurnOuter1[M_, rInner_, rOuter_]:=Sqrt[2*G*M*((1/rOuter) -(1/(rInner + rOuter)))]
Finding the velocities of the burns for going from an orbit around Earth to the orbit of the Moon and the speed of orbiting :
In[]:=
v1 = vBurnInner1[mEarth, (rEarth+h), rMoonEarth];v2 = vBurnOuter1[mEarth,rMoonEarth, rMoonEarth];
The change in velocity is calculated as Equation 8. . In the case of traveling from inner orbit to an outer orbit, the spacecraft will need to increase its speed to get a larger kinetic energy that can be translated into gravitational potential energy, but will have to decrease its speed when entering the new orbit since objects orbit slower as they go further from the central body.
Δv=-
v
final
v
initial
Calculating our Δv values and out total Δv:
In[]:=
deltav1 =v1 - vEarth;deltav2 = vMoon-v2;tdeltav = Abs[deltav1] + Abs[deltav2]
Out[]=
Visualizing Hohmann Transfer Orbit Between Orbit Around Earth And Moon
Visualizing Hohmann Transfer Orbit Between Orbit Around Earth And Moon
For the same example of a rocket traveling at 3km/s, we can we visualize the transfer orbit between the rocket’s current orbit to the orbit of the moon. With the velocity of the rocket, we found the altitude (h).
Making lists of what is required in the visual for orbit around Earth to orbit of Moon:
In[]:=
EarthOrbits = {QuantityMagnitude[rEarth+h], QuantityMagnitude[rMoonEarth]};EarthRadii = {QuantityMagnitude[rEarth], QuantityMagnitude[rMoon]};EarthColors = {Green, Blue, Purple};EarthNames ={"Earth", "Rocket", "Moon"};
Getting the desired colors and names:
Finding the center of the ellipse:
Calculating the semiminor axis of the ellipse:
For now, we will ignore how the position of the bodies changes. We will simply assume that the positions of the bodies reside along on the y axis just for visualizing the orbit transfer.
Creating the plot with the orbit of the rocket around Earth and the Moon around Earth:
Creating the ellipse for transferring between the two orbits:
Plotting tangent lines to display where the Δv values were:
Labeling the Δv values with the values computed:
Displaying the finalized visual:
The Galilean Moons
The Galilean Moons
Gathering Important Information
Gathering Important Information
Before we move on to the calculations, we need to know the basic properties of the celestial bodies we are interested in, such as their masses and radii. Additionally, we will also need to the find the current distances between the centers of the objects so that we will not need to find altitude for every problem.
Finding the mass of the Galilean moons:
Finding the radius of the Galilean moons:
Finding the distance between the Galilean moons and Jupiter as well as between Ganymede and Callisto:
Orbits Of Galilean Moons
Orbits Of Galilean Moons
Visually, if we assume that the Galilean moons are orbiting Jupiter in a circular path, we can create a clear diagram that correctly scales their distances from Jupiter. This visual will be used much more for visualizing orbit transfers between these moons and Jupiter.
Storing the values of the distances between the Galilean moons and Jupiter as well as the moon radii:
Collecting all the desired colors and names:
Creating the visual of the Galilean orbits around Jupiter:
Eccentricity values closer to 0 approach a circular orbit and values between 0 and 1 are elliptical paths. When it is greater than 1 the orbit is a hyperbolic path. When we look at the orbital eccentricity of the Galilean moons around Jupiter, we observe that the values are very small and close to 0, which indicates that although they are not circular, they can be assumed to be nearly circular.
Finding eccentricity of the Galilean moon orbits:
Hohmann Transfer Between Jupiter And Galilean Moons
Hohmann Transfer Between Jupiter And Galilean Moons
We can create more two-dimensional plots of orbit transfers between Jupiter and each of the Galilean moons. We can assume that we are starting at a low-orbit around Jupiter and travel to other Galilean moons. For each of the four situations, we can utilize the properties of the elliptic transfer orbit and make the diagram to scale of their distances from Jupiter.
Jupiter And Io
Jupiter And Io
Semimajor axis, properties of plot, and creating Io’s orbit around Jupiter:
Center of ellipse, semiminor axis, and transfer orbit between Jupiter and Io:
DIsplaying the orbit transfer between Jupiter and Io:
Jupiter And Europa
Jupiter And Europa
Semimajor axis, properties of plot, and creating Europa’s orbit around Jupiter:
Center of ellipse, semiminor axis, and transfer orbit between Jupiter and Europa:
DIsplaying the orbit transfer between Jupiter and Europa:
Jupiter And Ganymede
Jupiter And Ganymede
Semimajor axis, properties of plot, and creating Ganymede’s orbit around Jupiter:
Center of ellipse, semiminor axis, and transfer orbit between Jupiter and Ganymede:
DIsplaying the orbit transfer between Jupiter and Ganymede:
Jupiter And Callisto
Jupiter And Callisto
Semimajor axis, properties of plot, and creating Callisto’s orbit around Jupiter:
Center of ellipse, semiminor axis, and transfer orbit between Jupiter and Callisto:
DIsplaying the orbit transfer between Jupiter and Callisto:
Creating a visual of the transfer orbits from Jupiter and each Galilean moon:
Traveling From Ganymede To Callisto
Traveling From Ganymede To Callisto
Now let’s get into the details of going from Ganymede’s orbit to Callisto’s orbit, which means we are traveling from inner orbit to outer orbit since Callisto is farther out from Jupiter. We will be using the distance between Ganymede and Jupiter and the distance between Callisto and Jupiter as our orbit radii. We will also find the speed at those orbits so we know at what speed we must stay in orbit and how to calculate our Δv values for the transfer.
Finding the speed of Ganymede and Callisto orbiting Jupiter:
Finding the semimajor axis for our elliptical orbit between Ganymede and Callisto:
When we go from inner orbit to outer orbit, we utilize prograde burns, which means that we are firing the spacecraft’s engine in the direction of the current velocity because we want to increase orbital energy. The orbital energy is the total of the kinetic and gravitational potential energy an object has.
Finding the velocities of the prograde burns for going from orbit of Ganymede to orbit of Callisto:
Calculating the Δv values and the total Δv:
Making lists of what is required in the visual for orbit around Ganymede to orbit around Callisto:
Creating the plot with the orbit of Ganymede and the orbit of Callisto:
Finding the center of the ellipse:
Calculating the semiminor axis of the ellipse:
Creating the ellipse for transferring between the two orbits:
Plotting tangent lines to display where the Δv values were:
Labeling the Δv values with the values computed:
Displaying the finalized visual:
Traveling From Callisto to Ganymede
Traveling From Callisto to Ganymede
We have been looking into going from one orbit to another, but our rocket must come from somewhere before it reaches those orbits. Lets say that you approach Callisto and you want to go to Ganymede’s orbit. You first want to think about a deflection. We want to go towards Callisto at a specific velocity and use Callisto’s gravity to deflect the path towards Ganymede. Keep in mind that we will have new formula for semimajor axis eccentricity (a) eccentricity (e) because the deflection path will be hyperbolic instead of elliptic.
Deflection Angle
Deflection Angle
Making a graph of the relationship between impact parameter and deflection angle:
Adding In Hohmann Transfer Orbit
Adding In Hohmann Transfer Orbit
Let’s think about the Hohmann transfer orbit from Callisto to Ganymede. We already know the velocity that Callisto and Ganymede are traveling at and we have the mass of Callisto and the radius of Callisto. Because we are going from outer orbit to inner orbit instead, our equations 6 and 7 will be switched for the first and second burns.
Creating functions to calculate the velocities at the burns for going from outer orbit to inner orbit:
When we go from outer orbit to inner orbit, we utilize retrograde burns, which means that we are firing the spacecraft’s engine in the opposition direction of the current velocity because we want to decrease orbital energy to move down towards Jupiter.
Finding the velocities of the retrograde burns for going from Callisto’s orbit to Ganymede’s orbit:
Calculating our Δv values and out total Δv:
Finding the center of the ellipse:
Calculating the semiminor axis of the ellipse:
Making lists of what is required in the visual for transferring between the orbit of Callisto to the orbit of Ganymede:
Creating the plot with the orbit of Ganymede and Callisto around Jupiter:
Creating the ellipse for transferring between the two orbits:
Plotting tangent lines to display where the Δv values were:
Labeling the Δv values with the values computed:
Displaying the finalized visual:
Hohmann Transfer Orbit Considering Time
Hohmann Transfer Orbit Considering Time
Throughout all of the orbit transfer, we neglected time and how the celestial bodies are consistently in motion in order to remain in orbit. Now, we want to find the orbit transfer for a specified date on earth.
Picking a date in year-month-day-hour-minute-second format:
For finding the positions of the bodies at a specified time, we use the International Celestial Reference System (ICRS). For finding the velocity of the body at that given moment, we are finding the change in position within a minute from the date time.
Creating the position and velocity functions:
Finding the positions of the celestial bodies:
Finding the velocities of the celestial bodies:
Retrieving NBodySimulation data on the Sun, Jupiter, and Ganymede:
Finding the simulation time of the NBodySimulation data on the Sun, Jupiter, and Ganymede:
Orbit of Ganymede relative to Jupiter in blue:
Retrieving NBodySimulation data on the Sun, Jupiter, and Callisto:
Finding the simulation time of the NBodySimulation data on the Sun, Jupiter, and Callisto:
Orbit of Callisto relative to Jupiter in purple:
Retrieving NBodySimulation[] data on the transferring from Callisto to Ganymede using the gravity of Jupiter:
Creating a function to calculate the time for traveling between orbits and calculating the time of flight on the transfer orbit:
Finding the date and time of arrival to Ganymede:
Finding the elliptical path from Callisto to Ganymede from starting time to the arrival time:
Displaying the final plot of the transfer orbit from Callisto to Ganymede with respect to time:
Conclusion
Conclusion
This project began by modeling Hohmann transfer orbits using static assumptions and evolved into a dynamic, physics-based simulation of Galilean moons. By integrating gravitational forces, position data that considers time, and velocity changes (Δv) optimization, we can visualize and analyze basic but realistic moon-to-moon trajectories. Along the way, we explored escape velocity, deflection mechanics, and the efficiency of elliptical transfers.
Future Directions
Future Directions
The project made several assumptions by neglecting orbital angles and inclination differences between moons, the gravitational influence of Jupiter’s other moons celestial bodies in the solar system, elliptical orbits, launching and landing, and several more. Removing these assumptions would increase the realism and accuracy of the calculations and simulations performed. In the future, finding a way to discover the optimal times to leave a planet or moon for another in a range of time could help identify low Δv launch windows. Additional refinements may involve mitigating space weather and accounting for more maneuvers a rocket would need as it is traveling from one location to another.
References
References
Modeling the dynamics of earth-moon-sun system through the 3-body-problem by Wolfram Education Programs Wolfram Community, STAFF PICKS, February 11, 2025 https://community.wolfram.com/groups/-/m/t/3391505
Animations XPlaned (2022, October 26). The Only Video Needed to Understand Orbital Mechanics [Video]. YouTube. https://www.youtube.com/watch?v=bcvnfQlz1x4
INTEGRAL PHYSICS (2022, April 18). Physics
Hohmann Transfers Explained Using BASIC Physics | Find Both Delta V’s [Video]. YouTube. https://www.youtube.com/watch?si=kVeDpUzZ2qCu4m_t&v=KdHI5Fn9Fu8&feature=youtu.be
Manley, S. (2017, September 25). How Gravity Assist Work [Video]. YouTube. https://www.youtube.com/watch?si=Pq3ep6YcdwEDjpFy&v=16jr7WWGSxo&feature=youtu.be
Animations XPlaned (2022, October 26). The Only Video Needed to Understand Orbital Mechanics [Video]. YouTube. https://www.youtube.com/watch?v=bcvnfQlz1x4
INTEGRAL PHYSICS (2022, April 18). Physics
Hohmann Transfers Explained Using BASIC Physics | Find Both Delta V’s [Video]. YouTube. https://www.youtube.com/watch?si=kVeDpUzZ2qCu4m_t&v=KdHI5Fn9Fu8&feature=youtu.be
Manley, S. (2017, September 25). How Gravity Assist Work [Video]. YouTube. https://www.youtube.com/watch?si=Pq3ep6YcdwEDjpFy&v=16jr7WWGSxo&feature=youtu.be
Acknowledgements
Acknowledgements
Special thanks to my mentor Shenghui Yang for guiding me in this project and giving me an introduction to orbital mechanics. I am grateful to Dr. José M. Martín-García for assistance with troubleshooting with NBodySimulation[], and to the students at WSRP for making this an incredible experience. I also extend my appreciation to Rory Foulger, Program Director; Eryn Gillam, Academic Director; and Megan Davis, Academic Director, for their support throughout the program.