Processes > Oxidation and reduction equilibria

Basic question for pyrite reaction

(1/2) > >>

Jeonghwan Hwang:
Hello,
I studied about the O2 consumption by pyrite reation.

I made a simple model as below
The solution 1, 2, and 3 showed same results for pe values.

However, when I used this solution with pyrite, the results of solution 1 was different.
May I ask the reason for this?

One more question, based on following sentence 'If the gas reservoir is finite and the total pressure is constant, as in gas bubbles in estuarine and lake sediments and in groundwater, then a fixed-pressure gas phase should be used.' in EXAMPLE 7.
If I want to simulate the transformation of an unsaturated/oxidized underground environment to a saturated/reduced state, would it be better to apply the fixed_pressure method?

Sincerely,

Jeonghwan Hwang

==============================
SOLUTION 1
units mol/L
Temp   25
pH 7
pe 10.0 O2(g) 0
end

SOLUTION 2
units mol/L
Temp   25
pH 7
EQUILIBRIUM_PHASES 1
O2(g)   0
END

SOLUTION 3
units mol/L
Temp   25
pH 7
GAS_PHASE 1
-fixed_pressure
-pressure       1
O2(g)          0.21965
END

#limited O2 Consumption by pyrite

USE Solution 1
EQUILIBRIUM_PHASES 1
Pyrite   0   1
END

USE Solution 2
EQUILIBRIUM_PHASES 1
Pyrite   0   1
END

USE Solution 3
EQUILIBRIUM_PHASES 1
Pyrite   0   1
END

dlparkhurst:
I think your code did not do quite what you had  in mind for the second two solutions. When you defined SOLUTION 2 ...; EQUILIBRIUM_PHASES 1 ...; END, you are defining a reaction between solution 2 and the equilibrium phases, which react to equilibrium.

The reacted solution has a partial pressure of O2(g) of 1 atm; however, this solution needs to be SAVEd to have it available to react with pyrite. Otherwise, solution 2 remains pure water with a small O2(aq) concentration.

Similarly, SOLUTION 3 reacts with the GAS_PHASE, the bubble of O2(g) partially dissolves to produce a solution with a partial pressure of 1 atm O2(g) and a smaller gas phase volume, but the solution is not saved, so solution 3 remains pure water with very small O2(aq) concentration.

I have added the SAVE statements below. Now all solutions 1-3 have 1 atm partial pressure of O2(g) before they react with pyrite. They each react with the same amount of pyrite to produce pyrite equilibrium.

--- Code: ---SOLUTION 1
units mol/L
Temp   25
pH 7
pe 10.0 O2(g) 0
end

SOLUTION 2
units mol/L
Temp   25
pH 7
EQUILIBRIUM_PHASES 1
O2(g)   0
SAVE solution 2
END

SOLUTION 3
units mol/L
Temp   25
pH 7
GAS_PHASE 1
-fixed_pressure
-pressure       1
O2(g)          0.21965
END

#limited O2 Consumption by pyrite

USE Solution 1
EQUILIBRIUM_PHASES 1
Pyrite   0   1
END

USE Solution 2
EQUILIBRIUM_PHASES 1
Pyrite   0   1
END

USE Solution 3
EQUILIBRIUM_PHASES 1
Pyrite   0   1
END
--- End code ---

Jeonghwan Hwang:

I have one more question.
I want to simulate the equilibrium between groundwater and atmosphere, as below.

I think that the Solution 1 (Use Gas_phases) refers the closed system and Solution 2 (use Equilibrium_phases) refers an open system.
Is it correct?

SOLUTION 1
units mol/L
pH   7.2
pe   -2.42
Temp   15
C   2.20E-03 as HCO3
Ca   2.33E-02
Cl   1.53E-01
Fe   3.31E-05
K   8.75E-04
Mg   9.30E-03
Na   8.88E-02
S   6.80E-03 as SO4
Si   1.85E-04
GAS_PHASE 1
-fixed_pressure
-pressure 1
CO2(g)          0.000308
O2(g)           0.2095
Ntg(g)          0.7808
END

SOLUTION 2
units mol/L
pH   7.2
pe   -2.42
Temp   15
C   2.20E-03 as HCO3
Ca   2.33E-02
Cl   1.53E-01
Fe   3.31E-05
K   8.75E-04
Mg   9.30E-03
Na   8.88E-02
S   6.80E-03 as SO4
Si   1.85E-04
Equilibrium_phases 1
CO2(g)          -3.51
O2(g)           -0.68
Ntg(g)          -0.11
END

Sincerely,

Jeonghwan Hwang

dlparkhurst:
System 1 has a fixed volume of gas initially. The gases will react with the solution and the equlibrium system will have a different volume of gas and different ratios of gas components than the initial atmospheric ratios.

System 2 will maintain constant partial pressures of each of the gas components.

