thank you matin thomas for your help

now i m looking for how to implement a themal boundry conditions in a driven cavity flow

with a neumann or direclet BCs


before answering that question one question you need to answer is what kind of thermal model are you using? Are you coupling a Navier-Stokes solver with an advection-diffusion one, or are you just using a “two-in-one” model which simulates directly a non-isothermal fluid?


now im using a isothermal fluid but i want simulate a no-isothermal fluid

" natural convection " in a driven cavity

the cavity is close
and i want use a direclet or neumann BCs, inmplenting a thermal LBE

… T= 0
… ±------------------------------+
… |…|
… |…|
… |…|
T=1 |…| T=0
… |…|
… |…|
… |…|
… ±-------------------------------+
… T=0


Maybe the question I asked you was not clear.

You want to do non-isothermal fluids. To go from isothermal to non-isothermal is not straightforward. Using a normal BGK d2q9 model only you will not be able to simulate anything else than a isothermal. To deal with temperature you have mainly three paths (that I know) when using only lattice boltzmann. The first is to use two different lattices, one for the fluid and one for an advection diffusion equation and to couple them (using the Boussinesq approximation for example). The second path is to use a bigger lattice (50 velocity or even more) to recover correctly the higher order tensors of the distribution functions and therefore to be able to simulate correctly the temperature in your fluid. Finally there is a third path which was investigated by Prasianakis et al. using a standard d2q9 lattice but adding more terms in the collision and extrapolating some quantities in time.

Of course the implementation of the boundary conditions is different depending on which of the methods you chose for your simulation. Furthermore as you see the procedure is not that straightforward and nothing of that kind is in the currecnt OpenLB release. However we are working on the possibility to couple different lattices and therefore the approach that will be “soon” adopted in OpenLB will be the coupling between different lattices. You can find some explanations in the Jonas Latt’s thesis on this method.

i want use


i find it in this paper

Thermal lattice Boltzmann equation for low Mach number flows: Decoupling model
Zhaoli Guo,* Chuguang Zheng, and Baochang Shi
National Laboratory of Coal Combustion, Huazhong University of Science and Technology, Wuhan, People’s Republic of China
T. S. Zhao
Department of Mechanical Engineering, Hong Kong University of Science and Technology, Kowloon, Hong Kong
Received 4 November 2006; published 14 March 2007
PHYSICAL REVIEW E 75, 036704 2007

if you any codes plz send me it i will be able to understand it




I took a look at the paper you cited.

Too much mathematics for me ;)… anyway… I see that they use a Double Distribution Function Method (DDFM). They introduce a Velocity Distribution Function (VDF) to model the motion of the fluid and a second one to control the evolution of the thermal energy of the fluid.

This is the philosophy that it has been chosen for openLB thermal model. … Ready … let’s say soon … it depends on Mr. Latt and Orestis.

In the DDFM the two VDFs evolve according to their own dynamics (either BGK or a more exotic one) and, at some point inside your macro-collision-streaming loop, they “talk” to each other becoming then a coupled system of discrete equations !!!

For example, if you want to obtain the advective term in the energy equation, you have to pass (to send) the macroscopic velocity of the fluid to the scheme of the internal energy (usually the macro velocity is used for the calculation of the equilibrium distribution function of the energy … look at the equation for the equilibrium distribution function of the energy in the paper you cited). On the other hand, in the case of free convection for example, where the dynamic of the fluid is driven by thermal buoyancy forces , you will find the temperature in the force term that you add to the VDF for the fluid during the collision step.

The Guo et al. 2007 model is “improved?” in comparison to the other DDFM for thermal flows because, unlike some of the “progenitors”, they take into account viscous dissipation and pressure work and they can also have a variable Prandtl number (and maybe more … I don’t know). Pretty Cool … but if you plan to use this model in a regime where you can neglect them … why don’t you use a simpler one? I mean … this depend on what you have to do.

Anyway … be aware that in many (maybe all ) previous DDFM for incompressible fluid flow plus advectionm and diffusion of the temperature (energy) an error term has been neglected (for more information look at Latt’s thesis at this link pag. 31 )

To summarize:
the key point in the DDFM (or, being more general Multi Distribution Function Method) is to find right way to couple the LB equations you play with. You can use DDFM also for multicomponets fluid flow… you just need to use the “right” equilibrium distribution functions and to appropriate way to couple them.

Look for example at “X. Shan, Phys. Rev. E 55, 2780 1997”. He used his model for multicomponents fluid flow and made a model for Rayleigh Benard Convection !!! He changed my life … (this means to be really frustrated… there is a nice weather today in Geneva … we should play football or juggling or… )



I’m trying to write a small thermal LB code in MATLAB … but I’m not a good programmer … then you will have to wait for a long while … anyway … keep an eye on the forum.

Hi vilop6,
as Tovarish told you the idea between the code that we are preparing for OpenLB and the one described in the paper by Guo is the same. You simulate the temperature and the fluid on two different lattices and then you communicate the velocity and the temperature to each other to do the coupling.

I hope that in a short future, the part that allows the coupling between lattices will be fully parallelized (that’s the only part that remains problematic so far, the serial part works fine now) and then there will be a release containing the possibility to simulate a “thermal” fluid.

Maybe I can give you one or two ideas on the implementation of the boundary conditions for the model of Guo et al. For the fluid nothing special has to be done. For the temperature you can use for example the idea of Zou and He (see Zou/He) and do the “bounce-back” of the non-equilibrium part of the unknown populations. This may be enough. Is this clear enough?



I’ve just started working on Thermal LBM! I wrote a D2Q9 code for a duct base on D’Orazio and Succi papaer[1]
Velocity profile is ok but the problem is the temperature distribution! The inlet is hot flow and the wall boundaries are cold. the flow gets cold quickly! It is warm just very close to the inlet! I tried for higher velocity but not a visible change in the result. I got tired of checking BC and the whole code over 3 weeks!
Could you please give me a suggestion? It would be high appreciated if send me a code to check the BC in my code with that!


[1] D’Orazio A, Succi S,Simulating two-dimensional thermal channel flows by means of a lattice Boltzmann method with new boundary conditions,FUTURE GENERATION COMPUTER SYSTEMS Volume: 20 Issue: 6 Pages: 935-944 Published: AUG 2004