Validation: src/calliope/solubility.py
This page tracks the @pytest.mark.reference_pinned tests that anchor the
behaviour of calliope.solubility against published sources.
| Test id | Reference | Source page | Scope |
|---|---|---|---|
tests/test_solubility.py::TestSolubilityH2O::test_peridotite_default_matches_sossi_2023_fit |
Sossi et al. (2023)6 peridotite H2O fit: ppmw = 524 * p^0.5 |
src/calliope/solubility.py:39-41 (peridotite) |
Pins the default H2O parameterization at p = 100 bar against the Sossi 2023 constant; includes wrong-law (Dixon et al. 19952 basalt) and wrong-exponent (1.0 vs 0.5) discrimination guards. |
tests/test_solubility.py::TestSolubilityS2_xFeO::test_default_call_matches_gaillard_2022_earth_mantle_value |
Gaillard et al. (2022)4, EPSL 117255, S2 solubility law with x_FeO = 10 wt% Earth-mantle default |
doi:10.1016/j.epsl.2021.117255, src/calliope/solubility.py:75-93 |
Pins S2 ppmw at (p = 1 bar, T = 2500 K, fO2_shift = 0) against the closed-form Gaillard expression; couples to the Fischer 20113 IW buffer default. |
Re-derivation notes
H2O (Sossi 2023 peridotite default)
Power-law form: ppmw = const * p^exponent. Sossi et al. (2023) gives
const = 524 ppmw/bar^0.5 for peridotite melt. At p = 100 bar:
ppmw = 524 * sqrt(100) = 5240
A regression that swapped to the Dixon 1995 basalt constant (const = 965)
would land at 9650, off by 84% at the same pressure. A regression that
flipped the exponent (0.5 -> 1.0) would land at 52400, off by an order of
magnitude. Both are caught by the discrimination guards in the test.
S2 (Gaillard 2022 Earth-mantle default)
Closed form from Gaillard et al. (2022):
ln(X_S^melt) = 13.8426 - 26476/T + 0.124*x_FeO + 0.5*ln(p_S2/fO2)
At T = 2500 K, p_S2 = 1 bar, x_FeO = 10 wt%, fO2 from the Fischer 2011 IW buffer:
log10(fO2) = -4.3317 (Fischer at T=2500 K, dIW=0)
fO2 = 10^-4.3317 = 4.659e-5 bar
ln(p_S2/fO2) = ln(1 / 4.659e-5) = 9.9742
ln(X) = 13.8426 - 10.5904 + 1.24 + 0.5 * 9.9742
= 3.2522 + 1.24 + 4.9871
= 9.4793
ppmw = exp(9.4793) ~ 13086
Hidden coupling: the pin depends on the Fischer 2011 IW buffer; any change
to the buffer coefficients in oxygen_fugacity.py requires regenerating this
number. The test docstring flags this coupling explicitly. The reference
value in the test (13085.87) matches the closed-form ppmw above to the
4-significant-figure precision of the Fischer coefficients.
Anchor types
- H2O: published benchmark (Sossi 2023) plus wrong-law and wrong-exponent discrimination guards.
- S2: published benchmark (Gaillard 2022) plus closed-form scaling tests
for
x_FeO(parametrized 5/10/15/20 wt%) so the prefactor coefficient 0.124 is independently verified.
Cross-references
src/calliope/solubility.py:30-57: H2O parameterizations.src/calliope/solubility.py:60-100: S2 with thex_FeOkwarg.src/calliope/solubility.py:100+: N2 with thex_SiO2,x_Al2O3,x_TiO2kwargs (Dasgupta 20221) plus Libourel 20035 as the no-composition baseline.docs/Explanations/solubility.md: user-facing concept page with the validity envelope per parameterization.
References
-
R. Dasgupta, E. Falksen, A. Pal, C. Sun, The fate of nitrogen during parent body partial melting and accretion of the inner Solar System bodies at reducing conditions, Geochimica et Cosmochimica Acta, 336, 291-307, 2022. SciX. ↩
-
J. E. Dixon, E. M. Stolper, J. R. Holloway, An experimental study of water and carbon dioxide solubilities in mid-ocean ridge basaltic liquids. Part I: Calibration and solubility models, Journal of Petrology, 36(6), 1607-1631, 1995. SciX. ↩
-
R. A. Fischer, A. J. Campbell, G. A. Shofner, O. T. Lord, P. Dera, V. B. Prakapenka, Equation of state and phase diagram of FeO, Earth and Planetary Science Letters, 304, 496-502, 2011. SciX. ↩
-
F. Gaillard, F. Bernadou, M. Roskosz, M. A. Bouhifd, Y. Marrocchi, G. Iacono-Marziano, M. Moreira, B. Scaillet, G. Rogerie, Redox controls during magma ocean degassing, Earth and Planetary Science Letters, 577, 117255, 2022. SciX. ↩
-
G. Libourel, B. Marty, F. Humbert, Nitrogen solubility in basaltic melt. Part I. Effect of oxygen fugacity, Geochimica et Cosmochimica Acta, 67(21), 4123-4135, 2003. SciX. ↩
-
P. A. Sossi, P. M. E. Tollan, J. Badro, D. J. Bower, Solubility of water in peridotite liquids and the prevalence of steam atmospheres on rocky planets, Earth and Planetary Science Letters, 601, 117894, 2023. SciX. ↩