|
[Sponsors] |
April 20, 2010, 10:23 |
Steady State solver for High Mach No flows
|
#1 |
Senior Member
KGN
Join Date: Oct 2009
Location: Chennai, India
Posts: 121
Rep Power: 17 |
Hi all,
I want to solve supersonic(M=2.5) & transonic(M=0.9) flow over Body-Tail missile configuration. Only one steady state compressible flow solver is available in OpenFOAM which is "rhoSimpleFoam", but when i used this for supersonic case, the solution starts diverging after few iterations. I searched in the forum, but not able to get any answer for this problem. sonicFoam is good for transonic and supersonic case but this is a transient solver, so using it to solve a steady flow problem takes a lot of time. So is there a way to convert the "sonicFoam" to steady flow solver. Answer for this question will help many people, because i searched in the forum and saw no solid answer. mecbe |
|
April 21, 2010, 01:19 |
|
#2 |
Senior Member
KGN
Join Date: Oct 2009
Location: Chennai, India
Posts: 121
Rep Power: 17 |
Hi all,
Any answers... |
|
April 21, 2010, 03:34 |
|
#3 |
Senior Member
Mark Olesen
Join Date: Mar 2009
Location: https://olesenm.github.io/
Posts: 1,715
Rep Power: 40 |
||
April 21, 2010, 03:39 |
|
#4 |
Senior Member
KGN
Join Date: Oct 2009
Location: Chennai, India
Posts: 121
Rep Power: 17 |
Hi Olesen,
Thank you very much for the reply. The under relaxation i used for rho is 0.01. But i didn't bound rho. Can you tell the syntax for that. |
|
April 21, 2010, 05:50 |
|
#5 | |
Senior Member
Mark Olesen
Join Date: Mar 2009
Location: https://olesenm.github.io/
Posts: 1,715
Rep Power: 40 |
Quote:
Somewhere near the beginning (eg, in createFields.H) Code:
dimensionedScalar rhoMax ( mesh.solutionDict().subDict("SIMPLE").lookup("rhoMax") ); dimensionedScalar rhoMin ( mesh.solutionDict().subDict("SIMPLE").lookup("rhoMin") ); Code:
rho = thermo.rho(); rho = max(rho, rhoMin); rho = min(rho, rhoMax); rho.relax(); |
||
April 21, 2010, 06:03 |
|
#6 |
New Member
Join Date: Feb 2010
Posts: 24
Rep Power: 16 |
Hi,
I am also very interested in solving transonic and supersonic problems in OF. I have also never got the rhoSimpleFoam solver working on these problems, but also did not spend much time on it. Just a remark: Genrally I also use sonicFoam for these problems. Perhaps it is obvious for most users, but if the simulation is started with upwind discretization of the convection terms, the timestep can be increased to speed it up a little. Mainly up to Courant-Number = 10 is stable in my calculations. Regards |
|
April 21, 2010, 07:04 |
|
#7 |
Senior Member
KGN
Join Date: Oct 2009
Location: Chennai, India
Posts: 121
Rep Power: 17 |
Hi,
I made the changes to the code and compiled it. But still the solution diverges after few iterations. Is there any solutions? Is there a way to convert "sonicFoam" as steady state solver. cheers mecbe |
|
April 24, 2010, 12:07 |
|
#8 |
Member
|
Hi Foamers,
I experienced sonicFoam for subsonic/transonic cases. I regret that there is no adaptating timestep I ran with very low timestep 1e-08 and experienced very very long computations for a really simple 2D airfoil. If you can share you experience, that would be nice Concerning rhoSimpleFoam, there is a boolean 'transonic' that you can put in your fvSolution file with SIMPLE settings. That will change the way it solves the equations (because transonic equations are strongly non-linear). But I am not sure rhoSimpleFoam will solve your supersonic flows Hope it'll help, don't forget to update your results |
|
April 26, 2010, 15:33 |
|
#9 |
Senior Member
KGN
Join Date: Oct 2009
Location: Chennai, India
Posts: 121
Rep Power: 17 |
Hi,
I used sonicFoam to solve the problem, its working for comparatively large time step i.e. Courant No < 10. Using upwind scheme for divergence operator. But i compared the results with the fluent, the velocity is matching but the pressure is under predicted by OpenFoam (50% less). Wat may be the problem. |
|
February 23, 2012, 19:51 |
|
#10 |
Member
Stefano Wahono
Join Date: Aug 2010
Location: Melbourne, Australia
Posts: 42
Rep Power: 16 |
I experienced the same problem with getting a converged solution with OpenFOAM when simulating a supersonic fully expanded jet on a turbojet engine nozzle (Mach 1 at Nozzle exit plane). I used a 2D axisymmetric model.
However, I managed to get it to converged lately using rhoSimpleFoam using the following strategies: 1. Ramp up the inlet mass flow rate very slowly (in my case I ramp up the mDot at inlet from 1 per cent of intended flow rate to 100 per cent over 6000 iterations). 0/U: turbxit { type timeVaryingFlowRateInletVelocity; flowRate 0.00625; fileName "turbxitflowrate.dat"; outOfBounds clamp; value (0 0 0); } 2. Use Gauss Upwind for all convective schemes over the ramp period - more numerical diffusion is good to damp out any initial oscillation in the pressure field and localised strong gradients in the flowfield. 3. Use very low Under-Relaxation Factors (URF) over the ramp period. Just try to get the initial starting flow to develop all the way to the outlet boundary. p 0.01; rho 0.005; U 0.7; k 0.3; epsilon 0.3; h 0.7; When your flow is not transonic, you can put URF for rho to 1. 4. When I switched to 2nd order gauss linearUpwind scheme later in the run (about 10,000 iterations), I used face limiter on all gradient and flux reconstruction schemes. gradSchemes { default cellLimited Gauss pointLinear 1; limitedGrad(U) cellMDLimited Gauss pointLinear 1; limitedGrad(h) cellLimited Gauss linear 1; limitedGrad(k) cellLimited Gauss pointLinear 1; limitedGrad(epsilon) cellLimited Gauss pointLinear 1; } divSchemes { div(phi,U) Gauss linearUpwindV limitedGrad(U); div(phi,h) Gauss linearUpwind limitedGrad(h); div(phi,epsilon) Gauss linearUpwind limitedGrad(epsilon); div(phi,k) Gauss linearUpwind limitedGrad(k); div((muEff*dev2(grad(U).T()))) Gauss linear; div((muEff*dev2(T(grad(U))))) Gauss linear; div(U,p) Gauss linear; } 5. Do not use standard KE for high transonic flow - never worked for me. 6. If possible use low-RE mesh - avoid wall function for mut. BC at wall: mut: type calculated alphat: type calculated epsilon: type compressible::epsilonWallFunction k: type fixedValue; value uniform 1e-12; 7. If you expect strong shocks in the flowfield, rhoSimpleFoam will never ever work. Need density based solver. Unfortunately to my understanding, no density-based solver for steady state currently exists in OpenFOAM. Anyone wants to contribute? Thank you. Regards, Stefano
__________________
Stefano Wahono Defence Science and Technology Organisation Propulsion Systems |
|
July 6, 2021, 04:56 |
|
#11 |
Senior Member
Giles Richardson
Join Date: Jun 2012
Location: Cambs UK
Posts: 102
Rep Power: 14 |
Hi Stefano,
do you have any (more recent) experience on getting the rhoSimpleFoam solver to work on transonic flows with shocks? Im struggling awith a particularly difficult case, in terms of convergence, and could do with some advice about solver settings and/or schemes. Thanks Giles. |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Probable bug with laplacian steady state | novyno | OpenFOAM | 1 | November 23, 2009 20:31 |
Steady state version of interFoam | anger | OpenFOAM Running, Solving & CFD | 1 | October 1, 2009 13:49 |
Development of a Low mach PISO solver | nishant_hull | OpenFOAM Programming & Development | 0 | August 25, 2009 13:48 |
Monitor point values in a steady state simulation | Kushagra | CFX | 2 | July 13, 2008 21:03 |
Transient vs Steady State | Adam | CFX | 1 | April 12, 2007 12:34 |