Skip to content

Update deprecated EXT_ITER option in test configs - #2866

Open
Syphonicc wants to merge 3 commits into
su2code:developfrom
Syphonicc:update-deprecated-ext-iter
Open

Update deprecated EXT_ITER option in test configs#2866
Syphonicc wants to merge 3 commits into
su2code:developfrom
Syphonicc:update-deprecated-ext-iter

Conversation

@Syphonicc

Copy link
Copy Markdown

EXT_ITER was removed in SU2 v7 and replaced by ITER. These eight configs still used the old name and failed to parse. Values are unchanged; this is a rename only.

All eight verified to run on current develop with a serial build.

Proposed Changes

EXT_ITER was removed in SU2 v7 and replaced by ITER, but eight test configs still used the old name and fail to parse with a "invalid option name" error. This renames the option in each; iteration values are unchanged, so there's no behavioral change.

Files updated:

control_surface/inv_ONERAM6_moving.cfg
control_surface/inv_ONERAM6_setting.cfg
euler/CRM/inv_CRM_JST.cfg
euler/channel/inv_channel.cfg
navierstokes/naca0012/lam_NACA0012.cfg
rans/flatplate/turb_SST_flatplate.cfg
rans/s809/turb_S809.cfg
rans_uq/naca0012/turb_NACA0012_uq.cfg

All eight were run locally on current develop (serial build) and start and converge normally.

Two things I noticed while doing this, not addressed here , happy to open separate issues if useful:

Several other configs have further deprecated options (FROZEN_VISC, REF_LENGTH_MOMENT, GEO_AXIS_STATIONS, SOLUTION_LIN_FILENAME) and some have solver/turbulence-model settings that no longer validate.
The hom_euler test cases reference mesh files that don't appear to exist in either the SU2 or TestCases repos, so those can't be run or verified.

Related Work

None.

PR Checklist

Put an X by all that apply. You can fill this out after submitting the PR. If you have any questions, don't hesitate to ask! We want to help. These are a guide for you to know what the reviewers will be looking for in your contribution.

  • [X ] I am submitting my contribution to the develop branch.
  • My contribution generates no new compiler warnings (try with --warnlevel=3 when using meson).
  • My contribution is commented and consistent with SU2 style (https://su2code.github.io/docs_v7/Style-Guide/).
  • I used the pre-commit hook to prevent dirty commits and used pre-commit run --all to format old commits.
  • I have added a test case that demonstrates my contribution, if necessary.
  • I have updated appropriate documentation (Tutorials, Docs Page, config_template.cpp), if necessary.

EXT_ITER was removed in SU2 v7 and replaced by ITER. These eight
configs still used the old name and failed to parse. Values are
unchanged; this is a rename only.

All eight verified to run on current develop with a serial build.
@bigfooted

Copy link
Copy Markdown
Contributor

While you're at it: I counted 42 instances of EXT_ITER in the Testcases subdirectory.
Are these cases regression-tested? If they have invalid config options they should not be able to run?

@Syphonicc

Copy link
Copy Markdown
Author

While you're at it: I counted 42 instances of EXT_ITER in the Testcases subdirectory. Are these cases regression-tested? If they have invalid config options they should not be able to run?

Right none of them are regression-tested, which is why they've been able to rot. I checked every config containing EXT_ITER against serial_regression.py and parallel_regression.py and none are referenced. As you say, they'd fail immediately in CI otherwise.

I swept all 42 locally (fixing EXT_ITER → ITER and running each with a short iteration cap). Breakdown:

8 run fine with just the rename , those are this PR.

24 are the hom_euler DG cases. They need REF_LENGTH_MOMENT → REF_LENGTH as well, but 21 then fail because the referenced mesh files don't exist in either repo, and 3 are unsteady so EXT_ITER maps to TIME_ITER/INNER_ITER rather than ITER. I left all of these alone since I can't verify them.

The rest need individual fixes: further deprecated options (FROZEN_VISC, GEO_AXIS_STATIONS, SOLUTION_LIN_FILENAME), SOLVER= NAVIER_STOKES with a turbulence model set (should presumably be RANS), SOLVER= FLUID_STRUCTURE_INTERACTION which no longer exists, and a couple of Sutherland's-law validation errors.

Happy to keep going on the fixable ones in follow-up PRs if that's useful I kept this one to the cases I could actually verify run.

@bigfooted

Copy link
Copy Markdown
Contributor

I think it makes more sense to look at these config files individually, get them working and then add them to the regression test. These might be relatively easy to fix:
euler/CRM/inv_CRM_JST.cfg
euler/channel/inv_channel.cfg
navierstokes/naca0012/lam_NACA0012.cfg
rans/flatplate/turb_SST_flatplate.cfg
rans/s809/turb_S809.cfg

I don't think they test something exotic and you can visually inspect the result to see if it looks reasonable.

I am not sure what the moving/setting onera cases are supposed to test, and for uncertainty quantification a more thorough test is needed to make sure it works as expected.

EXT_ITER was removed in SU2 v7. These five configs still used it and
failed to parse. Beyond the rename:

- lam_NACA0012: CFL 1.0 -> 3.0 with adaptation enabled. At CFL 1 it
  reached only -8.56 in 10k iterations and would need roughly 60k to
  meet its -12 criterion; with CFL 3 it converges fully in 5824.
- turb_SST_flatplate: adaptation enabled, improving the 10k-iteration
  residual from -8.26 to -14.46.
- Fixed swapped CFL_ADAPT_PARAM values (factor-down must be < 1.0) in
  those two files. Note the same reversed values appear in several other
  configs, inert only because CFL_ADAPT is NO.

inv_channel, inv_CRM_JST and turb_S809 needed the rename only. ITER
values set to allow full convergence rather than the previous 99999.

Reverted the two ONERAM6 control_surface cases and rans_uq as discussed.

All five verified locally on a serial build.
@Syphonicc

Copy link
Copy Markdown
Author

Updated this to the five cases you suggested, and worked each one properly rather than just doing the rename. Reverted the two ONERAM6 control_surface cases and rans_uq as you suggested.

Case Converges to Change
euler/channel/inv_channel −12.00 @ 6782 ✅ rename only
euler/CRM/inv_CRM_JST −6.01 @ 778 ✅ rename only
navierstokes/naca0012/lam_NACA0012 −12.00 @ 5824 ✅ CFL 1→3, adaptation on
rans/flatplate/turb_SST_flatplate −14.46 (plateau, criterion is −15) adaptation on
rans/s809/turb_S809 −9.02 @ 10k (criterion is −12) rename only

On the CFL changes: lam_NACA0012 at CFL 1 reached only −8.56 in 10k iterations and would need roughly 60k to meet its −12 criterion; CFL 3 with adaptation converges fully in 5824. turb_SST_flatplate went from −8.26 to −14.46 at 10k iterations just by enabling adaptation. I also tried adaptation on turb_S809 and it made things worse (−7.39 vs −9.02), so I left that one as-is.

While enabling adaptation I hit an error on CFL_ADAPT_PARAM: factor-down and factor-up are swapped in these files (1.5, 0.5 instead of 0.5, 1.5). It's inert wherever CFL_ADAPT= NO, but the same reversed values appear in quite a few other configs. Fixed in the two files where adaptation is now on.

Two cases don't reach their configured CONV_RESIDUAL_MINVAL. turb_SST_flatplate plateaus at −14.46 against −15 (I ran it to 30k; it gained 0.005 between iterations 25k and 30k). turb_S809 is still descending at 10k but slowly. Happy to relax those criteria if you'd prefer, or leave them.

Visual checks below, all coloured by Mach:

  • inv_channel — smooth subsonic acceleration over the bump, peak Mach 0.13, no shocks.
  • inv_CRM_JST — supersonic pocket on the upper wing reaching Mach 1.3 with a clear spanwise shock, as expected at Mach 0.8395 / AoA 3.06°.
  • lam_NACA0012 — thick laminar boundary layer and broad wake, symmetric top/bottom at AoA 0, consistent with Re=5000.
  • turb_SST_flatplate — thin turbulent boundary layer growing along the plate at Re=5×10⁶.
  • turb_S809 — attached flow with a slight upper-surface bias from the camber, no separation.

All five added to serial_regression.py with test_iter = 25; values verified reproducible locally, though I expect CI will want slightly different ones as before.

)

Flatplate Flow1 Flow surface_flow Pics_SU2

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants