moving obstacle example?

I was looking for example code how to implement boundaries of moving obstacles, like for example a paddle rotating in a mixer. I didn’t find any in the OpenLB examples directory. Can you suggest other places to search for such code, possibly based upon OpenLB?

My other question is how you deal with moving boundaries in general. I’m not talking about wall velocities, but rather about fluid cells becoming boundary cells in the next step, and vice versa.
How is the particle distribution initialised for a cell that has been a boundary in the previous step and now is a fluid cell? Can I simply set it to the average of the neighbouring fluid cells? How can I guarantee mass conservation if fluid cells appear in one place and disappear in another?
It would be great if you could suggest an article that gives an introduction to these questions.



what exactly is your application of moving boundaries?
I am working on blood rheology, and I have many deformable blood cells moving in the fluid. For dealing with deformable particles, the "immersed boundary method " is a very useful tool.
If, however, your objects in the flow are stiff, you should use other methods, which I do not know in detail.


Hello Timm,
indeed I want to simulate the movement of stiff bodies. I found a similar question in this forum, which you find when searching for “vertical windmill”. In the end I want to study the interaction between grids of a few windmills of various designs. Other CFD methods may be more efficient than LBM for this problem, but I would like to try LBM as well for curiosity.
You mention “other methods, which I do not know in detail”. If you remember any overview articles on those methods, please let me know. I assume the immersed boundaries don’t work well, if I make the rotors slightly elastic in order to apply the immersed boundary method, do they?

Thank you

Hi Karina,

actually, you can take the immersed boundary method (IBM) for stiff bodies using a penalty force in order to keep the body “more or less” stiff. You could have a look at this review paper. But I think that the IBM is not the best option for your needs. What about the papers by Tony Ladd? Doesn’t he write about stiff objects in the flow?


Thank you very much. I’ll read the review paper and see if I can use the IBM. I might come back later with more specific questions, but for the beginning your suggestions were of great help!

If somebody else knows existing OpenLB examples including moving obstacles, I am still interested.


Hi Karnika,

I am new member of this forum, I just started working on LBM,
I think my problem have some similarities with your problem.

It will great help if you will guide me to start from scratch.


Lattice Boltzmann with immersed boundaries is quite a hot topic, just to quote two recent papers:
JCP 227 (2008) 4486-4498 or JCP 228 (2009) 1963-1976.

If the very details of the flow field are not essential, LB is the method of choice especially in 3D, when performance issues
are the main concerns.

I’d like to implement a IB-LB coupling for solid (sherical) particles. I heared that OpenLB includes a multiblock data
structure for local refinement, which would increase the performance of a IB-LB code tremendously when the particles
are clustered or the volume faction of solid particles is low.

My question before entering into the OpenLB code would be:

  1. Is there alrady any work been done in the OpenLB community?
  2. How far is the development of the multiblock data structure and can it be dynamically cahnged during the simulation?
  3. I suppose somebody has already experimented with OpenLB and source terms? (e.g. gravity, etc…).
    a) How difficult would it be to implement the IB source terms in the solver?
    b) does OpenLB already include point location routines? (x,y,z)-> cell(i), so i can find the cell which contains point (x,y,z)

Any comments and suggestions are welcome


No, the information you got is misleading. In the current version of OpenLB, grid refinement is not implemented. If you got this information somewhere from the OpenLB documentation, could you please tell us where?

It is straightforward to include a force term in an OpenLB code, and to access individuall cells on the grid. See the example programs for more information.

Thanks for the reply. I saw a presentation on OpenLB and Multiblock, (I suppose you know this presentation :wink: )

Bernd Stahl, University of Geneva seems to work on the data structure too (OpenLB homepage).

Thus i assumed the data structure is there, at least to create a static local adapted mesh. I understand that a dynamic refinement is much more sophisticated especially under the view of performence issures and repartitioning without recreating the whole mesh domain.

Do you know anything about the development of OpenLB in this direction

Oh right, yes. Grid refinement is one of the topics we are working on most intensely, but we’re not yet at a point were it is ready for a release. And the first release with mesh refinement will certainly feature static grids only.