On boundary conditions in LBM ( cylinder.m example)


I’m new to LBM and i’m really lost. I have few questions :

  1. As i can see in the file cylinder.m in Palabos , a program of a flow around a cylinder, the program works even if the bounce back on the cylinder is a very simple type of bounce back ; while for this type of curved boundaries it requires a more sofisticated bounce back condition (curved). So i’m just wondering how did it work?

  2. For the same example, when we have a wall ( bounce back) we should impose a zero-flux condition on the obstacle limits. The program doesn’t include these conditions but it still works :stuck_out_tongue: How ??

Here is the bounce back implemented in cylinder.m :

for i=1:9
fOut(i,bbRegion) = fIn(opp(i),bbRegion);


Hi there,

Put simply, the bounce back condition works because reflecting the distribution functions at a wall site to go along the opposite lattice links (which is what the code in cylinder.m does) sets its net current to zero, which gives a no-slip condition. Because the bounce back condition is incredibly simple and cheap to implement, it means that if an obstacle can be well-approximated by ‘staircasing’ it to regular lattice points, it can give good results without any additional interpolation.

If the object does not fit well (approximately) to the lattice (if the cylinder is too small, for instance), you may then need to use interpolation to represent boundaries that cross at arbritary distances between points rather than halfway for standard bounce back. However, most of the time, the standard bounce back condition is normally good enough.



Thank you very much for the reply. Okey but if you have a look at this article ( http://joshiscorner.com/files/publications/J003.pdf) page 6 at the bottom you will find this :
“In addition to equation (41), a zero gradient condition is also
imposed on the particle number density (of all species) at the
obstacle surface along the local normal” . So the author here said that you should impose a zero- flux condition in addition to the simple condition of reflexion in the opposite direction. So … ? I’m really confused.

Hi again,

The system given in the article is significantly more complex than the flow-past-cylinder example, not least because it involves three fluid species with different molecular masses and effective lattice link vectors of different sizes for each species. In that particular case, while the no-slip boundary condition (i.e. zero tangential velocity) is given by the bounce back condition and works for each individual fluid, it does not automatically ensure the total mass flux is zero (due to the different lattice link vectors for each species) and therefore the additional condition is needed here.

However, if you are only modelling a single fluid or multiple fluids with the same/similar molecular masses, bounce back will give you zero mass flux as well as a no-slip boundary condition as the lattice link vectors will be identical for all fluids.



So the whole thing is about the “different molecular weights” . Thank you very much thsi really helped me :slight_smile: