Coursework
High-Fidelity CFD of the ONERA M6 Wing
AAE 412 final project: transonic turbulent CFD of the ONERA M6 wing in ANSYS Fluent, validated against NASA test data.
The final project for AAE 412, completed as a team of three. The ONERA M6 is a swept, tapered wing with no twist. Its 1972 wind tunnel data is unusually clean, which is why it has been used for decades to check whether a CFD model can be trusted.
We ran four cases in ANSYS Fluent:
- Cases 1 and 2: Mach 0.84, Reynolds number 14.6 million, at 3.06° and 6.06° angle of attack — NASA’s Case 2308 and Case 2565 — validated against test data
- Cases 3 and 4: the same angles of attack and Reynolds number at Mach 0.5, outside the transonic regime, as a baseline for comparison
Structured versus unstructured meshes, in plain terms
CFD starts by slicing the air around the wing into a very large number of small cells, then solving the flow equations in each one. There are two main ways to lay those cells out.
A structured mesh is like neat graph paper: cells sit in rows and columns, and every cell has fixed neighbours.
- Pros: fewer cells for the same accuracy, so it runs faster; regular cells can follow the wing surface, giving better results in the boundary layer and around shocks, and steadier convergence
- Cons: hard to build around complex geometry, often needing a lot of manual blocking and experience
An unstructured mesh is like loose gravel: triangles and tetrahedra fill the space automatically, with no requirement to line up.
- Pros: generated automatically around almost any geometry, easy to modify and refine locally, quick to get started
- Cons: usually needs more cells for the same accuracy, so it costs more to run; prone to stretched, skewed cells (high aspect ratio and skewness) that hurt accuracy and convergence
Our approach
With limited computing resources, we used an unstructured mesh for every case and recovered accuracy in three ways:
- Zoned refinement: the domain was split into three layers — inflation layers to resolve the boundary layer right at the wing, a refined box around the wing, and a moderately fine far field to save computation
- Near-wall control: we required y+ ≤ 1 and derived the first-layer thickness from it; in practice every y+ value came in below 0.75. We also estimated the boundary layer thickness in MATLAB using a flat-plate assumption (about 0.0123 m) and added extra inflation layers to be sure it was fully covered
- Coarse to refined: the coarse grid had about 6 million nodes and the refined grids 8.4 to 11.2 million. The coarse Case 2 run showed a strong shock on the upper surface, so we extended the refined zone over the upper surface and past the trailing edge to capture it
The cost was clear too: average aspect ratio 284.58 and maximum skewness 0.977, both on the high side — the best compromise an unstructured mesh allowed with the resources we had. Case 2’s pressure coefficient distributions matched the shape and trend of the test data, but agreement worsened towards the wingtip. Our conclusion in the report was that the next step should be a structured mesh, to bring aspect ratio and skewness down at the source, along with further refinement at the wingtip and in the shock region.
The full report is below.