In [3]:
import planets
import numpy as np
### SATELLITES of GAS GIANTS
io = {} ; europa = {} ; ganymede = {} ; callisto = {}
titan = {} ; enceladus = {}
# in m
io["distance"] = 5.9*planets.Jupiter.a
europa["distance"] = 9.4*planets.Jupiter.a
ganymede["distance"] = 15*planets.Jupiter.a
callisto["distance"] = 26.4*planets.Jupiter.a
titan["distance"] = 1.222e9
enceladus["distance"] = 3.*planets.Saturn.a
# in kg / m3
io["density"] = 3530.
europa["density"] = 3020.
ganymede["density"] = 1940.
callisto["density"] = 1850.
titan["density"] = 1880.
enceladus["density"] = 1600.
# in km
io["radius"] = 1e3*3642./2.
europa["radius"] = 1e3*3120./2.
ganymede["radius"] = 1e3*5268./2.
callisto["radius"] = 1e3*4800./2.
titan["radius"] = 1e3*2575.
enceladus["radius"] = 1e3*250.
# planet
io["planet"] = "Jupiter"
europa["planet"] = "Jupiter"
ganymede["planet"] = "Jupiter"
callisto["planet"] = "Jupiter"
titan["planet"] = "Saturn"
enceladus["planet"] = "Saturn"
# name
io["name"] = "Io"
europa["name"] = "Europa"
ganymede["name"] = "Ganymede"
callisto["name"] = "Callisto"
titan["name"] = "Titan"
enceladus["name"] = "Enceladus"
planet = planets.Planet()
for satellite in [titan,enceladus,io,europa,ganymede,callisto]:
planet.ini(satellite["planet"])
roche = planet.roche(satellite["density"],normalized=True)
print "%s --> Roche=%.1f vs. Distance=%.1f" % (satellite["name"],roche,satellite["distance"]/planet.a)
In [4]:
planet = planets.Planet()
for satellite in [titan,enceladus,io,europa,ganymede,callisto]:
planet.ini(satellite["planet"])
roche = planet.roche(satellite["density"],normalized=True,cst=1.44)
print "%s --> Hill=%.1f vs. Distance=%.1f" % (satellite["name"],roche,satellite["distance"]/planet.a)
(Les forces de marée peuvent le rapprocher vers la limite de Roche, puis le détruire).
In [20]:
def tidal_force(satellite):
planet = planets.Planet()
planet.ini(satellite["planet"])
tf = - 3. * planets.G * planet.mass * satellite["radius"] / (satellite["distance"]**3)
return tf
for satellite in [titan,enceladus,io,europa,ganymede,callisto]:
mass = (4./3.)*np.pi*(satellite["radius"]**3)*satellite["density"]
dR = -tidal_force(satellite)/(2.*planets.G*mass*(satellite["radius"]**-3))
print "%s --> %.2e m s-2 kg-1 --> %.1f km" % (satellite["name"],tidal_force(satellite),dR/1000.)
# déplacement induit
# fg(R)-fg(R+dR) = -dfgdR(R)dR
# -GMR^-2 --> derive dfgdR(R)=2GMR^-3
#dR = -tf/2GMR^3
Faire le système Pluton-Charon ?
In [ ]: