Skip to content

Radially resolved evolution of fO2 through ferric/ferrous iron tracking #653

Open
0 of 1 issue completed
Open

Description

@planetmariana

Feature description

Currently, PROTEUS assumes a prescribed oxygen fugacity (fO₂) at the surface when computing volatile speciation and atmospheric composition. However, in reality the redox state of the mantle evolves during magma ocean solidification due to several processes. In this implementation we focus specifically on the evolution of fO₂ driven by the partitioning of ferric iron (Fe³⁺) between melt and crystallizing solid phases.

This feature introduces self-consistent tracking of the Fe³⁺/Fe²⁺ ratio in the mantle as a function of time and radius, from which the corresponding fO₂ can be derived using an experimentally calibrated relation, based on Schaefer et al. (2024) .This will allow the computation of a radial fO₂ profile at every timestep. In particular, the surface fO₂ can then be passed to the outgassing module (CALLIOPE) to determine gas speciation and atmospheric composition.

Implementing this capability will allow PROTEUS to self-consistently couple interior redox evolution, crystallization, and atmospheric chemistry.

Preferred solution

The proposed implementation follows the formulation described in Schaefer et al. (2024). In that work, oxygen fugacity is computed from the Fe³⁺/Fe²⁺ ratio in the mantle using an experimentally calibrated relation for BSE (Equation 13). The key requirement is therefore to track the evolution of ferric iron (Fe³⁺) during crystallization. In Schaefer et al. (2024), this is done using a chemical fractional crystallization model, where the partitioning of ferric iron between melt and specific mineral phases is explicitly simulated.

In contrast, SPIDER does not explicitly simulate chemical differentiation between mineral phases. Instead, it represents fractional crystallization through the thermal evolution of the magma ocean, where parameters such as grain size control the crystallization regime and influence energy transport. As a result, SPIDER determines how much solid forms but does not track which specific minerals crystallize. Therefore, rather than reproducing a full chemical crystallization model, we adopt a simplified approach that links ferric iron partitioning to the amount of solid produced by SPIDER.

The proposed approximation is:

  1. Track Fe³⁺ and Fe²⁺ in the mantle as tracers in each radial cell.

  2. When SPIDER forms crystals, redistribute Fe³⁺ between melt and solids using ferric iron partition coefficients.

Because mineralogy is not explicitly tracked, assume that the crystallizing phases correspond to MgSiO₃ minerals represented by the current EOS. As a first-order approximation:

*At high pressures, crystallizing phases are assumed to behave like Bridgmanite.

*At lower pressures, they can be approximated as enstatite-like MgSiO₃ phases.

The specific mineral phase is therefore approximated using pressure cutoffs, while the thermodynamic structure remains consistent with the MgSiO₃ mantle EOS already used in PROTEUS. This provides a radial fO₂ profile throughout the mantle and a self-consistent surface fO₂ that can be used by the in/outgassing module

Additional information

The original MATLAB code is open source and available here.
This issue is a sub-issue from #289 which has as a parent issue #57

I will start implementing this approach in the next couple of weeks :)

Relevant people

@timlichtenberg @nichollsh

Activity

  1. self-assigned this
    on Mar 9, 2026
  2. added
    InterraIssue has been imported to the Interra Board project
    on Mar 9, 2026
  3. nichollsh commented on Mar 9, 2026

    @nichollsh
    Member

    Very cool. Excited to see this in action!

    Regarding this point:

    mineralogy is not explicitly tracked

    I previously made a related issue for this topic, here #432

  4. timlichtenberg commented on Mar 9, 2026

    @timlichtenberg
    Member

    Sounds like a good plan to me!

  5. nichollsh commented on Apr 13, 2026

    @nichollsh
    Member

    Following discussion today: we need to think about how to track these variables in PROTEUS.

    1. Since this approach presumably conserves oxygen, we will need to incorporate new config options for inputting the oxygen budget.

    2. The helpfile will need to store new variables representing fO2. This calculation resolves fO2 profiles with depth, so the helpfile could store surface and bulk values as separate variables. It could also (or alternatively) store Fe2+/Fe3+ ratios.

  6. timlichtenberg commented on Oct 6, 2026

    @timlichtenberg
    Member

    Issue is being worked on in PR/branch #948. Issues with metal saturation. Crystallisation redox evolution works well. Updates in #948.

  7. planetmariana commented on Oct 13, 2026

    @planetmariana
    MemberAuthor

    PR #38 adds the Hirschmann (2021) iron–wüstite buffer and makes it the default IW buffer in the code (DEFAULT_FO2_MODEL = 'hirschmann'). That PR only touches the code and tests. The docs and tutorials still describe Fischer (2011) as the default and quote numbers computed with it, so an issue needs to be opened on CALLIOPE to track updating them in a follow-up.

    To reproduce Schaefer et al. (2024) in PR/branch #948 qualitatively, we will take the FeO (Fe²⁺) partition coefficients of bridgmanite and pyroxene from their Fe–Mg exchange model in place of the bulk value of 0.85, so that D(Fe³⁺) exceeds D(Fe²⁺) and the melt Fe³⁺/FeT falls during lower-mantle crystallization, as in Schaefer models.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

InterraIssue has been imported to the Interra Board projectimport

Projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions