---
title: Inviscid aerofoil
summary: The complete loop on one case — solve the flow over a NACA 0012, inspect the field and the surface pressure, obtain adjoint derivatives with respect to flow conditions and shape, and estimate the error of the result.
section: examples
order: 1
level: 1
study: example_airfoil
keywords: [NACA 0012, Euler, adjoint, shape sensitivity, error estimate, example]
---
<!-- gyre docs: expanded Markdown of examples/naca0012-euler.md (generated tables, verification numbers and chart data are written out). Base level of this page: L1 Essentials; passages at another level are bracketed by 'begin level N' / 'end level N' comments and start with [LN Name]. Built from revision ceb1f4b0be. -->

Subsonic inviscid flow over a NACA 0012 at Mach 0.5 and 2° incidence, on a 48 × 12 curved
O-mesh with cubic elements. Everything on this page is produced by the `example_airfoil` study
of the verification pipeline.

**Flow field: Mach number (48 × 12 elements, p = 3).** Interactive viewer in the HTML page (initially showing `mach`). Part of the domain: window x ∈ [-1, 2.5], y ∈ [-1.5, 1.5] · the 354 mesh elements that reach into it · 8×8 points each. Sampled solution (coordinates and fields, base64 float32): [field.json](../data/fields/example_airfoil/field.json).

| Field | Minimum in the sample | Maximum in the sample |
|---|---|---|
| mach | 0.0515553 | 0.716734 |
| pressure | 2.39749 | 3.38853 |
| density | 0.882255 | 1.12959 |
| entropy | 2.84589 | 2.88839 |

Provenance: gyre 0.4.0; revision `39979fcf90` (commit `39979fcf902ad6116eb550b881b4278d4599c8e2`); 2026-11-12T11:35:15-0500; device gpu · NVIDIA GeForce RTX 3060 Ti; source `example_airfoil/field.json`. **Revision check: Same code as this build.** Produced by 39979fcf902ad6116eb550b881b4278d4599c8e2. Every commit between it and the commit this site was built from (ceb1f4b0bed41de53e586df10858079f5a2bcdd8) changes only documentation text, evidence records or bookkeeping: the code is the same.

**Verification status: Example: inviscid NACA 0012** (study `example_airfoil`): **PASSED**, 4 of 4 checks passed, 104.5 s.

NACA 0012 at Mach 0.5 and 2 degrees on a 48 x 12 curved O-mesh, p = 3. Outputs, adjoint derivatives, adjoint-based error estimates and surface distributions.

| Check | Value | Expected | Result |
|---|---|---|---|
| converged | yes | true | pass |
| cl near compressible thin-aerofoil value | 0.282687 | 0.228 … 0.317 | pass |
| spurious inviscid drag \|cd\| | 1.9845e-04 | < 1e-3 | pass |
| lift-curve slope per radian | 8.12013 | 6.5 … 9.0 | pass |

Provenance: gyre 0.4.0; revision `39979fcf90` (commit `39979fcf902ad6116eb550b881b4278d4599c8e2`); 2026-11-12T11:35:15-0500; device gpu · NVIDIA GeForce RTX 3060 Ti; quick suite. **Revision check: Same code as this build.** Produced by 39979fcf902ad6116eb550b881b4278d4599c8e2. Every commit between it and the commit this site was built from (ceb1f4b0bed41de53e586df10858079f5a2bcdd8) changes only documentation text, evidence records or bookkeeping: the code is the same. Full record: [example_airfoil.json](../data/verification/example_airfoil.json).

## Run it

**[Alternative: CLI]**

```bash
gyre run naca0012_euler \
    --set mesh.params.n_surf=48 --set mesh.params.n_radial=12 \
    --set mesh.params.first_cell=0.02 --set discretization.order=3 \
    --gradients --of cl,cd,cm --wrt alpha,mach,x_surface --error cd,cl -o runs/naca
```

**[Alternative: Python]**

```python
from gyre.cases import Case, preset
from gyre.error import estimate_error

case = Case(preset("naca0012_euler", **{"mesh.params.n_surf": 48, "mesh.params.n_radial": 12,
                                        "mesh.params.first_cell": 0.02,
                                        "discretization.order": 3}))
flow = case.discipline
flow.solve()
out = flow.outputs(("cl", "cd", "cm"))
grad = flow.totals(of=("cl", "cd", "cm"), wrt=("alpha", "mach", "x_surface"))
est = estimate_error(case, ("cd", "cl"))
```

**[Alternative: REST]**

```bash
curl -s $API/jobs -H 'content-type: application/json' -d '{
  "case": "naca0012_euler",
  "overrides": {"mesh.params.n_surf": 48, "mesh.params.n_radial": 12,
                "mesh.params.first_cell": 0.02, "discretization.order": 3},
  "gradients": {"of": ["cl", "cd", "cm"], "wrt": ["alpha", "mach", "x_surface"]},
  "error_estimate": ["cd", "cl"]}'
```

## Results

**Table: Outputs, adjoint derivatives and estimated discretization error** (Example: inviscid NACA 0012)

| output | value | d/dα [1/rad] | d/dMach | estimated error |
|---|---|---|---|---|
| cl | 0.282687 | 8.12013 | 0.229219 | -0.00220267 |
| cd | 1.9845e-04 | 0.00534302 | 1.7935e-04 | 3.3961e-05 |
| cm | -0.00266027 | -0.0673649 | 0.00197556 | — |

Provenance: gyre 0.4.0; revision `39979fcf90` (commit `39979fcf902ad6116eb550b881b4278d4599c8e2`); 2026-11-12T11:35:15-0500; device gpu · NVIDIA GeForce RTX 3060 Ti; quick suite. **Revision check: Same code as this build.** Produced by 39979fcf902ad6116eb550b881b4278d4599c8e2. Every commit between it and the commit this site was built from (ceb1f4b0bed41de53e586df10858079f5a2bcdd8) changes only documentation text, evidence records or bookkeeping: the code is the same. Full record: [example_airfoil.json](../data/verification/example_airfoil.json).

<!-- begin level 2 (Practice) -->
**[L2 Practice] Reading the table**

* The lift coefficient is close to the compressible thin-aerofoil estimate
  $2\pi\alpha/\sqrt{1-M^2}$; thickness adds a few percent.
* The exact drag of a subsonic inviscid flow is zero, so the computed drag is error. It has
  three sources: discretization error (which the adjoint-based estimate in the last column
  measures, relative to the next polynomial degree), the singular trailing edge (which
  enrichment in $p$ resolves poorly) and the far-field boundary at a finite distance (a
  modelling error no mesh refinement removes). Comparing the estimate with the drag itself
  shows how much of it better resolution would recover.
* The derivative columns come from three adjoint solves (one per output) and include
  $\partial/\partial\alpha$, $\partial/\partial M$ and the sensitivity to every surface node.

<!-- end level 2 -->

**Chart: Surface pressure coefficient** (Example: inviscid NACA 0012). Line chart of −cp against x / c; 2 series. The table holds the plotted data.

