Same governing equations as the 3D screw, rendered two genuinely 2D-native ways instead of a tilted camera view of a helix:
Ideal flow: Q_ideal = V_bucket · (N/60) · f_intake
Leak flow: q_leak = C_d · (gap·2πR_o) · sqrt(2·g·h_pitch)
Vol. eff.: η_vol = 1 − q_leak / Q_ideal
Fill eff.: η_fill = 1 (N≤35) → falls above 35 rpm (splash/inertia)
Overall: η_total = η_vol · η_fill · η_mech
Lift height: H = L·sin(β), P_out = ρgQH, P_in = P_out/η_total
Top panel — bucket ladder. Each discrete water pocket is drawn as a small disc riding a straight incline of slope β from the sump (bottom-left) to the discharge lip (top-right) — exactly the "unrolled helix" a real screw pump is: a chain of chambers advancing one pitch per revolution. Each disc's fill wedge is the actual computed bucket fill fraction, and droplets weep from the underside at a rate set by the real leak fraction (1 − η_vol) — an unrolled ladder is unambiguous about fill level in a way a spinning 3D helix viewed at an angle is not.
Bottom panel — efficiency-vs-rpm curve. A genuinely distinct 2D representation: a parameter-space plot, not a spatial one. η_vol(N), η_fill(N), η_mech(N) and their product η_total(N) are traced as curves over the full 5–60 rpm range at the current tilt/level/gap, with a marker at the live rpm — the curve's own interior peak is the optimal speed, visible directly instead of inferred from a single number.
- Rotation speed — faster turning raises η_vol (less time to leak per revolution) but above ~35 rpm cuts η_fill (splash/inertia); the product peaks in between.
- Tilt angle — steeper lifts more per unit length but raises the hydrostatic head driving leakage.
- Intake water level — how deep the sump end sits; a shallow sump starves every bucket regardless of speed.
- Casing gap — wear clearance between flight tip and trough; wider gaps leak more at every speed.
The "jump to optimal" button here numerically sweeps η_total(N) over the full rpm range at the current tilt/level/gap and jumps to the true argmax — the peak moves with tilt/level/gap, so a single hardcoded rpm cannot track it.