Validation: src/zephyrus/hydrodynamic.py
This page tracks the @pytest.mark.reference_pinned tests that anchor the hydrodynamic branch of zephyrus.hydrodynamic.
| Test id | Reference | Scope |
|---|---|---|
tests/test_hydrodynamic.py::test_erkaev_table1_enhancement_factors |
Erkaev et al. (2007), A&A 472, 329, Table 1 and Eq. (17) | The tidal factor reproduces all seven printed enhancement factors 1/K within 1%, falling monotonically toward 1 with xi. |
tests/test_hydrodynamic.py::test_caldiroli_fit_spot_values_and_flux_guard |
Caldiroli et al. (2022), A&A 663, A122, Appendix A.1 | Six spot evaluations across the validity box reproduce the fitted efficiency to 5% across three decades of collapse, and the complex-valued region below F_XUV/rho_p = \(10^{2}\) (cgs) is rejected with a flag rather than evaluated. |
tests/test_hydrodynamic.py::test_wind_mean_masses_against_lopez_pairs |
Lopez (2017), MNRAS 472, 245 (printed wind mean-mass pairs) | The generalised ionised-wind rule reproduces the printed steam pair (3, 6) in atomic mass units and the per-ion entry 1.3 of the printed H/He pair. The per-particle entry 0.62 of that pair is not reachable: the rule makes the per-ion mass twice the per-particle mass, so 1.3 halves to 0.65, and the 4.6% gap is an inconsistency between the two printed entries rather than an error in the rule. The test pins 0.65 and asserts 0.62 is excluded, so a future tolerance cannot absorb the difference. |
tests/test_hydrodynamic.py::test_murray_clay_fiducial_hot_jupiter_anchors |
Murray-Clay et al. (2009), ApJ 693, 23 (fiducial hot Jupiter) | The chain reproduces their base Jeans parameter 5.49 (5%), places the sonic point at lambda_b/2 planetary radii inside their stated 2 to 4, and lands their printed sonic-point Knudsen numbers (\(10^{-4}\) and \(10^{-5}\) at 450 and \(5 \times 10^{5}\) erg cm^-2 s^-1) within a factor 3 using their Coulomb cross section. |
tests/test_hydrodynamic.py::test_photon_limited_rate_and_its_crossover_with_el |
Owen & Alvarez (2016), ApJ 816, 34, Eq. (10) (analytical limit) | The photon-limited rate is one particle per intercepted ionising photon, linear in the flux and free of the planet mass, and on the energy-limited rate's own disk it crosses the energy-limited rate at the efficiency G M_p K m_ion / (e_ion R_p), on asymmetric inputs that move the crossover under a swapped radius or a missing tidal factor. |
Notes
Murray-Clay et al. fit their numerical models with flux exponents 0.6 (radiation-recombination limited) and 0.9 (energy limited) where the analytic chains carry 0.5 and 1.0. Rate-level comparisons against their models must budget that difference, which the diagnostics module documents as reporting constants.
Anchor type
Published benchmarks (printed tables, fits, and worked values) and one analytical limit (the photon-limited crossover).
Date of last comparison against the sources: 2026-09-28.