| series | x / c | −cp |
|---|---|---|
| upper surface | 0 | -0.874419 |
| upper surface | 0 | -0.866679 |
| upper surface | 2.5004e-04 | -0.629748 |
| upper surface | 0.00171302 | -0.147335 |
| upper surface | 0.00326997 | 0.139233 |
| upper surface | 0.00326997 | 0.140604 |
| upper surface | 0.00532391 | 0.370284 |
| upper surface | 0.00969476 | 0.640388 |
| upper surface | 0.0130394 | 0.743507 |
| upper surface | 0.0130394 | 0.742867 |
| upper surface | 0.0168719 | 0.816368 |
| upper surface | 0.0240965 | 0.885381 |
| upper surface | 0.0291876 | 0.905444 |
| upper surface | 0.0291876 | 0.905715 |
| upper surface | 0.0347511 | 0.916466 |
| upper surface | 0.0447403 | 0.918183 |
| upper surface | 0.0515147 | 0.91318 |
| upper surface | 0.0515147 | 0.91295 |
| upper surface | 0.0587406 | 0.904786 |
| upper surface | 0.0713706 | 0.886667 |
| upper surface | 0.0797447 | 0.873797 |
| upper surface | 0.0797447 | 0.873581 |
| upper surface | 0.0885435 | 0.859573 |
| upper surface | 0.103658 | 0.835134 |
| upper surface | 0.113528 | 0.819522 |
| upper surface | 0.113528 | 0.819349 |
| upper surface | 0.123791 | 0.803252 |
| upper surface | 0.141204 | 0.776386 |
| upper surface | 0.152448 | 0.759617 |
| upper surface | 0.152448 | 0.759467 |
| upper surface | 0.164048 | 0.74244 |
| upper surface | 0.183543 | 0.71443 |
| upper surface | 0.196022 | 0.696961 |
| upper surface | 0.196022 | 0.697092 |
| upper surface | 0.208816 | 0.67948 |
| upper surface | 0.230153 | 0.650958 |
| upper surface | 0.243712 | 0.633397 |
| upper surface | 0.243712 | 0.633286 |
| upper surface | 0.257542 | 0.615675 |
| upper surface | 0.280456 | 0.587142 |
| upper surface | 0.294928 | 0.56957 |
| upper surface | 0.294928 | 0.569657 |
| upper surface | 0.309622 | 0.552124 |
| upper surface | 0.33383 | 0.524042 |
| upper surface | 0.349037 | 0.506848 |
| upper surface | 0.349037 | 0.50691 |
| upper surface | 0.364413 | 0.489832 |
| upper surface | 0.389616 | 0.462603 |
| upper surface | 0.405369 | 0.446052 |
| upper surface | 0.405369 | 0.446013 |
| upper surface | 0.421238 | 0.429637 |
| upper surface | 0.447124 | 0.403554 |
| upper surface | 0.463227 | 0.387737 |
| upper surface | 0.463227 | 0.387717 |
| upper surface | 0.479393 | 0.37211 |
| upper surface | 0.505641 | 0.347321 |
| upper surface | 0.521897 | 0.332295 |
| upper surface | 0.521897 | 0.3323 |
| upper surface | 0.538159 | 0.317489 |
| upper surface | 0.564446 | 0.293983 |
| upper surface | 0.580652 | 0.279718 |
| upper surface | 0.580652 | 0.279723 |
| upper surface | 0.59681 | 0.265649 |
| upper surface | 0.62281 | 0.243253 |
| upper surface | 0.638767 | 0.229609 |
| upper surface | 0.638767 | 0.229617 |
| upper surface | 0.654619 | 0.216111 |
| upper surface | 0.680011 | 0.194499 |
| upper surface | 0.695521 | 0.181251 |
| upper surface | 0.695521 | 0.181244 |
| upper surface | 0.710873 | 0.168054 |
| upper surface | 0.735343 | 0.146751 |
| upper surface | 0.750214 | 0.133563 |
| upper surface | 0.750214 | 0.133567 |
| upper surface | 0.764876 | 0.120328 |
| upper surface | 0.78812 | 0.0987075 |
| upper surface | 0.802169 | 0.085159 |
| upper surface | 0.802169 | 0.0851584 |
| upper surface | 0.815959 | 0.0714158 |
| upper surface | 0.837691 | 0.0486441 |
| upper surface | 0.850743 | 0.0341484 |
| upper surface | 0.850743 | 0.0341541 |
| upper surface | 0.863491 | 0.01926 |
| upper surface | 0.883442 | -0.00588722 |
| upper surface | 0.895337 | -0.0222263 |
| upper surface | 0.895337 | -0.0222529 |
| upper surface | 0.906884 | -0.0393163 |
| upper surface | 0.924807 | -0.0691096 |
| upper surface | 0.935397 | -0.0891371 |
| upper surface | 0.935397 | -0.0897227 |
| upper surface | 0.945602 | -0.110369 |
| upper surface | 0.961275 | -0.151597 |
| upper surface | 0.970429 | -0.173767 |
| upper surface | 0.970429 | -0.181065 |
| upper surface | 0.979165 | -0.222613 |
| upper surface | 0.992395 | -0.311533 |
| upper surface | 1 | -0.282855 |
| upper surface | 1 | -0.263395 |
| lower surface | 2.5004e-04 | -1.01943 |
| lower surface | 0.00171302 | -1.04799 |
| lower surface | 0.00326997 | -0.963049 |
| lower surface | 0.00326997 | -0.968865 |
| lower surface | 0.00532391 | -0.84827 |
| lower surface | 0.00969476 | -0.640162 |
| lower surface | 0.0130394 | -0.522971 |
| lower surface | 0.0130394 | -0.521793 |
| lower surface | 0.0168719 | -0.416051 |
| lower surface | 0.0240965 | -0.270233 |
| lower surface | 0.0291876 | -0.196493 |
| lower surface | 0.0291876 | -0.196213 |
| lower surface | 0.0347511 | -0.131697 |
| lower surface | 0.0447403 | -0.0451959 |
| lower surface | 0.0515147 | -0.00102843 |
| lower surface | 0.0515147 | -8.7757e-04 |
| lower surface | 0.0587406 | 0.0375448 |
| lower surface | 0.0713706 | 0.0894897 |
| lower surface | 0.0797447 | 0.116388 |
| lower surface | 0.0797447 | 0.116224 |
| lower surface | 0.0885435 | 0.139576 |
| lower surface | 0.103658 | 0.170852 |
| lower surface | 0.113528 | 0.186911 |
| lower surface | 0.113528 | 0.186773 |
| lower surface | 0.123791 | 0.200489 |
| lower surface | 0.141204 | 0.218285 |
| lower surface | 0.152448 | 0.227056 |
| lower surface | 0.152448 | 0.226935 |
| lower surface | 0.164048 | 0.234055 |
| lower surface | 0.183543 | 0.242424 |
| lower surface | 0.196022 | 0.246008 |
| lower surface | 0.196022 | 0.245902 |
| lower surface | 0.208816 | 0.248281 |
| lower surface | 0.230153 | 0.24982 |
| lower surface | 0.243712 | 0.249626 |
| lower surface | 0.243712 | 0.249535 |
| lower surface | 0.257542 | 0.248459 |
| lower surface | 0.280456 | 0.245039 |
| lower surface | 0.294928 | 0.242113 |
| lower surface | 0.294928 | 0.242041 |
| lower surface | 0.309622 | 0.238486 |
| lower surface | 0.33383 | 0.231559 |
| lower surface | 0.349037 | 0.226725 |
| lower surface | 0.349037 | 0.226671 |
| lower surface | 0.364413 | 0.221411 |
| lower surface | 0.389616 | 0.212122 |
| lower surface | 0.405369 | 0.206027 |
| lower surface | 0.405369 | 0.205993 |
| lower surface | 0.421238 | 0.199629 |
| lower surface | 0.447124 | 0.188859 |
| lower surface | 0.463227 | 0.181975 |
| lower surface | 0.463227 | 0.181992 |
| lower surface | 0.479393 | 0.174953 |
| lower surface | 0.505641 | 0.163332 |
| lower surface | 0.521897 | 0.15603 |
| lower surface | 0.521897 | 0.156025 |
| lower surface | 0.538159 | 0.148641 |
| lower surface | 0.564446 | 0.136554 |
| lower surface | 0.580652 | 0.129013 |
| lower surface | 0.580652 | 0.129009 |
| lower surface | 0.59681 | 0.121417 |
| lower surface | 0.62281 | 0.109026 |
| lower surface | 0.638767 | 0.101294 |
| lower surface | 0.638767 | 0.101301 |
| lower surface | 0.654619 | 0.0935123 |
| lower surface | 0.680011 | 0.0807697 |
| lower surface | 0.695521 | 0.0727803 |
| lower surface | 0.695521 | 0.0727864 |
| lower surface | 0.710873 | 0.0646999 |
| lower surface | 0.735343 | 0.0513638 |
| lower surface | 0.750214 | 0.0429308 |
| lower surface | 0.750214 | 0.0429282 |
| lower surface | 0.764876 | 0.0343233 |
| lower surface | 0.78812 | 0.019959 |
| lower surface | 0.802169 | 0.0107628 |
| lower surface | 0.802169 | 0.0107611 |
| lower surface | 0.815959 | 0.00127745 |
| lower surface | 0.837691 | -0.0147846 |
| lower surface | 0.850743 | -0.0252252 |
| lower surface | 0.850743 | -0.0252314 |
| lower surface | 0.863491 | -0.0361388 |
| lower surface | 0.883442 | -0.0549682 |
| lower surface | 0.895337 | -0.0674908 |
| lower surface | 0.895337 | -0.0674628 |
| lower surface | 0.906884 | -0.0807481 |
| lower surface | 0.924807 | -0.104425 |
| lower surface | 0.935397 | -0.120675 |
| lower surface | 0.935397 | -0.121164 |
| lower surface | 0.945602 | -0.138159 |
| lower surface | 0.961275 | -0.172927 |
| lower surface | 0.970429 | -0.198357 |
| lower surface | 0.970429 | -0.193999 |
| lower surface | 0.979165 | -0.234097 |
| lower surface | 0.992395 | -0.314428 |

