PHREEQC from Scratch #6: Pyrite Oxidation and AMD Formation

Simulate the formation of Acid Mine Drainage (AMD) caused by the irreversible oxidation of pyrite. Learn how to use the REACTION block and INCREMENTAL_REACTIONS to model stepwise pH drops and goethite precipitation.
Geochemistry
PHREEQC
Groundwater
Environment
English
Author

DeepFlow

Published

April 12, 2026

What is Acid Mine Drainage (AMD)?

Acid Mine Drainage (AMD) is one of the most severe environmental problems associated with mining. It occurs when sulfide minerals—most notably Pyrite (\(\mathrm{FeS_2}\))—are exposed to oxygen and water, oxidizing to produce highly acidic, metal-rich runoff.

Characteristics of AMD
pH: 1 to 3 (Strongly Acidic)
High Fe and SO₄ Concentrations
Reddish-brown Precipitates (Goethite)

The Chemistry of Pyrite Oxidation

The oxidation of pyrite proceeds in sequential stages:

Stage 1: Direct Oxidation by \(\mathrm{O_2}\)

\[\mathrm{FeS_2 + \frac{7}{2}O_2 + H_2O \rightarrow Fe^{2+} + 2SO_4^{2-} + 2H^+}\]

Stage 2: Oxidation of \(\mathrm{Fe^{2+}}\)

\[\mathrm{Fe^{2+} + \frac{1}{4}O_2 + H^+ \rightarrow Fe^{3+} + \frac{1}{2}H_2O}\]

Stage 3: Accelerated Oxidation by \(\mathrm{Fe^{3+}}\) (Autocatalysis)

\[\mathrm{FeS_2 + 14Fe^{3+} + 8H_2O \rightarrow 15Fe^{2+} + 2SO_4^{2-} + 16H^+}\]

Stage 4: Precipitation of Goethite

\[\mathrm{Fe^{3+} + 2H_2O \rightarrow FeOOH\downarrow + 3H^+}\]

NoteWhat is Autocatalysis?

In Stage 3, the generated \(\mathrm{Fe^{3+}}\) acts as an oxidant to further dissolve pyrite. This creates a positive feedback loop: \(\mathrm{FeS_2 \rightarrow Fe^{2+} \rightarrow Fe^{3+} \rightarrow}\) more \(\mathrm{FeS_2}\) oxidized. Once this reaction starts, it accelerates exponentially, which is why AMD is notoriously difficult to stop.


Introducing the REACTION Block

So far, we have used EQUILIBRIUM_PHASES, which instructs PHREEQC to “react until equilibrium is reached.” Today, we introduce the REACTION block. This block is used for irreversible reactions, where a specified amount of a substance is forcibly added to the solution, regardless of equilibrium.

Feature EQUILIBRIUM_PHASES REACTION
Reaction Type Reversible (Equilibrium) Irreversible (Forced Addition)
End Condition When SI = 0 is reached When specified amount is fully added
Common Uses Mineral dissolution/precipitation Oxidation, combustion, titration
Application to Pyrite Unsuitable (backward reaction might occur) ✅ Highly Suitable

The oxidation of pyrite is thermodynamically irreversible under earth surface conditions—once it dissolves and oxidizes, it does not easily turn back into \(\mathrm{FeS_2}\). Therefore, we use REACTION.


The Role of INCREMENTAL_REACTIONS

The most critical command in this tutorial is INCREMENTAL_REACTIONS true.

❌ false (Default)
Each step is treated as a cumulative addition to the initial solution.
Intermediate goethite precipitation is ignored, failing to reproduce the correct reaction pathway.
✅ true (Used Here)
Each step is treated as an increment from the previous step.
EQUILIBRIUM_PHASES is evaluated at every step, allowing goethite to precipitate exactly when it becomes supersaturated.
ImportantForgetting INCREMENTAL_REACTIONS

If you include Goethite 0 0 in EQUILIBRIUM_PHASES but forget INCREMENTAL_REACTIONS true, the SI of goethite might remain supersaturated without precipitating across the steps, yielding completely unrealistic results. Always use them together.


Full PHREEQC Code

# ============================================================
#  DeepFlow #6 - Pyrite Oxidation and AMD Formation
#  Requires INCREMENTAL_REACTIONS true
# ============================================================

SOLUTION 1  "Carbonate Groundwater"
    temp      25
    pH        7
    pe        4
    units     mol/kgw
    Ca        1.5e-2      # 15 mmol/kg (Typical limestone groundwater)
    -water    1

EQUILIBRIUM_PHASES 1
    CO2(g)    -3.5   10   # Equilibrium with atmospheric CO2 (pCO2 = 10^-3.5 atm)
    Goethite   0.0    0   # Goethite precipitation sink (Amount=0)
    Gypsum     0.0    0   # Gypsum precipitation sink (Amount=0)

REACTION 1
    FeS2   4              # Pyrite stoichiometry
    O2    15              # Oxygen

    # Stepwise addition (moles)
    0.0001  0.0003  0.0005  0.001
    0.002   0.005   0.010   moles

INCREMENTAL_REACTIONS  true     # ← Mandatory!

SELECTED_OUTPUT 1
    -file        pyrite_oxidation.sel
    -pH          true
    -pe          true
    -totals      Fe  S  Ca
    -molalities  Fe+2  Fe+3  SO4-2
    -saturation_indices  Goethite  Gypsum  Pyrite
    -equilibrium_phases  Goethite

END
NoteA Note on Gypsum

