Hi OpenFOAM, in particular LES
Hi OpenFOAM, in particular LES players,
I want to start a new thread about LES channel flow. There is already one but in OpenFOAM-Bugs and here there are no bugs. The problem here is that I can't get "good" results for a channel flow with OpenFOAM. statistics are not so good and the same for the mean flow. configuration : I want to validate OpenFOAM from Moser DNS (Retau = 395). This test case was used prveviously by Eugene in his Ph'D and Henry and Gavin in the conference (LES of turbulent channel flows). OpenFOAM "has been" validated in LES with this litterature. the size of my channel is 2Pi*2*Pi with 96*196*69 node (which is huge). I'm using the one transport equation for the turbulent kinetic energy (like Eugene's calculation) and it's refered to the B1 models in the paper from Gavin and Henry. Here are the plots, the mean flow in normal scale then in log scale and then rms values: http://www.cfd-online.com/OpenFOAM_D...ges/1/8545.jpg http://www.cfd-online.com/OpenFOAM_D...ges/1/8546.jpg http://www.cfd-online.com/OpenFOAM_D...ges/1/8547.jpg You can see from the second picture the mesh which is correct (y+ = 0.11) and I've more than 10 nodes in the viscous area. So in normal scale, I thing I've the same as the paper (for statistic also) but, in log scale there is a "big" difference when we compared to the DNS calculation. The rms value are also not realy efficient. Are these differences due to second order scheme ? Are these differences due to SGS model ? (I didn't find in the litterature validations for this model in channel flow) In Gavin and Henry's paper, dynamic models do not improve the results. So my question are: - Can I have better results in LES with OpenFOAM ? - Someone has results for a such case? Thank you for giving your point of view about these calculations. Cedric |
Not sure about the symbols in
Not sure about the symbols in your plots Uf_0, Uf_2 etc.
If you calculate the Reynolds stresses from the resolved field you are missing the sgs part so my guess would be that you are not going to match DNS values even if everything works fine. Could you give more details on the B1 model? Luca |
Hi Cedric,
The difference b
Hi Cedric,
The difference between the DNS and OpenFOAM result is "big" in the near wall region or the region where the viscosity plays an important role. (y+ < 10). I also got similar results in this region. But in the region where it matters (y+ 100 - 1000), your results are very good. your slope is (1/0.41) and your constant appears to be very close to what you would get from the DNS calculation. I see that you have indeed used a large number of cells , 1.3 million. how many cells have Moser et.al used ? for example kim et al used 3.2 million cells in their 1987 smooth wall computation for a Re_tau of 180! . so i think your result is different in the laminar region because it is still unresolved. what is the time that you take for one flow time in your openfoam LES calculation. ( if flow time is [half of depth of channel/u_tau ] )? I also did the smooth wall case with my LES solver. if you want i can post it. Thanks Kumar |
Thank you for your answers,
Thank you for your answers,
@Luca : the only difference between Uf_0 and Uf_2 is the mesh repartition normal to the wall. one is linear and the other is a tanh. But, because in the plots only Uf_2 is symboled (by cross) you won't see the mesh. And in fact, as you can see, the results is the same. then, you have the classic log law and the linear law close to the wall. These last 2 law are the "asymptotic solution" in visous and inertial layer. for B1 model, I can write you here all the theory but, I think it's better for you to find the reference LES paper in OpenFOAM. For exemple, "Large Eddy Simulation of Turbulent Channel Flows" from C. Fureby, A.D. Grosman, G. Tabor, H.G.Weller . You can find it for free from google. Eugene Ph'D is also very well written and explained the SGS models very clearly. Then you can have a look about Tabor (Gavin) and Fureby who did lot's of work on LES model (in particular OF's LES model). About your comments, I calculated Re stresses from the resolved field but, the SGS model play as a viscosity in this field (and in the NS equations) so I'm suppose to see it there. don't I ? @Kumar: I can't find Moser's paper now but, you are right, he probably used more cells but .... he did a DNS :-). And I wall normal direction, plots show us (from y+) that ... it's resolved at the wall, doesn't it ? Then, conference paper (where the results are "better") obtained good results if delta x+ = 35 delta z+ = 20 delta y+ between (2,20) without any wall model ... In my case, utau = 0.0079 yes, I'll be gratefull if you can post here or send by mail your LES results with some description. Thanks for giving idea, I'll keep looking for .... something :o) Cedric |
Cedric,
I see now you are und
Cedric,
I see now you are underpredicting U mean in the viscous and transition layer and on the other hand overpredicting Urms. If you calculate the Urms on a resolved LES field it should be less than the corresponding DNS value since you are missing the small scale motions whose dissipation is taken into account by the SGS model. However this is not your case since you are actually overpredicting Urms. I'll try to look at the paper to get more info on the SGS model. One thing you can try is to run a different geometry and compare to more data. I would try the Lid Driven cavity flow. Best |
I assume all your configuratio
I assume all your configuration settings are identical to those in the channel395 channelOodles tutorial case?
|
Hi Eugene,
euh ....not real
Hi Eugene,
euh ....not really :o) As I told, the geometry and the grid are different. it's the same geometry as the DNS calculation. So streaks are shorter than the box and there is (should be) no effect from the outlet on the inlet. the time discretisation is Crank-Nicholson. (I think it's backward in the tutorial). For the numerical scheme I using only central diffential scheme (to keep second order accurate). so there is no limitedLinear 1 for these terms (div(phi,k), div(phi,B)) Then, the time step is different to keep Co number less than 0.4. For the solver, I'm using ICCG to solve the pressure (and the same PISO as the tutorial) and BICCG for the other quantities, which is quite different from the tutorial also. Can these settings bring me some over diffusive terms, because, it should not, contrary to the tutorial (convective scheme view). Thank you for giving advise,... I hope it's not a stupid question. But, because the results are not so "bad" (but also not so good :o) ), I think it's just a small things. Cedric |
The settings you reported are
The settings you reported are ok.
What are your turbulenceProperties settings? |
@Luca: I don't agree with you,
@Luca: I don't agree with you, I think for both Umean and rms I underpredicted the value. In the rms, I overpredicted the pic of rms and, the maximum is shift to bigger y+ .... which is not good also.
@Eugene: Here are the turbulentProperties: I'm now running a dynOneEqEddy channel flow to check if the result is really not better if we compare to a non-dynamic procedure ( like the paper ). But the plot I put was from a oneEqEddy model. I didn't change the constant value in the properties and I'm using the cubeRootVol for delta. Thanks for your interrest. Cedric |
Try vanDriest for delta with o
Try vanDriest for delta with oneEqEddy. Check the channel395 tutorial turbulenceProperties.
|
Hi
I did LES of Turbulent Ch
Hi
I did LES of Turbulent Channel Flow using with OpenFOAM.Unlike my imagination the result for rms component isn't good.I attached the file that containes my results and computational details.What's your idea about it? With Kind Regards Marhamat |
@Eugene Thank you for you com
@Eugene Thank you for you comment, I'll try that.
I thought about that point before and that is the reason why I'm doing a calculation with the dynamic procedure. I'm not supposed to need Van Driest damping function for this run so I'll try both and compare the calculation. I'll upload my resluts after because I'm sure I'm not the only one who tryed such calculation in LES. Cedric. |
Hi
I did LES of Turbulent Ch
Hi
I did LES of Turbulent Channel Flow using with OpenFOAM.Unlike my imagination the result for rms component isn't good.I attached the file that containes my results and computational details.What's your idea about it? http://www.cfd-online.com/OpenFOAM_D...hment_icon.gif Fully developed turbulent channel flow11_Page_1.tif http://www.cfd-online.com/OpenFOAM_D...hment_icon.gif Fully developed turbulent channel flow1_Page_2.rar With Kind Regards Marhamat |
Sorry alot
The attached file
|
Cedric, your experiments and c
Cedric, your experiments and concerns are of great interest so please keep us posted with your results. I haven't look at the test case "LES of turbulent channel flows" yet, but I'm running DES in the ERCOFTAC conical diffuser and I saw that you presented on the subject in Milan. Unfortunatly I wasn't there.
We could start another thread on the subject of LES in the diffuser, but for now I have some general questions I hope you can help me with. -I guess you use the solver channelOodles for the LES of turbulent channel flow, but do you use oodles or channelOodles for the diffuser? What fundamental difference there is between the two? -I see, in your presentation, that you perturbed the Poiseuille flow for turbulent inlet boundary conditions, but how do you initialize the diffuser? Do you start from a perturbed RANS solution? While I'm at it, do add initial perturbation to your LES of turbulent channel flow to initiate the turbulence cycle? Well, that would be it for today. I hope you can take the time to answer. As I said before, we could start a thread on LES in the ERCOFTAC diffuser. I have some results that suggest separation and recirculation and I will be very interested in your time averaged solutions. Best regards and merci! Philippe |
Hi FOAMers
I require to obtio
Hi FOAMers
I require to obtion a solution for fully developed turbulent channel flow with inlet B.C!. I want to study the effect of adding a particular source term to N.S equation,in one section of domain.(with periodic B.C the source term effect on inlet flow.). Can i ask your idea? Can i get good result If i use the obtioned result, in one section of a channel with periodic B.C as a inlet condition for a long channel(L2/L1=10) with inlet B.C? @ Eugene and Cedric : What's your idea about my obtioned result in Turbulent Channel Flow? Best Regards Marhamat |
Hi LES FOAMers
Sorry for th
Hi LES FOAMers
Sorry for the delay but, the august month is very quiet and vacation was there ..... well, I came back :-) I'm running 3 jobs now with the same mesh : - static oneEqEddy - static oneEqEddy + Van Driest - dynamic oneEqEddy and .... it working better for the mean flow (picture below) (thank you Eugene) http://www.cfd-online.com/OpenFOAM_D...ges/1/8928.jpg here is a premilinary conclusion, with the help of a paper (JCP 2008 Desjardin et al. "High order conservative finite difference scheme for 3 variable density low Mach number turbulent flows") "with a second order accurate code, we can't get the same mean flow in log scale as a DNS. Plot should be below (like the previous plot)" I think it answers also to Marhamat previous message. In the article they plot result in a periodic pipe mean velocity in log scale from second and higher order scheme. The question now is what is the minimum error we can get. And I feel my runs can be better .... let's check. Any comments ? regards, Cedric PS: Hi Philippe, nice to meet you. please feel free to open a new thread on this topic or to send me a mail about your work. I'll be happy to discuss with you as much as I can. |
Good morning everyone,
I ha
Good morning everyone,
I have a technical question about the turbulent channel flow : How exactly do you get the drinving pressure gradient to calculate utau? Thank you Philippe |
Hi Philippe,
the pressure g
Hi Philippe,
the pressure gradient is calculated eatch time step from these lines (in channelOodles.C): // Extract the velocity in the flow direction dimensionedScalar magUbarStar = (flowDirection & U)().weightedAverage(mesh.V()); // Calculate the pressure gradient increment needed to // adjust the average flow-rate to the correct value dimensionedScalar gradPplus = (magUbar - magUbarStar)/rUA.weightedAverage(mesh.V()); first, you get the volume average of the streamwise velocity sum(mesh.V()*Ustreamwise)/sum(mesh.V()) then, you calculate a "streamwise body force" by the difference of magUbar (you imposed in transportProperties files) and the average you just calculated. In OpenFOAM, you don't calculate both utau and mass flow rate but, the mean velocity "Ubulk" you imposed. I hope it helps, Cedric |
Hi Cedric,
thank you for yo
Hi Cedric,
thank you for your answer. I get the idea for the adjustment of gradP at each timestep in channelOodle. So correct me if I'm wrong, but to plot U+ vs y+, you use the final pressure gradient in the channel to get Tau_w and then U_tau? Philippe |
Hi Philippe,
Yes, you can d
Hi Philippe,
Yes, you can do that, just telling that the shear stress in your periodic channel is compensated by the favorable pressure gradient. So you get u_tau to get U+ and y+. Do you plan to let your results avaiable ? I'm quite interresting in that just to compare with my results. Notice that with the value of u_tau, you can calculate a Re_tau which is better to compare with DNS results. Cedric |
Good. I'm glad it's the good w
Good. I'm glad it's the good way to calculate u_tau. I don't know to what extend I will be working on this test case, but sure I can share the results. I'll keep you posted.
thanks, Philippe |
Hi Cedric,
if you have used
Hi Cedric,
if you have used any scripts for plotting the above profiles, it would be nice, to share these for the turbulence SIG :-) If there is some kind of 'standard', others might provide there results to some kind of database as well!? Fabian |
Hi Fabian,
Well, I used the
Hi Fabian,
Well, I used the postChannel tool to get lot's of two colums files. but after that, it's quite .... home made :o) I'll try to clean one of these gnuplot files to do a standard format. Do you plan to do a LES channel tutorial ? :-) Cedric |
Hi Cedric,
yes, such a tuto
Hi Cedric,
yes, such a tutorial would be a first step!? The base is probably already in the channelOodle tutorial, though comparisons with other filters and models would be nice. Even comparison with RANS models and their y+ sensitivity would be interesting. Fabian |
Hi OpenFOAM
I want to simulat
Hi OpenFOAM
I want to simulation channel flow with dynSmagorinsky(channelOodel channel395), but i can't get "good" results for a channel flow with OpenFOAM. I want to validate OpenFOAM from Moser DNS (Retau = 395). the size of my channel : 4*2*2,80*50*60 the schemes of my channel: ddtSchemes { default backward; } gradSchemes { default Gauss linear; grad Gauss linear; grad Gauss linear; } divSchemes { default none; div(phi,U) Gauss linear; div(phi,k) Gauss limitedLinear 1; div(phi,B) Gauss limitedLinear 1; div Gauss linear; div(phi,nuTilda) Gauss limitedLinear 1; div((nuEff*dev(grad .T()))) Gauss linear; } laplacianSchemes { default none; laplacian(nuEff,U) Gauss linear corrected; laplacian((1|A ),p) Gauss linear corrected; laplacian(DkEff,k) Gauss linear corrected; laplacian(DBEff,B) Gauss linear corrected; laplacian(DnuTildaEff,nuTilda) Gauss linear corrected; } interpolationSchemes { default linear; interpolate linear; } snGradSchemes { default corrected; } fluxRequired { default no; p; } it is in openFoam 1.4.1. my result: http://www.cfd-online.com/OpenFOAM_D...your_image.gif than you for your view. Jianying |
Hi OpenFOAM
I want to simulat
Hi OpenFOAM
I want to simulation channel flow with dynSmagorinsky(channelOodel channel395), but i can't get "good" results for a channel flow with OpenFOAM. I want to validate OpenFOAM from Moser DNS (Retau = 395). the size of my channel : 4*2*2,80*50*60 the schemes of my channel: ddtSchemes { default backward; } gradSchemes { default Gauss linear; grad Gauss linear; grad Gauss linear; } divSchemes { default none; div(phi,U) Gauss linear; div(phi,k) Gauss limitedLinear 1; div(phi,B) Gauss limitedLinear 1; div Gauss linear; div(phi,nuTilda) Gauss limitedLinear 1; div((nuEff*dev(grad .T()))) Gauss linear; } laplacianSchemes { default none; laplacian(nuEff,U) Gauss linear corrected; laplacian((1|A ),p) Gauss linear corrected; laplacian(DkEff,k) Gauss linear corrected; laplacian(DBEff,B) Gauss linear corrected; laplacian(DnuTildaEff,nuTilda) Gauss linear corrected; } interpolationSchemes { default linear; interpolate linear; } snGradSchemes { default corrected; } fluxRequired { default no; p; } it is in openFoam 1.4.1. my result: http://www.cfd-online.com/OpenFOAM_D...es/1/10502.jpg http://www.cfd-online.com/OpenFOAM_D...es/1/10503.jpg http://www.cfd-online.com/OpenFOAM_D...es/1/10504.jpg http://www.cfd-online.com/OpenFOAM_D...es/1/10505.jpg than you for your view. Jianying |
Hello
In the channel solver
Hello
In the channel solver for having periodic pressure, it use; // Extract the velocity in the flow direction dimensionedScalar magUbarStar = (flowDirection & U)().weightedAverage(mesh.V()); // Calculate the pressure gradient increment needed to // adjust the average flow-rate to the correct value dimensionedScalar gradPplus = (magUbar - magUbarStar)/rUA.weightedAverage(mesh.V()); Would anyone explain for me what is the meaning of this terms and how they work that can remain the mass flux constant? Thank you mou |
Hi Mou,
the weightedAverage
Hi Mou,
the weightedAverage commande calculate the volume average of a volSclalarField. So if you have a volScalarField "toto", toto.weightedAverage(mesh.V()); gives you the average value of "toto" in the all domain. With that, the line (flowDirection & U)().weightedAverage(mesh.V()); give the average velocity in the flowDirection. In the transportProperties you fixed Ubar (and magUbar) so the term (magUbar - magUbarStar) gives the difference between the mass flow average you have in your calculation and the mass flow average you want. You can write this error as a pressure drop in you periodic channel which explain the "gradPplus" name. Then, you add a streamwise body force to the Navier-Stokes equation to correct this error. The idea is to get (magUbar - magUbarStar) as small as possible, then the mass flow average you wanted is the mass flow averae you get in your calculation. I hope it helps you. Cedric |
Thank you Cedric,
It was so h
Thank you Cedric,
It was so helpful. Mou |
Hi Jianying:
Have you found
Hi Jianying:
Have you found a way to improve your results? I did a similar simulation using channel395, and here is my results: http://www.cfd-online.com/OpenFOAM_D...your_image.gif http://www.cfd-online.com/OpenFOAM_D...your_image.gif |
Hi Jianying:
Have you found
Hi Jianying:
Have you found a way to improve your results? I did a similar simulation using channel395, and here is my results: http://www.cfd-online.com/OpenFOAM_D...es/1/11153.jpg http://www.cfd-online.com/OpenFOAM_D...es/1/11154.jpg Neither Umean or rms looks good to me. Here is my blockmeshDict ================================================== ========================================= convertToMeters 1; vertices ( // (0 0 0) // (4 0 0) // (0 1 0) // (4 1 0) // (0 2 0) // (4 2 0) // (0 0 2) // (4 0 2) // (0 1 2) // (4 1 2) // (0 2 2) // (4 2 2) (0 0 0) (6.28 0 0) (0 1 0) (6.28 1 0) (0 2 0) (6.28 2 0) (0 0 3.14) (6.28 0 3.14) (0 1 3.14) (6.28 1 3.14) (0 2 3.14) (6.28 2 3.14) ); blocks ( // hex (0 1 3 2 6 7 9 8) (40 25 30) simpleGrading (1 10.7028 1) // hex (2 3 5 4 8 9 11 10) (40 25 30) simpleGrading (1 0.0984 1) hex (0 1 3 2 6 7 9 8) (80 50 60) simpleGrading (1 10 1) hex (2 3 5 4 8 9 11 10) (80 50 60) simpleGrading (1 0.1 1) ); edges ( ); patches ( wall bottomWall ( (0 1 7 6) ) wall topWall ( (4 10 11 5) ) cyclic sides1 ( (0 2 3 1) (6 7 9 8) ) cyclic sides2 ( (2 4 5 3) (8 9 11 10) ) cyclic inout1 ( (1 3 9 7) (0 6 8 2) ) cyclic inout2 ( (3 5 11 9) (2 8 10 4) ) ); mergePatchPairs ( ); ================================================== ========================= SGS model I used: LESmodel oneEqEddy; delta vanDriest; ================================================== ========================= The initial condition of flow was obtained using perturbU. The flow was run for about 200 flow through time to get a steady state then sampled for another 200 flow through times. The problem I am having is: I calculated utau based on mean pressure gradient. The utau based on 200 flow through times is 0.0073. The actual value is 0.0079. Is there anyway to improve this? Thank you. Ning |
Sorry, my bad. here is rms:
Sorry, my bad. here is rms:
/image{umean} |
Sorry, my bad. here is rms:
Sorry, my bad. here is rms:
/image{rms} |
Geeze, can't post an image:
|
I missed contribution of SGS m
I missed contribution of SGS model from my previous calculation. Adding that (T = Bmean + R) gives the following plot:
http://www.cfd-online.com/OpenFOAM_D...your_image.gif The top two plots are taken from Eugene's thesis. Looks like that Van Driest model significantly overpredicts Vrms near the wall. So my question is how to improve my results? What is the best model in the openfoam I should use? Thank you. Ning |
I missed contribution of SGS m
I missed contribution of SGS model from my previous calculation. Adding that (T = Bmean + R) gives the following plot:
Eugene's data: http://www.cfd-online.com/OpenFOAM_D...your_image.gif http://www.cfd-online.com/OpenFOAM_D...your_image.gif my data: http://www.cfd-online.com/OpenFOAM_D...your_image.gif http://www.cfd-online.com/OpenFOAM_D...your_image.gif The top two plots are taken from Eugene's thesis. Looks like that Van Driest model significantly overpredicts Vrms near the wall. So my question is how to improve my results? What is the best model in the openfoam I should use? Thank you. Ning |
I missed contribution of SGS m
I missed contribution of SGS model from my previous calculation. Adding that (T = Bmean + R) gives the following plot:
Eugene's data: http://www.cfd-online.com/OpenFOAM_D...es/1/11286.png http://www.cfd-online.com/OpenFOAM_D...es/1/11283.png my data: http://www.cfd-online.com/OpenFOAM_D...es/1/11284.png http://www.cfd-online.com/OpenFOAM_D...es/1/11285.png The top two plots are taken from Eugene's thesis. Looks like that Van Driest model significantly overpredicts Vrms near the wall. So my question is how to improve my results? What is the best model in the openfoam I should use? Thank you. Ning |
Hi Ning
Thank you for your an
Hi Ning
Thank you for your answer to my question. Your result is better than my result, but my mesh is poorer than yours. I read some paper about channel flow, their result is better, their mesh (64*64*64), temporal term(RK3 or RK4). I think the reason which lead to my poor result is caused the temporal term. the temporal discretization term is second-order. Give me some idear. Thank you. Jianying |
Hi Jianying:
Have you tried
Hi Jianying:
Have you tried one equation model? It should give you better results than smagrinsky model. Read Eugene's thesis. You will have better sense of what grid resolution you need. Regarding the schemes, I am using second-order schemes for both time and space. Hope this will help. Ning |
All times are GMT -4. The time now is 02:10. |