Provenance: gyre 0.4.0; revision `39979fcf90` (commit `39979fcf902ad6116eb550b881b4278d4599c8e2`); 2026-11-12T11:35:15-0500; device gpu · NVIDIA GeForce RTX 3060 Ti; quick suite. **Revision check: Same code as this build.** Produced by 39979fcf902ad6116eb550b881b4278d4599c8e2. Every commit between it and the commit this site was built from (ceb1f4b0bed41de53e586df10858079f5a2bcdd8) changes only documentation text, evidence records or bookkeeping: the code is the same. Full record: [example_airfoil.json](../data/verification/example_airfoil.json).

**Chart: Residual history** (Example: inviscid NACA 0012). History chart of |Rw| against nonlinear iteration, y axis log; 1 series. The table holds the plotted data.

| nonlinear iteration | p-multigrid Newton–Krylov |
|---|---|
| 0 | 0.254526 |
| 1 | 0.286223 |
| 2 | 0.11197 |
| 3 | 0.0753932 |
| 4 | 0.0565508 |
| 5 | 0.0445968 |
| 6 | 0.0360615 |
| 7 | 0.0265559 |
| 8 | 0.0164238 |
| 9 | 0.00752402 |
| 10 | 0.0033031 |
| 11 | 8.9868e-04 |
| 12 | 1.1153e-04 |
| 13 | 3.3942e-06 |
| 14 | 3.0041e-08 |
| 15 | 2.3433e-10 |
| 16 | 1.8256e-12 |

