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

Turbulence models and wall boundary conditions

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

Reply
 
LinkBack Thread Tools Display Modes
Old   February 14, 2005, 04:49
Default Dear all, Which kind of bo
  #1
Daniele Panara (Panara)
Guest
 
Posts: n/a
Dear all,

Which kind of boundary conditions should I apply for k and epsilon at the wall when I am using a low Re k-epsilon model?

The same as the high renolds number model?
zerogradient?
  Reply With Quote

Old   February 14, 2005, 04:51
Default fixedValue of 0 for k and zer
  #2
Henry Weller (Henry)
Guest
 
Posts: n/a
fixedValue of 0 for k and zeroGradient for epsilon although with most low Re models it will work perfectly well with zeroGradient on k.
  Reply With Quote

Old   February 15, 2005, 08:56
Default How can we change the value o
  #3
Kaushik Balakrishnan (Balakrishnan)
Guest
 
Posts: n/a
How can we change the value of k at inlet to zero gradient? I choose inlet and k is automatically made fixed value.
  Reply With Quote

Old   February 15, 2005, 09:00
Default A zeroGradient inlet conditio
  #4
Henry Weller (Henry)
Guest
 
Posts: n/a
A zeroGradient inlet condition is effectively an upstream extrapolation from inside the domain and is therfore unstable for a convection-dominated property.
  Reply With Quote

