This 2D companion does not replay the 3D tank's scripted circulation loop. Instead it synthesises the turbulence itself using Kinematic Simulation — a technique from turbulence research that builds a velocity field as a sum of space-filling Fourier modes, one per length scale in the cascade, from the impeller-sized integral scale L down to the Kolmogorov microscale η, each mode's speed and turnover rate set by real Kolmogorov scaling.
Eddy velocity: u(l) = (ε·l)^(1/3) (Kolmogorov 2nd hypothesis)
Stream field: ψ = Σ A_n·cos(k_n·x − ω_n t + φ_n), u=∂ψ/∂y, v=−∂ψ/∂x (divergence-free)
Local strain: γ̇ = √(2·(S11²+S22²+2·S12²)) analytic ∂u/∂x of the same sum
Critical shear: γ̇_crit = ν / d_cell² (η(ε)=d_cell solved for γ̇=√(ε/ν))
Every cell particle samples the actual field at its own position each frame, differentiates it analytically to get a real local strain rate, and accumulates shear damage only when that instantaneous value exceeds γ̇_crit — a Lagrangian cumulative-exposure model, the same style CFD-based bioprocess studies use, rather than a lookup into the closed-form viability curve. The two viability numbers are independent computations of the same physics and should track each other once η drops near the cell size.
- Impeller speed / vessel scale — set ε via the same power-draw law as the 3D tank (P = N_p·ρ·N³·D⁵), which sets both η and how far down the cascade extends.
- Viscosity — raises ν, which raises η directly and also raises γ̇_crit, partly compensating.
- Inject tracer dye — releases tracer particles at the impeller and measures mixing time as the first moment the tracer's spatial distribution (a 6×6 bin count) reaches near-uniform coefficient of variation — a real dispersion measurement, not a cosmetic timer.
The quiver arrows show the instantaneous flow field sampled on a coarse grid — genuine numbers read directly off the Fourier-mode superposition, not decoration.