Fix unsteady testcase configs and add regression tests#2755
Fix unsteady testcase configs and add regression tests#2755Sahilll10 wants to merge 2 commits intosu2code:developfrom
Conversation
- Add TIME_DOMAIN=YES and TIME_ITER=100 to three unsteady configs that were silent running as single steady iterations - Fix SOLVER=RANS in turb_NACA64A010.cfg - Remove deprecated EXT_ITER from all three configs - Add SCREEN_OUTPUT to all three configs for regression output - Register pitching_naca64a010_rans, pitching_naca64a010_euler, and plunging_naca0012 in serial_regression.py Fixes su2code#2524
|
Thanks @bigfooted for merging develop in and adding the label. I've synced locally and the branch looks clean on my end too. Happy to address any review comments if anything comes up. Please let me know if there's anything else needed to get this across the line. |
|
Your changes are doing 2 timesteps with 2000 inner iterations each. |
|
I havee been working on the restart files now, wanted to share progress and ask a couple of questions before I finalize. I ran all three cases locally for the full 100 time steps with Following the pattern of
Two questions before I proceed:
Happy to re-run everything at full quality if needed . Please confirm the approach before i commit files to the TestCases repo. |
|
Show us what the solution and time history of coefficients looks like. |
|
Hi @pcarruscag Here are the time histories of CL and CD for all three cases.
For the restart files, my plan remains as described in the previous comment — rename the last two files of each completed run to solution_flow_00000.csv and solution_flow_00001.csv following the square_cylinder pattern. Happy to proceed once you confirm this approach is acceptable. |
Does it? What do the inner iterations do to enhance transient decay? I think you're doing a great job here with validation, but I also think it is important that you understand what you are really doing so you can make knowledge based decisions. Ask chatgpt or whatever, but analyze the feedback/results yourself. |
|
100's of inner iterations per time step is not an acceptable configuration, you need to tweak the CFL and linear solver settings such that the relative residuals in each time step drop 3 orders of magnitude in about 20 iterations. |
Hi @bigfooted Inner iterations have nothing to do with how fast the physical transient decays. That was a wrong statement on my part. The physical transient — how quickly CL settles into a periodic oscillation — depends entirely on the flow conditions and how many real time steps have passed. What actually happened in my plot: The actual effect of dropping from 2000 to 300 inner iterations shows up in the residual: with 300 inner iters the density residual reaches about -4.6 per time step, versus -6.8 with 2000. Sorry for the sloppy explanation earlier. I will make sure I explain each thing before asking for review. |
Hi @pcarruscag I tried tuning the settings and want to show you the numbers before going further. Drop in 20 iterations: ~0.95 orders After (CFL=200, ILU, LINEAR_SOLVER_ITER=20): Drop in 20 iterations: ~2.13 orders This is a significant improvement but still short of your 3 orders in 20 target. Could you point me toward what else I should adjust to close that remaining gap? |
|
That's good enough |



Proposed Changes
Three unsteady test case configs were missing TIME_DOMAIN=YES and TIME_ITER, causing SU2 to silently default to a single steady iteration instead of running an unsteady simulation. This PR fixes all three configs and registers them in serial_regression.py so they are CI-tested going forward.
Changes made:
pitching_naca64a010_rans/turb_NACA64A010.cfg — fix SOLVER=RANS (was NAVIER_STOKES despite KIND_TURB_MODEL=SA), add TIME_DOMAIN=YES, TIME_ITER=100, remove deprecated EXT_ITER, add SCREEN_OUTPUT
pitching_naca64a010_euler/pitching_NACA64A010.cfg — add TIME_DOMAIN=YES, TIME_ITER=100, remove deprecated EXT_ITER, add SCREEN_OUTPUT
plunging_naca0012/plunging_NACA0012.cfg — add TIME_DOMAIN=YES, TIME_ITER=100, remove deprecated EXT_ITER, add SCREEN_OUTPUT
serial_regression.py — register all three cases with test_iter=1 and unsteady=True, following the pattern of the existing unst_inc_turb_naca0015_sa entry
All three cases were run locally with SU2 v8.4.0 on Ubuntu 24 / GCC 13. Residuals converge steadily through inner iterations and CL/CD values change each time step confirming dual time-stepping is working correctly.
Related Work
Fixes #2524
PR Checklist