Skip to content

Module map

Which implementation each module option routes to, per physics area. The tables below are rendered from the source by tools/generate_module_map.py and verified against the config validators and the wrapper dispatch code; a machine-readable copy lives in module_map.json.

Module selection happens in each area's wrapper; invalid option values are rejected when the config file loads. Secondary switches within an area are listed below its table.

Atmosphere climate (atmos_clim.module)

Option Entry point Role
"agni" atmos_clim/agni.py:run_agni Radiative-convective solver (Julia)
"dummy" atmos_clim/dummy.py:RunDummyAtm Grey-body placeholder
"janus" atmos_clim/janus.py:RunJANUS Convective adiabat profile

Atmospheric chemistry (atmos_chem.module)

Option Entry point Role
"dummy" atmos_chem/dummy.py:run_dummy_chem Rainout-only placeholder
"vulcan" atmos_chem/vulcan.py:run_vulcan Kinetics network (VULCAN)
none not applicable Chemistry disabled
  • atmos_chem.when: runs the network 'online' during the loop, 'offline' afterwards, or 'manually' (atmos_chem/wrapper.py:run_chemistry).

Atmospheric escape (escape.module)

Option Entry point Role
"boreas" escape/boreas.py:run_boreas Hydrodynamic escape (BOREAS)
"dummy" escape/wrapper.py:run_dummy Fixed bulk escape rate
"zephyrus" escape/wrapper.py:run_zephyrus Energy-limited escape (ZEPHYRUS)
none not applicable Escape disabled; rates zeroed

Interior energetics (interior_energetics.module)

Option Entry point Role
"aragog" interior_energetics/aragog.py:AragogRunner T-P formalism (Python)
"boundary" interior_energetics/boundary.py:BoundaryRunner Boundary-layer energy balance
"dummy" interior_energetics/dummy.py:run_dummy_int Prescribed cooling
"spider" interior_energetics/spider.py:RunSPIDER T-S formalism (C, PETSc)

Interior structure (interior_struct.module)

Option Entry point Role
"dummy" interior_energetics/wrapper.py:determine_interior_radius_with_dummy Two-layer analytic structure (interior_struct/dummy.py)
"spider" interior_energetics/wrapper.py:determine_interior_radius Radius root-find against the energetics module
"zalmoxis" interior_energetics/wrapper.py:determine_interior_radius_with_zalmoxis Self-consistent EOS structure (interior_struct/zalmoxis.py)
none not applicable Structure solve disabled

Orbit and tides (orbit.module)

Option Entry point Role
"dummy" orbit/dummy.py:run_dummy_orbit Fixed Im(k2) tides
"lovepy" orbit/lovepy.py:run_lovepy Multi-phase tidal heating (Julia)
none not applicable Tides disabled; Im(k2) set to zero
  • orbit.evolve = true: evolves semi-major axis and eccentricity each iteration (orbit/orbit.py:evolve_orbital).
  • orbit.satellite = true: evolves the satellite orbit instead of the planetary one (orbit/satellite.py:update_satellite).

Outgassing (outgas.module)

Option Entry point Role
"atmodeller" outgas/atmodeller.py:calc_surface_pressures_atmodeller Equilibrium chemistry (atmodeller)
"calliope" outgas/calliope.py:calc_surface_pressures fO2-buffered equilibrium (CALLIOPE)
"dummy" outgas/dummy.py:calc_surface_pressures_dummy Prescribed pressures
  • outgas.vapourise = true: adds rock-vapour equilibrium (LavAtmos) after the outgassing solve (outgas/lavatmos.py:run_vapourisation).
  • outgas.h2_binodal = true: applies the H2-silicate binodal miscibility limit (outgas/binodal.py:apply_binodal_h2).

Star (star.module)

Option Entry point Role
"dummy" star/dummy.py:generate_spectrum Black-body star
"mors" star/wrapper.py:init_star Stellar evolution via the mors package
none not applicable No stellar evolution
  • star.mors.tracks: selects the Spada or Baraffe evolution tracks within MORS (star/wrapper.py:get_new_spectrum).

Observations (observe.module)

Option Entry point Role
"petitRADTRANS" observe/petitRADTRANS.py:transit_depth Synthetic transit and eclipse spectra
none not applicable Observational synthesis disabled