Gaspar García, CFD portfolio

All cases

Caveated

Laminar cylinder wake at Re 150: the Strouhal number is within 0.84 % of a published simulation on all four grids

Only the shedding frequency holds up. On the finest grid St is 0.1839 against 0.1841 (−0.13 %), but the three finest grids do not converge monotonically, so the shared GCI tool refuses a three-grid band. Mean drag and the lift fluctuation are +1.35 % and +5.5 % off and have no defensible band at all.

Strouhal number, simulation
0.1839
finest of four grids
Strouhal number, reference
0.1841
Qu et al. 2013, a 2-D simulation
Signed difference
−0.13 %
simulation minus reference
Numerical uncertainty
GCI refused
three finest grids; least squares on four: 0.1828 ± 0.97 %
Case
2-D circular cylinder in uniform flow, laminar
Solver
OpenFOAM v2412, pimpleFoam
Turbulence model
None (laminar)
Cells
5,600 to 44,800 (four grids)
Reynolds number
150
Status
Caveated
Updated
2026-11-14

2Geometry, mesh, results

Circular cylinder in an O-shaped domain reaching 50 diameters; the cylinder wall and the far-field boundary drawn as lines.

Geometry: Circular cylinder in an O-shaped domain reaching 50 diameters; the cylinder wall and the far-field boundary drawn as lines.

3Case parameters

Reynolds number (free-stream speed, diameter)150
ScalesNon-dimensional: D = 1, U = 1, kinematic viscosity 0.006666666667 (1/Re)
DomainO-grid to a radius of 50 D
SolverOpenFOAM v2412, pimpleFoam (transient, incompressible)
Turbulence modelNone: laminar
Wall treatmentResolved: first radial cell 0.0067 D on the finest grid
Time step, finest grid0.005
Cells5,600, 11,200, 22,572, 44,800
Run costNot recorded

4Experiment

