|
[Sponsors] |
December 5, 2024, 06:47 |
SU2 vs CFX - comparison
|
#1 |
Member
Giovanni Bettega
Join Date: Sep 2014
Posts: 34
Rep Power: 12 |
Hello forum,
I did a run on a simple fluid domain with SU2: Incompressible flow of air in a pipe with three bends. I have the results of the same run (same BCs, "approximatly" same grid density), obtained with CFX. I would like to known what are your opinion about the results, most of all about TKE and Pressure distributions. See the attached pdf file. Regards Giovanni Last edited by gbettega; December 5, 2024 at 09:31. Reason: typo |
|
December 5, 2024, 14:04 |
|
#2 |
Senior Member
bigfoot
Join Date: Dec 2011
Location: Netherlands
Posts: 676
Rep Power: 21 |
It does not look like the setup is the same. The su2 case does not show flow separation in the bend like the cfx case, or the pipe bend tutorial. What is the Reynolds number supposed to be? Do you have an image of the cross section of the mesh? Do you have an inflation layer on the wall?
|
|
December 5, 2024, 16:23 |
No separation vx CFX
|
#3 | |
Member
Giovanni Bettega
Join Date: Sep 2014
Posts: 34
Rep Power: 12 |
Quote:
I attached a pdf file in which I show: the mesh used for SU2 (cross sectional views), the mesh used by CFX. This time I => intentionally <= did not generate inflation layers in CFX and for the SU2 mesh. In the file I also show the results of the same run, with CFX, BUT with a coarser mesh (much coarser, most of all at bends). Obviously the results are different with respect to the original CFX results (with the fine mesh), but again, a separation at bends is captured, and "qualitatively" the difference wrt Su2 results remains I summarize the BCs for both the codes: SST model for turbulence Inlet: 1 m/s 0,05 turb intensity, 10.0 turbToLaminarRatio Outlet: 0 Pa Wall: standard wall functions for SU2, automatic wall treatment for CFX Convergence level: RMS 10^-10 for SU2, <1e-6 RMS for CFX. Since fluid is air, and pipe diameter 0.1 m Re ~ 1.2 x 0.1 x 1.0 / 1.7 x 10^-5 ~ 7000 Sorry for the quality of the pdf, only for staying within the file size limit Regards Giovanni Last edited by gbettega; December 6, 2024 at 03:06. Reason: typo errors |
||
December 6, 2024, 03:28 |
|
#4 | |
New Member
Join Date: Feb 2022
Posts: 23
Rep Power: 5 |
Quote:
Thanks for your questions, I have some question, I saw that you wrote in the pdf beta=4.1(default value), which beta do you mean? also, which first order upwind for are you using in SU2? FDS or JST? Are you using bounded scalar as a convective scheme for SST? Which SST model are you using? V1994m or V2003m? Best regards, Cristopher Morales |
||
December 6, 2024, 03:37 |
|
#5 | |
Member
Giovanni Bettega
Join Date: Sep 2014
Posts: 34
Rep Power: 12 |
Quote:
thank you very much for reading my post. Beta for artificial compressibility is written and left unchanged wrt default value. No bounded scalar correction used [...] KIND_TURB_MODEL= SST SST_OPTIONS= V2003m [...] CONV_NUM_METHOD_FLOW= FDS MUSCL_FLOW= NO [...] BETA_FACTOR= 4.1 Regards Giovanni Last edited by gbettega; December 6, 2024 at 03:52. Reason: typo |
||
December 6, 2024, 04:02 |
|
#6 |
Senior Member
bigfoot
Join Date: Dec 2011
Location: Netherlands
Posts: 676
Rep Power: 21 |
Do you have the mesh and the .cfg file available? To me it looks like the Reynolds number in SU2 is much lower because of the lack of flow separation, so I think there is a setting wrong.
|
|
December 6, 2024, 06:24 |
input file
|
#7 | |
Member
Giovanni Bettega
Join Date: Sep 2014
Posts: 34
Rep Power: 12 |
Quote:
I copy here a .cfg file, suitable for this grids: coarse: https://drive.google.com/file/d/10q4...usp=drive_link medium: https://drive.google.com/file/d/1gmJ...ew?usp=sharing fine: https://drive.google.com/file/d/1K2i...usp=drive_link just obviously remove the final part _<...> indicating the fineness level. Regards Giovanni % ----------------------------------------------------------- % Su2 configuration file % Date: 2024/12/06 Time: 11:22:28 % Fluid analysis 20241205110134687 % ----------------------------------------------------------- % ------------------- % Problem definition % ------------------- MATH_PROBLEM= DIRECT TIME_DOMAIN= NO ITER= 250 % ------------------------------------------ % Incompressible flow conditions definition % ------------------------------------------ THERMODYNAMIC_PRESSURE= 101325 INC_DENSITY_MODEL= CONSTANT INC_ENERGY_EQUATION= NO % ---------------- % Viscosity model % ---------------- VISCOSITY_MODEL= CONSTANT_VISCOSITY MU_CONSTANT= 1.716e-05 % ----------------------- % Initialization options % ----------------------- INC_DENSITY_INIT= 1.204 INC_VELOCITY_INIT= ( 1e-06, 1e-06, 1e-06 ) INC_TEMPERATURE_INIT= 288.15 INC_NONDIM= DIMENSIONAL % ---------------------- % Body force definition % ---------------------- BODY_FORCE= NO BODY_FORCE_VECTOR= ( 0, 0, 0 ) % ------------ % Flow regime % ------------ SOLVER= INC_RANS KIND_TURB_MODEL= SST SST_OPTIONS= V2003m % ---------------------------- % Boundary conditions: inlets % ---------------------------- MARKER_INLET= ( INLET_15250943004087258967, 0.000000, 1.000000, 1.000000, 0.000000, 0.000000 ) INC_INLET_TYPE= ( VELOCITY_INLET ) INC_INLET_DAMPING= 0.1 MARKER_INLET_TURBULENT= ( INLET_15250943004087258967, 0.050000, 10.000000 ) % ----------------------------- % Boundary conditions: outlets % ----------------------------- MARKER_OUTLET= ( OUTLET_14173383059767514934, 0.000000 ) INC_OUTLET_TYPE= ( PRESSURE_OUTLET ) INC_OUTLET_DAMPING= 0.1 % --------------------------- % Boundary conditions: walls % --------------------------- MARKER_HEATFLUX= ( WALL_7062369534381839284, 0.000000 ) MARKER_WALL_FUNCTIONS= ( WALL_7062369534381839284, STANDARD_WALL_FUNCTION ) % ------------------------------------- % Expert parameters for wall functions % ------------------------------------- WALLMODEL_KAPPA= 0.410 WALLMODEL_B= 5.5 WALLMODEL_MINYPLUS= 5 WALLMODEL_MAXITER= 200 WALLMODEL_RELFAC= 0.5 BULK_MODULUS= 142000 BETA_FACTOR= 4.1 % ------------------------- % Linear solver definition % ------------------------- LINEAR_SOLVER= FGMRES LINEAR_SOLVER_PREC= LU_SGS LINEAR_SOLVER_ERROR= 0.0001 LINEAR_SOLVER_ITER= 50 % ---------------------------- % Numerical method definition % ---------------------------- CONV_NUM_METHOD_FLOW= FDS MUSCL_FLOW= NO SLOPE_LIMITER_FLOW= NONE TIME_DISCRE_FLOW= EULER_IMPLICIT CFL_NUMBER= 10 CFL_ADAPT= NO NUM_METHOD_GRAD= WEIGHTED_LEAST_SQUARES % ---------- % Multigrid % ---------- MGLEVEL= 3 MGCYCLE= V_CYCLE MG_PRE_SMOOTH= ( 1, 2, 3, 3 ) MG_POST_SMOOTH= ( 0, 0, 0, 0 ) MG_CORRECTION_SMOOTH= ( 0.000000, 0.000000, 0.000000, 0.000000 ) MG_DAMP_RESTRICTION= 0.75 MG_DAMP_PROLONGATION= 0.75 % -------------------------------------- % Turbulent numerical method definition % -------------------------------------- CONV_NUM_METHOD_TURB= SCALAR_UPWIND MUSCL_TURB= NO SLOPE_LIMITER_TURB= NONE TIME_DISCRE_TURB= EULER_IMPLICIT CFL_REDUCTION_TURB= 1 % ------------------------ % Transitional turbulence % ------------------------ KIND_TRANS_MODEL= NONE % ----------------------- % Convergence parameters % ----------------------- CONV_RESIDUAL_MINVAL= -10 CONV_FIELD= RMS_PRESSURE, RMS_VELOCITY-X, RMS_VELOCITY-Y, RMS_VELOCITY-Z, RMS_TEMPERATURE, RMS_TKE, RMS_DISSIPATION WINDOW_CAUCHY_CRIT= NO INNER_ITER= 250 CONV_STARTITER= 10 % ------------------------- % Input/Output information % ------------------------- MESH_FILENAME= 'C:/ProgramData/WB/Wgeom_files/CFD_RES/20241205110134687/Su2_20241205110134687.su2' MESH_FORMAT= SU2 CONV_FILENAME= 'C:/ProgramData/WB/Wgeom_files/CFD_RES/20241205110134687/convergence_history' VOLUME_FILENAME= 'C:/ProgramData/WB/Wgeom_files/CFD_RES/20241205110134687/results_flow' OUTPUT_FILES= RESTART, TECPLOT_ASCII RESTART_FILENAME= 'C:/ProgramData/WB/Wgeom_files/CFD_RES/20241205110134687/restart_flow' WRT_RESTART_OVERWRITE= YES RESTART_SOL= NO SCREEN_OUTPUT= ( TIME_ITER, INNER_ITER, RMS_PRESSURE, RMS_VELOCITY-X, RMS_VELOCITY-Y, RMS_VELOCITY-Z, RMS_TKE, RMS_DISSIPATION, LINSOL_ITER, LINSOL_RESIDUAL, LINSOL_ITER_TURB, LINSOL_RESIDUAL_TURB ) HISTORY_OUTPUT = ( TIME_ITER, INNER_ITER, RMS_PRESSURE, RMS_VELOCITY-X, RMS_VELOCITY-Y, RMS_VELOCITY-Z, RMS_TKE, RMS_DISSIPATION ) WRT_VOLUME_OVERWRITE= YES COMM_LEVEL= MINIMAL |
||
December 6, 2024, 06:41 |
|
#8 | |
New Member
Join Date: Feb 2022
Posts: 23
Rep Power: 5 |
Quote:
thanks for sharing your cfg.file, What temperature are you imposing at the inlet? it is 288.15? I cannot see it in your cfg file also, why do you initialie the velocity using these values INC_VELOCITY_INIT= ( 1e-06, 1e-06, 1e-06 )? best regards, Cristopher Morales |
||
December 6, 2024, 06:42 |
|
#9 |
Member
Giovanni Bettega
Join Date: Sep 2014
Posts: 34
Rep Power: 12 |
Number of iterations has to be changed according tò the mesh size.
Beta factor is not in the correct group: it has been added for testing purposes Last edited by gbettega; December 6, 2024 at 07:02. Reason: Typo |
|
December 6, 2024, 06:45 |
|
#10 |
Member
Giovanni Bettega
Join Date: Sep 2014
Posts: 34
Rep Power: 12 |
Hi
Energy eq Is not active, so temperature Is only a placeholder. In this case the Value at inlet does not enter the calculation. Values 1e-6 are initialization for velocity components. Other can be used. Thanks Giovanni Last edited by gbettega; December 6, 2024 at 07:16. Reason: imprecisione |
|
December 6, 2024, 07:56 |
|
#11 | |
New Member
Join Date: Feb 2022
Posts: 23
Rep Power: 5 |
Quote:
from my own experience as a SU2 user, I would use less linear iterations % ------------------------- % Linear solver definition % ------------------------- LINEAR_SOLVER= FGMRES LINEAR_SOLVER_PREC= LU_SGS LINEAR_SOLVER_ERROR= 0.0001 LINEAR_SOLVER_ITER= 10 Increase the number of iterations (1000 or more): ITER= 2000 Also, I would initialize the velocity as the same velocity of your inlet. INC_VELOCITY_INIT= ( 1.00, 0.0, 0.0 ) regarding turbulent model, I would use bounded scalar: % Turbulent numerical method definition % -------------------------------------- CONV_NUM_METHOD_TURB= BOUNDED_SCALAR although you are not solving the energy equation, to avoid possible inconsistencies within the solver, I would provide at the inlet the same value of the temperature that you are using as INC_INIT_TEMP=288.15: % Boundary conditions: inlets % ---------------------------- MARKER_INLET= ( INLET_15250943004087258967, 288.15, 1.000000, 1.000000, 0.000000, 0.000000 ) INC_INLET_TYPE= ( VELOCITY_INLET ) I hope this helps. Best regards, Cristopher Morales Ubal |
||
December 6, 2024, 09:46 |
SU2 vs CFX - la saga continua
|
#12 |
Member
Giovanni Bettega
Join Date: Sep 2014
Posts: 34
Rep Power: 12 |
Thank you for your observations
Actually I choosed an "S" shaped domain =>also<= for avoiding that the user could initialize the field using unique and meaningful values of the velocity components: indeed here the flows enters the domain along the positive x direction, and exits along the negative x direction, so setting an initial velocity x-component as a single value is certainly possible, but it is very "far" from the solution that will be found. By the way, the solution is iterative, and it => ideally <= an unique one will be found, independently on the initial conditions set at the beginning of the iterative process: I would like to stress the point => in absence of bifurcations <=. But fortunately here I think it is not the case. I attach the flow result obtained with the settings you suggest. As you can see, another time there no separation is observed, and the solution is qualitatively the same as the previous, quite different wrt the CFX solution. As final notes: (1) The solution could be not perfectly converged after 250, or 1000, or more iterations, but also at these "intermediate" convergence levels one should have indications of the flow separation. So 2000 iterations is quite correct, but here, only for observing the development of a flow separation, 250/500 iterations could be enough. Incidentally consider that CFX reached RMS < 10^-6 in less than 100 iterations (perhaps has internally a "tuned" multigrid for doing that) (2) If one sets LINEAR_SOLVER_ERROR= 0.0001 LINEAR_SOLVER_ITER= 50 the linear solver works (continues iterating) until it has reached the limit 0.0001: could be for less or much less than 50 iterations. In this case, for example the 0.0001 level is reached both for flow and both for turbulence in 3 - 5 iterations. So, setting LINEAR_SOLVER_ITER= 50, does not affect the solution time: it only gives the iterative solver the possibility to work up to 50 iterations. The convergence limit 10^-4 in an interative context as an important role, but it could be lowered, because of the preconditioning stage. ************************************************** ********** I realize, and I apologize, that what I wrote simply de-focus from the initial question: how, with the same turbulence model, boundary conditions, the SU2 and CFX solutions are so different? 1 m/s at inlet, 0.05 turbulence intentisity, 10.0 turbtolaminarRatio 0 Pa at outlet no slip wall with standard wall functions (SU2) and automatic wall treatment (CFX) ************************************************** ********** I'm not discussing about correctness of a solution wrt another: after all I do not have at home such a pipe and instrumentation for doing the experiment, and I do not want to have it, so it could be the CFX solution not correct, and "deviate" from the SU2 one. I do not expect exactly the same distributions, with the same max and min and average, but I expect, for the same modeling, qualitatively similar results. I suspect that the differences I'm observing depend on me. Thank you Giovanni Last edited by gbettega; December 8, 2024 at 18:27. Reason: espressioni esagerate and typo |
|
December 11, 2024, 06:29 |
|
#13 |
Member
Giovanni Bettega
Join Date: Sep 2014
Posts: 34
Rep Power: 12 |
Hello,
absolutely not able to remove the inconsistency between the two codes. Tryed SU2 V2003m, V1994m, but the inconsistency remains. In attachment last run: TKE using V1994m. Any idea? Did someone of you perform this kind of comparison? V&V contains only one case, in 2D, and nothing else... Thank you Giovanni Last edited by gbettega; December 11, 2024 at 06:44. Reason: typo, and an additional question |
|
December 11, 2024, 18:57 |
|
#14 |
Senior Member
bigfoot
Join Date: Dec 2011
Location: Netherlands
Posts: 676
Rep Power: 21 |
That's the problem. You cannot draw any conclusions based on intermediate results. Also do not expect to see any 'expected' flow behavior in 'partially converged' results.
The reason that the solution does not converge well is because the mesh is really bad and quite coarse. The fine mesh is about the minimum that I'd use. Next to the mesh size, you should also use inflation layers on the wall. Without inflation layers your skin friction, pressure drop, tke, will all be wrong. They will also be wrong in CFX. When comparing the two codes with each other you should not only make sure that they are numerically converged, but also converged in the sense that your results are mesh-independent. For this mesh, it is relatively easy to create a high quality structured mesh using gmsh (check the tutorial of the 90 degree bend for instance). Create a good mesh on the inlet face, including inflation layers, and then extrude the mesh to create the triple bend. CFX has been around since the 1980's and was commercialized by the end of the 1980's. Commercial codes try very hard to give you a solution, at the expense of accuracy. |
|
December 12, 2024, 02:55 |
|
#15 |
Senior Member
bigfoot
Join Date: Dec 2011
Location: Netherlands
Posts: 676
Rep Power: 21 |
You can increase the accuracy of the solution by either making a finer/better mesh or by using a higher order scheme. Usually higher order schemes lead to more stability issues, but for this case, it is perfectly fine to switch on the MUSCL scheme.
The multigrid method in SU2 is quite basic, so if anything goes wrong regarding convergence, I would first switch this off. Actually, for this setup it's fine, I just added the prolongation/correction smoothing steps Code:
MUSCL_FLOW= YES CFL_NUMBER= 25MG_POST_SMOOTH= ( 1, 1, 1, 1 ) MG_CORRECTION_SMOOTH= ( 1, 1, 1, 1) |
|
December 13, 2024, 06:07 |
|
#16 |
Member
Giovanni Bettega
Join Date: Sep 2014
Posts: 34
Rep Power: 12 |
Thank you for reading my considerations: sorry for reading yours now.
Actually, I do not want to draw any conclusion based on intermediate result: indeed the results I posted are all "officially" well converged: RMS = -10 for SU2, and RMS < -7 for CFX (incidentally, for this case this corresponds to 10^-4 for inbalances). I would like to say, and that, in case of a steady state run, in a simple domain, if that run converges up to R = -10, in say N = 10000 iterations, when you check intermediate results at N = 5000 (obviously not at N = 50...), and residuals are "low enough" (even if not perfectly at -10) a clear trend in "under construction" results, can "often" be identified. If you know in advance that a flow separation has to realize and you do not see it at one half of the simulation, it is advisable to press stop and take a meditation coffeee. Also my problem was not that my simulations did not converge well, indeed they converge, up to R = -10, and fortunately for all the meshes. It's clear then even if numerically converged, a solution could - also strongly - deviate from what actually happens in the real world, most of all when discretization is bad ("bad" representation is established on the basis of the underlying physics) The same considerations apply to CFX runs on the same fluid domain, with approximately the same grid density, with or without prismatic layers at walls: they always converge up to RMS = -7 What I would like to say is that in CFX, I you start with 50000 cells (obviously not 1000...), and go up to 10^6 or 2x10^6 cells (and more, even if in that case resolving very small scales could be a problem...), results are "qualitatively" very very similar: three distinct regions of flow separations are evidenced, and pressure, velocity fields - obviously less for TKE - can be overlapped (also in min/max ranges and ave value sense). I will post this results, for 3/4 CFX runs, and also for SU2, for which the "stability of results wrt mesh density seems to be weak. Let me the time to add to my mesher the boundary layer generation tool: I could indefinely refine mesh close to wall using tets, and this would be ok, but I would like to compare bananas with bananas, so CFX hydrid meshes at wall with SU2 hybrid meshes at wall; and tet at the interior. In my knowlegde, gmsh (not known by me the end of the Hextreme mesh project, and after all my gmsh usage is very poor) cannot do it: only unstructured tet meshes, or structured ones, like yours in the tutorial, by block, with geometry subdivision, which is absolutely not flexible (I mean,"fast") I would like to thank you again for your observations. Giovanni Last edited by gbettega; December 14, 2024 at 03:48. |
|
Yesterday, 02:42 |
additional observation - mesh layers at walls
|
#17 | |
Member
Giovanni Bettega
Join Date: Sep 2014
Posts: 34
Rep Power: 12 |
Quote:
Hello, just added a prismatic layer generation tool to my mesh engine: not an extruded mesh, like in gmsh, but prisms inflation at walls (with a small number of tetrahedra, and some pyramids), so the mesh used for SU2 and the CFX are hybrid, and a results comparison has more sense. I would like to stress the fact that in SU2 a very different behavior is observed when inflation (I generater 6/8 layers for testing purposes) are introduced, wrt to the case in which mesh density is similar but layer not present. In CFX, but very generally speaking, flow separation is observed also when prismatic layers are not used. Finally, using layers at walls, here very important, SU2 results matches CFX ones (qualitatively I mean). I attached some pics of one of SU2 meshes with inflation, a CFX result with a coarse mesh, intentionally without inflation, an a link to a results summary comparying three runs. Giovanni https://drive.google.com/file/d/1_bN...usp=drive_link Last edited by gbettega; Today at 10:28. |
||
Tags |
comparison, incompressible solver |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Tutorials not working | abby10 | SU2 Installation | 1 | December 28, 2021 07:35 |
Welcome to the Stanford University Unstructured (SU2) forum! | economon | SU2 | 0 | January 7, 2013 03:48 |
comparison with analytical results (1D)and(3D) CFX | Rogerio Fernandes Brito | FLUENT | 1 | December 2, 2012 07:12 |
Pros and Cons for CFX, CFdesign, COMSOL | Val | Main CFD Forum | 3 | June 10, 2011 03:20 |
CFX 4.4 installation problem | Pandu Sattvika | CFX | 1 | December 1, 2001 05:07 |