Flotation bank simulation
ground ore (+ water) -> concentrate + tailings (liberation-resolved first-order kinetics)
Governing equations
The exact equations the solver works for a flotation bank — the same math shown in the app's "Theory" panel, not a black box.
- flotation rate constant of a particle of volume grade v [1/s]
- rate constants of a liberated grain and of liberated gangue [1/s]
- volume grade — the valuable mineral's share of the particle
- fraction of a particle type recovered to the concentrate
- total residence time of the bank [s]
- number of equal mixed cells
- the mineral's volume fraction in the ore and its grain size [m]
- number of grains a particle of size d touches (random cubic lattice)
Parameters
valuable_mineral [required — a key of the feed's solids.psd_minerals], rate_constant_1_s [1/s, required — k for a fully liberated grain], residence_time_s [s, required — the bank's total]; optional gangue_rate_constant_1_s [1/s, default 0], cells [default 1, equal mixed cells], grain_size_m [m — overrides solids.mineral_texture], mineral_density_kg_m3 and gangue_density_kg_m3 [kg/m^3 — override the texture's densities_kg_m3], water_recovery [0..1, default 0 — liquid reporting to concentrate], composite_bins [default 10]. Each size class is resolved into its liberation spectrum (random cubic lattice) and every particle type floats at k = k_gangue + (k_max - k_gangue)·v