Wave 53: Laminar-Turbulent Transition, Islamic Geometry & Blasius Boundary Layer

Three additions spanning fluid mechanics and geometric art: an animated Reynolds dye-injection experiment showing channel-flow transition from laminar to turbulent with parabolic and 1/7-power velocity profiles; an interactive Islamic geometric star-polygon tessellation generator with six historical colour palettes; and the analytical Blasius flat-plate boundary layer with RK4 ODE solving, δ(x) growth, and skin-friction coefficients.

Wave 53 at a glance

3
new simulations
6
HTML files
535
total simulations
1
blog post

Laminar to Turbulent

Reynolds dye experiment—particle streams show crisp laminar bands below Re 2300, then chaotic mixing above. Parabolic vs 1/7-power velocity profiles.

Open simulation →

Islamic Geometric Patterns

{n/k} star polygon tessellation on square or hexagonal grids. Six historical palettes (Alhambra, Ottoman, Girih, Mughal…), four presets, PNG export.

Open simulation →

Blasius Boundary Layer

Analytical solution of f‴ + ½ff″ = 0. Visualises δ₉₉(x) growth, velocity profiles at four x-stations, and computes Cf and τw for water or air.

Open simulation →

〜 Laminar to Turbulent Transition

In 1883 Osborne Reynolds injected a thin thread of dye into a pipe and varied the flow speed. Below a critical velocity the dye formed a perfectly straight filament — laminar flow. Above a threshold the filament suddenly broke up and mixed across the entire pipe cross-section — turbulent flow. The dimensionless parameter governing the transition is the Reynolds number:

Re = ρ U D / μ = U D / ν — ratio of inertial to viscous forces. For pipe flow transition occurs near Re ≈ 2300. For flat-plate flow transition begins around Re ≈ 5 × 10⁵.

Laminar velocity profile

For steady, fully developed laminar flow in a circular pipe (Hagen-Poiseuille flow), the velocity profile is exactly parabolic:

u(r) = umax (1 − r²/R²)

where r is the radial distance from the pipe centreline and R is the pipe radius. The maximum velocity at the centreline is twice the cross-sectional mean: umax = 2 Ū. All fluid elements travel in straight, parallel paths — no mixing occurs.

Turbulent velocity profile

In fully turbulent pipe flow (Re ≫ 10 000) the time-averaged velocity profile is much flatter. The empirical 1/n power law gives a good approximation:

u(r)/uc ≈ (1 − r/R)1/n

where n ≈ 7 for Re ~ 10⁵. Superimposed on this mean profile are turbulent velocity fluctuations u′(t) and v′(t). Their root-mean-square magnitude relative to the mean is the turbulent intensity I = urms/Ū, typically 5–15% in well-developed turbulence.

The simulation uses particle tracers: coloured streams enter from the left. In laminar mode their paths remain straight and colour bands never mix. As Re crosses the transition threshold, v-component fluctuations scatter particles across the channel, reproducing the dye mixing seen in Reynolds' original experiment.

✦ Islamic Geometric Patterns

Islamic geometric art — found in mosques, palaces and manuscripts from Andalusia to Central Asia — is built from a small vocabulary of interlocking star polygons, rosettes and connector tiles. The patterns exhibit perfect translational and (locally) rotational symmetry while leaving no gaps or overlaps.

{n/k} star polygons

A regular star polygon {n/k} is drawn by placing n equally spaced points on a circle and connecting every k-th point. The notation was introduced by Schläfli. Key examples:

When gcd(n, k) = g > 1, the star polygon decomposes into g separate closed paths each visiting n/g vertices. When gcd(n, k) = 1, a single path visits all n points. Both cases are handled correctly in the generator.

Tiling logic

The generator places star centres on either a square lattice (spacing d) or a hexagonal lattice (dx = d, dy = d√3⁄2 with alternating row offset). For each centre the {n/k} polygon paths are drawn and optionally filled. A smaller regular n-gon at the centre (radius ≈ 0.45 R) provides the inner fill region at reduced opacity, mimicking the contrast between the star body and the surrounding connector tiles.

Six historical colour palettes are available: Islamic Gold (amber and ochre), Alhambra (forest green), Ottoman Blue (cobalt and sky), Moroccan Terracotta (burnt sienna), Mughal White (off-white on black), and Neon Night (violet on near-black). The finished pattern can be exported as a lossless PNG.

〰 Blasius Boundary Layer

When a viscous fluid flows over a solid surface, the no-slip boundary condition forces the fluid velocity to zero at the wall. A thin layer — the boundary layer — develops in which velocity rises from zero to the freestream value U∞. Outside this layer the flow is essentially inviscid.

Blasius equation

In 1907–1908 Heinrich Blasius (a student of Prandtl) showed that for steady laminar flow over a semi-infinite flat plate the Navier-Stokes equations reduce, under boundary layer approximations, to a single third-order nonlinear ODE via the similarity variable η = y √(U∞ / νx):

f‴ + ½ f f″ = 0   with   f(0) = f′(0) = 0, f′(∞) = 1

Here f′(η) = u/U∞ is the dimensionless velocity profile. The solution is universal — all flat-plate laminar boundary layers collapse onto this single curve when plotted against η.

Shooting method and RK4

The boundary condition f′(∞) = 1 is not given at η = 0, so it cannot be integrated directly. Instead the shooting method is used: guess an initial value α = f″(0) ≈ 0.4696 (the well-known Blasius wall-shear constant), integrate forward with RK4 at step Δη = 0.02, and verify that f′ → 1 as η → 12. The resulting solution table is used at runtime via linear interpolation to evaluate u/U∞ at any (x, y) point on the canvas.

Key results

The Blasius solution is valid only for laminar flow — the local Reynolds number Rex = U∞ x / ν must stay below ~5 × 10⁵. Above this threshold the boundary layer transitions to turbulence and the Blasius similarity solution breaks down. The simulator computes ReL for the full plate and shows only the laminar Blasius profiles; for ReL ≫ 5 × 10⁵ the downstream portion of the plate would actually be turbulent.

The canvas shows the flat plate at the bottom with the δ₉₉(x) boundary layer envelope (orange fill), velocity profiles u/U∞ at four x-stations (white curves), and freestream arrows above the layer. Switching between water (ν = 1 × 10⁻⁶ m²/s) and air (ν = 1.5 × 10⁻⁵ m²/s) immediately updates the boundary layer thickness and skin friction values.

Questions or suggestions? Reach out via the contact page.

← Devlog #72 — Wave 52 All posts