Jeonghwan Hwang:

Thanks to this, I got very close to the model I wanted.

1. I used 'Equilibrium_phases' to create an equilibrium reaction of pyrite, gypsum, quartz, and groundwater in oxidizing environment (attachment file 'Pyrite_Equilibrium').

In this model, groundwater initially reacted with the atmosphere (Ntg, O2, CO2) has a high pe (pe>13, oxidizing environment). Next, after reacting with pyrite, it was confirmed that it returned to pe=-2.2 (reducing environment) and O2 was fully reacted with pyrite.

=================================================================
DATABASE C:\PHREEQC\database\PHREEQC.dat
PHASES
Calcite
CaCO3 = CO3-2 + Ca+2
-log_k   -8.48
-delta_h 0
Gypsum
CaSO4:2H2O = Ca+2 + SO4-2 + 2H2O
-log_k -4.85
-delta_h 0
Siderite
FeCO3 = Fe+2 + CO3-2
-log_k   -10.80
-delta_h 0
Dolomite
CaMg(CO3)2 = Ca+2 + Mg+2 + 2 CO3-2
-log_k   -17.09 #17.90
-delta_h 0
FeS(ppt)
FeS + H+ = Fe+2 + HS-
-log_k   -3.92
-delta_h 0
Fe(OH)3(a)
Fe(OH)3 + 3 H+ = Fe+3 + 3 H2O
-log_k   -4.89
-delta_h 0
EXCHANGE_MASTER_SPECIES
Z   Z-
EXCHANGE_SPECIES
Z- = Z-
log_k   0.0
Z- + Na+ = NaZ
log_K 0.0
Z- + K+ = KZ
log_k 0.6
2Z- + Ca+2 = CaZ2
log_k 0.41
2Z- + Mg+2 = MgZ2
log_k 0.34
SURFACE_MASTER_SPECIES
Mont_wa   Mont_waOH
Mont_wb   Mont_wbOH
SURFACE_SPECIES
Mont_waOH = Mont_waOH
log_k 0
Mont_waOH + H+ = Mont_waOH2+
log_k 4.5
Mont_waOH = Mont_waO- + H+
log_k -7.9
Mont_wbOH = Mont_wbOH
log_k 0
Mont_wbOH + H+ = Mont_wbOH2+
log_k 6.0
Mont_wbOH = Mont_wbO- + H+
log_k -10.5
sELECTED_OUTPUT
-reset false
-file Equilibrium.txt
-solution true
-time true
-pH true
-pe true
-water true
-equilibrium_phases Quartz Pyrite Gypsum
USER_PUNCH
-headings Mont_waO- Mont_waOH Mont_waOH2+ Mont_wbO- Mont_wbOH Mont_wbOH2+ NaZ KZ CaZ2 MgZ2 CO2(g) O2(g) Ntg(g)
10 PUNCH MOL("Mont_waO-") MOL("Mont_waOH") MOL("Mont_waOH2+") MOL("Mont_wbO-") MOL("Mont_wbOH") MOL("Mont_wbOH2+") MOL("NaZ") MOL("KZ") MOL("CaZ2") MOL("MgZ2")
20 PUNCH SR("CO2(g)") SR("O2(g)") SR("Ntg(g)")
end
SOLUTION 1
units mol/L
pH   7.2
pe   -2.42
Temp   15
C   2.20E-03 as HCO3
Ca   2.33E-02
Cl   1.53E-01
Fe   3.31E-05
K   8.75E-04
Mg   9.30E-03
Na   8.88E-02
S   6.80E-03 as SO4
Si   1.85E-04
-water 0.43
Equilibrium_phases 1
CO2(g)          -3.51
O2(g)           -0.68
Ntg(g)          -0.11
Save Solution 1
END
USE Solution 1
EXCHANGE 1
NaZ   1.968
CaZ2   0.246
KZ   0.055
MgZ2   0.109
SURFACE 1
-sites_units absolute
Mont_waOH   0.146
Mont_wbOH   0.146
no_edl
EQUILIBRIUM_PHASES 1
Quartz  0   3.03708
Pyrite   0.0   0.0213
Gypsum   0   0.1876
END
=================================================================

2. Next, I tried to build this model in kinetic ('Pyrite_kinetic')
Based on the Pyrite equation of PHREEQC DB, the  Parm(1) value was changed from 0.3 to 0.75 (log10(0.047[m2/g]*119.85[g/mol])) and modeling was performed.

