From a7fcacf5011c4a3bc15fb2349a8e0bf0bec97a56 Mon Sep 17 00:00:00 2001 From: Karen Stuitje Date: Tue, 2 Jun 2026 14:14:32 +0200 Subject: [PATCH 1/6] update stylesheets: move extra.css to proteus_theme.css; add footnotes; add new extra.css for diagram --- docs/stylesheets/extra.css | 258 ++--------------------------- docs/stylesheets/footnotes.css | 21 +++ docs/stylesheets/proteus_theme.css | 250 ++++++++++++++++++++++++++++ 3 files changed, 285 insertions(+), 244 deletions(-) create mode 100644 docs/stylesheets/footnotes.css create mode 100644 docs/stylesheets/proteus_theme.css diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css index 83c5b8f..af97b0d 100644 --- a/docs/stylesheets/extra.css +++ b/docs/stylesheets/extra.css @@ -1,250 +1,20 @@ -/* ========================================================= - PROTEUS theme variables - ========================================================= */ - -/* Be careful when changing these, as they affect multiple elements across the site. */ - -[data-md-color-scheme="default"], -[data-md-color-scheme="slate"] { - --md-primary-fg-color: #1c2b4b; - --md-primary-fg-color--light: #2a3d69; - --md-primary-fg-color--dark: #14203a; - - --proteus-highlight-color: #ff6e40; - --proteus-highlight-bg-soft: rgba(255, 109, 64, 0.093); - - --md-accent-fg-color: var(--proteus-highlight-color); - - --md-typeset-a-color: #3b6193; -} - -/* Softer slate background + more muted link color */ -[data-md-color-scheme="slate"] { - --md-default-bg-color: #0f172ad2; - --md-default-bg-color--light: #1e293b; - --md-default-bg-color--lighter: #334155; - --md-default-bg-color--lightest: #475569; - - --md-typeset-a-color: #8fa8c9; -} - -/* ========================================================= - Header + tabs - ========================================================= */ - -[data-md-color-scheme="default"] .md-header, -[data-md-color-scheme="default"] .md-tabs, -[data-md-color-scheme="slate"] .md-header, -[data-md-color-scheme="slate"] .md-tabs { - background-color: var(--md-primary-fg-color); -} - -[data-md-color-scheme="default"] .md-header *, -[data-md-color-scheme="default"] .md-tabs *, -[data-md-color-scheme="slate"] .md-header *, -[data-md-color-scheme="slate"] .md-tabs * { - color: #fff !important; - fill: #fff !important; -} - -/* ========================================================= - Expanded search - ========================================================= */ - -[data-md-color-scheme="default"] .md-search__form, -[data-md-color-scheme="slate"] .md-search__form { - background-color: rgba(255, 255, 255, 0.12) !important; - border-radius: 0.2rem !important; - box-shadow: none !important; -} - -[data-md-color-scheme="default"] .md-search__form:hover, -[data-md-color-scheme="default"] .md-search__form:focus-within, -[data-md-color-scheme="slate"] .md-search__form:hover, -[data-md-color-scheme="slate"] .md-search__form:focus-within { - background-color: rgba(255, 255, 255, 0.16) !important; -} - -[data-md-color-scheme="default"] .md-search__input, -[data-md-color-scheme="slate"] .md-search__input { - color: #fff !important; - -webkit-text-fill-color: #fff !important; - caret-color: #fff !important; - background: transparent !important; - -webkit-appearance: none; - appearance: none; -} - -[data-md-color-scheme="default"] .md-search__input::placeholder, -[data-md-color-scheme="slate"] .md-search__input::placeholder { - color: rgba(255, 255, 255, 0.75) !important; - -webkit-text-fill-color: rgba(255, 255, 255, 0.75) !important; - opacity: 1 !important; -} - -/* Hide browser-native search decorations */ -.md-search__input::-webkit-search-decoration, -.md-search__input::-webkit-search-cancel-button, -.md-search__input::-webkit-search-results-button, -.md-search__input::-webkit-search-results-decoration { - -webkit-appearance: none; - appearance: none; +.mod-diagram { + width: 100%; + height: auto; + aspect-ratio: 12.1 / 9; /* specific aspect ratio for the module diagram */ display: none; } - -/* Expanded search icons */ -[data-md-color-scheme="default"] .md-search__icon, -[data-md-color-scheme="default"] .md-search__icon svg, -[data-md-color-scheme="default"] .md-search__icon svg *, -[data-md-color-scheme="default"] .md-search__label, -[data-md-color-scheme="default"] .md-search__label svg, -[data-md-color-scheme="default"] .md-search__label svg *, -[data-md-color-scheme="slate"] .md-search__icon, -[data-md-color-scheme="slate"] .md-search__icon svg, -[data-md-color-scheme="slate"] .md-search__icon svg *, -[data-md-color-scheme="slate"] .md-search__label, -[data-md-color-scheme="slate"] .md-search__label svg, -[data-md-color-scheme="slate"] .md-search__label svg * { - color: #fff !important; - fill: #fff !important; - stroke: #fff !important; - opacity: 1 !important; -} - -/* ========================================================= - Collapsed search trigger in header - ========================================================= */ - -[data-md-color-scheme="default"] .md-search__button, -[data-md-color-scheme="slate"] .md-search__button { - color: #fff !important; - background-color: rgba(255, 255, 255, 0.12) !important; - border-radius: 0.6rem !important; +/* Light mode: show light diagram */ +[data-md-color-scheme="default"] .mod-diagram--light { + display: block; } -[data-md-color-scheme="default"] .md-search__button:hover, -[data-md-color-scheme="default"] .md-search__button:focus, -[data-md-color-scheme="slate"] .md-search__button:hover, -[data-md-color-scheme="slate"] .md-search__button:focus { - background-color: rgba(255, 255, 255, 0.16) !important; +/* Dark mode: show dark diagram (Material's default dark scheme is "slate") */ +[data-md-color-scheme="slate"] .mod-diagram--dark { + display: block; } -/* Collapsed magnifier */ -[data-md-color-scheme="default"] .md-search__button::before, -[data-md-color-scheme="slate"] .md-search__button::before { - color: #fff !important; - -webkit-text-fill-color: #fff !important; - filter: brightness(0) invert(1) !important; - opacity: 1 !important; -} - -/* If an inner SVG is used in some states */ -[data-md-color-scheme="default"] .md-search__button svg, -[data-md-color-scheme="default"] .md-search__button svg *, -[data-md-color-scheme="slate"] .md-search__button svg, -[data-md-color-scheme="slate"] .md-search__button svg * { - fill: #fff !important; - stroke: #fff !important; - color: #fff !important; -} - -/* Shortcut badge */ -[data-md-color-scheme="default"] .md-search__button kbd, -[data-md-color-scheme="default"] .md-search__button .md-search__kbd, -[data-md-color-scheme="slate"] .md-search__button kbd, -[data-md-color-scheme="slate"] .md-search__button .md-search__kbd { - color: rgba(255, 255, 255, 0.9) !important; - background-color: rgba(255, 255, 255, 0.18) !important; - border: none !important; - box-shadow: none !important; -} - -/* Badge drawn as pseudo-element in some versions */ -[data-md-color-scheme="default"] .md-search__button::after, -[data-md-color-scheme="slate"] .md-search__button::after { - background-color: rgba(255, 255, 255, 0.12) !important; - border: none !important; - box-shadow: none !important; - color: rgba(255, 255, 255, 0.9) !important; -} - -/* ========================================================= - Top tabs - ========================================================= */ - -/* All tab labels white by default */ -[data-md-color-scheme="default"] .md-tabs__link, -[data-md-color-scheme="slate"] .md-tabs__link { - color: #fff !important; - opacity: 0.9 !important; - transition: color 0.15s ease, opacity 0.15s ease !important; -} - -/* Hover state */ -[data-md-color-scheme="default"] .md-tabs__link:hover, -[data-md-color-scheme="slate"] .md-tabs__link:hover { - color: var(--proteus-highlight-color) !important; - opacity: 0.8 !important; -} - -/* Active tab text only, no underline */ -[data-md-color-scheme="default"] .md-tabs__item--active, -[data-md-color-scheme="default"] .md-tabs__link--active, -[data-md-color-scheme="default"] .md-tabs__item--active .md-tabs__link, -[data-md-color-scheme="slate"] .md-tabs__item--active, -[data-md-color-scheme="slate"] .md-tabs__link--active, -[data-md-color-scheme="slate"] .md-tabs__item--active .md-tabs__link { - color: var(--proteus-highlight-color) !important; - box-shadow: none !important; - border-bottom: none !important; - text-decoration: none !important; -} - -/* Remove any underline/pseudo-element indicator */ -[data-md-color-scheme="default"] .md-tabs__item--active::after, -[data-md-color-scheme="default"] .md-tabs__link--active::after, -[data-md-color-scheme="default"] .md-tabs__item--active .md-tabs__link::after, -[data-md-color-scheme="slate"] .md-tabs__item--active::after, -[data-md-color-scheme="slate"] .md-tabs__link--active::after, -[data-md-color-scheme="slate"] .md-tabs__item--active .md-tabs__link::after { - content: none !important; - display: none !important; - background: none !important; -} - -/* ========================================================= - Sidebar navigation - ========================================================= */ - -/* Style only active leaf page links */ -[data-md-color-scheme="default"] .md-nav__item .md-nav__link--active:not(.md-nav__link--passed), -[data-md-color-scheme="slate"] .md-nav__item .md-nav__link--active:not(.md-nav__link--passed) { - background-color: var(--proteus-highlight-bg-soft) !important; - border-radius: 1rem !important; - color: var(--proteus-highlight-color) !important; - padding-left: 1rem; - padding-right: 1rem; -} - -/* ========================================================= - Footer - ========================================================= */ - -/* Remove underline from footer copyright link */ -.md-footer-copyright a, -.md-footer-meta a { - text-decoration: none !important; -} - -/* ========================================================= - Make header title look clickable and add hover effect - ========================================================= */ - -.md-header__title[data-md-component="header-title"] { - cursor: pointer; - transition: opacity 0.15s ease !important; -} - -.md-header__title[data-md-component="header-title"]:hover { - opacity: 0.7 !important; -} +/* Remove underline from links that contain only an image */ +.md-typeset p a:has(> img) { + text-decoration: none; +} \ No newline at end of file diff --git a/docs/stylesheets/footnotes.css b/docs/stylesheets/footnotes.css new file mode 100644 index 0000000..20bb8fb --- /dev/null +++ b/docs/stylesheets/footnotes.css @@ -0,0 +1,21 @@ +/* ---- Footnote/citation markers: render as inline [1] instead of superscript ---- */ +.md-typeset sup[id^="fnref"] { + vertical-align: baseline !important; + font-size: 1em !important; + line-height: inherit !important; +} + +.md-typeset sup[id^="fnref"] > a.footnote-ref { + text-decoration: none; +} + +.md-typeset sup[id^="fnref"] > a.footnote-ref::before { content: "["; } +.md-typeset sup[id^="fnref"] > a.footnote-ref::after { content: "]"; } + +/* fallback (some versions/themes) */ +.md-typeset a.footnote-ref { + vertical-align: baseline !important; + font-size: 1em !important; +} + + diff --git a/docs/stylesheets/proteus_theme.css b/docs/stylesheets/proteus_theme.css new file mode 100644 index 0000000..83c5b8f --- /dev/null +++ b/docs/stylesheets/proteus_theme.css @@ -0,0 +1,250 @@ +/* ========================================================= + PROTEUS theme variables + ========================================================= */ + +/* Be careful when changing these, as they affect multiple elements across the site. */ + +[data-md-color-scheme="default"], +[data-md-color-scheme="slate"] { + --md-primary-fg-color: #1c2b4b; + --md-primary-fg-color--light: #2a3d69; + --md-primary-fg-color--dark: #14203a; + + --proteus-highlight-color: #ff6e40; + --proteus-highlight-bg-soft: rgba(255, 109, 64, 0.093); + + --md-accent-fg-color: var(--proteus-highlight-color); + + --md-typeset-a-color: #3b6193; +} + +/* Softer slate background + more muted link color */ +[data-md-color-scheme="slate"] { + --md-default-bg-color: #0f172ad2; + --md-default-bg-color--light: #1e293b; + --md-default-bg-color--lighter: #334155; + --md-default-bg-color--lightest: #475569; + + --md-typeset-a-color: #8fa8c9; +} + +/* ========================================================= + Header + tabs + ========================================================= */ + +[data-md-color-scheme="default"] .md-header, +[data-md-color-scheme="default"] .md-tabs, +[data-md-color-scheme="slate"] .md-header, +[data-md-color-scheme="slate"] .md-tabs { + background-color: var(--md-primary-fg-color); +} + +[data-md-color-scheme="default"] .md-header *, +[data-md-color-scheme="default"] .md-tabs *, +[data-md-color-scheme="slate"] .md-header *, +[data-md-color-scheme="slate"] .md-tabs * { + color: #fff !important; + fill: #fff !important; +} + +/* ========================================================= + Expanded search + ========================================================= */ + +[data-md-color-scheme="default"] .md-search__form, +[data-md-color-scheme="slate"] .md-search__form { + background-color: rgba(255, 255, 255, 0.12) !important; + border-radius: 0.2rem !important; + box-shadow: none !important; +} + +[data-md-color-scheme="default"] .md-search__form:hover, +[data-md-color-scheme="default"] .md-search__form:focus-within, +[data-md-color-scheme="slate"] .md-search__form:hover, +[data-md-color-scheme="slate"] .md-search__form:focus-within { + background-color: rgba(255, 255, 255, 0.16) !important; +} + +[data-md-color-scheme="default"] .md-search__input, +[data-md-color-scheme="slate"] .md-search__input { + color: #fff !important; + -webkit-text-fill-color: #fff !important; + caret-color: #fff !important; + background: transparent !important; + -webkit-appearance: none; + appearance: none; +} + +[data-md-color-scheme="default"] .md-search__input::placeholder, +[data-md-color-scheme="slate"] .md-search__input::placeholder { + color: rgba(255, 255, 255, 0.75) !important; + -webkit-text-fill-color: rgba(255, 255, 255, 0.75) !important; + opacity: 1 !important; +} + +/* Hide browser-native search decorations */ +.md-search__input::-webkit-search-decoration, +.md-search__input::-webkit-search-cancel-button, +.md-search__input::-webkit-search-results-button, +.md-search__input::-webkit-search-results-decoration { + -webkit-appearance: none; + appearance: none; + display: none; +} + +/* Expanded search icons */ +[data-md-color-scheme="default"] .md-search__icon, +[data-md-color-scheme="default"] .md-search__icon svg, +[data-md-color-scheme="default"] .md-search__icon svg *, +[data-md-color-scheme="default"] .md-search__label, +[data-md-color-scheme="default"] .md-search__label svg, +[data-md-color-scheme="default"] .md-search__label svg *, +[data-md-color-scheme="slate"] .md-search__icon, +[data-md-color-scheme="slate"] .md-search__icon svg, +[data-md-color-scheme="slate"] .md-search__icon svg *, +[data-md-color-scheme="slate"] .md-search__label, +[data-md-color-scheme="slate"] .md-search__label svg, +[data-md-color-scheme="slate"] .md-search__label svg * { + color: #fff !important; + fill: #fff !important; + stroke: #fff !important; + opacity: 1 !important; +} + +/* ========================================================= + Collapsed search trigger in header + ========================================================= */ + +[data-md-color-scheme="default"] .md-search__button, +[data-md-color-scheme="slate"] .md-search__button { + color: #fff !important; + background-color: rgba(255, 255, 255, 0.12) !important; + border-radius: 0.6rem !important; +} + +[data-md-color-scheme="default"] .md-search__button:hover, +[data-md-color-scheme="default"] .md-search__button:focus, +[data-md-color-scheme="slate"] .md-search__button:hover, +[data-md-color-scheme="slate"] .md-search__button:focus { + background-color: rgba(255, 255, 255, 0.16) !important; +} + +/* Collapsed magnifier */ +[data-md-color-scheme="default"] .md-search__button::before, +[data-md-color-scheme="slate"] .md-search__button::before { + color: #fff !important; + -webkit-text-fill-color: #fff !important; + filter: brightness(0) invert(1) !important; + opacity: 1 !important; +} + +/* If an inner SVG is used in some states */ +[data-md-color-scheme="default"] .md-search__button svg, +[data-md-color-scheme="default"] .md-search__button svg *, +[data-md-color-scheme="slate"] .md-search__button svg, +[data-md-color-scheme="slate"] .md-search__button svg * { + fill: #fff !important; + stroke: #fff !important; + color: #fff !important; +} + +/* Shortcut badge */ +[data-md-color-scheme="default"] .md-search__button kbd, +[data-md-color-scheme="default"] .md-search__button .md-search__kbd, +[data-md-color-scheme="slate"] .md-search__button kbd, +[data-md-color-scheme="slate"] .md-search__button .md-search__kbd { + color: rgba(255, 255, 255, 0.9) !important; + background-color: rgba(255, 255, 255, 0.18) !important; + border: none !important; + box-shadow: none !important; +} + +/* Badge drawn as pseudo-element in some versions */ +[data-md-color-scheme="default"] .md-search__button::after, +[data-md-color-scheme="slate"] .md-search__button::after { + background-color: rgba(255, 255, 255, 0.12) !important; + border: none !important; + box-shadow: none !important; + color: rgba(255, 255, 255, 0.9) !important; +} + +/* ========================================================= + Top tabs + ========================================================= */ + +/* All tab labels white by default */ +[data-md-color-scheme="default"] .md-tabs__link, +[data-md-color-scheme="slate"] .md-tabs__link { + color: #fff !important; + opacity: 0.9 !important; + transition: color 0.15s ease, opacity 0.15s ease !important; +} + +/* Hover state */ +[data-md-color-scheme="default"] .md-tabs__link:hover, +[data-md-color-scheme="slate"] .md-tabs__link:hover { + color: var(--proteus-highlight-color) !important; + opacity: 0.8 !important; +} + +/* Active tab text only, no underline */ +[data-md-color-scheme="default"] .md-tabs__item--active, +[data-md-color-scheme="default"] .md-tabs__link--active, +[data-md-color-scheme="default"] .md-tabs__item--active .md-tabs__link, +[data-md-color-scheme="slate"] .md-tabs__item--active, +[data-md-color-scheme="slate"] .md-tabs__link--active, +[data-md-color-scheme="slate"] .md-tabs__item--active .md-tabs__link { + color: var(--proteus-highlight-color) !important; + box-shadow: none !important; + border-bottom: none !important; + text-decoration: none !important; +} + +/* Remove any underline/pseudo-element indicator */ +[data-md-color-scheme="default"] .md-tabs__item--active::after, +[data-md-color-scheme="default"] .md-tabs__link--active::after, +[data-md-color-scheme="default"] .md-tabs__item--active .md-tabs__link::after, +[data-md-color-scheme="slate"] .md-tabs__item--active::after, +[data-md-color-scheme="slate"] .md-tabs__link--active::after, +[data-md-color-scheme="slate"] .md-tabs__item--active .md-tabs__link::after { + content: none !important; + display: none !important; + background: none !important; +} + +/* ========================================================= + Sidebar navigation + ========================================================= */ + +/* Style only active leaf page links */ +[data-md-color-scheme="default"] .md-nav__item .md-nav__link--active:not(.md-nav__link--passed), +[data-md-color-scheme="slate"] .md-nav__item .md-nav__link--active:not(.md-nav__link--passed) { + background-color: var(--proteus-highlight-bg-soft) !important; + border-radius: 1rem !important; + color: var(--proteus-highlight-color) !important; + padding-left: 1rem; + padding-right: 1rem; +} + +/* ========================================================= + Footer + ========================================================= */ + +/* Remove underline from footer copyright link */ +.md-footer-copyright a, +.md-footer-meta a { + text-decoration: none !important; +} + +/* ========================================================= + Make header title look clickable and add hover effect + ========================================================= */ + +.md-header__title[data-md-component="header-title"] { + cursor: pointer; + transition: opacity 0.15s ease !important; +} + +.md-header__title[data-md-component="header-title"]:hover { + opacity: 0.7 !important; +} From 9e1e3be1064b6ab1dea0dff4720627563a468aa5 Mon Sep 17 00:00:00 2001 From: Karen Stuitje Date: Tue, 2 Jun 2026 14:15:21 +0200 Subject: [PATCH 2/6] add a space to all footnote citations [^cite (...)] after using the new CSS stylesheet, rendering citations like this: [1] --- docs/Explanations/authoritative_oxygen.md | 6 +- docs/Explanations/code_architecture.md | 4 +- docs/Explanations/cross_backend_comparison.md | 50 +++++----- docs/Explanations/equilibrium_chemistry.md | 18 ++-- docs/Explanations/mass_balance.md | 18 ++-- docs/Explanations/model.md | 54 +++++------ docs/Explanations/oxygen_fugacity.md | 60 ++++++------ docs/Explanations/proteus_coupling.md | 4 +- docs/Explanations/solubility.md | 96 +++++++++---------- docs/Explanations/testing.md | 20 ++-- docs/How-to/proteus_coupling.md | 28 +++--- docs/How-to/usage.md | 28 +++--- docs/Tutorials/earth_fiducial.md | 10 +- docs/Tutorials/firstrun.md | 10 +- docs/Tutorials/mars_fiducial.md | 12 +-- docs/Tutorials/phase_diagram.md | 8 +- docs/Validation/chemistry.md | 8 +- docs/Validation/oxygen_fugacity.md | 6 +- docs/Validation/solubility.md | 18 ++-- docs/Validation/structure.md | 6 +- docs/index.md | 34 +++---- docs/proteus-framework.md | 19 ++-- 22 files changed, 258 insertions(+), 259 deletions(-) diff --git a/docs/Explanations/authoritative_oxygen.md b/docs/Explanations/authoritative_oxygen.md index ebe11f8..80b1148 100644 --- a/docs/Explanations/authoritative_oxygen.md +++ b/docs/Explanations/authoritative_oxygen.md @@ -83,7 +83,7 @@ A `random_seed` argument (default `None`) seeds a `np.random.default_rng` for th ## Buffer convention -Like the buffered mode, the authoritative-O mode references $f_{\mathrm{O}_2}$ to the iron-wüstite buffer of O'Neill & Eggins (2002)[^cite-oneilleggins2002] by default, with the Fischer et al. (2011)[^cite-fischer2011] alternative selectable through `OxygenFugacity()` instantiation. The returned `fO2_shift_derived` is the $\Delta\mathrm{IW}$ relative to whichever buffer was chosen. +Like the buffered mode, the authoritative-O mode references $f_{\mathrm{O}_2}$ to the iron-wüstite buffer of O'Neill & Eggins (2002) [^cite-oneilleggins2002] by default, with the Fischer et al. (2011) [^cite-fischer2011] alternative selectable through `OxygenFugacity()` instantiation. The returned `fO2_shift_derived` is the $\Delta\mathrm{IW}$ relative to whichever buffer was chosen. !!! note "Cross-backend buffer divergence" PROTEUS supports a second outgassing backend, [atmodeller](https://atmodeller.readthedocs.io/), whose authoritative-O implementation uses the Hirschmann combined IW buffer. The Hirschmann and O'Neill & Eggins parameterisations differ by ${\sim}0.95$ dex at $T = 3000$ K. PROTEUS records both backends' derived offsets under the helpfile column `fO2_shift_IW_derived`, and the discrepancy is documented in the column's schema comment. The two backends agree on the underlying physics (same chemistry of FeO-O$_2$ equilibrium); they disagree on the numerical parameterisation of the buffer curve. Choose one backend per run and stay with it for any cross-time-step comparison. @@ -113,5 +113,5 @@ For the routine "set $\Delta\mathrm{IW}$, get a self-consistent atmosphere" work - [Coupling to PROTEUS (theory)](proteus_coupling.md): how the PROTEUS wrapper selects between the two modes. - [API reference for `calliope.solve`](../Reference/api/calliope.solve.md). -[^cite-oneilleggins2002]: H. St. C. O'Neill, S. M. Eggins, *[The effect of melt composition on trace element partitioning: an experimental investigation of the activity coefficients of FeO, NiO, CoO, MoO$_2$ and MoO$_3$ in silicate melts](https://doi.org/10.1016/S0009-2541(01)00414-4)*, Chemical Geology, 186, 151–181, 2002. [SciX](https://scixplorer.org/abs/2002ChGeo.186..151O/abstract). -[^cite-fischer2011]: 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](https://doi.org/10.1016/j.epsl.2011.02.025)*, Earth and Planetary Science Letters, 304, 496–502, 2011. [SciX](https://scixplorer.org/abs/2011E%26PSL.304..496F/abstract). + [^cite-oneilleggins2002]: H. St. C. O'Neill, S. M. Eggins, *[The effect of melt composition on trace element partitioning: an experimental investigation of the activity coefficients of FeO, NiO, CoO, MoO$_2$ and MoO$_3$ in silicate melts](https://doi.org/10.1016/S0009-2541(01)00414-4)*, Chemical Geology, 186, 151–181, 2002. [SciX](https://scixplorer.org/abs/2002ChGeo.186..151O/abstract). + [^cite-fischer2011]: 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](https://doi.org/10.1016/j.epsl.2011.02.025)*, Earth and Planetary Science Letters, 304, 496–502, 2011. [SciX](https://scixplorer.org/abs/2011E%26PSL.304..496F/abstract). diff --git a/docs/Explanations/code_architecture.md b/docs/Explanations/code_architecture.md index f944297..2d9532c 100644 --- a/docs/Explanations/code_architecture.md +++ b/docs/Explanations/code_architecture.md @@ -65,7 +65,7 @@ The orchestration layer. Two solver entry points, the buffered mode and the auth Plus seven shared helpers: - `get_partial_pressures(pin, ddict)`: walks the eleven-species speciation tree from the four primary pressures. -- `atmosphere_mass(pin, ddict)`: applies Bower et al. (2019)[^cite-bower2019] Eq. 2 to every species and aggregates atomic-mass tallies per element. +- `atmosphere_mass(pin, ddict)`: applies Bower et al. (2019) [^cite-bower2019] Eq. 2 to every species and aggregates atomic-mass tallies per element. - `dissolved_mass(pin, ddict)`: applies the chosen solubility law for each soluble species and aggregates atomic-mass tallies per element. - `get_target_from_params(ddict)`: translates `hydrogen_earth_oceans`, `CH_ratio`, `nitrogen_ppmw`, `sulfur_ppmw` into kg-per-element targets (four-key, for the buffered mode). - `get_target_from_pressures(ddict)`: back-computes kg-per-element targets from prescribed initial atmospheric pressures. @@ -140,4 +140,4 @@ For batch use cases (sensitivity sweeps, parameter studies), wrap a Python loop - [API reference](../Reference/api/index.md) for the auto-generated per-symbol documentation. - [Source on GitHub](https://github.com/FormingWorlds/CALLIOPE/tree/main/src/calliope) for the actual implementation. -[^cite-bower2019]: D. J. Bower, D. Kitzmann, A. S. Wolf, P. Sanan, C. Dorn, A. V. Oza, *[Linking the evolution of terrestrial interiors and an early outgassed atmosphere to astrophysical observations](https://doi.org/10.1051/0004-6361/201935710)*, Astronomy & Astrophysics, 631, A103, 2019. [SciX](https://scixplorer.org/abs/2019A%26A...631A.103B/abstract). + [^cite-bower2019]: D. J. Bower, D. Kitzmann, A. S. Wolf, P. Sanan, C. Dorn, A. V. Oza, *[Linking the evolution of terrestrial interiors and an early outgassed atmosphere to astrophysical observations](https://doi.org/10.1051/0004-6361/201935710)*, Astronomy & Astrophysics, 631, A103, 2019. [SciX](https://scixplorer.org/abs/2019A%26A...631A.103B/abstract). diff --git a/docs/Explanations/cross_backend_comparison.md b/docs/Explanations/cross_backend_comparison.md index 80ba46b..069db89 100644 --- a/docs/Explanations/cross_backend_comparison.md +++ b/docs/Explanations/cross_backend_comparison.md @@ -14,9 +14,9 @@ The figures here are regenerated by the reusable scripts in `scripts/cross_backe A cross-backend comparison only carries meaning if both solvers are fed the same inputs. Figures 3, 4, and 5 all run both backends at one shared Earth fiducial so that any disagreement they show is attributable to the backends' internal choices (buffer, solubility, EOS, equilibrium-constant fits) rather than to a difference in the inputs. The fiducial is Earth bulk-silicate-Earth (BSE), $\Phi = 1$, with $T_\mathrm{magma}$ either fixed at 2000 K (Figures 4 and 5) or swept from 1800 K to 3000 K (Figure 3). -Earth is the natural anchor because the modern upper-mantle $\Delta\mathrm{IW}$ is empirically constrained (Sossi et al. 2020[^cite-sossi2020]; Frost & McCammon 2008[^cite-frostmccammon2008]), which lets us check in Figure 5 whether either backend's prediction lands inside the petrologically allowed range. +Earth is the natural anchor because the modern upper-mantle $\Delta\mathrm{IW}$ is empirically constrained (Sossi et al. 2020 [^cite-sossi2020]; Frost & McCammon 2008 [^cite-frostmccammon2008]), which lets us check in Figure 5 whether either backend's prediction lands inside the petrologically allowed range. -The H / C / N / S inputs come from the Krijt et al. 2023[^cite-krijt2023] Protostars and Planets VII Tables 1 and 2 BSE row, summed across mantle and atmospheric reservoirs: +The H / C / N / S inputs come from the Krijt et al. 2023 [^cite-krijt2023] Protostars and Planets VII Tables 1 and 2 BSE row, summed across mantle and atmospheric reservoirs: | Element | Krijt+2023 BSE mass (kg) | |---|---| @@ -28,7 +28,7 @@ The H / C / N / S inputs come from the Krijt et al. 2023[^cite-krijt2023] Protos Oxygen is not taken from Krijt et al. 2023 directly. Krijt's tabulated O is a redox-active inventory (the mass of O required to move BSE to the Fe(II)O reference state, dominated by the mantle FeO / Fe$_2$O$_3$ imbalance), whereas the authoritative-O entry point treats O as the volatile budget (atoms in atmospheric and dissolved H$_2$O / CO$_2$ / SO$_2$ / O$_2$ only). The two definitions are not interconvertible without a chemistry calculation. -The volatile-O reference used on this page, $O = 1.26 \times 10^{22}$ kg, was derived by running CALLIOPE in buffered mode at the Krijt H/C/N/S budget above, $T_\mathrm{magma} = 2000$ K, and the Sossi 2020[^cite-sossi2020] $\Delta\mathrm{IW} = +3.5$ Earth-upper-mantle anchor with the current default Fischer 2011 buffer. +The volatile-O reference used on this page, $O = 1.26 \times 10^{22}$ kg, was derived by running CALLIOPE in buffered mode at the Krijt H/C/N/S budget above, $T_\mathrm{magma} = 2000$ K, and the Sossi 2020 [^cite-sossi2020] $\Delta\mathrm{IW} = +3.5$ Earth-upper-mantle anchor with the current default Fischer 2011 buffer. The provenance function `scripts/cross_backend/inventories.derive_earth_volatile_O()` re-derives this number from scratch on demand. ## Sources of disagreement @@ -37,19 +37,19 @@ Four axes contribute to cross-backend $\Delta\mathrm{IW}$ disagreement. Two can | Axis | CALLIOPE | atmodeller | Aligned by default? | |---|---|---|---| -| IW buffer | Fischer et al. 2011[^cite-fischer2011] (current default, see below); O'Neill & Eggins 2002[^cite-oneilleggins2002] available as legacy `'oneill'` | Hirschmann composite (Hirschmann et al. 2008[^cite-hirschmann2008] below 1000 K, Hirschmann 2021[^cite-hirschmann2021] above) | Close (Fischer is within ~0.2 dex of Hirschmann across the magma-ocean range) | -| H$_2$O solubility | Sossi et al. 2023[^cite-sossi2023] peridotite | `H2O_peridotite_sossi23` | Yes | -| CO$_2$ solubility | Dixon et al. 1995[^cite-dixon1995] basalt | `CO2_basalt_dixon95` | Yes | -| N$_2$ solubility | Dasgupta et al. 2022[^cite-dasgupta2022] | `N2_basalt_dasgupta22` | Yes | -| S$_2$ solubility | Gaillard et al. 2022[^cite-gaillard2022] sulfide-only | `S2_sulfide_basalt_boulliung23` (Boulliung & Wood 2023[^cite-boulliungwood2023], CoMP) | No | -| H$_2$, CO, CH$_4$ solubility | identically zero (Bower et al. 2022[^cite-bower2022] §2.2.3) | Hirschmann 2012, Yoshioka 2019, Ardia 2013 | Optionally (set keys to `none`) | +| IW buffer | Fischer et al. 2011 [^cite-fischer2011] (current default, see below); O'Neill & Eggins 2002 [^cite-oneilleggins2002] available as legacy `'oneill'` | Hirschmann composite (Hirschmann et al. 2008 [^cite-hirschmann2008] below 1000 K, Hirschmann 2021 [^cite-hirschmann2021] above) | Close (Fischer is within ~0.2 dex of Hirschmann across the magma-ocean range) | +| H$_2$O solubility | Sossi et al. 2023 [^cite-sossi2023] peridotite | `H2O_peridotite_sossi23` | Yes | +| CO$_2$ solubility | Dixon et al. 1995 [^cite-dixon1995] basalt | `CO2_basalt_dixon95` | Yes | +| N$_2$ solubility | Dasgupta et al. 2022 [^cite-dasgupta2022] | `N2_basalt_dasgupta22` | Yes | +| S$_2$ solubility | Gaillard et al. 2022 [^cite-gaillard2022] sulfide-only | `S2_sulfide_basalt_boulliung23` (Boulliung & Wood 2023 [^cite-boulliungwood2023], CoMP) | No | +| H$_2$, CO, CH$_4$ solubility | identically zero (Bower et al. 2022 [^cite-bower2022] §2.2.3) | Hirschmann 2012, Yoshioka 2019, Ardia 2013 | Optionally (set keys to `none`) | | Gas-phase EOS | ideal | ideal by default; real-gas selectable | Yes (with EOS off) | | Equilibrium constants | JANAF + Schaefer-Fegley fits | atmodeller thermodata | No | | Solver | scipy `fsolve` + `trust-constr` with Monte-Carlo restart | JAX gradient-based with multistart | Different by construction; affects convergence behaviour, not converged answer | ## Buffer convention as a cross-backend systematic -CALLIOPE's default IW buffer is Fischer et al. 2011[^cite-fischer2011], with O'Neill & Eggins 2002[^cite-oneilleggins2002] available as `OxygenFugacity('oneill')` for backwards compatibility. atmodeller uses the Hirschmann composite (Hirschmann 2008 below 1000 K, Hirschmann 2021 above). Across magma-ocean temperatures O'Neill and Hirschmann differ by up to $\sim 1$ dex; Fischer and Hirschmann agree to within $\sim 0.2$ dex over the same range, so the cross-backend buffer offset under the current default is much smaller than under the legacy choice. +CALLIOPE's default IW buffer is Fischer et al. 2011 [^cite-fischer2011], with O'Neill & Eggins 2002 [^cite-oneilleggins2002] available as `OxygenFugacity('oneill')` for backwards compatibility. atmodeller uses the Hirschmann composite (Hirschmann 2008 below 1000 K, Hirschmann 2021 above). Across magma-ocean temperatures O'Neill and Hirschmann differ by up to $\sim 1$ dex; Fischer and Hirschmann agree to within $\sim 0.2$ dex over the same range, so the cross-backend buffer offset under the current default is much smaller than under the legacy choice. ![Buffer divergence](../assets/figures/cross_backend/fig1_buffer_divergence.png) @@ -69,7 +69,7 @@ Internal consistency holds across the bulk of the $(T, \Delta\mathrm{IW})$ grid ## Cross-backend agreement on the chemistry -With internal consistency confirmed, the cross-backend $\Delta\mathrm{IW}$ disagreement at matched inputs is the interesting quantity. Both backends are run at the Krijt et al. 2023[^cite-krijt2023] BSE H/C/N/S inventory with the volatile O reference set by a CALLIOPE buffered-mode call at $\Delta\mathrm{IW} = +3.5$ (the Sossi 2020[^cite-sossi2020] Earth upper-mantle anchor). Sweeping $T_\mathrm{magma}$ from 1800 K to 3000 K, with $\Phi = 1$ throughout, gives: +With internal consistency confirmed, the cross-backend $\Delta\mathrm{IW}$ disagreement at matched inputs is the interesting quantity. Both backends are run at the Krijt et al. 2023 [^cite-krijt2023] BSE H/C/N/S inventory with the volatile O reference set by a CALLIOPE buffered-mode call at $\Delta\mathrm{IW} = +3.5$ (the Sossi 2020 [^cite-sossi2020] Earth upper-mantle anchor). Sweeping $T_\mathrm{magma}$ from 1800 K to 3000 K, with $\Phi = 1$ throughout, gives: ![Cross-backend T sweep](../assets/figures/cross_backend/fig3_grid.png) @@ -91,7 +91,7 @@ The raw disagreement of $0.42$ dex at this fiducial under the legacy buffer fall ## Comparison against the Earth anchor -Both backends produce a $\Delta\mathrm{IW}$ from the Krijt+2023[^cite-krijt2023] BSE H/C/N/S inventory (with volatile O derived self-consistently at the Sossi 2020 $\Delta\mathrm{IW} = +3.5$ baseline). The empirical anchor for Earth's modern upper mantle is the Frost & McCammon (2008)[^cite-frostmccammon2008] range $\Delta\mathrm{IW} \in [+1, +5]$ (FMQ-3 to FMQ+1), with the Sossi et al. 2020[^cite-sossi2020] best estimate at $+3.5$. +Both backends produce a $\Delta\mathrm{IW}$ from the Krijt+2023 [^cite-krijt2023] BSE H/C/N/S inventory (with volatile O derived self-consistently at the Sossi 2020 $\Delta\mathrm{IW} = +3.5$ baseline). The empirical anchor for Earth's modern upper mantle is the Frost & McCammon (2008) [^cite-frostmccammon2008] range $\Delta\mathrm{IW} \in [+1, +5]$ (FMQ-3 to FMQ+1), with the Sossi et al. 2020 [^cite-sossi2020] best estimate at $+3.5$. ![Earth anchor](../assets/figures/cross_backend/fig5_earth_anchor.png) @@ -132,16 +132,16 @@ The scripts are reusable for different fiducials, different inventories, or diff - [Coupling to PROTEUS](proteus_coupling.md): how the PROTEUS wrapper selects between backends at runtime. - [atmodeller documentation](https://atmodeller.readthedocs.io/): the canonical upstream reference for the second backend. -[^cite-boulliungwood2023]: J. Boulliung, B. J. Wood, *[Sulfur oxidation state and solubility in silicate melts](https://doi.org/10.1007/s00410-023-02033-9)*, Contributions to Mineralogy and Petrology, 178(8), 56, 2023. [SciX](https://scixplorer.org/abs/2023CoMP..178...56B/abstract). -[^cite-bower2022]: D. J. Bower, K. Hakim, P. A. Sossi, P. Sanan, *[Retention of water in terrestrial magma oceans and carbon-rich early atmospheres](https://doi.org/10.3847/PSJ/ac5fb1)*, The Planetary Science Journal, 3(4), 93, 2022. [SciX](https://scixplorer.org/abs/2022PSJ.....3...93B/abstract). -[^cite-dasgupta2022]: 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](https://doi.org/10.1016/j.gca.2022.09.012)*, Geochimica et Cosmochimica Acta, 336, 291–307, 2022. [SciX](https://scixplorer.org/abs/2022GeCoA.336..291D/abstract). -[^cite-dixon1995]: 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](https://doi.org/10.1093/oxfordjournals.petrology.a037267)*, Journal of Petrology, 36(6), 1607–1631, 1995. [SciX](https://scixplorer.org/abs/1995JPet...36.1607D/abstract). -[^cite-frostmccammon2008]: D. J. Frost, C. A. McCammon, *[The redox state of Earth's mantle](https://doi.org/10.1146/annurev.earth.36.031207.124322)*, Annual Review of Earth and Planetary Sciences, 36, 389–420, 2008. [SciX](https://scixplorer.org/abs/2008AREPS..36..389F/abstract). -[^cite-fischer2011]: 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](https://doi.org/10.1016/j.epsl.2011.02.025)*, Earth and Planetary Science Letters, 304(3), 496–502, 2011. -[^cite-gaillard2022]: 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](https://doi.org/10.1016/j.epsl.2021.117255)*, Earth and Planetary Science Letters, 577, 117255, 2022. [SciX](https://scixplorer.org/abs/2022E%26PSL.57717255G/abstract). -[^cite-hirschmann2008]: M. M. Hirschmann, M. S. Ghiorso, F. A. Davis, S. M. Gordon, S. Mukherjee, T. L. Grove, M. Krawczynski, E. Médard, C. B. Till, *[Library of Experimental Phase Relations (LEPR): a database and Web portal for experimental magmatic phase equilibria data](https://doi.org/10.1029/2007GC001894)*, Geochemistry, Geophysics, Geosystems, 9(3), Q03011, 2008. [SciX](https://scixplorer.org/abs/2008GGG.....9.3011H/abstract). -[^cite-hirschmann2021]: M. M. Hirschmann, *[Iron-wüstite revisited: a revised calibration accounting for variable stoichiometry and the effects of pressure](https://doi.org/10.1016/j.gca.2021.08.039)*, Geochimica et Cosmochimica Acta, 313, 74–84, 2021. [SciX](https://scixplorer.org/abs/2021GeCoA.313...74H/abstract). -[^cite-krijt2023]: S. Krijt, M. Kama, M. McClure, J. Teske, E. A. Bergin, O. Shorttle, K. J. Walsh, S. N. Raymond, *Chemical habitability: supply and retention of life's essential elements during planet formation*, in Protostars and Planets VII, S. Inutsuka, Y. Aikawa, T. Muto, K. Tomida, M. Tamura, eds., Astronomical Society of the Pacific Conference Series, 534, 1031, 2023. [SciX](https://scixplorer.org/abs/2023ASPC..534.1031K/abstract). -[^cite-oneilleggins2002]: H. St. C. O'Neill, S. M. Eggins, *[The effect of melt composition on trace element partitioning: an experimental investigation of the activity coefficients of FeO, NiO, CoO, MoO$_2$ and MoO$_3$ in silicate melts](https://doi.org/10.1016/S0009-2541(01)00414-4)*, Chemical Geology, 186, 151–181, 2002. [SciX](https://scixplorer.org/abs/2002ChGeo.186..151O/abstract). -[^cite-sossi2020]: P. A. Sossi, A. D. Burnham, J. Badro, A. Lanzirotti, M. Newville, H. St. C. O'Neill, *[Redox state of Earth's magma ocean and its Venus-like early atmosphere](https://doi.org/10.1126/sciadv.abd1387)*, Science Advances, 6, eabd1387, 2020. [SciX](https://scixplorer.org/abs/2020SciA....6.1387S/abstract). -[^cite-sossi2023]: 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](https://doi.org/10.1016/j.epsl.2022.117894)*, Earth and Planetary Science Letters, 601, 117894, 2023. [SciX](https://scixplorer.org/abs/2023E%26PSL.60117894S/abstract). + [^cite-boulliungwood2023]: J. Boulliung, B. J. Wood, *[Sulfur oxidation state and solubility in silicate melts](https://doi.org/10.1007/s00410-023-02033-9)*, Contributions to Mineralogy and Petrology, 178(8), 56, 2023. [SciX](https://scixplorer.org/abs/2023CoMP..178...56B/abstract). + [^cite-bower2022]: D. J. Bower, K. Hakim, P. A. Sossi, P. Sanan, *[Retention of water in terrestrial magma oceans and carbon-rich early atmospheres](https://doi.org/10.3847/PSJ/ac5fb1)*, The Planetary Science Journal, 3(4), 93, 2022. [SciX](https://scixplorer.org/abs/2022PSJ.....3...93B/abstract). + [^cite-dasgupta2022]: 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](https://doi.org/10.1016/j.gca.2022.09.012)*, Geochimica et Cosmochimica Acta, 336, 291–307, 2022. [SciX](https://scixplorer.org/abs/2022GeCoA.336..291D/abstract). + [^cite-dixon1995]: 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](https://doi.org/10.1093/oxfordjournals.petrology.a037267)*, Journal of Petrology, 36(6), 1607–1631, 1995. [SciX](https://scixplorer.org/abs/1995JPet...36.1607D/abstract). + [^cite-frostmccammon2008]: D. J. Frost, C. A. McCammon, *[The redox state of Earth's mantle](https://doi.org/10.1146/annurev.earth.36.031207.124322)*, Annual Review of Earth and Planetary Sciences, 36, 389–420, 2008. [SciX](https://scixplorer.org/abs/2008AREPS..36..389F/abstract). + [^cite-fischer2011]: 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](https://doi.org/10.1016/j.epsl.2011.02.025)*, Earth and Planetary Science Letters, 304(3), 496–502, 2011. + [^cite-gaillard2022]: 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](https://doi.org/10.1016/j.epsl.2021.117255)*, Earth and Planetary Science Letters, 577, 117255, 2022. [SciX](https://scixplorer.org/abs/2022E%26PSL.57717255G/abstract). + [^cite-hirschmann2008]: M. M. Hirschmann, M. S. Ghiorso, F. A. Davis, S. M. Gordon, S. Mukherjee, T. L. Grove, M. Krawczynski, E. Médard, C. B. Till, *[Library of Experimental Phase Relations (LEPR): a database and Web portal for experimental magmatic phase equilibria data](https://doi.org/10.1029/2007GC001894)*, Geochemistry, Geophysics, Geosystems, 9(3), Q03011, 2008. [SciX](https://scixplorer.org/abs/2008GGG.....9.3011H/abstract). + [^cite-hirschmann2021]: M. M. Hirschmann, *[Iron-wüstite revisited: a revised calibration accounting for variable stoichiometry and the effects of pressure](https://doi.org/10.1016/j.gca.2021.08.039)*, Geochimica et Cosmochimica Acta, 313, 74–84, 2021. [SciX](https://scixplorer.org/abs/2021GeCoA.313...74H/abstract). + [^cite-krijt2023]: S. Krijt, M. Kama, M. McClure, J. Teske, E. A. Bergin, O. Shorttle, K. J. Walsh, S. N. Raymond, *Chemical habitability: supply and retention of life's essential elements during planet formation*, in Protostars and Planets VII, S. Inutsuka, Y. Aikawa, T. Muto, K. Tomida, M. Tamura, eds., Astronomical Society of the Pacific Conference Series, 534, 1031, 2023. [SciX](https://scixplorer.org/abs/2023ASPC..534.1031K/abstract). + [^cite-oneilleggins2002]: H. St. C. O'Neill, S. M. Eggins, *[The effect of melt composition on trace element partitioning: an experimental investigation of the activity coefficients of FeO, NiO, CoO, MoO$_2$ and MoO$_3$ in silicate melts](https://doi.org/10.1016/S0009-2541(01)00414-4)*, Chemical Geology, 186, 151–181, 2002. [SciX](https://scixplorer.org/abs/2002ChGeo.186..151O/abstract). + [^cite-sossi2020]: P. A. Sossi, A. D. Burnham, J. Badro, A. Lanzirotti, M. Newville, H. St. C. O'Neill, *[Redox state of Earth's magma ocean and its Venus-like early atmosphere](https://doi.org/10.1126/sciadv.abd1387)*, Science Advances, 6, eabd1387, 2020. [SciX](https://scixplorer.org/abs/2020SciA....6.1387S/abstract). + [^cite-sossi2023]: 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](https://doi.org/10.1016/j.epsl.2022.117894)*, Earth and Planetary Science Letters, 601, 117894, 2023. [SciX](https://scixplorer.org/abs/2023E%26PSL.60117894S/abstract). diff --git a/docs/Explanations/equilibrium_chemistry.md b/docs/Explanations/equilibrium_chemistry.md index c653a97..6a2c856 100644 --- a/docs/Explanations/equilibrium_chemistry.md +++ b/docs/Explanations/equilibrium_chemistry.md @@ -44,7 +44,7 @@ $$ \log_{10} K_\mathrm{eq}^{\mathrm{H_2}}(T) = -\frac{13152.4778}{T} + 3.0386 $$ -(`janaf_H2` in `chemistry.py`; JANAF[^cite-chase1998] fit, valid $1500 \le T \le 3000$ K). Bower et al. (2022)[^cite-bower2022] give the equivalent Schaefer & Fegley (2017)[^cite-schaeferfegley2017] fit $-12794/T + 2.7768$ as `schaefer_H`. The two differ by $\sim$1% in the resulting $G_\mathrm{eq}$ across the validation range; CALLIOPE uses the JANAF coefficients by default in `solve.get_partial_pressures`. Stoichiometric coefficient on $f_{\mathrm{O}_2}$ is $+0.5$. +(`janaf_H2` in `chemistry.py`; JANAF [^cite-chase1998] fit, valid $1500 \le T \le 3000$ K). Bower et al. (2022) [^cite-bower2022] give the equivalent Schaefer & Fegley (2017) [^cite-schaeferfegley2017] fit $-12794/T + 2.7768$ as `schaefer_H`. The two differ by $\sim$1% in the resulting $G_\mathrm{eq}$ across the validation range; CALLIOPE uses the JANAF coefficients by default in `solve.get_partial_pressures`. Stoichiometric coefficient on $f_{\mathrm{O}_2}$ is $+0.5$. ### CO from CO$_2$ ($\mathrm{CO_2} \rightleftharpoons \mathrm{CO} + \tfrac{1}{2}\,\mathrm{O_2}$) @@ -52,7 +52,7 @@ $$ \log_{10} K_\mathrm{eq}^{\mathrm{CO}}(T) = -\frac{14467.5114}{T} + 4.3481 $$ -(`janaf_CO`; JANAF[^cite-chase1998] fit). Schaefer & Fegley (2017)[^cite-schaeferfegley2017] equivalent in `schaefer_C`: $-14787/T + 4.5472$. Stoichiometric coefficient $+0.5$. +(`janaf_CO`; JANAF [^cite-chase1998] fit). Schaefer & Fegley (2017) [^cite-schaeferfegley2017] equivalent in `schaefer_C`: $-14787/T + 4.5472$. Stoichiometric coefficient $+0.5$. ### CH$_4$ from CO$_2$ + 2H$_2$ ($\mathrm{CO_2} + 2\,\mathrm{H_2} \rightleftharpoons \mathrm{CH_4} + \mathrm{O_2}$) @@ -60,7 +60,7 @@ $$ \log_{10} K_\mathrm{eq}^{\mathrm{CH_4}}(T) = -\frac{16276}{T} - 5.4738 $$ -(`schaefer_CH4`, IVTHANTHERMO via Schaefer & Fegley 2017[^cite-schaeferfegley2017]). Stoichiometric coefficient $+1.0$. The methane abundance is then $p_{\mathrm{CH_4}} = G_\mathrm{eq} \cdot p_{\mathrm{CO_2}} \cdot p_{\mathrm{H_2}}^2$; this is the only species whose speciation depends on a second primary species (H$_2$ via H$_2$O). +(`schaefer_CH4`, IVTHANTHERMO via Schaefer & Fegley 2017 [^cite-schaeferfegley2017]). Stoichiometric coefficient $+1.0$. The methane abundance is then $p_{\mathrm{CH_4}} = G_\mathrm{eq} \cdot p_{\mathrm{CO_2}} \cdot p_{\mathrm{H_2}}^2$; this is the only species whose speciation depends on a second primary species (H$_2$ via H$_2$O). ### SO$_2$ from S$_2$ + 2O$_2$ ($\mathrm{S_2} + 2\,\mathrm{O_2} \rightleftharpoons 2\,\mathrm{SO_2}$, doubled form) @@ -125,9 +125,9 @@ After the walk, every `p_d[s]` is clipped to be non-negative. The function retur ## Why this is the right level of detail -The choice to expand only six redox couples is a deliberate trade-off between completeness and well-posedness. Adding more species (e.g. HCN, HCl, CS$_2$) requires either (i) more elemental constraints (Cl, additional H atoms in HCN), or (ii) extra equilibrium reactions whose constants are calibrated outside the relevant $T$-range. In the present species set, every secondary species has a clean reduction back to one of the four primaries via a [JANAF](https://janaf.nist.gov/) or IVTHANTHERMO fit. The underlying fits are valid over a wider window ($\sim$500-4000 K for the Schaefer & Fegley 2017[^cite-schaeferfegley2017] IVTHANTHERMO sources, similar for the JANAF fits used here); CALLIOPE restricts itself to $1500 \le T \le 3000$ K because that matches the magma-ocean regime the solver is targeted at and the calibration window of the solubility laws (see [Solubility laws](solubility.md)). +The choice to expand only six redox couples is a deliberate trade-off between completeness and well-posedness. Adding more species (e.g. HCN, HCl, CS$_2$) requires either (i) more elemental constraints (Cl, additional H atoms in HCN), or (ii) extra equilibrium reactions whose constants are calibrated outside the relevant $T$-range. In the present species set, every secondary species has a clean reduction back to one of the four primaries via a [JANAF](https://janaf.nist.gov/) or IVTHANTHERMO fit. The underlying fits are valid over a wider window ($\sim$500-4000 K for the Schaefer & Fegley 2017 [^cite-schaeferfegley2017] IVTHANTHERMO sources, similar for the JANAF fits used here); CALLIOPE restricts itself to $1500 \le T \le 3000$ K because that matches the magma-ocean regime the solver is targeted at and the calibration window of the solubility laws (see [Solubility laws](solubility.md)). -For application contexts that require Cl-bearing species, sub-ideal real-gas effects, or condensation, the [atmodeller](https://atmodeller.readthedocs.io/) JAX-based solver (Bower et al. 2025[^cite-bower2025]) is the supported alternative within the PROTEUS framework. +For application contexts that require Cl-bearing species, sub-ideal real-gas effects, or condensation, the [atmodeller](https://atmodeller.readthedocs.io/) JAX-based solver (Bower et al. 2025 [^cite-bower2025]) is the supported alternative within the PROTEUS framework. ## See also @@ -135,7 +135,7 @@ For application contexts that require Cl-bearing species, sub-ideal real-gas eff - [Mass balance & solver](mass_balance.md): how the four primary partial pressures are determined from the elemental conservation constraints - [Solubility laws](solubility.md): how the dissolved-volatile masses close the system -[^cite-bower2022]: D. J. Bower, K. Hakim, P. A. Sossi, P. Sanan, *[Retention of water in terrestrial magma oceans and carbon-rich early atmospheres](https://doi.org/10.3847/PSJ/ac5fb1)*, The Planetary Science Journal, 3(4), 93, 2022. [SciX](https://scixplorer.org/abs/2022PSJ.....3...93B/abstract). -[^cite-bower2025]: D. J. Bower, M. A. Thompson, K. Hakim, M. Tian, P. A. Sossi, *Diversity of low-mass planet atmospheres in the C-H-O-N-S-Cl system with interior dissolution, nonideality, and condensation: application to TRAPPIST-1e and sub-Neptunes*, The Astrophysical Journal, 995, 59, 2025. [SciX](https://scixplorer.org/abs/2025ApJ...995...59B/abstract). -[^cite-chase1998]: M. W. Chase, *[NIST-JANAF Thermochemical Tables, 4th edition](https://janaf.nist.gov/)*, Journal of Physical and Chemical Reference Data Monograph 9, 1998. -[^cite-schaeferfegley2017]: L. Schaefer, B. Fegley, *[Redox states of initial atmospheres outgassed on rocky planets and planetesimals](https://doi.org/10.3847/1538-4357/aa784f)*, The Astrophysical Journal, 843(2), 120, 2017. [SciX](https://scixplorer.org/abs/2017ApJ...843..120S/abstract). + [^cite-bower2022]: D. J. Bower, K. Hakim, P. A. Sossi, P. Sanan, *[Retention of water in terrestrial magma oceans and carbon-rich early atmospheres](https://doi.org/10.3847/PSJ/ac5fb1)*, The Planetary Science Journal, 3(4), 93, 2022. [SciX](https://scixplorer.org/abs/2022PSJ.....3...93B/abstract). + [^cite-bower2025]: D. J. Bower, M. A. Thompson, K. Hakim, M. Tian, P. A. Sossi, *Diversity of low-mass planet atmospheres in the C-H-O-N-S-Cl system with interior dissolution, nonideality, and condensation: application to TRAPPIST-1e and sub-Neptunes*, The Astrophysical Journal, 995, 59, 2025. [SciX](https://scixplorer.org/abs/2025ApJ...995...59B/abstract). + [^cite-chase1998]: M. W. Chase, *[NIST-JANAF Thermochemical Tables, 4th edition](https://janaf.nist.gov/)*, Journal of Physical and Chemical Reference Data Monograph 9, 1998. + [^cite-schaeferfegley2017]: L. Schaefer, B. Fegley, *[Redox states of initial atmospheres outgassed on rocky planets and planetesimals](https://doi.org/10.3847/1538-4357/aa784f)*, The Astrophysical Journal, 843(2), 120, 2017. [SciX](https://scixplorer.org/abs/2017ApJ...843..120S/abstract). diff --git a/docs/Explanations/mass_balance.md b/docs/Explanations/mass_balance.md index bbf6b19..b9b4a10 100644 --- a/docs/Explanations/mass_balance.md +++ b/docs/Explanations/mass_balance.md @@ -26,7 +26,7 @@ def func(pin_arr, ddict, mass_target_d): ## Atmospheric column mass -The relation between a species' surface partial pressure and its column mass follows directly from hydrostatic equilibrium under the assumption of a well-mixed atmosphere. Bower et al. (2019)[^cite-bower2019] Equation (2) writes it as +The relation between a species' surface partial pressure and its column mass follows directly from hydrostatic equilibrium under the assumption of a well-mixed atmosphere. Bower et al. (2019) [^cite-bower2019] Equation (2) writes it as $$ m_v^\mathrm{atm} = 4\pi R_p^2 \cdot \frac{\mu_v}{\bar\mu} \cdot \frac{p_v}{g}, @@ -40,7 +40,7 @@ mass_atm_d[key] *= 4.0 * np.pi * ddict['radius'] ** 2.0 mass_atm_d[key] *= molar_mass[key] / mu_atm ``` -The `mu_v / mu_atm` ratio is the part Bower et al. (2019)[^cite-bower2019] §4.1.1 emphasises was missing from the pre-2019 mass-balance formulations of Elkins-Tanton (2008)[^cite-elkinstanton2008], Lebrun et al. (2013)[^cite-lebrun2013], Salvador et al. (2017)[^cite-salvador2017], and Nikolaou et al. (2019)[^cite-nikolaou2019]. Without it, multi-species atmospheres receive an unphysical bias in the inferred reservoir partitioning. +The `mu_v / mu_atm` ratio is the part Bower et al. (2019) [^cite-bower2019] §4.1.1 emphasises was missing from the pre-2019 mass-balance formulations of Elkins-Tanton (2008) [^cite-elkinstanton2008], Lebrun et al. (2013) [^cite-lebrun2013], Salvador et al. (2017) [^cite-salvador2017], and Nikolaou et al. (2019) [^cite-nikolaou2019]. Without it, multi-species atmospheres receive an unphysical bias in the inferred reservoir partitioning. After computing per-species column masses, `atmosphere_mass()` aggregates them into per-element atomic masses by stoichiometric atom-counting: @@ -60,7 +60,7 @@ $$ where $M_\mathrm{mantle}$ is the (molten + solid) silicate mantle mass and $\Phi_\mathrm{global}$ is the global melt fraction. Setting $\Phi_\mathrm{global} = 0$ disables solubility entirely; setting $\Phi_\mathrm{global} = 1$ (fully molten) gives the maximum dissolved-mass contribution. -Like for atmospheric mass, the per-species dissolved masses are aggregated into per-element atomic masses. Note the asymmetry with the atmospheric path: CALLIOPE only includes a subset of species in the dissolved-mass tally (H$_2$O, CO$_2$, CO, CH$_4$, N$_2$, S$_2$); the remaining species (H$_2$, NH$_3$, SO$_2$, H$_2$S, O$_2$) are assumed to have negligible solubility, consistent with Bower et al. (2022)[^cite-bower2022] §2.2.3. +Like for atmospheric mass, the per-species dissolved masses are aggregated into per-element atomic masses. Note the asymmetry with the atmospheric path: CALLIOPE only includes a subset of species in the dissolved-mass tally (H$_2$O, CO$_2$, CO, CH$_4$, N$_2$, S$_2$); the remaining species (H$_2$, NH$_3$, SO$_2$, H$_2$S, O$_2$) are assumed to have negligible solubility, consistent with Bower et al. (2022) [^cite-bower2022] §2.2.3. ## Solver: hybrid Powell + trust-region with Monte-Carlo restart @@ -98,9 +98,9 @@ The `result` dictionary returned by `equilibrium_atmosphere()` includes `H_res`, - [Coupling to PROTEUS (theory)](proteus_coupling.md) for how the wrapper builds `target` and `ddict` from `hf_row`. - [API reference for `calliope.solve`](../Reference/api/calliope.solve.md). -[^cite-bower2019]: D. J. Bower, D. Kitzmann, A. S. Wolf, P. Sanan, C. Dorn, A. V. Oza, *[Linking the evolution of terrestrial interiors and an early outgassed atmosphere to astrophysical observations](https://doi.org/10.1051/0004-6361/201935710)*, Astronomy & Astrophysics, 631, A103, 2019. [SciX](https://scixplorer.org/abs/2019A%26A...631A.103B/abstract). -[^cite-bower2022]: D. J. Bower, K. Hakim, P. A. Sossi, P. Sanan, *[Retention of water in terrestrial magma oceans and carbon-rich early atmospheres](https://doi.org/10.3847/PSJ/ac5fb1)*, The Planetary Science Journal, 3(4), 93, 2022. [SciX](https://scixplorer.org/abs/2022PSJ.....3...93B/abstract). -[^cite-elkinstanton2008]: L. T. Elkins-Tanton, *[Linked magma ocean solidification and atmospheric growth for Earth and Mars](https://doi.org/10.1016/j.epsl.2008.03.062)*, Earth and Planetary Science Letters, 271, 181–191, 2008. [SciX](https://scixplorer.org/abs/2008E%26PSL.271..181E/abstract). -[^cite-lebrun2013]: T. Lebrun, H. Massol, E. Chassefière, A. Davaille, E. Marcq, P. Sarda, F. Leblanc, G. Brandeis, *[Thermal evolution of an early magma ocean in interaction with the atmosphere](https://doi.org/10.1002/jgre.20068)*, Journal of Geophysical Research: Planets, 118, 1155–1176, 2013. [SciX](https://scixplorer.org/abs/2013JGRE..118.1155L/abstract). -[^cite-salvador2017]: A. Salvador, H. Massol, A. Davaille, E. Marcq, P. Sarda, E. Chassefière, *The relative influence of H$_2$O and CO$_2$ on the primitive surface conditions and evolution of rocky planets*, Journal of Geophysical Research: Planets, 122, 1458–1486, 2017. [SciX](https://scixplorer.org/abs/2017JGRE..122.1458S/abstract). -[^cite-nikolaou2019]: A. Nikolaou, N. Katyal, N. Tosi, M. Godolt, J. L. Grenfell, H. Rauer, *[What factors affect the duration and outgassing of the terrestrial magma ocean?](https://doi.org/10.3847/1538-4357/ab08ed)*, The Astrophysical Journal, 875, 11, 2019. [SciX](https://scixplorer.org/abs/2019ApJ...875...11N/abstract). + [^cite-bower2019]: D. J. Bower, D. Kitzmann, A. S. Wolf, P. Sanan, C. Dorn, A. V. Oza, *[Linking the evolution of terrestrial interiors and an early outgassed atmosphere to astrophysical observations](https://doi.org/10.1051/0004-6361/201935710)*, Astronomy & Astrophysics, 631, A103, 2019. [SciX](https://scixplorer.org/abs/2019A%26A...631A.103B/abstract). + [^cite-bower2022]: D. J. Bower, K. Hakim, P. A. Sossi, P. Sanan, *[Retention of water in terrestrial magma oceans and carbon-rich early atmospheres](https://doi.org/10.3847/PSJ/ac5fb1)*, The Planetary Science Journal, 3(4), 93, 2022. [SciX](https://scixplorer.org/abs/2022PSJ.....3...93B/abstract). + [^cite-elkinstanton2008]: L. T. Elkins-Tanton, *[Linked magma ocean solidification and atmospheric growth for Earth and Mars](https://doi.org/10.1016/j.epsl.2008.03.062)*, Earth and Planetary Science Letters, 271, 181–191, 2008. [SciX](https://scixplorer.org/abs/2008E%26PSL.271..181E/abstract). + [^cite-lebrun2013]: T. Lebrun, H. Massol, E. Chassefière, A. Davaille, E. Marcq, P. Sarda, F. Leblanc, G. Brandeis, *[Thermal evolution of an early magma ocean in interaction with the atmosphere](https://doi.org/10.1002/jgre.20068)*, Journal of Geophysical Research: Planets, 118, 1155–1176, 2013. [SciX](https://scixplorer.org/abs/2013JGRE..118.1155L/abstract). + [^cite-salvador2017]: A. Salvador, H. Massol, A. Davaille, E. Marcq, P. Sarda, E. Chassefière, *The relative influence of H$_2$O and CO$_2$ on the primitive surface conditions and evolution of rocky planets*, Journal of Geophysical Research: Planets, 122, 1458–1486, 2017. [SciX](https://scixplorer.org/abs/2017JGRE..122.1458S/abstract). + [^cite-nikolaou2019]: A. Nikolaou, N. Katyal, N. Tosi, M. Godolt, J. L. Grenfell, H. Rauer, *[What factors affect the duration and outgassing of the terrestrial magma ocean?](https://doi.org/10.3847/1538-4357/ab08ed)*, The Astrophysical Journal, 875, 11, 2019. [SciX](https://scixplorer.org/abs/2019ApJ...875...11N/abstract). diff --git a/docs/Explanations/model.md b/docs/Explanations/model.md index f4d8a41..900e18e 100644 --- a/docs/Explanations/model.md +++ b/docs/Explanations/model.md @@ -2,7 +2,7 @@ CALLIOPE is a 0-D **equilibrium outgassing** solver for the magma-ocean atmosphere coupling. It treats the silicate mantle and the overlying gas-phase atmosphere as a single thermodynamic system in equilibrium at the surface, and asks: for a given total elemental inventory and a given magma-ocean state, what surface partial pressures and dissolved-volatile masses simultaneously satisfy (i) gas-phase chemical equilibrium, (ii) gas-melt solubility equilibrium, and (iii) elemental mass conservation? -This page summarises the model assumptions, the variables it solves for, and how it relates to the upstream papers (Bower et al. 2019[^cite-bower2019], 2022[^cite-bower2022]; Nicholls et al. 2024[^cite-nicholls2024]). Each component has its own dedicated page. +This page summarises the model assumptions, the variables it solves for, and how it relates to the upstream papers (Bower et al. 2019 [^cite-bower2019], 2022 [^cite-bower2022]; Nicholls et al. 2024 [^cite-nicholls2024]). Each component has its own dedicated page. ## What is in the model @@ -12,14 +12,14 @@ This page summarises the model assumptions, the variables it solves for, and how | Reaction | Source | |---|---| - | $\mathrm{H_2O} \rightleftharpoons \mathrm{H_2} + \tfrac{1}{2}\,\mathrm{O_2}$ | [JANAF](https://janaf.nist.gov/) (`janaf_H2`) and Schaefer & Fegley 2017[^cite-schaeferfegley2017] (`schaefer_H`) | - | $\mathrm{CO_2} \rightleftharpoons \mathrm{CO} + \tfrac{1}{2}\,\mathrm{O_2}$ | [JANAF](https://janaf.nist.gov/) (`janaf_CO`) and Schaefer & Fegley 2017[^cite-schaeferfegley2017] (`schaefer_C`) | - | $\mathrm{CO_2} + 2\,\mathrm{H_2} \rightleftharpoons \mathrm{CH_4} + \mathrm{O_2}$ | Schaefer & Fegley 2017[^cite-schaeferfegley2017] (`schaefer_CH4`) | + | $\mathrm{H_2O} \rightleftharpoons \mathrm{H_2} + \tfrac{1}{2}\,\mathrm{O_2}$ | [JANAF](https://janaf.nist.gov/) (`janaf_H2`) and Schaefer & Fegley 2017 [^cite-schaeferfegley2017] (`schaefer_H`) | + | $\mathrm{CO_2} \rightleftharpoons \mathrm{CO} + \tfrac{1}{2}\,\mathrm{O_2}$ | [JANAF](https://janaf.nist.gov/) (`janaf_CO`) and Schaefer & Fegley 2017 [^cite-schaeferfegley2017] (`schaefer_C`) | + | $\mathrm{CO_2} + 2\,\mathrm{H_2} \rightleftharpoons \mathrm{CH_4} + \mathrm{O_2}$ | Schaefer & Fegley 2017 [^cite-schaeferfegley2017] (`schaefer_CH4`) | | $\tfrac{1}{2}\,\mathrm{S_2} + \mathrm{O_2} \rightleftharpoons \mathrm{SO_2}$ | JANAF, doubled form (`janaf_SO2`) | | $\tfrac{1}{2}\,\mathrm{S_2} + \mathrm{H_2} \rightleftharpoons \mathrm{H_2S}$ | JANAF, doubled form (`janaf_H2S`) | | $\tfrac{1}{2}\,\mathrm{N_2} + \tfrac{3}{2}\,\mathrm{H_2} \rightleftharpoons \mathrm{NH_3}$ | JANAF, doubled form (`janaf_NH3`) | -- **One oxygen-fugacity buffer**: Fischer et al. (2011)[^cite-fischer2011] iron-wüstite (default; close to atmodeller's Hirschmann composite across the magma-ocean range), or the legacy O'Neill & Eggins (2002)[^cite-oneilleggins2002] IW. The shift $\Delta\mathrm{IW}$ sets $\log_{10} f_{\mathrm{O}_2}$ relative to the buffer; under the buffered mode it is a user-prescribed input, under the authoritative-O mode it is a solver unknown. +- **One oxygen-fugacity buffer**: Fischer et al. (2011) [^cite-fischer2011] iron-wüstite (default; close to atmodeller's Hirschmann composite across the magma-ocean range), or the legacy O'Neill & Eggins (2002) [^cite-oneilleggins2002] IW. The shift $\Delta\mathrm{IW}$ sets $\log_{10} f_{\mathrm{O}_2}$ relative to the buffer; under the buffered mode it is a user-prescribed input, under the authoritative-O mode it is a solver unknown. - **One solubility law per species** with multiple alternative compositions (peridotite, basalt, lunar glass, anorthite-diopside) selectable via constructor argument. ## What is *not* in the model @@ -29,7 +29,7 @@ This page summarises the model assumptions, the variables it solves for, and how - **No radiative transfer**: surface partial pressures come out, optical depths and surface temperature come from [AGNI](https://www.h-nicholls.space/AGNI/) or [JANUS](https://proteus-framework.org/JANUS/). - **No atmospheric escape**: per-iteration mass loss is computed by the PROTEUS escape module ([ZEPHYRUS](https://proteus-framework.org/ZEPHYRUS/)). - **No solid-phase partitioning**: dissolved-mass fields are written into `_kg_solid` slots that always read `0.0`; CALLIOPE only resolves melt and gas reservoirs. The PROTEUS atmosphere modules handle solid-phase trapping if any. -- **No real-gas EOS**: all species are treated as ideal gases, so partial pressure $\equiv$ fugacity. For non-ideal real-gas effects use [atmodeller](https://atmodeller.readthedocs.io/) (Bower et al. 2025[^cite-bower2025]). +- **No real-gas EOS**: all species are treated as ideal gases, so partial pressure $\equiv$ fugacity. For non-ideal real-gas effects use [atmodeller](https://atmodeller.readthedocs.io/) (Bower et al. 2025 [^cite-bower2025]). - **No condensation**: every species is in the gas phase. Condensation chemistry happens in AGNI / JANUS. ## Mathematical statement @@ -55,10 +55,10 @@ The four pieces of physics decompose cleanly: ## Lineage -- **Bower et al. (2019)[^cite-bower2019]** introduced the H$_2$O + CO$_2$ mass-balance + Henry's-law treatment that CALLIOPE inherits, including the molar-mass correction $\mu_v / \bar\mu$ in the column-mass relation that earlier studies (Elkins-Tanton 2008[^cite-elkinstanton2008]; Lebrun et al. 2013[^cite-lebrun2013]; Salvador et al. 2017[^cite-salvador2017]; Nikolaou et al. 2019[^cite-nikolaou2019]) had omitted. -- **Bower et al. (2022)[^cite-bower2022]** added the H$_2$, CO, CH$_4$ extensions and the explicit Schaefer & Fegley (2017)[^cite-schaeferfegley2017] IVTHANTHERMO / Chase (1998)[^cite-chase1998] JANAF equilibrium constants for the H$_2$O/H$_2$, CO$_2$/CO, and CO$_2$+H$_2$/CH$_4$ couples; also adopted the O'Neill & Eggins (2002)[^cite-oneilleggins2002] IW buffer (their Eq. 7) as the parameterisation of mantle redox state. -- **Nicholls et al. (2024)[^cite-nicholls2024]** introduced N$_2$ via the Libourel et al. (2003)[^cite-libourel2003] and Dasgupta et al. (2022)[^cite-dasgupta2022] solubility laws, which is the species set in `calliope.solve.equilibrium_atmosphere` today. -- **Nicholls et al. (2026)[^cite-nicholls2026]** demonstrated the sulfur extension (S$_2$, SO$_2$, H$_2$S) on L 98-59 d, validating the equilibrium constants and the Gaillard et al. (2022)[^cite-gaillard2022] S$_2$ solubility law against in-situ photochemical inferences. +- **Bower et al. (2019) [^cite-bower2019]** introduced the H$_2$O + CO$_2$ mass-balance + Henry's-law treatment that CALLIOPE inherits, including the molar-mass correction $\mu_v / \bar\mu$ in the column-mass relation that earlier studies (Elkins-Tanton 2008 [^cite-elkinstanton2008]; Lebrun et al. 2013 [^cite-lebrun2013]; Salvador et al. 2017 [^cite-salvador2017]; Nikolaou et al. 2019 [^cite-nikolaou2019]) had omitted. +- **Bower et al. (2022) [^cite-bower2022]** added the H$_2$, CO, CH$_4$ extensions and the explicit Schaefer & Fegley (2017) [^cite-schaeferfegley2017] IVTHANTHERMO / Chase (1998) [^cite-chase1998] JANAF equilibrium constants for the H$_2$O/H$_2$, CO$_2$/CO, and CO$_2$+H$_2$/CH$_4$ couples; also adopted the O'Neill & Eggins (2002) [^cite-oneilleggins2002] IW buffer (their Eq. 7) as the parameterisation of mantle redox state. +- **Nicholls et al. (2024) [^cite-nicholls2024]** introduced N$_2$ via the Libourel et al. (2003) [^cite-libourel2003] and Dasgupta et al. (2022) [^cite-dasgupta2022] solubility laws, which is the species set in `calliope.solve.equilibrium_atmosphere` today. +- **Nicholls et al. (2026) [^cite-nicholls2026]** demonstrated the sulfur extension (S$_2$, SO$_2$, H$_2$S) on L 98-59 d, validating the equilibrium constants and the Gaillard et al. (2022) [^cite-gaillard2022] S$_2$ solubility law against in-situ photochemical inferences. !!! note "Why four primaries" CALLIOPE's prognostic *species* are the four primary partial pressures, not the eleven species partial pressures: the gas-phase chemistry collapses the eleven species into four independent mass-balance constraints. N has only one solved degree of freedom even though it appears in both N$_2$ and NH$_3$. O is either not solved (buffered mode) or carried as an additional scalar unknown $\Delta\mathrm{IW}$ alongside the four pressures (authoritative-O mode); in neither case is a new primary partial pressure introduced. Adding a new oxygen-bearing species (e.g. NO) would not require a new constraint, only a new entry in `get_partial_pressures()` and the corresponding contribution to atmospheric and dissolved mass. @@ -68,23 +68,23 @@ The four pieces of physics decompose cleanly: CALLIOPE is calibrated for surface temperatures of roughly $1000 \le T_\mathrm{magma} \le 4000$ K and surface pressures of roughly $0.1 \le p_\mathrm{surf} \le 5000$ bar. The lower end of the pressure range is set by numerical stability of the speciation walk; the upper end is the loose envelope above which one or more solubility laws extrapolate. Individual solubility laws have tighter calibration windows than the envelope (Dixon CO$_2$: $\le$815 bar; Sossi H$_2$O peridotite: 1 atm; Hamilton H$_2$O basalt: 1-6 kbar; Ardia CH$_4$: 0.7-3 GPa total pressure), see the per-law table in [Solubility laws](solubility.md). Outside the envelope above: - Below $T \sim 1000$ K the JANAF fits used for the equilibrium constants extrapolate beyond their validation range. The PROTEUS wrapper enforces a configurable `T_floor` (default 700 K), which clips temperatures below `T_floor` to this value, since thermochemical equilibrium does not necessarily hold at cooler temperatures. -- Above $T \sim 4000$ K the mantle-atmosphere partitioning approximation breaks down; switch to atmodeller (Bower et al. 2025[^cite-bower2025]). +- Above $T \sim 4000$ K the mantle-atmosphere partitioning approximation breaks down; switch to atmodeller (Bower et al. 2025 [^cite-bower2025]). - The Sossi (2023) peridotite and Newcombe (2017) anorthite-diopside / lunar-glass H$_2$O laws are calibrated at 1 atm. The Dixon (1995) basalt fit is calibrated to 717 bar $p_\mathrm{H_2O}$. For surface pressures above $\sim$1 kbar use the Hamilton (1964) basalt fit (1-6 kbar calibration range) or atmodeller for higher-pressure non-ideal behaviour. Applying the Sossi or Newcombe fits at kbar pressures extrapolates the partial-pressure input by 3 orders of magnitude beyond calibration; the resulting dissolved-mass error scales as $p^{0.5}$ for the power-law fits, so the error is a factor of $\sim$30 at 1 kbar. - Solid-phase partitioning is ignored; CALLIOPE strictly handles melt + gas. Use it only when $\Phi_\mathrm{global} > 0$, or accept that all dissolved masses will be zero. -[^cite-bower2019]: D. J. Bower, D. Kitzmann, A. S. Wolf, P. Sanan, C. Dorn, A. V. Oza, *[Linking the evolution of terrestrial interiors and an early outgassed atmosphere to astrophysical observations](https://doi.org/10.1051/0004-6361/201935710)*, Astronomy & Astrophysics, 631, A103, 2019. [SciX](https://scixplorer.org/abs/2019A%26A...631A.103B/abstract). -[^cite-bower2022]: D. J. Bower, K. Hakim, P. A. Sossi, P. Sanan, *[Retention of water in terrestrial magma oceans and carbon-rich early atmospheres](https://doi.org/10.3847/PSJ/ac5fb1)*, The Planetary Science Journal, 3(4), 93, 2022. [SciX](https://scixplorer.org/abs/2022PSJ.....3...93B/abstract). -[^cite-bower2025]: D. J. Bower, M. A. Thompson, K. Hakim, M. Tian, P. A. Sossi, *Diversity of low-mass planet atmospheres in the C-H-O-N-S-Cl system with interior dissolution, nonideality, and condensation: application to TRAPPIST-1e and sub-Neptunes*, The Astrophysical Journal, 995, 59, 2025. [SciX](https://scixplorer.org/abs/2025ApJ...995...59B/abstract). -[^cite-chase1998]: M. W. Chase, *[NIST-JANAF Thermochemical Tables, 4th edition](https://janaf.nist.gov/)*, Journal of Physical and Chemical Reference Data Monograph 9, 1998. -[^cite-dasgupta2022]: 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](https://doi.org/10.1016/j.gca.2022.09.012)*, Geochimica et Cosmochimica Acta, 336, 291–307, 2022. [SciX](https://scixplorer.org/abs/2022GeCoA.336..291D/abstract). -[^cite-elkinstanton2008]: L. T. Elkins-Tanton, *[Linked magma ocean solidification and atmospheric growth for Earth and Mars](https://doi.org/10.1016/j.epsl.2008.03.062)*, Earth and Planetary Science Letters, 271, 181–191, 2008. [SciX](https://scixplorer.org/abs/2008E%26PSL.271..181E/abstract). -[^cite-fischer2011]: 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](https://doi.org/10.1016/j.epsl.2011.02.025)*, Earth and Planetary Science Letters, 304, 496–502, 2011. [SciX](https://scixplorer.org/abs/2011E%26PSL.304..496F/abstract). -[^cite-gaillard2022]: 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](https://doi.org/10.1016/j.epsl.2021.117255)*, Earth and Planetary Science Letters, 577, 117255, 2022. [SciX](https://scixplorer.org/abs/2022E%26PSL.57717255G/abstract). -[^cite-lebrun2013]: T. Lebrun, H. Massol, E. Chassefière, A. Davaille, E. Marcq, P. Sarda, F. Leblanc, G. Brandeis, *[Thermal evolution of an early magma ocean in interaction with the atmosphere](https://doi.org/10.1002/jgre.20068)*, Journal of Geophysical Research: Planets, 118, 1155–1176, 2013. [SciX](https://scixplorer.org/abs/2013JGRE..118.1155L/abstract). -[^cite-libourel2003]: G. Libourel, B. Marty, F. Humbert, *[Nitrogen solubility in basaltic melt. Part I. Effect of oxygen fugacity](https://doi.org/10.1016/S0016-7037(03)00259-X)*, Geochimica et Cosmochimica Acta, 67(21), 4123–4135, 2003. [SciX](https://scixplorer.org/abs/2003GeCoA..67.4123L/abstract). -[^cite-nicholls2024]: H. Nicholls, T. Lichtenberg, D. J. Bower, R. Pierrehumbert, *[Magma ocean evolution at arbitrary redox state](https://doi.org/10.1029/2024JE008576)*, Journal of Geophysical Research: Planets, 129, e2024JE008576, 2024. [SciX](https://scixplorer.org/abs/2024JGRE..12908576N/abstract). -[^cite-nicholls2026]: H. Nicholls, T. Lichtenberg, R. D. Chatterjee, C. M. Guimond, E. Postolec, R. T. Pierrehumbert, *[Volatile-rich evolution of molten super-Earth L 98-59 d](https://doi.org/10.1038/s41550-026-02815-8)*, Nature Astronomy, 2026. [SciX](https://scixplorer.org/abs/2026NatAs.tmp...61N/abstract). [arXiv](https://arxiv.org/abs/2507.02656). -[^cite-nikolaou2019]: A. Nikolaou, N. Katyal, N. Tosi, M. Godolt, J. L. Grenfell, H. Rauer, *[What factors affect the duration and outgassing of the terrestrial magma ocean?](https://doi.org/10.3847/1538-4357/ab08ed)*, The Astrophysical Journal, 875, 11, 2019. [SciX](https://scixplorer.org/abs/2019ApJ...875...11N/abstract). -[^cite-oneilleggins2002]: H. St. C. O'Neill, S. M. Eggins, *[The effect of melt composition on trace element partitioning: an experimental investigation of the activity coefficients of FeO, NiO, CoO, MoO$_2$ and MoO$_3$ in silicate melts](https://doi.org/10.1016/S0009-2541(01)00414-4)*, Chemical Geology, 186, 151–181, 2002. [SciX](https://scixplorer.org/abs/2002ChGeo.186..151O/abstract). -[^cite-salvador2017]: A. Salvador, H. Massol, A. Davaille, E. Marcq, P. Sarda, E. Chassefière, *The relative influence of H$_2$O and CO$_2$ on the primitive surface conditions and evolution of rocky planets*, Journal of Geophysical Research: Planets, 122, 1458–1486, 2017. [SciX](https://scixplorer.org/abs/2017JGRE..122.1458S/abstract). -[^cite-schaeferfegley2017]: L. Schaefer, B. Fegley, *[Redox states of initial atmospheres outgassed on rocky planets and planetesimals](https://doi.org/10.3847/1538-4357/aa784f)*, The Astrophysical Journal, 843(2), 120, 2017. [SciX](https://scixplorer.org/abs/2017ApJ...843..120S/abstract). + [^cite-bower2019]: D. J. Bower, D. Kitzmann, A. S. Wolf, P. Sanan, C. Dorn, A. V. Oza, *[Linking the evolution of terrestrial interiors and an early outgassed atmosphere to astrophysical observations](https://doi.org/10.1051/0004-6361/201935710)*, Astronomy & Astrophysics, 631, A103, 2019. [SciX](https://scixplorer.org/abs/2019A%26A...631A.103B/abstract). + [^cite-bower2022]: D. J. Bower, K. Hakim, P. A. Sossi, P. Sanan, *[Retention of water in terrestrial magma oceans and carbon-rich early atmospheres](https://doi.org/10.3847/PSJ/ac5fb1)*, The Planetary Science Journal, 3(4), 93, 2022. [SciX](https://scixplorer.org/abs/2022PSJ.....3...93B/abstract). + [^cite-bower2025]: D. J. Bower, M. A. Thompson, K. Hakim, M. Tian, P. A. Sossi, *Diversity of low-mass planet atmospheres in the C-H-O-N-S-Cl system with interior dissolution, nonideality, and condensation: application to TRAPPIST-1e and sub-Neptunes*, The Astrophysical Journal, 995, 59, 2025. [SciX](https://scixplorer.org/abs/2025ApJ...995...59B/abstract). + [^cite-chase1998]: M. W. Chase, *[NIST-JANAF Thermochemical Tables, 4th edition](https://janaf.nist.gov/)*, Journal of Physical and Chemical Reference Data Monograph 9, 1998. + [^cite-dasgupta2022]: 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](https://doi.org/10.1016/j.gca.2022.09.012)*, Geochimica et Cosmochimica Acta, 336, 291–307, 2022. [SciX](https://scixplorer.org/abs/2022GeCoA.336..291D/abstract). + [^cite-elkinstanton2008]: L. T. Elkins-Tanton, *[Linked magma ocean solidification and atmospheric growth for Earth and Mars](https://doi.org/10.1016/j.epsl.2008.03.062)*, Earth and Planetary Science Letters, 271, 181–191, 2008. [SciX](https://scixplorer.org/abs/2008E%26PSL.271..181E/abstract). + [^cite-fischer2011]: 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](https://doi.org/10.1016/j.epsl.2011.02.025)*, Earth and Planetary Science Letters, 304, 496–502, 2011. [SciX](https://scixplorer.org/abs/2011E%26PSL.304..496F/abstract). + [^cite-gaillard2022]: 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](https://doi.org/10.1016/j.epsl.2021.117255)*, Earth and Planetary Science Letters, 577, 117255, 2022. [SciX](https://scixplorer.org/abs/2022E%26PSL.57717255G/abstract). + [^cite-lebrun2013]: T. Lebrun, H. Massol, E. Chassefière, A. Davaille, E. Marcq, P. Sarda, F. Leblanc, G. Brandeis, *[Thermal evolution of an early magma ocean in interaction with the atmosphere](https://doi.org/10.1002/jgre.20068)*, Journal of Geophysical Research: Planets, 118, 1155–1176, 2013. [SciX](https://scixplorer.org/abs/2013JGRE..118.1155L/abstract). + [^cite-libourel2003]: G. Libourel, B. Marty, F. Humbert, *[Nitrogen solubility in basaltic melt. Part I. Effect of oxygen fugacity](https://doi.org/10.1016/S0016-7037(03)00259-X)*, Geochimica et Cosmochimica Acta, 67(21), 4123–4135, 2003. [SciX](https://scixplorer.org/abs/2003GeCoA..67.4123L/abstract). + [^cite-nicholls2024]: H. Nicholls, T. Lichtenberg, D. J. Bower, R. Pierrehumbert, *[Magma ocean evolution at arbitrary redox state](https://doi.org/10.1029/2024JE008576)*, Journal of Geophysical Research: Planets, 129, e2024JE008576, 2024. [SciX](https://scixplorer.org/abs/2024JGRE..12908576N/abstract). + [^cite-nicholls2026]: H. Nicholls, T. Lichtenberg, R. D. Chatterjee, C. M. Guimond, E. Postolec, R. T. Pierrehumbert, *[Volatile-rich evolution of molten super-Earth L 98-59 d](https://doi.org/10.1038/s41550-026-02815-8)*, Nature Astronomy, 2026. [SciX](https://scixplorer.org/abs/2026NatAs.tmp...61N/abstract). [arXiv](https://arxiv.org/abs/2507.02656). + [^cite-nikolaou2019]: A. Nikolaou, N. Katyal, N. Tosi, M. Godolt, J. L. Grenfell, H. Rauer, *[What factors affect the duration and outgassing of the terrestrial magma ocean?](https://doi.org/10.3847/1538-4357/ab08ed)*, The Astrophysical Journal, 875, 11, 2019. [SciX](https://scixplorer.org/abs/2019ApJ...875...11N/abstract). + [^cite-oneilleggins2002]: H. St. C. O'Neill, S. M. Eggins, *[The effect of melt composition on trace element partitioning: an experimental investigation of the activity coefficients of FeO, NiO, CoO, MoO$_2$ and MoO$_3$ in silicate melts](https://doi.org/10.1016/S0009-2541(01)00414-4)*, Chemical Geology, 186, 151–181, 2002. [SciX](https://scixplorer.org/abs/2002ChGeo.186..151O/abstract). + [^cite-salvador2017]: A. Salvador, H. Massol, A. Davaille, E. Marcq, P. Sarda, E. Chassefière, *The relative influence of H$_2$O and CO$_2$ on the primitive surface conditions and evolution of rocky planets*, Journal of Geophysical Research: Planets, 122, 1458–1486, 2017. [SciX](https://scixplorer.org/abs/2017JGRE..122.1458S/abstract). + [^cite-schaeferfegley2017]: L. Schaefer, B. Fegley, *[Redox states of initial atmospheres outgassed on rocky planets and planetesimals](https://doi.org/10.3847/1538-4357/aa784f)*, The Astrophysical Journal, 843(2), 120, 2017. [SciX](https://scixplorer.org/abs/2017ApJ...843..120S/abstract). diff --git a/docs/Explanations/oxygen_fugacity.md b/docs/Explanations/oxygen_fugacity.md index 54f6982..5302789 100644 --- a/docs/Explanations/oxygen_fugacity.md +++ b/docs/Explanations/oxygen_fugacity.md @@ -18,9 +18,9 @@ $$ which fixes a single curve $\log_{10} f_{\mathrm{O}_2}^\mathrm{IW}(T)$ in $T$-$f_{\mathrm{O}_2}$ space. CALLIOPE supports two parameterisations of this curve. -### Fischer et al. (2011), `fischer` (default)[^cite-fischer2011] +### Fischer et al. (2011), `fischer` (default) [^cite-fischer2011] -A simpler two-parameter fit of the 1-bar IW buffer. The fit reproduces the 1-bar curve in Fischer et al. (2011)[^cite-fischer2011] Fig. 6, which itself derives from Chase (1998)[^cite-chase1998] NIST-JANAF tabulation. Fischer's own high-pressure measurements ($\le$200 GPa) extend the buffer to deep-mantle conditions but are not used by CALLIOPE. +A simpler two-parameter fit of the 1-bar IW buffer. The fit reproduces the 1-bar curve in Fischer et al. (2011) [^cite-fischer2011] Fig. 6, which itself derives from Chase (1998) [^cite-chase1998] NIST-JANAF tabulation. Fischer's own high-pressure measurements ($\le$200 GPa) extend the buffer to deep-mantle conditions but are not used by CALLIOPE. $$ \log_{10} f_{\mathrm{O}_2}^\mathrm{IW}(T) = 6.94059 - \frac{28180.8}{T}. @@ -28,15 +28,15 @@ $$ Implemented as `OxygenFugacity.fischer(T)`. -### O'Neill & Eggins (2002), `oneill` (legacy)[^cite-oneilleggins2002] +### O'Neill & Eggins (2002), `oneill` (legacy) [^cite-oneilleggins2002] -A thermochemically-constrained fit derived from low-temperature equilibrium data, expressed as Bower et al. (2022)[^cite-bower2022] Equation (7): +A thermochemically-constrained fit derived from low-temperature equilibrium data, expressed as Bower et al. (2022) [^cite-bower2022] Equation (7): $$ \log_{10} f_{\mathrm{O}_2}^\mathrm{IW}(T) = \frac{2\left[-244118 + 115.559\,T - 8.474\,T \ln T\right]}{\ln(10)\, R\, T}, $$ -with $R = 8.31441$ J K$^{-1}$ mol$^{-1}$. Bower et al. (2022)[^cite-bower2022] adopted this as the "IW buffer to which $f_{\mathrm{O}_2}$ is referenced". CALLIOPE retains it under the model name `oneill` (function `OxygenFugacity.oneill(T)` in `oxygen_fugacity.py`); keep it as the choice when you need to reproduce results from the older literature line. +with $R = 8.31441$ J K$^{-1}$ mol$^{-1}$. Bower et al. (2022) [^cite-bower2022] adopted this as the "IW buffer to which $f_{\mathrm{O}_2}$ is referenced". CALLIOPE retains it under the model name `oneill` (function `OxygenFugacity.oneill(T)` in `oxygen_fugacity.py`); keep it as the choice when you need to reproduce results from the older literature line. !!! note "Choice of buffer" The two parameterisations cross near $T \approx 1800$ K and diverge in opposite directions on either side: at $T = 1500$ K Fischer is about $0.4$ dex *more reducing* than O'Neill; at $T = 3000$ K Fischer is about $1.1$ dex *more oxidising*. The crossover means the difference is small (under $0.05$ dex) near 1800 K but grows to several tenths of a dex by 2400 K and reaches roughly $1$ dex at 3000 K. The choice matters at the few-tenths-of-a-dex level for inferred partial pressures across most of the magma-ocean range. CALLIOPE now defaults to Fischer 2011 because it sits within $\sim$0.2 dex of the Hirschmann composite used by atmodeller across the whole magma-ocean range and so produces cross-backend $\Delta\mathrm{IW}$ values that agree to a few tenths of a dex rather than up to $\sim 1$ dex with the older default. The legacy O'Neill choice remains available for reproducibility of pre-existing results; see [Backend comparison](cross_backend_comparison.md) for the quantitative comparison. @@ -64,36 +64,36 @@ $$ G_\mathrm{eq}(T, f_{\mathrm{O}_2}) = 10^{\,\log_{10} K_\mathrm{eq}(T) - n_\mathrm{O_2}\,\log_{10} f_{\mathrm{O}_2}}. $$ -For the H$_2$O-H$_2$ couple ($n_\mathrm{O_2} = +0.5$), reducing conditions ($f_{\mathrm{O}_2}$ smaller, $\Delta\mathrm{IW}$ more negative) drive $G_\mathrm{eq}$ larger, which in turn drives more H$_2$O to dissociate into H$_2$. This is the redox dependence visible in the redox-sweep tutorial, and it is the mechanism behind the H$_2$-dominated, long-lived magma-ocean atmospheres found in Nicholls et al. (2024)[^cite-nicholls2024] Figure 6 at $\Delta\mathrm{IW} \le -1$. +For the H$_2$O-H$_2$ couple ($n_\mathrm{O_2} = +0.5$), reducing conditions ($f_{\mathrm{O}_2}$ smaller, $\Delta\mathrm{IW}$ more negative) drive $G_\mathrm{eq}$ larger, which in turn drives more H$_2$O to dissociate into H$_2$. This is the redox dependence visible in the redox-sweep tutorial, and it is the mechanism behind the H$_2$-dominated, long-lived magma-ocean atmospheres found in Nicholls et al. (2024) [^cite-nicholls2024] Figure 6 at $\Delta\mathrm{IW} \le -1$. ### 3. The S$_2$ Gaillard solubility -The Gaillard et al. (2022)[^cite-gaillard2022] sulfide solubility carries an explicit $\ln f_{\mathrm{O}_2}$ term, so $\Delta\mathrm{IW}$ enters the dissolved-S inventory directly. The implementation in `solubility.SolubilityS2.gaillard` calls back into `OxygenFugacity()` to compute the absolute $f_{\mathrm{O}_2}$. +The Gaillard et al. (2022) [^cite-gaillard2022] sulfide solubility carries an explicit $\ln f_{\mathrm{O}_2}$ term, so $\Delta\mathrm{IW}$ enters the dissolved-S inventory directly. The implementation in `solubility.SolubilityS2.gaillard` calls back into `OxygenFugacity()` to compute the absolute $f_{\mathrm{O}_2}$. ### 4. The N$_2$ Dasgupta solubility -Similarly, the Dasgupta et al. (2022)[^cite-dasgupta2022] N$_2$ solubility includes a $-1.6\,\Delta\mathrm{IW}$ term in its exponent, so reducing conditions sharply increase the dissolved-N inventory. This is one mechanism by which planet-scale N partitioning is tied to mantle redox; see Nicholls et al. (2026)[^cite-nicholls2026] for an application to L 98-59 d, where the inferred H$_2$-dominated atmosphere with photochemical SO$_2$ implies $\Delta\mathrm{IW}$ between IW-4 and IW-1. +Similarly, the Dasgupta et al. (2022) [^cite-dasgupta2022] N$_2$ solubility includes a $-1.6\,\Delta\mathrm{IW}$ term in its exponent, so reducing conditions sharply increase the dissolved-N inventory. This is one mechanism by which planet-scale N partitioning is tied to mantle redox; see Nicholls et al. (2026) [^cite-nicholls2026] for an application to L 98-59 d, where the inferred H$_2$-dominated atmosphere with photochemical SO$_2$ implies $\Delta\mathrm{IW}$ between IW-4 and IW-1. ## Reference values for $\Delta\mathrm{IW}$ | Reservoir | $\Delta\mathrm{IW}$ | Source | |---|---|---| -| Mercury surface | IW-2.8 to IW-5.4 (Fe-based: IW-2.8 to IW-4.5; sulphur-based: IW-5.4 via Namur et al. 2016) | Cartier & Wood (2019)[^cite-cartierwood2019] | -| Mars upper mantle (shergottite source) | $\approx$ IW (specifically IW-1.0 to IW-0.3 for QUE 94201) | Wadhwa (2001)[^cite-wadhwa2001] | -| Mars shergottite parent melts | IW-1.0 to IW+1.9 (variation from crust assimilation) | Wadhwa (2001)[^cite-wadhwa2001] | +| Mercury surface | IW-2.8 to IW-5.4 (Fe-based: IW-2.8 to IW-4.5; sulphur-based: IW-5.4 via Namur et al. 2016) | Cartier & Wood (2019) [^cite-cartierwood2019] | +| Mars upper mantle (shergottite source) | $\approx$ IW (specifically IW-1.0 to IW-0.3 for QUE 94201) | Wadhwa (2001) [^cite-wadhwa2001] | +| Mars shergottite parent melts | IW-1.0 to IW+1.9 (variation from crust assimilation) | Wadhwa (2001) [^cite-wadhwa2001] | | Iron-wüstite buffer | $0$ | by definition | -| Earth's upper mantle (modern) | $\approx$ IW+3.5 | Sossi et al. (2020)[^cite-sossi2020] | -| Earth upper mantle (range) | FMQ$\,\pm\,2$ ($\approx$ IW+1.5 to IW+5.5) | Frost & McCammon (2008)[^cite-frostmccammon2008] | -| Earth mantle at $\sim 8$ GPa | $\approx$ FMQ$-5$ ($\approx$ IW-1.5) | Frost & McCammon (2008)[^cite-frostmccammon2008] | -| Earth transition zone ($\sim$14-23 GPa) | just below IW | Frost & McCammon (2008)[^cite-frostmccammon2008] | -| Earth lower mantle ($>$23 GPa) | metal-saturated ($\sim$1 wt% Fe$^0$); at or below IW | Frost & McCammon (2008)[^cite-frostmccammon2008] | +| Earth's upper mantle (modern) | $\approx$ IW+3.5 | Sossi et al. (2020) [^cite-sossi2020] | +| Earth upper mantle (range) | FMQ$\,\pm\,2$ ($\approx$ IW+1.5 to IW+5.5) | Frost & McCammon (2008) [^cite-frostmccammon2008] | +| Earth mantle at $\sim 8$ GPa | $\approx$ FMQ$-5$ ($\approx$ IW-1.5) | Frost & McCammon (2008) [^cite-frostmccammon2008] | +| Earth transition zone ($\sim$14-23 GPa) | just below IW | Frost & McCammon (2008) [^cite-frostmccammon2008] | +| Earth lower mantle ($>$23 GPa) | metal-saturated ($\sim$1 wt% Fe$^0$); at or below IW | Frost & McCammon (2008) [^cite-frostmccammon2008] | -CALLIOPE's PROTEUS-side default is `fO2_shift_IW = 4.0`, consistent with a near-surface terrestrial composition. Nicholls et al. (2024)[^cite-nicholls2024] Table 2 explored $\Delta\mathrm{IW} \in \{-5, -3, -1, 0, +1, +3, +5\}$ on a 7-point grid and demonstrated that the resulting atmospheric composition spans the full range from H$_2$-dominated reduced atmospheres (TRAPPIST-1 c-like) to H$_2$O/CO$_2$-dominated oxidised atmospheres (Earth-like). +CALLIOPE's PROTEUS-side default is `fO2_shift_IW = 4.0`, consistent with a near-surface terrestrial composition. Nicholls et al. (2024) [^cite-nicholls2024] Table 2 explored $\Delta\mathrm{IW} \in \{-5, -3, -1, 0, +1, +3, +5\}$ on a 7-point grid and demonstrated that the resulting atmospheric composition spans the full range from H$_2$-dominated reduced atmospheres (TRAPPIST-1 c-like) to H$_2$O/CO$_2$-dominated oxidised atmospheres (Earth-like). ## Limitations - **No $f_{\mathrm{O}_2}$ evolution**: $\Delta\mathrm{IW}$ is a constant input, not a state variable. In reality the mantle $f_{\mathrm{O}_2}$ should evolve with degree of crystallisation, fractional crystallisation depth, and atmospheric escape; CALLIOPE does not capture this and the user is responsible for choosing a representative value or sweeping over a grid. -- **No $f_{\mathrm{O}_2}$ depth profile**: the surface $f_{\mathrm{O}_2}$ alone enters the chemistry. Bower et al. (2022)[^cite-bower2022] §2.3 and Sossi et al. (2020)[^cite-sossi2020] discuss why the *interface* fugacity (rather than the deep-mantle value) is the relevant choice; this assumption is consistent with CALLIOPE's ideal-gas, single-temperature treatment but breaks down if a Fe-FeO equilibrium curve in the deep mantle differs by more than a few dex. +- **No $f_{\mathrm{O}_2}$ depth profile**: the surface $f_{\mathrm{O}_2}$ alone enters the chemistry. Bower et al. (2022) [^cite-bower2022] §2.3 and Sossi et al. (2020) [^cite-sossi2020] discuss why the *interface* fugacity (rather than the deep-mantle value) is the relevant choice; this assumption is consistent with CALLIOPE's ideal-gas, single-temperature treatment but breaks down if a Fe-FeO equilibrium curve in the deep mantle differs by more than a few dex. - **No solid-FeO buffering**: when $\Phi_\mathrm{global} \to 0$, there is no melt to buffer $f_{\mathrm{O}_2}$ against the user-prescribed value. CALLIOPE keeps using the shift regardless of melt fraction, which is a reasonable bookkeeping choice but should not be over-interpreted physically. ## See also @@ -103,15 +103,15 @@ CALLIOPE's PROTEUS-side default is `fO2_shift_IW = 4.0`, consistent with a near- - [Solubility laws](solubility.md): where $f_{\mathrm{O}_2}$ enters the S and N solubility paths - [API reference for `calliope.oxygen_fugacity`](../Reference/api/calliope.oxygen_fugacity.md) -[^cite-bower2022]: D. J. Bower, K. Hakim, P. A. Sossi, P. Sanan, *[Retention of water in terrestrial magma oceans and carbon-rich early atmospheres](https://doi.org/10.3847/PSJ/ac5fb1)*, The Planetary Science Journal, 3(4), 93, 2022. [SciX](https://scixplorer.org/abs/2022PSJ.....3...93B/abstract). -[^cite-cartierwood2019]: C. Cartier, B. J. Wood, *[The role of reducing conditions in building Mercury](https://doi.org/10.2138/gselements.15.1.39)*, Elements, 15(1), 39–45, 2019. [SciX](https://scixplorer.org/abs/2019Eleme..15...39C/abstract). -[^cite-chase1998]: M. W. Chase, *[NIST-JANAF Thermochemical Tables, 4th edition](https://janaf.nist.gov/)*, Journal of Physical and Chemical Reference Data Monograph 9, 1998. -[^cite-dasgupta2022]: 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](https://doi.org/10.1016/j.gca.2022.09.012)*, Geochimica et Cosmochimica Acta, 336, 291–307, 2022. [SciX](https://scixplorer.org/abs/2022GeCoA.336..291D/abstract). -[^cite-fischer2011]: 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](https://doi.org/10.1016/j.epsl.2011.02.025)*, Earth and Planetary Science Letters, 304, 496–502, 2011. [SciX](https://scixplorer.org/abs/2011E%26PSL.304..496F/abstract). -[^cite-frostmccammon2008]: D. J. Frost, C. A. McCammon, *[The redox state of Earth's mantle](https://doi.org/10.1146/annurev.earth.36.031207.124322)*, Annual Review of Earth and Planetary Sciences, 36, 389–420, 2008. [SciX](https://scixplorer.org/abs/2008AREPS..36..389F/abstract). -[^cite-gaillard2022]: 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](https://doi.org/10.1016/j.epsl.2021.117255)*, Earth and Planetary Science Letters, 577, 117255, 2022. [SciX](https://scixplorer.org/abs/2022E%26PSL.57717255G/abstract). -[^cite-nicholls2024]: H. Nicholls, T. Lichtenberg, D. J. Bower, R. Pierrehumbert, *[Magma ocean evolution at arbitrary redox state](https://doi.org/10.1029/2024JE008576)*, Journal of Geophysical Research: Planets, 129, e2024JE008576, 2024. [SciX](https://scixplorer.org/abs/2024JGRE..12908576N/abstract). -[^cite-nicholls2026]: H. Nicholls, T. Lichtenberg, R. D. Chatterjee, C. M. Guimond, E. Postolec, R. T. Pierrehumbert, *[Volatile-rich evolution of molten super-Earth L 98-59 d](https://doi.org/10.1038/s41550-026-02815-8)*, Nature Astronomy, 2026. [SciX](https://scixplorer.org/abs/2026NatAs.tmp...61N/abstract). [arXiv](https://arxiv.org/abs/2507.02656). -[^cite-oneilleggins2002]: H. St. C. O'Neill, S. M. Eggins, *[The effect of melt composition on trace element partitioning: an experimental investigation of the activity coefficients of FeO, NiO, CoO, MoO$_2$ and MoO$_3$ in silicate melts](https://doi.org/10.1016/S0009-2541(01)00414-4)*, Chemical Geology, 186, 151–181, 2002. [SciX](https://scixplorer.org/abs/2002ChGeo.186..151O/abstract). -[^cite-sossi2020]: P. A. Sossi, A. D. Burnham, J. Badro, A. Lanzirotti, M. Newville, H. St. C. O'Neill, *[Redox state of Earth's magma ocean and its Venus-like early atmosphere](https://doi.org/10.1126/sciadv.abd1387)*, Science Advances, 6, eabd1387, 2020. [SciX](https://scixplorer.org/abs/2020SciA....6.1387S/abstract). -[^cite-wadhwa2001]: M. Wadhwa, *[Redox state of Mars' upper mantle and crust from Eu anomalies in shergottite pyroxenes](https://doi.org/10.1126/science.1057594)*, Science, 291, 1527–1530, 2001. [SciX](https://scixplorer.org/abs/2001Sci...291.1527W/abstract). + [^cite-bower2022]: D. J. Bower, K. Hakim, P. A. Sossi, P. Sanan, *[Retention of water in terrestrial magma oceans and carbon-rich early atmospheres](https://doi.org/10.3847/PSJ/ac5fb1)*, The Planetary Science Journal, 3(4), 93, 2022. [SciX](https://scixplorer.org/abs/2022PSJ.....3...93B/abstract). + [^cite-cartierwood2019]: C. Cartier, B. J. Wood, *[The role of reducing conditions in building Mercury](https://doi.org/10.2138/gselements.15.1.39)*, Elements, 15(1), 39–45, 2019. [SciX](https://scixplorer.org/abs/2019Eleme..15...39C/abstract). + [^cite-chase1998]: M. W. Chase, *[NIST-JANAF Thermochemical Tables, 4th edition](https://janaf.nist.gov/)*, Journal of Physical and Chemical Reference Data Monograph 9, 1998. + [^cite-dasgupta2022]: 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](https://doi.org/10.1016/j.gca.2022.09.012)*, Geochimica et Cosmochimica Acta, 336, 291–307, 2022. [SciX](https://scixplorer.org/abs/2022GeCoA.336..291D/abstract). + [^cite-fischer2011]: 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](https://doi.org/10.1016/j.epsl.2011.02.025)*, Earth and Planetary Science Letters, 304, 496–502, 2011. [SciX](https://scixplorer.org/abs/2011E%26PSL.304..496F/abstract). + [^cite-frostmccammon2008]: D. J. Frost, C. A. McCammon, *[The redox state of Earth's mantle](https://doi.org/10.1146/annurev.earth.36.031207.124322)*, Annual Review of Earth and Planetary Sciences, 36, 389–420, 2008. [SciX](https://scixplorer.org/abs/2008AREPS..36..389F/abstract). + [^cite-gaillard2022]: 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](https://doi.org/10.1016/j.epsl.2021.117255)*, Earth and Planetary Science Letters, 577, 117255, 2022. [SciX](https://scixplorer.org/abs/2022E%26PSL.57717255G/abstract). + [^cite-nicholls2024]: H. Nicholls, T. Lichtenberg, D. J. Bower, R. Pierrehumbert, *[Magma ocean evolution at arbitrary redox state](https://doi.org/10.1029/2024JE008576)*, Journal of Geophysical Research: Planets, 129, e2024JE008576, 2024. [SciX](https://scixplorer.org/abs/2024JGRE..12908576N/abstract). + [^cite-nicholls2026]: H. Nicholls, T. Lichtenberg, R. D. Chatterjee, C. M. Guimond, E. Postolec, R. T. Pierrehumbert, *[Volatile-rich evolution of molten super-Earth L 98-59 d](https://doi.org/10.1038/s41550-026-02815-8)*, Nature Astronomy, 2026. [SciX](https://scixplorer.org/abs/2026NatAs.tmp...61N/abstract). [arXiv](https://arxiv.org/abs/2507.02656). + [^cite-oneilleggins2002]: H. St. C. O'Neill, S. M. Eggins, *[The effect of melt composition on trace element partitioning: an experimental investigation of the activity coefficients of FeO, NiO, CoO, MoO$_2$ and MoO$_3$ in silicate melts](https://doi.org/10.1016/S0009-2541(01)00414-4)*, Chemical Geology, 186, 151–181, 2002. [SciX](https://scixplorer.org/abs/2002ChGeo.186..151O/abstract). + [^cite-sossi2020]: P. A. Sossi, A. D. Burnham, J. Badro, A. Lanzirotti, M. Newville, H. St. C. O'Neill, *[Redox state of Earth's magma ocean and its Venus-like early atmosphere](https://doi.org/10.1126/sciadv.abd1387)*, Science Advances, 6, eabd1387, 2020. [SciX](https://scixplorer.org/abs/2020SciA....6.1387S/abstract). + [^cite-wadhwa2001]: M. Wadhwa, *[Redox state of Mars' upper mantle and crust from Eu anomalies in shergottite pyroxenes](https://doi.org/10.1126/science.1057594)*, Science, 291, 1527–1530, 2001. [SciX](https://scixplorer.org/abs/2001Sci...291.1527W/abstract). diff --git a/docs/Explanations/proteus_coupling.md b/docs/Explanations/proteus_coupling.md index 381883f..c61e73a 100644 --- a/docs/Explanations/proteus_coupling.md +++ b/docs/Explanations/proteus_coupling.md @@ -173,7 +173,7 @@ After the writeback, `wrapper.run_outgassing` recomputes `M_atm` from the per-sp ## Where the binodal lives -If `config.outgas.h2_binodal = true`, `wrapper.run_outgassing` calls `apply_binodal_h2` *after* CALLIOPE returns. This applies the Rogers et al. (2025)[^cite-rogers2025] H$_2$-MgSiO$_3$ miscibility correction as a post-processing step on top of the CALLIOPE equilibrium. CALLIOPE itself does not know about miscibility; it produces the ideal-mixing baseline that the binodal then perturbs. +If `config.outgas.h2_binodal = true`, `wrapper.run_outgassing` calls `apply_binodal_h2` *after* CALLIOPE returns. This applies the Rogers et al. (2025) [^cite-rogers2025] H$_2$-MgSiO$_3$ miscibility correction as a post-processing step on top of the CALLIOPE equilibrium. CALLIOPE itself does not know about miscibility; it produces the ideal-mixing baseline that the binodal then perturbs. When `config.interior_struct.zalmoxis.global_miscibility = true` (Zalmoxis radial binodal), the bulk binodal step is skipped because Zalmoxis has already done a per-radial-shell partition during the structure update. See the [Zalmoxis binodal page](https://proteus-framework.org/Zalmoxis/Explanations/binodal.html) for that mechanism. @@ -188,4 +188,4 @@ When `config.interior_struct.zalmoxis.global_miscibility = true` (Zalmoxis radia - [Authoritative-oxygen mode](authoritative_oxygen.md) for the augmented mass balance that `from_O_budget` dispatches to. - The PROTEUS-side wrapper code: [`src/proteus/outgas/calliope.py`](https://github.com/FormingWorlds/PROTEUS/blob/main/src/proteus/outgas/calliope.py), [`src/proteus/outgas/wrapper.py`](https://github.com/FormingWorlds/PROTEUS/blob/main/src/proteus/outgas/wrapper.py), [`src/proteus/config/_outgas.py`](https://github.com/FormingWorlds/PROTEUS/blob/main/src/proteus/config/_outgas.py). -[^cite-rogers2025]: J. G. Rogers, E. D. Young, H. E. Schlichting, *Redefining interiors and envelopes: hydrogen-silicate miscibility and its consequences for the structure and evolution of sub-Neptunes*, Monthly Notices of the Royal Astronomical Society, 544(4), 3496–3511, 2025. [SciX](https://scixplorer.org/abs/2025MNRAS.544.3496R/abstract). + [^cite-rogers2025]: J. G. Rogers, E. D. Young, H. E. Schlichting, *Redefining interiors and envelopes: hydrogen-silicate miscibility and its consequences for the structure and evolution of sub-Neptunes*, Monthly Notices of the Royal Astronomical Society, 544(4), 3496–3511, 2025. [SciX](https://scixplorer.org/abs/2025MNRAS.544.3496R/abstract). diff --git a/docs/Explanations/solubility.md b/docs/Explanations/solubility.md index 3e14d3c..c80e4dd 100644 --- a/docs/Explanations/solubility.md +++ b/docs/Explanations/solubility.md @@ -6,7 +6,7 @@ $$ X_i^\mathrm{melt} = \alpha_i\, p_i^{\,1/\beta_i}, $$ -with $X_i^\mathrm{melt}$ in ppmw, $p_i$ in bar, and species-specific empirical constants $\alpha_i, \beta_i$. Bower et al. (2022)[^cite-bower2022] Equation (1) writes the same relation in terms of fugacity; CALLIOPE assumes ideal-gas behaviour so $f \equiv p$. +with $X_i^\mathrm{melt}$ in ppmw, $p_i$ in bar, and species-specific empirical constants $\alpha_i, \beta_i$. Bower et al. (2022) [^cite-bower2022] Equation (1) writes the same relation in terms of fugacity; CALLIOPE assumes ideal-gas behaviour so $f \equiv p$. This page lists the implemented laws, the experimental sources behind each, and the alternative compositions a user can select. The corresponding code lives in `solubility.py`; the speciation-time call paths are in `solve.dissolved_mass`. @@ -16,46 +16,46 @@ This page lists the implemented laws, the experimental sources behind each, and | Composition | Law | Source | $\alpha$ (ppmw bar$^{-1/\beta}$) | $\beta$ | |---|---|---|---:|---:| -| `peridotite` (default) | $524\, p^{0.5}$ | Sossi et al. (2023)[^cite-sossi2023] | 524 | 2 | -| `basalt_dixon` | $965\, p^{0.5}$ | Dixon et al. (1995)[^cite-dixon1995], refit by Sossi | 965 | 2 | -| `basalt_wilson` | $215\, p^{0.7}$ | Hamilton (1964)[^cite-hamilton1964]; Wilson & Head (1981)[^cite-wilsonhead1981] | 215 | 1/0.7 | -| `anorthite_diopside` | $727\, p^{0.5}$ | Newcombe et al. (2017)[^cite-newcombe2017] | 727 | 2 | -| `lunar_glass` | $683\, p^{0.5}$ | Newcombe et al. (2017)[^cite-newcombe2017] | 683 | 2 | +| `peridotite` (default) | $524\, p^{0.5}$ | Sossi et al. (2023) [^cite-sossi2023] | 524 | 2 | +| `basalt_dixon` | $965\, p^{0.5}$ | Dixon et al. (1995) [^cite-dixon1995], refit by Sossi | 965 | 2 | +| `basalt_wilson` | $215\, p^{0.7}$ | Hamilton (1964) [^cite-hamilton1964]; Wilson & Head (1981) [^cite-wilsonhead1981] | 215 | 1/0.7 | +| `anorthite_diopside` | $727\, p^{0.5}$ | Newcombe et al. (2017) [^cite-newcombe2017] | 727 | 2 | +| `lunar_glass` | $683\, p^{0.5}$ | Newcombe et al. (2017) [^cite-newcombe2017] | 683 | 2 | !!! note "About the `peridotite` constant 524" - Sossi et al. (2023)[^cite-sossi2023] report two values for the prefactor depending on the FTIR absorption coefficient used: $\alpha = 524 \pm 16$ ppmw bar$^{-0.5}$ from the basaltic-glass calibration ($\epsilon_{3550} = 6.3$ m$^2$ mol$^{-1}$), and $\alpha = 647$ ppmw bar$^{-0.5}$ from the peridotite-glass calibration. CALLIOPE uses 524 to match the value adopted in Nicholls et al. (2024)[^cite-nicholls2024] and the PROTEUS-side fiducial; the label `peridotite` refers to the *experimental melt composition* (Sossi+2023 used a peridotitic starting composition), not to the spectroscopic-calibration choice. If you want the full peridotite-glass calibration, instantiate `SolubilityH2O('peridotite')` and override the constant manually, or wait for an upstream change. + Sossi et al. (2023) [^cite-sossi2023] report two values for the prefactor depending on the FTIR absorption coefficient used: $\alpha = 524 \pm 16$ ppmw bar$^{-0.5}$ from the basaltic-glass calibration ($\epsilon_{3550} = 6.3$ m$^2$ mol$^{-1}$), and $\alpha = 647$ ppmw bar$^{-0.5}$ from the peridotite-glass calibration. CALLIOPE uses 524 to match the value adopted in Nicholls et al. (2024) [^cite-nicholls2024] and the PROTEUS-side fiducial; the label `peridotite` refers to the *experimental melt composition* (Sossi+2023 used a peridotitic starting composition), not to the spectroscopic-calibration choice. If you want the full peridotite-glass calibration, instantiate `SolubilityH2O('peridotite')` and override the constant manually, or wait for an upstream change. -The choice between peridotite (default) and basalt is one of the larger uncertainties in early magma-ocean modelling. Bower et al. (2022)[^cite-bower2022] Table 1 compares all five compositions across the relevant pressure range; Nicholls et al. (2024)[^cite-nicholls2024] uses peridotite as the fiducial, consistent with CALLIOPE's default. +The choice between peridotite (default) and basalt is one of the larger uncertainties in early magma-ocean modelling. Bower et al. (2022) [^cite-bower2022] Table 1 compares all five compositions across the relevant pressure range; Nicholls et al. (2024) [^cite-nicholls2024] uses peridotite as the fiducial, consistent with CALLIOPE's default. ### CO$_2$ - `SolubilityCO2(composition='basalt_dixon')` -Dixon et al. (1995)[^cite-dixon1995] MORB fit, with an explicit Poynting-like temperature/pressure correction: +Dixon et al. (1995) [^cite-dixon1995] MORB fit, with an explicit Poynting-like temperature/pressure correction: $$ X_{\mathrm{CO_2}}^\mathrm{melt}\,[\text{mol fr.}] = 3.8 \times 10^{-7} \cdot p_{\mathrm{CO_2}} \cdot \exp\left(-\frac{23 (p_{\mathrm{CO_2}} - 1)}{83.15\, T_\mathrm{magma}}\right) $$ -then converted from molar to ppmw via the algebraic conversion in Bower et al. (2022)[^cite-bower2022] Equation (3): +then converted from molar to ppmw via the algebraic conversion in Bower et al. (2022) [^cite-bower2022] Equation (3): $$ X_{\mathrm{CO_2}}^\mathrm{melt}\,[\text{ppmw}] = 10^4 \cdot \frac{4400 X_{\mathrm{CO_2}}^\mathrm{melt}}{36.6 - 44 X_{\mathrm{CO_2}}^\mathrm{melt}}. $$ -This is the only solubility law in CALLIOPE that depends on $T_\mathrm{magma}$; the others ignore the temperature term that experimental data only weakly constrains (Bower et al. 2022[^cite-bower2022] §2.2.1 discussion). +This is the only solubility law in CALLIOPE that depends on $T_\mathrm{magma}$; the others ignore the temperature term that experimental data only weakly constrains (Bower et al. 2022 [^cite-bower2022] §2.2.1 discussion). ### CO - `SolubilityCO(composition='mafic_armstrong')` -Armstrong et al. (2015)[^cite-armstrong2015] mafic-melt fit: +Armstrong et al. (2015) [^cite-armstrong2015] mafic-melt fit: $$ \log_{10} X_\mathrm{CO}^\mathrm{melt}\,[\text{ppmw}] = -0.738 + 0.876\, \log_{10} p_\mathrm{CO} - 5.44 \times 10^{-5} \cdot p_\mathrm{tot} $$ -The $-5.44 \times 10^{-5} \cdot p_\mathrm{tot}$ term is a total-pressure (Poynting) correction that reduces solubility at high pressures. CO solubility is generally an order of magnitude or more lower than CO$_2$, consistent with the experimental constraints summarised in Yoshioka et al. (2019)[^cite-yoshioka2019]. +The $-5.44 \times 10^{-5} \cdot p_\mathrm{tot}$ term is a total-pressure (Poynting) correction that reduces solubility at high pressures. CO solubility is generally an order of magnitude or more lower than CO$_2$, consistent with the experimental constraints summarised in Yoshioka et al. (2019) [^cite-yoshioka2019]. ### CH$_4$ - `SolubilityCH4(composition='basalt_ardia')` -Ardia et al. (2013)[^cite-ardia2013] Fe-free haplobasaltic-melt fit (their Eq. (8) with $\ln K_0 = 4.93$ and $\Delta V = 26.85\,\mathrm{cm}^3$/mol at $T_0 = 1400\,^\circ$C, $P_0 = 1$ bar, plotted as Fig. 11; calibrated over 0.7-3 GPa): +Ardia et al. (2013) [^cite-ardia2013] Fe-free haplobasaltic-melt fit (their Eq. (8) with $\ln K_0 = 4.93$ and $\Delta V = 26.85\,\mathrm{cm}^3$/mol at $T_0 = 1400\,^\circ$C, $P_0 = 1$ bar, plotted as Fig. 11; calibrated over 0.7-3 GPa): $$ X_\mathrm{CH_4}^\mathrm{melt}\,[\text{ppmw}] = p_\mathrm{CH_4} \cdot \exp\left(4.93 - 1.93\,p_\mathrm{tot}^{[\mathrm{GPa}]}\right) @@ -69,10 +69,10 @@ CALLIOPE provides two N$_2$ solubility laws but `dissolved_mass` hard-codes `das | Composition | Law | Source | |---|---|---| -| `libourel` | $0.0611\, p_\mathrm{N_2}$ (linear Henry's law) | Libourel et al. (2003)[^cite-libourel2003] | -| `dasgupta` (default) | physical-state-dependent (see below) | Dasgupta et al. (2022)[^cite-dasgupta2022] | +| `libourel` | $0.0611\, p_\mathrm{N_2}$ (linear Henry's law) | Libourel et al. (2003) [^cite-libourel2003] | +| `dasgupta` (default) | physical-state-dependent (see below) | Dasgupta et al. (2022) [^cite-dasgupta2022] | -The Dasgupta et al. (2022)[^cite-dasgupta2022] law adds an $f_{\mathrm{O}_2}$-dependent reduced-N contribution on top of the molecular dissolution: +The Dasgupta et al. (2022) [^cite-dasgupta2022] law adds an $f_{\mathrm{O}_2}$-dependent reduced-N contribution on top of the molecular dissolution: $$ X_\mathrm{N_2}^\mathrm{melt}\,[\text{ppmw}] = \sqrt{p_\mathrm{N_2}^{[\mathrm{GPa}]}} \cdot \exp\left(\frac{5908\sqrt{p_\mathrm{tot}^{[\mathrm{GPa}]}}}{T_\mathrm{magma}} - 1.6\,\Delta\mathrm{IW}\right) + p_\mathrm{N_2}^{[\mathrm{GPa}]} \cdot c_\mathrm{melt} @@ -82,7 +82,7 @@ where the prefactor $c_\mathrm{melt}$ depends on the silicate composition. The m ### S$_2$ - `SolubilityS2(composition='gaillard')` -Gaillard et al. (2022)[^cite-gaillard2022] sulfide-saturated mafic-melt law: +Gaillard et al. (2022) [^cite-gaillard2022] sulfide-saturated mafic-melt law: $$ \log_{e} X_\mathrm{S_2}^\mathrm{melt}\,[\text{ppmw}] = 13.8426 - \frac{26476}{T_\mathrm{magma}} + 0.124\,x_\mathrm{FeO}^{[\text{wt\%}]} + 0.5\,\ln\frac{p_\mathrm{S_2}}{f_{\mathrm{O}_2}} @@ -94,29 +94,29 @@ The implementation refuses to evaluate at $p_\mathrm{S_2} < 10^{-20}$ bar (retur ## What about the missing laws? -CALLIOPE does not include explicit solubility laws for H$_2$, NH$_3$, SO$_2$, H$_2$S, or O$_2$. Their dissolved masses are computed from the *primary*-species solubilities (H$_2$O for H-bearing species, CO$_2$ for C-bearing species, S$_2$ for S-bearing species, N$_2$ for N-bearing species) via stoichiometric atom-counting in `dissolved_mass()`. This is consistent with Bower et al. (2022)[^cite-bower2022] Section 2.2.3 which sets $\alpha_\mathrm{H_2} = \alpha_\mathrm{CO} = \alpha_\mathrm{CH_4} = 0$ on the grounds that experimentally constrained solubilities are 1-2 dex smaller than those of H$_2$O / CO$_2$ at equivalent fugacities (Hirschmann et al. 2012[^cite-hirschmann2012]; Li et al. 2015[^cite-li2015]; Yoshioka et al. 2019[^cite-yoshioka2019]; Ardia et al. 2013[^cite-ardia2013]); within the CALLIOPE framework the same logic justifies omitting solubility for the three S species and ammonia. +CALLIOPE does not include explicit solubility laws for H$_2$, NH$_3$, SO$_2$, H$_2$S, or O$_2$. Their dissolved masses are computed from the *primary*-species solubilities (H$_2$O for H-bearing species, CO$_2$ for C-bearing species, S$_2$ for S-bearing species, N$_2$ for N-bearing species) via stoichiometric atom-counting in `dissolved_mass()`. This is consistent with Bower et al. (2022) [^cite-bower2022] Section 2.2.3 which sets $\alpha_\mathrm{H_2} = \alpha_\mathrm{CO} = \alpha_\mathrm{CH_4} = 0$ on the grounds that experimentally constrained solubilities are 1-2 dex smaller than those of H$_2$O / CO$_2$ at equivalent fugacities (Hirschmann et al. 2012 [^cite-hirschmann2012]; Li et al. 2015 [^cite-li2015]; Yoshioka et al. 2019 [^cite-yoshioka2019]; Ardia et al. 2013 [^cite-ardia2013]); within the CALLIOPE framework the same logic justifies omitting solubility for the three S species and ammonia. -If you need explicit dissolution of reduced species into the melt, the [atmodeller](https://atmodeller.readthedocs.io/) project provides full per-species solubility laws including H$_2$ (Hirschmann et al. 2012[^cite-hirschmann2012]), CO (Yoshioka et al. 2019[^cite-yoshioka2019]), and CH$_4$ (Ardia et al. 2013[^cite-ardia2013]), with non-ideal real-gas activity coefficients. +If you need explicit dissolution of reduced species into the melt, the [atmodeller](https://atmodeller.readthedocs.io/) project provides full per-species solubility laws including H$_2$ (Hirschmann et al. 2012 [^cite-hirschmann2012]), CO (Yoshioka et al. 2019 [^cite-yoshioka2019]), and CH$_4$ (Ardia et al. 2013 [^cite-ardia2013]), with non-ideal real-gas activity coefficients. ## Validity envelope | Species (`composition`) | Source | Calibration $T$ | Calibration $p$ | Calibration $f_{\mathrm{O}_2}$ | |---|---|---|---|---| -| H$_2$O `peridotite` (default) | Sossi et al. (2023)[^cite-sossi2023] | 2173 K (1900 $^\circ$C) | 1 atm total ($f_\mathrm{H_2O}\le 0.027$ bar) | IW-1.9 to IW+6.0 | -| H$_2$O `basalt_dixon` | Dixon et al. (1995)[^cite-dixon1995] | 1473 K (1200 $^\circ$C) | 176-717 bar $p_\mathrm{H_2O}$ | $\sim$QFM ($\approx$ IW+3.5 to IW+5) | -| H$_2$O `basalt_wilson` | Hamilton et al. (1964)[^cite-hamilton1964] | 1373 K (1100 $^\circ$C) | 1000-6000 bar $p_\mathrm{H_2O}$ | unbuffered for the pressure series (separate 1000-bar buffer series used MH, FMQ, MW buffers) | -| H$_2$O `anorthite_diopside` | Newcombe et al. (2017)[^cite-newcombe2017] | 1623 K (1350 $^\circ$C) | 1 atm | IW-2.3 to IW+4.8 | -| H$_2$O `lunar_glass` | Newcombe et al. (2017)[^cite-newcombe2017] | 1623 K (1350 $^\circ$C) | 1 atm | IW-3.0 to IW+4.8 | -| CO$_2$ `basalt_dixon` (default) | Dixon et al. (1995)[^cite-dixon1995] | 1473 K (1200 $^\circ$C) | $\le$815 bar $p_\mathrm{CO_2}$ | $\sim$QFM ($\approx$ IW+3.5 to IW+5) | -| CO `mafic_armstrong` (default) | Armstrong et al. (2015)[^cite-armstrong2015] | 1673 K (1400 $^\circ$C) | 1.2 GPa $p_\mathrm{tot}$ (1.0-1.2 GPa including Stanley et al. 2014 data co-fit) | IW-3.65 to IW+1.46 | -| CH$_4$ `basalt_ardia` (default) | Ardia et al. (2013)[^cite-ardia2013] | 1673-1723 K (1400-1450 $^\circ$C) | 0.7-3 GPa $p_\mathrm{tot}$ | IW-9.5 to IW-1.4 (IW/Si and IWC/C buffers) | -| N$_2$ `libourel` | Libourel et al. (2003)[^cite-libourel2003] | 1673-1698 K (1400-1425 $^\circ$C) | 1 atm | linear regime $\log_{10}f_{\mathrm{O}_2}\in[-10.7, -0.7]$ ($\approx$ IW-1.3 to IW+9) | -| N$_2$ `dasgupta` (default in `dissolved_mass`) | Dasgupta et al. (2022)[^cite-dasgupta2022] | 1323-2600 K (1050-2327 $^\circ$C) | 1 bar to 8.2 GPa $p_\mathrm{tot}$ | IW-8.3 to IW+8.7 | -| S$_2$ `gaillard` (default) | Gaillard et al. (2022)[^cite-gaillard2022] | not stated by paper (1 atm calibration data) | 1 atm | IW-1 to FMQ+0.1 ($\approx$ IW+3.5) | +| H$_2$O `peridotite` (default) | Sossi et al. (2023) [^cite-sossi2023] | 2173 K (1900 $^\circ$C) | 1 atm total ($f_\mathrm{H_2O}\le 0.027$ bar) | IW-1.9 to IW+6.0 | +| H$_2$O `basalt_dixon` | Dixon et al. (1995) [^cite-dixon1995] | 1473 K (1200 $^\circ$C) | 176-717 bar $p_\mathrm{H_2O}$ | $\sim$QFM ($\approx$ IW+3.5 to IW+5) | +| H$_2$O `basalt_wilson` | Hamilton et al. (1964) [^cite-hamilton1964] | 1373 K (1100 $^\circ$C) | 1000-6000 bar $p_\mathrm{H_2O}$ | unbuffered for the pressure series (separate 1000-bar buffer series used MH, FMQ, MW buffers) | +| H$_2$O `anorthite_diopside` | Newcombe et al. (2017) [^cite-newcombe2017] | 1623 K (1350 $^\circ$C) | 1 atm | IW-2.3 to IW+4.8 | +| H$_2$O `lunar_glass` | Newcombe et al. (2017) [^cite-newcombe2017] | 1623 K (1350 $^\circ$C) | 1 atm | IW-3.0 to IW+4.8 | +| CO$_2$ `basalt_dixon` (default) | Dixon et al. (1995) [^cite-dixon1995] | 1473 K (1200 $^\circ$C) | $\le$815 bar $p_\mathrm{CO_2}$ | $\sim$QFM ($\approx$ IW+3.5 to IW+5) | +| CO `mafic_armstrong` (default) | Armstrong et al. (2015) [^cite-armstrong2015] | 1673 K (1400 $^\circ$C) | 1.2 GPa $p_\mathrm{tot}$ (1.0-1.2 GPa including Stanley et al. 2014 data co-fit) | IW-3.65 to IW+1.46 | +| CH$_4$ `basalt_ardia` (default) | Ardia et al. (2013) [^cite-ardia2013] | 1673-1723 K (1400-1450 $^\circ$C) | 0.7-3 GPa $p_\mathrm{tot}$ | IW-9.5 to IW-1.4 (IW/Si and IWC/C buffers) | +| N$_2$ `libourel` | Libourel et al. (2003) [^cite-libourel2003] | 1673-1698 K (1400-1425 $^\circ$C) | 1 atm | linear regime $\log_{10}f_{\mathrm{O}_2}\in[-10.7, -0.7]$ ($\approx$ IW-1.3 to IW+9) | +| N$_2$ `dasgupta` (default in `dissolved_mass`) | Dasgupta et al. (2022) [^cite-dasgupta2022] | 1323-2600 K (1050-2327 $^\circ$C) | 1 bar to 8.2 GPa $p_\mathrm{tot}$ | IW-8.3 to IW+8.7 | +| S$_2$ `gaillard` (default) | Gaillard et al. (2022) [^cite-gaillard2022] | not stated by paper (1 atm calibration data) | 1 atm | IW-1 to FMQ+0.1 ($\approx$ IW+3.5) | The $f_{\mathrm{O}_2}$ column reports the *calibration footprint* (the range of $f_{\mathrm{O}_2}$ over which the experiments that produced the fit were performed), not the law's functional dependence: only the Gaillard S$_2$ and Dasgupta N$_2$ laws carry an explicit $f_{\mathrm{O}_2}$ term, while every other law in the table is an $f_{\mathrm{O}_2}$-independent expression fitted to data from experiments performed at the listed $f_{\mathrm{O}_2}$ range. The choice between H$_2$O laws (peridotite vs basalt) is one of the larger uncertainties in early magma-ocean modelling (the line-26 note expands on the Sossi peridotite vs Dixon basalt prefactor difference); the $f_{\mathrm{O}_2}$ footprint here describes where the data lived, not how robust the fit is across compositions. -The Dasgupta N$_2$ and Gaillard S$_2$ rows quote the ranges that Dasgupta et al. (2022)[^cite-dasgupta2022] Equation 10 (n=137 compiled data) and Gaillard et al. (2022)[^cite-gaillard2022] Equation 10 (refit of O'Neill & Mavrogenes (2002)[^cite-oneillmavrogenes2002] plus 8 other experimental sources, n=369) report directly. The Gaillard refit data are all at 1 atm; the formula is applied at magma-ocean pressures in CALLIOPE without an explicit pressure correction. The Libourel linear regime stops at IW-1.3, below which the same paper documents a sharp transition to chemical (network-bound N$^{3-}$) dissolution with $\sim$5 orders of magnitude higher solubility; the `libourel` law in CALLIOPE captures only the oxidising-end linear regime and underestimates dissolved N below IW-1.3. The CO, CH$_4$ and Dasgupta-N$_2$ rows give the *total*-pressure range, since the Poynting and reduced-N branches depend on $p_\mathrm{tot}$ as well as the species partial pressure. +The Dasgupta N$_2$ and Gaillard S$_2$ rows quote the ranges that Dasgupta et al. (2022) [^cite-dasgupta2022] Equation 10 (n=137 compiled data) and Gaillard et al. (2022) [^cite-gaillard2022] Equation 10 (refit of O'Neill & Mavrogenes (2002) [^cite-oneillmavrogenes2002] plus 8 other experimental sources, n=369) report directly. The Gaillard refit data are all at 1 atm; the formula is applied at magma-ocean pressures in CALLIOPE without an explicit pressure correction. The Libourel linear regime stops at IW-1.3, below which the same paper documents a sharp transition to chemical (network-bound N$^{3-}$) dissolution with $\sim$5 orders of magnitude higher solubility; the `libourel` law in CALLIOPE captures only the oxidising-end linear regime and underestimates dissolved N below IW-1.3. The CO, CH$_4$ and Dasgupta-N$_2$ rows give the *total*-pressure range, since the Poynting and reduced-N branches depend on $p_\mathrm{tot}$ as well as the species partial pressure. CALLIOPE deliberately makes no attempt to flag extrapolation: the laws are evaluated formally outside their calibration ranges to keep the solver well-posed. For applications outside the bracket, treat the dissolved masses as upper bounds and check sensitivity by switching solubility laws via the constructor argument. @@ -128,19 +128,19 @@ CALLIOPE deliberately makes no attempt to flag extrapolation: the laws are evalu - [Authoritative-oxygen mode](authoritative_oxygen.md): how the Gaillard $\ln(p_\mathrm{S_2}/f_{\mathrm{O}_2})$ and Dasgupta $-1.6\,\Delta\mathrm{IW}$ terms enter the 5-residual mass balance once $\Delta\mathrm{IW}$ becomes a solver unknown. - [API reference for `calliope.solubility`](../Reference/api/calliope.solubility.md). -[^cite-armstrong2015]: L. S. Armstrong, M. M. Hirschmann, B. D. Stanley, E. G. Falksen, S. D. Jacobsen, *[Speciation and solubility of reduced C-O-H-N volatiles in mafic melt: implications for volcanism, atmospheric evolution, and deep volatile cycles in the terrestrial planets](https://doi.org/10.1016/j.gca.2015.07.007)*, Geochimica et Cosmochimica Acta, 171, 283–302, 2015. [SciX](https://scixplorer.org/abs/2015GeCoA.171..283A/abstract). -[^cite-ardia2013]: P. Ardia, M. M. Hirschmann, A. C. Withers, B. D. Stanley, *[Solubility of CH$_4$ in a synthetic basaltic melt, with applications to atmosphere-magma ocean-core partitioning of volatiles and to the evolution of the Martian atmosphere](https://doi.org/10.1016/j.gca.2013.03.028)*, Geochimica et Cosmochimica Acta, 114, 52–71, 2013. [SciX](https://scixplorer.org/abs/2013GeCoA.114...52A/abstract). -[^cite-bower2022]: D. J. Bower, K. Hakim, P. A. Sossi, P. Sanan, *[Retention of water in terrestrial magma oceans and carbon-rich early atmospheres](https://doi.org/10.3847/PSJ/ac5fb1)*, The Planetary Science Journal, 3(4), 93, 2022. [SciX](https://scixplorer.org/abs/2022PSJ.....3...93B/abstract). -[^cite-dasgupta2022]: 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](https://doi.org/10.1016/j.gca.2022.09.012)*, Geochimica et Cosmochimica Acta, 336, 291–307, 2022. [SciX](https://scixplorer.org/abs/2022GeCoA.336..291D/abstract). -[^cite-dixon1995]: 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](https://doi.org/10.1093/oxfordjournals.petrology.a037267)*, Journal of Petrology, 36(6), 1607–1631, 1995. [SciX](https://scixplorer.org/abs/1995JPet...36.1607D/abstract). -[^cite-gaillard2022]: 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](https://doi.org/10.1016/j.epsl.2021.117255)*, Earth and Planetary Science Letters, 577, 117255, 2022. [SciX](https://scixplorer.org/abs/2022E%26PSL.57717255G/abstract). -[^cite-hamilton1964]: D. L. Hamilton, C. W. Burnham, E. F. Osborn, *[The solubility of water and effects of oxygen fugacity and water content on crystallization in mafic magmas](https://doi.org/10.1093/petrology/5.1.21)*, Journal of Petrology, 5(1), 21–39, 1964. -[^cite-hirschmann2012]: M. M. Hirschmann, A. C. Withers, P. Ardia, N. T. Foley, *[Solubility of molecular hydrogen in silicate melts and consequences for volatile evolution of terrestrial planets](https://doi.org/10.1016/j.epsl.2012.06.031)*, Earth and Planetary Science Letters, 345–348, 38–48, 2012. [SciX](https://scixplorer.org/abs/2012E%26PSL.345...38H/abstract). -[^cite-li2015]: Y. Li, R. Dasgupta, K. Tsuno, *[The effects of sulfur, silicon, water, and oxygen fugacity on carbon solubility and partitioning in Fe-rich alloy and silicate melt systems at 3 GPa and 1600 °C: implications for core-mantle differentiation and degassing of magma oceans and reduced planetary mantles](https://doi.org/10.1016/j.epsl.2015.01.017)*, Earth and Planetary Science Letters, 415, 54–66, 2015. [SciX](https://scixplorer.org/abs/2015E%26PSL.415...54L/abstract). -[^cite-libourel2003]: G. Libourel, B. Marty, F. Humbert, *[Nitrogen solubility in basaltic melt. Part I. Effect of oxygen fugacity](https://doi.org/10.1016/S0016-7037(03)00259-X)*, Geochimica et Cosmochimica Acta, 67(21), 4123–4135, 2003. [SciX](https://scixplorer.org/abs/2003GeCoA..67.4123L/abstract). -[^cite-newcombe2017]: M. E. Newcombe, A. Brett, J. R. Beckett, M. B. Baker, S. Newman, Y. Guan, J. M. Eiler, E. M. Stolper, *[Solubility of water in lunar basalt at low pH$_2$O](https://doi.org/10.1016/j.gca.2016.12.026)*, Geochimica et Cosmochimica Acta, 200, 330–352, 2017. [SciX](https://scixplorer.org/abs/2017GeCoA.200..330N/abstract). -[^cite-nicholls2024]: H. Nicholls, T. Lichtenberg, D. J. Bower, R. Pierrehumbert, *[Magma ocean evolution at arbitrary redox state](https://doi.org/10.1029/2024JE008576)*, Journal of Geophysical Research: Planets, 129, e2024JE008576, 2024. [SciX](https://scixplorer.org/abs/2024JGRE..12908576N/abstract). -[^cite-oneillmavrogenes2002]: H. St. C. O'Neill, J. A. Mavrogenes, *[The sulfide capacity and the sulfur content at sulfide saturation of silicate melts at 1400 °C and 1 bar](https://doi.org/10.1093/petrology/43.6.1049)*, Journal of Petrology, 43(6), 1049–1087, 2002. [SciX](https://scixplorer.org/abs/2002JPet...43.1049O/abstract). -[^cite-sossi2023]: 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](https://doi.org/10.1016/j.epsl.2022.117894)*, Earth and Planetary Science Letters, 601, 117894, 2023. [SciX](https://scixplorer.org/abs/2023E%26PSL.60117894S/abstract). -[^cite-wilsonhead1981]: L. Wilson, J. W. Head, *[Ascent and eruption of basaltic magma on the Earth and Moon](https://doi.org/10.1029/JB086iB04p02971)*, Journal of Geophysical Research, 86(B4), 2971–3001, 1981. [SciX](https://scixplorer.org/abs/1981JGR....86.2971W/abstract). -[^cite-yoshioka2019]: T. Yoshioka, D. Nakashima, T. Nakamura, S. Shcheka, H. Keppler, *[Carbon solubility in silicate melts in equilibrium with a CO-CO$_2$ gas phase and graphite](https://doi.org/10.1016/j.gca.2019.06.007)*, Geochimica et Cosmochimica Acta, 259, 129–143, 2019. [SciX](https://scixplorer.org/abs/2019GeCoA.259..129Y/abstract). + [^cite-armstrong2015]: L. S. Armstrong, M. M. Hirschmann, B. D. Stanley, E. G. Falksen, S. D. Jacobsen, *[Speciation and solubility of reduced C-O-H-N volatiles in mafic melt: implications for volcanism, atmospheric evolution, and deep volatile cycles in the terrestrial planets](https://doi.org/10.1016/j.gca.2015.07.007)*, Geochimica et Cosmochimica Acta, 171, 283–302, 2015. [SciX](https://scixplorer.org/abs/2015GeCoA.171..283A/abstract). + [^cite-ardia2013]: P. Ardia, M. M. Hirschmann, A. C. Withers, B. D. Stanley, *[Solubility of CH$_4$ in a synthetic basaltic melt, with applications to atmosphere-magma ocean-core partitioning of volatiles and to the evolution of the Martian atmosphere](https://doi.org/10.1016/j.gca.2013.03.028)*, Geochimica et Cosmochimica Acta, 114, 52–71, 2013. [SciX](https://scixplorer.org/abs/2013GeCoA.114...52A/abstract). + [^cite-bower2022]: D. J. Bower, K. Hakim, P. A. Sossi, P. Sanan, *[Retention of water in terrestrial magma oceans and carbon-rich early atmospheres](https://doi.org/10.3847/PSJ/ac5fb1)*, The Planetary Science Journal, 3(4), 93, 2022. [SciX](https://scixplorer.org/abs/2022PSJ.....3...93B/abstract). + [^cite-dasgupta2022]: 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](https://doi.org/10.1016/j.gca.2022.09.012)*, Geochimica et Cosmochimica Acta, 336, 291–307, 2022. [SciX](https://scixplorer.org/abs/2022GeCoA.336..291D/abstract). + [^cite-dixon1995]: 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](https://doi.org/10.1093/oxfordjournals.petrology.a037267)*, Journal of Petrology, 36(6), 1607–1631, 1995. [SciX](https://scixplorer.org/abs/1995JPet...36.1607D/abstract). + [^cite-gaillard2022]: 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](https://doi.org/10.1016/j.epsl.2021.117255)*, Earth and Planetary Science Letters, 577, 117255, 2022. [SciX](https://scixplorer.org/abs/2022E%26PSL.57717255G/abstract). + [^cite-hamilton1964]: D. L. Hamilton, C. W. Burnham, E. F. Osborn, *[The solubility of water and effects of oxygen fugacity and water content on crystallization in mafic magmas](https://doi.org/10.1093/petrology/5.1.21)*, Journal of Petrology, 5(1), 21–39, 1964. + [^cite-hirschmann2012]: M. M. Hirschmann, A. C. Withers, P. Ardia, N. T. Foley, *[Solubility of molecular hydrogen in silicate melts and consequences for volatile evolution of terrestrial planets](https://doi.org/10.1016/j.epsl.2012.06.031)*, Earth and Planetary Science Letters, 345–348, 38–48, 2012. [SciX](https://scixplorer.org/abs/2012E%26PSL.345...38H/abstract). + [^cite-li2015]: Y. Li, R. Dasgupta, K. Tsuno, *[The effects of sulfur, silicon, water, and oxygen fugacity on carbon solubility and partitioning in Fe-rich alloy and silicate melt systems at 3 GPa and 1600 °C: implications for core-mantle differentiation and degassing of magma oceans and reduced planetary mantles](https://doi.org/10.1016/j.epsl.2015.01.017)*, Earth and Planetary Science Letters, 415, 54–66, 2015. [SciX](https://scixplorer.org/abs/2015E%26PSL.415...54L/abstract). + [^cite-libourel2003]: G. Libourel, B. Marty, F. Humbert, *[Nitrogen solubility in basaltic melt. Part I. Effect of oxygen fugacity](https://doi.org/10.1016/S0016-7037(03)00259-X)*, Geochimica et Cosmochimica Acta, 67(21), 4123–4135, 2003. [SciX](https://scixplorer.org/abs/2003GeCoA..67.4123L/abstract). + [^cite-newcombe2017]: M. E. Newcombe, A. Brett, J. R. Beckett, M. B. Baker, S. Newman, Y. Guan, J. M. Eiler, E. M. Stolper, *[Solubility of water in lunar basalt at low pH$_2$O](https://doi.org/10.1016/j.gca.2016.12.026)*, Geochimica et Cosmochimica Acta, 200, 330–352, 2017. [SciX](https://scixplorer.org/abs/2017GeCoA.200..330N/abstract). + [^cite-nicholls2024]: H. Nicholls, T. Lichtenberg, D. J. Bower, R. Pierrehumbert, *[Magma ocean evolution at arbitrary redox state](https://doi.org/10.1029/2024JE008576)*, Journal of Geophysical Research: Planets, 129, e2024JE008576, 2024. [SciX](https://scixplorer.org/abs/2024JGRE..12908576N/abstract). + [^cite-oneillmavrogenes2002]: H. St. C. O'Neill, J. A. Mavrogenes, *[The sulfide capacity and the sulfur content at sulfide saturation of silicate melts at 1400 °C and 1 bar](https://doi.org/10.1093/petrology/43.6.1049)*, Journal of Petrology, 43(6), 1049–1087, 2002. [SciX](https://scixplorer.org/abs/2002JPet...43.1049O/abstract). + [^cite-sossi2023]: 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](https://doi.org/10.1016/j.epsl.2022.117894)*, Earth and Planetary Science Letters, 601, 117894, 2023. [SciX](https://scixplorer.org/abs/2023E%26PSL.60117894S/abstract). + [^cite-wilsonhead1981]: L. Wilson, J. W. Head, *[Ascent and eruption of basaltic magma on the Earth and Moon](https://doi.org/10.1029/JB086iB04p02971)*, Journal of Geophysical Research, 86(B4), 2971–3001, 1981. [SciX](https://scixplorer.org/abs/1981JGR....86.2971W/abstract). + [^cite-yoshioka2019]: T. Yoshioka, D. Nakashima, T. Nakamura, S. Shcheka, H. Keppler, *[Carbon solubility in silicate melts in equilibrium with a CO-CO$_2$ gas phase and graphite](https://doi.org/10.1016/j.gca.2019.06.007)*, Geochimica et Cosmochimica Acta, 259, 129–143, 2019. [SciX](https://scixplorer.org/abs/2019GeCoA.259..129Y/abstract). diff --git a/docs/Explanations/testing.md b/docs/Explanations/testing.md index db5ca92..6714130 100644 --- a/docs/Explanations/testing.md +++ b/docs/Explanations/testing.md @@ -90,11 +90,11 @@ The current anchors: | Source | Anchor | Test | |---|---|---| -| `chemistry.py` | JANAF Thermochemical Tables[^cite-chase1998] (4th ed.), $K_{eq}$ for $\mathrm{H_2O} \to \mathrm{H_2} + 0.5\,\mathrm{O_2}$ at 2000 K with the O'Neill & Eggins 2002[^cite-oneilleggins2002] buffer | `tests/test_chemistry.py::test_modified_keq_janaf_H2_matches_closed_form_at_2000K_with_oneill` | -| `oxygen_fugacity.py` | Fischer et al. 2011[^cite-fischer2011] (EPSL 304, 496) IW buffer at 2000 K | `tests/test_oxygen_fugacity.py::test_oxygen_fugacity_fischer_value_at_2000K_matches_published_fit` | -| `solubility.py` | Sossi et al. 2023[^cite-sossi2023] peridotite H$_2$O fit; Gaillard et al. 2022[^cite-gaillard2022] (EPSL 117255) S$_2$ fit | `tests/test_solubility.py::TestSolubilityH2O::test_peridotite_default_matches_sossi_2023_fit` and `TestSolubilityS2_xFeO::test_default_call_matches_gaillard_2022_earth_mantle_value` | +| `chemistry.py` | JANAF Thermochemical Tables [^cite-chase1998] (4th ed.), $K_{eq}$ for $\mathrm{H_2O} \to \mathrm{H_2} + 0.5\,\mathrm{O_2}$ at 2000 K with the O'Neill & Eggins 2002 [^cite-oneilleggins2002] buffer | `tests/test_chemistry.py::test_modified_keq_janaf_H2_matches_closed_form_at_2000K_with_oneill` | +| `oxygen_fugacity.py` | Fischer et al. 2011 [^cite-fischer2011] (EPSL 304, 496) IW buffer at 2000 K | `tests/test_oxygen_fugacity.py::test_oxygen_fugacity_fischer_value_at_2000K_matches_published_fit` | +| `solubility.py` | Sossi et al. 2023 [^cite-sossi2023] peridotite H$_2$O fit; Gaillard et al. 2022 [^cite-gaillard2022] (EPSL 117255) S$_2$ fit | `tests/test_solubility.py::TestSolubilityH2O::test_peridotite_default_matches_sossi_2023_fit` and `TestSolubilityS2_xFeO::test_default_call_matches_gaillard_2022_earth_mantle_value` | | `solve.py` | Self-consistency between `equilibrium_atmosphere` (buffered) and `equilibrium_atmosphere_authoritative_O` (the authoritative-O entry point) at the Earth fiducial | `tests/test_solve.py::test_round_trip_self_consistency_at_earth_fiducial` | -| `structure.py` | Wang, Lineweaver & Ireland 2018[^cite-wang2018] (arxiv:1708.08718) Earth core mass fraction 0.325 | `tests/test_structure.py::test_calculate_mantle_mass_recovers_wang_2018_earth_core_fraction` | +| `structure.py` | Wang, Lineweaver & Ireland 2018 [^cite-wang2018] (arxiv:1708.08718) Earth core mass fraction 0.325 | `tests/test_structure.py::test_calculate_mantle_mass_recovers_wang_2018_earth_core_fraction` | The marker is not the same thing as physical correctness: a reference-pinned test certifies that *this implementation* reproduces *that anchor*; it does not certify that the anchor is the right physics for every astrophysical regime. @@ -227,9 +227,9 @@ The repository-wide rules that every PROTEUS-ecosystem submodule follows are at ## References -[^cite-chase1998]: M. W. Chase, *[NIST-JANAF Thermochemical Tables, 4th edition](https://janaf.nist.gov/)*, Journal of Physical and Chemical Reference Data Monograph 9, 1998. -[^cite-fischer2011]: 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](https://doi.org/10.1016/j.epsl.2011.02.025)*, Earth and Planetary Science Letters, 304, 496-502, 2011. [SciX](https://scixplorer.org/abs/2011E%26PSL.304..496F/abstract). -[^cite-gaillard2022]: 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](https://doi.org/10.1016/j.epsl.2021.117255)*, Earth and Planetary Science Letters, 577, 117255, 2022. [SciX](https://scixplorer.org/abs/2022E%26PSL.57717255G/abstract). -[^cite-oneilleggins2002]: H. St. C. O'Neill, S. M. Eggins, *[The effect of melt composition on trace element partitioning: an experimental investigation of the activity coefficients of FeO, NiO, CoO, MoO$_2$ and MoO$_3$ in silicate melts](https://doi.org/10.1016/S0009-2541(01)00414-4)*, Chemical Geology, 186, 151-181, 2002. [SciX](https://scixplorer.org/abs/2002ChGeo.186..151O/abstract). -[^cite-sossi2023]: 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](https://doi.org/10.1016/j.epsl.2022.117894)*, Earth and Planetary Science Letters, 601, 117894, 2023. [SciX](https://scixplorer.org/abs/2023E%26PSL.60117894S/abstract). -[^cite-wang2018]: H. S. Wang, C. H. Lineweaver, T. R. Ireland, *[The elemental abundances (with uncertainties) of the most Earth-like planet](https://doi.org/10.1016/j.icarus.2017.08.024)*, Icarus, 299, 460-474, 2018. [SciX](https://scixplorer.org/abs/2018Icar..299..460W/abstract). + [^cite-chase1998]: M. W. Chase, *[NIST-JANAF Thermochemical Tables, 4th edition](https://janaf.nist.gov/)*, Journal of Physical and Chemical Reference Data Monograph 9, 1998. + [^cite-fischer2011]: 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](https://doi.org/10.1016/j.epsl.2011.02.025)*, Earth and Planetary Science Letters, 304, 496-502, 2011. [SciX](https://scixplorer.org/abs/2011E%26PSL.304..496F/abstract). + [^cite-gaillard2022]: 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](https://doi.org/10.1016/j.epsl.2021.117255)*, Earth and Planetary Science Letters, 577, 117255, 2022. [SciX](https://scixplorer.org/abs/2022E%26PSL.57717255G/abstract). + [^cite-oneilleggins2002]: H. St. C. O'Neill, S. M. Eggins, *[The effect of melt composition on trace element partitioning: an experimental investigation of the activity coefficients of FeO, NiO, CoO, MoO$_2$ and MoO$_3$ in silicate melts](https://doi.org/10.1016/S0009-2541(01)00414-4)*, Chemical Geology, 186, 151-181, 2002. [SciX](https://scixplorer.org/abs/2002ChGeo.186..151O/abstract). + [^cite-sossi2023]: 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](https://doi.org/10.1016/j.epsl.2022.117894)*, Earth and Planetary Science Letters, 601, 117894, 2023. [SciX](https://scixplorer.org/abs/2023E%26PSL.60117894S/abstract). + [^cite-wang2018]: H. S. Wang, C. H. Lineweaver, T. R. Ireland, *[The elemental abundances (with uncertainties) of the most Earth-like planet](https://doi.org/10.1016/j.icarus.2017.08.024)*, Icarus, 299, 460-474, 2018. [SciX](https://scixplorer.org/abs/2018Icar..299..460W/abstract). diff --git a/docs/How-to/proteus_coupling.md b/docs/How-to/proteus_coupling.md index 1820713..50ad851 100644 --- a/docs/How-to/proteus_coupling.md +++ b/docs/How-to/proteus_coupling.md @@ -197,7 +197,7 @@ What the wrapper does on the first call: builds the five-element target $(m_\mat | Use `user_constant` when | Use `from_O_budget` when | |---|---| -| You want a fixed redox state for a parameter sweep (Nicholls et al. 2024[^cite-nicholls2024] explored seven $\Delta\mathrm{IW}$ values this way) | You want whole-planet O accounting where escape, ingassing, and the mantle FeO inventory all debit the same O reservoir | +| You want a fixed redox state for a parameter sweep (Nicholls et al. 2024 [^cite-nicholls2024] explored seven $\Delta\mathrm{IW}$ values this way) | You want whole-planet O accounting where escape, ingassing, and the mantle FeO inventory all debit the same O reservoir | | You don't have an independent constraint on the planet's O budget | You have an O constraint from an FeO-content estimate, a chondritic O/Si ratio, or an observational retrieval | | Buffered chemistry is good enough for your scientific question | The mantle redox state is itself the unknown you're trying to infer | @@ -205,18 +205,18 @@ The two modes give bit-identical results in the cases where they should: for any ## Redox state -`fO2_shift_IW` is in $\log_{10}$ units relative to the O'Neill & Eggins (2002)[^cite-oneilleggins2002] IW buffer. Under `fO2_source = "user_constant"` this value is the buffer offset; under `fO2_source = "from_O_budget"` it is only the initial-guess seed. Common reference values: +`fO2_shift_IW` is in $\log_{10}$ units relative to the O'Neill & Eggins (2002) [^cite-oneilleggins2002] IW buffer. Under `fO2_source = "user_constant"` this value is the buffer offset; under `fO2_source = "from_O_budget"` it is only the initial-guess seed. Common reference values: | $\Delta\mathrm{IW}$ | Description | |---|---| -| $-5$ | Highly reduced (Mercury-like; sulphur-derived estimate IW-5.4, Cartier & Wood 2019[^cite-cartierwood2019]) | -| $-3$ | Reduced (e.g. enstatite-chondrite-like; Mercury Fe-based estimate IW-2.8 to IW-4.5, Cartier & Wood 2019[^cite-cartierwood2019]) | -| $-1$ | Moderately reduced; near the Mars-mantle source range (Wadhwa 2001[^cite-wadhwa2001] places the shergottite-source mantle at $\approx$ IW) | +| $-5$ | Highly reduced (Mercury-like; sulphur-derived estimate IW-5.4, Cartier & Wood 2019 [^cite-cartierwood2019]) | +| $-3$ | Reduced (e.g. enstatite-chondrite-like; Mercury Fe-based estimate IW-2.8 to IW-4.5, Cartier & Wood 2019 [^cite-cartierwood2019]) | +| $-1$ | Moderately reduced; near the Mars-mantle source range (Wadhwa 2001 [^cite-wadhwa2001] places the shergottite-source mantle at $\approx$ IW) | | $0$ | At iron-wüstite buffer (core formation equilibrium at depth) | -| $+3.5$ | Sossi et al. (2020)[^cite-sossi2020] preferred Earth's mantle $f_{\mathrm{O}_2}$ | -| $+4$ | CALLIOPE PROTEUS-side default; near-modern Earth upper mantle (within FMQ$\,\pm\,2$ per Frost & McCammon 2008[^cite-frostmccammon2008]) | +| $+3.5$ | Sossi et al. (2020) [^cite-sossi2020] preferred Earth's mantle $f_{\mathrm{O}_2}$ | +| $+4$ | CALLIOPE PROTEUS-side default; near-modern Earth upper mantle (within FMQ$\,\pm\,2$ per Frost & McCammon 2008 [^cite-frostmccammon2008]) | -Sossi et al. (2020)[^cite-sossi2020] place Earth's modern upper mantle at $\Delta\mathrm{IW} \approx +3.5$; Frost & McCammon (2008)[^cite-frostmccammon2008] report a broader FMQ$\,\pm\,2$ range across mantle settings (approximately IW+1.5 to IW+5.5). CALLIOPE defaults sit at $\Delta\mathrm{IW} = 4.0$, consistent with a modern terrestrial composition. +Sossi et al. (2020) [^cite-sossi2020] place Earth's modern upper mantle at $\Delta\mathrm{IW} \approx +3.5$; Frost & McCammon (2008) [^cite-frostmccammon2008] report a broader FMQ$\,\pm\,2$ range across mantle settings (approximately IW+1.5 to IW+5.5). CALLIOPE defaults sit at $\Delta\mathrm{IW} = 4.0$, consistent with a modern terrestrial composition. ## Solver tolerances @@ -253,9 +253,9 @@ For `Time > 1` yr, the wrapper builds `p_guess` from the previous-iteration `H2O For what the wrapper actually does on each iteration (sequence diagram, mapping table, hf_row keys), read [Coupling to PROTEUS (theory)](../Explanations/proteus_coupling.md). -[^cite-cartierwood2019]: C. Cartier, B. J. Wood, *[The role of reducing conditions in building Mercury](https://doi.org/10.2138/gselements.15.1.39)*, Elements, 15(1), 39–45, 2019. [SciX](https://scixplorer.org/abs/2019Eleme..15...39C/abstract). -[^cite-frostmccammon2008]: D. J. Frost, C. A. McCammon, *[The redox state of Earth's mantle](https://doi.org/10.1146/annurev.earth.36.031207.124322)*, Annual Review of Earth and Planetary Sciences, 36, 389–420, 2008. [SciX](https://scixplorer.org/abs/2008AREPS..36..389F/abstract). -[^cite-nicholls2024]: H. Nicholls, T. Lichtenberg, D. J. Bower, R. Pierrehumbert, *[Magma ocean evolution at arbitrary redox state](https://doi.org/10.1029/2024JE008576)*, Journal of Geophysical Research: Planets, 129, e2024JE008576, 2024. [SciX](https://scixplorer.org/abs/2024JGRE..12908576N/abstract). -[^cite-oneilleggins2002]: H. St. C. O'Neill, S. M. Eggins, *[The effect of melt composition on trace element partitioning: an experimental investigation of the activity coefficients of FeO, NiO, CoO, MoO$_2$ and MoO$_3$ in silicate melts](https://doi.org/10.1016/S0009-2541(01)00414-4)*, Chemical Geology, 186, 151–181, 2002. [SciX](https://scixplorer.org/abs/2002ChGeo.186..151O/abstract). -[^cite-sossi2020]: P. A. Sossi, A. D. Burnham, J. Badro, A. Lanzirotti, M. Newville, H. St. C. O'Neill, *[Redox state of Earth's magma ocean and its Venus-like early atmosphere](https://doi.org/10.1126/sciadv.abd1387)*, Science Advances, 6, eabd1387, 2020. [SciX](https://scixplorer.org/abs/2020SciA....6.1387S/abstract). -[^cite-wadhwa2001]: M. Wadhwa, *[Redox state of Mars' upper mantle and crust from Eu anomalies in shergottite pyroxenes](https://doi.org/10.1126/science.1057594)*, Science, 291, 1527–1530, 2001. [SciX](https://scixplorer.org/abs/2001Sci...291.1527W/abstract). + [^cite-cartierwood2019]: C. Cartier, B. J. Wood, *[The role of reducing conditions in building Mercury](https://doi.org/10.2138/gselements.15.1.39)*, Elements, 15(1), 39–45, 2019. [SciX](https://scixplorer.org/abs/2019Eleme..15...39C/abstract). + [^cite-frostmccammon2008]: D. J. Frost, C. A. McCammon, *[The redox state of Earth's mantle](https://doi.org/10.1146/annurev.earth.36.031207.124322)*, Annual Review of Earth and Planetary Sciences, 36, 389–420, 2008. [SciX](https://scixplorer.org/abs/2008AREPS..36..389F/abstract). + [^cite-nicholls2024]: H. Nicholls, T. Lichtenberg, D. J. Bower, R. Pierrehumbert, *[Magma ocean evolution at arbitrary redox state](https://doi.org/10.1029/2024JE008576)*, Journal of Geophysical Research: Planets, 129, e2024JE008576, 2024. [SciX](https://scixplorer.org/abs/2024JGRE..12908576N/abstract). + [^cite-oneilleggins2002]: H. St. C. O'Neill, S. M. Eggins, *[The effect of melt composition on trace element partitioning: an experimental investigation of the activity coefficients of FeO, NiO, CoO, MoO$_2$ and MoO$_3$ in silicate melts](https://doi.org/10.1016/S0009-2541(01)00414-4)*, Chemical Geology, 186, 151–181, 2002. [SciX](https://scixplorer.org/abs/2002ChGeo.186..151O/abstract). + [^cite-sossi2020]: P. A. Sossi, A. D. Burnham, J. Badro, A. Lanzirotti, M. Newville, H. St. C. O'Neill, *[Redox state of Earth's magma ocean and its Venus-like early atmosphere](https://doi.org/10.1126/sciadv.abd1387)*, Science Advances, 6, eabd1387, 2020. [SciX](https://scixplorer.org/abs/2020SciA....6.1387S/abstract). + [^cite-wadhwa2001]: M. Wadhwa, *[Redox state of Mars' upper mantle and crust from Eu anomalies in shergottite pyroxenes](https://doi.org/10.1126/science.1057594)*, Science, 291, 1527–1530, 2001. [SciX](https://scixplorer.org/abs/2001Sci...291.1527W/abstract). diff --git a/docs/How-to/usage.md b/docs/How-to/usage.md index 499f8b5..d929ed6 100644 --- a/docs/How-to/usage.md +++ b/docs/How-to/usage.md @@ -86,7 +86,7 @@ target = get_target_from_pressures(ddict) result = equilibrium_atmosphere(target, ddict, print_result=True) ``` -`get_target_from_pressures()` computes the implied total elemental masses by summing atmospheric column mass (Bower et al. (2019)[^cite-bower2019] Eq. 2) and dissolved mass (Henry's law) across every included species at the prescribed initial pressures. +`get_target_from_pressures()` computes the implied total elemental masses by summing atmospheric column mass (Bower et al. (2019) [^cite-bower2019] Eq. 2) and dissolved mass (Henry's law) across every included species at the prescribed initial pressures. ## Warm-starting from a previous solve @@ -110,12 +110,12 @@ To override the default solubility law for a species, instantiate the law explic | Species | Default class | Default composition | Source | |---|---|---|---| -| H$_2$O | `SolubilityH2O` | `peridotite` | Sossi et al. (2023)[^cite-sossi2023] | -| CO$_2$ | `SolubilityCO2` | `basalt_dixon` | Dixon et al. (1995)[^cite-dixon1995] | -| CO | `SolubilityCO` | `mafic_armstrong` | Armstrong et al. (2015)[^cite-armstrong2015] | -| CH$_4$ | `SolubilityCH4` | `basalt_ardia` | Ardia et al. (2013)[^cite-ardia2013] | -| N$_2$ | `SolubilityN2` | `dasgupta` (in `dissolved_mass`) | Dasgupta et al. (2022)[^cite-dasgupta2022] | -| S$_2$ | `SolubilityS2` | `gaillard` | Gaillard et al. (2022)[^cite-gaillard2022] | +| H$_2$O | `SolubilityH2O` | `peridotite` | Sossi et al. (2023) [^cite-sossi2023] | +| CO$_2$ | `SolubilityCO2` | `basalt_dixon` | Dixon et al. (1995) [^cite-dixon1995] | +| CO | `SolubilityCO` | `mafic_armstrong` | Armstrong et al. (2015) [^cite-armstrong2015] | +| CH$_4$ | `SolubilityCH4` | `basalt_ardia` | Ardia et al. (2013) [^cite-ardia2013] | +| N$_2$ | `SolubilityN2` | `dasgupta` (in `dissolved_mass`) | Dasgupta et al. (2022) [^cite-dasgupta2022] | +| S$_2$ | `SolubilityS2` | `gaillard` | Gaillard et al. (2022) [^cite-gaillard2022] | Alternative compositions (e.g. `SolubilityH2O('basalt_dixon')`, `SolubilityH2O('lunar_glass')`) are documented in the [API reference](../Reference/api/calliope.solubility.md) and discussed in [Solubility laws](../Explanations/solubility.md). @@ -123,10 +123,10 @@ Alternative compositions (e.g. `SolubilityH2O('basalt_dixon')`, `SolubilityH2O(' For the science behind these laws and the equilibrium constants, head to [Equilibrium chemistry](../Explanations/equilibrium_chemistry.md) and [Solubility laws](../Explanations/solubility.md). For the PROTEUS-side TOML recipe, head to [Coupling to PROTEUS](proteus_coupling.md). If you have an oxygen budget to enforce rather than a buffer offset to apply, switch to the [authoritative-O recipe](authoritative_oxygen.md). -[^cite-ardia2013]: P. Ardia, M. M. Hirschmann, A. C. Withers, B. D. Stanley, *[Solubility of CH$_4$ in a synthetic basaltic melt, with applications to atmosphere-magma ocean-core partitioning of volatiles and to the evolution of the Martian atmosphere](https://doi.org/10.1016/j.gca.2013.03.028)*, Geochimica et Cosmochimica Acta, 114, 52–71, 2013. [SciX](https://scixplorer.org/abs/2013GeCoA.114...52A/abstract). -[^cite-armstrong2015]: L. S. Armstrong, M. M. Hirschmann, B. D. Stanley, E. G. Falksen, S. D. Jacobsen, *[Speciation and solubility of reduced C-O-H-N volatiles in mafic melt: implications for volcanism, atmospheric evolution, and deep volatile cycles in the terrestrial planets](https://doi.org/10.1016/j.gca.2015.07.007)*, Geochimica et Cosmochimica Acta, 171, 283–302, 2015. [SciX](https://scixplorer.org/abs/2015GeCoA.171..283A/abstract). -[^cite-bower2019]: D. J. Bower, D. Kitzmann, A. S. Wolf, P. Sanan, C. Dorn, A. V. Oza, *[Linking the evolution of terrestrial interiors and an early outgassed atmosphere to astrophysical observations](https://doi.org/10.1051/0004-6361/201935710)*, Astronomy & Astrophysics, 631, A103, 2019. [SciX](https://scixplorer.org/abs/2019A%26A...631A.103B/abstract). -[^cite-dasgupta2022]: 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](https://doi.org/10.1016/j.gca.2022.09.012)*, Geochimica et Cosmochimica Acta, 336, 291–307, 2022. [SciX](https://scixplorer.org/abs/2022GeCoA.336..291D/abstract). -[^cite-dixon1995]: 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](https://doi.org/10.1093/oxfordjournals.petrology.a037267)*, Journal of Petrology, 36(6), 1607–1631, 1995. [SciX](https://scixplorer.org/abs/1995JPet...36.1607D/abstract). -[^cite-gaillard2022]: 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](https://doi.org/10.1016/j.epsl.2021.117255)*, Earth and Planetary Science Letters, 577, 117255, 2022. [SciX](https://scixplorer.org/abs/2022E%26PSL.57717255G/abstract). -[^cite-sossi2023]: 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](https://doi.org/10.1016/j.epsl.2022.117894)*, Earth and Planetary Science Letters, 601, 117894, 2023. [SciX](https://scixplorer.org/abs/2023E%26PSL.60117894S/abstract). + [^cite-ardia2013]: P. Ardia, M. M. Hirschmann, A. C. Withers, B. D. Stanley, *[Solubility of CH$_4$ in a synthetic basaltic melt, with applications to atmosphere-magma ocean-core partitioning of volatiles and to the evolution of the Martian atmosphere](https://doi.org/10.1016/j.gca.2013.03.028)*, Geochimica et Cosmochimica Acta, 114, 52–71, 2013. [SciX](https://scixplorer.org/abs/2013GeCoA.114...52A/abstract). + [^cite-armstrong2015]: L. S. Armstrong, M. M. Hirschmann, B. D. Stanley, E. G. Falksen, S. D. Jacobsen, *[Speciation and solubility of reduced C-O-H-N volatiles in mafic melt: implications for volcanism, atmospheric evolution, and deep volatile cycles in the terrestrial planets](https://doi.org/10.1016/j.gca.2015.07.007)*, Geochimica et Cosmochimica Acta, 171, 283–302, 2015. [SciX](https://scixplorer.org/abs/2015GeCoA.171..283A/abstract). + [^cite-bower2019]: D. J. Bower, D. Kitzmann, A. S. Wolf, P. Sanan, C. Dorn, A. V. Oza, *[Linking the evolution of terrestrial interiors and an early outgassed atmosphere to astrophysical observations](https://doi.org/10.1051/0004-6361/201935710)*, Astronomy & Astrophysics, 631, A103, 2019. [SciX](https://scixplorer.org/abs/2019A%26A...631A.103B/abstract). + [^cite-dasgupta2022]: 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](https://doi.org/10.1016/j.gca.2022.09.012)*, Geochimica et Cosmochimica Acta, 336, 291–307, 2022. [SciX](https://scixplorer.org/abs/2022GeCoA.336..291D/abstract). + [^cite-dixon1995]: 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](https://doi.org/10.1093/oxfordjournals.petrology.a037267)*, Journal of Petrology, 36(6), 1607–1631, 1995. [SciX](https://scixplorer.org/abs/1995JPet...36.1607D/abstract). + [^cite-gaillard2022]: 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](https://doi.org/10.1016/j.epsl.2021.117255)*, Earth and Planetary Science Letters, 577, 117255, 2022. [SciX](https://scixplorer.org/abs/2022E%26PSL.57717255G/abstract). + [^cite-sossi2023]: 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](https://doi.org/10.1016/j.epsl.2022.117894)*, Earth and Planetary Science Letters, 601, 117894, 2023. [SciX](https://scixplorer.org/abs/2023E%26PSL.60117894S/abstract). diff --git a/docs/Tutorials/earth_fiducial.md b/docs/Tutorials/earth_fiducial.md index 1dde191..fe27162 100644 --- a/docs/Tutorials/earth_fiducial.md +++ b/docs/Tutorials/earth_fiducial.md @@ -1,6 +1,6 @@ # Reproducing the Earth fiducial -The [Backend comparison](../Explanations/cross_backend_comparison.md) explanation page anchors all of its figures on one shared Earth scenario: Krijt et al. 2023[^cite-krijt2023] BSE H/C/N/S, $T_\mathrm{magma} = 2000$ K, $\Phi = 1$, and a volatile O reference of $1.26 \times 10^{22}$ kg derived to put CALLIOPE on the Sossi et al. 2020[^cite-sossi2020] $\Delta\mathrm{IW} = +3.5$ Earth upper-mantle anchor with the current default Fischer 2011 buffer. This tutorial walks you through reproducing those numbers from scratch so you can verify the docs are still consistent with the current solver, and so you have the workflow on hand when you want to anchor your own runs to a literature value. +The [Backend comparison](../Explanations/cross_backend_comparison.md) explanation page anchors all of its figures on one shared Earth scenario: Krijt et al. 2023 [^cite-krijt2023] BSE H/C/N/S, $T_\mathrm{magma} = 2000$ K, $\Phi = 1$, and a volatile O reference of $1.26 \times 10^{22}$ kg derived to put CALLIOPE on the Sossi et al. 2020 [^cite-sossi2020] $\Delta\mathrm{IW} = +3.5$ Earth upper-mantle anchor with the current default Fischer 2011 buffer. This tutorial walks you through reproducing those numbers from scratch so you can verify the docs are still consistent with the current solver, and so you have the workflow on hand when you want to anchor your own runs to a literature value. By the end of it you will: @@ -100,7 +100,7 @@ Expected output: `residual` $\lesssim 10^{-9}$ dex, i.e. essentially zero (the e ![Earth fiducial closure](../assets/figures/tutorials/earth_fiducial.png) -*Earth fiducial reproduced from scratch. The cream band represents the Frost & McCammon 2008[^cite-frostmccammon2008] empirical Earth-mantle range, $\Delta\mathrm{IW} \in [+1, +5]$ (a conversion of their stated FMQ $\pm 2$ dex upper-mantle window onto the IW reference). The dotted vertical is the Sossi et al. 2020[^cite-sossi2020] upper-mantle anchor, $\Delta\mathrm{IW} = +3.50$. The solid line is the CALLIOPE recovered value after the buffered $\to$ authoritative-O round-trip. The summary box reports the derived O budget, the absolute closure residual (a few parts in $10^9$), and the converged surface pressure. The reproduced CALLIOPE line sits exactly on the Sossi anchor, as it should: the entire workflow is constructed to land on this value.* +*Earth fiducial reproduced from scratch. The cream band represents the Frost & McCammon 2008 [^cite-frostmccammon2008] empirical Earth-mantle range, $\Delta\mathrm{IW} \in [+1, +5]$ (a conversion of their stated FMQ $\pm 2$ dex upper-mantle window onto the IW reference). The dotted vertical is the Sossi et al. 2020 [^cite-sossi2020] upper-mantle anchor, $\Delta\mathrm{IW} = +3.50$. The solid line is the CALLIOPE recovered value after the buffered $\to$ authoritative-O round-trip. The summary box reports the derived O budget, the absolute closure residual (a few parts in $10^9$), and the converged surface pressure. The reproduced CALLIOPE line sits exactly on the Sossi anchor, as it should: the entire workflow is constructed to land on this value.* If your reproduced figure does not show the CALLIOPE line on the Sossi anchor, the most likely cause is that you skipped the `canonical_guess` in Step 2 and the buffered solver landed in the spurious H$_2$O-free basin. Add the `p_guess` and re-run. @@ -114,6 +114,6 @@ If your reproduced figure does not show the CALLIOPE line on the Sossi anchor, t Generated by [`scripts/tutorials/fig_earth_fiducial.py`](https://github.com/FormingWorlds/CALLIOPE/blob/main/scripts/tutorials/fig_earth_fiducial.py). Re-run with `python -m scripts.tutorials.fig_earth_fiducial` from the repository root. -[^cite-frostmccammon2008]: D. J. Frost, C. A. McCammon, *[The redox state of Earth's mantle](https://doi.org/10.1146/annurev.earth.36.031207.124322)*, Annual Review of Earth and Planetary Sciences, 36, 389, 2008. -[^cite-krijt2023]: S. Krijt, M. Kama, M. McClure, J. Teske, E. A. Bergin, O. Shorttle, K. J. Walsh, S. N. Raymond, *Chemical habitability: supply and retention of life's essential elements during planet formation*, in Protostars and Planets VII, S. Inutsuka, Y. Aikawa, T. Muto, K. Tomida, M. Tamura, eds., Astronomical Society of the Pacific Conference Series, 534, 1031, 2023. -[^cite-sossi2020]: P. A. Sossi, A. D. Burnham, J. Badro, A. Lanzirotti, M. Newville, H. St. C. O'Neill, *[Redox state of Earth's magma ocean and its Venus-like early atmosphere](https://doi.org/10.1126/sciadv.abd1387)*, Science Advances, 6, eabd1387, 2020. + [^cite-frostmccammon2008]: D. J. Frost, C. A. McCammon, *[The redox state of Earth's mantle](https://doi.org/10.1146/annurev.earth.36.031207.124322)*, Annual Review of Earth and Planetary Sciences, 36, 389, 2008. + [^cite-krijt2023]: S. Krijt, M. Kama, M. McClure, J. Teske, E. A. Bergin, O. Shorttle, K. J. Walsh, S. N. Raymond, *Chemical habitability: supply and retention of life's essential elements during planet formation*, in Protostars and Planets VII, S. Inutsuka, Y. Aikawa, T. Muto, K. Tomida, M. Tamura, eds., Astronomical Society of the Pacific Conference Series, 534, 1031, 2023. + [^cite-sossi2020]: P. A. Sossi, A. D. Burnham, J. Badro, A. Lanzirotti, M. Newville, H. St. C. O'Neill, *[Redox state of Earth's magma ocean and its Venus-like early atmosphere](https://doi.org/10.1126/sciadv.abd1387)*, Science Advances, 6, eabd1387, 2020. diff --git a/docs/Tutorials/firstrun.md b/docs/Tutorials/firstrun.md index de6af87..cfcf6d8 100644 --- a/docs/Tutorials/firstrun.md +++ b/docs/Tutorials/firstrun.md @@ -42,7 +42,7 @@ for sp in volatile_species: ``` !!! note "What these numbers mean" - `hydrogen_earth_oceans = 1.0` corresponds to $\sim 1.55 \times 10^{20}$ kg of H, which the wrapper translates via `H_kg = N_ocean_moles * ocean_moles * molar_mass['H2']`. `CH_ratio = 0.1` is a mass ratio chosen to roughly match estimates of Earth's bulk silicate Earth C/H. `nitrogen_ppmw = 2.0` matches the Wang et al. (2018)[^cite-wang2018] primitive-mantle estimate that Nicholls et al. (2024)[^cite-nicholls2024] used as their fiducial value. + `hydrogen_earth_oceans = 1.0` corresponds to $\sim 1.55 \times 10^{20}$ kg of H, which the wrapper translates via `H_kg = N_ocean_moles * ocean_moles * molar_mass['H2']`. `CH_ratio = 0.1` is a mass ratio chosen to roughly match estimates of Earth's bulk silicate Earth C/H. `nitrogen_ppmw = 2.0` matches the Wang et al. (2018) [^cite-wang2018] primitive-mantle estimate that Nicholls et al. (2024) [^cite-nicholls2024] used as their fiducial value. ## Step 2: build the elemental targets and solve @@ -153,7 +153,7 @@ fig.savefig('redox_sweep.pdf') plt.show() ``` -The expected qualitative behaviour, consistent with Bower et al. (2022)[^cite-bower2022] Section 3 and Nicholls et al. (2024)[^cite-nicholls2024] Figure 6: +The expected qualitative behaviour, consistent with Bower et al. (2022) [^cite-bower2022] Section 3 and Nicholls et al. (2024) [^cite-nicholls2024] Figure 6: - At $\Delta\mathrm{IW} \le -1$ (reducing), H$_2$ and CO dominate; H$_2$O and CO$_2$ collapse; - Around $\Delta\mathrm{IW} \approx 0$, the H$_2$O/H$_2$ and CO$_2$/CO ratios are of order unity; @@ -168,6 +168,6 @@ S$_2$ stays roughly constant (inventory-controlled), while SO$_2$ rises and H$_2 - For the mass-balance system that ties the partial pressures to the elemental inventory, read [Mass balance & solver](../Explanations/mass_balance.md). - For the PROTEUS-coupled invocation pattern, read [Coupling to PROTEUS (how-to)](../How-to/proteus_coupling.md). -[^cite-bower2022]: D. J. Bower, K. Hakim, P. A. Sossi, P. Sanan, *[Retention of water in terrestrial magma oceans and carbon-rich early atmospheres](https://doi.org/10.3847/PSJ/ac5fb1)*, The Planetary Science Journal, 3(4), 93, 2022. [SciX](https://scixplorer.org/abs/2022PSJ.....3...93B/abstract). -[^cite-nicholls2024]: H. Nicholls, T. Lichtenberg, D. J. Bower, R. Pierrehumbert, *[Magma ocean evolution at arbitrary redox state](https://doi.org/10.1029/2024JE008576)*, Journal of Geophysical Research: Planets, 129, e2024JE008576, 2024. [SciX](https://scixplorer.org/abs/2024JGRE..12908576N/abstract). -[^cite-wang2018]: H. S. Wang, C. H. Lineweaver, T. R. Ireland, *[The elemental abundances (with uncertainties) of the most Earth-like planet](https://doi.org/10.1016/j.icarus.2017.08.024)*, Icarus, 299, 460–474, 2018. [SciX](https://scixplorer.org/abs/2018Icar..299..460W/abstract). + [^cite-bower2022]: D. J. Bower, K. Hakim, P. A. Sossi, P. Sanan, *[Retention of water in terrestrial magma oceans and carbon-rich early atmospheres](https://doi.org/10.3847/PSJ/ac5fb1)*, The Planetary Science Journal, 3(4), 93, 2022. [SciX](https://scixplorer.org/abs/2022PSJ.....3...93B/abstract). + [^cite-nicholls2024]: H. Nicholls, T. Lichtenberg, D. J. Bower, R. Pierrehumbert, *[Magma ocean evolution at arbitrary redox state](https://doi.org/10.1029/2024JE008576)*, Journal of Geophysical Research: Planets, 129, e2024JE008576, 2024. [SciX](https://scixplorer.org/abs/2024JGRE..12908576N/abstract). + [^cite-wang2018]: H. S. Wang, C. H. Lineweaver, T. R. Ireland, *[The elemental abundances (with uncertainties) of the most Earth-like planet](https://doi.org/10.1016/j.icarus.2017.08.024)*, Icarus, 299, 460–474, 2018. [SciX](https://scixplorer.org/abs/2018Icar..299..460W/abstract). diff --git a/docs/Tutorials/mars_fiducial.md b/docs/Tutorials/mars_fiducial.md index 0a67104..e3fa2ea 100644 --- a/docs/Tutorials/mars_fiducial.md +++ b/docs/Tutorials/mars_fiducial.md @@ -11,7 +11,7 @@ By the end of it you will: You should already have completed [First run](firstrun.md). The other tutorials are not strictly required but make the figure easier to interpret. !!! note "On the choice of 'Mars-scaled' inventory" - The Mars BSE H/C/N/S inventory is much less well-constrained than Earth's. To keep this tutorial reproducible without committing to a specific Mars-petrology estimate, we scale the Krijt et al. 2023[^cite-krijt2023] Earth BSE inventory uniformly by Mars's mass-ratio to Earth ($0.107$). The result is a "Mars-mass terrestrial body with Earth-like volatile fractions". The contrast you read off the figure is therefore primarily driven by Mars's smaller gravity and mantle mass, not by a fundamentally different chemistry. For real Mars BSE work, swap in a literature Mars-mantle composition (e.g. the classical Wänke & Dreibus 1988[^cite-waenkedreibus1988] reduced-chondrite estimate) using the same workflow. + The Mars BSE H/C/N/S inventory is much less well-constrained than Earth's. To keep this tutorial reproducible without committing to a specific Mars-petrology estimate, we scale the Krijt et al. 2023 [^cite-krijt2023] Earth BSE inventory uniformly by Mars's mass-ratio to Earth ($0.107$). The result is a "Mars-mass terrestrial body with Earth-like volatile fractions". The contrast you read off the figure is therefore primarily driven by Mars's smaller gravity and mantle mass, not by a fundamentally different chemistry. For real Mars BSE work, swap in a literature Mars-mantle composition (e.g. the classical Wänke & Dreibus 1988 [^cite-waenkedreibus1988] reduced-chondrite estimate) using the same workflow. ## Step 1: define both planets @@ -119,11 +119,11 @@ The figure makes one pedagogical point cleanly: at fixed redox and temperature, This is the right intuition to carry into more sophisticated planetary work. A genuinely different *composition* (different C / H, different volatile-element fractionation, a depleted N or S budget) will shift the dominant species and break the parallel-bar pattern. A genuinely different *structure* (Mars-mass body with Earth-mass mantle, or a Venus-mass body with Mars-fraction volatiles) will shift the surface pressure without shifting the speciation. The two effects separate cleanly because CALLIOPE's chemistry depends on element budgets, not on how those budgets were divided among Earth-mass and Mars-mass bodies. -A third change, and the one likely most relevant to real Mars work, would substantially break the parallel-bar pattern: *the mantle redox state*. The shergottite parent-melt estimate of Mars's upper-mantle $f_{\mathrm{O}_2}$ from Wadhwa 2001[^cite-wadhwa2001] spans roughly $\Delta\mathrm{IW} \approx -1$ to $\Delta\mathrm{IW} \approx +2$, more reducing than the Sossi 2020 $\Delta\mathrm{IW} = +3.5$ Earth upper-mantle anchor used in this tutorial. The [Speciation phase diagram](phase_diagram.md) tutorial shows that at $\Delta\mathrm{IW} \lesssim +2$ the dominant species at this temperature flips from CO$_2$ to CO, and that H$_2$O and CO$_2$ drop sharply below the CO / H$_2$ pair. A Mars run that takes the petrologically motivated $\Delta\mathrm{IW} \sim +1$ instead of the $\Delta\mathrm{IW} = +0.5$ used here would therefore see substantially less H$_2$O and a much more reducing atmosphere overall, separately from the planetary-structure scaling explored on this page. +A third change, and the one likely most relevant to real Mars work, would substantially break the parallel-bar pattern: *the mantle redox state*. The shergottite parent-melt estimate of Mars's upper-mantle $f_{\mathrm{O}_2}$ from Wadhwa 2001 [^cite-wadhwa2001] spans roughly $\Delta\mathrm{IW} \approx -1$ to $\Delta\mathrm{IW} \approx +2$, more reducing than the Sossi 2020 $\Delta\mathrm{IW} = +3.5$ Earth upper-mantle anchor used in this tutorial. The [Speciation phase diagram](phase_diagram.md) tutorial shows that at $\Delta\mathrm{IW} \lesssim +2$ the dominant species at this temperature flips from CO$_2$ to CO, and that H$_2$O and CO$_2$ drop sharply below the CO / H$_2$ pair. A Mars run that takes the petrologically motivated $\Delta\mathrm{IW} \sim +1$ instead of the $\Delta\mathrm{IW} = +0.5$ used here would therefore see substantially less H$_2$O and a much more reducing atmosphere overall, separately from the planetary-structure scaling explored on this page. ## Where to go next -- Swap in a literature Mars BSE inventory (Wänke & Dreibus 1988[^cite-waenkedreibus1988]) in the `mars['hcns']` dict and re-run; compare the per-species shift to the uniform-scaling result. +- Swap in a literature Mars BSE inventory (Wänke & Dreibus 1988 [^cite-waenkedreibus1988]) in the `mars['hcns']` dict and re-run; compare the per-species shift to the uniform-scaling result. - Reduce the redox to $\Delta\mathrm{IW} = -3$ to look at a Mercury-like reducing endmember on the same Mars-mass body; the dominant species will switch. - Read [Equilibrium chemistry](../Explanations/equilibrium_chemistry.md) for the reactions that hold across all of these scenarios. @@ -131,6 +131,6 @@ A third change, and the one likely most relevant to real Mars work, would substa Generated by [`scripts/tutorials/fig_mars_fiducial.py`](https://github.com/FormingWorlds/CALLIOPE/blob/main/scripts/tutorials/fig_mars_fiducial.py). Re-run with `python -m scripts.tutorials.fig_mars_fiducial` from the repository root. -[^cite-krijt2023]: S. Krijt, M. Kama, M. McClure, J. Teske, E. A. Bergin, O. Shorttle, K. J. Walsh, S. N. Raymond, *Chemical habitability: supply and retention of life's essential elements during planet formation*, in Protostars and Planets VII, S. Inutsuka, Y. Aikawa, T. Muto, K. Tomida, M. Tamura, eds., Astronomical Society of the Pacific Conference Series, 534, 1031, 2023. -[^cite-waenkedreibus1988]: H. Wänke, G. Dreibus, *[Chemical composition and accretion history of terrestrial planets](https://doi.org/10.1098/rsta.1988.0067)*, Philosophical Transactions of the Royal Society A, 325(1587), 545, 1988. -[^cite-wadhwa2001]: M. Wadhwa, *[Redox state of Mars' upper mantle and crust from Eu anomalies in shergottite pyroxenes](https://doi.org/10.1126/science.1057594)*, Science, 291(5508), 1527, 2001. + [^cite-krijt2023]: S. Krijt, M. Kama, M. McClure, J. Teske, E. A. Bergin, O. Shorttle, K. J. Walsh, S. N. Raymond, *Chemical habitability: supply and retention of life's essential elements during planet formation*, in Protostars and Planets VII, S. Inutsuka, Y. Aikawa, T. Muto, K. Tomida, M. Tamura, eds., Astronomical Society of the Pacific Conference Series, 534, 1031, 2023. + [^cite-waenkedreibus1988]: H. Wänke, G. Dreibus, *[Chemical composition and accretion history of terrestrial planets](https://doi.org/10.1098/rsta.1988.0067)*, Philosophical Transactions of the Royal Society A, 325(1587), 545, 1988. + [^cite-wadhwa2001]: M. Wadhwa, *[Redox state of Mars' upper mantle and crust from Eu anomalies in shergottite pyroxenes](https://doi.org/10.1126/science.1057594)*, Science, 291(5508), 1527, 2001. diff --git a/docs/Tutorials/phase_diagram.md b/docs/Tutorials/phase_diagram.md index 15c8b30..d90c028 100644 --- a/docs/Tutorials/phase_diagram.md +++ b/docs/Tutorials/phase_diagram.md @@ -138,9 +138,9 @@ fig.savefig('phase_diagram.pdf') ![Speciation phase diagram](../assets/figures/tutorials/phase_diagram.png) -*Top-4 volatile species per cell in $(T_\mathrm{magma}, \Delta\mathrm{IW})$ at the Earth-BSE Krijt et al. 2023[^cite-krijt2023] H/C/N/S budget and $\Phi = 1$. Each grid cell is subdivided 2 by 2 in reading order (top-left = rank 1, top-right = rank 2, bottom-left = rank 3, bottom-right = rank 4) so the four most abundant species at that simulation point are visible at a glance. The redox boundary in the dominant species (top-left quadrant) separates a CO-dominated reducing regime (left) from a CO$_2$-dominated oxidising regime (right); the rank 2 to rank 4 quadrants reveal how H$_2$, H$_2$O, N$_2$, and SO$_2$ swap positions across the same boundary. A small CH$_4$ patch appears near $T \sim 1900$ K at the most reducing edge of the grid where methane synthesis becomes briefly thermodynamically competitive. At the hot, oxidising corner ($T \gtrsim 2700$ K and $\Delta\mathrm{IW} \gtrsim +4$) molecular O$_2$ itself enters the top four, reaching rank 2 at $T = 3000$ K, $\Delta\mathrm{IW} = +5$ (about 15% of $P_\mathrm{surf}$).* +*Top-4 volatile species per cell in $(T_\mathrm{magma}, \Delta\mathrm{IW})$ at the Earth-BSE Krijt et al. 2023 [^cite-krijt2023] H/C/N/S budget and $\Phi = 1$. Each grid cell is subdivided 2 by 2 in reading order (top-left = rank 1, top-right = rank 2, bottom-left = rank 3, bottom-right = rank 4) so the four most abundant species at that simulation point are visible at a glance. The redox boundary in the dominant species (top-left quadrant) separates a CO-dominated reducing regime (left) from a CO$_2$-dominated oxidising regime (right); the rank 2 to rank 4 quadrants reveal how H$_2$, H$_2$O, N$_2$, and SO$_2$ swap positions across the same boundary. A small CH$_4$ patch appears near $T \sim 1900$ K at the most reducing edge of the grid where methane synthesis becomes briefly thermodynamically competitive. At the hot, oxidising corner ($T \gtrsim 2700$ K and $\Delta\mathrm{IW} \gtrsim +4$) molecular O$_2$ itself enters the top four, reaching rank 2 at $T = 3000$ K, $\Delta\mathrm{IW} = +5$ (about 15% of $P_\mathrm{surf}$).* -The result that may surprise a reader who thinks of magma-ocean atmospheres as "steam-dominated" is that on the *Earth* BSE inventory carbon sets the dominant species, even though hydrogen outnumbers carbon by molar count (5.6 $\times 10^{23}$ mol H against 2.6 $\times 10^{23}$ mol C). The cause is not the bulk inventory ratio but melt solubility: H$_2$O is roughly two orders of magnitude more soluble in silicate melt than CO$_2$, so at $\Phi = 1$ most of the H budget stays dissolved while most of the C outgases (Bower et al. 2022[^cite-bower2022] Section 3). A water-dominated atmosphere needs either a much higher H budget (gas-giant-like) or a much lower C budget (volatile-poor / dehydrated body); the planetary case study tutorial illustrates one such contrast. +The result that may surprise a reader who thinks of magma-ocean atmospheres as "steam-dominated" is that on the *Earth* BSE inventory carbon sets the dominant species, even though hydrogen outnumbers carbon by molar count (5.6 $\times 10^{23}$ mol H against 2.6 $\times 10^{23}$ mol C). The cause is not the bulk inventory ratio but melt solubility: H$_2$O is roughly two orders of magnitude more soluble in silicate melt than CO$_2$, so at $\Phi = 1$ most of the H budget stays dissolved while most of the C outgases (Bower et al. 2022 [^cite-bower2022] Section 3). A water-dominated atmosphere needs either a much higher H budget (gas-giant-like) or a much lower C budget (volatile-poor / dehydrated body); the planetary case study tutorial illustrates one such contrast. The CO / CO$_2$ phase boundary shifts from $\Delta\mathrm{IW} \approx +1$ at $T = 1500$ K to $\Delta\mathrm{IW} \approx +3$ at $T = 3000$ K, roughly $1.5$ dex of $T$-dependence across the grid. The shift reflects the temperature dependence of the CO + 1/2 O$_2$ $\rightleftharpoons$ CO$_2$ equilibrium constant (entropy favours CO at high $T$). At any given $T$, the boundary is sharp: cross it and CO$_2$ takes over within a single grid cell. @@ -156,5 +156,5 @@ A second feature lives at the hot, oxidising corner: molecular O$_2$ stops being Generated by [`scripts/tutorials/fig_phase_diagram.py`](https://github.com/FormingWorlds/CALLIOPE/blob/main/scripts/tutorials/fig_phase_diagram.py). Re-run with `python -m scripts.tutorials.fig_phase_diagram` from the repository root. -[^cite-bower2022]: D. J. Bower, K. Hakim, P. A. Sossi, P. Sanan, *[Retention of water in terrestrial magma oceans and carbon-rich early atmospheres](https://doi.org/10.3847/PSJ/ac5fb1)*, The Planetary Science Journal, 3(4), 93, 2022. -[^cite-krijt2023]: S. Krijt, M. Kama, M. McClure, J. Teske, E. A. Bergin, O. Shorttle, K. J. Walsh, S. N. Raymond, *Chemical habitability: supply and retention of life's essential elements during planet formation*, in Protostars and Planets VII, S. Inutsuka, Y. Aikawa, T. Muto, K. Tomida, M. Tamura, eds., Astronomical Society of the Pacific Conference Series, 534, 1031, 2023. + [^cite-bower2022]: D. J. Bower, K. Hakim, P. A. Sossi, P. Sanan, *[Retention of water in terrestrial magma oceans and carbon-rich early atmospheres](https://doi.org/10.3847/PSJ/ac5fb1)*, The Planetary Science Journal, 3(4), 93, 2022. + [^cite-krijt2023]: S. Krijt, M. Kama, M. McClure, J. Teske, E. A. Bergin, O. Shorttle, K. J. Walsh, S. N. Raymond, *Chemical habitability: supply and retention of life's essential elements during planet formation*, in Protostars and Planets VII, S. Inutsuka, Y. Aikawa, T. Muto, K. Tomida, M. Tamura, eds., Astronomical Society of the Pacific Conference Series, 534, 1031, 2023. diff --git a/docs/Validation/chemistry.md b/docs/Validation/chemistry.md index a49a3ef..fd9a526 100644 --- a/docs/Validation/chemistry.md +++ b/docs/Validation/chemistry.md @@ -5,7 +5,7 @@ behaviour of `calliope.chemistry` against published sources. | Test id | Reference | Source page | Scope | |---|---|---|---| -| `tests/test_chemistry.py::test_modified_keq_janaf_H2_matches_closed_form_at_2000K_with_oneill` | NIST JANAF Thermochemical Tables[^cite-chase1998] (4th ed.), fits for `H2O = H2 + 0.5 O2` over 1500-3000 K | `src/calliope/chemistry.py:41-43` (`janaf_H2`) | Pins `Geq(janaf_H2)` at T = 2000 K under the O'Neill 2002[^cite-oneilleggins2002] IW buffer against the closed-form `10^(Keq - 0.5 * log10_fO2)`; includes a wrong-reaction discrimination guard against `schaefer_H`[^cite-schaeferfegley2017] at the same conditions. | +| `tests/test_chemistry.py::test_modified_keq_janaf_H2_matches_closed_form_at_2000K_with_oneill` | NIST JANAF Thermochemical Tables [^cite-chase1998] (4th ed.), fits for `H2O = H2 + 0.5 O2` over 1500-3000 K | `src/calliope/chemistry.py:41-43` (`janaf_H2`) | Pins `Geq(janaf_H2)` at T = 2000 K under the O'Neill 2002 [^cite-oneilleggins2002] IW buffer against the closed-form `10^(Keq - 0.5 * log10_fO2)`; includes a wrong-reaction discrimination guard against `schaefer_H` [^cite-schaeferfegley2017] at the same conditions. | ## Re-derivation note @@ -67,6 +67,6 @@ switching from O'Neill to Fischer changes Geq beyond rel=1e-6. ## References -[^cite-chase1998]: M. W. Chase, *[NIST-JANAF Thermochemical Tables, 4th edition](https://janaf.nist.gov/)*, Journal of Physical and Chemical Reference Data Monograph 9, 1998. -[^cite-oneilleggins2002]: H. St. C. O'Neill, S. M. Eggins, *[The effect of melt composition on trace element partitioning: an experimental investigation of the activity coefficients of FeO, NiO, CoO, MoO$_2$ and MoO$_3$ in silicate melts](https://doi.org/10.1016/S0009-2541(01)00414-4)*, Chemical Geology, 186, 151-181, 2002. [SciX](https://scixplorer.org/abs/2002ChGeo.186..151O/abstract). -[^cite-schaeferfegley2017]: L. Schaefer, B. Fegley, *[Redox states of initial atmospheres outgassed on rocky planets and planetesimals](https://doi.org/10.3847/1538-4357/aa784f)*, The Astrophysical Journal, 843(2), 120, 2017. [SciX](https://scixplorer.org/abs/2017ApJ...843..120S/abstract). + [^cite-chase1998]: M. W. Chase, *[NIST-JANAF Thermochemical Tables, 4th edition](https://janaf.nist.gov/)*, Journal of Physical and Chemical Reference Data Monograph 9, 1998. + [^cite-oneilleggins2002]: H. St. C. O'Neill, S. M. Eggins, *[The effect of melt composition on trace element partitioning: an experimental investigation of the activity coefficients of FeO, NiO, CoO, MoO$_2$ and MoO$_3$ in silicate melts](https://doi.org/10.1016/S0009-2541(01)00414-4)*, Chemical Geology, 186, 151-181, 2002. [SciX](https://scixplorer.org/abs/2002ChGeo.186..151O/abstract). + [^cite-schaeferfegley2017]: L. Schaefer, B. Fegley, *[Redox states of initial atmospheres outgassed on rocky planets and planetesimals](https://doi.org/10.3847/1538-4357/aa784f)*, The Astrophysical Journal, 843(2), 120, 2017. [SciX](https://scixplorer.org/abs/2017ApJ...843..120S/abstract). diff --git a/docs/Validation/oxygen_fugacity.md b/docs/Validation/oxygen_fugacity.md index 4e92fd9..a4912e8 100644 --- a/docs/Validation/oxygen_fugacity.md +++ b/docs/Validation/oxygen_fugacity.md @@ -5,7 +5,7 @@ behaviour of `calliope.oxygen_fugacity` against published sources. | Test id | Reference | Source page | Scope | |---|---|---|---| -| `tests/test_oxygen_fugacity.py::test_oxygen_fugacity_fischer_value_at_2000K_matches_published_fit` | Fischer et al. (2011)[^cite-fischer2011], EPSL 304, 496, Eq. 2; cross-checked against O'Neill & Eggins (2002)[^cite-oneilleggins2002] | [doi:10.1016/j.epsl.2011.02.025](https://doi.org/10.1016/j.epsl.2011.02.025) | Pins the Fischer-vs-O'Neill cross-calibration offset (0.258 dex at T = 2000 K) as the independent anchor, with a secondary regression check on the coded Fischer fit `6.94059 - 28.1808e3 / T` and a wrong-buffer discrimination guard against O'Neill & Eggins (2002) at the same T. | +| `tests/test_oxygen_fugacity.py::test_oxygen_fugacity_fischer_value_at_2000K_matches_published_fit` | Fischer et al. (2011) [^cite-fischer2011], EPSL 304, 496, Eq. 2; cross-checked against O'Neill & Eggins (2002) [^cite-oneilleggins2002] | [doi:10.1016/j.epsl.2011.02.025](https://doi.org/10.1016/j.epsl.2011.02.025) | Pins the Fischer-vs-O'Neill cross-calibration offset (0.258 dex at T = 2000 K) as the independent anchor, with a secondary regression check on the coded Fischer fit `6.94059 - 28.1808e3 / T` and a wrong-buffer discrimination guard against O'Neill & Eggins (2002) at the same T. | ## Re-derivation note @@ -65,5 +65,5 @@ value also serves as the wrong-buffer discrimination guard. ## References -[^cite-fischer2011]: 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](https://doi.org/10.1016/j.epsl.2011.02.025)*, Earth and Planetary Science Letters, 304, 496-502, 2011. [SciX](https://scixplorer.org/abs/2011E%26PSL.304..496F/abstract). -[^cite-oneilleggins2002]: H. St. C. O'Neill, S. M. Eggins, *[The effect of melt composition on trace element partitioning: an experimental investigation of the activity coefficients of FeO, NiO, CoO, MoO$_2$ and MoO$_3$ in silicate melts](https://doi.org/10.1016/S0009-2541(01)00414-4)*, Chemical Geology, 186, 151-181, 2002. [SciX](https://scixplorer.org/abs/2002ChGeo.186..151O/abstract). + [^cite-fischer2011]: 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](https://doi.org/10.1016/j.epsl.2011.02.025)*, Earth and Planetary Science Letters, 304, 496-502, 2011. [SciX](https://scixplorer.org/abs/2011E%26PSL.304..496F/abstract). + [^cite-oneilleggins2002]: H. St. C. O'Neill, S. M. Eggins, *[The effect of melt composition on trace element partitioning: an experimental investigation of the activity coefficients of FeO, NiO, CoO, MoO$_2$ and MoO$_3$ in silicate melts](https://doi.org/10.1016/S0009-2541(01)00414-4)*, Chemical Geology, 186, 151-181, 2002. [SciX](https://scixplorer.org/abs/2002ChGeo.186..151O/abstract). diff --git a/docs/Validation/solubility.md b/docs/Validation/solubility.md index 3c73394..59621b7 100644 --- a/docs/Validation/solubility.md +++ b/docs/Validation/solubility.md @@ -5,8 +5,8 @@ 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)[^cite-sossi2023] 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. 1995[^cite-dixon1995] 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)[^cite-gaillard2022], EPSL 117255, S2 solubility law with `x_FeO = 10 wt%` Earth-mantle default | [doi:10.1016/j.epsl.2021.117255](https://doi.org/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 2011[^cite-fischer2011] IW buffer default. | +| `tests/test_solubility.py::TestSolubilityH2O::test_peridotite_default_matches_sossi_2023_fit` | Sossi et al. (2023) [^cite-sossi2023] 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. 1995 [^cite-dixon1995] 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) [^cite-gaillard2022], EPSL 117255, S2 solubility law with `x_FeO = 10 wt%` Earth-mantle default | [doi:10.1016/j.epsl.2021.117255](https://doi.org/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 2011 [^cite-fischer2011] IW buffer default. | ## Re-derivation notes @@ -64,15 +64,15 @@ value in the test (13085.87) matches the closed-form ppmw above to the - `src/calliope/solubility.py:30-57`: H2O parameterizations. - `src/calliope/solubility.py:60-100`: S2 with the `x_FeO` kwarg. - `src/calliope/solubility.py:100+`: N2 with the `x_SiO2`, `x_Al2O3`, - `x_TiO2` kwargs (Dasgupta 2022[^cite-dasgupta2022]) plus Libourel 2003[^cite-libourel2003] as the no-composition baseline. + `x_TiO2` kwargs (Dasgupta 2022 [^cite-dasgupta2022]) plus Libourel 2003 [^cite-libourel2003] as the no-composition baseline. - `docs/Explanations/solubility.md`: user-facing concept page with the validity envelope per parameterization. ## References -[^cite-dasgupta2022]: 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](https://doi.org/10.1016/j.gca.2022.09.012)*, Geochimica et Cosmochimica Acta, 336, 291-307, 2022. [SciX](https://scixplorer.org/abs/2022GeCoA.336..291D/abstract). -[^cite-dixon1995]: 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](https://doi.org/10.1093/oxfordjournals.petrology.a037267)*, Journal of Petrology, 36(6), 1607-1631, 1995. [SciX](https://scixplorer.org/abs/1995JPet...36.1607D/abstract). -[^cite-fischer2011]: 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](https://doi.org/10.1016/j.epsl.2011.02.025)*, Earth and Planetary Science Letters, 304, 496-502, 2011. [SciX](https://scixplorer.org/abs/2011E%26PSL.304..496F/abstract). -[^cite-gaillard2022]: 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](https://doi.org/10.1016/j.epsl.2021.117255)*, Earth and Planetary Science Letters, 577, 117255, 2022. [SciX](https://scixplorer.org/abs/2022E%26PSL.57717255G/abstract). -[^cite-libourel2003]: G. Libourel, B. Marty, F. Humbert, *[Nitrogen solubility in basaltic melt. Part I. Effect of oxygen fugacity](https://doi.org/10.1016/S0016-7037(03)00259-X)*, Geochimica et Cosmochimica Acta, 67(21), 4123-4135, 2003. [SciX](https://scixplorer.org/abs/2003GeCoA..67.4123L/abstract). -[^cite-sossi2023]: 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](https://doi.org/10.1016/j.epsl.2022.117894)*, Earth and Planetary Science Letters, 601, 117894, 2023. [SciX](https://scixplorer.org/abs/2023E%26PSL.60117894S/abstract). + [^cite-dasgupta2022]: 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](https://doi.org/10.1016/j.gca.2022.09.012)*, Geochimica et Cosmochimica Acta, 336, 291-307, 2022. [SciX](https://scixplorer.org/abs/2022GeCoA.336..291D/abstract). + [^cite-dixon1995]: 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](https://doi.org/10.1093/oxfordjournals.petrology.a037267)*, Journal of Petrology, 36(6), 1607-1631, 1995. [SciX](https://scixplorer.org/abs/1995JPet...36.1607D/abstract). + [^cite-fischer2011]: 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](https://doi.org/10.1016/j.epsl.2011.02.025)*, Earth and Planetary Science Letters, 304, 496-502, 2011. [SciX](https://scixplorer.org/abs/2011E%26PSL.304..496F/abstract). + [^cite-gaillard2022]: 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](https://doi.org/10.1016/j.epsl.2021.117255)*, Earth and Planetary Science Letters, 577, 117255, 2022. [SciX](https://scixplorer.org/abs/2022E%26PSL.57717255G/abstract). + [^cite-libourel2003]: G. Libourel, B. Marty, F. Humbert, *[Nitrogen solubility in basaltic melt. Part I. Effect of oxygen fugacity](https://doi.org/10.1016/S0016-7037(03)00259-X)*, Geochimica et Cosmochimica Acta, 67(21), 4123-4135, 2003. [SciX](https://scixplorer.org/abs/2003GeCoA..67.4123L/abstract). + [^cite-sossi2023]: 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](https://doi.org/10.1016/j.epsl.2022.117894)*, Earth and Planetary Science Letters, 601, 117894, 2023. [SciX](https://scixplorer.org/abs/2023E%26PSL.60117894S/abstract). diff --git a/docs/Validation/structure.md b/docs/Validation/structure.md index 98c37c4..b7e7f2b 100644 --- a/docs/Validation/structure.md +++ b/docs/Validation/structure.md @@ -5,7 +5,7 @@ behaviour of `calliope.structure` against a published source. | Test id | Reference | Source page | Scope | |---|---|---|---| -| `tests/test_structure.py::test_calculate_mantle_mass_recovers_wang_2018_earth_core_fraction` | Wang, Lineweaver & Ireland (2018)[^cite-wang2018], arxiv:1708.08718: Earth core mass fraction 32.5 +/- 0.3 wt% | [arxiv:1708.08718](https://arxiv.org/abs/1708.08718) | Pins the Earth-like mantle mass against the published core mass fraction and verifies the result lies in the 1e24 to 1e25 kg envelope expected for an Earth-mass planet. | +| `tests/test_structure.py::test_calculate_mantle_mass_recovers_wang_2018_earth_core_fraction` | Wang, Lineweaver & Ireland (2018) [^cite-wang2018], arxiv:1708.08718: Earth core mass fraction 32.5 +/- 0.3 wt% | [arxiv:1708.08718](https://arxiv.org/abs/1708.08718) | Pins the Earth-like mantle mass against the published core mass fraction and verifies the result lies in the 1e24 to 1e25 kg envelope expected for an Earth-mass planet. | ## Re-derivation note @@ -13,7 +13,7 @@ behaviour of `calliope.structure` against a published source. core mass from the total planetary mass. The core mass is the volume of a sphere of radius `core_frac * R_planet` multiplied by a core density derived from Earth: `core_rho = 3 * earth_fm * M_earth / (4 pi * (earth_fr * R_earth)^3)` -with `earth_fm = 0.325` and `earth_fr = 0.55` from Wang et al. (2018)[^cite-wang2018]. +with `earth_fm = 0.325` and `earth_fr = 0.55` from Wang et al. (2018) [^cite-wang2018]. For Earth-like input (`R = R_earth`, `M = M_earth`, `core_frac = 0.55`), the construction is degenerate: the core density times the Earth-radius core @@ -39,4 +39,4 @@ as the analytical-limit second-line check. ## References -[^cite-wang2018]: H. S. Wang, C. H. Lineweaver, T. R. Ireland, *[The elemental abundances (with uncertainties) of the most Earth-like planet](https://doi.org/10.1016/j.icarus.2017.08.024)*, Icarus, 299, 460-474, 2018. [SciX](https://scixplorer.org/abs/2018Icar..299..460W/abstract). + [^cite-wang2018]: H. S. Wang, C. H. Lineweaver, T. R. Ireland, *[The elemental abundances (with uncertainties) of the most Earth-like planet](https://doi.org/10.1016/j.icarus.2017.08.024)*, Icarus, 299, 460-474, 2018. [SciX](https://scixplorer.org/abs/2018Icar..299..460W/abstract). diff --git a/docs/index.md b/docs/index.md index 9cd1cab..8cce244 100644 --- a/docs/index.md +++ b/docs/index.md @@ -22,9 +22,9 @@ Named after the [Greek muse of eloquence and epic poetry](https://en.wikipedia.o - **Eleven volatile species**: H$_2$O, CO$_2$, N$_2$, S$_2$ as primary unknowns; H$_2$, CH$_4$, CO, NH$_3$, SO$_2$, H$_2$S, O$_2$ derived from gas-phase equilibrium - **Five elemental conservation channels**: H, C, N, S always solved; O either derived from the $f_{\mathrm{O}_2}$ buffer (buffered mode) or supplied as a fifth budget (authoritative-O mode) -- **Configurable redox state**: Fischer et al. (2011)[^cite-fischer2011] iron-wüstite (IW) buffer with arbitrary $\Delta\mathrm{IW}$ shift (default; chosen to be close to atmodeller's Hirschmann composite across the magma-ocean range), or the legacy O'Neill & Eggins (2002)[^cite-oneilleggins2002] IW -- **Calibrated equilibrium constants**: JANAF[^cite-chase1998] and Schaefer & Fegley (2017)[^cite-schaeferfegley2017] fits for the H$_2$O-H$_2$, CO$_2$-CO, CO$_2$+H$_2$-CH$_4$, S$_2$-SO$_2$, S$_2$+H$_2$-H$_2$S, and N$_2$+H$_2$-NH$_3$ couples -- **Multiple solubility laws per species**: peridotite (default H$_2$O, Sossi et al. 2023[^cite-sossi2023]), basalt (Dixon et al. 1995[^cite-dixon1995], Wilson & Head 1981[^cite-wilsonhead1981], Hamilton et al. 1964[^cite-hamilton1964]), anorthite-diopside (Newcombe et al. 2017[^cite-newcombe2017]), lunar glass (Newcombe et al. 2017[^cite-newcombe2017]); CO$_2$ (Dixon et al. 1995[^cite-dixon1995]); CO (Armstrong et al. 2015[^cite-armstrong2015]); CH$_4$ (Ardia et al. 2013[^cite-ardia2013]); N$_2$ (Libourel et al. 2003[^cite-libourel2003] or Dasgupta et al. 2022[^cite-dasgupta2022]); S$_2$ (Gaillard et al. 2022[^cite-gaillard2022]) +- **Configurable redox state**: Fischer et al. (2011) [^cite-fischer2011] iron-wüstite (IW) buffer with arbitrary $\Delta\mathrm{IW}$ shift (default; chosen to be close to atmodeller's Hirschmann composite across the magma-ocean range), or the legacy O'Neill & Eggins (2002) [^cite-oneilleggins2002] IW +- **Calibrated equilibrium constants**: JANAF [^cite-chase1998] and Schaefer & Fegley (2017) [^cite-schaeferfegley2017] fits for the H$_2$O-H$_2$, CO$_2$-CO, CO$_2$+H$_2$-CH$_4$, S$_2$-SO$_2$, S$_2$+H$_2$-H$_2$S, and N$_2$+H$_2$-NH$_3$ couples +- **Multiple solubility laws per species**: peridotite (default H$_2$O, Sossi et al. 2023 [^cite-sossi2023]), basalt (Dixon et al. 1995 [^cite-dixon1995], Wilson & Head 1981 [^cite-wilsonhead1981], Hamilton et al. 1964 [^cite-hamilton1964]), anorthite-diopside (Newcombe et al. 2017 [^cite-newcombe2017]), lunar glass (Newcombe et al. 2017 [^cite-newcombe2017]); CO$_2$ (Dixon et al. 1995 [^cite-dixon1995]); CO (Armstrong et al. 2015 [^cite-armstrong2015]); CH$_4$ (Ardia et al. 2013 [^cite-ardia2013]); N$_2$ (Libourel et al. 2003 [^cite-libourel2003] or Dasgupta et al. 2022 [^cite-dasgupta2022]); S$_2$ (Gaillard et al. 2022 [^cite-gaillard2022]) - **Robust hybrid solver**: alternating `scipy.optimize.fsolve` (Powell hybrid) and `trust-constr` minimisation, with Monte-Carlo restart on failure - **PROTEUS-coupled or standalone**: the same equilibrium kernel powers both the in-loop call from PROTEUS and one-off scripts @@ -92,17 +92,17 @@ If you are running into problems, please do not hesitate to raise an [Issue](htt [Apache License 2.0](https://opensource.org/licenses/Apache-2.0). See [the included license](https://github.com/FormingWorlds/CALLIOPE/blob/main/LICENSE.txt). -[^cite-ardia2013]: P. Ardia, M. M. Hirschmann, A. C. Withers, B. D. Stanley, *[Solubility of CH$_4$ in a synthetic basaltic melt, with applications to atmosphere-magma ocean-core partitioning of volatiles and to the evolution of the Martian atmosphere](https://doi.org/10.1016/j.gca.2013.03.028)*, Geochimica et Cosmochimica Acta, 114, 52–71, 2013. [SciX](https://scixplorer.org/abs/2013GeCoA.114...52A/abstract). -[^cite-armstrong2015]: L. S. Armstrong, M. M. Hirschmann, B. D. Stanley, E. G. Falksen, S. D. Jacobsen, *[Speciation and solubility of reduced C-O-H-N volatiles in mafic melt: implications for volcanism, atmospheric evolution, and deep volatile cycles in the terrestrial planets](https://doi.org/10.1016/j.gca.2015.07.007)*, Geochimica et Cosmochimica Acta, 171, 283–302, 2015. [SciX](https://scixplorer.org/abs/2015GeCoA.171..283A/abstract). -[^cite-chase1998]: M. W. Chase, *[NIST-JANAF Thermochemical Tables, 4th edition](https://janaf.nist.gov/)*, Journal of Physical and Chemical Reference Data Monograph 9, 1998. -[^cite-dasgupta2022]: 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](https://doi.org/10.1016/j.gca.2022.09.012)*, Geochimica et Cosmochimica Acta, 336, 291–307, 2022. [SciX](https://scixplorer.org/abs/2022GeCoA.336..291D/abstract). -[^cite-dixon1995]: 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](https://doi.org/10.1093/oxfordjournals.petrology.a037267)*, Journal of Petrology, 36(6), 1607–1631, 1995. [SciX](https://scixplorer.org/abs/1995JPet...36.1607D/abstract). -[^cite-fischer2011]: 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](https://doi.org/10.1016/j.epsl.2011.02.025)*, Earth and Planetary Science Letters, 304, 496–502, 2011. [SciX](https://scixplorer.org/abs/2011E%26PSL.304..496F/abstract). -[^cite-gaillard2022]: 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](https://doi.org/10.1016/j.epsl.2021.117255)*, Earth and Planetary Science Letters, 577, 117255, 2022. [SciX](https://scixplorer.org/abs/2022E%26PSL.57717255G/abstract). -[^cite-hamilton1964]: D. L. Hamilton, C. W. Burnham, E. F. Osborn, *[The solubility of water and effects of oxygen fugacity and water content on crystallization in mafic magmas](https://doi.org/10.1093/petrology/5.1.21)*, Journal of Petrology, 5(1), 21–39, 1964. -[^cite-libourel2003]: G. Libourel, B. Marty, F. Humbert, *[Nitrogen solubility in basaltic melt. Part I. Effect of oxygen fugacity](https://doi.org/10.1016/S0016-7037(03)00259-X)*, Geochimica et Cosmochimica Acta, 67(21), 4123–4135, 2003. [SciX](https://scixplorer.org/abs/2003GeCoA..67.4123L/abstract). -[^cite-newcombe2017]: M. E. Newcombe, A. Brett, J. R. Beckett, M. B. Baker, S. Newman, Y. Guan, J. M. Eiler, E. M. Stolper, *[Solubility of water in lunar basalt at low pH$_2$O](https://doi.org/10.1016/j.gca.2016.12.026)*, Geochimica et Cosmochimica Acta, 200, 330–352, 2017. [SciX](https://scixplorer.org/abs/2017GeCoA.200..330N/abstract). -[^cite-oneilleggins2002]: H. St. C. O'Neill, S. M. Eggins, *[The effect of melt composition on trace element partitioning: an experimental investigation of the activity coefficients of FeO, NiO, CoO, MoO$_2$ and MoO$_3$ in silicate melts](https://doi.org/10.1016/S0009-2541(01)00414-4)*, Chemical Geology, 186, 151–181, 2002. [SciX](https://scixplorer.org/abs/2002ChGeo.186..151O/abstract). -[^cite-schaeferfegley2017]: L. Schaefer, B. Fegley, *[Redox states of initial atmospheres outgassed on rocky planets and planetesimals](https://doi.org/10.3847/1538-4357/aa784f)*, The Astrophysical Journal, 843(2), 120, 2017. [SciX](https://scixplorer.org/abs/2017ApJ...843..120S/abstract). -[^cite-sossi2023]: 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](https://doi.org/10.1016/j.epsl.2022.117894)*, Earth and Planetary Science Letters, 601, 117894, 2023. [SciX](https://scixplorer.org/abs/2023E%26PSL.60117894S/abstract). -[^cite-wilsonhead1981]: L. Wilson, J. W. Head, *[Ascent and eruption of basaltic magma on the Earth and Moon](https://doi.org/10.1029/JB086iB04p02971)*, Journal of Geophysical Research, 86(B4), 2971–3001, 1981. [SciX](https://scixplorer.org/abs/1981JGR....86.2971W/abstract). + [^cite-ardia2013]: P. Ardia, M. M. Hirschmann, A. C. Withers, B. D. Stanley, *[Solubility of CH$_4$ in a synthetic basaltic melt, with applications to atmosphere-magma ocean-core partitioning of volatiles and to the evolution of the Martian atmosphere](https://doi.org/10.1016/j.gca.2013.03.028)*, Geochimica et Cosmochimica Acta, 114, 52–71, 2013. [SciX](https://scixplorer.org/abs/2013GeCoA.114...52A/abstract). + [^cite-armstrong2015]: L. S. Armstrong, M. M. Hirschmann, B. D. Stanley, E. G. Falksen, S. D. Jacobsen, *[Speciation and solubility of reduced C-O-H-N volatiles in mafic melt: implications for volcanism, atmospheric evolution, and deep volatile cycles in the terrestrial planets](https://doi.org/10.1016/j.gca.2015.07.007)*, Geochimica et Cosmochimica Acta, 171, 283–302, 2015. [SciX](https://scixplorer.org/abs/2015GeCoA.171..283A/abstract). + [^cite-chase1998]: M. W. Chase, *[NIST-JANAF Thermochemical Tables, 4th edition](https://janaf.nist.gov/)*, Journal of Physical and Chemical Reference Data Monograph 9, 1998. + [^cite-dasgupta2022]: 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](https://doi.org/10.1016/j.gca.2022.09.012)*, Geochimica et Cosmochimica Acta, 336, 291–307, 2022. [SciX](https://scixplorer.org/abs/2022GeCoA.336..291D/abstract). + [^cite-dixon1995]: 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](https://doi.org/10.1093/oxfordjournals.petrology.a037267)*, Journal of Petrology, 36(6), 1607–1631, 1995. [SciX](https://scixplorer.org/abs/1995JPet...36.1607D/abstract). + [^cite-fischer2011]: 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](https://doi.org/10.1016/j.epsl.2011.02.025)*, Earth and Planetary Science Letters, 304, 496–502, 2011. [SciX](https://scixplorer.org/abs/2011E%26PSL.304..496F/abstract). + [^cite-gaillard2022]: 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](https://doi.org/10.1016/j.epsl.2021.117255)*, Earth and Planetary Science Letters, 577, 117255, 2022. [SciX](https://scixplorer.org/abs/2022E%26PSL.57717255G/abstract). + [^cite-hamilton1964]: D. L. Hamilton, C. W. Burnham, E. F. Osborn, *[The solubility of water and effects of oxygen fugacity and water content on crystallization in mafic magmas](https://doi.org/10.1093/petrology/5.1.21)*, Journal of Petrology, 5(1), 21–39, 1964. + [^cite-libourel2003]: G. Libourel, B. Marty, F. Humbert, *[Nitrogen solubility in basaltic melt. Part I. Effect of oxygen fugacity](https://doi.org/10.1016/S0016-7037(03)00259-X)*, Geochimica et Cosmochimica Acta, 67(21), 4123–4135, 2003. [SciX](https://scixplorer.org/abs/2003GeCoA..67.4123L/abstract). + [^cite-newcombe2017]: M. E. Newcombe, A. Brett, J. R. Beckett, M. B. Baker, S. Newman, Y. Guan, J. M. Eiler, E. M. Stolper, *[Solubility of water in lunar basalt at low pH$_2$O](https://doi.org/10.1016/j.gca.2016.12.026)*, Geochimica et Cosmochimica Acta, 200, 330–352, 2017. [SciX](https://scixplorer.org/abs/2017GeCoA.200..330N/abstract). + [^cite-oneilleggins2002]: H. St. C. O'Neill, S. M. Eggins, *[The effect of melt composition on trace element partitioning: an experimental investigation of the activity coefficients of FeO, NiO, CoO, MoO$_2$ and MoO$_3$ in silicate melts](https://doi.org/10.1016/S0009-2541(01)00414-4)*, Chemical Geology, 186, 151–181, 2002. [SciX](https://scixplorer.org/abs/2002ChGeo.186..151O/abstract). + [^cite-schaeferfegley2017]: L. Schaefer, B. Fegley, *[Redox states of initial atmospheres outgassed on rocky planets and planetesimals](https://doi.org/10.3847/1538-4357/aa784f)*, The Astrophysical Journal, 843(2), 120, 2017. [SciX](https://scixplorer.org/abs/2017ApJ...843..120S/abstract). + [^cite-sossi2023]: 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](https://doi.org/10.1016/j.epsl.2022.117894)*, Earth and Planetary Science Letters, 601, 117894, 2023. [SciX](https://scixplorer.org/abs/2023E%26PSL.60117894S/abstract). + [^cite-wilsonhead1981]: L. Wilson, J. W. Head, *[Ascent and eruption of basaltic magma on the Earth and Moon](https://doi.org/10.1029/JB086iB04p02971)*, Journal of Geophysical Research, 86(B4), 2971–3001, 1981. [SciX](https://scixplorer.org/abs/1981JGR....86.2971W/abstract). diff --git a/docs/proteus-framework.md b/docs/proteus-framework.md index 6fc5c99..17ba6a2 100644 --- a/docs/proteus-framework.md +++ b/docs/proteus-framework.md @@ -1,3 +1,7 @@ +--- +title: CALLIOPE in the PROTEUS framework +--- +

@@ -7,19 +11,14 @@

-# CALLIOPE in the PROTEUS framework -CALLIOPE is the **equilibrium outgassing module** of [PROTEUS](https://proteus-framework.org/PROTEUS) (/ˈproʊtiəs/, PROH-tee-əs), a modular Python framework for the coupled evolution of the atmospheres and interiors of rocky planets and exoplanets. -A schematic of PROTEUS components and corresponding modules is shown below. +CALLIOPE is the **equilibrium outgassing module** of [PROTEUS](https://proteus-framework.org/PROTEUS) (/ˈproʊtiəs/, PROH-tee-əs), a modular Python framework for the coupled evolution of the atmospheres and interiors of rocky planets and exoplanets. A schematic of PROTEUS components and corresponding modules can be found below. Click any module in the diagram to open its documentation, or navigate to it from the sidebar. +
-

-
- Schematic of PROTEUS components and corresponding modules.
-

+PROTEUS module schematic (light mode) +PROTEUS module schematic (dark mode) -You can find the documentation of each PROTEUS module in the sidebar. - ---- +

Schematic of PROTEUS components and corresponding modules.

## Where CALLIOPE sits in a coupled run From 267724b7744fd9ae2877d3406b0495fbb9c65cf8 Mon Sep 17 00:00:00 2001 From: Karen Stuitje Date: Tue, 2 Jun 2026 14:15:38 +0200 Subject: [PATCH 3/6] update imported stylesheets --- mkdocs.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mkdocs.yml b/mkdocs.yml index ba8080f..df9e307 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -124,6 +124,8 @@ theme: extra_css: - stylesheets/extra.css + - stylesheets/proteus_theme.css + - stylesheets/footnotes.css markdown_extensions: - admonition From 51ac4037d5dd6a08c52a6dc5a49003ff93e85d97 Mon Sep 17 00:00:00 2001 From: Karen Stuitje Date: Tue, 2 Jun 2026 14:20:33 +0200 Subject: [PATCH 4/6] add line removing focus outline on diagram in firefox --- docs/stylesheets/extra.css | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css index af97b0d..b9f41bf 100644 --- a/docs/stylesheets/extra.css +++ b/docs/stylesheets/extra.css @@ -17,4 +17,10 @@ /* Remove underline from links that contain only an image */ .md-typeset p a:has(> img) { text-decoration: none; +} + +/* Remove focus outline from module diagrams for Firefox */ +.mod-diagram:focus, +.mod-diagram:focus-visible { + outline: none !important; } \ No newline at end of file From 92d53c7da5674b8ac41104999a6c1ee140c2ce83 Mon Sep 17 00:00:00 2001 From: Karen Stuitje Date: Tue, 2 Jun 2026 14:40:59 +0200 Subject: [PATCH 5/6] update links to other modules --- mkdocs.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mkdocs.yml b/mkdocs.yml index df9e307..e326db3 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -80,9 +80,9 @@ nav: - "\U0001F517 Zalmoxis": https://proteus-framework.org/Zalmoxis/ - "\U0001F517 Aragog": https://proteus-framework.org/aragog/ - "\U0001F517 SPIDER": https://proteus-framework.org/SPIDER/ - - "\U0001F517 Atmodeller": https://atmodeller.readthedocs.io/en/latest/ - - "\U0001F517 FastChem": https://newstrangeworlds.github.io/FastChem/ - - "\U0001F517 PLATON": https://platon.readthedocs.io/en/latest/ + - "\U0001F517 Atmodeller": https://github.com/FormingWorlds/atmodeller + - "\U0001F517 FastChem": https://github.com/FormingWorlds/FastChem + - "\U0001F517 SOCRATES": https://proteus-framework.org/SOCRATES/ theme: name: material From beee9045223d49d4c6c566a655158c10d3412e09 Mon Sep 17 00:00:00 2001 From: Karen Stuitje Date: Tue, 2 Jun 2026 14:47:27 +0200 Subject: [PATCH 6/6] fix: remove trailing newlines --- docs/stylesheets/extra.css | 2 +- docs/stylesheets/footnotes.css | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css index b9f41bf..0949077 100644 --- a/docs/stylesheets/extra.css +++ b/docs/stylesheets/extra.css @@ -23,4 +23,4 @@ .mod-diagram:focus, .mod-diagram:focus-visible { outline: none !important; -} \ No newline at end of file +} diff --git a/docs/stylesheets/footnotes.css b/docs/stylesheets/footnotes.css index 20bb8fb..395d479 100644 --- a/docs/stylesheets/footnotes.css +++ b/docs/stylesheets/footnotes.css @@ -17,5 +17,3 @@ vertical-align: baseline !important; font-size: 1em !important; } - -