Provenance: gyre 0.4.0; revision `39979fcf90` (commit `39979fcf902ad6116eb550b881b4278d4599c8e2`); 2026-11-12T11:35:15-0500; device gpu · NVIDIA GeForce RTX 3060 Ti; quick suite. **Revision check: Same code as this build.** Produced by 39979fcf902ad6116eb550b881b4278d4599c8e2. Every commit between it and the commit this site was built from (ceb1f4b0bed41de53e586df10858079f5a2bcdd8) changes only documentation text, evidence records or bookkeeping: the code is the same. Full record: [example_airfoil.json](../data/verification/example_airfoil.json).

<!-- begin level 2 (Practice) -->
**[L2 Practice] Convergence**

The residual falls slowly while the pseudo-time step grows, then at Newton's rate — the
Jacobian is exact — down to round-off. The p-multigrid hierarchy for $p = 3$ is $(3, 1, 0)$.

<!-- end level 2 -->

## Shape sensitivity

**Chart: Shape sensitivity of lift: d cl / d y of each surface node** (Example: inviscid NACA 0012). Line chart of d cl / d y_node against x / c; 2 series. The table holds the plotted data. One adjoint solve yields the sensitivity to every surface node.

| series | x / c | d cl / d y_node |
|---|---|---|
| upper surface | 0 | 0.00574924 |
| upper surface | 9.7595e-05 | -0.0781155 |
| upper surface | 8.1813e-04 | -0.0122766 |
| upper surface | 0.00223893 | -0.0298514 |
| upper surface | 0.00326997 | -0.0790927 |
| upper surface | 0.004495 | -0.0161657 |
| upper surface | 0.00734795 | 0.0537891 |
| upper surface | 0.0108925 | 0.115413 |
| upper surface | 0.0130394 | 0.0138844 |
| upper surface | 0.0153768 | 0.107486 |
| upper surface | 0.0203268 | 0.0957088 |
| upper surface | 0.0259513 | 0.0627779 |
| upper surface | 0.0291876 | 0.0196206 |
| upper surface | 0.0326083 | 0.0515092 |
| upper surface | 0.0395943 | 0.0625516 |
| upper surface | 0.0472292 | 0.0503063 |
| upper surface | 0.0515147 | 0.0213436 |
| upper surface | 0.0559765 | 0.0546432 |
| upper surface | 0.064912 | 0.071538 |
| upper surface | 0.0744628 | 0.0556815 |
| upper surface | 0.0797447 | 0.022874 |
| upper surface | 0.0851924 | 0.0577564 |
| upper surface | 0.0959669 | 0.0767119 |
| upper surface | 0.107316 | 0.0602766 |
| upper surface | 0.113528 | 0.0259665 |
| upper surface | 0.119895 | 0.0606712 |
| upper surface | 0.132375 | 0.078505 |
| upper surface | 0.145381 | 0.0611597 |
| upper surface | 0.152448 | 0.0241525 |
| upper surface | 0.159654 | 0.0621767 |
| upper surface | 0.173686 | 0.082247 |
| upper surface | 0.188189 | 0.0637672 |
| upper surface | 0.196022 | 0.0248964 |
| upper surface | 0.203979 | 0.0648001 |
| upper surface | 0.219389 | 0.0859227 |
| upper surface | 0.235209 | 0.0667461 |
| upper surface | 0.243712 | 0.0257662 |
| upper surface | 0.252321 | 0.06788 |
| upper surface | 0.268918 | 0.0902676 |
| upper surface | 0.28586 | 0.0703175 |
| upper surface | 0.294928 | 0.0268636 |
| upper surface | 0.304083 | 0.0716751 |
| upper surface | 0.321662 | 0.0956326 |
| upper surface | 0.339516 | 0.0747343 |
| upper surface | 0.349037 | 0.0283094 |
| upper surface | 0.358624 | 0.0764358 |
| upper surface | 0.376968 | 0.102376 |
| upper surface | 0.395513 | 0.0802956 |
| upper surface | 0.405369 | 0.0302414 |
| upper surface | 0.41527 | 0.0824805 |
| upper surface | 0.434151 | 0.110964 |
| upper surface | 0.453158 | 0.0873979 |
| upper surface | 0.463227 | 0.0328285 |
| upper surface | 0.47332 | 0.090245 |
| upper surface | 0.492506 | 0.122043 |
| upper surface | 0.51174 | 0.0965941 |
| upper surface | 0.521897 | 0.0362952 |
| upper surface | 0.532057 | 0.100352 |
| upper surface | 0.551309 | 0.136545 |
| upper surface | 0.570532 | 0.108692 |
| upper surface | 0.580652 | 0.0409653 |
| upper surface | 0.590753 | 0.113729 |
| upper surface | 0.609835 | 0.155887 |
| upper surface | 0.628809 | 0.124931 |
| upper surface | 0.638767 | 0.0473388 |
| upper surface | 0.648684 | 0.131828 |
| upper surface | 0.667358 | 0.182324 |
| upper surface | 0.685849 | 0.147315 |
| upper surface | 0.695521 | 0.0562402 |
| upper surface | 0.705132 | 0.157047 |
| upper surface | 0.723168 | 0.219686 |
| upper surface | 0.740947 | 0.179313 |
| upper surface | 0.750214 | 0.0691338 |
| upper surface | 0.759399 | 0.193653 |
| upper surface | 0.776575 | 0.275027 |
| upper surface | 0.793422 | 0.22747 |
| upper surface | 0.802169 | 0.0888641 |
| upper surface | 0.810815 | 0.249967 |
| upper surface | 0.826917 | 0.362832 |
| upper surface | 0.842624 | 0.305691 |
| upper surface | 0.850743 | 0.121669 |
| upper surface | 0.858744 | 0.344392 |
| upper surface | 0.873573 | 0.517896 |
| upper surface | 0.887946 | 0.449019 |
| upper surface | 0.895337 | 0.187569 |
| upper surface | 0.902592 | 0.517826 |
| upper surface | 0.915966 | 0.854565 |
| upper surface | 0.928826 | 0.792304 |
| upper surface | 0.935397 | 0.116923 |
| upper surface | 0.941818 | 1.42553 |
| upper surface | 0.95357 | 1.35144 |
| upper surface | 0.964759 | 0.618934 |
| upper surface | 0.970429 | 3.40859 |
| upper surface | 0.975936 | 3.91746 |
| upper surface | 0.985922 | 13.6999 |
| upper surface | 0.995301 | 8.27817 |
| upper surface | 1 | -93.4709 |
| lower surface | 9.7595e-05 | 0.206238 |
| lower surface | 8.1813e-04 | -0.0324149 |
| lower surface | 0.00223893 | -0.295079 |
| lower surface | 0.00326997 | 0.236239 |
| lower surface | 0.004495 | -0.0275856 |
| lower surface | 0.00734795 | 0.00431335 |
| lower surface | 0.0108925 | 0.0147625 |
| lower surface | 0.0130394 | -0.0172116 |
| lower surface | 0.0153768 | 0.0343474 |
| lower surface | 0.0203268 | 0.0387242 |
| lower surface | 0.0259513 | 0.0318193 |
| lower surface | 0.0291876 | 0.0130679 |
| lower surface | 0.0326083 | 0.0348689 |
| lower surface | 0.0395943 | 0.0424812 |
| lower surface | 0.0472292 | 0.0350185 |
| lower surface | 0.0515147 | 0.015909 |
| lower surface | 0.0559765 | 0.0382264 |
| lower surface | 0.064912 | 0.0506038 |
| lower surface | 0.0744628 | 0.0407491 |
| lower surface | 0.0797447 | 0.0166875 |
| lower surface | 0.0851924 | 0.0425786 |
| lower surface | 0.0959669 | 0.0568876 |
| lower surface | 0.107316 | 0.0449294 |
| lower surface | 0.113528 | 0.0179522 |
| lower surface | 0.119895 | 0.046514 |
| lower surface | 0.132375 | 0.0622373 |
| lower surface | 0.145381 | 0.0488684 |
| lower surface | 0.152448 | 0.0192006 |
| lower surface | 0.159654 | 0.0502961 |
| lower surface | 0.173686 | 0.0672666 |
| lower surface | 0.188189 | 0.0527075 |
| lower surface | 0.196022 | 0.0204597 |
| lower surface | 0.203979 | 0.0540961 |
| lower surface | 0.219389 | 0.0723247 |
| lower surface | 0.235209 | 0.0566595 |
| lower surface | 0.243712 | 0.0217406 |
| lower surface | 0.252321 | 0.0582115 |
| lower surface | 0.268918 | 0.0772949 |
| lower surface | 0.28586 | 0.0615325 |
| lower surface | 0.294928 | 0.0255605 |
| lower surface | 0.304083 | 0.0634801 |
| lower surface | 0.321662 | 0.0840622 |
| lower surface | 0.339516 | 0.0661296 |
| lower surface | 0.349037 | 0.0245595 |
| lower surface | 0.358624 | 0.0681857 |
| lower surface | 0.376968 | 0.0917085 |
| lower surface | 0.395513 | 0.0723299 |
| lower surface | 0.405369 | 0.0272565 |
| lower surface | 0.41527 | 0.0746973 |
| lower surface | 0.434151 | 0.100917 |
| lower surface | 0.453158 | 0.0798356 |
| lower surface | 0.463227 | 0.0300234 |
| lower surface | 0.47332 | 0.0827948 |
| lower surface | 0.492506 | 0.112368 |
| lower surface | 0.51174 | 0.0892691 |
| lower surface | 0.521897 | 0.0335918 |
| lower surface | 0.532057 | 0.0930774 |
| lower surface | 0.551309 | 0.127043 |
| lower surface | 0.570532 | 0.101458 |
| lower surface | 0.580652 | 0.0382921 |
| lower surface | 0.590753 | 0.106484 |
| lower surface | 0.609835 | 0.146363 |
| lower surface | 0.628809 | 0.117637 |
| lower surface | 0.638767 | 0.0446268 |
| lower surface | 0.648684 | 0.124457 |
| lower surface | 0.667358 | 0.172567 |
| lower surface | 0.685849 | 0.139793 |
| lower surface | 0.695521 | 0.0534152 |
| lower surface | 0.705132 | 0.149369 |
| lower surface | 0.723168 | 0.209438 |
| lower surface | 0.740947 | 0.171353 |
| lower surface | 0.750214 | 0.0661046 |
| lower surface | 0.759399 | 0.185426 |
| lower surface | 0.776575 | 0.263934 |
| lower surface | 0.793422 | 0.218776 |
| lower surface | 0.802169 | 0.0855018 |
| lower surface | 0.810815 | 0.240832 |
| lower surface | 0.826917 | 0.350344 |
| lower surface | 0.842624 | 0.295775 |
| lower surface | 0.850743 | 0.117775 |
| lower surface | 0.858744 | 0.333695 |
| lower surface | 0.873573 | 0.502996 |
| lower surface | 0.887946 | 0.436936 |
| lower surface | 0.895337 | 0.182496 |
| lower surface | 0.902592 | 0.504675 |
| lower surface | 0.915966 | 0.834203 |
| lower surface | 0.928826 | 0.774111 |
| lower surface | 0.935397 | 0.109626 |
| lower surface | 0.941818 | 1.40596 |
| lower surface | 0.95357 | 1.33061 |
| lower surface | 0.964759 | 0.609569 |
| lower surface | 0.970429 | 4.57968 |
| lower surface | 0.975936 | 1.01182 |
| lower surface | 0.985922 | 16.1325 |
| lower surface | 0.995301 | 15.24 |

