Thursday, 23 April 2026

The Evaporating Giant: Modeling Atmosphere Loss on HD 189733b

We are looking at HD 189733b, one of the most well-studied "Hot Jupiters". Since it orbits so close to its parent star, its atmosphere is essentially being "boiled off" by intense X-ray and UV radiation. 
HD 189733b looks like a peaceful blue marble from a distance, but don't let the color fool you. Located 63 light-years away, this "Hot Jupiter" is a nightmare world where winds howl at seven times the speed of sound and the rain is made of molten glass.
  1. We used the following physics and mathematics 
  2. The Shell Method: To find the volume of just the "air" around the planet, we subtract the volume of the solid core (r - t) from the total volume (r).
  3. Density Context: The density used (50) gm/cc is a simplified estimate for the upper thermosphere where the escape happens; for comparison, Earth's sea-level density is about 1,225 g/m3. ​
  4. The Big Picture: While 6 times 10^8 kg/sec sounds like a catastrophic amount of lost gas, your code reveals the scale of gas giants. Even at that rate, HD 189733b will likely survive for trillions of years—long after its parent star has finished its lifecycle.


import math

def calculate_shell_volume(radius, thickness):
    """
    Calculates the volume of a spherical shell.
    Formula: V = 4/3 * π * (R³ - (R - t)³)
    """
    inner_radius = radius - thickness
    volume = (4/3) * math.pi * (radius**3 - inner_radius**3)
    return volume

# --- Planetary Constants & Data ---
PLANET_NAME = "HD 189733b"
MASS_RATIO_TO_JUPITER = 1.13
ATM_DENSITY = 50           # grams per cubic meter (estimated)
LOSS_RATE_KG_PER_SEC = 6.0e08  # mass loss rate in kg/s

# Reference values for Jupiter
MASS_JUPITER_KG = 1.9e27 
ATM_THICKNESS_KM = 1000  
RADIUS_JUPITER_KM = 70000 

# --- Calculations ---

# 1. Determine the mass of HD 189733b
mass_planet_kg = MASS_RATIO_TO_JUPITER * MASS_JUPITER_KG

# 2. Estimate atmosphere volume (using Jupiter as a structural proxy)
# Result is in km³, which we convert to m³ for density calculations
vol_atm_km3 = calculate_shell_volume(RADIUS_JUPITER_KM, ATM_THICKNESS_KM)
vol_atm_m3 = vol_atm_km3 * 1e09 

# 3. Calculate total mass of the atmospheric layer
# Density (g/m³) * Volume (m³) / 1000 = Total Mass in kg
mass_atm_kg = (vol_atm_m3 * ATM_DENSITY) / 1000

# 4. Time Conversion Constants
SECONDS_IN_YEAR = 60 * 60 * 24 * 365

# 5. Lifespan Estimations
years_to_lose_atm = (mass_atm_kg / LOSS_RATE_KG_PER_SEC) / SECONDS_IN_YEAR
years_to_lose_planet = (mass_planet_kg / LOSS_RATE_KG_PER_SEC) / SECONDS_IN_YEAR

# --- Output Results ---
print(f"--- Planetary Analysis: {PLANET_NAME} ---")
print(f"Total Planetary Mass:     {mass_planet_kg:.2e} kg")
print(f"Atmospheric Mass:        {mass_atm_kg:.2e} kg")
print("-" * 40)
print(f"Time to lose atmosphere:  {years_to_lose_atm:,.0f} years")
print(f"Time to total evaporation: {years_to_lose_planet:,.0f} years")

No comments:

Post a Comment

Visualizing Particle Kinematics with Python

Understanding the relationship between position, velocity, and acceleration is fundamental to physics. However, seeing how these variables e...