CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > SU2

Multigrid immediately blowing up in new version

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   April 3, 2022, 21:57
Default Multigrid immediately blowing up in new version
  #1
New Member
 
Tim
Join Date: Apr 2017
Posts: 6
Rep Power: 9
davistib is on a distinguished road
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?
davistib is offline   Reply With Quote

Old   April 4, 2022, 11:56
Default
  #2
New Member
 
Tim
Join Date: Apr 2017
Posts: 6
Rep Power: 9
davistib is on a distinguished road
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 -------------------------------
Is this related to the vectorized numerics that were implemented in 7.0.7? I've tried with other convective fluxes that I thought would not be affected (e.g. HLLC) and with same behavior.
davistib is offline   Reply With Quote

Old   April 4, 2022, 17:48
Default
  #3
pcg
Senior Member
 
Pedro Gomes
Join Date: Dec 2017
Posts: 466
Rep Power: 13
pcg is on a distinguished road
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.
pcg is offline   Reply With Quote

Old   April 4, 2022, 18:45
Default
  #4
New Member
 
Tim
Join Date: Apr 2017
Posts: 6
Rep Power: 9
davistib is on a distinguished road
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?
davistib is offline   Reply With Quote

Old   April 5, 2022, 03:44
Default
  #5
pcg
Senior Member
 
Pedro Gomes
Join Date: Dec 2017
Posts: 466
Rep Power: 13
pcg is on a distinguished road
Have you tried running some iterations with the settings that work and then restarting with the old settings?
Can you post the full config?
pcg is offline   Reply With Quote

Old   April 6, 2022, 11:22
Default
  #6
New Member
 
Tim
Join Date: Apr 2017
Posts: 6
Rep Power: 9
davistib is on a distinguished road
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:
  • even on v7.0.6 it is very sensitive to the ENTROPY_FIX parameter. The current value seems to be the magic number.
  • also sensitive to the BC at the aip. The inlet is initialized subsonic, with pressure = 795. After the first 500 iterations I restart with pressure = 800 and that gets residuals to 1E-12 after 1000 iterations (only on v7.0.6)
davistib is offline   Reply With Quote

Old   April 7, 2022, 10:30
Default
  #7
pcg
Senior Member
 
Pedro Gomes
Join Date: Dec 2017
Posts: 466
Rep Power: 13
pcg is on a distinguished road
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/
pcg is offline   Reply With Quote

Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are Off
Pingbacks are On
Refbacks are On


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


All times are GMT -4. The time now is 15:07.