Provenance: gyre 0.4.0; revision `39979fcf90` (commit `39979fcf902ad6116eb550b881b4278d4599c8e2`); 2026-11-12T11:35:15-0500; device gpu · NVIDIA GeForce RTX 3060 Ti; quick suite. **Revision check: Same code as this build.** Produced by 39979fcf902ad6116eb550b881b4278d4599c8e2. Every commit between it and the commit this site was built from (ceb1f4b0bed41de53e586df10858079f5a2bcdd8) changes only documentation text, evidence records or bookkeeping: the code is the same. Full record: [example_airfoil.json](../data/verification/example_airfoil.json).

<!-- begin level 2 (Practice) -->
**[L2 Practice] What this is**

One adjoint solve returns $\mathrm dc_l/\mathrm d\mathbf x$ for every surface geometry node. The
chart shows its vertical component along the chord: where pushing the surface up raises the
lift, and by how much. A geometry parameterisation maps design variables to node displacements
and contracts them with this field ([MDO integration](../guide/mdo-integration.md)).

<!-- end level 2 -->

<!-- begin level 3 (Mechanics) -->
**[L3 Mechanics] Why the sensitivity is large at the edges**

Lift responds strongly to changes of the effective camber line near the trailing edge (the
Kutta condition) and to the nose shape. Individual node sensitivities also scale with the
surface area a node represents, so their magnitude follows the node clustering; a smooth
parameterisation integrates over this.

<!-- end level 3 -->
