PhreeqcUsers Discussion Forum

Registrations currently disabled due to excessive spam. Please email phreeqcusers at gmail.com to request an account.
Welcome Guest
 

  • Forum Home
  • Login
  • Register

  • PhreeqcUsers Discussion Forum »
  • Conceptual Models »
  • Kinetics and rate controlling factors »
  • Fe_di & Fe_tri -> oxidation and reduction?
« previous next »
  • Print
Pages: [1]   Go Down

Author Topic: Fe_di & Fe_tri -> oxidation and reduction?  (Read 778 times)

florisWQ

  • Contributor
  • Posts: 5
Fe_di & Fe_tri -> oxidation and reduction?
« on: 10/09/24 21:04 »
Hi all,

In the PHREEQC manual, there is an example showing how the kinetics of Fe(II) oxidation can be handled to represent Fe(II)/Fe(III) redox disequilibrium that is often seen in nature.

Code: [Select]
TITLE Example 9.--Kinetically controlled oxidation of ferrous

                  iron. Decoupled valence states of iron.

SOLUTION_MASTER_SPECIES

Fe_di              Fe_di+2    0.0     Fe_di              55.847

Fe_tri             Fe_tri+3   0.0     Fe_tri             55.847

SOLUTION_SPECIES

Fe_di+2 = Fe_di+2

        log_k   0.0

Fe_tri+3 = Fe_tri+3

        log_k   0.0

#

# Fe+2 species

#

Fe_di+2 + H2O = Fe_diOH+ + H+

        log_k   -9.5

        delta_h 13.20   kcal

#

#... and also other Fe+2 species

#

#

# Fe+3 species

#

Fe_tri+3 + H2O = Fe_triOH+2 + H+

        log_k   -2.19

        delta_h 10.4    kcal

#

#... and also other Fe+3 species

#

PHASES

Goethite

        Fe_triOOH + 3 H+ = Fe_tri+3 + 2 H2O

        log_k   -1.0

END

SOLUTION 1

        pH  7.0

        pe 10.0  O2(g) -0.67

        Fe_di  0.1

        Na  10.

        Cl  10.  charge

EQUILIBRIUM_PHASES 1

        O2(g)           -0.67

RATES

Fe_di_ox

  -start

  10  Fe_di = TOT("Fe_di")

  20  if (Fe_di <= 0) then goto 200

  30  p_o2 = SR("O2(g)")

  40  moles = (2.91e-9 + 1.33e12 * (ACT("OH-"))^2 * p_o2) * Fe_di * TIME

  200 SAVE moles

  -end

KINETICS 1

Fe_di_ox

        -formula  Fe_di  -1.0  Fe_tri  1.0

        -steps 100 400 3100 10800 21600 5.04e4 8.64e4 1.728e5 1.728e5 1.728e5 1.728e5

        -step_divide 1e-4

INCREMENTAL_REACTIONS true

SELECTED_OUTPUT

        -file ex9.sel

        -reset false

USER_PUNCH

        -headings Days  Fe(2)  Fe(3)  pH  si_goethite

  10 PUNCH SIM_TIME / 3600 / 24, TOT("Fe_di")*1e6, TOT("Fe_tri")*1e6, -LA("H+"),\

SI("Goethite")

USER_GRAPH Example 9

        -headings _time_ Fe(2) Fe(3) pH

        -chart_title "Oxidation of Ferrous Iron"

        -axis_titles "Time, in days" "Micromole per kilogram water" "pH"

        -axis_scale secondary_y_axis 4.0 7.0 1.0 0.5

  -start

  10 GRAPH_X TOTAL_TIME / 3600 / 24

  20 GRAPH_Y TOT("Fe_di")*1e6, TOT("Fe_tri")*1e6

  30 GRAPH_SY -LA("H+")

  -end

END

This approach decouples equilibrium reactions of Fe(II) and Fe(III) by omission of the following:

Code: [Select]
Fe+2 = Fe+3 + e-
-log_k -13.02
-delta_h 9.680 kcal
-gamma 9.0 0

This is very useful if during the simulation conditions tend towards oxidation, but what I am wondering now, is how to make this script flexible to situations where over the course of a simulation redox conditions fluctuate and Fe_tri and oxides with Fe_tri may reduce back to Fe_di. A quasi-instantenous kinetic rate for Fe_tri reduction may work. However, I plan to use Fe_di an Fe_tri in a model of organics degradation where I would like speciation and redox zonation to result from partial equilibrium reactions, with the reaction rate controlled by degradation of the organics.

The problem that I run into is then this: how should I make Fe(III) kinetics conditional on the right redox potential? And such an addition may mean that reduction reactions of other species, solved through a partial equilibrium approach, would be resolved before Fe(III) can be reacted kinetically, even if the other reaction has less affinity, as f.ex. in SO4 reduction or methanogenesis relative to Fe(III) reduction.

