The 3D barrier simulator assumes the tidal flow Q stays fixed and simply divides it by the shrinking open area (Q = A·v), which forces velocity up as the last gap narrows. This 2D companion asks a different, independent question — what actually sets the water's velocity as it squeezes under a lowering sluice gate? — and computes it from first principles instead of assuming Q is constant.
1. Jet velocity comes from the driving head, not the gap size (Torricelli/Bernoulli). For flow discharging under a sluice gate, the jet speed at the vena contracta is set by the upstream head H above the sill:
v = Cᵥ·√(2gH) (Cᵥ ≈ 0.97, velocity coefficient)
Notice a (the gate opening) does not appear — velocity is almost independent of how far the gate has closed. What the opening size controls instead is discharge:
Q_gate = Cd·a·√(2gH) (Cd = Cᵥ·Cc ≈ 0.60, Cc ≈ 0.62 vena-contracta coefficient)
2. Closing the gates chokes discharge, which raises the head (mass balance). The basin behind the barrier is a reservoir of surface area Abasin; its level obeys a genuine ODE, integrated live every frame with RK4:
dH/dt = (Q_in − Q_out(H,A_open)) / A_basin, Q_out = Cd·A_open(t)·√(2gH)
As the total open area A_open(t) shrinks, Q_out falls below Q_in, so H climbs — and it's that rising head, not the shrinking area directly, which pushes the Torricelli jet velocity up. A numerical mass-balance check (∫Q_in dt − ∫Q_out dt = A_basin·ΔH) holds to better than 1 part in 10⁸ in this engine's own self-test.
3. The real strategy difference is local, not aggregate — and it's the opposite of naive intuition. Summed over all gates, the total open area A_open(t) is exactly identical whether the gates close one-by-one (edge-first) or all together (synchronized) — provably, since a staircase of N offset linear ramps sums to the same overall ramp. So the basin head H(t) and the mean jet velocity are strategy-independent. What differs is which gate is narrowest at any instant. In sequential closure only one gate is ever mid-closure while the rest are already fully sealed or fully open — so near the end, that single gate must carry all the remaining open area alone, keeping it comparatively wide. In synchronized closure, all N gates share the same shrinking opening, so each one narrows to just 1/N of that width. Since the local Froude number scales as 1/√a at fixed head:
Fr = v / √(g·Cc·a) ⇒ Fr_synchronized / Fr_sequential = √N (verified numerically to 4 digits)
Synchronized closure therefore produces a local choke √N times sharper than sequential closure at the narrowest point — the reverse of what the 3D model's fixed-Q assumption implies, because that model concentrates the entire flow into whichever single gate closes last, while this head-driven model shows spreading the closure across every gate simultaneously is what actually starves each individual gap the hardest. Both are legitimate, verifiable physics — they just hold different things fixed (total flow vs. driving head), a genuine subtlety in real barrier engineering.