Skip to content
Jad El Badaoui

CFD · Multiphysics · Summer 2026

Aerospace CFD & Fluid-Structure Interaction

Carrying a CFD result from hand calculation through to a validated solution, then coupling it into a structural analysis.

Repository on GitHub
  • ANSYS Fluent
  • ANSYS CFX
  • ANSYS Mechanical
  • SpaceClaim
  • Python
Computational mesh of the 120-degree periodic wind turbine sector, refined toward the blade surfaces
The 120° periodic sector mesh for the wind-turbine study, refined toward the blade surfaces to resolve the boundary layer, with sphere-of-influence refinement through the rotor and wake.
1.4 %
Lift vs experiment

CL ≈ 1.06 against NASA measurements of 1.07 to 1.08

0.116 %
Root reaction vs hand calc

1,578.1 kN from ANSYS against 1,576.3 kN analytically

0.405 m
Blade tip deflection

0.92 % of the 44.2 m rotor radius

10⁻⁷
Mass imbalance

Normalised against the incoming flow

01 / Overview

Two linked studies

A CFD result only means something if you can show why it should be believed. This project is two linked studies in ANSYS 2026 R1, developed alongside CornellX's ENGR2000X simulation course on edX, and both are built around that argument.

The first is a two-dimensional steady RANS solution over a NACA 0012 aerofoil at 10° incidence and a chord Reynolds number of 6×10⁶. The case was chosen because high-quality NASA experimental data exists for it, so the full verification and validation argument can be carried to the end. The second study is the larger one: a three-bladed horizontal-axis wind turbine solved as a one-way coupled fluid-structure interaction, where a rotating-frame CFD solution provides the pressure field that loads an orthotropic composite shell model of the blade.

The chain of reasoning the project follows. The dashed returns matter as much as the forward path. Verification failures send you back to the mesh, validation failures back to the physics model.

Note the ordering of the last two steps. Verification comes before validation, and it is not optional: comparing an unverified solution against experiment tells you nothing useful. If it disagrees you cannot tell whether the physics model is wrong or the mesh is too coarse; if it agrees you cannot tell whether it agreed for the right reason.

02 / Setup

The physical problem and its domain

The fluid domain: velocity inlet, pressure outlet, and no-slip upper and lower surfaces, with the free stream entering at α = 10°.

The case is steady, turbulent, two-dimensional flow around a symmetric NACA 0012 section at 10° angle of attack, with a 1 m chord and air approaching at 51.45 m/s.

The domain is the region between the aerofoil surface and an outer far-field boundary placed roughly 12.5 chord lengths away. That outer boundary is a numerical stand-in for infinity. The real flow extends indefinitely, so truncating it is an approximation whose adequacy has to be demonstrated rather than assumed.

Before any solver was opened, a thin-aerofoil hand calculation put lift at CL = 1.097. That number is what makes the CFD result falsifiable. Without an independent expectation, any output has to be accepted on faith.

03 / Discretisation

Designing the mesh

Mesh design is not a matter of making cells small everywhere, which is both unaffordable and unnecessary. It is a matter of spending cells where the gradients are: the leading edge, the boundary layer, the trailing edge and the wake. The mesh here contains roughly 27,000 cells.

Boundary layer refinement
Ten inflation layers were applied around the aerofoil with a growth rate of 1.2. They provide additional resolution normal to the wall, where the strongest velocity gradients occur.
Local aerofoil refinement
A sphere of influence with a radius of approximately three chord lengths was used around the aerofoil. Within that region the local element size is approximately 0.05c.
Wake refinement
Additional refinement was applied downstream of the trailing edge, to resolve the wake and the downstream velocity gradients it carries.
Edge biasing
Bidirectional edge biasing concentrates smaller elements near the leading and trailing edges, where the geometry and the aerodynamic gradients require greater resolution.
The viscous law and log law in wall units, with the 30 < y⁺ < 300 band that standard wall functions require. This is what sets the first-cell height.

04 / Post-processing

Aerodynamic results

Each field below is checked against what the pre-analysis predicted, rather than just described.

Velocity magnitude

Far-field velocity matches the specified free stream, which is the fastest check that boundary conditions were applied as intended. Flow accelerates to nearly twice free-stream around the upper leading edge.

Velocity vectors

Flow turning around the leading edge, displaced toward the lower surface by the positive incidence.
Higher pressure below, lower above. That difference is the lift. Pressure changes very little across the thin boundary layer, which is a genuine result of boundary-layer theory rather than a plotting artefact, and it is why the pressure field is comparatively insensitive to near-wall mesh quality.
Turbulent kinetic energy. The boundary layer appears as a thin, high-k sheet hugging the surface.

The turbulence field is the most diagnostically useful of the four plots, and the one most often skipped. It isolates the boundary layer as a thin high-k sheet, thickening toward the trailing edge and shedding into the wake, which is a direct picture of where turbulent momentum transport is happening.

It also works as a visual mesh check. Turbulence production peaks where mean shear is greatest, very close to the wall. If the near-wall mesh is adequate, that appears as a sharp, well-defined sheet. If it is too coarse, the peak smears across cells and the sheet looks diffuse, a visual symptom of the same resolution problem the y⁺ audit quantifies.

05 / V&V

Verification and validation

Two different questions, routinely conflated. Verification is answered from inside the simulation; validation can only be answered against independent measurement.
  • Mass conservation. Normalised imbalance of order 10⁻⁷ of the incoming flow.
  • Iterative convergence. Residuals driven to ≈10⁻⁶, with flat force monitors rather than residuals alone.
  • Near-wall audit. The computed y⁺ distribution checked against the range the chosen wall treatment actually requires, rather than assumed.
  • Domain and grid independence. Set out as a controlled six-case verification matrix, one variable changed at a time, each case with a stated acceptance criterion, using Richardson extrapolation and the grid convergence index.
The NASA experimental upper-surface Cp reference data used for validation. The vertical axis is inverted, following the aerodynamic convention that puts stronger suction higher on the page.

Validation compares the predicted surface pressure distribution against the NASA NACA 0012 resources (Gregory & O'Reilly for surface pressure, Ladson for force coefficients) at matched Reynolds number and incidence. The computed Cp distribution overlaps this experimental data closely across the full chord.

The integrated lift follows at CL ≈ 1.06 against an experimental 1.07 to 1.08, about 1.4 % low, and against the thin-aerofoil hand calculation of 1.097 made before any solver was opened.

Matching the full Cp distribution is a stronger claim than matching lift alone. An integrated coefficient can agree through cancellation between two compensating errors, whereas a point-by-point match across the chord cannot happen by accident. The Cp distribution is also the aerodynamic loading itself, so it is the quantity the structural side of an FSI analysis consumes.

06 / Multiphysics

Wind turbine: one-way fluid-structure interaction

The main study couples two physics domains: the output of a rotating-frame CFD solution becomes the load input to a static structural analysis. That is how aeroelastic sizing work is normally organised, and it introduces a class of error no single-physics analysis has, namely load transfer between non-matching meshes.

The rotor is solved in a rotating reference frame, so a steady solution captures rotation without a transient sliding interface. Rotational periodicity then lets one blade in a 120° sector stand for all three, cutting cost by a factor of three at the price of excluding tower shadow, wind shear and yaw.

The sector mesh at the top of this page is that domain: one blade, 120° of azimuth, with the periodic faces standing in for the two blades that are not meshed.

The first check is kinematic. Blade velocity in the stationary frame reaches 98.05 m/s at the tip of the 44.2 m rotor, against 98.12 m/s from ΩR by hand. That 0.07 % agreement verifies the rotation rate, axis, units and root offset in a single number.

Blade velocity in the stationary frame, showing the linear Ωr distribution along the span.
Sectional pressure: stagnation +199 Pa, suction peak −395 Pa.
Sectional velocity vectors: accelerated flow over the suction side, up to 34.8 m/s.

The section cut shows the aerofoil doing what the NACA 0012 study says it should, which is the point of having done that study first. The pressure difference across the section produces both the useful torque and the flapwise bending load the structure has to survive.

07 / Coupling

From pressure field to structural response

Total deformation under the mapped CFD pressure field plus centrifugal loading: 0.405 m at the tip, 0.92 % of rotor radius.

The blade is modelled as a homogenised orthotropic composite shell: outer skin plus internal spar, both tapering along the span, with longitudinal stiffness 15× the transverse. The CFD pressure field plus centrifugal inertia, with the root on a remote displacement, gives a maximum tip deflection of 0.405 m. The shape is classic cantilever behaviour, near-zero at the root and growing non-linearly toward the tip, since each span station carries the integrated moment of all load outboard of it.

The strongest check in the project is the root radial reaction. For a rigidly rotating mass distribution, the total radial force reduces exactly to mΩ²r_cm regardless of how the mass is distributed. With a 22,473 kg blade and centre of mass at 14.232 m, that gives 1,576.3 kN by hand against 1,578.1 kN from ANSYS, a difference of 0.116 %. One number simultaneously verifies the mass, density, centre of mass, angular velocity, centrifugal load implementation and reaction extraction.

Tip deflection matters twice over. It is a design-driving constraint on real turbines, since the blade must not strike the tower, and it decides whether one-way coupling was legitimate in the first place. At 0.92 % of rotor radius, the assumption looks defensible at this operating point.

08 / Engineering judgement

Limitations, stated plainly

The repository reports what the model cannot say with the same prominence as what it can:

  • The power coefficient is not converged. Cp ≈ 0.141 sits well below the 0.30 to 0.45 a real machine of this class achieves, and the refinement evidence shows it still moving at 7.7 million cells. It is a coarse-mesh number rather than a performance prediction, and it is reported as such.
  • No experimental data exists for either half of the turbine study, so it is numerically verified and physically assessed but cannot be called validated.
  • One-way coupling only. The load is that of the undeformed blade, and the change in local twist, which actually sets angle of attack, was not extracted.
  • Periodic sector. No tower shadow, wind shear, yaw misalignment or transient gusts.
  • Static structural only. No modal or fatigue analysis, and fatigue is what drives blade life in service.
  • Von Mises against UTS is the wrong failure measure for an orthotropic composite. The ≈16 factor of safety is a scalar screen, not a strength assessment.
  • Run on the ANSYS Student licence, which caps mesh size and limits boundary-layer resolution.

The complete write-up lives in the repository: methods, data, code, provenance and limitations.

github.com/Jadbadawi/aerospace-cfd-fsi