Softening resin is a sulfonated polystyrene bead pre-loaded with sodium. Hardness ions displace the weaker-held Na⁺ because the resin binds divalent cations more strongly:
2 R–SO₃⁻Na⁺ + Ca²⁺ ⇌ (R–SO₃⁻)₂Ca²⁺ + 2 Na⁺
As feed water flows down through the packed bed, exchange doesn't happen uniformly — a narrow mass-transfer zone (MTZ) forms and travels downward. Resin above the MTZ is fully Ca²⁺-loaded (exhausted); resin below it is still fresh Na⁺-form. Effluent stays essentially hardness-free until the MTZ reaches the bottom of the bed, then hardness "breaks through" and rises quickly. This simulation uses the standard Thomas model for a fixed-bed breakthrough curve:
C(t)/C₀ = 1 / (1 + exp[k_Th·(q₀ − C₀·BV(t))])
BV(t) = bed volumes of water treated so far
q₀ = resin capacity ÷ feed hardness → BV at 50% breakthrough
k_Th = rate constant — larger for smaller beads (shorter
intraparticle diffusion path → sharper front)
- Flow rate — higher throughput means the bed volumes counter climbs faster, but the MTZ shape stays the same; the whole curve just plays out sooner.
- Feed hardness — a higher Ca²⁺/Mg²⁺ concentration burns through the same fixed resin capacity in fewer bed volumes, so breakthrough (BV₅₀ = q₀/C₀) arrives earlier.
- Bead diameter — smaller beads shorten the diffusion path inside each particle, sharpening (steepening) the breakthrough front; larger beads spread it into a broader, earlier-leaking MTZ.
- Regenerate — flushing with concentrated NaCl brine reverses the exchange by mass action (a large excess of Na⁺ drives the equilibrium back), restoring the bed to Na⁺-form for another service cycle. Real softeners repeat this automatically once resin capacity is exhausted.