Free shear flows — jets, wakes, and mixing layers
Free shear flows — jets, wakes, and mixing layers
Without walls, turbulent flows fall into three canonical shapes (jet, wake, mixing layer), each with a surprisingly clean self-similar solution.
Opening
Chapter 7 covered wall-bounded turbulence — the boundary layer. This chapter widens the view to turbulence without walls. With no wall, there is only one possible source of a velocity gradient: a relative velocity difference between streams of fluid. Flows of this kind sort into three families. By the end of this chapter you will see that the jet leaving a nozzle, the wake behind a car, and the mixing layer where a river meets a lake all share the same mathematical shape.
Main 1 — Three canonical forms
A free shear flow (a shear flow with no wall) falls into one of three categories.
- Jet — fluid issuing into still surroundings. Examples: a gas burner flame, the stream from an inkjet printer.
- Wake — the velocity-deficit region downstream of a body sitting in a uniform stream. Examples: behind a car, behind an aircraft wingtip.
- Mixing layer — the boundary where two parallel streams of different speeds meet tangentially. Example: the surface layer where a river meets the sea.
In all three, the shear (velocity shear) is built purely from speed differences, with no help from a wall, and that shear is what sustains the turbulence. The five properties of turbulence from Chapter 1 — especially diffusivity and vorticity fluctuations — all appear here.
Main 2 — The self-similarity ansatz
The thing the three flows have in common is self-similarity. Let be the downstream coordinate and the cross-stream coordinate. At each , the mean velocity profile can be normalized by a local characteristic centerline velocity and a local characteristic width . Experiment and theory both confirm that the normalized profiles at all downstream stations collapse onto a single function :
Here is the time-averaged velocity, is the representative speed of the cross-section (usually the centerline value), and is the width scale that captures how far the flow has spread. The combination is the dimensionless cross-stream coordinate (eta).
The strength of this ansatz is significant: every cross-section of the flow can be compressed into a single curve . The only thing left to determine is how the two scales and depend on .
Main 3 — Scaling laws for the three flows
We state the results without derivation. The derivation is bundled with the dimensional-analysis material in Chapter 9.
- Round jet:
The width grows linearly with and the centerline velocity decays as .
- Plane wake:
is the free-stream velocity far from the body, and is the velocity deficit. The width grows slowly as , and the deficit fills in slowly as .
- Mixing layer:
The width grows linearly as in the jet, but the characteristic velocity does not depend on .
Why is constant only for the mixing layer? The upper-stream velocity and the lower-stream velocity are set by boundary conditions far upstream. The “characteristic velocity scale” of the mixing layer is fixed externally — it has nothing to do with the internal dynamics of the flow. As grows, and do not change, so the built from their difference is constant.
The jet is different. The momentum flux (momentum per unit time crossing the cross-section) leaving the nozzle is conserved as we move downstream — the surrounding still fluid is entrained, so the mass increases, but the total momentum stays the same. Meanwhile, with the cross-sectional area grows as . For the product to stay constant, we need , i.e. . If the width spreads, the centerline velocity must fall.
In Python
The self-similar mean profile of the round jet is well approximated by the Gaussian . We plot the function and check numerically that its integral equals .
import numpy as np
import matplotlib.pyplot as plt
# Dimensionless cross-stream coordinate η = y / δ(x)
eta = np.linspace(-3, 3, 200)
# Self-similar model for the round-jet mean velocity
f = np.exp(-eta**2)
# Plot the shape
plt.plot(eta, f)
plt.xlabel("η = y / δ(x)")
plt.ylabel("u / U_c")
plt.title("Round jet self-similar profile")
plt.grid(True)
plt.show()
# Integral check used in the momentum-flux conservation argument
integral = np.trapz(f, eta)
print(f"∫ f(η) dη ≈ {integral:.4f}")
print(f"√π ≈ {np.sqrt(np.pi):.4f}")
The printed value is approximately 1.7725, matching . The fact that the integral is finite at all means the profile falls off rapidly toward the edges — that is the starting point for the momentum-flux conservation argument given in Main 3.
To the next chapter
We accepted the self-similar scaling laws as results, not derivations. Chapter 9: Isotropic turbulence and the energy cascade opens up dimensional analysis and Kolmogorov’s 1941 hypothesis to show how large eddies hand energy down to small eddies until viscosity finally dissipates it. The width growth we saw in free shear flows turns out to be one consequence of that same cascade.