Hydrogen reduction of iron oxide for iron-fuel cycles
A particle-scale model of how hydrogen reduces hematite to iron, verified against an analytical solution, with an interactive viewer of precomputed simulation results.
- Context
- TU/e coursework, Interfacial Transport Phenomena (4BM60) · 2026
- Role
- Individual project
- Tools
- MATLAB, Python (viewer data)
Interactive
Open the particle viewer
An interactive viewer of precomputed simulation results. Play the reduction, drag through time, and watch the three reaction fronts move through the particle.
Data: transport-inclusive model · 100 µm · 800 °C · pure H₂ · 1 atm
Open viewer →Problem
Iron powder can act as a recyclable, carbon-free fuel. Burning it releases heat and leaves iron oxide, and hydrogen can turn that oxide back into iron to be burned again. The regeneration step sets how large and how hot a reduction reactor must be, so it matters how fast a particle reduces and which mechanism limits the rate.
Above about 570 °C, hydrogen removes the oxygen in three steps, each happening at its own sharp front moving into the particle:
My contribution
An individual coursework project. I built the particle models in MATLAB, verified them, and produced the interactive viewer of the transport-inclusive results.
Approach
I worked with two versions of the model:
- Transport-inclusive model. Includes the external gas film and diffusion through the product layers, as well as the reactions at the three fronts. Over particle sizes of 20–200 µm and 700–800 °C, the reactions took more than 98.5% of the driving force and temperature differences stayed below 0.05 K.
- Reaction-controlled model (final MATLAB model). Because the reactions dominate, it uses the bulk gas composition at every front. Each front then moves at a constant speed, and its position has a closed-form solution.
Base case: a 100 µm hematite particle at 800 °C in pure hydrogen at 1 atm, with initial porosity 0.10. Kinetic constants come from fixed-bed experiments reported by Salucci et al. (2024).
Results
Reaction-controlled MATLAB model
For the base case (100 µm, 800 °C, pure H₂, 1 atm), oxygen removal reaches 50% in 3.0 min, 90% in 11.8 min and 99% in 19.0 min. The hematite is fully converted after 6.2 min, and wüstite dominates in between.
Verification. A single-front version of the numerical solver matches the analytical solution, X = 1 − (1 − t/τ)³, to a relative error of 1.7 × 10⁻¹⁰ in t₉₀. Iron and oxygen are conserved to within 2 × 10⁻¹⁶ and 2 × 10⁻⁶. This verifies the numerical implementation; it does not show that the model matches real particles. Experimental validation would be a separate step.
Transport-inclusive data in the viewer
The viewer shows a separate dataset from the transport-inclusive equations, under the same conditions plus 12 nm pores and a tortuosity of 6.3. It reaches 95% oxygen removal in about 14.6 min. The data was generated by integrating the transport-inclusive equations in Python (SciPy BDF, relative tolerance 10⁻⁷); oxygen balances close to 3.5 × 10⁻⁷. It has not yet been cross-checked against a MATLAB run, and some of its transport and gas-property inputs are provisional, so its times are indicative.
The two models differ, and t₉₀ and t₉₅ are different measures, so the 11.8 min and 14.6 min figures should not be compared directly.
Limitations
- The kinetic constants were fitted on hematite fines smaller than 5 µm; this is the main uncertainty for a 100 µm particle.
- The reaction entropies are placeholders tuned to the Baur–Glässner diagram. They do not matter in pure hydrogen, far from equilibrium, but would with steam in the feed.
- Some transport and gas-property inputs in the viewer dataset are provisional.
- The particle is assumed isothermal, with constant radius and sharp fronts. Below 570 °C the direct Fe₃O₄ → Fe path is not implemented.