Hello Tim

Thank you for helping me once more

You say that my indexes are mistaken and that instead of k it should be j. For me the indexes that you said make more sense than those I wrote however, reporting to Guo’s article, the way to find a proper expression for F(i) is based on a power series expansion of the kind :

F(i)=w(i)*[A+B(j)*e(i,j)/cs^2+C(j,k)*e(i,j)**e(i,k)/(2*cs^4)-C(j,k)/(2cs^2)]

Using the Chapman-Enskog expansion one finds that A=0, B(j)=(1-1/(2*tau))**F(j) and C(j,k)=(1-1/(2*tau))(u(j)*F(k)+u(k)*F(j)).

Gathering all terms one has:

F(i)=(1-1/(2*tau))*w(i)*[F(j)*e(i,j)/cs^2+(u(j)*F(k)+u(k)*F(j))*e(i,j)*e(i,k)/(2*cs^4)-(u(j)*F(k)+u(k)*F(j))/(2*cs^2)]

Since u(j)*F(k)+u(k)*F(j) is symmetric one can write it as: 2*u(k)*F(j) (or as 2*u(j)*F(k) but the former is more useful), so:

F(i)=(1-1/(2*tau))*w(i)*[F(j)*e(i,j)/cs^2+(2*u(k)*F(j))*e(i,j)**e(i,k)/(2*cs^4)-(2u(k)*F(j))/(2*cs^2)]

which yields, putting in evidence F(j):

F(i)=(1-1/(2*tau))*w(i)*[(e(i,j)-u(k))/cs^2+(u(k)*e(i,k))*e(i,j)/(cs^4)]*F(j)

In practice however you and I use the same expression so the fact that it should be a k or a j is not problematic, regardless results are logical.

The benchmark flow test that I performed was as follows:

Using He and Zou boundary conditions (Pressure inlet and oulet for inlet and outlet boundaries) and (Zero velocity for walls) I simulated a Poiseuille flow of the form:

niu*d2u/dy2=dp/dx-rho*g(x) which yields a velocity profile as: u(y)=-1/(2*niu)*[dp/dx-rho*g(x)]*y*(y-LY); where L is the channel width.

So then I defined g(x)=A*(x/LX)^n, where n is the order of the polynomial, LX is the channel length and A is a constant easily determined from a momentum balance.

I used n=0,1,2 and 3 and compared the result provided by Guo’s model against F(i)=w(i)*e(i,j)*F(j)/cs^2. The result is that Guo’s model is better only in the case of n=0, i.e. the acceleration is constant and the force only changes because rho changes.

Then I thought: “Since Guo’s model uses a different definition of the equilibrium and fluid velocity, i.e. v(j)=Sum(f(i)*e(i,j))/rho+g(j)/2, maybe I am messing up here”.

So I used Luo’s definition of the body force which is almost equal to Guo’s i.e.: F(i)=*w(i)*[(e(i,j)-u(k))/cs^2+(u(k)*e(i,k))*e(i,j)/(cs^4)]*F(j) but the velocity is simply given by v(j)=Sum(f(i)*e(i,j))/rho.

From the Chapman-Enskog expansion one can see (for instance in Guo’s paper) that for tau=1 Luo’s body force and F(i)=w(i)*e(i,j)*F(j)/cs^2 body force yield exactly the same macroscopic equations. So if I compare them both against a Navier-Stokes analytical solution the error should be the same. I did that and the error is not the same

That lead me to the conclusion that [(e(i,j)-u(k))/cs^2+(u(k)*e(i,k))*e(i,j)/(cs^4)]*F(j) was not well written.

Did you checked your code with the Guo body force model against other models? Did it always yield better results?

By the way what boundary conditions did you use? I believe that because of the different velocity definition which incorporates the force, the bounceback boundary conditions cannot be used in Guo’s model!!

Thanks for your help Tim.

Regards

Goncalo