|
[Sponsors] |
Implicit supseronic flow simulations in flexi |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
March 30, 2022, 05:56 |
Implicit supseronic flow simulations in flexi
|
#1 |
New Member
Vachan Potluri
Join Date: Jul 2017
Posts: 29
Rep Power: 9 |
Dear all,
I am trying to perform a Mach 2 supersonic flow simulation in flexi (https://www.flexi-project.org/) using implicit time stepping. Flexi user guide describes how to do implicit simulation for a Mach 0.2 RANS flat plate simulation. However, I am unable to obtain the correct solution with implicit time stepping in the supersonic case I am interested in. The simulation I am doing is of an impinging shock-boundary layer interaction. I am pasting my settings here and attaching the mesh file (degrez_corrected_mesh.h5) as a part of the zipped attachment to this post. Code:
!================================================================================== ! OUTPUT !=============================================================================== ! ProjectName = degrez_corrected Logging = F ErrorFiles = T OutputFormat = 0 doPrintStatusLine = T ColoredOutput = F !========================================================================================= ! Interpolation !========================================================================================= N = 2 NVisu = 2 NOut = 2 !========================================================================================= ! Mesh !========================================================================================= MeshFile = degrez_corrected_mesh.h5 useCurveds = F crossProductMetrics = F !========================================================================================= ! Equation !========================================================================================= IniExactFunc = 1 IniRefState = 3 kappa = 1.400 R = 286.689 Pr = 0.69 mu0 = 1.716e-5 ! mu0 = 0.0 Ts = 111 Tref = 273 RefState = (/1,0,0,0,1718.81/) ! gives outflow pressure RefState = (/0.0290566,519.41,-34.6182,0,1393.6/) ! post shock conditions RefState = (/0.0248218,540,0,0,1117.3/) ! pre shock conditions (freestream) BoundaryName = back BoundaryType = (/9,0/) BoundaryName = front BoundaryType = (/9,0/) BoundaryName = wall BoundaryType = (/3,1/) BoundaryName = outflow BoundaryType = (/24,1/) BoundaryName = post_shock_inflow BoundaryType = (/2,2/) BoundaryName = pre_shock_inflow BoundaryType = (/2,3/) !========================================================================================= ! Riemann !========================================================================================= Riemann = 33 RiemannBC = -1 ! =============================================================================== ! ! FV-Subcell ! =============================================================================== ! IndicatorType = Jameson IndVar = 6 FV_LimiterType = 1 FV_IndUpperThreshold = 0.010 ! upper threshold (if IndValue above this value, switch to FV) FV_IndLowerThreshold = 0.005 ! lower threshold (if IndValue below this value, switch to DG) FV_toDG_indicator = T FV_toDG_limit = -5.5 FV_IniSupersample = T !========================================================================================= ! TimeDisc !========================================================================================= TimeDiscMethod = esdirk3-4 TEnd = 3e-3 CFLScale = 2.5 DFLScale = 2.5 ! EpsNewton = 1e-2 adaptepsNewton = T ! nNewtonIter = 100 ! FD_Order = 1 ! EpsGMRES = 1e-1 ! nRestarts = 50 ! nKDim = 50 ! PrecondType = 0 NoFillIn = T SolveSystem = 1 ! HyperbolicPrecond = T ! DoDisplayPrecond = T !========================================================================================= ! Analyze !========================================================================================= Analyze_dt = 3e-6 nWriteData = 1 CalcResiduals = F CalcErrorNorms = F varName = Density varName = Pressure varName = VelocityX varName = VelocityY varName = Temperature Code:
Attention: Timestep failed, repeating with dt/2! Code:
Timestep : 5.8680110E-07 #Timesteps : 1.6000000E+01 #GMRES iter : 0.0000000E+00 #Newton iter : 0.0000000E+00 My build settings: Code:
CMAKE_BUILD_TYPE Release CMAKE_INSTALL_PREFIX /home/vachan/Documents/Work/flexi-framework/flexi FLEXI_2D ON FLEXI_EDDYVISCOSITY OFF FLEXI_EQNSYSNAME navierstokes FLEXI_FV ON FLEXI_FV_RECONSTRUCTION ON FLEXI_LIFTING br2 FLEXI_NODETYPE GAUSS-LOBATTO FLEXI_PARABOLIC ON FLEXI_PERFORMANCE ON FLEXI_POLYNOMIAL_DEGREE N FLEXI_SPLIT_DG ON FLEXI_TESTCASE default FLEXI_VISCOSITY sutherland LIBS_BUILD_HDF5 ON LIBS_BUILD_MATH_LIB OFF LIBS_USE_MKL OFF LIBS_USE_MPI ON LIBS_USE_OPENMP OFF LIBS_USE_PAPI OFF POSTI ON POSTI_AVG2D OFF POSTI_CHANNEL_FFT OFF POSTI_DMD OFF POSTI_MERGETIMEAVERAGES OFF POSTI_RP_EVALUATE OFF POSTI_RP_PREPARE OFF POSTI_RP_VISUALIZE OFF POSTI_SWAPMESH OFF POSTI_TO3D OFF POSTI_VISU ON POSTI_VISU_PARAVIEW OFF POSTI_WALLDISTANCE OFF USE_PGO ON Thanking in anticipation Vachan |
|
March 31, 2022, 16:16 |
|
#2 |
Senior Member
-
Join Date: Jul 2012
Location: Germany
Posts: 184
Rep Power: 14 |
Dear vachan,
I will contact my FLEXI collegues. We're going to make this work! Regards |
|
April 1, 2022, 01:24 |
|
#3 |
New Member
Vachan Potluri
Join Date: Jul 2017
Posts: 29
Rep Power: 9 |
Thanks a lot, Eifoehn4! I am truly grateful for your quick response and support!
|
|
April 1, 2022, 08:04 |
|
#4 |
New Member
Jonas Z.
Join Date: Mar 2022
Posts: 3
Rep Power: 4 |
Dear Vachan,
there was indeed a bug in the code that caused this behavior you observed. We fixed this and the updated version will be available on github after the weekend. So just pull the most recent version on Monday and you can run your simulation! What you observed was the following: the bug caused not choosing the shock-capturing scheme property. This then resulted in instabilities, so FLEXI tried to repeat the timestep but it was never stable. Though, I am not sure if implicit time discretization is the best choice for your setting. As the Mach number is quite high and the solution (especially in the beginning) changes rapidly, the implicit method is not able to use very large timesteps. So you maybe have to ramp your timestep to obtain a stable simulation. Kind regards, Jonas |
|
April 1, 2022, 08:15 |
|
#5 | |||
New Member
Vachan Potluri
Join Date: Jul 2017
Posts: 29
Rep Power: 9 |
Dear Jonas,
Quote:
Quote:
Quote:
Thanks again for such a quick response! |
||||
April 4, 2022, 02:30 |
Still not working?
|
#6 |
New Member
Vachan Potluri
Join Date: Jul 2017
Posts: 29
Rep Power: 9 |
Dear Jonas,
As you said, I have noticed that a commit for the bug fix has been made to the github repo: https://github.com/flexi-framework/f...acaf6dd614ba21. I have compiled the latest version of flexi now. However, I am afraid this still didn't improve the performance of implicit stepping. This time, I started the implicit solution (with CFL 5 and the settings pasted below) with the solution at 1e-3 sec obtained through explicit stepping (standardrk3-3). By my estimate, the flow becomes steady in about 3e-3 sec. So at 1e-3 sec, most of the transients are gone, and it is only a matter of the separation region growing to its full size after this point. Code:
!========================================================================================= ! TimeDisc !========================================================================================= TimeDiscMethod = esdirk3-4 TEnd = 3e-3 CFLScale = 5 DFLScale = 5 ! EpsNewton = 1e-2 adaptepsNewton = T nNewtonIter = 100 FD_Order = 1 EpsGMRES = 1e-1 nRestarts = 50 nKDim = 50 PrecondType = 1 NoFillIn = T SolveSystem = 1 HyperbolicPrecond = T DoDisplayPrecond = T Code:
Attention: Timestep failed, repeating with dt/2! Thanking again, Vachan |
|
April 6, 2022, 09:54 |
|
#7 |
New Member
Jonas Z.
Join Date: Mar 2022
Posts: 3
Rep Power: 4 |
Dear Vachan,
I am not completely sure why this is happening in your case - there is something going wrong with the preconditioner. We probably will need some time to figure that out. In the meanwile I would suggest to use either fully explicit methods or implicit methods without preconditioning and additionally change your settings slightly: Code:
!========================================================================================= ! TimeDisc !========================================================================================= TimeDiscMethod = esdirk3-4 TEnd = 3e-3 CFLScale = 5 DFLScale = 5 EpsNewton = 1e-2 adaptepsNewton = F nNewtonIter = 10 FD_Order = 1 EpsGMRES = 1e-1 nRestarts = 5 nKDim = 30 PrecondType = 0 Kind regards, Jonas |
|
April 7, 2022, 01:46 |
|
#8 |
New Member
Vachan Potluri
Join Date: Jul 2017
Posts: 29
Rep Power: 9 |
Dear Jonas,
Thanks for your response. It is indeed running fine without the preconditioner and your suggestions. I wish and hope that the issue in preconditioner will be sorted out soon! Thanking again, Vachan |
|
April 14, 2022, 06:28 |
|
#9 |
New Member
Jonas Z.
Join Date: Mar 2022
Posts: 3
Rep Power: 4 |
Dear Vachan,
I had a closer look on your problem and I think the main issue that causes bad convergence behaviors is the non-linearity of the slope limiting procedure (you selected "minmod" limiting). In this forum thread http://www.cfd-online.com/Forums/mai...d-limiter.html you find a related discussion and in the publications W. Gropp, D. Keyes, L. C. McInnes, M. D. Tidriri: Globalized Newton-Krylow-Schwarz algorithms and software for parallel implicit CFD. The International Journal of High Performance Computing Applications 14(2), 102-136 (2000) and P. A.Burton, P. K. Sweby: A Dynamical Approach Study of Some Explicit and Implicit TVD Schemes and Their Convergences to Steady-state Solutions. Numerical Analysis Report 5/95, University of Reading, Department of Mathematics, 1995. you find some investigations on this. I therefore recommend you to use the first order finite volume scheme for shock capturing, i.e. Code:
FV_LimiterType = 0 Moreover, it is recommendable to change your preconditioner settings as I observed that the accuracy of the preconditioner with ILU(0) inversion of the blocks is not sufficient for larger timesteps for your setting. Maybe you can try the following settings: Code:
PrecondType = 1 NoFillIn = F SolveSystem = 0 HyperbolicPrecond = F PrecondIter = 10 I hope that helps you! Kind regards Jonas |
|
July 12, 2022, 02:24 |
|
#10 |
New Member
Vachan Potluri
Join Date: Jul 2017
Posts: 29
Rep Power: 9 |
Dear Jonas,
Sorry for such a late response! I am really grateful to you for your continuing engagement in this topic. I will try the settings you suggested and get back with my experience shortly. Thanks again! |
|
July 13, 2022, 01:21 |
|
#11 |
New Member
Vachan Potluri
Join Date: Jul 2017
Posts: 29
Rep Power: 9 |
Dear Jonas,
As you mentioned, I confirm that I was able to use CFL=5 (which corresponds to dt ~ 1e-4) without any convergence issues. Thanks! |
|
Tags |
compressible flow, discontinuous galerkin, flexi |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Issues on the simulation of high-speed compressible flow within turbomachinery | dowlee | OpenFOAM Running, Solving & CFD | 11 | August 6, 2021 07:40 |
Match Pressure Inlet/Outlet Boundary Condition Mass Flow Rate | MSchneid | Fluent UDF and Scheme Programming | 3 | February 23, 2019 07:00 |
Implementing AUSM for FVM and Fully Implicit subsonic compressible flow | Krishan.aero | Main CFD Forum | 6 | December 23, 2018 23:13 |
Inviscid flow simulations in cfx | mahdidelfan | CFX | 1 | June 29, 2014 07:14 |
How to do simulations for pressible flow | Gaurav | FLUENT | 3 | October 9, 2003 17:20 |