Is there a way to make the kinetic reaction for Fe_tri reduction follow the redox zonation that would follow from the equilibrium, while keeping a kinetic approach for Fe_di oxidation? Hope to hear your thoughts on this!

Floris
Logged

dlparkhurst

  • Global Moderator
  • *****
  • Posts: 4067
Re: Fe_di & Fe_tri -> oxidation and reduction?
« Reply #1 on: 10/09/24 23:17 »
I think this is what you want. If you write the Fe+2 -> Fe+3 reaction in terms of O2:

Code: [Select]
H+ + Fe+2 + 0.25 O2 = Fe+3 + 0.5 H2O

Then you can have the oxidation stop when Fe+2 is in equilibrium with Fe+3 as determined by the oxygen concentrations.

Here is a script that starts with a solution in equilibrium with atmospheric O2. The reaction continues until Fe(2) is nearly consumed but stops at a finite concentration of Fe(2), where it is in equilibrium with Fe(3) at the remaining DO concentration.

Code: [Select]
SOLUTION_SPECIES
H+ + Fe+2 + 0.25 O2 = Fe+3 + 0.5 H2O
        log_k 8.4899
-delta_H -97.209 kJ/mol # Calculated enthalpy of reaction Fe+3
# Enthalpy of formation: -11.85 kcal/mol
        -analytic -1.7808e+1 -1.1753e-2 4.7609e+3 5.5866e+0 7.4295e+1
#       -Range:  0-300
END
TITLE Example 9.--Kinetically controlled oxidation of ferrous
                  iron. Decoupled valence states of iron.
SOLUTION_MASTER_SPECIES
Fe_di              Fe_di+2    0.0     Fe_di              55.847
Fe_tri             Fe_tri+3   0.0     Fe_tri             55.847
SOLUTION_SPECIES
Fe_di+2 = Fe_di+2
        log_k   0.0
Fe_tri+3 = Fe_tri+3
        log_k   0.0
#
# Fe+2 species
#
Fe_di+2 + H2O = Fe_diOH+ + H+
        log_k   -9.5
        delta_h 13.20   kcal
#
#... and also other Fe+2 species
#
Fe_di+2 + Cl- = Fe_diCl+
        log_k   0.14
Fe_di+2 + CO3-2 = Fe_diCO3
        log_k   4.38
Fe_di+2 + HCO3- = Fe_diHCO3+
        log_k   2.0
Fe_di+2 + SO4-2 = Fe_diSO4
        log_k   2.25
        delta_h 3.230   kcal
Fe_di+2 + HSO4- = Fe_diHSO4+
        log_k   1.08
Fe_di+2 + 2HS- = Fe_di(HS)2
        log_k   8.95
Fe_di+2 + 3HS- = Fe_di(HS)3-
        log_k   10.987
Fe_di+2 + HPO4-2 = Fe_diHPO4
        log_k   3.6
Fe_di+2 + H2PO4- = Fe_diH2PO4+
        log_k   2.7
Fe_di+2 + F- = Fe_diF+
        log_k   1.0
#
# Fe+3 species
#
Fe_tri+3 + H2O = Fe_triOH+2 + H+
        log_k   -2.19
        delta_h 10.4    kcal
#
#... and also other Fe+3 species
#
Fe_tri+3 + 2 H2O = Fe_tri(OH)2+ + 2 H+
        log_k   -5.67
        delta_h 17.1    kcal
Fe_tri+3 + 3 H2O = Fe_tri(OH)3 + 3 H+
        log_k   -12.56
        delta_h 24.8    kcal
Fe_tri+3 + 4 H2O = Fe_tri(OH)4- + 4 H+
        log_k   -21.6
        delta_h 31.9    kcal
2 Fe_tri+3 + 2 H2O = Fe_tri2(OH)2+4 + 2 H+
        log_k   -2.95
        delta_h 13.5    kcal
3 Fe_tri+3 + 4 H2O = Fe_tri3(OH)4+5 + 4 H+
        log_k   -6.3
        delta_h 14.3    kcal
Fe_tri+3 + Cl- = Fe_triCl+2
        log_k   1.48
        delta_h 5.6     kcal
Fe_tri+3 + 2 Cl- = Fe_triCl2+
        log_k   2.13
Fe_tri+3 + 3 Cl- = Fe_triCl3
        log_k   1.13
Fe_tri+3 + SO4-2 = Fe_triSO4+
        log_k   4.04
        delta_h 3.91    kcal
Fe_tri+3 + HSO4- = Fe_triHSO4+2
        log_k   2.48
Fe_tri+3 + 2 SO4-2 = Fe_tri(SO4)2-
        log_k   5.38
        delta_h 4.60    kcal
