December 1, 2016 at 3:27 pm #1880
I am trying to simulate turbulent pipe flow. I originally intended to modify the cylinder3d or venturi3d example geometrically and with different Re. But then I found the nozzle3d case, which uses different turbulence models.
Therefore my question is: What do the turbulence models do (I couldn’t find any explanation in the user guide, please correct me if I’m wrong)? I was under the impression that LBM does not need any turbulence models, since it does not solve any Navier Stokes equations.
Do I need to use the turbulence models in order to implement turbulent pipe flow?
Thanks in advance!
SumitDecember 1, 2016 at 4:42 pm #2492PatrickNMember
the problem with LBM and turbulence are the mathematics of LBM itself. The 2nd order spatial accuracy corresponding to a finite-difference scheme leads to dispersive errors at low viscosities. To suppress those dispersive errors (which also exhibit tremendous amounts of energy) we apply Navier-Stokes related turbulence models, like the Smagorinsky model, which simply increases the effective viscosity and, thus, suppresses those dispersive oscillations.
As long as you are employing an under resolved mesh at a given Reynolds number, I would suggest you use one of the Smagorinsky models or the Approximate Deconvolution Method.
If you are really considered into direct turbulence simulation I suggest a well resolved setup with a BGK approach -> which is at the hydrodynamic limit actually the solution of the Navier-Stokes equations.
I already simulated the turbulent channel flow at high Reynolds numbers and I would be happy to help you with the turbulent pipe flow and the respective forcing and mesh resolution needed for this simulation.
PatrickDecember 1, 2016 at 5:56 pm #2493
thank you so much for the quick and very helpful reply, I greatly appreciate your support.
If I understand correctly, the turbulence model is implemented in the code by substituting th BGK collision operator by a modified one with turbulence modelling, thus reulting in a different omega, and a higher viscosity respectively. This is a very interesting phenomenon, do you know any literature, so I can find out more about this?
What if, instead of reducing the viscosity in order to get a high Re, we increase the velocity (which would be latticeU or charU?)?
My ultimate goal is to finely resolve turbulences, so in the end I have to use a well resolved setup wit BGK anyway. But what would “well resolved” be like? Is there a formula or rule of thumb, or do I need to conduct a mesh refinement study. In this case, which resulting quantity do I need to look at to asses if the mesh is fine enough.
Sorry for the flood of questions.
SumitDecember 2, 2016 at 8:40 am #2494mathiasKeymaster
To get a stable simulation without a turbulence model you need to refine the mesh. There are a lot of papers out there. We just submitted one about DNS. Please, like our researchgate profile and you will be updated. Further, you can get information at our spring school in March in Tunesia!
MathiasDecember 2, 2016 at 10:26 am #2495PatrickNMember
in addition to the answer of Mathias:
(1) Exactly this is what you do in a classical way: Here a very good paper on it:
(2) This is tricky: It really depends on what kind of velocity and subsequent time scaling you apply. By using advective scaling, your velocity and time step increases linearly leading to a very high Mach number and, thus, initializes non-linear growing of instabilities. Diffusive scaling (delta x^2 -> delta t) on the other hand would limit the time step by just changing charU at constant latticeU. On scaling Mathias is the hardcore expert anyway.
(3) To resolve all scales like in freely decaying turbulence you need to resolve the “Kolmogorov length scale”. This is perfectly resolved. We actually did this in our recent work for isotropic turbulence. Regarding you have a wall-bounded flow. The flow is assumed to be resolved when you resolve the wall nearest turbulent energy structures by u+=y+. Let me know if you need any assistance.
PatrickDecember 8, 2016 at 1:39 pm #2498
Thanks a lot, Patrick and Matthias! Your input was very insightful.
For the time being, I decided to first get my simulation set up and going with an under resolved mesh and a Smagorinsky turbulence model, in order to limit computation time. Then I will move on to scaling the mesh.
While setting up and testing the case, a few questions have come up:
-when applying a velocity boundary condition (Poiseuille velocity profile) at the pipe inflow and pressure boundary condition at the outlet, the results look a lot like a free jet, with a distinct velocity profile at the beginning that breaks down towards the end, with velocities close to zero at the outlet. Have I set up my boundary conditions incorrectly? Or should I just increse the Smulation time to let the flow build up.
– I have considered using a pressure boundary condition at the inlet, since this is often used in RANS based solvers. Would that be appropiate for LBM? And how do I set up the pressure boundary value, since I can only use defineRho?
-I have noticed, that the value of charU has a huge impact on computaion speed. When playing with the values of charU and charNu to reach a high Re, computaion time was almost proportional to charU, with unchanged number of voxels. Is there a reason behind this?
-can I expoit the symmetry of the pipe by just simualting a wedge (e.g. a quarter of the circle) and using periodic boundaries for the planes neighboring the outer flow field?
Thanks in advance for your kind support.
Best, SumitDecember 8, 2016 at 4:05 pm #2499mathiasKeymaster
why dont you come to our spring school in Tunesia in March! We will have plenty of time to discuss your questions. There will be an extra lecture on turbulence by Patrick.
MathiasDecember 8, 2016 at 5:05 pm #2500
thanks, that definitely sounds great! However, since I’m working on a thesis right now, I would really appreciate an answer before March 😉
- You must be logged in to reply to this topic.