CelerisLab/tests/specs/Sah04_validation.md

8.5 KiB

Sah04 confined-cylinder validation against [Sah04]

Goal

This validation should use a small set of direct periodic anchors from [Sah04], plus a small secondary block for near-onset flow-state checks.

The main design rules are:

  • do not use interpolated values from figures as hard targets
  • do not use points on or extremely near critical curves as primary pass fail anchors
  • report realized blockage and realized Reynolds number, not just nominal inputs
  • use finer grids for high blockage so the narrow wall gaps are not under-resolved

This keeps the primary matrix small but still representative across moderate and high confinement.

What counts as a hard benchmark from [Sah04]

The strongest periodic-flow anchors are the direct DNS values stated in the paper for developed unsteady states.

Case Blockage beta Reynolds number St target Why it is a hard anchor
S1 0.3 100 0.2115 direct periodic DNS value
S2 0.5 200 0.3513 direct periodic DNS value
S3 0.8 160 T ≈ 1.806, so St ≈ 0.5537 direct case given in the paper
S4 0.9 200 0.5314 direct periodic DNS value

These should be the primary Sah04 validation anchors.

What should not be a hard target

The following are useful for qualitative or secondary checks, but not for the main validation gate:

  • critical onset values from Table IV
  • any St or force value obtained by reading or interpolating a plot
  • cases chosen only to complete a rectangular parameter grid
  • points too close to the codimension two region or nearby neutral stability boundaries

This matters because the paper's stability map has several sensitive regions, especially at high blockage and near symmetry breaking. In the stability figure from [Sah04] shown above, those boundaries are exactly where a small setup difference can change the observed state.

Geometry and blockage mapping

Keep the confined-channel layout and no-slip walls.

The validation table must always report both nominal and realized blockage.

With D = 30 lattice units, the recommended realizations are:

Case beta_nominal Suggested H beta_real Notes
S1 0.3 100 0.3000 exact
S2 0.5 60 0.5000 exact
S3 0.8 38 or 37 0.7895 or 0.8108 pick one and report it explicitly
S4 0.9 33 0.9091 use this, not H = 35

Do not silently rename beta_real as the paper blockage.

Grid density policy

High blockage cases need more wall-normal resolution than the base grid.

Minimum rule:

  • for beta < 0.8, the baseline grid with D = 30 is acceptable for the first pass
  • for beta >= 0.8, increase grid density by at least 2 times in each spatial direction before treating the result as validation quality

A practical way to do this is to keep geometry similarity while doubling the characteristic resolution:

  • base cases: D = 30
  • high blockage validation cases: at least D = 60

Recommended high blockage realizations on the refined grid:

Case beta_nominal Suggested refined D Suggested refined H beta_real
S3 0.8 60 75 0.8000
S4 0.9 60 67 0.8955

The point of this refinement is not only bulk accuracy. It is also to resolve the narrow cylinder wall gaps and reduce the risk that blockage effects are dominated by lattice geometry error.

Primary matrix

This is the main Sah04 validation set.

Case beta_nominal Primary target Role
S1 0.3 Re = 100, St = 0.2115 moderate blockage periodic anchor
S2 0.5 Re = 200, St = 0.3513 medium blockage periodic anchor
S3 0.8 Re = 160, St ≈ 0.5537 high blockage periodic anchor
S4 0.9 Re = 200, St = 0.5314 very high blockage periodic anchor

This matrix is smaller than the older grid, but it covers:

  • moderate confinement
  • stronger confinement
  • high blockage periodic shedding
  • very high blockage periodic shedding

Secondary onset block

These cases are recommended as flow-state checks, not hard St benchmarks.

Case beta_nominal Suggested Re Why it is useful How to judge it
SO1 0.5 about 130 safely above first onset without sitting on the boundary confirm sustained periodic state
SO2 0.7 about 120 tests near-onset behavior in a more sensitive blockage range confirm sustained periodic state

These points exist to answer a different question from the primary matrix:

  • does the solver enter and maintain the right flow regime once slightly above onset

For SO1 and SO2, judge by:

  • persistent nonzero C'_L
  • a clean dominant spectral peak
  • repeatable periodic wake structure

Do not fail these runs because the measured St differs slightly from a value read from a nearby figure.

Inlet and wall policy

Sah04 is a confined-channel benchmark, so inlet consistency matters more than inlet variety.

Collision Wall Inlet Status
SRT no slip channel_stabilized primary
TRT no slip channel_stabilized primary
MRT no slip channel_stabilized primary

Keep the inlet family fixed across collision models in the primary matrix.

Secondary inlet comparison, only after the primary set is working:

Collision Optional inlet Status
MRT regularized or zou_he_local exploratory
SRT or TRT equilibrium or regularized exploratory

Realized Reynolds number check

This is mandatory for Sah04.

For each run, record:

  • nominal inlet definition
  • developed downstream velocity profile
  • measured U_max,real
  • measured bulk velocity if available
  • beta_nominal
  • beta_real
  • Re_nominal
  • Re_real

Use the paper-consistent label


Re_{real} = \frac{U_{max,real} D}{\nu}

for the final comparison table.

If Re_real drifts materially from the intended target, treat that as a setup problem before treating it as a Strouhal miss.

Run policy

Case block Total steps Burn Statistics
S1 and S2 100000 to 160000 first 35 to 40 percent last 60 to 65 percent
S3 and S4 180000 to 260000 first 45 percent last 55 percent
SO1 and SO2 140000 to 220000 first 45 percent last 55 percent

For high blockage refined runs, prefer the longer end of the window.

Evaluation rule

Use a two-layer rule.

Primary periodic anchors

Case Hard target use
S1 to S4 hard periodic benchmark anchors

Preferred agreement band:

  • within 5 percent when Re_real is close to target and the spectrum is clean
  • within 10 percent still acceptable if the run is clearly periodic and the residual mismatch is explainable by Re_real drift or geometry realization

Secondary onset block

Case Hard target use
SO1 and SO2 no hard St gate

Success means:

  • the flow is clearly unsteady and periodic
  • the dominant frequency is stable over long windows
  • the wake classification is consistent with being above onset

Deliverables

For each run, deliver:

  • one row with beta_nominal, beta_real, Re_nominal, Re_real, nu, collision, wall type, inlet scheme, and grid resolution
  • one downstream velocity-profile plot
  • one force-history CSV
  • one St estimate with the exact analysis window stated
  • selected wake images for flow classification

If compute budget is tight, run this order first:

Priority Runs
1 MRT on S1 to S4
2 SRT on S2 and S4
3 TRT on S2 and S4
4 SO1 and SO2 only after the primary anchors are behaving

MRT-only runner mapping

The current executable entrypoint is tests/run_sah04_st_matrix.py, and it is now aligned to this document's primary S1-S4 matrix:

  • collision is fixed to MRT
  • inlet is fixed to parabolic + channel_stabilized
  • case set is S1-S4 only
  • output rows include case_id, collision, inlet_scheme, grid, steps, burn_in, St, St_error_pct, Re_real, beta_real
  • default hard gate is 5% (--gate-pct can relax it to 10%)

Example commands:

conda run -n pycuda_3_10 python tests/run_sah04_st_matrix.py \
  --json-out tests/output/sah04_mrt/summary.json

conda run -n pycuda_3_10 python tests/run_sah04_st_matrix.py \
  --case S3 --gate-pct 10 --final-vorticity-dir tests/output/sah04_mrt/vorticity

Reference

[Sah04] M. Sahin and R. G. Owens, “A numerical investigation of wall effects up to high blockage ratios on two-dimensional flow past a confined circular cylinder,” 2004.