2D RANS study of a NACA 2412 airfoil from 0° to 20° angle of attack in ANSYS Fluent (k-ω SST, steady and transient), compared with thin-airfoil theory in MATLAB.
Compute lift and drag coefficients of a NACA 2412 over a range of angles of attack. Use them to locate stall, then compare the CFD results with thin-airfoil theory.
| Item | Setting |
|---|---|
| Airfoil / domain | NACA 2412, 2D |
| Mesh | ≈ 120k cells, quad-dominant |
| Solver | Pressure-based. Steady for all AoA, transient at 18° |
| Turbulence model | k-ω SST |
| Inlet | Velocity inlet, 60 m/s, direction set by AoA |
| Reynolds number | ≈ 8 × 10⁵ (chord-based) |
| Reference values | Chord 0.2 m, area 0.2 m² (1 m depth), ρ = 1.225 kg/m³ |
| Steady cases | 0°, 5°, 10°, 12°, 15°, 18°, 20° |
| Transient case | 18°, Δt = 0.001 s, 1000 time steps |
| AoA (°) |
|
|
|
|---|---|---|---|
| 0 | 0.37 | 0.022 | 0.00 |
| 5 | 0.45 | 0.019 | 0.55 |
| 10 | 0.53 | 0.020 | 1.10 |
| 12 | 0.54 | 0.020 | 1.32 |
| 15 | 0.55 | 0.019 | 1.64 |
| 18 | 0.54 | 0.018 | 1.97 |
| 20 | 0.54 | 0.018 | 2.19 |
| 18 (transient) | 0.56 | 0.018 | – |
| Pressure (transient, 18°) | Velocity (transient, 18°) |
|---|---|
![]() |
![]() |
Residual, lift and drag monitors for each angle of attack
| AoA | Residuals | Drag | Lift |
|---|---|---|---|
| 0° | ![]() |
![]() |
![]() |
| 5° | ![]() |
![]() |
![]() |
| 10° | ![]() |
![]() |
![]() |
| 12° | ![]() |
![]() |
![]() |
| 15° | ![]() |
![]() |
![]() |
| 18° | ![]() |
![]() |
![]() |
| 18° (transient) | ![]() |
![]() |
![]() |
| 20° | ![]() |
![]() |
![]() |
Theoretical Comparison (theoretical_cl_cd.m)
The MATLAB script uses thin-airfoil theory,
The CFD lift curve is much flatter than expected. Between 5° and 20°,
- Force-vector definition: the lift and drag direction vectors must be rotated together with the inlet flow direction for each AoA.
- Near-wall resolution: y⁺ > 1, which is too coarse for SST to resolve separation. A finer inflation layer is needed.
- Convergence and unsteadiness: post-stall flow is unsteady. Transient runs with Δt ≈ 10⁻⁴ s and longer run times are required.
- Mesh scaling: an early scaling error inflated the coefficients. It was corrected, which shows how sensitive the results are to set-up checks.
Future work: a mesh with y⁺ ≈ 1, a check against the experimental data of Abbott & von Doenhoff, and adaptive refinement in the wake.
├── 0deg/ 5deg/ 10deg/ 12deg/ 15deg/ 18deg/ 20deg/ # Residual, lift and drag monitors per AoA
├── 18deg_transient/ # Transient monitors at 18°
├── theoretical_cl_cd.m # Thin-airfoil theory and drag polar
├── graph.png # Cl and Cd vs. AoA
├── mesh.png # Mesh
└── *_animation.gif, *_gif.gif / .mpeg # Pressure and velocity animations
Burak Yörükçü · GitHub · burakyorukcu@outlook.com




























