[Solved] 3D developed square channel flow + force

Hello users!

I am currently having a problem where the solution converges to a steady-state, but artificial velocities have been generated in the cross-section of the 3D channel. There should be no flow in that plane.

The geometry is 34 x 34 x 3.
The walls are no slip for velocity.
The force is applied in z-direction: F=(0,0,Fz)
The Neumann condition of zero is used in the flow direction (df/dz=0) making it really a 2D case.
It gives the exact (err<1%) velocity profile as compared to the analytical solution.

However, it also gives artificial velocities in the xy-plane.


The density variations are on the same order as the artificial velocity, and the streamlines show the closed circulations in the plane.

The artificial velocities are proportional to the force squared: velocities ~ force[sup]2[/sup].
They are linearly proportional to the viscosity: velocities ~ viscosity.
They are proportional to the grid size cubed: velocities ~ channel width[sup]3[/sup].

I have tried two collision schemes: SRT and TRT.
I have tried two forcing schemes: He-Shan-Doolen and Luo’s.
I have tried two boundary condition methods: bounce-back, half-way bounce-back.
All the combinations give me the artificial velocities!

The questions are:
If you replicated the problem, would you also get those artificial velocities?
Where are they coming from?
Can I get rid of them?
If yes, How to get rid of them?

I hope somebody can clear this mystery for me :slight_smile:


I came across a paper “Truncation errors and the rotational invariance of three-dimensional lattice models in the lattice Boltzmann method” by Goncalo Silva and Viriato Semiao dated at 2014 that explains the problems I was experiencing.

[size=small]Lattice generated spurious currents in the Poiseuille flow at Re = 10 (Figure from the paper above)[/size]

In short, it is to do with isotropy of non-linear truncation errors, and for reduced 3D lattices, such as D3Q15 and D3Q19 (used in my simulations) those errors are anisotropic.

To answer the above questions:

If you replicated the problem, would you also get those artificial velocities?

The spurious currents would appear in D3Q15 and D3Q19 models, but not in D3Q27.

Where are they coming from?

They come from the non-linear truncation errors in reduced 3D models.

Can I get rid of them?

Apparently, yes.

How to get rid of them?

Apparently, by using the complete 3D cubic lattice D3Q27.

I hope this this can be helpful.


Thank you, Ivars, very much.This very useful.