---
title: Laminar cylinder
summary: A viscous case with separation — the steady wake of a circular cylinder at Reynolds number 40 — showing no-slip walls, skin friction and the separation point.
section: examples
order: 3
level: 1
study: example_cylinder
keywords: [cylinder, laminar, Navier-Stokes, separation, skin friction, example]
---
<!-- gyre docs: expanded Markdown of examples/cylinder-re40.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. -->

**Flow field: Streamwise velocity: the closed recirculation bubble behind the cylinder.** Interactive viewer in the HTML page (initially showing `velocity_x`). Part of the domain: window x ∈ [-3, 8], y ∈ [-4, 4] · the 146 mesh elements that reach into it · 8×8 points each. Sampled solution (coordinates and fields, base64 float32): [field.json](../data/fields/example_cylinder/field.json).

| Field | Minimum in the sample | Maximum in the sample |
|---|---|---|
| velocity_x | -0.0964028 | 1.16054 |
| mach | 8.0295e-05 | 0.235896 |
| pressure | 17.3774 | 18.487 |
| temperature | 0.997407 | 1.00876 |

Provenance: gyre 0.4.0; revision `39979fcf90` (commit `39979fcf902ad6116eb550b881b4278d4599c8e2`); 2026-11-12T11:47:06-0500; device cpu; source `example_cylinder/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: laminar cylinder, Re = 40** (study `example_cylinder`): **PASSED**, 4 of 4 checks passed, 51.5 s.

Steady separated flow past a circular cylinder at Re_D = 40, Mach 0.2 (p = 3, 24 x 10 curved elements). Surface pressure and skin friction over the upper half, from the front stagnation point (0°) to the rear (180°).

| Check | Value | Expected | Result |
|---|---|---|---|
| converged | yes | true | pass |
| drag coefficient | 1.53727 | 1.45 … 1.65 | pass |
| front stagnation cp | 1.15293 | 1.0 … 1.25 | pass |
| separation angle from the rear stagnation point [deg] | 53.7473 | 45 … 60 | pass |

Provenance: gyre 0.4.0; revision `39979fcf90` (commit `39979fcf902ad6116eb550b881b4278d4599c8e2`); 2026-11-12T11:47:06-0500; device cpu; 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_cylinder.json](../data/verification/example_cylinder.json).

```bash
gyre run cylinder_re40 -o runs/cylinder
```

The preset uses a 24 × 10 curved O-mesh reaching 40 diameters, $p = 3$, an adiabatic no-slip
wall and a far-field boundary at Mach 0.2.

**Table: Outputs** (Example: laminar cylinder, Re = 40)

| cd | cl | separation from rear [deg] | Newton steps | DOF | field |
|---|---|---|---|---|---|
| 1.53727 | -1.7153e-14 | 53.7473 | 16 | 15360 | example_cylinder/field.json |

Provenance: gyre 0.4.0; revision `39979fcf90` (commit `39979fcf902ad6116eb550b881b4278d4599c8e2`); 2026-11-12T11:47:06-0500; device cpu; 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_cylinder.json](../data/verification/example_cylinder.json).

**Chart: Surface pressure coefficient** (Example: laminar cylinder, Re = 40). Line chart of cp against θ from front stagnation [deg]; 1 series. The table holds the plotted data.

| θ from front stagnation [deg] | cp |
|---|---|
| 4.1459 | 1.15293 |
| 10.8541 | 1.07967 |
| 15 | 1.00662 |
| 15 | 1.00292 |
| 19.1459 | 0.905836 |
| 25.8541 | 0.710071 |
| 30 | 0.573596 |
| 30 | 0.567372 |
| 34.1459 | 0.419849 |
| 40.8541 | 0.165764 |
| 45 | 0.00371642 |
| 45 | 0.0107632 |
| 49.1459 | -0.145918 |
| 55.8541 | -0.377553 |
| 60 | -0.502503 |
| 60 | -0.508746 |
| 64.1459 | -0.615786 |
| 70.8541 | -0.761584 |
| 75 | -0.825954 |
| 75 | -0.829818 |
| 79.1459 | -0.874213 |
| 85.8541 | -0.916813 |
| 90 | -0.922989 |
| 90 | -0.922387 |
| 94.1459 | -0.91662 |
| 100.854 | -0.887142 |
| 105 | -0.861206 |
| 105 | -0.859542 |
| 109.146 | -0.830883 |
| 115.854 | -0.777551 |
| 120 | -0.747173 |
| 120 | -0.744984 |
| 124.146 | -0.715562 |
| 130.854 | -0.668527 |
| 135 | -0.644654 |
| 135 | -0.643014 |
| 139.146 | -0.620141 |
| 145.854 | -0.586121 |
| 150 | -0.567973 |
| 150 | -0.56663 |
| 154.146 | -0.550636 |
| 160.854 | -0.526003 |
| 165 | -0.514384 |
| 165 | -0.513175 |
| 169.146 | -0.504217 |
| 175.854 | -0.494036 |
| 180 | -0.492681 |
| 180 | -0.492681 |

Provenance: gyre 0.4.0; revision `39979fcf90` (commit `39979fcf902ad6116eb550b881b4278d4599c8e2`); 2026-11-12T11:47:06-0500; device cpu; 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_cylinder.json](../data/verification/example_cylinder.json).

**Chart: Skin-friction coefficient (signed)** (Example: laminar cylinder, Re = 40). Line chart of cf against θ from front stagnation [deg]; 1 series. The table holds the plotted data. The sign change marks separation; literature places it about 53° from the rear stagnation point at Re = 40.

| θ from front stagnation [deg] | cf |
|---|---|
| 4.1459 | 0.0734808 |
| 10.8541 | 0.185903 |
| 15 | 0.258294 |
| 15 | 0.250527 |
| 19.1459 | 0.318278 |
| 25.8541 | 0.40863 |
| 30 | 0.460132 |
| 30 | 0.456147 |
| 34.1459 | 0.49935 |
| 40.8541 | 0.548881 |
| 45 | 0.568988 |
| 45 | 0.568032 |
| 49.1459 | 0.578289 |
| 55.8541 | 0.576352 |
| 60 | 0.559642 |
| 60 | 0.564671 |
| 64.1459 | 0.539849 |
| 70.8541 | 0.49041 |
| 75 | 0.44672 |
| 75 | 0.452809 |
| 79.1459 | 0.406092 |
| 85.8541 | 0.331474 |
| 90 | 0.284805 |
| 90 | 0.280959 |
| 94.1459 | 0.236672 |
| 100.854 | 0.167521 |
| 105 | 0.128622 |
| 105 | 0.129719 |
| 109.146 | 0.0947858 |
| 115.854 | 0.0488208 |
| 120 | 0.0265861 |
| 120 | 0.0265019 |
| 124.146 | 0.00717135 |
| 130.854 | -0.0156629 |
| 135 | -0.0251225 |
| 135 | -0.0255124 |
| 139.146 | -0.033027 |
| 145.854 | -0.0402093 |
| 150 | -0.0415744 |
| 150 | -0.0418127 |
| 154.146 | -0.041486 |
| 160.854 | -0.0368469 |
| 165 | -0.0307411 |
| 165 | -0.0314626 |
| 169.146 | -0.0240381 |
| 175.854 | -0.00990457 |
| 180 | -5.8400e-04 |
| 180 | 5.8400e-04 |

Provenance: gyre 0.4.0; revision `39979fcf90` (commit `39979fcf902ad6116eb550b881b4278d4599c8e2`); 2026-11-12T11:47:06-0500; device cpu; 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_cylinder.json](../data/verification/example_cylinder.json).

<!-- begin level 2 (Practice) -->
**[L2 Practice] What to look for**

* Pressure recovers only partly on the rear half: the flow has separated.
* The skin friction changes sign where the flow separates. Its location is reported in the
  table as the angle from the rear stagnation point.
* The drag coefficient is compared with the literature in
  [Physical validation](../verification/validation.md).

<!-- end level 2 -->

<!-- begin level 3 (Mechanics) -->
**[L3 Mechanics] Viscous specifics**

The wall imposes zero velocity through the BR2 lifting and zero heat flux through the viscous
boundary flux ([boundary conditions](../theory/boundary-conditions.md)). The numerical energy
flux through the adiabatic wall is zero by construction, for any state. The
[validation study](../verification/validation.md) checks instead that the conduction the
converged solution carries at the wall, which vanishes for the exact solution, decreases with
the polynomial degree. The Reynolds number is a differentiable input: `--gradients --of cd --wrt re,mach`.

<!-- end level 3 -->