=================================================================
DATABASE C:\PHREEQC\database\PHREEQC.dat
PHASES
Calcite
CaCO3 = CO3-2 + Ca+2
-log_k   -8.48
-delta_h 0
Gypsum
CaSO4:2H2O = Ca+2 + SO4-2 + 2H2O
-log_k -4.85
-delta_h 0
Siderite
FeCO3 = Fe+2 + CO3-2
-log_k   -10.80
-delta_h 0
Dolomite
CaMg(CO3)2 = Ca+2 + Mg+2 + 2 CO3-2
-log_k   -17.09 #17.90
-delta_h 0
FeS(ppt)
FeS + H+ = Fe+2 + HS-
-log_k   -3.92
-delta_h 0
Fe(OH)3(a)
Fe(OH)3 + 3 H+ = Fe+3 + 3 H2O
-log_k   -4.89
-delta_h 0
RATES
Pyrite
-start
1   REM        Williamson and Rimstidt, 1994
2   REM        PARM(1) = log10(specific area), log10(m^2 per mole pyrite)
3   REM        PARM(2) = exp for (M/M0)
4   REM        PARM(3) = exp for O2
5   REM        PARM(4) = exp for H+
10  REM Dissolution in presence of DO
20  if (M <= 0) THEN GOTO 200
30  if (SI("Pyrite") >= 0) THEN GOTO 200
40  log_rate = -8.19 + PARM(3)*LM("O2") + PARM(4)*LM("H+")
50  log_area = PARM(1) + LOG10(M0) + PARM(2)*LOG10(M/M0)
60  moles = 10^(log_area + log_rate) * TIME * (1-SR("Pyrite"))
200 SAVE moles
-end
EXCHANGE_MASTER_SPECIES
Z   Z-
EXCHANGE_SPECIES
Z- = Z-
log_k   0.0
Z- + Na+ = NaZ
log_K 0.0
Z- + K+ = KZ
log_k 0.6
2Z- + Ca+2 = CaZ2
log_k 0.41
2Z- + Mg+2 = MgZ2
log_k 0.34
SURFACE_MASTER_SPECIES
Mont_wa   Mont_waOHp
Mont_wb   Mont_wbOH
SURFACE_SPECIES
Mont_waOH = Mont_waOH
log_k 0
Mont_waOH + H+ = Mont_waOH2+
log_k 4.5
Mont_waOH = Mont_waO- + H+
log_k -7.9
Mont_wbOH = Mont_wbOH
log_k 0
Mont_wbOH + H+ = Mont_wbOH2+
log_k 6.0
Mont_wbOH = Mont_wbO- + H+
log_k -10.5
sELECTED_OUTPUT
-reset false
-file Kinetic.txt
-solution true
-time true
-pH true
-pe true
-water true
-equilibrium_phases Quartz Gypsum
USER_PUNCH
-headings Mont_waO- Mont_waOH Mont_waOH2+ Mont_wbO- Mont_wbOH Mont_wbOH2+ NaZ KZ CaZ2 MgZ2 CO2(g) O2(g) Ntg(g) Pyrite
10 PUNCH MOL("Mont_waO-") MOL("Mont_waOH") MOL("Mont_waOH2+") MOL("Mont_wbO-") MOL("Mont_wbOH") MOL("Mont_wbOH2+") MOL("NaZ") MOL("KZ") MOL("CaZ2") MOL("MgZ2")
20 PUNCH SR("CO2(g)") SR("O2(g)") SR("Ntg(g)")
30 PUNCH KIN("Pyrite")
end
SOLUTION 1
units mol/L
pH   7.2
pe   -2.422
Temp   15
C   2.20E-03 as HCO3
Ca   2.33E-02
Cl   1.53E-01
Fe   3.31E-05
K   8.75E-04
Mg   9.30E-03
Na   8.88E-02
S   6.80E-03 as SO4
Si   1.85E-04
-water 0.43
Equilibrium_phases 1
CO2(g)          -3.51
O2(g)           -0.68
Ntg(g)          -0.11
Save Solution 1
END
USE Solution 1
EXCHANGE 1
NaZ   1.968
CaZ2   0.246
KZ   0.055
MgZ2   0.109
SURFACE 1
-sites_units absolute
Mont_waOH   0.146
Mont_wbOH   0.146
no_edl
EQUILIBRIUM_PHASES 1
Quartz  0   3.0378
#Pyrite   0.0   0.0213
Gypsum   0   0.1876
KINETICS 1
Pyrite
-tol    1e-8
-m0     0.0213
-m      0.0213
-parms  0.75     0.67     0.5      -0.11
-time 1000 year in 10
End
=================================================================

I think that the results of 1 and 2 should expected to be the same after sufficient times. However, in model 2, the pe was maintained around 8 even after a sufficient time. Looking at the precise results, at 1, the amount of O2 decreased to 10^-68 mol, but at 2 it was about 10^-30 mol. I think that this is the reason.
I want to ask if this reason is correct.

Also, in model 2, I wrote the 'surface complexes', 'cation exchange', 'equilibrium_phases' and 'kinetics' to run simultaneously to implement a complex system. I'd like to ask if there are any potential problems with this approach.