CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM Running, Solving & CFD (https://www.cfd-online.com/Forums/openfoam-solving/)
-   -   Wall treatment with OpenFOAM (https://www.cfd-online.com/Forums/openfoam-solving/102246-wall-treatment-openfoam.html)

roby May 26, 2012 05:03

Wall treatment with OpenFOAM
 
Hello,

It is probably a question that often comes to this forum in many threads, but I couldn't find a suitable answer:

Are the wall functions used by OpenFOAM a high Reynolds or low Reynolds treatment? I read somewhere that since OF1.6 some "enhanced" wall treatment was somehow implemented (blending between the two functions). Is there a way to chose which to use?

how can I know up to which y+ I have to refine the grid?

Jonathan June 1, 2012 14:30

Hi Roby,

just wondering whether you had gotten any further with this query of yours ... i am currently investigating the same thing!

cheers
jonathan

roby June 2, 2012 16:54

Hello Jonathan,

Unfortunately not, but in case I find out something I will not hesitate to post it on this thread to address this issue. In case you get further information, please, post it as well.


Roby

alberto June 3, 2012 02:16

The answer to your questions is indirectly available in the User Guide :D

OpenFOAM has low-Re models which do not require wall-functions, since they implement damping functions. You find them listed in Table 3.9. With low-Re models you can use the nutLowReWallFunction (mutLowReWallFunction for compressible cases) condition, which is a place-holder and enables the calculation of y+.

The various wall-functions can be found in the directories with the command:

Code:

find $FOAM_SRC/turbulenceModels -name wallFunctions
Best,

roby June 6, 2012 05:48

actually a lot of information is INDIRECTLY available in the User Guide :(

As far as I can understand (and that you appear to confirm) is that:

-some low Reynolds models exist that don't need wall functions (I guess Spalart-Allmaras and k-w, which are suited for wall turbulence modelling and therfore are somehow themselves "wall-functions")
-In other cases, when a wall function applies, apparently the type of wall function (low-Re, rough wall, etc...) has to be set in the mut / nut file according to what Alberto and the manual suggest (http://www.openfoam.org/docs/user/tu...38-2090007.2.2).

What sounds strange to me is that in the "0" directory, OpenFOAM calculates mut/nut depending on k, epsilon, omega or whatever (at least it writes mut down just feeding OpenFOAM with k and exsilon). So, how can it be that it uses this file to set the case?

Best regards

Roberto

fcollonv June 6, 2012 09:56

law of the wall
 
Hi Roby

Quote:

Originally Posted by roby (Post 364982)
What sounds strange to me is that in the "0" directory, OpenFOAM calculates mut/nut depending on k, epsilon, omega or whatever (at least it writes mut down just feeding OpenFOAM with k and exsilon). So, how can it be that it uses this file to set the case?

Let say that to be user-friendly, OpenFOAM creates for you the missing mut/nut and apply a default law of the wall (probably not the best): currently it is nutkWallFunctionFvPatchScalarField

The code is there if you want a deeper look. But I recommend you to always create nut or mut with the boundary you want.

Cheers

alberto June 6, 2012 10:09

Quote:

Originally Posted by roby (Post 364982)
-some low Reynolds models exist that don't need wall functions (I guess Spalart-Allmaras and k-w, which are suited for wall turbulence modelling and therfore are somehow themselves "wall-functions")

Yes, in general no wall-function is needed if low-Re models are used, since they already incorporate damping functions.

Quote:

-In other cases, when a wall function applies, apparently the type of wall function (low-Re, rough wall, etc...) has to be set in the mut / nut file according to what Alberto and the manual suggest (http://www.openfoam.org/docs/user/tu...38-2090007.2.2).

What sounds strange to me is that in the "0" directory, OpenFOAM calculates mut/nut depending on k, epsilon, omega or whatever (at least it writes mut down just feeding OpenFOAM with k and exsilon). So, how can it be that it uses this file to set the case?

The example refers to a case that uses wall-functions. In such a case, you will specify them also for k and epsilon.

Best,

1/153 August 23, 2012 23:00

Quote:

Originally Posted by fcollonv (Post 365043)
Hi Roby



Let say that to be user-friendly, OpenFOAM creates for you the missing mut/nut and apply a default law of the wall (probably not the best): currently it is nutkWallFunctionFvPatchScalarField

The code is there if you want a deeper look. But I recommend you to always create nut or mut with the boundary you want.

Cheers

Yes, OpenFOAM will overwrite the default nut once you set your own.

aerogt3 September 14, 2012 11:18

I am a bit confused how this works.....

When you mesh, either you mesh for a wall function, where you try to get your first cell in the log-law region (y+ > 30 or 60 or so). Then you have resolution down to the wall where a wall function is not employed. What I would like to know is what to put down for the two cases above in the U, p, nut, etc. files within 0? Is the below example using a wall function on "wall-wing," where I should mesh with y+ > 30, or is it solving to the wall, where y+ ought to be around 1?

File /0/k
wall-wing
{
type kqRWallFunction;
}

File /0/omega
wall-wing
{
type omegaWallFunction;
value uniform ##;
}

File /0/nut
wall-wing
{
type nutkWallFunction;
value uniform 0;
}

1/153 September 14, 2012 11:26

These are for wall function.

omegawallfunction is written in a way to be continuous, which means they can be used in low-re mode.

nut should depends on the turb model, and is the most complicated one, for some models it will automatically be created, but you need to check which type of nut it is creating; for some models, it maybe not, i am not sure. But you can always create it manually so to overwrite it.

One of the difficulties in the whole wall function is that the two turb variables and nut are coupled, so it makes the wall function design and use complicated (other code may just add flux to the momentum eq, but openfoam does not, openfoam built it into turb viscosity). But anyway it is always good to build confidence with some STANDARD Test Cases.

aerogt3 September 15, 2012 05:35

By continuous/low-Re mode, do you mean suitable for y+ 1? If I use RealizableKE, which wall function would be suitable for y+ in the log-law region? At least online I haven't seen any other models aside from nutkWallFunction being used in practice.

Thanks for your response!

roby September 15, 2012 11:35

wall universal law
 
Dear Aerogt3,

I think I didn't get 100% your questions but I will try to give some answer from the beginning:

All turbulent boundary layers behave as described by a law that can be found in litterature as "universal logarithmic wall law" (theory is exact on flat plates but some correctors are sometimes used in formulae to account for the pressure gradient).



If you look at how y+ is formulated (y+=y*u_tau/nu) where:
  • y is the wall distance,
  • u_tau a friction related velocity and
  • nu the kinematic viscosity
you can see that it seems like a Reynolds number. Actually, viscous forces near the wall always overcome inertial forces.

This brings the existance of a viscous sub-layer near the wall and the existance of a logaritmic layer "far" from the wall (google images for this law). So, when we talk about low Reynolds treatment, we talk about formulations that describe the wall flux behavior as described by the viscous sub-layer. When we talk about high-Reynolds treatment, the formulaion describes the latter.
A low-Reynolds treatment requires the mesh to be very well refined at wall in order to put at least one point in the viscous sublayer. A less refined mesh is required if we use a high-Reynolds wall treatment, where the first point has to be put in the logarithmic region.

About the grid size at the wall, if you use a low-Reynolds treatment the grid has to be fine enough to get y+ in the viscous sublayer (say at least y+=4, but lower y+ is desirable). Similar discussion for the High Reynolds. But to avoid the buffer layer standing between sublayer and log-law, use y+>30 (bear in mind that if you go too far you get out of the boundary layer).

About turbulence models: some turbulence models are built to represent the wall turbulence (both sublayer and log-law). They are called as "low-Reynolds turbulence models" (e.g. k-omega and Spalart-Allmaras in some commercial codes). In these commercial codes they usually don't need to set a wall treatment because they implement it themselves (although I saw that k-omega wall functions exist in OpenFOAM. It is probably just a different formulation). Other models such as k-epsilon, modelize a turbulence more likely the one occuring far from the wall (not in the boundary layers) and absolutely need a wall treatment to simulate the behavior of the turbulence at wall. Here it comes the low-reynolds or the high-reynolds wall treatment.
Anyway, I am still trying to work out the details of OpenFOAM Low-Reynolds models wall treatment. Nevertheless, since OpenFOAM implements wall functions for k-omega too, I would mind using it.

Sorry for giving such an approximate description but even this took a long piece of parchment.

:D

Hope that was accurate enough and useful for somebody.

Roby

1/153 September 15, 2012 13:42

My understanding is:
if y+ ~ 1, no need of any wall function (omegaWallFunction in OF can be still used though), y+ in log, standard wall function applies.

** the difficulty is in complex flows, it's extremely difficult to have y+ in the same region, so continuous wall function should be pursued.

k-omega is different than k-epsilon by design, so the former, no need of WF in low-re mode, the latter, needs special damping formulation in low-re mode.

Sorry for my poor english.

-mAx- September 18, 2012 01:03

hello, I take the opportunity of this opened thread for asking 2 points regarding wall treatment in OF:

*What is the meaning of using realizable turbulence model, without creating "nut" file under /0 (incompressible)? My calculations are running well and I get am acceptable solution in comparison with experiments

*Nevertheless, for the same calculation, if I switch to standard kE model (also without "nut" file in /0), the solver freezed after some iterations

Jonathan September 18, 2012 07:09

Hi,

So, if you are using a turbulence model which has low Re capability, you need to use nutLowReWallFunction as a place holder in the 'nut' dictionary file?

the confusion for me comes in when i see i need to specify data for nut / mut, when i know from theory, these are calculated from k / omega / epsilon etc ... it doesnt make sense!

anyway, being a 'Fluent person', i am relatively new to OF, but am trying to understand the implementations - to the point where i am now taking a C++ course! :)

best regards
jonathan

1/153 September 18, 2012 10:33

IMO, Realizability constraints should be ALWAYS satisfied, it does no harm, so use it instead of using the standard one.

Quote:

the confusion for me comes in when i see i need to specify data for nut / mut, when i know from theory, these are calculated from k / omega / epsilon etc ... it doesnt make sense!
This indeed gives us lots of flexibility as well as lots of confusion, because you can always overwrite the default nut. Fluent make nut creation happen automatically, I guess, but I am not sure, if fluent is the same as CFX, then it will use adding flux method in the momentum equation on the wall patch to account this effect. nutLowReWallFunction is nothing but setting nut to zero on the boundary patch, which means you can use fixedValue=0 instead. To summarize: I think we should be careful, 1) use nut wall function and boundary condition consistently with other turbulence variables, 2) Keep in mind OF is still not capable for all flow situations, so in some cases, you do need to create you own wall treatments.

Jonathan September 18, 2012 10:44

hi!

hmmm, i am still confused ... :)

if when using eddy viscosity models (k-epsilon, k-omega, k-e RNG etc):
\nu_t = \rho C_\mu \frac{k^2}{\epsilon} (k-e) or
\nu_t = \rho \frac{k}{\omega} (k-omega) etc

and i have specified either a WF for the high Re models, or boundary conditions for the low Re models, then why do i need to specify BC's or field values for nut? (if it can be calculated from k / omega / epsilon etc)

best
jonathan

1/153 September 18, 2012 11:06

Remember all of these efforts are under the eddy viscosity framework, they are not the end, their aim is to estimate the Reynolds stress accurately in the momentum equation.

These equations have not account for the physics we are trying to solve, that is the wall damping effects, they did not reflect the truth we observed in the vicinity of wall. I am not saying they are just for the isotropic turbulence, but I am saying they are still not able to reflect the inhomogeneous effect of wall.

In a word, it is all about the gradients evaluation!
Wall Turbulence is characterized by its huge gradient and complex production and destruction close to the wall. ------- This is the physics!

From no slip wall to first cell center, there is gradient, right? And suppose now, we have a coarse mesh, if you are not using any nut corrections for the 1st cell center, then the calculated Reynolds stress at the 1st cell center (from -2*nut*Sij) would be totally underestimated or usually unpredictable! That's why we need manually to create a formulation based on DNS, experience and physics to correct this discrepancy. This is very important not just to the flow field prediction of U, p, k, and omega, ..., but also critical to the friction prediction as needed in many industrial field.

------
1/153 dw

Jonathan September 18, 2012 12:44

hi 1/153

ok! yes, i see and understand + you make good points!

however, again, as far as i understand, the low Re models do account for the near wall dynamics using damping functions etc. I know SA does and that k-omega SST also has the damping functions built in, so surely again we dont need WF's for these models?

unless you mean, even if the first cell node is at y+ ~ 1, the we still need some kind of nut WF to account for the distance between the actual wall and the first node point still since the node is not on the wall! is this correct?? :)

regards
jonathan

1/153 September 18, 2012 13:04

Quote:

I know SA does and that k-omega SST also has the damping functions built in, so surely again we dont need WF's for these models?
On a coarse mesh, you still need wall function, there is no way to evaluate the gradient correctly in a coarse grid unless we "correct" the 1st cell values by law of wall.

These models (S-A and k-Omega) are designed so that they can be used both in High-Re mode (but need WF) and Low-Re mode. As you said they have damping functions built in, that's why they can be used in Low-Re mode without any other treatment.

This is in contrast to:
Because traditionally, models like k-e and other models they don't have damping function built in, so even if you use them in Low-Re mode, i.e., using them on a very fine mesh, you still CANNOT get a correct result.
k-e based models that are having damping functions built in include: models designed by Bremhorst or Sharma's, these models are quite popular and for ZPG flows, their prediction are pretty good according to my experience.

Sorry for the confusion, my English is still poor. :(

-----
1/153 dw


All times are GMT -4. The time now is 18:30.