Can't get convergence on SU2_CFD runs
I'm a CFD modeling newbie running through a prelimary exercise to determine SU2's suitability for some slated research. My initial test case uses a nominal geometry of a CD nozzle feeding into a test section to explore super(/hyper) sonic flow characteristics arising from inlet/outlet pressure differentials. After generating a 2d mesh with GMSH and modifying the .cfg file from the eular/channel test case (sample attached), I varied the pressures intending to look for behaviours such as choking, shock front, etc. I'm seeing much of what I'd expect (with some anomalies I'll lkely follow up with in another post) but am not able to get convergence within 2000 iterations.
So am seeking guidance on what to expect as far as getting runs to converge. I noted the value of EXT_ITER in the test cfg file is 999999 - which seems to me to indicate convergence is expected rather than arbitrarily bailing out on an iterative bound. But that doesn't happen for my configuration, and when I look in the log file I see no apparent progress towards that end. I'm not sure what the criteria would be wrt RESIDUAL_MINVAL and RESIDUAL_REDUCTION input params but looking at the log file doesn't seem like the Res[Rho] Res[RhoE] outputs are headed towards convergence - wandering up and down in the general ranges of [-1.3,.3] and [4.3,5.1] respectively.
Some results do seem to carry useful comparisons (e.g position of shock fronts) with a small number of iterations (100-200). So am wondering whether there's a lot of useful analysis that can be done with relatively few, albeit non-converging, iterations. For example, in the attached plots of the (mach) speed for the euler/channel test case, there's no discernible visual difference between 200 iterations and where convergence occurs after 637 iterations (w/ RESIDUAL_MINVAL and RESIDUAL_REDUCTION set to -8 and 3, respectively somehow being satisfied with the last Res [Rho]/[RhoE] output in the log at -8.505248 and -3.118207). And in my nozzle/chamber exercise, lots of pairwise plot comparisons make apparent sense; and others - mostly where the throat is not choked - do not (but that's a different topic).
May also be another topic but a few runs throw off an exception (after noting many non-physical points)
CSysSolve::modGramSchmidt: w[i+1] = NaN
terminate called after throwing an instance of 'int'
Obviously I'm missing some key understanding and would greatly appreciate any help in how to get runs to converge and whether convergence is a necessary vs a highly desirable condition for interpreting results.
A little more info
Here are plots of the residuals (over iterations) and mach speeds (across the configuration) for a couple of cases with inlet/outlet pressures of 12K/6K and 12K/8K.
For the latter case, which is presumably not choked, the residuals after a while take off and eventually the run aborts with a NaN found. For my analysis, could live with this being an unacceptable configuration where the model just doesn't apply.
In the former, at least I get a supersonic area with the shock in the diverging area though the residuals are in a periodic plateau. Can tweak the pressures to where the shock front moves and the test section is filled with supersonic flow. Definitely can learn something from that but it sure would be nice to know why the residuals are periodic and hopefully get them into a monotonic decline to meet the convergence criteria.
I solved convergence problems on low speed cases changing some parameters in the .cfg file. You may:
- reduce your CFL_NUMBER (to 1.0 for example)
- use the following parameters:
MG_PRE_SMOOTH= ( 1, 2, 2, 2 )
MG_POST_SMOOTH= ( 1, 1, 1, 1 )
MG_CORRECTION_SMOOTH= ( 1, 1, 1, 1 )
There is no guarantee that this set of parameters will work for you, but if you get convergence problem, you can begin to reduce the CFL_NUMBER. Then, you can modify the multigrid parameters (all the MG... and MAX_CHILDREN and MAX_DIMENSION) and some numerical parameters (like CONV_NUM_METHOD_FLOW, SLOPE_LIMITER_FLOW and LIMITER_COEFF)
If you don't find a solution, you can also reduce the MGLEVEL.
Thanks Laurent, will try tweaking the params you suggest when I get a chance to see if I can get the low-speed cases to behave better. Kind of odd how the residuals are generally reducing for a while and then take off.
Looks like for the choking cases, the residuals oscillate - sometimes with a declining trend that meets the convergence criteria and sometimes not. Do you (or anyone else) know what's driving this periodic phenomena?
|All times are GMT -4. The time now is 05:48.|