Old   February 16, 2005, 02:55
Default From my experience (although
  #5
Fabian Peng Kärrholm (Kärrholm)
Guest
 
Posts: n/a
From my experience (although short) from spray calculations in Foam using the Launder Sharma k-epsilon model, choosing k to have a zero gradient on walls, can cause the timestep to become very small (of the order of nanoseconds). If k is set to zero, this behaviour seems to go away.
  Reply With Quote

Old   February 16, 2005, 08:26
Default Surely, the original paper wi
  #6
Hrvoje Jasak (Hjasak)
Guest
 
Posts: n/a
Surely, the original paper will tell you what boundary conditions you should use.
  Reply With Quote

Old   June 20, 2005, 09:47
Default Hi all! I have a question a
  #7
Member
 
Tommaso Lucchini
Join Date: Mar 2009
Posts: 80
Rep Power: 7
lucchini is on a distinguished road
Hi all!

I have a question about turbulence models and mesh motion.

Usually the function turbulence->correct() is calculated after the PISO loop.
In the case of a moving mesh, the flux phi is calculated according to:

phi = fvc::interpolate(rho)
*((fvc::interpolate(U) & mesh.Sf()) - mesh.phi());

In the correct() function of the turbulenceModel divU is corrected by:

if (mesh_.moving())
{
divU += fvc::div(mesh_.phi());
}

why? Shouldn't be divU -= fvc::div(mesh_.phi());

Could someone explain this?
thanks a lot
Regards
Tommaso
lucchini is offline   Reply With Quote

Old   June 20, 2005, 10:12
Default in phi = fvc::interpolate(r
  #8
Senior Member
 
Join Date: Mar 2009
Posts: 854
Rep Power: 12
henry is on a distinguished road
in

phi = fvc::interpolate(rho)
*((fvc::interpolate(U) & mesh.Sf()) - mesh.phi());

the - mesh.phi() converts the absolute fluxes obtained from the absolute U into relative fluxes.

if (mesh_.moving())
{
divU += fvc::div(mesh_.phi());
}

adds the contribution from the mesh motion to the divergence calculated from the relative fluxes.
henry is offline   Reply With Quote

Old   January 24, 2006, 07:12
Default Hi FOAMers, I´ve just looked
  #9
Member
 
Ralph
Join Date: Mar 2009
Posts: 40
Rep Power: 7
ralph is on a distinguished road
Hi FOAMers,
I´ve just looked at the implementation of some of the turbulence models for incompressible flows in Open FOAM and there I is one thing I did´t get so far. Maybe someone can help me out.
For the calculation of the Reynoldstensor there´s obviously used the Boussinesq-Approximation, where k is used to avoid a traceless stress tensor: n<sub>t</sub>(u<sub>i</sub>/x<sub>j</sub>+u<sub>j</sub>/x<sub>i</sub>)-2/3kd<sub>ij</sub>.
This is done in the method: turbulenceModel::R().
In the method turbulenceModel::divR(), which calculates the divergence of this part in combination with the laminar part, the correction by 2/3kd<sub>ij</sub> is omitted, which should actually be of the form: -2/3*grad(k).
Is this regular or do I omit a part of the normal stresses (which is added to the pressure-gradient term and falsify the static pressure)?

Thanks in advance,

Ralph
ralph is offline   Reply With Quote

Old   January 24, 2006, 08:27
Default Yes, or "well, yes". All you
  #10
Senior Member
 
Hrvoje Jasak
Join Date: Mar 2009
Location: London, England
Posts: 1,733
Rep Power: 20
hjasak will become famous soon enough
Yes, or "well, yes". All you need to do is subtrack k from the pressure field and you'll get the static pressure.

Hrv
__________________
Hrvoje Jasak
Providing commercial FOAM/OpenFOAM and CFD Consulting: http://wikki.co.uk
hjasak is offline   Reply With Quote

Old   January 24, 2006, 09:04
Default Thanks Hrvoje for your quick
  #11
Member
 
Ralph
Join Date: Mar 2009
Posts: 40
Rep Power: 7
ralph is on a distinguished road
Thanks Hrvoje
for your quick reply.
By the way: In turbulenceModel::divR() for incompressible cases, the deviatoric part of grad(U).T() is used (in an explicit manner). Is this done for stabilisation reasons, as the trace of the tensor should be zero anyway (incompressible)?

Ralph
ralph is offline   Reply With Quote

Old   January 24, 2006, 10:40
Default Ralph, dev(grad(U).T()) is
  #12
Member
 
E. David Huckaby
Join Date: Mar 2009
Posts: 57
Rep Power: 7
david_h is on a distinguished road
Ralph,

dev(grad(U).T()) is the second term and the missing divergence term in the Boussinesq approximation as written above. I beleive the reason this is treated explitly is that the term is a cross-coupling term between the different components of the velocity vector. Treating this term implicitly is not possible with a segregated solver.

Dave
david_h is offline   Reply With Quote

Old   January 24, 2006, 10:43
Default The term says div(mu (grad
  #13
Senior Member
 
Hrvoje Jasak
Join Date: Mar 2009
Location: London, England
Posts: 1,733
Rep Power: 20
hjasak will become famous soon enough
The term says

div(mu (grad U)^T)

and this can be rewritten as

mu grad (div(U)) + grad mu . grad U

The first one drops off because of the incompressibility constraint but the second one remains. However, after a lot of messing about it turns out that having the original form behaves better than grad mu . grad U and this is why it remains.

Hope this is clear,

Hrv
__________________
Hrvoje Jasak
Providing commercial FOAM/OpenFOAM and CFD Consulting: http://wikki.co.uk
hjasak is offline   Reply With Quote

Old   January 24, 2006, 11:11
Default Thanks for your answers, I th
  #14
Member
 
Ralph
Join Date: Mar 2009
Posts: 40
Rep Power: 7
ralph is on a distinguished road
Thanks for your answers,
I think that´s clear.
Maybe I expressed myself somewhat imprecise.
My question was about the deviatoric part of (grad U)^T. Why is the the deviatoric part of the tensor and not the "whole" tensor used in the second term of "divR()"?

Ralph
ralph is offline   Reply With Quote

Old   July 17, 2006, 14:11
Default First of all I have to say tha
  #15
diego_n
Guest
 
Posts: n/a
First of all I have to say that being an undergraduated student I am very new with both Foam and CFD.
From literature I found that Launder Sharma model requires a zero value for epsilon at wall.
But trying this boundary Foam produce a singularity error, as expected looking at model.
Is Foam Launder-Sharma model a particular one requiring zerogradient?
  Reply With Quote

Old   July 18, 2006, 00:34
Default I assume you want to use a hig
  #16
Member
 
chris book
Join Date: Mar 2009
Posts: 85
Rep Power: 7
chris1980 is on a distinguished road
I assume you want to use a high-Re turbulence model which uses wall-functions. Therefore it is necessary to choose appropriate boundary conditions (i.e. zeroGradient for k and epsilon). Please note that wall functions are only valid if the y+ of your boundary cells is in the log-law region!

In the case of low-Re models with special near-wall modelling you have to come up with highly resolved mesh near-wall region.
chris1980 is offline   Reply With Quote

Old   July 18, 2006, 05:46
Default I am using Launder-Sharma comp
  #17
diego_n
Guest
 
Posts: n/a
I am using Launder-Sharma compressible lo-Re model and I have made an highly resolved mesh near wall to obtain an y+ value minor than 1.
  Reply With Quote

Old   May 15, 2007, 03:53
Default When I'm using a low-Re model
  #18
Member
 
Christian Lindbäck
Join Date: Mar 2009
Posts: 55
Rep Power: 7
christian is on a distinguished road
When I'm using a low-Re model (e.g. LaunderSharma) my case crashes. I can attach the error message if someone is interested. When I instead change the k value of the walls from 0 to 1e-20 it runs fine. Why is this?

Secondly, in FoamX, when setting a wall to "wall" or "wallFunctions" I can see that the k condition changes (fixedValue or zeroGradient). To what file is my choice to run with or without wall function written? I.e. how is the solver being aware of my wall function choice so that it computes the velocity at the first cell according to the wall function or not?

Best regards,
Christian Svensson
christian is offline   Reply With Quote

Old   May 15, 2007, 04:33
Default It is just an intuitive guess:
  #19
Senior Member
 
dmoroian's Avatar
 
Dragos
Join Date: Mar 2009
Posts: 644
Rep Power: 10
dmoroian is on a distinguished road
It is just an intuitive guess:
in the file /constant/turbulenceProperties set:
turbulenceModel laminar;
turbulence on;

So if I am wrong, please correct me!

Dragos
dmoroian is offline   Reply With Quote

Old   August 1, 2008, 06:01
Default Hi Foamers, I have a questi
  #20
Member
 
sradl's Avatar
 
Stefan Radl
Join Date: Mar 2009
Location: Graz, Austria
Posts: 82
Rep Power: 8
sradl is on a distinguished road
Hi Foamers,

I have a question regarding kEpsilon turbulence model and what it does near walls (the standard wall functions are implemented). Specifically, I'm interested in the production term "G" of k at the wall. In the file wallFunctionsI.H I found (OF-1.5):

G[faceCelli] +=
(nutw[facei] + nuw[facei])
*magFaceGradU[facei]
*Cmu25*sqrt(k_[faceCelli])
/(kappa_.value()*RASModel::y_[patchi][facei]);

which is a little confusing, as it should be:

G=tau_wall*UP/yP

(UP and yP is the velocity and the wall-normal distance to the first cell respectively and tau_wall is the wall shear stress)

Has anybody an explanation where the term:

Cmu25*sqrt(k_[faceCelli])
/(kappa_.value()*RASModel::y_[patchi][facei])

comes from?
sradl is offline   Reply With Quote

Reply

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
Wall functions and turbulence models implementations jposunz OpenFOAM Running, Solving & CFD 2 October 23, 2009 04:02
wall boundary conditions sivaramakrishnaiah CFX 2 August 21, 2008 10:25
Turbulence models and boundary layer Stanislav Kraev FLUENT 1 March 14, 2006 05:55
Turbulence models integrable upto the wall vishwas FLUENT 1 January 31, 2006 16:59
Turbulence : k-epsilon boundary conditions Mohamed Sofiane KHELLADI Main CFD Forum 1 April 25, 2000 20:10


All times are GMT -4. The time now is 01:55.