Repository navigation
TestCases configs that fail to parse on develop #2898
Description
Describe the bug
A number of configs under TestCases/ cannot be parsed by current develop.
They abort in CConfig::SetConfig_Parsing with invalid option name or
invalid option value. This happens before the mesh is read, so they fail
immediately for anyone who tries to run them. The expected behaviour is that a
config shipped in TestCases/ runs with the version of SU2 it ships with.
None of the affected files are registered in serial_regression.py or
parallel_regression.py, which is why CI does not catch this. @bigfooted
already noted in #2524 that some testcases are not regression tested; this is
the full extent of it for the parse-failure category.
Reproducing. No mesh from the TestCases repository is needed, since parsing
fails before the mesh is opened. From the root of the SU2 repo:
find TestCases -name '*.cfg' | while read c; do
(cd "$(dirname $c)" && SU2_CFD "$(basename $c)" 2>&1 |
grep -q 'SetConfig_Parsing' && echo "$c")
doneSmallest single example:
cd TestCases/turbomachinery/centrifugal_blade
SU2_CFD centrifugal_blade.cfggives
Line 61 MARKER_NRBC: invalid option name. Check current SU2 options in config_template.cfg.
...
GRID_MOVEMENT: invalid option value YES.
------------------------------ Error Exit -------------------------------
Affected files (excluding those already covered by #2874, #2865 and #2866):
cont_adj_rans/oneram6/turb_ONERAM6.cfg
fea_fsi/SquareCyl_Beam/config.cfg
incomp_rans/AhmedBody/turb_ahmed.cfg
optimization_euler/pitching_naca64a010/pitching_NACA64A010.cfg
optimization_euler/pitching_oneram6/pitching_ONERAM6.cfg
optimization_euler/rotating_naca0012/rotating_NACA0012.cfg
optimization_rans/pitching_naca64a010/turb_NACA64A010.cfg
optimization_rans/pitching_oneram6/turb_ONERAM6.cfg
optimization_rans/steady_oneram6/turb_ONERAM6.cfg
pastix_support/config.cfg
rans/s809/trans_s809.cfg
rans/vki_turbine/turb_vki.cfg
transition/E387_Airfoil/transitional_BC_model_ConfigFile.cfg
transition/T3A_FlatPlate/transitional_BC_model_ConfigFile.cfg
turbomachinery/centrifugal_blade/centrifugal_blade.cfg
turbomachinery/centrifugal_stage/centrifugal_stage.cfg
The options involved group into a few API changes:
| Group | Options | Likely action |
|---|---|---|
| Iteration control | EXT_ITER, UNST_TIME, UNST_INT_ITER |
rename |
| Grid movement | GRID_MOVEMENT_KIND, ROTATION_RATE_X/Y/Z, MOTION_ORIGIN_X/Y/Z, PITCHING_OMEGA_X/Y/Z, PITCHING_AMPL_X/Y/Z, GRID_MOVEMENT= YES |
vectorised form |
| Turbomachinery markers | MARKER_NRBC, MARKER_MIXINGPLANE, MIXING_PROCESS_TYPE, MARKER_TURBO_PERFORMANCE |
rename, needs checking |
| FSI | FSI_* family, *_STRUCTURE_FILENAME, NONLINEAR_FEM_INT_ITER, CONV_RESIDUAL_MINVAL_FSI, SOLVER= FLUID_STRUCTURE_INTERACTION |
removed API — not a rename |
| Misc | REF_LENGTH_MOMENT, FROZEN_VISC, GEO_AXIS_STATIONS, GEO_WING_BOUNDS, SOLUTION_LIN_FILENAME, RESTART_LIN_FILENAME, SURFACE_LIN_FILENAME |
rename or drop |
The iteration-control, grid-movement and misc groups look like straightforward
renames. The FSI group is different: SOLVER= FLUID_STRUCTURE_INTERACTION is no
longer a valid solver value, so fea_fsi/SquareCyl_Beam/config.cfg may need to
be removed rather than updated.
Related, not a parse error. nicf/LS89/turb_SST_PR.cfg sets SOLVER= NAVIER_STOKES with KIND_TURB_MODEL= SST, which has been rejected in
SetPostprocessing since 2019 (f30a8bf). It parses but aborts at startup. Same
root cause — a config that no longer matches the API and is not regression
tested.
I would like to start working on this. I would rather be pointed at the right
part of it than pick for myself:
- Which group would you like done first? The grid-movement and
iteration-control renames are the most mechanical and I can verify those
locally. The turbomachinery markers I am less sure about. - For configs using a removed feature (
FSI_*,SOLVER= FLUID_STRUCTURE_INTERACTION), should they be deleted, or is the feature
reachable under a different solver name? - Should these be registered in the regression scripts as part of the same PR,
or separately? From Test cases unsteady does not work #2524 and Update deprecated EXT_ITER option in test configs #2866 I am aware that a config which merely
parses is not the same as one that converges usefully, and the second part is
the slower one.
Happy to work through it in small PRs in whatever order suits review.
Bug report checklist
- Consulting the build instructions (https://su2code.github.io/docs_v7/Build-SU2-Linux-MacOS/).
- Looking for similar problems on GitHub or CFD-Online (https://www.cfd-online.com/Forums/su2/).
- Updating to the newest version of SU2 (either develop, master, or the pre-built executables https://su2code.github.io/download.html).
Desktop (please complete the following information): - OS: Fedora 42
- C++ compiler and version: g++ (GCC) 15.2.1
- MPI implementation and version: n/a (built with
-Dwith-mpi=disabled) - SU2 Version: develop (clean build)
Activity