What is CFD?
Computational Fluid Dynamics (CFD) is the numerical solution of the Navier-Stokes equations: the partial differential equations that govern the motion of fluid. Instead of building a physical prototype and measuring forces in a wind tunnel, CFD divides the domain into thousands or millions of discrete cells (a mesh), then solves for velocity and pressure at each cell center using iterative matrix algebra.
For a soccer ball in flight, CFD provides:
- Drag coefficient $C_d$: how much the ball slows down
- Lift coefficient $C_l$: how much it curves (Magnus effect)
- Separation point: where the boundary layer detaches, determining wake size and pressure drag
- Strouhal number $St$: the frequency of vortex shedding (knuckleball jitter)
Steady vs Unsteady: A steady simulation assumes the flow does not change in time: one solution captures the time-averaged behaviour. An unsteady simulation marches forward in small time steps, resolving transient phenomena like vortex shedding. The knuckleball is inherently unsteady; a spinning Magnus shot can be approximated as steady because the wake locks into a fixed asymmetric pattern.
Laminar vs Turbulent: At soccer-relevant Reynolds numbers ($Re \approx 2 \times 10^4$ to $5 \times 10^5$), the flow can be either laminar (smooth, ordered) or turbulent (chaotic, mixing). A RANS (Reynolds-Averaged Navier-Stokes) model like SST $k$-$\omega$ solves for the mean flow and models the turbulent fluctuations. A laminar simulation solves the raw Navier-Stokes without a turbulence model: accurate at low Re, but unable to capture turbulence at high Re without extreme grid resolution (DNS).
This project uses two solvers at different fidelity levels to bracket the real physics, exactly as industrial aerospace teams operate.
Governing Equations
Navier-Stokes
All CFD simulations in this project (both ΦFlow and SU2) solve the incompressible Navier-Stokes equations, which enforce conservation of mass and momentum at every point in the fluid:
where $\mathbf{u}$ is the velocity field, $p$ is pressure, $\rho$ is density, and $\nu$ is kinematic viscosity.
Reynolds Number
The governing dimensionless parameter for all flows considered:
where $U$ is the freestream velocity, $L$ is the characteristic length (ball diameter or cylinder diameter), and $\mu$ is dynamic viscosity.
Bernoulli's Principle
Bernoulli's principle states that in a steady, inviscid flow, an increase in velocity occurs simultaneously with a decrease in pressure. It follows directly from conservation of energy along a streamline:
where $p$ is static pressure, $\frac{1}{2} \rho U^2$ is the dynamic pressure, and their sum is the total pressure. When velocity increases, static pressure decreases. This inverse relationship is what generates the lift force in the Magnus effect and the drag reduction in drafting.
On a soccer pitch, Bernoulli's principle explains three separate phenomena. A spinning ball curves because the spin accelerates the air on one side, lowering static pressure and creating a net force (the Magnus effect, detailed below). A knuckleball moves unpredictably because alternating vortex shedding creates rapidly changing pressure differentials across the ball. When a fullback runs directly behind a winger, they sit in the leader's low-pressure wake, reducing the pressure differential across their own body and lowering drag by 42.2% (analysed in the Overlap Run Analysis).
Gaussian Influence Fields
Every defender generates a zone of influence around their position. The strength of that influence decays smoothly with distance following a Gaussian (bell-shaped) curve:
where $\mathbf{x}_i$ is the defender's position and $\sigma_i$ controls the radius of influence. A centre-back with $\sigma = 4.0$ exerts wide zone control spanning the penalty area. A winger with $\sigma = 2.5$ has a narrow, concentrated influence reflecting their touchline role. The total pressure at any point on the pitch is the sum of all 11 individual influence fields:
This is the superposition principle: the same mathematical framework used in CFD to solve complex flow fields. In potential flow theory, the velocity at any point is the sum of contributions from all sources, sinks, and vortices. Here, the pressure at any point is the sum of contributions from all 11 defenders. The result is a 2D kernel density estimate of the defending team's spatial structure, a heatmap that reveals exactly where space exists and where it is congested.
Magnus Effect
A rotating body in a crossflow experiences a lift force perpendicular to the freestream:
The spin creates an asymmetric boundary layer: faster flow on one side reduces pressure (Bernoulli), slower flow on the other increases pressure. The resulting pressure differential deflects the body's trajectory.
The same mathematical tools used to model fluid flow can be applied to team formations on a football pitch. Positional play creates pressure gradients, areas of congestion and space, that determine passing options and defensive solidity. Just as a pressure field drives fluid motion, the cumulative influence of 11 defenders creates a defensive stress field that channels attackers away from dangerous areas. The superposition equations ((4)–(5)) define how those individual player influences combine into a total defensive pressure field. The full model is implemented on the Tactical Positioning page.