-
Configuration File
Mesh File
Restart File
Solver Setup
Physical Definition
Markers and Boundary Conditions
Convective Schemes
Slope Limiters and Shock Resolution
History and Solution Output
Linear Solvers and Preconditioners
Basics of Multi-Zone Computations
Execution
Aeroacoustic analysis of unsteady pressure
Flamelet Solver — Python Wrapper Wall Boundary Conditions
Output Fields Reference
Error Messages
-
Setup Guide: Steady RANS for External Aerodynamics
Setup Guide: Incompressible Flows
Setup Guide: Unsteady Flows and DES
Setup Guide: Laminar-Turbulent Transition
Setup Guide: Turbomachinery
Setup Guide: Heat Transfer and Conjugate Heat Transfer
Setup Guide: Species Transport and Combustion
Setup Guide: Shape Optimization with the Discrete Adjoint
Setup Guide: Non-Ideal Compressible Flows
-
Option Reference
Problem Definition
FluidModel
Data-driven fluid model parameters
Freestream Conditions
Reference Conditions
Boundary Markers
Time-marching
Linear solver definition
Convergence
Multi-grid
Spatial Discretization
Adjoint and Gradient
Sobolev Gradient Solver Parameters
Input/output files and formats
Dynamic mesh definition
Aeroelastic Simulation (Typical Section Model)
Wind Gust
Equivalent Area
Grid deformation
Deformable mesh
FEM flow solver definition
FEA solver
Multizone definition
Radiation solver
Heat solver
Visualize Control Volumes
Inverse design problem
Unsupported options
FFD point inversion
Automatic Differentation options
Python Options
Hybrid_RANSLES Options
Output Options
libROM options
Renamed and Removed Options
-
GIT-ting Started
Developing SU2 on GitHub (Internal Developers)
Running Regression Tests
Code Review
Code Structure
Style Guide
Advanced AD Techniques
Containers for Development
Writing Unit Tests
Integrating Tracy Profiler with SU2
Automatic Differentiation (AD)
Code Reference (Doxygen)
Debugging SU2
Documentation Improvements and Status
Glossary
Docs Check
Setup Guide: Unsteady Flows and DES
Draft. These settings are drawn from SU2 source, tutorials and regression cases. Recommendations marked (to be reviewed) still need an experienced user’s review.
Use this guide to choose settings and understand their consequences. Follow the linked Tutorials for worked examples and consult V&V for numerical and physical comparisons. Example settings are starting points, not evidence that a case is converged or validated.
The documentation guide explains the source tags used below: (code), (test case), (tutorial), (docs), (advice) and (to be reviewed).
- When to use this guide
- Start from
- Settings that matter
- Check convergence and results
- Common problems
- Related tutorials and test cases
When to use this guide
Use this guide when the flow changes in time and you want to follow that change. Typical cases are:
- vortex shedding behind a bluff body or a stalled airfoil,
- buffet, large separated regions, wakes,
- bodies that move, such as a pitching airfoil.
The guide covers two approaches:
- URANS (unsteady RANS): the RANS equations solved in time. The turbulence model still models all turbulent eddies. URANS captures large, regular unsteadiness such as vortex shedding (advice).
- DES (detached eddy simulation), a hybrid RANS/LES method: RANS near the walls, large-eddy simulation (LES) in separated regions. In LES, the mesh and the time step resolve the large turbulent eddies and the model handles only the small ones (advice).
A steady RANS run that does not converge can be a sign that the flow is unsteady (advice). For steady settings, see Setup Guide: Steady RANS for External Aerodynamics.
Start from
URANS
This config comes from the unsteady NACA0012 tutorial: compressible_flow/Unsteady_NACA0012/unsteady_naca0012.cfg in the Tutorials repository.
We changed RESTART_SOL to NO and removed RESTART_ITER, so the run starts from the free stream. The tutorial restarts at time step 499 to skip the start-up phase. We also removed the adjoint and file name options. All other values are unchanged.
% ------------- Problem ------------------------------------------------%
SOLVER= RANS
KIND_TURB_MODEL= SA
REF_DIMENSIONALIZATION= DIMENSIONAL
MATH_PROBLEM= DIRECT
RESTART_SOL= NO
%
% ------------- Free stream --------------------------------------------%
MACH_NUMBER= 0.3
AOA= 17.0
FREESTREAM_TEMPERATURE= 293.0
FREESTREAM_PRESSURE= 101325.0
REYNOLDS_NUMBER= 1000.0
REYNOLDS_LENGTH= 1.0
REF_ORIGIN_MOMENT_X= 0.25
REF_ORIGIN_MOMENT_Y= 0.00
REF_ORIGIN_MOMENT_Z= 0.00
REF_LENGTH= 1.0
REF_AREA= 1.0
%
% ------------- Boundary conditions ------------------------------------%
MARKER_HEATFLUX= ( airfoil, 0.0 )
MARKER_FAR= ( farfield )
MARKER_PLOTTING= ( airfoil )
MARKER_MONITORING= ( airfoil )
%
% ------------- Time integration (dual time stepping) ------------------%
TIME_DOMAIN= YES
TIME_MARCHING= DUAL_TIME_STEPPING-2ND_ORDER
TIME_STEP= 5e-4
TIME_ITER= 2000
INNER_ITER= 10
%
% ------------- Numerics -----------------------------------------------%
NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES
CONV_NUM_METHOD_FLOW= JST
JST_SENSOR_COEFF= ( 0.5, 0.005 )
CONV_NUM_METHOD_TURB= SCALAR_UPWIND
MUSCL_TURB= NO
TIME_DISCRE_FLOW= EULER_IMPLICIT
TIME_DISCRE_TURB= EULER_IMPLICIT
CFL_NUMBER= 1e12
CFL_ADAPT= NO
LINEAR_SOLVER= FGMRES
LINEAR_SOLVER_ERROR= 0.1
LINEAR_SOLVER_ITER= 10
%
% ------------- Convergence inside each time step ----------------------%
CONV_FIELD= REL_RMS_DENSITY
CONV_RESIDUAL_MINVAL= -3
CONV_STARTITER= 0
%
% ------------- Time averages and convergence in time ------------------%
WINDOW_CAUCHY_CRIT= YES
WINDOW_START_ITER= 500
WINDOW_FUNCTION= HANN_SQUARE
CONV_WINDOW_FIELD= ( TAVG_DRAG, TAVG_LIFT )
CONV_WINDOW_STARTITER= 0
CONV_WINDOW_CAUCHY_EPS= 1E-4
CONV_WINDOW_CAUCHY_ELEMS= 10
%
% ------------- Input and output ---------------------------------------%
MESH_FILENAME= unsteady_naca0012_mesh.su2
MESH_FORMAT= SU2
HISTORY_WRT_FREQ_INNER= 0
SCREEN_WRT_FREQ_INNER= 100
SCREEN_OUTPUT= ( TIME_ITER, INNER_ITER, RMS_DENSITY, REL_RMS_DENSITY, DRAG, LIFT, CAUCHY_TAVG_DRAG, CAUCHY_TAVG_LIFT )
HISTORY_OUTPUT= ( TIME_ITER, INNER_ITER, REL_RMS_RES, RMS_RES, AERO_COEFF, TAVG_AERO_COEFF, CAUCHY )
OUTPUT_FILES= ( RESTART, PARAVIEW )
OUTPUT_WRT_FREQ= ( 1, 1 )
The tutorial page Unsteady NACA0012 explains dual time stepping and the windowed averages.
DES
This config comes from the DDES regression test TestCases/ddes/flatplate/ddes_flatplate.cfg. We removed the adjoint and file name options, and options that have no effect with these settings. All other values are unchanged.
This is a 2D flat plate. It checks that the DES options run. It is not a realistic DES: real DES runs are 3D (see Mesh for DES).
% ------------- Problem ------------------------------------------------%
SOLVER= RANS
KIND_TURB_MODEL= SA
HYBRID_RANSLES= SA_EDDES
MATH_PROBLEM= DIRECT
RESTART_SOL= NO
%
% ------------- Free stream --------------------------------------------%
MACH_NUMBER= 0.2
AOA= 0.0
SIDESLIP_ANGLE= 0.0
FREESTREAM_TEMPERATURE= 300.0
REYNOLDS_NUMBER= 5000000.0
REYNOLDS_LENGTH= 1.0
REF_ORIGIN_MOMENT_X= 0.25
REF_ORIGIN_MOMENT_Y= 0.00
REF_ORIGIN_MOMENT_Z= 0.00
REF_LENGTH= 1.0
REF_AREA= 2.0
%
% ------------- Time integration ---------------------------------------%
TIME_DOMAIN= YES
TIME_MARCHING= DUAL_TIME_STEPPING-2ND_ORDER
TIME_STEP= 0.000288
MAX_TIME= 10
UNST_CFL_NUMBER= 0.0
INNER_ITER= 20
TIME_ITER= 500
%
% ------------- Boundary conditions ------------------------------------%
MARKER_HEATFLUX= ( wall, 0.0 )
MARKER_INLET= ( inlet, 302.4, 118309.784, 1.0, 0.0, 0.0 )
MARKER_OUTLET= ( outlet, 115056.0, farfield, 115056.0 )
MARKER_SYM= ( symmetry )
MARKER_PLOTTING= ( wall )
MARKER_MONITORING= ( wall )
%
% ------------- Numerics -----------------------------------------------%
NUM_METHOD_GRAD= GREEN_GAUSS
CFL_NUMBER= 10.0
CFL_ADAPT= NO
CONV_NUM_METHOD_FLOW= SLAU2
MUSCL_FLOW= YES
SLOPE_LIMITER_FLOW= NONE
TIME_DISCRE_FLOW= EULER_IMPLICIT
CONV_NUM_METHOD_TURB= SCALAR_UPWIND
MUSCL_TURB= NO
TIME_DISCRE_TURB= EULER_IMPLICIT
CONV_RESIDUAL_MINVAL= -15
CONV_STARTITER= 0
%
% ------------- Input and output ---------------------------------------%
MESH_FILENAME= mesh_flatplate_turb_137x97.su2
MESH_FORMAT= SU2
OUTPUT_WRT_FREQ= 1000
SCREEN_OUTPUT= (TIME_ITER, INNER_ITER, RMS_DENSITY, RMS_NU_TILDE, LIFT, DRAG, TOTAL_HEATFLUX)
For a real DES run, also write the DES and time-average fields (code):
VOLUME_OUTPUT= ( COORDINATES, SOLUTION, PRIMITIVE, DDES, VORTEX_IDENTIFICATION, TIME_AVERAGE )
The mesh files of the test cases are in the TestCases repository.
Settings that matter
Dual time stepping
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).
TIME_DOMAIN= YESturns on the time-accurate solver (docs).TIME_MARCHING= DUAL_TIME_STEPPING-2ND_ORDERis 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 useDUAL_TIME_STEPPING-1ST_ORDER(test case).DUAL_TIME_STEPPING-1ST_ORDERandTIME_STEPPING(one update per time step, no inner iterations) also exist (code).TIME_STEPis the physical time step. It is always in seconds, also when the equations are non-dimensional: SU2 divides it by the reference time (code).TIME_ITERis the number of time steps. The default is1(code).MAX_TIMEis the final physical time in seconds. The default is1.0. SU2 stops atMAX_TIMEor atTIME_ITER, whichever comes first (code, docs). SetMAX_TIMElarger thanTIME_STEP×TIME_ITERif you wantTIME_ITERsteps.INNER_ITERis the maximum number of inner iterations per time step. The default is1(code). Always set it.- Do not use
ITERin an unsteady run. SU2 stops with an error and asks forTIME_ITERandINNER_ITER(code). - With
UNST_CFL_NUMBERother than0.0, SU2 computes the time step from this CFL number and ignoresTIME_STEP, as the comments inconfig_template.cfgsay. The default is0.0(code).
See Solver Setup.
Time step size
- The time step must resolve the fastest change you care about (advice). For vortex shedding, estimate the period from the Strouhal number St = f D / U. St is about 0.2 for many bluff bodies (advice, to be reviewed).
- Use at least 50 to 100 time steps per shedding period for URANS (advice, to be reviewed).
- Check the result by halving the time step: the period and the averaged forces should not change much (advice).
- Examples: the NACA0012 tutorial uses
TIME_STEP= 5e-4. The square cylinder test usesTIME_STEP= 0.0015withMAX_TIME= 3.75. The von Karman cylinder tutorial usesTIME_STEP= 0.005with 20 inner iterations (tutorial, test case).
Convergence inside each time step
Each time step needs converged inner iterations. If not, the time history is wrong even if the run looks stable (tutorial).
- The inner loop uses the same criteria as a steady run:
CONV_FIELD,CONV_RESIDUAL_MINVAL,CONV_STARTITER(docs). It stops at the criterion or atINNER_ITER. REL_RMS_DENSITYis the residual relative to its value at the first inner iteration of the time step (code).CONV_FIELD= REL_RMS_DENSITYwithCONV_RESIDUAL_MINVAL= -3asks for a drop of three orders of magnitude in each time step (tutorial).- Set
CONV_STARTITER= 0so the check starts at the first inner iteration (tutorial). The default is5(code). - The inner iterations use
CFL_NUMBERas in a steady run. The NACA0012 tutorial usesCFL_NUMBER= 1e12withJST(tutorial). The DES test uses10withSLAU2, the square cylinder test2.0withROE(test case). - Watch
INNER_ITERon the screen. If most time steps end at the maximum without reaching the criterion, raiseINNER_ITERor the CFL, or lower the time step (advice). - In a time-domain run, SU2 writes the history file once per time step by default. Set
HISTORY_WRT_FREQ_INNERto also write inner iterations (code).
Restarting an unsteady run
SU2 writes one restart file per saved time step, with the step number in the name, for example restart_flow_00499.dat (tutorial, docs).
OUTPUT_WRT_FREQsets how often (in time steps) SU2 writes files (docs). With second-order time stepping, SU2 also writes the step before, because a restart needs two old solutions (code).- To restart, set
RESTART_SOL= YESandRESTART_ITERto the first new time step. With second order, SU2 reads the files of stepsRESTART_ITER−2 andRESTART_ITER−1. With first order, it reads stepRESTART_ITER−1 (code, docs). - SU2 reads the files named after
SOLUTION_FILENAME, so rename or copy the restart files first (docs). TIME_ITERcounts from the start of the whole simulation, not from the restart. SU2 runsTIME_ITER−RESTART_ITERmore steps (code).TIME_ITERmust be larger thanRESTART_ITER(code).- To start URANS from a converged steady solution, copy the steady restart file to the two file names that SU2 reads for
RESTART_ITER= 2(for examplesolution_flow_00000.datandsolution_flow_00001.dat) (advice, to be reviewed). The square cylinder test restarts withRESTART_ITER= 2(test case).
See Restart File.
Time averages and convergence in time
History averages. In a time-domain run, SU2 adds a time-averaged version of every coefficient, with the prefix TAVG_, for example TAVG_DRAG (code, tutorial).
- The average starts at time step
WINDOW_START_ITER. If you do not set it, it starts atRESTART_ITER. It must not be smaller thanRESTART_ITER, or SU2 stops with an error (code). - Start the average after the start-up phase, when the signal is periodic or statistically steady (tutorial).
WINDOW_FUNCTIONsets the weight of each sample:SQUARE(equal weights, the default),HANN,HANN_SQUAREorBUMP(code). For a periodic signal, the windowed averages converge faster thanSQUARE(tutorial).
Stop when the average stops changing. WINDOW_CAUCHY_CRIT= YES turns on a Cauchy criterion on the averages (docs). This criterion looks at how much the average changes from step to step.
CONV_WINDOW_FIELDlists the averaged fields, for example( TAVG_DRAG, TAVG_LIFT )(tutorial).CONV_WINDOW_CAUCHY_EPS(default1E-3),CONV_WINDOW_CAUCHY_ELEMS(default100) andCONV_WINDOW_STARTITER(default15, counted fromWINDOW_START_ITER) play the same role asCONV_CAUCHY_EPS,CONV_CAUCHY_ELEMSandCONV_STARTITERin a steady run (code, docs).- The tutorial uses
CONV_WINDOW_CAUCHY_EPS= 1E-4withCONV_WINDOW_CAUCHY_ELEMS= 10(tutorial).
Volume averages. Add TIME_AVERAGE to VOLUME_OUTPUT (code). SU2 then writes:
- mean values:
MEAN_DENSITY,MEAN_VELOCITY-X,MEAN_VELOCITY-Y,MEAN_VELOCITY-Z,MEAN_PRESSURE,MEAN_SKIN_FRICTION-X,MEAN_SKIN_FRICTION-Y,MEAN_SKIN_FRICTION-Z; - mean squares and products:
RMS_U,RMS_V,RMS_W,RMS_UV,RMS_UW,RMS_VW,RMS_P; - Reynolds stresses and pressure fluctuations:
UUPRIME,VVPRIME,WWPRIME,UVPRIME,UWPRIME,VWPRIME,PPRIME(code).
How these averages work (code):
- They start at
WINDOW_START_ITERand use equal weights.WINDOW_FUNCTIONdoes not apply to them. - SU2 only computes them if
TIME_AVERAGEis inVOLUME_OUTPUT. - SU2 keeps them in memory. They are not read back from the restart files, so after a restart they start again from
RESTART_ITER.
So average over one continuous run, without restarts (advice).
Hybrid RANS/LES: which DES variant
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 and are in develop once it is merged.
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_RANSLES |
What it is (code) |
|---|---|
NONE |
No DES (default). |
SA_DES |
Original DES (Spalart 1997). Switches to LES wherever the cell size times DES_CONST is below the wall distance. |
SA_DDES |
Delayed DES (Spalart et al. 2006). A shielding function keeps attached boundary layers in RANS mode. |
SA_ZDES |
DDES with a cell size based on the vorticity direction (Deck 2012). |
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. |
SST_DDES |
DDES for SST (Gritskevich et al. 2012). |
SST_IDDES |
Improved DDES for SST (Gritskevich et al. 2012), with a wall-modelled LES branch. |
SST_SIDDES |
Simplified IDDES: IDDES without the elevating function. |
SST_EDDES |
SST_DDES with the shear-layer-adapted cell size of SA_EDDES. |
Advice:
SA_DEScan 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_DDESandSA_EDDESadd shielding to reduce this risk; the result still needs mesh and sensor checks (advice).SA_ZDESin 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).- SU2 stops with an error if the variant does not match
KIND_TURB_MODEL, or ifTIME_DOMAIN= NO(code). - With an
SST_*variant, SU2 also stops ifSST_OPTIONScontainsCOMPRESSIBILITY-WILCOXorCOMPRESSIBILITY-SARKAR. How these corrections should act in the LES region is not validated yet (code). See Hybrid RANS/LES.
Related options (code):
DES_CONST: the DES constant. The default is0.65.LES_FILTER_WIDTH: a fixed LES filter width. The default-1.0means SU2 uses the local cell size (the largest distance from a point to its neighbours).ENFORCE_LES= YES: LES mode everywhere. It needsHYBRID_RANSLESother thanNONE.- These three options act only on the
SA_*variants. With anSST_*variant, SU2 stops with an error if you setDES_CONST, give a positiveLES_FILTER_WIDTH, or setENFORCE_LES= YES(code). The SST variants use their own constant, C_DES = 0.78·F1 + 0.61·(1 − F1). The screen shows the constant in use at the start of the run (code). STOCHASTIC_BACKSCATTER= YESand theSBS_options: a stochastic backscatter model, which feeds energy from the modelled to the resolved scales. It works only in 3D and only with anSA_*variant. SU2 stops with an error otherwise (code). The test casebackscatter/backward_step/backwardStep.cfgshows all its options (code, test case).
Mesh for DES
General points for the DES mesh (advice, to be reviewed):
- DES resolves turbulent eddies, which are three-dimensional. Run DES in 3D. 2D DES runs do not give physical turbulence.
- Near the walls, the mesh must be fine enough for RANS: first-cell y+ about 1.
- In the regions you want in LES mode (wakes, separated zones), use cells of similar size in all directions. Original DES/DDES use the longest edge from a node to its neighbours; ZDES/EDDES use the variant-specific measures described in Hybrid RANS/LES (code). Stretched cells can limit LES resolution; inspect the chosen grid measure and the RANS/LES sensor rather than assuming that refinement in one direction is sufficient.
- Keep the cell size changes smooth between the RANS and LES regions.
- For a body with a spanwise direction, the spanwise extent must hold the largest eddies of interest.
Time step for DES
- 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).
- Use
DUAL_TIME_STEPPING-2ND_ORDER(test case). - The flat plate DES test and the backscatter test use
INNER_ITER= 20(test case). The short ONERA M6 DES regression tests useINNER_ITER= 2and are not a setup example. Check the inner convergence as for URANS.
Numerical dissipation
Reduce numerical dissipation where you can. Upwind schemes and limiters add it, and in the LES region it damps the resolved eddies (advice).
Compressible solver. ROE_LOW_DISSIPATION lowers the upwind part of the flux where the flow is resolved (code, docs). Details from the code (code):
- It works with
ROE,SLAUandSLAU2. FD: uses the DDES shielding function, computed from the wall distance.NTS: the blending of Travin and Shur. It usesDES_CONSTand the cell size. With anSST_*variant you cannot setDES_CONST, so it uses the default, 0.65.FD_DUCROSandNTS_DUCROS: as above, plus the Ducros sensor, which keeps the full dissipation at shocks (code, docs).- SU2 keeps at least 5 % of the upwind dissipation for stability.
- Write the
ROE_DISSIPATIONoutput group to see where the dissipation is reduced.
No test case in develop uses ROE_LOW_DISSIPATION (test case).
Incompressible solver. The LD2 central scheme (low dissipation, low dispersion) is available for constant density flows only. With the energy equation on, SU2 uses JST for the energy equation (code). The backscatter test uses CONV_NUM_METHOD_FLOW= LD2 with JST_SENSOR_COEFF= ( 0.0, 0.002 ) and MUSCL_FLOW= NO (test case).
Limiters. The DES flat plate test uses MUSCL without a limiter (SLOPE_LIMITER_FLOW= NONE) (test case). A limiter adds dissipation where it is active (advice).
Averaging a DES run
- Wait until the start-up phase has left the domain before you start averaging. A common rule is a few flow-through times (advice, to be reviewed).
- Then average over many characteristic times, so that the mean and the fluctuations settle (advice).
- Use
WINDOW_START_ITERand theTIME_AVERAGEvolume group described above (code). - To record time signals at points, the history output can include probes defined with
CUSTOM_OUTPUTS. The von Karman cylinder tutorial shows how (tutorial).
Check convergence and results
- Inner convergence.
REL_RMS_DENSITY(or yourCONV_FIELD) reaches the criterion in each time step beforeINNER_ITER(tutorial). - Start-up phase over. Plot
LIFTandDRAGagainst time. The signal should be periodic or statistically steady beforeWINDOW_START_ITER(tutorial). - 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_LIFTandTAVG_DRAG. WithWINDOW_CAUCHY_CRIT= YES, theCAUCHY_TAVG_values are belowCONV_WINDOW_CAUCHY_EPS(tutorial). - Time step and mesh. Halve the time step and refine the mesh. The frequency and the averages should change little (advice).
- DES regions. Write the
DDESgroup:DES_LENGTHSCALE,WALL_DISTANCEandLES_SENSOR.LES_SENSORis 0 where the model acts as RANS. In LES mode it is 1 forSA_DES, the value of the shielding function f_d for the SA DDES variants,SST_DDESandSST_EDDES, and 1 − f̃_d forSST_IDDESandSST_SIDDES(code). Attached boundary layers should stay at 0 (advice). See Hybrid RANS/LES for an extra check with SST. - Resolved eddies. Write the
VORTEX_IDENTIFICATIONgroup:VORTICITY(2D) orVORTICITY_X,VORTICITY_Y,VORTICITY_Z(3D), andQ_CRITERION(code). Iso-surfaces ofQ_CRITERIONshow the resolved eddies (advice).
See History and Solution Output and the Output Fields Reference.
Common problems
| Symptom | Likely cause | What to try |
|---|---|---|
| The run stops at 1 s of physical time. | MAX_TIME has a default of 1.0. |
Set MAX_TIME (code). |
| Only one inner iteration per time step. | INNER_ITER has a default of 1. |
Set INNER_ITER (code). |
| SU2 stops: “ITER must not be used when running multizone and/or unsteady problems”. | ITER in an unsteady config. |
Use TIME_ITER and INNER_ITER (code). |
| SU2 stops: “TIME_DOMAIN must be set to YES …” | TIME_MARCHING set without TIME_DOMAIN= YES. |
Add TIME_DOMAIN= YES (code). |
| SU2 stops: “Invalid value for TIME_STEP”. | TIME_STEP is zero and UNST_CFL_NUMBER is 0.0. |
Set TIME_STEP (code). |
| The restart fails to find a file. | Wrong file names or missing step. | For RESTART_ITER= N with second order, provide steps N−2 and N−1, named after SOLUTION_FILENAME (code, docs). |
| SU2 stops: “WINDOW_START_ITER must be larger than or equal to: RESTART_ITER!” | The average would start before the restart. | Set WINDOW_START_ITER at or after RESTART_ITER (code). |
MEAN_ fields are missing or zero. |
TIME_AVERAGE not in VOLUME_OUTPUT, or the run has not reached WINDOW_START_ITER. |
Add TIME_AVERAGE and check WINDOW_START_ITER (code). |
| The flow stays steady and symmetric, no shedding. | Symmetric start, too much numerical dissipation, too large time step, or a coarse wake mesh. | Lower the dissipation, reduce the time step, refine the wake (advice, to be reviewed). |
| 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). |
| 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). |
| 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). |
| SU2 stops: “Hybrid RANS/LES models (HYBRID_RANSLES) require an unsteady simulation …”. | HYBRID_RANSLES set in a steady run. |
Set TIME_DOMAIN= YES (code). |
| 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). |
SU2 stops with an SST_* variant, and the message names DES_CONST, LES_FILTER_WIDTH, ENFORCE_LES, STOCHASTIC_BACKSCATTER or the SST compressibility corrections. |
The SST variants do not support this option. | Remove the option, or use an SA_* variant (code). |
Related tutorials and test cases
Tutorials:
- Unsteady NACA0012: URANS, dual time stepping, windowed averages, restart after the start-up phase.
- Unsteady von Karman vortex shedding: laminar incompressible cylinder; time step, inner iterations, probes.
- Unsteady shape optimization NACA0012: unsteady adjoint with windowed objective functions.
Test cases (develop branch):
- unsteady/square_cylinder/turb_square.cfg: URANS with SST and
ROE, restart from step 2. - unsteady/pitching_naca64a010_rans/turb_NACA64A010.cfg: URANS of a pitching airfoil with SA and rigid mesh motion.
- ddes/flatplate/ddes_flatplate.cfg:
SA_EDDESwithSLAU2. ddes/oneram6/ddes_oneram6_*.cfg(PR #2150): short regression tests ofSST_DDES,SST_IDDES,SST_SIDDES,SST_EDDESandSA_EDDESon the ONERA M6 wing. See Hybrid RANS/LES.- backscatter/backward_step/backwardStep.cfg: incompressible
SA_DDESwith stochastic backscatter,LD2scheme and time-average output.
User guide pages:
- Solver Setup, Restart File, History and Solution Output, Convective Schemes, Physical Definition.
- All options: Option Reference. All output fields: Output Fields Reference.
Source review: 22 October 2026, against SU2 docs_site at 41ea6a219a. The DES statements were updated on 23 October 2026 against PR #2150 at 1bcd4a7425. See the review scope and outstanding validation. Setup recommendations remain draft where indicated.