Skip to content

Reply To: Not clear which version of Shan Chen model is implemented

OpenLB – Open Source Lattice Boltzmann Code Forums on OpenLB Bug Reports Not clear which version of Shan Chen model is implemented Reply To: Not clear which version of Shan Chen model is implemented

#8435
danial
Participant

Hi, in the ShanChanForcedProcessor, the part that divides the force by density

cellB.template setField<descriptors::FORCE>(externalPartnerForce
        - g*rhoBlockContribution/rhoField[1]);

I think the division by density is not needed. If we wanted to directly update the velocity like the Shan-Chen paper that uses u_phase=u_total+tau*F_ext/rho, yes the division by rho is necessary (Kruger p241, p378), but since we are simply passing the force to whatever forcing scheme is being used (Guo or ShanChen) then this division isn’t necessary. Yes the interface will become more diffuse but the critical value of G=-4 (Kruger P375) must be used instead of 3 (I have to do some tests to verify this).

The new MCMPForcedPostProcessor is including the external force in the shared velocity
uTot = (u_sum + totalForce/2.) / rhoTot + externalForce1/2 directly but the old ShanChen just uses rhoTot = rhoField[0]*omega1+ rhoField[1]*omega2 but that one is based on a newer modern paper so I was trying to see how the new example works, but I don’t see any change during the simulation for the water column for waterAirflatInterface2d, I must have messed up a setting somewhere but I’ll have to double check.

Bytheway thank you guys for developing OpenLB and sharing it for free and providing this forum so I can also see the issues encountered by others. Cheers.