Every grain reacts as a shrinking core: an unreacted ilmenite (FeTiO₃) center shrinks as a shell of solid product (Fe + TiO₂) builds up around it, exactly the geometry chemical engineers use to model gas-solid reactions like this one. For a grain of radius R at local conversion ξ (0→1), the core radius is rc = R·(1 − ξ)^⅓ — visualized directly below as the dark core inside each grain's product shell.
H₂ must cross 3 resistances in series to reach the core:
1) gas film around the grain (τ_film)
2) diffusion through the product shell (τ_diff, grows as the shell thickens)
3) surface reaction at the core (τ_rxn)
dξ/dt = 1 / [τ_film + 2τ_diff·((1−ξ)^-⅓−1) + (τ_rxn/3)·(1−ξ)^-⅔]
τ ∝ ρ_B·R / (k·C_H2) (τ_diff scales as R², the other two as R)
X = ξ · X_eq(T, P) — same reversible-equilibrium ceiling as the bulk reactor
- Temperature — raises both the surface rate constant and the shell diffusivity via independent Arrhenius laws, so hotter batches convert faster and reach a higher equilibrium ceiling.
- H₂ pressure — raises the bulk H₂ concentration driving every resistance, and pushes Xeq up via Le Chatelier.
- Grain size — because shell-diffusion resistance scales with R² while surface reaction scales with R, halving grain size shrinks diffusion-limited batches roughly 4×, not just 2× — a genuinely different scaling law from a single lumped rate constant.
- Rate-limiting step — the pill above compares τ_film, τ_diff and τ_rxn for a mid-size grain live; for most realistic conditions here, the thickening product shell (diffusion) dominates once the core has shrunk substantially, even when surface reaction dominates early on.
The population below spans a log-normal spread of grain radii around the slider's d₅₀ (σ≈0.3 in ln R); the bulk conversion and O₂ readouts are the mass-weighted average of each grain's own, independently-integrated ξ(t) — not a single lumped bulk number. O₂ mass is stoichiometric: each mole of FeTiO₃ (151.7 g/mol) converted and electrolyzed yields ½ mole O₂ (32 g/mol).