Order of Collision and Zou-He boundary condition


I am trying to apply the Zou-He velocity boundary condition in my simulation. However, I noticed two different versions, generated using createZouHeBoundaryCondition2D() and createDynamicsBasedZouHeBoundaryCondition2D() correspondingly. I realized that the former one wraps the boundary condition into a functional, which is processed after the collision (before streaming), and the latter one calculates the boundary condition through completePopulations() that is executed before the collision.

My main question is how the order of collision and Zou-He boundary condition matters in the simulation, and which one should we use in general?

Thank you.


I made a mistake. the boundary condition generated using createZouHeBoundaryCondition2D() will be executed after the streaming. This way, it should be equivalent to the createDynamicsBasedZouHeBoundaryCondition2D() if no other operations/boundary conditions are added.