From b677593d747e21dd80e90ca12d71aea0a70b4942 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lie=20Grebe?= Date: Tue, 21 Jul 2026 14:20:07 -0400 Subject: [PATCH 1/3] Fix species solver MG restart crash --- SU2_CFD/src/solvers/CSpeciesSolver.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/SU2_CFD/src/solvers/CSpeciesSolver.cpp b/SU2_CFD/src/solvers/CSpeciesSolver.cpp index dc9f278e776..28d09dac050 100644 --- a/SU2_CFD/src/solvers/CSpeciesSolver.cpp +++ b/SU2_CFD/src/solvers/CSpeciesSolver.cpp @@ -290,9 +290,9 @@ void CSpeciesSolver::LoadRestart(CGeometry** geometry, CSolver*** solver, CConfi true); if (config->GetKind_Turb_Model() != TURB_MODEL::NONE) - solver[iMesh][TURB_SOL]->Postprocessing(geometry[MESH_0], solver[MESH_0], config, MESH_0); + solver[iMesh][TURB_SOL]->Postprocessing(geometry[iMesh], solver[iMesh], config, iMesh); - solver[iMesh][SPECIES_SOL]->Preprocessing(geometry[MESH_0], solver[MESH_0], config, MESH_0, NO_RK_ITER, + solver[iMesh][SPECIES_SOL]->Preprocessing(geometry[iMesh], solver[iMesh], config, iMesh, NO_RK_ITER, RUNTIME_SPECIES_SYS, false); } From 4150aa97f3d5c40b146feaab77df2504f5e42281 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lie=20Grebe?= Date: Tue, 21 Jul 2026 14:46:01 -0400 Subject: [PATCH 2/3] Test species MG restart Modify existing axisymmetric compressible species test to add test for MG restart. --- .../axisymmetric_rans/air_nozzle/air_nozzle_species.cfg | 8 ++++++-- TestCases/serial_regression.py | 2 +- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/TestCases/axisymmetric_rans/air_nozzle/air_nozzle_species.cfg b/TestCases/axisymmetric_rans/air_nozzle/air_nozzle_species.cfg index 27ad7d6fa35..0a54c295673 100644 --- a/TestCases/axisymmetric_rans/air_nozzle/air_nozzle_species.cfg +++ b/TestCases/axisymmetric_rans/air_nozzle/air_nozzle_species.cfg @@ -12,7 +12,7 @@ % SOLVER= RANS KIND_TURB_MODEL= SST -RESTART_SOL= NO +RESTART_SOL= YES AXISYMMETRIC= YES % -------------------- COMPRESSIBLE FREE-STREAM DEFINITION --------------------% @@ -92,6 +92,9 @@ CONV_NUM_METHOD_TURB= SCALAR_UPWIND TIME_DISCRE_TURB= EULER_IMPLICIT CFL_REDUCTION_TURB= 1.0 +% -------------------------- MULTIGRID PARAMETERS -----------------------------% +MGLEVEL= 1 + % --------------------------- CONVERGENCE PARAMETERS --------------------------% % ITER= 15 @@ -101,7 +104,8 @@ CONV_STARTITER= 10 % ------------------------- INPUT/OUTPUT INFORMATION --------------------------% % MESH_FILENAME= nozzle.su2 -RESTART_FILENAME= restart_flow +RESTART_FILENAME= restart_flow_species +SOLUTION_FILENAME= solution_flow_species OUTPUT_WRT_FREQ= 1000 SCREEN_OUTPUT= (INNER_ITER, RMS_DENSITY, RMS_ENERGY, RMS_TKE, RMS_DISSIPATION, RMS_SPECIES_0, TOTAL_HEATFLUX, \ RMS_ADJ_DENSITY, RMS_ADJ_ENERGY, RMS_ADJ_TKE, RMS_ADJ_DISSIPATION) diff --git a/TestCases/serial_regression.py b/TestCases/serial_regression.py index 8adb14300f3..79773b6d986 100755 --- a/TestCases/serial_regression.py +++ b/TestCases/serial_regression.py @@ -354,7 +354,7 @@ def main(): axi_rans_air_nozzle_species.cfg_dir = "axisymmetric_rans/air_nozzle" axi_rans_air_nozzle_species.cfg_file = "air_nozzle_species.cfg" axi_rans_air_nozzle_species.test_iter = 10 - axi_rans_air_nozzle_species.test_vals = [-1.840714, 3.726195, -2.009323, 5.649002, -2.494388, 0.0000] + axi_rans_air_nozzle_species.test_vals = [-1.690923, 3.877716, -2.932258, 5.754594, -3.130820, 0.0] axi_rans_air_nozzle_species.tol = 0.0001 test_list.append(axi_rans_air_nozzle_species) From 35622e8c0dcef7cfc1de096be0e9e4e0f9535046 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Aur=C3=A9lie=20Grebe?= Date: Tue, 21 Jul 2026 15:02:20 -0400 Subject: [PATCH 3/3] Add comment explaining MG species restart --- SU2_CFD/src/solvers/CTurbSolver.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/SU2_CFD/src/solvers/CTurbSolver.cpp b/SU2_CFD/src/solvers/CTurbSolver.cpp index 0ac07ab1642..51562382311 100644 --- a/SU2_CFD/src/solvers/CTurbSolver.cpp +++ b/SU2_CFD/src/solvers/CTurbSolver.cpp @@ -184,6 +184,7 @@ void CTurbSolver::LoadRestart(CGeometry** geometry, CSolver*** solver, CConfig* solver[iMesh][TURB_SOL]->CompleteComms(geometry[iMesh], config, MPI_QUANTITIES::SOLUTION); if (config->GetKind_Species_Model() == SPECIES_MODEL::NONE) { + /*--- The following is done by the species solver if active ---*/ solver[iMesh][FLOW_SOL]->Preprocessing(geometry[iMesh], solver[iMesh], config, iMesh, NO_RK_ITER, RUNTIME_FLOW_SYS, true); solver[iMesh][TURB_SOL]->Postprocessing(geometry[iMesh], solver[iMesh], config, iMesh);