Skip to content

Find habitable zone boundaries

Goal

Compute habitable zone (HZ) boundary orbital distances (AU) as a function of stellar mass and age using mors.aOrbHZ.

Prerequisites

Install MORS and download stellar evolution data:

pip install fwl-mors
mors download all

Units

Units: Mstar in Mβ˜‰, Age in Myr, returned distances in AU.

Citation

If you use these HZ boundaries in research, cite Kopparapu et al. (2013) (HZ prescription) and Spada et al. (2013)(stellar parameters used).


Step 1: Compute HZ boundaries for a single star mass

By default, aOrbHZ uses stellar parameters at 5000 Myr if you don’t specify Age.

import mors

hz = mors.aOrbHZ(Mstar=1.0)

The returned dictionary contains these keys: - RecentVenus - RunawayGreenhouse - MoistGreenhouse - MaximumGreenhouse - EarlyMars - HZ

Print them:

for k in ["RecentVenus", "RunawayGreenhouse", "MoistGreenhouse",
          "MaximumGreenhouse", "EarlyMars", "HZ"]:
    print(k, hz[k])

HZ is defined (Johnstone et al. 2020) as the average of the RunawayGreenhouse and MoistGreenhouse orbital distances.


Step 2: Specify a stellar age

import mors
hz_1gyr = mors.aOrbHZ(Mstar=1.0, Age=1000.0)  # Myr
print(hz_1gyr["HZ"])

Step 3: Compute HZ boundaries for multiple masses

If you pass an array of masses, you get arrays back in the dictionary:

import numpy as np
import mors

masses = np.array([0.3, 0.5, 0.8, 1.0])
hz = mors.aOrbHZ(Mstar=masses, Age=5000.0)

print(hz["HZ"])              # array of AU
print(hz["RunawayGreenhouse"])

Common pitfalls

  • Age is in Myr (not years).
  • When passing arrays for Mstar, each returned dict entry becomes an array of the same length.