Skip to content

Commit edd6f4d

Browse files
rois1995claude
andcommitted
Add the NACA 0021 hybrid RANS/LES V&V case and describe the SST DES variants of PR #2150
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013YFdgQwrRqCQ2ihG446aNe
1 parent 27c5590 commit edd6f4d

10 files changed

Lines changed: 367 additions & 40 deletions

File tree

‎_data/vandv.yml‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,4 @@
1616
- title: Incompressible Flow
1717
vandv:
1818
- SANDIA_jet
19+
- NACA0021_DDES

‎_docs_v7/Hybrid-RANS-LES.md‎

Lines changed: 140 additions & 30 deletions
Large diffs are not rendered by default.

‎_docs_v7/Setup-Guide-Unsteady-DES.md‎

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ The mesh files of the test cases are in the [TestCases repository](https://githu
191191

192192
Dual time stepping splits the run into physical time steps. Inside each time step, SU2 runs "inner iterations" to find the new solution, the same way it converges a steady problem (tutorial, docs).
193193

194-
- `TIME_DOMAIN= YES` turns on the time-accurate solver (docs). `TIME_MARCHING= DUAL_TIME_STEPPING-2ND_ORDER` is used by all URANS and DES test cases (test case). `DUAL_TIME_STEPPING-1ST_ORDER` and `TIME_STEPPING` (one update per time step, no inner iterations) also exist (code).
194+
- `TIME_DOMAIN= YES` turns on the time-accurate solver (docs). `TIME_MARCHING= DUAL_TIME_STEPPING-2ND_ORDER` is used by the URANS test cases and by the flat plate and backscatter DES tests (test case). The short ONERA M6 DES regression tests of PR #2150 use `DUAL_TIME_STEPPING-1ST_ORDER` (test case). `DUAL_TIME_STEPPING-1ST_ORDER` and `TIME_STEPPING` (one update per time step, no inner iterations) also exist (code).
195195
- `TIME_STEP` is the physical time step. It is always in seconds, also when the equations are non-dimensional: SU2 divides it by the reference time (code).
196196
- `TIME_ITER` is the number of time steps. The default is `1` (code).
197197
- `MAX_TIME` is the final physical time in seconds. The default is `1.0`. SU2 stops at `MAX_TIME` or at `TIME_ITER`, whichever comes first (code, docs). Set `MAX_TIME` larger than `TIME_STEP` × `TIME_ITER` if you want `TIME_ITER` steps.
@@ -261,9 +261,9 @@ So average over one continuous run, without restarts (advice).
261261

262262
### Hybrid RANS/LES: which DES variant
263263

264-
All DES variants in SU2 develop build on the SA model. Set `KIND_TURB_MODEL= SA` and pick a variant with `HYBRID_RANSLES` (code).
264+
The `SA_*` variants build on the SA model, the `SST_*` variants on the SST model. Set `KIND_TURB_MODEL` and pick a matching variant with `HYBRID_RANSLES` (code). The SST variants come with [PR #2150](https://github.com/su2code/SU2/pull/2150) and are in develop once it is merged.
265265

266-
In original `SA_DES`, the length scale is min(d, C_DES Δ), where d is wall distance and Δ the grid measure. The delayed variants use d − f_d·max(0, d − C_DES Δ): f_d near zero protects attached boundary layers, and f_d near one recovers the DES limit. The grid measure also changes with the variant. Thus distance from the wall alone does not determine the RANS/LES mode (code, reference). See [Hybrid RANS/LES](../Hybrid-RANS-LES/#what-su2-does-differently-from-the-literature).
266+
In original `SA_DES`, the length scale is min(d, C_DES Δ), where d is wall distance and Δ the grid measure. The delayed variants use d − f_d·max(0, d − C_DES Δ): f_d near zero protects attached boundary layers, and f_d near one recovers the DES limit. The SST variants use the same idea with the RANS length √k / (β* ω) in place of d. The grid measure also changes with the variant. Thus distance from the wall alone does not determine the RANS/LES mode (code, reference). See [Hybrid RANS/LES](../Hybrid-RANS-LES/#what-su2-does-differently-from-the-literature).
267267

268268
| `HYBRID_RANSLES` | What it is (code) |
269269
| --- | --- |
@@ -272,19 +272,24 @@ In original `SA_DES`, the length scale is min(d, C_DES Δ), where d is wall dist
272272
| `SA_DDES` | Delayed DES (Spalart et al. 2006). A shielding function keeps attached boundary layers in RANS mode. |
273273
| `SA_ZDES` | DDES with a cell size based on the vorticity direction (Deck 2012). |
274274
| `SA_EDDES` | DDES with a cell size adapted to shear layers (Shur et al. 2015). Meant to switch faster from RANS to LES in separated shear layers. |
275+
| `SST_DDES` | DDES for SST (Gritskevich et al. 2012). |
276+
| `SST_IDDES` | Improved DDES for SST (Gritskevich et al. 2012), with a wall-modelled LES branch. |
277+
| `SST_SIDDES` | Simplified IDDES: IDDES without the elevating function. |
278+
| `SST_EDDES` | `SST_DDES` with the shear-layer-adapted cell size of `SA_EDDES`. |
275279

276280
Advice:
277281

278282
- `SA_DES` can switch to LES inside an attached boundary layer if the mesh is fine along the wall. The mesh, not the flow, can then cause separation. `SA_DDES` and `SA_EDDES` add shielding to reduce this risk; the result still needs mesh and sensor checks (advice).
279283
- `SA_ZDES` in SU2 is DDES with the ZDES cell size. It is not the full zonal method of the reference, where the user picks RANS and LES zones (code, to be reviewed).
280-
- SU2 does not stop with an error if you set `HYBRID_RANSLES` with `KIND_TURB_MODEL= SST`. Only the SA solver uses the DES length scale, so such a run is plain URANS (code).
284+
- SU2 stops with an error if the variant does not match `KIND_TURB_MODEL`, or if `TIME_DOMAIN= NO` (code).
281285

282286
Related options (code):
283287

284288
- `DES_CONST`: the DES constant. The default is `0.65`.
285289
- `LES_FILTER_WIDTH`: a fixed LES filter width. The default `-1.0` means SU2 uses the local cell size (the largest distance from a point to its neighbours).
286290
- `ENFORCE_LES= YES`: LES mode everywhere. It needs `HYBRID_RANSLES` other than `NONE`.
287-
- `STOCHASTIC_BACKSCATTER= YES` and the `SBS_` options: a stochastic backscatter model, which feeds energy from the modelled to the resolved scales. It works only in 3D and only with `HYBRID_RANSLES` set. The test case `backscatter/backward_step/backwardStep.cfg` shows all its options (code, test case).
291+
- These three options act only on the `SA_*` variants. The `SST_*` variants ignore them, without a warning (code).
292+
- `STOCHASTIC_BACKSCATTER= YES` and the `SBS_` options: a stochastic backscatter model, which feeds energy from the modelled to the resolved scales. It works only in 3D and only with an `SA_*` variant. SU2 does not stop if you use it with an `SST_*` variant. The test case `backscatter/backward_step/backwardStep.cfg` shows all its options (code, test case).
288293

289294
### Mesh for DES
290295

@@ -300,7 +305,7 @@ General points for the DES mesh (advice, to be reviewed):
300305

301306
- The time step must resolve the eddies the mesh can hold. A common target is a convective CFL number of about 1 in the LES region, that is, a time step of about cell size / local velocity (advice, to be reviewed).
302307
- Use `DUAL_TIME_STEPPING-2ND_ORDER` (test case).
303-
- The DES and backscatter tests use `INNER_ITER= 20` (test case). Check the inner convergence as for URANS.
308+
- The flat plate DES test and the backscatter test use `INNER_ITER= 20` (test case). The short ONERA M6 DES regression tests use `INNER_ITER= 2` and are not a setup example. Check the inner convergence as for URANS.
304309

305310
### Numerical dissipation
306311

@@ -334,7 +339,7 @@ No test case in develop uses `ROE_LOW_DISSIPATION` (test case).
334339
- **Start-up phase over.** Plot `LIFT` and `DRAG` against time. The signal should be periodic or statistically steady before `WINDOW_START_ITER` (tutorial).
335340
- **Averages settled.** Compare averages from separate sampling blocks and extend the sampling interval. A slowly changing cumulative average alone does not establish statistical convergence, especially for DES. Monitor `TAVG_LIFT` and `TAVG_DRAG`. With `WINDOW_CAUCHY_CRIT= YES`, the `CAUCHY_TAVG_` values are below `CONV_WINDOW_CAUCHY_EPS` (tutorial).
336341
- **Time step and mesh.** Halve the time step and refine the mesh. The frequency and the averages should change little (advice).
337-
- **DES regions.** Write the `DDES` group: `DES_LENGTHSCALE`, `WALL_DISTANCE` and `LES_SENSOR`. `LES_SENSOR` is 0 where the model acts as RANS. In LES mode it is 1 for `SA_DES` and the value of the shielding function for the DDES variants (code). Attached boundary layers should stay at 0 (advice).
342+
- **DES regions.** Write the `DDES` group: `DES_LENGTHSCALE`, `WALL_DISTANCE` and `LES_SENSOR`. `LES_SENSOR` is 0 where the model acts as RANS. In LES mode it is 1 for `SA_DES` and the value of the shielding function for the SA DDES variants (code). Attached boundary layers should stay at 0 (advice). For the `SST_*` variants, `LES_SENSOR` is always 0; see [Hybrid RANS/LES](../Hybrid-RANS-LES/#recommended-use) for another check (code).
338343
- **Resolved eddies.** Write the `VORTEX_IDENTIFICATION` group: `VORTICITY` (2D) or `VORTICITY_X`, `VORTICITY_Y`, `VORTICITY_Z` (3D), and `Q_CRITERION` (code). Iso-surfaces of `Q_CRITERION` show the resolved eddies (advice).
339344

340345
See [History and Solution Output](../Custom-Output/) and the [Output Fields Reference](../Output-Fields-Reference/).
@@ -355,7 +360,8 @@ See [History and Solution Output](../Custom-Output/) and the [Output Fields Refe
355360
| The inner iterations never reach the criterion. | Time step too large, or CFL too low for the inner loop. | Reduce `TIME_STEP`, raise `CFL_NUMBER` or `INNER_ITER` (advice). |
356361
| DES: the boundary layer separates too early. | LES mode inside the attached boundary layer (check `LES_SENSOR`). | Use `SA_DDES` or `SA_EDDES` instead of `SA_DES`; check the cell size along the wall (advice). |
357362
| DES: the wake looks smooth, with no resolved eddies. | Too much dissipation, or the mesh is too coarse or too stretched in the wake. | Use `ROE_LOW_DISSIPATION` or `LD2`, remove the limiter, refine the wake with near-cubic cells (advice, to be reviewed). |
358-
| DES has no effect at all. | `HYBRID_RANSLES` set with `KIND_TURB_MODEL= SST`. | Use `KIND_TURB_MODEL= SA` (code). |
363+
| SU2 stops: "Hybrid RANS/LES models (HYBRID_RANSLES) require an unsteady simulation ...". | `HYBRID_RANSLES` set in a steady run. | Set `TIME_DOMAIN= YES` (code). |
364+
| SU2 stops: "The hybrid RANS/LES model (HYBRID_RANSLES) must match the turbulence model ...". | An `SA_*` variant without `KIND_TURB_MODEL= SA`, or an `SST_*` variant without `KIND_TURB_MODEL= SST`. | Pick a variant that matches the turbulence model (code). |
359365

360366
## Related tutorials and test cases
361367

@@ -370,11 +376,12 @@ Test cases (develop branch):
370376
- [unsteady/square_cylinder/turb_square.cfg](https://github.com/su2code/SU2/blob/develop/TestCases/unsteady/square_cylinder/turb_square.cfg): URANS with SST and `ROE`, restart from step 2.
371377
- [unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg](https://github.com/su2code/SU2/blob/develop/TestCases/unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg): URANS of a pitching airfoil with SA and rigid mesh motion.
372378
- [ddes/flatplate/ddes_flatplate.cfg](https://github.com/su2code/SU2/blob/develop/TestCases/ddes/flatplate/ddes_flatplate.cfg): `SA_EDDES` with `SLAU2`.
379+
- `ddes/oneram6/ddes_oneram6_*.cfg` (PR #2150): short regression tests of `SST_DDES`, `SST_IDDES`, `SST_SIDDES`, `SST_EDDES` and `SA_EDDES` on the ONERA M6 wing. See [Hybrid RANS/LES](../Hybrid-RANS-LES/#verification-and-test-cases).
373380
- [backscatter/backward_step/backwardStep.cfg](https://github.com/su2code/SU2/blob/develop/TestCases/backscatter/backward_step/backwardStep.cfg): incompressible `SA_DDES` with stochastic backscatter, `LD2` scheme and time-average output.
374381

375382
User guide pages:
376383

377384
- [Solver Setup](../Solver-Setup/), [Restart File](../Restart-File/), [History and Solution Output](../Custom-Output/), [Convective Schemes](../Convective-Schemes/), [Physical Definition](../Physical-Definition/).
378385
- All options: [Option Reference](../Option-Reference/). All output fields: [Output Fields Reference](../Output-Fields-Reference/).
379386

380-
Source review: 22 October 2026, against [SU2 `docs_site` at `41ea6a219a`](https://github.com/rois1995/SU2/tree/41ea6a219ac038574f3d4a5b130c0c1d8af66457). See the [review scope and outstanding validation](../Documentation-Status/#guide-and-model-review). Setup recommendations remain draft where indicated.
387+
Source review: 22 October 2026, against [SU2 `docs_site` at `41ea6a219a`](https://github.com/rois1995/SU2/tree/41ea6a219ac038574f3d4a5b130c0c1d8af66457). The DES statements were updated on 23 October 2026 against [PR #2150 at `e9e85686ad`](https://github.com/su2code/SU2/tree/e9e85686ad3b53fb76eb912d1e8be3b521372838). See the [review scope and outstanding validation](../Documentation-Status/#guide-and-model-review). Setup recommendations remain draft where indicated.

‎_docs_v7/Turbulence-Models.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ Other options that act on all turbulence models:
4343

4444
Old values of `KIND_TURB_MODEL` (`SST_SUST`, `SA_NEG`, `SA_E`, `SA_COMP`, `SA_E_COMP`) and `KIND_TRANS_MODEL= BC` are no longer accepted. SU2 stops and prints the new option to use. <!-- CConfig.cpp:3425-3439 -->
4545

46-
Hybrid RANS-LES models (DES, DDES and stochastic backscatter) build on these models. See [Hybrid RANS-LES](../Hybrid-RANS-LES/). Wall functions and wall roughness, including the SST roughness boundary conditions, are on [Wall Treatment](../Wall-Treatment/).
46+
Hybrid RANS-LES models (DES, DDES and stochastic backscatter) build on these models. The `SA_*` variants and stochastic backscatter build on SA. The `SST_*` variants (DDES and IDDES for SST, from [PR #2150](https://github.com/su2code/SU2/pull/2150)) build on SST. See [Hybrid RANS-LES](../Hybrid-RANS-LES/). Wall functions and wall roughness, including the SST roughness boundary conditions, are on [Wall Treatment](../Wall-Treatment/).
4747

4848
## Spalart-Allmaras (SA)
4949

0 commit comments

Comments
 (0)