Ore particles (green = langbeinite, K₂SO₄·2MgSO₄; grey = halite/clay gangue) are fed into the pulp at the top-left and fall under gravity. Bubbles rise from the sparger at the bottom. A collision between an unattached particle and a bubble attaches it — and lifts it into the froth — with probability driven by real flotation chemistry, not scripted animation:
θ(dose) = K·dose / (1 + K·dose) (Langmuir adsorption isotherm)
f_v = θ · (1 − 0.15·(1 − air)) (valuable floatability)
f_g = 0.22 · (1 − brine/100·0.85) (gangue entrainment, depressed by brine)
size(d) = exp(−(d − 75)² / (2·60²)) (75 µm optimum; too fine misses bubbles,
too coarse detaches under its own weight)
P_attach = f · size(d) (rolled per bubble–particle encounter)
Attached particles ride bubbles into the froth zone, drain briefly, then report to the concentrate launder on the right; unattached particles sink to the tailings. Recovery, grade and mass pull below are a real running mass balance over every particle simulated — not a canned curve — so pushing collector dosage or brine saturation too far reproduces the textbook grade/recovery trade-off: recovery climbs, but grade falls as more gangue reports by entrainment.
- Grade — K₂O+MgO% of everything currently in the concentrate launder (langbeinite ≈43%, gangue ≈2%).
- Size window — real flotation cells have an optimum grind; this model penalizes both under- and over-grinding.