A practical screening method for catching porpoising onset from standard CFD force-time histories — how ADR does it, shared for race engineers and aerodynamicists.
The underbody shows downforce peaks across ride height; whether a peak causes porpoising depends on its force amplitude against the suspension's spring rate. This paper presents the practical screening method we use at ADR: negative kurtosis of the force time series flags the ride heights worth a closer look, confirmed with force traces, the power spectrum, and the 3D flow field.
The Spoon in the Sink
Run the water in your kitchen sink. Angle the tap so the stream runs down the side of the basin, making a sheet of water along the wall. Now hold a spoon vertically, curved side toward the wall, and ease it toward the flow.
The water accelerates through the narrowing gap between the spoon and the wall. Low pressure forms, the same way a wing works. The spoon pulls itself toward the wall. Tap. The gap closes, the flow chokes, the pressure vanishes, and the spoon springs back. The gap reopens, the flow restarts, the low pressure rebuilds. Tap. Tap. Tap. That is porpoising.
The spoon is the car's floor. The sink wall is the road. The water is the airflow. At some critical ride height, the flow breaks down, downforce collapses, springs push the car back up — and the cycle starts again.
Why the Standard Explanation Is Incomplete
The usual shorthand is "ride height sensitivity": the aero load changes rapidly with ride height near the ground. That is true, but it does not by itself explain why one car oscillates while another with similar downforce does not, or why a setup change can make the problem appear or disappear without touching the underbody.
Porpoising onset is not just an aero problem and not just a suspension problem. It is an accessibility problem. The underbody may contain a bistable ride-height band, but the car only porpoises if the suspension lets the chassis move through the full sequence.
The Standing Wave
A single downforce peak creates three zones: a stable region above the peak (a node), the peak itself where the flow is most active and can support two configurations (the antinode), and a stable region below (another node). Node–antinode–node. That is the minimum structure for porpoising.
The node–antinode language is an engineering map, not a claim that the underbody contains a literal acoustic standing wave — it is just a way to mark where the system can rest and where it can flip state.
This is not a CFD artefact. In wind-tunnel tests the diffuser flow switches randomly between high-downforce symmetric and low-downforce asymmetric states at the same ride height, with no change in model settings. The same class of bistability turns up far outside diffusers: in turbulent bluff-body wakes it is Reynolds-independent from Re ~ 10² to 10⁶. When something this robust shows up in that many places, it is a feature of the physics, not the mesh.
How I Hold It in My Head
Forget the flow for a moment and watch only two forces: the downforce pulling the car down, and the spring pushing it back up. While downforce exceeds the spring force, the car goes down. The moment the spring force exceeds the downforce, the car goes up. That is the entire dynamic.
A node is a ride height where downforce holds above the spring force, so the car settles. An antinode is a ride height where downforce has fallen below it, so the spring sends the car away. Same curve seen from two sides, one spring always wanting to bring the car home.
And it is never one source. The underbody is a system — diffuser pair, wing-tip vortices, edge and fence vortices, all coupled, sometimes reinforcing and sometimes cancelling. The standing wave is the interference pattern of that whole sum across ride height. That is why two cars with "the same aero" porpoise differently, and why moving one device a few millimetres can shift the whole wave.
The Condition for Oscillation
The key question is whether the force change at the peak can move the car far enough to reach the adjacent node. If the spring is stiff enough, the chassis barely moves; the spoon twitches but never taps.
ΔFpeak / ksusp ≥ Δhto-node
If this is not met, the standing wave exists in the aerodynamics but the car is mechanically unable to traverse it. No complete traversal, no porpoising.
What We Found in the Data
On an LMP-class vehicle, mapping the force histories with spectral analysis of standard CFD output separated the underbody flow into stable and bistable ride-height bands:
Nodes (stable flow): FRH 15–16 mm, 19–20 mm, 24+ mm
Candidate antinodes (bistable): FRH 13–14 mm, 17–18 mm, 21 mm
Three antinodes, separated by nodes. The primary antinode at FRH 17 mm had the strongest signature, with force oscillation equal to 4.1% of total vehicle load.
The Porpoising Number
For setup work, collapse the idea into a dimensionless number. Per corner:
Π = ε F₀ / (k · Δhnode)
Porpoising becomes mechanically accessible when Π > 1. For the LMP-class vehicle, Π ≈ 0.5 — useful margin. As a practical design target, aim below Π = 0.5. Between 0.5 and 1.0, real-world perturbations matter. Above 1.0, the car is mechanically able to traverse the mode.
The Race Engineer's Playbook
Two defences, one procedure. First, make sure the wheel rate is above kmin. Second, set the bump stop so the car cannot access the full node–antinode–node range. Shake down from the safe side: hard springs and conservative stops first, then soften one step at a time while watching for onset.
Why damping does not remove the root problem. The bistable snap at the antinode is not a smooth sinusoid; it is a fast force transition. A damper resists velocity (Fd = c·v), so at the start of the event it has almost no velocity to work with. By the time velocity builds, the chassis may already have moved through the critical region. And if you over-damp to suppress chassis motion, the energy can reappear at the tire sidewall or contact patch — reduced visible porpoising but degraded grip and safety.
The durable fixes are geometric exclusion or aero modification: springs, ride height, bump stops, and floor stays keep the car out of the dangerous range; underbody development moves the dangerous range itself.
From Map to Root Cause
Once the map identifies an antinode, the aero development process is direct: identify the antinode and its adjacent node, compare the two CFD solutions, use blink comparison and surface diagnostics to find where the topology changes, trace those structures back to the source geometry, and modify to reduce or relocate the bistability. Re-run the map.
Conclusions
This note addresses two audiences. The race engineer asks: how do I set up the suspension so this car does not porpoise? The aerodynamicist asks: how do I change the underbody so the problem is not there in the first place? The standing-wave map serves both.
- Underbody force histories reveal alternating stable and bistable ride-height bands.
- Porpoising requires a complete node–antinode–node sequence inside the accessible range.
- Negative kurtosis is a practical flag for candidate bistability, not a proof — PSD, force traces, and flow-field comparison complete the diagnosis.
- The standing wave existing is necessary but not sufficient: the car must also be mechanically able to traverse it.
- Springs and bump stops control access to the mode. Aero development moves or removes the mode.
Author: Andrew Michael Brilliant, Director of Computational Physics. ADR-RPT-CF91B8EB-197F-47FF-AFD9-E7186BD7D1C4. May 31, 2026. Public Release.
Full references and citations available in the PDF. Download the paper (PDF) →