We omitted Gypsum 0 0 from this simulation because typical groundwater \(\mathrm{Ca^{2+}}\) concentrations won’t reach gypsum supersaturation here. Gypsum precipitation during AMD is generally only observed in highly concentrated environments where both \(\mathrm{SO_4^{2-}}\) and \(\mathrm{Ca^{2+}}\) are extremely abundant.


Results and Interpretation

Output Data (pyrite_oxidation.sel)

Below is the actual output processed with INCREMENTAL_REACTIONS true.

Step pH pe Fe (mol/kg) SO₄ (mol/kg) SI_Goethite d_Goethite
1 2.865 15.54 4.2e-9 8.0e-4 0.000 4.0e-4 Precipitating
2 2.291 16.35 2.3e-7 3.2e-3 0.000 1.2e-3 Precipitating
3 1.973 16.81 3.3e-6 7.2e-3 0.000 2.0e-3 Precipitating
4 1.695 17.21 3.7e-5 1.5e-2 0.000 4.0e-3 Precipitating
5 1.440 17.59 3.5e-4 3.1e-2 0.000 7.6e-3 Precipitating
6 1.173 17.98 3.7e-3 7.1e-2 0.000 1.6e-2 Precipitating
7 0.988 18.27 2.2e-2 1.5e-1 0.000 2.1e-2 pH < 1! High Hazard

Visualizing the pH Drop

pH vs. Pyrite Addition Step (Simulated Data)
3 2 1 0 pH 1 2 3 4 5 6 7 Pyrite Addition Step → Goethite Precipitating (SI = 0 throughout all steps)
As pyrite is added, the pH drops steeply from Step 1 (pH 2.87) to Step 7 (pH 0.99). Goethite continuously precipitates throughout the entire process.

Discussion

1. Mechanism of the pH Drop

The pH plummets from 2.87 to 0.99. This is due to the continuous generation of \(\mathrm{H^+}\) during pyrite oxidation. The drop accelerates after step 4 (cumulative pyrite > 1 mmol), which is a direct signature of \(\mathrm{Fe^{3+}}\) accumulating and triggering the autocatalytic oxidation cycle.

2. Precipitation of Goethite

From Step 1 to the final step, SI_Goethite = 0.000 is maintained, and d_Goethite (delta/amount transferred) is consistently positive. This means goethite is constantly precipitating.

The cycle is relentless: Pyrite Oxidizes \(\rightarrow\) \(\mathrm{Fe^{3+}}\) is generated \(\rightarrow\) It immediately precipitates as Goethite \(\rightarrow\) Releasing even more \(\mathrm{H^+}\). This continuous precipitation of goethite is what dyes AMD rivers their characteristic reddish-brown (often referred to as “yellow boy”).

NoteWhy is Dissolved Fe So Low?

Notice that dissolved Fe (mol/kg) is exceptionally low (e.g., 4.2e-9 mol/kg in step 1). This is because the generated \(\mathrm{Fe^{3+}}\) precipitates as goethite almost instantaneously. Even at Step 7, where pH drops below 1, dissolved Fe is only 2.2e-2 mol/kg due to this thermodynamic sink.

3. The Rise of ‘pe’

The pe (negative logarithm of electron activity) increases steadily from 15.54 to 18.27. A higher pe indicates a strongly oxidizing environment. Because we are forcibly supplying \(\mathrm{O_2}\) in the REACTION block, the oxidative power of the solution intensifies as the simulation proceeds.


Simulating AMD Neutralization

A common treatment for AMD is neutralization using crushed limestone (calcite) to raise the pH. We can simulate this using the output from Step 7:

# ============================================================
#  AMD Neutralization Simulation
#  Run this as a continuation of the previous code
# ============================================================

SAVE solution 1    # Save the highly acidic final solution
# *IMPORTANT:* Place the SAVE command BEFORE the first END!

USE solution 1

EQUILIBRIUM_PHASES 2
    Calcite   0   10    # Add excess calcite to restore pH

SELECTED_OUTPUT 2
    -file        amd_neutralization.sel
    -pH          true
    -totals      Fe  Ca
    -saturation_indices  Goethite  Calcite

END

By adding calcite, the pH is neutralized, forcing any remaining dissolved iron to precipitate as goethite. Check amd_neutralization.sel to observe the dramatic pH recovery.


Summary of Key Takeaways

REACTION
Defines irreversible reactions to forcibly add specific moles of reactants.
INCREMENTAL_REACTIONS
Evaluates equilibrium at each step. Essential for accurately modeling reaction pathways.
TipNext Time: #7 Solubility Diagrams (Gibbsite)

Next, we will explore the Fix_H+ technique within the PHASES block to artificially lock the pH at various values. We will calculate the solubility of aluminum across pH 3 to 14, visualizing the amphoteric nature of Gibbsite in a comprehensive solubility diagram.


References

Appelo, CAJ, and Dieke Postma. 2005. Geochemistry, Groundwater and Pollution. Second. Balkema, Rotterdam, p. 634.
Parkhurst, David L, and CAJ Appelo. 2013. Description of Input and Examples for PHREEQC Version 3—a Computer Program for Speciation, Batch-Reaction, One-Dimensional Transport, and Inverse Geochemical Calculations. US Geological Survey Techniques; Methods, book 6, chap. A43, 497 p.
Yamamoto, S. 1983. Method of the Groundwater Survey. Kokon Shoin, Tokyo (in Japanese), 490 p.
Yang, Heejun, T Mishima, S Katazakai, and M Kagabu. 2023. “Analytical Approach Using a Chemical Equilibrium Formula and Geochemical Modeling for Alkalinity Measurements of Small Natural Water Samples.” Applied Geochemistry 148: 105535.

Other articles in this series:


DeepFlow | Science beneath the surface