I’m new to LBM and i found many versions of the LBM algorithms so it got a little bit confusing. Some people place the microscopic boundary conditions after streaming (SITKI BERAK çelik Thesis, appendix), and others place it just before streaming (like in the example cylinder.m in Palabos). No one specifies why they adopted the first or the second process.
I think that what finally matters is that you should implement collision after applying the BCs to have the correct distribution functions when colliding. then you should stream them and restart the loop.
however, if you are using midway BB, this particular BC should be used IN the streaming step. (that’s how I do it)