When I simulated the Oil/Water flow with ShanChen multicomponent model, I compiled my own codes based on the example ones “rayleighTaylror2d”. In the “getResults” part, SuperLatticeVelocity2D was used to write the component velocity. However, when I changed the input parameter from sLatticeOne to sLatticeTwo, the output velocity shown in paraview didnot change. Then I tried to check the souce code in openlb. I found the ForcedBGKdynamics or ForcedShanchendynamics was used for the bulkdynamic, where the getExternalVelocityMonenta was used. The common velocity shared by both components was stored in the descriptos::ExternalField::velocityBeginsAt (version olb-1.2) or descriptors::VELOCITY(version olb-1.4). In the ExternalVelocityMomenta, the function computeU used this common velocity as component velocity, but not compute the velocity via population.
Furthermore, whether the ForcedBGKdynamics use Guo’s forceing scheme. If it is ture, the barycentric velocity but not the common velocity should be used.