|
[Sponsors] |
September 13, 2012, 12:55 |
LES supersonic free jet
|
#1 |
Member
Hugh Ingham
Join Date: Aug 2012
Posts: 35
Rep Power: 14 |
Hello all,
I am trying to simulate a supersonic turbulent free jet but am struggling to get a stable case running. I think, as is often the case, the problem may lie in the boundary conditions. Has anyone done a similar simulation that could perhaps advise me on appropriate boundary conditions? My mesh is effectively a 1/8th section of a converging diverging nozzle surrounded by ambient fluid (atmospheric air) Here are some images of my mesh: meshpic.jpg Foam mesh.jpg inlet is the small leftmost face (nozzle inlet) inlet 2 is the leftward facing face nozzle wall is the horizontal face above inlet freestream1 is the horizontal face just above the nozzle wall freestream 2 is the large horizontal face on top outlet is the rightward facing face two side boundaries are cyclic AMI My main concern is the outlet. Initially I defined just inlet, nozzle wall, cyclic boundaries and all other faces were outlet (inlet2, freestream1, freestream2 and outlet) but was unsure if it could handle multiple outlets. I am using the rhoPimpleFoam solver and below are my 0 files: FoamFile { version 2.0; format ascii; class volVectorField; location "5e-05"; object U; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 1 -1 0 0 0 0]; internalField uniform (2 0 0); boundaryField { inlet { type uniformFixedValue; uniformValue table ( (0 (10 0 0)) (0.08 (50 0 0)) (0.1 (50 0 0)) (0.3 (400 0 0)) ); } inlet2 { type uniformFixedValue; uniformValue table ( (0 (2 0 0)) (0.1 (2 0 0)) (0.4 (0 0 0)) ); } outlet { type pressureInletOutletVelocity; value uniform (2 0 0); } nozzlewall { type fixedValue; value uniform (0 0 0); } face1 { type cyclicAMI; } freestream1 { type slip; value uniform (0 0 0); } freestream2 { type slip; value uniform (0 0 0); } FaceGroup8 { type cyclicAMI; } } // ************************************************** *********************** // FoamFile { version 2.0; format ascii; class volScalarField; location "5e-05"; object T; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 0 0 1 0 0 0]; internalField uniform 300; boundaryField { inlet { type totalTemperature; gamma 1.338; phi phi; psi psi; T0 uniform 973; value uniform 973; } inlet2 { type zeroGradient;//totalTemperature //gamma 1.338; //phi phi; //psi psi; //T0 uniform 300; } outlet { type inletOutletTotalTemperature; gamma 1.4; T0 uniform 300; value uniform 300; } nozzlewall { type fixedValue; value uniform 300; } face1 { type cyclicAMI; } freestream1 { type zeroGradient; } freestream2 { type zeroGradient; } FaceGroup8 { type cyclicAMI; } } // ************************************************** *********************** // FoamFile { version 2.0; format ascii; class volScalarField; location "5e-05"; object p; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [1 -1 -2 0 0 0 0]; internalField uniform 101325; boundaryField { inlet { type zeroGradient; } inlet2 { type zeroGradient; } outlet { type totalPressure; rho rho; psi none; gamma 1.4; p0 uniform 101325; value uniform 101325; } nozzlewall { type zeroGradient; } face1 { type cyclicAMI; } freestream1 { type zeroGradient; } freestream2 { type zeroGradient; } FaceGroup8 { type cyclicAMI; } } // ************************************************** *********************** // FoamFile { version 2.0; format ascii; class volScalarField; location "5e-05"; object muSgs; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [1 -1 -1 0 0 0 0]; internalField uniform 0; boundaryField { inlet { type calculated; value uniform 0; } inlet2 { type calculated; value uniform 0; } outlet { type calculated; value uniform 0; } nozzlewall { type muSgsUSpaldingWallFunction; Cmu 0.09; kappa 0.41; E 9.8; value uniform 0; } face1 { type cyclicAMI; } freestream1 { type calculated; value uniform 0; } freestream2 { type calculated; value uniform 0; } FaceGroup8 { type cyclicAMI; } } // ************************************************** *********************** // FoamFile { version 2.0; format ascii; class volScalarField; location "5e-05"; object k; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -2 0 0 0 0]; internalField uniform 2e-05; boundaryField { inlet { type fixedValue; value uniform 2e-05; } inlet2 { type zeroGradient; } outlet { type inletOutlet; inletValue uniform 2e-05; value uniform 2e-05; } nozzlewall { type compressible::kqRWallFunction; value uniform 2e-05; } face1 { type cyclicAMI; } freestream1 { type zeroGradient; } freestream2 { type zeroGradient; } FaceGroup8 { type cyclicAMI; } } // ************************************************** *********************** // FoamFile { version 2.0; format ascii; class volTensorField; location "5e-05"; object B; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [0 2 -2 0 0 0 0]; internalField uniform (0 0 0 0 0 0 0 0 0); boundaryField { inlet { type fixedValue; value uniform (0 0 0 0 0 0 0 0 0); } inlet2 { type fixedValue; value uniform (0 0 0 0 0 0 0 0 0); } outlet { type inletOutlet; inletValue uniform (0 0 0 0 0 0 0 0 0); value uniform (0 0 0 0 0 0 0 0 0); } nozzlewall { type zeroGradient; } face1 { type cyclicAMI; } freestream1 { type zeroGradient; } freestream2 { type zeroGradient; } FaceGroup8 { type cyclicAMI; } } // ************************************************** *********************** // FoamFile { version 2.0; format ascii; class volScalarField; location "5e-05"; object alphaSgs; } // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * // dimensions [1 -1 -1 0 0 0 0]; internalField uniform 0; boundaryField { inlet { type calculated; value uniform 0; } inlet2 { type calculated; value uniform 0; } outlet { type calculated; value uniform 0; } nozzlewall { type alphaSgsWallFunction; Cmu 0.09; kappa 0.41; E 9.8; value uniform 0; } face1 { type cyclicAMI; } freestream1 { type calculated; value uniform 0; } freestream2 { type calculated; value uniform 0; } FaceGroup8 { type cyclicAMI; } } // ************************************************** *********************** // Any help would be greatly appreciated. Thankyou in advance |
|
September 15, 2012, 08:11 |
|
#2 |
Member
Hugh Ingham
Join Date: Aug 2012
Posts: 35
Rep Power: 14 |
Could anyone please help me with this problem? I still can't get a stable simulation to run.
Thanks |
|
September 15, 2012, 16:26 |
|
#3 |
Senior Member
Karl-Johan Nogenmyr
Join Date: Mar 2009
Location: Linköping
Posts: 279
Rep Power: 21 |
First of all, these kind of flows are quite tricky to calculate accurately. Normally, literature would suggest a density based runge kutta solver for this case. There is no such solver in official openfoam distribution. The closest you get is the rhoCentralFoam solver, but it is to my knowledge too dissipative for LES.
The rhoPimpleFoam solver is OK at low Mach number, though it can be stable for your case as well. You should however not trust shock prediction too much. You have not posted your whole case so I cannot say what is wrong directly, but it looks a bit strange to have zeroGradient on T and k on the inlet. You might try changing that. Else, closely monitoring all fields timestep by timestep might point out what is going wrong. K |
|
October 31, 2012, 11:54 |
Runge-Kutta 4
|
#4 |
Member
ville vuorinen
Join Date: Mar 2009
Posts: 67
Rep Power: 17 |
Hi,
I wrote such a density based RK4 LES solver, a picture of a supersonic jet is found in http://users.tkk.fi/~vavuorin/ Best, Ville |
|
November 8, 2012, 11:17 |
|
#5 |
New Member
Paul Garlick
Join Date: Mar 2009
Location: Bournemouth, UK
Posts: 27
Rep Power: 17 |
Ville,
That's a great picture of a supersonic jet. The picture shows shock waves, acoustic waves and turbulent structures all at once. Can you give more detail of your method? Is it described in your submitted paper? Also, on the subject of the original question, the solution will be sensitive to reflections from the boundaries. A non-reflective boundary condition will be required to prevent non-physical waves disturbing the flow field. I have developed one such suitable boundary condition. Please see 'Modelling shock wave phenomena in over-expanded jets using OpenFOAM--P. L. Garlick', available at http://www.opensourcecfd.com/conference2010/en/proceedings.html The method solves the one-dimensional Euler equations at each boundary cell, allowing waves to pass out of the domain but not to enter. Paul. Last edited by pg22; November 8, 2012 at 11:40. |
|
November 8, 2012, 12:56 |
|
#6 |
Member
ville vuorinen
Join Date: Mar 2009
Posts: 67
Rep Power: 17 |
Hi,
Could you send me the paper via email ville.vuorinen at aalto.fi ? The method I'm using is the explicit density based RK4 method. The convection terms are discretized by a new method called "Scale-Selective Discretization" http://www.sciencedirect.com/science...45793012003799 which provides artificial dissipation in the spirit of ILES but by focusing the dissipative effects truly only to the small scales via a filtering procedure. The bulk viscosity by Cook and Cabot is applied in the OF code I implemented to stabilize weak shocks and gradients. Additionally, I'm using a simple shock sensor to detect the normal shocks (Mach disk). At the normal shocks an additional (local) low-pass filtering of the solution is carried out for numerical stability. I don't need any non-reflecting BC's because the domain is very large and the mesh is very coarse at the boundaries. Actually, the whole injection system is closed and there is no inflow or outflow either. Inflow is modeled by actually meshing a large pressurized "bottle" from which a converging nozzle starts and enters the chamber. This is quite nice since a) this extra stage takes only <1% of all the cells and no approximate bcs are required b) more realism. No outflow bc is needed either since the domain a) is closed in reality (cylinder of a combustion engine) b) is very large. I will post more details in couple of days.. Best, Ville |
|
November 9, 2012, 06:50 |
|
#7 |
New Member
Paul Garlick
Join Date: Mar 2009
Location: Bournemouth, UK
Posts: 27
Rep Power: 17 |
Sure, the paper is on its way.
Paul. |
|
December 10, 2012, 19:17 |
|
#8 |
New Member
maharba
Join Date: Jun 2011
Posts: 5
Rep Power: 15 |
Check this. You should use a open source code; it always works.
http://cfdosc.wordpress.com/2012/07/...upersonic-jet/ |
|
December 13, 2012, 09:50 |
|
#9 |
Member
ville vuorinen
Join Date: Mar 2009
Posts: 67
Rep Power: 17 |
Hi,
as mentioned, I implemented the density based RK4 solver with OpenFOAM. Our paper (based on the OpenFOAM solver) on "Large-Eddy Simulation of Highly Underexpanded Transient Jets" will appear in Physics of Fluids soon. If you want a preprint please contact me ville.vuorinen@aalto.fi . Best, Ville |
|
May 10, 2013, 14:03 |
|
#10 |
New Member
Arthur Piquet
Join Date: Mar 2013
Posts: 18
Rep Power: 13 |
hi everybody,
I'm trying to do a LES freestream Jet with rhoCentralFoam for my internship. I found some good results for RANS model compared to some PIV data and now I want to compare with LES simulation. I found some strange behavior with my first simulation... here's the contour plot for velocity for k-omega SST RANS and here's the contour plot for oneEq LES It's like there is no turbulent viscosity at all... The solution is static through the time, that's something we don't expect for LES case. My flow is controlled by pressure ratio between the inlet and the outlet, my Mach number is around 0.5 at the throat. Does anybody already try a LES case with rhoCentralFoam ? Does that come from the inlet BCs (maybe turbulentInlet instead of totalPressureInlet) ? ps : I put the 2 folder (LES/RANS) with the solution. https://drive.google.com/folderview?...0k&usp=sharing Thanks all |
|
May 16, 2013, 10:09 |
|
#11 | |
Senior Member
Join Date: Jan 2013
Posts: 372
Rep Power: 14 |
For the LES case, I think the reason is the mesh is not fine enough. How small is your mesh edge in this case?
Can you plot out the RMS of axial velocity for several different axial positions? Quote:
|
||
May 16, 2013, 10:16 |
Mesh size
|
#12 |
Member
ville vuorinen
Join Date: Mar 2009
Posts: 67
Rep Power: 17 |
Hi, are you resolving the nozzle diameter with small enough dx and dz? In LES you will need at least 20 grid points for the nozzle diameter region. And a comparable resolution in streamwise direction as well. -Ville
|
|
May 16, 2013, 11:18 |
|
#13 |
New Member
Paul Garlick
Join Date: Mar 2009
Location: Bournemouth, UK
Posts: 27
Rep Power: 17 |
Hi Arthur,
The velocity plot shows a laminar flow, which is what happens to an LES on very coarse meshes. The turbulence energy is not resolved and the unsteadiness disappears. In a jet flow the turbulence is generated in the boundary layer inside the nozzle and the shear layer outside. If you can refine the mesh in these areas in particular you will begin to resolve the turbulence. For even better accuracy it is possible to generate synthetic turbulence at the inlet boundary. Good luck. Paul. |
|
May 16, 2013, 12:20 |
|
#14 |
New Member
Arthur Piquet
Join Date: Mar 2013
Posts: 18
Rep Power: 13 |
ok thank you guys, now it's more clear in my head (difference between LES and RANS).
Just another question, if I take the fine mesh of LES and use it with RANS model (and deactivate the turbulence model for both), can I capture the same behavior (from the advection term)? What's the difference in term of software programming? |
|
May 16, 2013, 12:24 |
|
#15 | |
Senior Member
Join Date: Jan 2013
Posts: 372
Rep Power: 14 |
In that case, if the mesh is fine enough, that is DNS; if the mesh is a little reduced, that will be similar to implicit LES.
Quote:
|
||
May 16, 2013, 17:28 |
|
#16 |
New Member
Arthur Piquet
Join Date: Mar 2013
Posts: 18
Rep Power: 13 |
Thank you!
I run a simulation with a finer mesh and I began to see some large structures but not enough to look like the RANS mean solution... With my 2D RANS simulation, I had a 30,000 points mesh and with my new LES simulation : 140,000 points. It's really annoying to test the mesh dependency because each simulation are taking a long time to run and it costs "money" to use my cluster... Do you think "blockMesh" is adapted for LES? because I need a refinement at the wall (y+~1) and a refinement at the shear stress interface (y+~10). I'm not free to make a suitable mesh with "blockMesh"... and do you think that a 2D axisymmetric mesh is adapted for LES? , or do I need to run a 3D mesh? Sorry about all this question but this is just a verification case for my internship and I don't want to spend too much time in it (computational time)... |
|
May 16, 2013, 18:17 |
|
#17 | |
Senior Member
Join Date: Jan 2013
Posts: 372
Rep Power: 14 |
Hi,
2D LES is meaningless for real turbulence but it is still a good case for code debugging. Quote:
|
||
May 22, 2013, 14:42 |
|
#18 |
New Member
Arthur Piquet
Join Date: Mar 2013
Posts: 18
Rep Power: 13 |
hi again,
I'm also on an other case with OpenFOAM for testing the turbulence (High Mach number over a flat plate) and I found a strange behavior for the flow near wall. My initial Mach number is 2 (300K) and the temperature of the flat plate is set to 513K. At the edge of the flat plate, I've got a shock which is, I think, normal for a high Mach number flow. But near wall I have a strange behavior of the pressure (or the temperature), like you can see on the picture below. The pressure is oscillating near wall with an amplitude of 0.04 atm. Does anybody can tell me where does that coming from? I'm still using rhoCentralFoam with k-omg RANS. |
|
June 2, 2013, 03:21 |
|
#19 |
Member
Fluid Dynamics
Join Date: Mar 2013
Posts: 41
Rep Power: 13 |
Hi Arthur,
Can I have you personal email ID? Reason - I would really like to discuss the possibility of working together on your supersonic flow problems, as I am also expecting a similar assignment with OpenFOAM. Some comments - 1. LES - Please do not go for an axisymmetric LES. It does not make sense. Please see this French (CERFACS) case study - http://www.cerfacs.fr/~cfdbib/reposi..._CFD_02_15.pdf. In this report they concluded that even a 90 degree sector is not good enough for LES. And I guess you are using a 2D axisymmetric case, which is even worse. 2. Your Internship - So, you are on an Internship. Not sure about the system in France but I am guessing your internship will most certainly end around 30th July. Is that correct? Which gives us only 2 months. Looking forward to your response By the way , my ID is cfd.with.openfoam@gmail.com - Please get in touch if you are OK |
|
January 4, 2014, 02:38 |
|
#20 |
New Member
maharba
Join Date: Jun 2011
Posts: 5
Rep Power: 15 |
I'd recommend to you, to implement viscous boundary conditions by the LODI method, which is a very simple method and relatively easy program in OpenFoam. I got some consistent simulations as it is seen below.
See more info http://wp.me/p2BN48-1f |
|
Tags |
boundary conditons, outlet boundary condition |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Supersonic turbulent free jet LES | martyn88 | OpenFOAM Running, Solving & CFD | 7 | July 1, 2013 11:51 |
Re: supersonic free jet nonphysical solution?? | Patti | Phoenics | 0 | October 23, 2008 22:12 |
Supersonic Jet Flows | Danny Tan | FLUENT | 0 | November 30, 2001 22:01 |
Asymmetric water free jet study | Norberto Parreira | Main CFD Forum | 7 | June 25, 2001 09:23 |
Turbulent model of supersonic free jet | GAZZAH Mohamed Hichem | Main CFD Forum | 2 | August 18, 2000 16:43 |