English · 中文
Convert a measured slurry density into volume concentration, mass concentration, dry-solids tonnage and in-situ bank volume. Pure Python, no dependencies, unit tested against a published worked example.
Written for dredging and mineral processing, where a density meter's output has to become the number a contract settles on.
python -m slurrycalc --density 1.30 --material "quartz sand" --flow 7000 --seawater carrier density 1.025 t/m3
solids density 2.650 t/m3 (quartz sand, indicative)
mixture density 1.300 t/m3
volume conc. Cv 16.92 %
mass conc. Cw 34.50 %
dry solids 3139.2 t/h
sensitivity 0.01 t/m3 of density error = 3.6 % of production
Or as a library:
from slurrycalc import dry_solids_rate, volume_concentration, WATER_SEA
cv = volume_concentration(rho_m=1.30, rho_s=2.65, rho_w=WATER_SEA) # 0.1692
tph = dry_solids_rate(flow_m3h=7000, rho_m=1.30, rho_s=2.65, rho_w=WATER_SEA)With rho_m measured, rho_w the carrier, rho_s the solid particles:
Cv = (rho_m - rho_w) / (rho_s - rho_w) volume fraction
Cw = Cv * rho_s / rho_m mass fraction
P = Q * Cv * rho_s dry solids, t/h
Vb = Q * Cv / (1 - n) bank volume, m3/h
Full derivation and worked example: https://www.pisonics.com/guides/dredge-production-calculation-density-flow
Ranked, because it is rarely what people argue about:
- Density measurement error dominates. Differentiating
Cvshows it is amplified by1 / (rho_s - rho_w). On sand at 1.30 t/m³ in seawater, 0.01 t/m³ of density error is about 3.6 % of reported production.production_error_from_density_error()computes this for your case. - Assumed solids density is a silent bias. Everyone writes 2.65 for sand.
Clay, silt, mixed spoil and shell content are not 2.65. An assumption 3 %
high puts a 3 % bias into every tonne, for the whole job. The
SOLIDStable here is indicative only — confirm against your own material. - Entrained air under-reports. Air lowers mixture density, so production reads low during air ingress — the direction that costs the contractor.
- Flow measurement, usually the smallest, provided the pipe runs full.
bank_volume_rate() needs in-situ porosity n, which is almost always assumed
rather than measured. That assumption, not the instrument, is why bank-volume
settlements are disputed more often than tonnage ones. If your contract is
written in bank cubic metres, agree the porosity figure in advance and in
writing.
python tests/test_slurrycalc.pyThe tests pin the published worked example, check the round trip, and assert the sensitivity figure quoted above — so the documentation and the code cannot drift apart silently.
Pisonics builds inline density and concentration meters for dredging, mining, power and chemical processing. The PS7000 measures slurry density by acoustic impedance across DN50–DN1000 with no radioactive source — see also non-nuclear density meters for dredgers.
MIT licensed.