Sodium-form zeolite (or strong-acid cation) resin carries exchangeable Na+ on its surface. As hard water percolates through the bed, the resin's affinity for divalent ions drives the exchange reaction:
2 Na-Resin + Ca²⁺ (or Mg²⁺) ⇌ Ca-Resin₂ + 2 Na⁺
Total resin capacity is fixed (eq per litre of bed), so every equivalent of hardness removed consumes capacity. The exhausted zone starts at the water inlet and grows downward as a front; once it reaches the outlet, untreated hardness "leaks" through and the effluent curve rises — this simulator models that as a logistic breakthrough centred near 92% of capacity used, with the transition width widening at higher flow rate (shorter contact time spreads the real mass-transfer zone). Regenerating with concentrated NaCl brine reverses the reaction by mass action, restoring the bed to the Na-form and resetting the front to the inlet. Simulated time runs at roughly 240× real time so a full exhaustion-to-regeneration cycle plays out in well under a minute.
- Column — green (fresh Na-resin) fading to amber (Ca/Mg-loaded resin) as the exhaustion front descends; ion dots switch color when they cross it.
- Breakthrough curve — effluent hardness plotted against cumulative bed volumes treated for the current cycle.