Fe_tri+3 + HPO4-2 = Fe_triHPO4+
        log_k   5.43
        delta_h 5.76    kcal
Fe_tri+3 + H2PO4- = Fe_triH2PO4+2
        log_k   5.43
Fe_tri+3 + F- = Fe_triF+2
        log_k   6.2
        delta_h 2.7     kcal
Fe_tri+3 + 2 F- = Fe_triF2+
        log_k   10.8
        delta_h 4.8     kcal
Fe_tri+3 + 3 F- = Fe_triF3
        log_k   14.0
        delta_h 5.4     kcal
PHASES
Goethite
        Fe_triOOH + 3 H+ = Fe_tri+3 + 2 H2O
        log_k   -1.0
RATES
Fe_di_ox
  -start
  10  Fe_di = TOT("Fe_di")
  20  if (Fe_di <= 0) then goto 200
  30  p_o2 = SR("O2(g)")
  40  moles = (2.91e-9 + 1.33e12 * (ACT("OH-"))^2 * p_o2) * Fe_di * TIME
45 REM H+ + Fe+2 + 0.25 O2 = Fe+3 + 0.5 H2O
50 q = LA("Fe_tri+3") + 0.5*LA("H2O") - (LA("H+") + LA("Fe_di+2") + 0.25*LA("O2")) - LK_SPECIES("Fe+3")
60 moles = moles * (1 - 10^q)

  200 SAVE moles
  -end
END
SOLUTION 1
        pH  7.0
        pe 10.0  O2(g) -0.67
        Fe_di  0.1
        Na  10.
        Cl  10.  charge
KINETICS 1
Fe_di_ox
      -formula  Fe_di  -1.0  Fe_tri  1.0
-cvode
-steps 1e2 1e3 1e4 1e5 1e6 1e7 1e8 1e9 1e10 1e11 1e12
INCREMENTAL_REACTIONS true
USER_GRAPH 1 Example 9
    -headings               _time_ Fe(2) Fe(3) O2 pH pe
    -axis_titles            "Time, in days" "Micromole per kilogram water" "pH"
    -chart_title            "Oxidation of Ferrous Iron"
    -axis_scale x_axis      auto auto auto auto log
    -axis_scale y_axis      auto auto auto auto log
    #-axis_scale sy_axis     4 7 1 1
    -initial_solutions      false
    -connect_simulations    true
    -plot_concentration_vs  x
  -start
10 GRAPH_X TOTAL_TIME / 3600 / 24
20 GRAPH_Y TOT("Fe_di")*1e6, TOT("Fe_tri")*1e6, TOT("O2")
30 GRAPH_SY -LA("H+")
40 GRAPH_SY -LA("e-")
  -end
    -active                 true
SAVE solution 2
END

If you want to reverse the reaction, I think you may need another KINETICS reaction that reduces in the absence of O2 and presence of the reductant, but, it gets complicated depending on the partial equilibrium that you want.
Logged

florisWQ

  • Contributor
  • Posts: 5
Re: Fe_di & Fe_tri -> oxidation and reduction?
« Reply #2 on: 16/09/24 17:25 »
Hi David,

Thanks for the reply, I suspected as much for the reverse reaction. Maybe I'll give this a try when things are less busy (:

Best,

Floris
Logged

dlparkhurst

  • Global Moderator
  • *****
  • Posts: 4067
Re: Fe_di & Fe_tri -> oxidation and reduction?
« Reply #3 on: 17/09/24 00:29 »
I try not use uncoupled redox states if I don't have to. In many cases, I simply add O2 kinetically to oxidize Fe(2) to Fe(3) and then add CH2O to reduce Fe(3) to Fe(2). These reactions do not necessarily oxidize and reduce Fe, rather they oxidize and reduce based on the thermodynamically most favorable reaction. However, for the most part, biological reactions follow the thermodynamically favored reactions (unless you are a microbiologist and get obsessed with all of the intermediate products of biological reactions). In the case I described, Fe(3) will be reduced before SO4 is reduced, until it is thermodynamically favorable to reduce SO4.

Just to add a little more detail. I would treat dissolved oxygen as Oxg (phreeqc.dat) and kinetically convert Oxg to O2, which would produce the Fe(2) oxidation.
« Last Edit: 17/09/24 15:14 by dlparkhurst »
Logged

  • Print
Pages: [1]   Go Up
« previous next »
  • PhreeqcUsers Discussion Forum »
  • Conceptual Models »
  • Kinetics and rate controlling factors »
  • Fe_di & Fe_tri -> oxidation and reduction?
 

  • SMF 2.0.19 | SMF © 2021, Simple Machines | Terms and Policies
  • XHTML
  • RSS
  • WAP2