|
[Sponsors] |
Multigrid immediately blowing up in new version |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
April 3, 2022, 21:57 |
Multigrid immediately blowing up in new version
|
#1 |
New Member
Tim
Join Date: Apr 2017
Posts: 6
Rep Power: 9 |
I have just upgraded from version 7.0.6 to 7.3.0 (and 7.3.1).
My problem and settings in the config.cfg file ran beautifully in v7.0.6, with residuals converging easily to 1E-10. This includes CFL ramping and 3 multigrid levels of W cycle. However, running the exact same config and mesh file in 7.3.1, the problem blows up immediately. I can only get it to run at all setting MGLEVELS=0 and dropping CFL. Some problem details: - supersonic inlet (mach 1.7) running in axisymmetric mode - initializing inlet with Mach 0.5 - JST scheme (also tried Roe, but 7.0.6 ran JST great) - RANS with SST - axisymmetric The two versions of the code were compiled with the exact same options, on the same machine. I need to update versions because v7.0.6 has bugs associated with design variables around SURFACE_TOTAL_PRESSURE (looks like the names have changed and were not updated in the python framework, but have been fixed since). Are there any known issues with multigrid or axisymmetric problems in the new versions? Happy to share more details or input files. Some other issues: I had to comment out some options in the CFG file just to get v7.3.1 to run at all, with these errors. However, all these options are still listed in the template file for the newest version so I'm not sure what is going on Code:
Error in "void CConfig::SetConfig_Parsing(std::istream&)": ------------------------------------------------------------------------- Line 151 THERMAL_DIFFUSIVITY: invalid option name. Check current SU2 options in config_template.cfg. THERMAL_DIFFUSIVITY is deprecated. See the INC_ENERGY_EQUATION options instead. Line 172 KIND_ADAPT: invalid option name. Check current SU2 options in config_template.cfg. Did you mean CFL_ADAPT? Line 173 NEW_ELEMS: invalid option name. Check current SU2 options in config_template.cfg. Did you mean CONV_CAUCHY_ELEMS? Line 174 DUALVOL_POWER: invalid option name. Check current SU2 options in config_template.cfg. Did you mean OPT_BOUND_LOWER? Line 175 ADAPT_BOUNDARY: invalid option name. Check current SU2 options in config_template.cfg. Did you mean DIRICHLET_SURFACE_BOUNDARY? |
|
April 4, 2022, 11:56 |
|
#2 |
New Member
Tim
Join Date: Apr 2017
Posts: 6
Rep Power: 9 |
just an update here...
The error happens when upgrading from 7.0.6 to 7.0.7, and then persists on every newer version I have tested up to the current version. The solver immediately bombs on 7.0.7 using the same config file that runs perfectly on 7.0.6. This is the output: Code:
------------------------------ Begin Solver ----------------------------- Simulation Run using the Single-zone Driver WARNING: SU2 was not compiled for an AVX-capable architecture. WARNING: SU2 was not compiled for an AVX-capable architecture. WARNING: SU2 was not compiled for an AVX-capable architecture. WARNING: SU2 was not compiled for an AVX-capable architecture. +-------------------------------------------------------------------------------------------------------+ | Inner_Iter| rms[Rho]| rms[RhoU]| rms[RhoV]| rms[RhoE]| Min CFL| Max CFL| Avg CFL| +-------------------------------------------------------------------------------------------------------+ | 0| -1.625648| -2.181261| -1.895775| -1.105456| 1.0000e+00| 2.0000e+00| 2.0000e+00| Error in "void CSolver::SetResidual_RMS(const CGeometry*, const CConfig*)": ------------------------------------------------------------------------- SU2 has diverged (NaN detected). ------------------------------ Error Exit ------------------------------- |
|
April 4, 2022, 17:48 |
|
#3 |
Senior Member
Pedro Gomes
Join Date: Dec 2017
Posts: 466
Rep Power: 13 |
Hi,
You can see what changed in each version here https://github.com/su2code/SU2/releases/tag/v7.0.7 It is possible, but not too likely, for the divergence to be caused by vectorization. But given how sensitive our multigrid can be I imagine it is due to: https://github.com/su2code/SU2/pull/1059 Try PARMETIS_POINT_WEIGHT=1 and PARMETIS_EDGE_WEIGHT=0 in the config. Note that for RANS with supersonic inflow/outflow we fixed an important bug in 7.3.1. |
|
April 4, 2022, 18:45 |
|
#4 |
New Member
Tim
Join Date: Apr 2017
Posts: 6
Rep Power: 9 |
Thanks for the reply.
I just tried implementing those flags in the config file with no change to the behavior; it still bombs immediately. This is testing on v7.0.7 and v7.3.1. The only way I can get it to run at all in any version after v7.0.6 is by turning off CFL adaptation, turning off multigrid, and just cranking up the CFL to ~100. Otherwise, with low CFL O(1-10), it is very unstable. Anything else to check? |
|
April 5, 2022, 03:44 |
|
#5 |
Senior Member
Pedro Gomes
Join Date: Dec 2017
Posts: 466
Rep Power: 13 |
Have you tried running some iterations with the settings that work and then restarting with the old settings?
Can you post the full config? |
|
April 6, 2022, 11:22 |
|
#6 |
New Member
Tim
Join Date: Apr 2017
Posts: 6
Rep Power: 9 |
Full config file below.
This version will run as-is on v7.0.6 but blow up immediately on any version after. As far as modifying the inputs to get it to run on a new version, and then restarting with the old settings, that works "kind of". It won't blow up, but it runs poorly and converges stalls out. If I turn off CFL adaption, turn off multigrid, and fix CFL to something like 5-20 then it runs on the new versions. Then if I restart from that solution with the original CFL adaption and multgrid settings, then it "runs" in that it does not blow up, but the CFL stalls or bounces all over the place between the min and some low value. The residuals also stall out or exhibit poor convergence rate. removed all comments to prune down characters... Code:
SOLVER= RANS KIND_TURB_MODEL= SST KIND_SGS_MODEL= NONE KIND_VERIFICATION_SOLUTION= NO_VERIFICATION_SOLUTION MATH_PROBLEM= DIRECT AXISYMMETRIC= YES RESTART_SOL= NO DISCARD_INFILES= NO SYSTEM_MEASUREMENTS= US INNER_ITER= 500 OUTER_ITER= 1 TIME_ITER= 1 MACH_NUMBER= 1.64 AOA= 0.0 SIDESLIP_ANGLE= 0.0 INIT_OPTION= REYNOLDS FREESTREAM_OPTION= TEMPERATURE_FS FREESTREAM_PRESSURE= 243.61 FREESTREAM_TEMPERATURE= 389.97 REYNOLDS_NUMBER= 1.62163E5 REYNOLDS_LENGTH= 1.0 FREESTREAM_DENSITY= 3.63918E-04 REF_DIMENSIONALIZATION= FREESTREAM_VEL_EQ_MACH REF_ORIGIN_MOMENT_X= 0.00 REF_ORIGIN_MOMENT_Y= 0.00 REF_ORIGIN_MOMENT_Z= 0.00 REF_LENGTH= 1.0 REF_AREA= 689040.0 SEMI_SPAN= 0.0 FLUID_MODEL= STANDARD_AIR GAMMA_VALUE= 1.4 VISCOSITY_MODEL= SUTHERLAND HIGHLITE_AREA= 3912.49 SUBSONIC_ENGINE= YES SUBSONIC_ENGINE_CYL= ( -135.0, 0.0, 0.0, 10.0, 0.0 , 0.0, 40.0 ) SUBSONIC_ENGINE_VALUES= ( 0.5, 0.0, 0.0, 925.0, 518.67 ) MARKER_EULER= ( NONE ) MARKER_HEATFLUX= ( compression, 0.0, turnback, 0.0, centerbody, 0.0, diffuser, 0.0, inlet_lip, 0.0, cowl_lip, 0.0, cowl, 0.0, nacelle, 0.0 ) MARKER_ISOTHERMAL= ( NONE ) MARKER_FAR= ( inflow, farfield, outflow ) MARKER_SYM= ( axis ) MARKER_INTERNAL= ( NONE ) MARKER_NEARFIELD= ( NONE ) INLET_TYPE= TOTAL_CONDITIONS SPECIFIED_INLET_PROFILE= NO INLET_FILENAME= inlet.dat MARKER_INLET= ( NONE ) MARKER_OUTLET= ( aip, 795 ) %restart solution with higher aip pressure to get proper operation and convergecnce %MARKER_OUTLET= ( aip, 800 ) ACTDISK_TYPE= VARIABLES_JUMP MARKER_ACTDISK= ( NONE ) MARKER_SUPERSONIC_INLET= ( NONE ) MARKER_SUPERSONIC_OUTLET= ( NONE ) MARKER_PERIODIC= ( NONE ) ENGINE_INFLOW_TYPE= FAN_FACE_MACH MARKER_ENGINE_EXHAUST= ( NONE ) MARKER_NORMAL_DISPL= ( NONE ) MARKER_PRESSURE= ( NONE ) MARKER_RIEMANN= ( NONE ) MARKER_SHROUD= (NONE) MARKER_ZONE_INTERFACE= ( NONE ) MARKER_FLUID_INTERFACE= ( NONE ) KIND_INTERPOLATION= NEAREST_NEIGHBOR MARKER_TURBOMACHINERY= ( NONE ) MARKER_MIXINGPLANE_INTERFACE= ( NONE ) MARKER_GILES= ( NONE ) GILES_EXTRA_RELAXFACTOR= ( 0.05, 0.05) SPATIAL_FOURIER= NO MARKER_PLOTTING= ( compression, turnback, centerbody, diffuser, inlet_lip, cowl_lip, cowl, nacelle ) MARKER_MONITORING= ( aip, compression, turnback, centerbody, diffuser, inlet_lip, cowl_lip, cowl, nacelle ) MARKER_WALL_FUNCTIONS= ( NONE ) MARKER_PYTHON_CUSTOM= ( NONE ) MARKER_DESIGNING= ( compression, turnback, centerbody, diffuser, inlet_lip ) MARKER_ANALYZE= ( aip ) MARKER_ANALYZE_AVERAGE= MASSFLUX NUM_METHOD_GRAD= GREEN_GAUSS CFL_NUMBER= 5.0 CFL_ADAPT= YES CFL_ADAPT_PARAM= ( 0.1, 2.0, 0.1, 100 ) MAX_DELTA_TIME= 1E6 RK_ALPHA_COEFF= ( 0.66667, 0.66667, 1.000000 ) OBJECTIVE_FUNCTION= SURFACE_TOTAL_PRESSURE OBJECTIVE_WEIGHT= 1.0 MUSCL_FLOW= YES SLOPE_LIMITER_FLOW= VENKATAKRISHNAN MUSCL_TURB= NO SLOPE_LIMITER_TURB= VENKATAKRISHNAN MUSCL_ADJFLOW= YES SLOPE_LIMITER_ADJFLOW= VENKATAKRISHNAN MUSCL_ADJTURB= NO SLOPE_LIMITER_ADJTURB= VENKATAKRISHNAN VENKAT_LIMITER_COEFF= 0.05 REF_SHARP_EDGES= 3.0 ADJ_SHARP_LIMITER_COEFF= 3.0 SENS_REMOVE_SHARP= NO LIMITER_ITER= 999999 LAX_SENSOR_COEFF= 0.15 JST_SENSOR_COEFF= ( 0.5, 0.02 ) ADJ_LAX_SENSOR_COEFF= 0.15 ADJ_JST_SENSOR_COEFF= ( 0.5, 0.02 ) LINEAR_SOLVER= FGMRES DISCADJ_LIN_SOLVER= FGMRES LINEAR_SOLVER_PREC= ILU DISCADJ_LIN_PREC= ILU LINEAR_SOLVER_ILU_FILL_IN= 0 LINEAR_SOLVER_ERROR= 1E-6 LINEAR_SOLVER_ITER= 5 LINEAR_SOLVER_RESTART_FREQUENCY= 10 LINEAR_SOLVER_SMOOTHER_RELAXATION= 1.0 MGLEVEL= 3 MGCYCLE= W_CYCLE MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) MG_POST_SMOOTH= ( 0, 0, 0, 0 ) MG_CORRECTION_SMOOTH= ( 0, 0, 0, 0 ) MG_DAMP_RESTRICTION= 0.75 MG_DAMP_PROLONGATION= 0.75 CONV_NUM_METHOD_FLOW= JST ROE_LOW_DISSIPATION= FD LOW_MACH_CORR= NO LOW_MACH_PREC= NO USE_ACCURATE_FLUX_JACOBIANS= NO ENTROPY_FIX_COEFF= 0.1 CENTRAL_JACOBIAN_FIX_FACTOR= 4.0 TIME_DISCRE_FLOW= EULER_IMPLICIT NUM_METHOD_FEM_FLOW= DG RIEMANN_SOLVER_FEM= ROE QUADRATURE_FACTOR_STRAIGHT_FEM= 2.0 QUADRATURE_FACTOR_CURVED_FEM= 3.0 THETA_INTERIOR_PENALTY_DG_FEM= 1.0 COMPUTE_ENTROPY_FLUID_MODEL= YES USE_LUMPED_MASSMATRIX_DGFEM= NO JACOBIAN_SPATIAL_DISCRETIZATION_ONLY= NO ALIGNED_BYTES_MATMUL= 128 TIME_DISCRE_FEM_FLOW= RUNGE-KUTTA_EXPLICIT ADER_PREDICTOR= ADER_ALIASED_PREDICTOR LEVELS_TIME_ACCURATE_LTS= 1 KIND_MATRIX_COLORING= GREEDY_COLORING CONV_NUM_METHOD_TURB= SCALAR_UPWIND TIME_DISCRE_TURB= EULER_IMPLICIT CFL_REDUCTION_TURB= 1.0 FROZEN_LIMITER_DISC= NO FROZEN_VISC_DISC= NO INCONSISTENT_DISC= NO CONV_NUM_METHOD_ADJFLOW= JST TIME_DISCRE_ADJFLOW= EULER_IMPLICIT RELAXATION_FACTOR_ADJOINT= 1.0 QUASI_NEWTON_NUM_SAMPLES= 20 CFL_REDUCTION_ADJFLOW= 0.8 LIMIT_ADJFLOW= 1E6 MG_ADJFLOW= NO CONV_NUM_METHOD_ADJTURB= SCALAR_UPWIND TIME_DISCRE_ADJTURB= EULER_IMPLICIT CFL_REDUCTION_ADJTURB= 0.01 GEO_MARKER= ( airfoil ) GEO_DESCRIPTION= AIRFOIL GEO_LOCATION_STATIONS= (0.0, 0.5, 1.0) GEO_BOUNDS= (1.5, 3.5) GEO_PLOT_STATIONS= NO GEO_NUMBER_STATIONS= 25 GEO_MODE= FUNCTION EDGE_COLORING_GROUP_SIZE= 512 LINEAR_SOLVER_PREC_THREADS= 0 SCREEN_OUTPUT= (INNER_ITER, RMS_DENSITY, RMS_MOMENTUM-X, RMS_MOMENTUM-Y, RMS_ENERGY, MIN_CFL, MAX_CFL, AVG_CFL) HISTORY_OUTPUT= ITER, WALL_TIME, RMS_RES, ENGINE_OUTPUT, FLOW_COEFF, AERO_COEFF, COMBO, CFL_NUMBER VOLUME_OUTPUT= (COORDINATES, SOLUTION, PRIMITIVE) SCREEN_WRT_FREQ_INNER= 10 SCREEN_WRT_FREQ_OUTER= 1 SCREEN_WRT_FREQ_TIME= 1 HISTORY_WRT_FREQ_INNER= 10 HISTORY_WRT_FREQ_OUTER= 1 HISTORY_WRT_FREQ_TIME= 1 OUTPUT_WRT_FREQ= 500 MESH_FILENAME= inlet.su2 MESH_FORMAT= SU2 MESH_OUT_FILENAME= mesh_out.su2 SOLUTION_FILENAME= solution_flow.dat SOLUTION_ADJ_FILENAME= solution_adj.dat TABULAR_FORMAT= TECPLOT OUTPUT_FILES= (RESTART, PARAVIEW, SURFACE_PARAVIEW) CONV_FILENAME= history BREAKDOWN_FILENAME= forces_breakdown.dat RESTART_FILENAME= restart_flow.dat RESTART_ADJ_FILENAME= restart_adj.dat VOLUME_FILENAME= flow VOLUME_ADJ_FILENAME= adjoint VALUE_OBJFUNC_FILENAME= of_eval.dat GRAD_OBJFUNC_FILENAME= of_grad.dat SURFACE_FILENAME= surface_flow SURFACE_ADJ_FILENAME= surface_adjoint READ_BINARY_RESTART= YES REORIENT_ELEMENTS= YES DV_VALUE_NEW= 0 DV_VALUE_OLD= 0 OPT_ITERATIONS= 100 OPT_ACCURACY= 1e-10 OPT_RELAX_FACTOR= 1.0 OPT_GRADIENT_FACTOR= 1.0 OPT_BOUND_UPPER= 10000000000.0 OPT_BOUND_LOWER= -10000000000.0 OPT_COMBINE_OBJECTIVE= NO OPT_CONSTRAINT= NONE TARGET_CL= 0.0 MULTIPOINT_WEIGHT= (1.0) MULTIPOINT_MACH_NUMBER= (1.64) MULTIPOINT_AOA= (0.0) MULTIPOINT_SIDESLIP_ANGLE= (0.0) MULTIPOINT_REYNOLDS_NUMBER= (1.62163E5) MULTIPOINT_TARGET_CL= (0.0) MULTIPOINT_FREESTREAM_PRESSURE= (243.61) MULTIPOINT_FREESTREAM_TEMPERATURE= (389.97) MULTIPOINT_OUTLET_VALUE= ( 795 ) MULTIPOINT_MESH_FILENAME= (inlet.su2) DV_KIND= FFD_SETTING DV_PARAM= ( 1, 0.5) DEFINITION_DV= ( 30 , 1.0 | WING | 0.0 , 0.05 ) NUMBER_PART= 20 DV_VALUE= 0 I don't mind daisy chaining input files and restarting from previous solutions, I'd actually prefer it especially for challenging simulations like inlets. But I haven't figured out how to do that easily with the design/optimization options , at least with the default python scripts that are shipped with SU2. Some additional notes:
|
|
April 7, 2022, 10:30 |
|
#7 |
Senior Member
Pedro Gomes
Join Date: Dec 2017
Posts: 466
Rep Power: 13 |
I would try V-Cycle instead of W-Cycle, and I've seen some cases very sensitive to the MG damping factors.
If you go without MG you can try allowing more linear solver iterations and increasing the CFL further. We also have a Newton-Krylov alternative now, you can see an example here https://su2code.github.io/vandv/30p30n/ For a more customizable alternative to the python scripts see what is used here https://su2code.github.io/tutorials/Species_Transport/ |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
OpenFOAM.com versus OpenFOAM.org: Which version to use? | wyldckat | OpenFOAM | 19 | March 25, 2023 07:50 |
libz.so.1: no version information available | dmaz | OpenFOAM Running, Solving & CFD | 3 | January 4, 2015 16:54 |
Multigrid Stability Issues | ThomasHermann | SU2 | 1 | November 5, 2014 16:18 |
[Matlab] - Add toolbox to version R2012b. | darkluix88 | Lounge | 2 | October 23, 2014 10:23 |
Multigrid applied to k-e models | Paulo Zandonade | Main CFD Forum | 9 | May 24, 1999 08:10 |