Skip to content

API Reference

Dan Lee-Odinson edited this page Jun 15, 2026 · 1 revision

API Reference

Public functions of the orbital_thermal package (v1.0.0). Import name is orbital_thermal. Signatures are abbreviated where noted; see each function's docstring for full keyword lists.

Optical/environment keywords. Functions marked (+env) also accept, after the shown arguments: emissivity=0.91, solar_absorptivity=0.20, earth_ir=237.0, albedo=0.30, solar_constant=1361.0, t_space=2.7255. The orbit-coupled functions additionally require the keyword assume_sun_shielded (no default).


constants

Name Value Meaning
SIGMA_SB 5.670374419184429e-8 Stefan–Boltzmann constant (full binary64 SI-derived), W·m⁻²·K⁻⁴
ZERO_CELSIUS 273.15 0 °C in kelvin

radiation — gray-body flux and area

Function Purpose
net_flux(T, emissivity, T_sink=0.0) Net radiated flux of a gray surface, W/m²
required_area(Q, T, emissivity, T_sink=0.0) Emitting area (m²) to reject Q W at T
area_ratio(T1, T2, T_sink=0.0) Exact area ratio A(T1)/A(T2) at equal duty (Cor. 1.1)
effective_sink_temperature(view_factor, T_sink) Lumped F-weighted sink: T_s^eff = F^¼·T_s

equilibrium — steady temperature ↔ capacity (inverses)

Function Purpose
equilibrium_temperature(Q, area, emissivity, T_sink=0.0) Steady temperature to reject Q W through area
radiative_capacity(T, area, emissivity, T_sink=0.0) Heat-rejection capacity (W) at fixed T

bounds — Theorems 1–5 / Corollary 2.1

Function Purpose
fixed_work_area_per_watt(T_h, T_c, T_sink, emissivity=1.0) Reversible radiator area per watt of work, m²/W (Thm 1)
optimal_cold_fraction(a=1.0, tol=1e-12, max_iter=1000) Area-optimal T_c/T_h (the 3/4 rule; Thm 2)
nonzero_sink_optimum(T_h, T_sink, tol=1e-10, max_iter=1000) Optimal cold-side T_c* for T_sink>0 (Thm 3 quintic)
quintic_residual(T_c, T_h, T_sink) Dimensionless residual of the Thm 3 quintic
conversion_area_penalty(T_h, T_c, eta, T_sink=0.0) Area penalty A_engine/A_direct ≥ (T_h/T_c)³ (Cor. 2.1)
carnot_cop_cooling(T_c, T_h) Carnot cooling-COP ceiling T_c/(T_h−T_c) (Thm 4)
heating_cop(cop_cooling) First-law identity COP_h = COP_c + 1
heat_pump_overhead(cop_cooling) Electrical overhead per watt lifted, 1/COP_c
heat_pump_area_ratio(cop_cooling, T1, T2, T_sink=0.0) Area ratio for rejecting at T2 vs T1
recirculation_amplification(eta) Self-powering bound 1/(1−η) (Thm 5)

environment — orbit geometry and exact view factor

Function Purpose
orbital_period(altitude_km) Circular orbital period, s
orbital_radius(altitude_km) / orbital_velocity(altitude_km) Radius (km) / speed (km/s)
earth_angular_radius(altitude_km) Angular radius of Earth from orbit, rad
nadir_view_factor(altitude_km) View factor of a nadir-facing plate (the maximum)
sphere_view_factor(altitude_km, tilt_deg) Exact tilted-plate-to-sphere Earth view factor
beta_critical(altitude_km) Beta angle above which the orbit never enters eclipse, deg
eclipse_fraction(altitude_km, beta_deg) / eclipse_duration(...) Shadow fraction (0–1) / seconds per orbit

sink — orbit-varying effective sink

Function Purpose
orbital_effective_sink_temperature(altitude_km, beta_deg, u_deg, tilt_deg=0.0, *, assume_sun_shielded) (+env) Effective sink T, K, at one orbit phase
sink_profile(altitude_km, beta_deg, tilt_deg=0.0, n=361, *, assume_sun_shielded) (+env) (u_deg, T_s_eff) arrays over one orbit
orbit_averaged_sink(altitude_km, beta_deg, tilt_deg=0.0, n=720, *, assume_sun_shielded) (+env) Radiatively-weighted orbit-average sink (discrete)
analytic_orbit_averaged_sink(altitude_km, beta_deg, tilt_deg=0.0, *, assume_sun_shielded) (+env) Grid-free closed-form orbit-average sink
sink_temperature_series(view_factor, beta_deg, u_deg, *, assume_sun_shielded) (+env) Centralized sink equation (scalar or vectorized)
sink_fourth_power_mean(view_factor, beta_deg, *, assume_sun_shielded) (+env) Exact continuous mean of T_s_eff⁴, K⁴
analytic_albedo_orbit_mean(beta_deg) Exact ⟨max(0,cosβ·cos u)⟩ = cosβ/π
subpoint_albedo_factor(beta_deg, u_deg) Subpoint albedo approximation max(0,cosβ·cos u)
in_eclipse(altitude_km, beta_deg, u_deg) True if in Earth's cylindrical shadow
disk_integrated_albedo_factor(...) Faithful disk-integrated albedo — NotImplementedError (roadmap)

transient — one-node solver, certificate, bias

Function Purpose
simulate(altitude_km, beta_deg, q_load, areal_heat_capacity, tilt_deg=0.0, *, assume_sun_shielded, ...) (+env) March RK4 to periodic steady state; returns (t, T, T_sink) or (..., diagnostics)
averaging_bias(altitude_km, beta_deg, q_load, areal_heat_capacity, tilt_deg=0.0, *, assume_sun_shielded, require_convergence=True, **kw) Transient mean vs steady averaged-sink; dict of metrics (raises unless certified)
steady_state_temperature(q_load, t_sink, emissivity=0.91) Closed-form steady temperature for a constant sink
thermal_time_constant(areal_heat_capacity, temperature, emissivity=0.91) Linearized radiative time constant τ, s
areal_heat_capacity(layers) C_A = Σ ρ·c_p·t from (material, thickness) layers
build_areal_heat_capacity(build_name) C_A of a named build in REPRESENTATIVE_BUILDS
coolant_rho_cp(fluid='Ammonia', T=300.0) (density, specific heat) from CoolProp (needs [fluids])

simulate keywords (beyond +env): n_orbits=30, steps_per_orbit=2000, t0_guess=None, convergence_tol_K=1e-3, energy_tol_K=1e-2, check_time_resolution=False, time_tol_K=1e-2, time_safety_factor=2.0, max_orbits=None, return_diagnostics=False, raise_on_nonconvergence=False.

Data: MATERIALS (aluminum_6061, cover_glass, silicon, cfrp_substrate, ammonia_liquid, copper, fr4_pcb) and REPRESENTATIVE_BUILDS (bare_aluminum_sheet_2mm, pv_on_substrate, radiator_with_coolant, integrated_compute_radiator).

mccalip_replication — faithful port of McCalip's model

Function Purpose
run_case(overrides=None) Full nested result for one parameter case (matches the oracle)
calculate_thermal(s) / calculate_orbital(s) / calculate_breakeven(s) The three coded sub-models
nadir_view_factor(alt_km) / sun_tracking_view_factors(alt_km, beta_deg) His heuristic view factors

mccalip_exact_vf — the exact-view-factor correction (headline)

Function Purpose
exact_per_face_view_factors(altitude_km, beta_deg, n=72) Orbit-averaged exact per-face Earth VF (side A, side B)
equilibrium_temperature_with_view_factors(overrides, vf_side_a, vf_side_b) McCalip's heat balance with arbitrary per-face VFs
eqtemp_exact_vf(overrides=None, n=72) His equilibrium temperature recomputed with exact VFs
correction_table_vs_beta(betas=(0, 15, 30, 45, 60, 75, 90), overrides=None, n=72) Correction (K) vs orbit beta angle

fluids — ammonia coolant screen (optional, needs CoolProp)

Function Purpose
critical_temperature(fluid='Ammonia') / critical_pressure(...) Critical point (K / Pa)
critical_margin(T, fluid='Ammonia') Headroom to the critical point, T_crit − T (K)
saturation_pressure(T, fluid='Ammonia') Saturation (vapor) pressure, Pa
saturated_densities(T, fluid='Ammonia') (liquid, vapor) densities on the saturation curve
phase_state(T, P, fluid='Ammonia') CoolProp phase label at (T, P)
provenance(fluid='Ammonia') Pinned CoolProp version + EOS citation for the record

Clone this wiki locally