Reg. LES in OpenFOAM
hi !
Newbie alert !! Wherever I look, I get redirected to Oodles or ChannelOodles for LES in OpenFOAM. I have OpenFOAM1.6.x installed finally and there's no solver called Oodles. Code:
[blah@blah incompressible]$ pwd 1. Is an LES solver in OpenFOAM nothing more than SGS stress terms added to the NS equation ? So it's pisoFOAM with SGS stress terms with appropriate turbulence models and modified boundary conditions, wall functions etc. ? 2. I do want to do a channel flow simulation. But what solver do I use in general for LES of incompressible flows ? pisoFoam ? 3. Can you suggest any better place than Eugene's thesis to start looking inside the box ? ganesh 
I would to add one more question:
 Is there already a solver in OF suitable for external aerodynamics LES? Best Regards, Paulo Rocha. 
For LES I would suggest pimpleFoam with the appropriate turbulenceProproperties (LES) settings and boundary conditions. pimpleFoam is like pisoFoam but with incomplete convergence of the corrector steps.
For external aero LES just use the SpalartAllmaras DES model as SGS model. 
Thank you very much for the fast reply.
I will investigate further. Best Regards, Paulo Rocha. 
Quote:
Isn't DES a hybrid approach between RANS (near wall) and LES (free stream)? Isn't there a way to test pure LES for external aero? :confused: Thanks in advance, Best Regards, Paulo Rocha 
Quote:
Of coarse you can, provided you have a suitable mesh, etc. Try pisoFoam, I used to use them to do flow like flow past circular cylinder, building, etc. It works very well. Regards, 
DES is indeed a hybrid approach. I just assume that you would not be able to mesh external aerodynamic cases fine enough to use pure LES. If you do have the meshes to do pure LES, then I suggest you try the oneEqEddy, dynOneEqEdy or locDynOneEqEddy SGS models to start off with.
Check the openfoam workshop and open source cfd conference proceedings for similar applications. 
Quote:
I have two questions: 1. If using oneEqEddy model, how we can set boundary for k? because for RANS model, we can get k from experiment for inlet condition. But for LES, we couldn't get subgrid turbulent kinetic energy for inlet. Or just give a small value is OK ? for example 5e5. So I think why so many people use Smagorinsky model, maybe don't need to set boundary for k, am I right ? 2. I have read your paper, that is very good! the size of my case is very similar to your "Side Mirror" one. First I use 300000 meshes Smagorinsky+ Spading law wall function, and then I use a little finer mesh 500000 mesh Smagorinsky+ VanDriset damping function, both of my velocity value is smaller than RANS and Experiment data above ground 12mm position, that meas my LES result shear stress is larger, so velocity is small. Could you give me some suggestions to improve my LES result ? Tnank you very much. 
Hi,
The boundary for k is pretty straightforward, since you will have no resolved scale turbulence at the inlet, just set it to the equivalent RANS value. It will adjust really quickly once things start happening. Setting it too small is not a good idea, as this can lead to spurious numerical noise if you have any grid abnormalities. All I can suggest, is that you try the other turbulence models and see what happens. I haven't run pure LES for a while, but in literature most people use some kind of dynamic model. Also, the oneEqEddy model I used in my thesis is not the same as the one currently in OPENFOAM. I had a separate nearwall dissipation lengthscale that was independent of the turbulent energy length scale. This improved results on channel flows by a few percent relative to the current model. The independent dissipation scale does not fit into the current SGS model framework though and was not incorporated into the release code as a result. Unfortunately, I no longer have the code for this. 
Eugene, Daniel and all
Thanks a lot for the information and time. I will start trying to solve my problem. Best Regards, Paulo Rocha 
Quote:
If there are numerical problems due to grid anomalies when k is set to be small, it simply means the mesh is not good enough for a LES anyway, or there is some problem in the numerics. Remember that, strictly speaking, you cannot use a nonuniform mesh in LES, since you assume you can commute the integral and the derivative operators, and you neglect the terms depending on the filter size when you filter the conservation equations. The error is generally not negligible. It was shown (Guerts and coworkers, take a look at what they published in Physics of Fluids in 2005 on the commutation error) that the error becomes small if the change in the filter is slow and its skew is limited, but this is surely not the case if the mesh anomalies can cause numerical problems. :D In addition, there is quite some interest around commutative filters and other approches to account for the commutation error. You might be interested in reading, for example, the work of Best, 
LES turbulent inlet
Hey there Eugene. I have a question that has being ongoing for a short while. My research entails feeding the mean velocity and temperature profile into the lower portion of a plate (turbulent natural convection flow). So, to accurately predict the turbulent flow field downstream, what is the best approach to take in setting the turbulent inlet. I have considered superimposing some perturbations at the inlet and also remapping the flow field downstream back into the inlet. So any thoughts on this? Thanks.
And, I have not found any literature on how to set these turbulent boundaries in openFOAM. Is there any documentation or example in the code? Thanks. Kind regards Deji 
Hi Deji,
The only implementation available in the standard code for LES inlets is the directMapped boundary for looping stuff back onto the inlet. You can find an example case here: $FOAM_TUTORIALS/iincompressible/pisoFoam/pitzDailyDirectMapped You could of course also write your own boundary with perturbation specifications. For a reference, search for papers by Gavin Tabor. (There are others as well, if you don't mind digging in the forum and online.) 
Thank you very much Eugene.

Inlet velocity profile
Hey there Eugene, I have a question. I am trying to implement the directmapped inlet for my LES simulation, and I happen to have my nonuniform velocity and temperature profiles at the inlet. I am unsure as to how to prescribe the average profile on the line I have marked on the posted sample velocity inlet profile. If possible , kindly give me some input on this matter. Thanks much.
inlet { type directMapped; value nonuniform 2 ( (0 0 .15) (0 0 .12) ); setAverage true; average ( ); < ?? :confused: } 
Its not an average profile, its an average value.
average (<x y z>); for velocity and other vectors. average <x>; for temperature and other scalars. 
Thanks for the response Eugene. Hence, to clarify, for each vector that I prescribe at the inlet, there should be an average (<x y z>) when utilizing the directmapped inlet bc. For example,
inlet { type directMapped; value nonuniform 2 ( (0 0 .15) (0 0 .12) ); setAverage true; average ( <x y z> ) ( <x y z> ); } Thanks 
Unfortunately, what you want is not possible without code alteration. I checked the directMapped source code and it only admits a single value. This value fixes the mapped field average at every single timestep  i.e. the average is constant in time.
You are trying to impose a mean distribution, should not the shape of the distribution emerge from the flow calculation itself? It should not be too difficult to add an "average" field distribution, but I have no idea how you would use this to force your timemean input field (instead of you instantaneous field) toward the desired value. 
Unfortunately, what you want is not possible without code alteration. I checked the directMapped source code and it only admits a single value. This value fixes the mapped field average at every single timestep  i.e. the average is constant in time.
You are trying to impose a mean distribution, should not the shape of the distribution emerge from the flow calculation itself? It should not be too difficult to add an "average" field distribution, but I have no idea how you would use this to force your timemean input field (instead of you instantaneous field) toward the desired value. Eugene, With the directMapped code, I assume it feeds the instantaneous field back into the inlet. So, I gather it would be more feasible to use the instantaneous field rather than some mean distribution. And it seems that the use of the single average value is only for a uniform inlet? I did take a look at your thesis work as you utilized this capability for the diffuser's inlet. In my research, there was a free convection experiment along a vertical plate and at some point the flow became turbulent. So, I am basically taking data at the inception of turbulence for the experiment and using it for my CFD calculation. Thanks. Best regards Deji 
Hey there Eugene. I thought about this and the fact is I would rather have the instantaneous profiles at the inlet instead of the mean quantities. Mean profiles are utilized since that is all I have at that particular location of the start of a turb. b.L. Perhaps, the directMapped code should be suitable for my computation. The only thing that I am still somewhat confused by is the average quantity.
Kind regards Deji 
All times are GMT 4. The time now is 00:41. 