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
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.