Conversation
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.
|
While you're at it: I counted 42 instances of EXT_ITER in the Testcases subdirectory. |
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. |
|
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: 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.
|
Looks pretty good, you can lower the convergence criterion for turb_sst_flatplate to -12. Thats probably sufficient. But all cases take a long time to converge. With adaptive cfl, is the cfl really increasing a lot? My guess is these cases should run with cfl=100 or so because the mesh is nice and the physics simple.. the only main concern us th s809 airfoil because it does nit converge with the current settings. The guideline is that all testcases have a config that works well and converges the solution, preferably fast. |
Thanks. Setting CONV_RESIDUAL_MINVAL= -12 for the flat plate and you were right about the CFL. turb_SST_flatplate: CFL was pinned at exactly 100, i.e. sitting on the CFL_ADAPT_PARAM ceiling the whole run. Raising it helped a lot, but the growth factor mattered too — (0.5, 1.5, 10.0, 1000.0) overshot and NaN'd around CFL 570. CFL_NUMBER= 50 with (0.5, 1.2, 10.0, 200.0) is stable at CFL 200 and converges to −12 in 3836 iterations, versus −8.26 at 10k with the original settings. Updated. turb_S809 is the problem case, and I haven't cracked it. CFL won't go above single digits no matter what I try — adaptation raises it, it gets knocked straight back, and it settles on whatever the floor is. Things I tested, everything else held constant: CFL ceiling 100 → 200, growth 1.5 and 1.2: pinned at the floor either way Best I've got is −9.02 at 10k with the original settings. One thing I noticed: SU2 reports a max CV face area aspect ratio of ~104,000 for this mesh. I'm wondering whether that's what's capping the timestep rather than any solver setting. Do you know if this case has a history of being awkward, or would a different mesh be the answer? Happy to drop s809 from this PR and land the other four if that's easier or keep digging if you have a direction. |
|
I rebuilt
The CFL 100 case is odd — the residual drops to −8.18, then freezes at exactly −7.580046571 and stays identical to ten significant figures for the next 7000 iterations. Not oscillation or divergence, it just stops updating. Not sure whether that's expected behaviour when the CFL is too high. On Would you prefer I relax its criterion to −10 (reachable at around 34k), leave it as is, or drop the case from this PR? Once you're happy with the settings I'll update the two configs and regenerate all the test values. |
|
any updates? The CRM case can have CFL=100 with multigrid,
And for the s809, I did not find a good setting to converge much faster. At least it is converging... for the regression tests, you can put the nr of iterations to 20 and then we update the residuals to compare against that these cases have at iteration 20. |
Thanks - that answers the s809 question, I'll leave it as is. I'll apply the multigrid settings to inv_CRM_JST with CFL 100 and report the convergence numbers from a clean build. Once that's confirmed I'll push the config updates (inv_channel CFL 30, lam_NACA0012 CFL 30 with adaptation off, CRM as above) and add the five regression entries at ITER 20, then update the residuals from what CI reports. |
…TPUT inv_channel: CFL 6 -> 30, converges -12 in 2609 iterations. lam_NACA0012: CFL 3 -> 30, adaptation off, converges -12 in 5909. turb_SST_flatplate: CFL 10 -> 50, CFL_ADAPT_PARAM (0.5,1.2,10,200), criterion -15 -> -12, converges in 6383. inv_CRM_JST: CFL 5 -> 100 with multigrid smoothing/damping tuned per bigfooted's suggestion (pre/post smooth 4->2, damping 0.5->0.75). Converges to the existing -6 criterion in 261 iterations, down from 1113 - a 4.3x reduction. Coarsest multigrid level reaches 771 control volumes, above the 500 default, so MG_MIN_MESHSIZE=100 (also suggested) has no effect on this mesh and is left out. CRM, flat plate, and S809 lacked an explicit SCREEN_OUTPUT, so the regression harness's fixed-width parser was reading the wrong number of fields from the convergence table (it slices the last N columns of the printed row, where N is the expected value count). Added explicit SCREEN_OUTPUT listing all tracked residuals for each, matching what already exists in history.csv.
All five re-verified on a clean develop build (v8.5.0) after the upstream multigrid rework. test_vals regenerated at iteration 20 and confirmed passing against the committed configs.
…pdate-deprecated-ext-iter
|
Pushed. All five now pass at test_iter=20 on a clean develop build:
On CRM: I dropped MG_MIN_MESHSIZE=100 from your suggested block - checked the multigrid setup table and the coarsest level already lands at 771 CVs on this mesh, above the 500 default, so that line had no effect. Kept the CFL and smoothing/damping changes, which account for the full improvement. Also found that CRM, the flat plate, and S809 had no explicit SCREEN_OUTPUT, so only 4-5 of the tracked residuals were printing to screen even though history.csv has them all. Added SCREEN_OUTPUT to each listing the full set - otherwise the regression harness reads the wrong columns. s809 stays at its current settings per your last comment. |
|
Small housekeeping push on this branch:
The failing CodeFactor check is whitespace alignment in |
|
Re-ran all five cases on a clean build of current develop (8118ee0) after the merge. The
Nothing changed, so the branch is ready from my side. |
|
Thanks, if you merge with develop again I can rerun the workflow. |
|
Merged develop, thanks! |





EXT_ITER was removed in SU2 v7 and replaced by ITER. Five test configs still used the old name and failed to parse. Following review, each was fixed, tuned to converge in a reasonable time, and added to
serial_regression.pyattest_iter = 20.Proposed Changes
The explicit SCREEN_OUTPUT is needed so the regression harness reads the intended residual columns.
The two
control_surfaceONERAM6 cases andrans_uqwere initially included and reverted per review.Related Work
Other TestCases configs that fail to parse are tracked in #2898 (hom_euler meshes in #2874). #2899 adds a LINELET variant of
lam_NACA0012.PR Checklist
pre-commit run --allto format old commits.