collideAndStream(); not equal to collide(); stream(); ??


I would like to calculate some values from the post collision state. Therefore I want to call the functions separately. Instead of:


I use:


The simulation then shows a different behavior. Shouldn’t both deliver the same results?
I am using the newest version of palabos.
Thank you for your help!!!


Well, i know how does feel that you wirte one post and anyone helps you, so here is my contribition:

1st i think that you should read de manual or de user guide, because there is where i found the answer before you asked it:

Palabos User Guide
Release 1.0 r1
Copyright © 2011 FlowKit Ltd

Page: 45

“The collision step (Step 2) is executed by invoking the method lattice.collide(), and the streaming step (Step 3) is called with the method These two methods can also be combined into a single call to lattice.collideAndStream(). On most hardware platforms, the collideAndStream() version is computationally more efficient, because it is executed by traveling through the memory of the lattice only once.
The data processors can be executed manually by calling the method lattice.executeInternalProcessors(), as explained in Section Executing, integrating, and wrapping up data-processing functionals. This is however rarely done, because the data processors are also executed automatically at the end of the function stream() and the function collideAndStream(). If you’d like to call stream() or collideAndStream without having the data processors executed, for example for debugging a program, you can use the domain-version of these functions, for example

Copy paste.

Thank you for your reply. I have read the User manual before and as I understand, it shouldn’t make a difference. But in my code I observed, that it does. I will post a simplified version of it next week.