VALIDATION
What these tools get right, and where they do not. Every solver behind the site, checked against closed-form theory and published wind-tunnel measurement.
An aerodynamic tool that only reports its successes is a brochure. These are the checks we actually run, with the errors as measured — including the 2 cases where the answer degrades and you should not trust it without a second opinion.
Every reference below is either a closed-form result stated exactly, or a published measurement with a citation. Numbers are regenerated by scripts/validation/suite.py and committed, not computed when you load the page — a validation record that changes silently under the reader is not a record of anything.
Section — 2D, NeuralFoil
Lift-curve slope dCL/d-alpha
NACA 0012, Re = 3x10^6, alpha -4 to +4 deg
CL and CM about c/4
NACA 0012 at alpha = 0
Both land at machine zero (~1e-16), not merely small.
Zero-lift angle of attack
NACA 2412, Re = 3x10^6
Wing — 3D, AeroBuildup and VLM
3D lift-curve slope
Rectangular NACA 0012 wing, AR = 20
Span efficiency e from CDi = CL^2/(pi*AR*e)
Rectangular untwisted wing, AR = 8, alpha = 5 deg (CL = 0.4010)
CL vs measured, by aspect ratio
Sharp-edge delta wings, taper 0.1, NACA 0010, alpha 0-25 deg
| Aspect ratio | Points | Mean error | Max ΔCL | |
|---|---|---|---|---|
| 2.0 | 9 | 8.6% | 0.0412 | pass |
| 1.5 | 10 | 9.8% | 0.1451 | pass |
| 1.0 | 19 | 13.4% | 0.1529 | pass |
| 0.5 | 5 | 39% | 0.2473 | degraded |
Accuracy is a strong function of aspect ratio: within 8.6% at AR 2, but 39.0% at AR 0.5, where leading-edge vortex lift dominates and the buildup does not model it.
Zero-lift angle of attack, all three 3D engines vs. the 2D section value
Untwisted NACA 2412 rectangular wing, AR = 8
| Engine | Measured | Δ from section | |
|---|---|---|---|
| Section (reference) | -2.0997 deg | — | |
| AeroBuildup | -2.6393 deg | -0.54° | degraded |
| LiftingLine | -2.2061 deg | -0.106° | pass |
| VLM | -1.9787 deg | +0.121° | pass |
Tolerance is +/-0.3 deg against the section value. S3 only checks the 2D section; this is the 3D anchor it lacks by itself, and it shows the engines do not agree with each other, let alone the section answer -- AeroBuildup's strip-theory offset is the largest of the three.
Wing CLmax: min over strips of (Clmax(y) - Cl_basic(y)) / Cl_add(y)
Cessna 172 wing (21-station payload, -3 deg washout) at Vs = 53 KCAS
An underprediction of 5-10% is expected, not a defect: the POH figure is whole-aircraft (it includes the fuselage and propeller slipstream), and this wing-only model has neither. Gudmundsson's own Method 1 gets 1.42 from the same inputs, -8%. First stall predicted at 2% semispan (root-first, consistent with the washout).
Past stall — what you are actually getting
Beyond ±20° the section answer is blended away from NeuralFoil and toward a 360° model. That blend is smooth and undocumented in the UI, so this is what it weighs at each angle:
| Angle of attack | Share from the 360° model |
|---|---|
| 0° | 0% |
| 10° | 0.1% |
| 15° | 3.4% |
| 17.4° | 15% |
| 18° | 20.9% |
| 20° | 50% |
| 22.5° | 84.1% |
| 24° | 93.5% |
| 30° | 99.9% |
- •The 360-degree model's constants are hardcoded for NACA 0012; the camber- and thickness-dependent form is unimplemented upstream.
- •That model returns CM identically zero. Any moment result inside the blend region is being pulled toward zero -- which matters most for trim, because trim is a moment balance.
Trim — not yet validated
There is no multi-surface trim solver on the site yet, so there is nothing here to validate. It is listed because its absence is the honest answer to a question people do ask.
One measured limitation worth stating in advance: the AeroBuildup engine treats each surface in an assembly independently and sums them, so it does not model a stabiliser sitting in a main wing's downwash. Adding two analyses together overestimates the stabiliser's effect. Use the selector for a single surface at a known load until this ships.
Next: a downwash-gradient case against NACA TR-648 (Silverstein & Katzoff, 1939) once the trim solver lands, checking dε/dα at the tail against that report's design charts.