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? |
Hi Roby,
just wondering whether you had gotten any further with this query of yours ... i am currently investigating the same thing! cheers jonathan |
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 |
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 |
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 |
law of the wall
Hi Roby
Quote:
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 |
Quote:
Quote:
Best, |
Quote:
|
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; } |
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. |
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! |
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:
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 |
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. |
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 |
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 |
IMO, Realizability constraints should be ALWAYS satisfied, it does no harm, so use it instead of using the standard one.
Quote:
|
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 |
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 |
Quote:
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. |