There is no experiment on this page. The reference is a published set of 2-D simulations: Qu, Norberg and Davidson (2013), Table 3, the Re 150 row with a domain of H = 100 diameters, computed on 386 × 322 cells, time step 0.01. I read the table from the paper myself (the values are transcribed in the case's SPEC.md).

The reference gives mean drag 1.305, rms lift 0.3546 and Strouhal number 0.1841. The rms drag 0.0173 is not a printed column: it follows from the paper's lift-to-drag fluctuation ratio, as the SPEC records.

A direct numerical simulation value of St 0.183 (Inoue and Hatakeyama 2002) is quoted by two later papers; I could not obtain the original, so I do not compare against it.

Stated uncertaintyNo uncertainty is stated for the reference values. The authors report sensitivities: at Re 100, changing the domain size moved the forces by about 1.2 % in CD and 1.9 % in CL'; a coarser time step cut the fluctuations by 9.8 % in CL' and about 16 % in CD'.
Blockage and correctionsNot applicable: a simulation reference, no tunnel.
LicenceValues quoted from Qu, Norberg and Davidson (2013), Table 3 (author's version, Chalmers Publication Library). The paper is cited, not redistributed.

Reference values, Qu et al. 2013 Table 3, Re 150: mean drag 1.305, rms lift 0.3546, Strouhal number 0.1841

5Set-up

A cylinder of unit diameter in a circular domain of radius 50 D, one cell thick in the span. Four geometrically similar O-grids, each refined by about 1.41 in both directions at a constant wall-normal expansion ratio (300 from first to last radial cell). The time step scales with the cell size, so the Courant number stays the same on every grid.

The initial velocity carries a small cross-flow component, (1 0.02 0), to start the shedding sooner. Shedding saturates from about t about 87; the statistics use the last 10 lift cycles, t = 141.674 to 196.064 on the finest grid, of a run to t = 200.

Boundary conditions
BoundaryTypeValue
Cylinder wallno-slip (noSlip); pressure zeroGradient
Far field (circle at 50 D)freestreamVelocity; freestreamPressureU (1 0 0); p 0
Front and backempty (2-D)

Numerics and convergence

pimpleFoam in PISO mode (1 outer corrector, 2 pressure correctors), backward time stepping, Gauss linear convection. Maximum Courant number over the run 0.877 on the finest grid.

Force coefficients use a reference area of 0.1 (the one-cell span times the diameter), free-stream speed 1 and length 1.

6Mesh

Cells, finest grid44,800
StructureO-grid, four blocks of 80 × 140 cells (around, radial)
First radial cell, finest grid0.0067 D
Max non-orthogonality1.7e-06 degrees
Max skewness0.012
Max aspect ratio2.04
checkMesh verdict, finest grid“Mesh OK.”
The four grids. St, mean Cd and rms Cl are each grid's RESULT.txt values over its last 10 lift cycles.
GridCellsTime stepStMean Cdrms ClMax skewnesscheckMesh
g0.3536 (coarsest)5,6000.01414030.1856411.32390.3635210.038“Mesh OK.”
g0.511,2000.010.1845921.334630.3847730.025“Mesh OK.”
g0.707122,5720.007071140.1845131.329970.3789150.017“Mesh OK.”
g1 (finest)44,8000.0050.1838551.322660.3741230.012“Mesh OK.”

Every grid passed checkMesh. Mean drag and rms lift go up then down with refinement; the coarsest grid is the outlier.

7Results

On the finest grid the Strouhal number is 0.183855, against 0.1841 from Qu et al. (−0.13 %). Every grid is within 0.84 %.

Strouhal number on the four grids, from 0.185641 on 5,600 cells to 0.183855 on 44,800, against the reference 0.1841 (dashed). The last step (−0.36 %) is larger than the one before it (−0.04 %), so St has not clearly stopped moving.
Lift coefficient on the finest grid over the last 10 shedding periods to t = 200, every second row of the solver's force file (time step 0.005), values unchanged. rms lift over the statistics window 0.374123.
QuantityReference (Qu et al. 2013)Simulation, finest gridSigned difference
Strouhal number0.18410.183855−0.13 %
Mean drag coefficient (non-monotone in the grid)1.3051.32266+1.35 %
rms lift coefficient (non-monotone in the grid)0.35460.374123+5.5 %
rms drag coefficient (non-monotone in the grid)0.01730.0189802+9.7 %

The lift history over the last 10 periods is a clean, single-frequency oscillation, so the shedding is saturated and periodic. The frequency agrees with the reference to well under a percent on every grid; the force levels agree less well.

Mean drag is +1.35 % above the reference, rms lift +5.5 % and rms drag +9.7 %. None of the three converges monotonically on the four grids, so these differences have no numerical band and I do not claim them.

8Numerical accuracy

Strouhal number, four grids, least squares (Eça and Hoekstra, the shared gci.py): observed order 0.866, extrapolated value 0.1828, uncertainty 0.97 % of the finest-grid value. That band rests on the coarsest grid: on the three finest grids alone the tool refuses a GCI (e32/e21 = 0.1201, no positive-order solution).

So the honest statement is that St lies within 0.84 % of the reference on all four grids, not that it is verified to 0.97 %. A fifth grid of 89,496 cells is owed.

Mean drag: the least-squares fit is anomalous (p <= 0 in both delta_RE fits) and its band, 8.8 %, is a charge for the scatter, not an error estimate. rms lift: BAD fit, band 12.2 %; rms drag 17.9 % (lane audit).

Output of the shared GCI tool, unedited

Strouhal number, four grids, least squares

LSR      Eca & Hoekstra 2014 least-squares, ng=4  (h sorted finest->coarsest: 1.0000, 1.4088, 2.0000, 2.8284)
         f: 0.183855, 0.184513, 0.184592, 0.185641
         delta_RE unweighted p =   1.4844   sigma = 0.0003278
         delta_RE eq16       p =   0.8662   sigma = 0.0003255
         observed order p = 0.866   (formal 2.0)   verdict: apparently monotonic
         chosen fit: p-free (eq16)   phi0 = 0.182800   alpha = 0.00111654
         sigma = 0.0003255   Delta_phi = 0.0005953   F_sigma = 0.547  (want < 1)
         U_phi(finest) = 0.00178237  (0.969 % of f_fine; eq (20); Fs=1.25; eps=0.001117, sigma=0.0003255, |f-fit|=6.119e-05)

Strouhal number, three finest grids

GCI REFUSED: e32/e21 = 0.1201 <= the p->0+ limit 1.0223 (= ln(r32)/ln(r21)): NO POSITIVE-ORDER SOLUTION EXISTS. The errors are not shrinking fast enough under refinement to be consistent with any convergent order -- the true apparent order is NEGATIVE (the solution DIVERGES with refinement). No GCI is defensible. Report the spread.

Mean drag, four grids, least squares

LSR      Eca & Hoekstra 2014 least-squares, ng=4  (h sorted finest->coarsest: 1.0000, 1.4088, 2.0000, 2.8284)
         f: 1.322660, 1.329970, 1.334630, 1.323900
         delta_RE unweighted p =  -4.0000   sigma = 0.008039
         delta_RE eq16       p =  -4.0000   sigma = 0.006436
         observed order p = n/a   (formal 2.0)   verdict: anomalous (p <= 0 in both delta_RE fits)
         chosen fit: 1&2 combined (unweighted)   phi0 = 1.284030   alpha = 0.0516712   alpha2 = -0.0132747
         sigma = 0.000668   Delta_phi = 0.00399   F_sigma = 0.167  (want < 1)
         U_phi(finest) = 0.116091  (8.777 % of f_fine; eq (20); Fs=3.00; eps=0.0384, sigma=0.000668, |f-fit|=0.0002333)
         WARNING: delta_RE (unweighted) p=-4.000 sits at the edge of the search window (-4.0, 8.0) -- not a physical order.
         WARNING: delta_RE (eq16) p=-4.000 sits at the edge of the search window (-4.0, 8.0) -- not a physical order.
         WARNING: Fs escalated to 3 (no p > 0) -- Sec. 3 p.108.
         WARNING: delta_RE NOT used: p impossible to establish (both delta_RE fits p <= 0): 6 fixed-exponent fits (App. A bullet 3). Chosen '1&2 combined' (unweighted) on smallest sigma.

rms lift, four grids, least squares

LSR      Eca & Hoekstra 2014 least-squares, ng=4  (h sorted finest->coarsest: 1.0000, 1.4088, 2.0000, 2.8284)
         f: 0.374123, 0.378915, 0.384773, 0.363521
         delta_RE unweighted p =   8.0000   sigma = 0.008266
         delta_RE eq16       p =   8.0000   sigma = 0.008371
         observed order p = 8.000   (formal 2.0)   verdict: apparently monotonic (p > 0) with non-monotonic scatter
         chosen fit: p=2 (eq16)   phi0 = 0.379292   alpha = -0.00114297
         sigma = 0.008134   Delta_phi = 0.007084   F_sigma = 1.148  (want < 1)
         U_phi(finest) = 0.0458279  (12.249 % of f_fine; eq (21); Fs=3.00; eps=0.001143, sigma=0.008134, |f-fit|=0.004026)
         WARNING: delta_RE (unweighted) p=8.000 sits at the edge of the search window (-4.0, 8.0) -- not a physical order.
         WARNING: delta_RE (eq16) p=8.000 sits at the edge of the search window (-4.0, 8.0) -- not a physical order.
         WARNING: raw data are NOT monotone in h (scatter); the paper classifies by p > 0 and charges the scatter through sigma and |phi - phi_fit|.
         WARNING: sigma=0.008134 >= Delta_phi=0.007084: BAD fit (F_sigma=1.15 > 1). U from eq (21); the paper says this 'indicates clearly that the data quality is bad'.
         WARNING: Fs escalated to 3 (p=8.000 outside [0.5, 2.14), sigma >= Delta_phi) -- Sec. 3 p.108.
         WARNING: delta_RE NOT used: p=8.000 > 2: 4 fixed-exponent fits (App. A bullet 2). Chosen 'p=2' (eq16) on smallest sigma.
         WARNING: observed p=8.000 EXCEEDS the formal order 2.0 by >15% -- a warning, not a bonus.

From data/cylinder-re150/gci.json (st_lsr_4grid), data/cylinder-re150/gci.json (st_gci_3finest), data/cylinder-re150/gci.json (cd_lsr_4grid), data/cylinder-re150/gci.json (clrms_lsr_4grid), written by pipeline/build_assets.py.

9Why they differ, and what I distrust

Limits, as recorded in the ledger. Only St is defensible: -0.13 % vs Qu et al. 2013 on the finest grid and within 0.9 % on all four, but the three finest grids are not monotone (GCI refused) and the extrapolated value is 0.1828. Cd +1.4 %, CL' +5.5 %, CD' +9.7 % with BAD fits (bands 9-18 %). The Curle noise level has no numeric reference; DNS St 0.183 is second-hand. A finer grid (89k) is owed.

  • The reference is another simulation, so this is a code-to-code comparison, not a validation against experiment.
  • St on the three finest grids does not converge monotonically: the last refinement step (−0.36 %) is several times the one before (−0.04 %).
  • Mean drag, rms lift and rms drag scatter with refinement and the coarsest grid is an outlier; their least-squares bands describe bad fits.
  • rms drag is the quantity most sensitive to the time step in the reference paper, and my time steps differ from its 386 × 322 cells, time step 0.01.
  • The case also computes far-field noise with Curle's analogy. There is no numeric reference for the noise level, so I do not show it.
  • The flow is 2-D and laminar by design.

10References

  1. Qu, L., Norberg, C., Davidson, L. (2013), Quantitative numerical analysis of flow past a circular cylinder at Reynolds number between 50 and 200, J. Fluids Struct. 39, 347-370 (author's version, Chalmers Publication Library). Table 3.
  2. Inoue, O. & Hatakeyama, N. (2002), Sound generation by a two-dimensional circular cylinder in a uniform flow, J. Fluid Mech. 471, 285-314. Not obtained; its St is known here only second-hand and is not used.
  3. Eça and Hoekstra (2014): the least-squares numerical-uncertainty procedure, as implemented in the project's gci.py.

Source files

  • D:/CFD/aeroacoustics/cylinder-re150/g0.3536/, g0.5/, g0.7071/, g1/ (RESULT.txt, meta.txt, log.checkMesh)
  • D:/CFD/aeroacoustics/cylinder-re150/g1/0/, constant/, system/
  • D:/CFD/aeroacoustics/cylinder-re150/g1/postProcessing/forceCoeffs1/0/coefficient.dat
  • D:/CFD/aeroacoustics/cylinder-re150/make_case.py
  • D:/CFD/data/aeroacoustics/cylinder-re150/SPEC.md (section 8: Qu et al. Table 3)
  • investigation/lane-D-propeller-cylinder.md (evidence audit, recomputed differences)
  • site/public/data/cylinder-re150/ (force_coefficients.csv, README.txt, chart JSON and gci.json from pipeline/case_data/cylinder-re150.py)

Last updated 2026-11-14. One-page summary (prints to one A4 page), also as a PDF. Every number on this page is checked against its source file by pipeline/check_numbers.py.