CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > OpenFOAM

LES supersonic free jet

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Display Modes
Old   September 13, 2012, 12:55
Smile LES supersonic free jet
  #1
Member
 
Hugh Ingham
Join Date: Aug 2012
Posts: 35
Rep Power: 4
martyn88 is on a distinguished road
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
martyn88 is offline   Reply With Quote

Old   September 15, 2012, 08:11
Default
  #2
Member
 
Hugh Ingham
Join Date: Aug 2012
Posts: 35
Rep Power: 4
martyn88 is on a distinguished road
Could anyone please help me with this problem? I still can't get a stable simulation to run.

Thanks
martyn88 is offline   Reply With Quote

Old   September 15, 2012, 16:26
Default
  #3
Senior Member
 
Karl-Johan Nogenmyr
Join Date: Mar 2009
Location: Linköping
Posts: 237
Rep Power: 11
kalle is on a distinguished road
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
kalle is offline   Reply With Quote

Old   October 31, 2012, 12:54
Default Runge-Kutta 4
  #4
Member
 
ville vuorinen
Join Date: Mar 2009
Posts: 61
Rep Power: 7
ville is on a distinguished road
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
ville is offline   Reply With Quote

Old   November 8, 2012, 11:17
Default
  #5
New Member
 
Paul Garlick
Join Date: Mar 2009
Location: Bournemouth, UK
Posts: 25
Rep Power: 7
pg22 is on a distinguished road
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.
pg22 is offline   Reply With Quote

Old   November 8, 2012, 12:56
Default
  #6
Member
 
ville vuorinen
Join Date: Mar 2009
Posts: 61
Rep Power: 7
ville is on a distinguished road
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
ville is offline   Reply With Quote

Old   November 9, 2012, 06:50
Default
  #7
New Member
 
Paul Garlick
Join Date: Mar 2009
Location: Bournemouth, UK
Posts: 25
Rep Power: 7
pg22 is on a distinguished road
Sure, the paper is on its way.

Paul.
pg22 is offline   Reply With Quote

Old   December 10, 2012, 19:17
Default
  #8
New Member
 
maharba
Join Date: Jun 2011
Posts: 5
Rep Power: 5
noridk_14 is on a distinguished road
Check this. You should use a open source code; it always works.

http://cfdosc.wordpress.com/2012/07/...upersonic-jet/
noridk_14 is offline   Reply With Quote

Old   December 13, 2012, 09:50
Default
  #9
Member
 
ville vuorinen
Join Date: Mar 2009
Posts: 61
Rep Power: 7
ville is on a distinguished road
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
ville is offline   Reply With Quote

Old   May 10, 2013, 14:03
Default
  #10
New Member
 
Arthur Piquet
Join Date: Mar 2013
Posts: 12
Rep Power: 3
halowine is on a distinguished road
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
halowine is offline   Reply With Quote

Old   May 16, 2013, 10:09
Default
  #11
Senior Member
 
Join Date: Jan 2013
Posts: 167
Rep Power: 3
openfoammaofnepo is on a distinguished road
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:
Originally Posted by halowine View Post
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
openfoammaofnepo is offline   Reply With Quote

Old   May 16, 2013, 10:16
Default Mesh size
  #12
Member
 
ville vuorinen
Join Date: Mar 2009
Posts: 61
Rep Power: 7
ville is on a distinguished road
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
ville is offline   Reply With Quote

Old   May 16, 2013, 11:18
Default
  #13
New Member
 
Paul Garlick
Join Date: Mar 2009
Location: Bournemouth, UK
Posts: 25
Rep Power: 7
pg22 is on a distinguished road
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.
pg22 is offline   Reply With Quote

Old   May 16, 2013, 12:20
Default
  #14
New Member
 
Arthur Piquet
Join Date: Mar 2013
Posts: 12
Rep Power: 3
halowine is on a distinguished road
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?
halowine is offline   Reply With Quote

Old   May 16, 2013, 12:24
Default
  #15
Senior Member
 
Join Date: Jan 2013
Posts: 167
Rep Power: 3
openfoammaofnepo is on a distinguished road
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:
Originally Posted by halowine View Post
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?
openfoammaofnepo is offline   Reply With Quote

Old   May 16, 2013, 17:28
Default
  #16
New Member
 
Arthur Piquet
Join Date: Mar 2013
Posts: 12
Rep Power: 3
halowine is on a distinguished road
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)...
halowine is offline   Reply With Quote

Old   May 16, 2013, 18:17
Default
  #17
Senior Member
 
Join Date: Jan 2013
Posts: 167
Rep Power: 3
openfoammaofnepo is on a distinguished road
Hi,

2D LES is meaningless for real turbulence but it is still a good case for code debugging.

Quote:
Originally Posted by halowine View Post
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)...
openfoammaofnepo is offline   Reply With Quote

Old   May 22, 2013, 14:42
Default
  #18
New Member
 
Arthur Piquet
Join Date: Mar 2013
Posts: 12
Rep Power: 3
halowine is on a distinguished road
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.
halowine is offline   Reply With Quote

Old   June 2, 2013, 03:21
Default
  #19
Member
 
Fluid Dynamics
Join Date: Mar 2013
Posts: 39
Rep Power: 3
cfd.with.openfoam is on a distinguished road
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
cfd.with.openfoam is offline   Reply With Quote

Old   January 4, 2014, 02:38
Default
  #20
New Member
 
maharba
Join Date: Jun 2011
Posts: 5
Rep Power: 5
noridk_14 is on a distinguished road
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
noridk_14 is offline   Reply With Quote

Reply

Tags
boundary conditons, outlet boundary condition

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


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


All times are GMT -4. The time now is 22:37.