guo force initial conditions


Using the Guo (2002) discretization of forces the fluid and equilibrium velocity are given by:

rho*v= sum (e[sub]i[/sub]f[sub]i[/sub]) + delta t/2 * F

When I want to set initial conditions to v = 0 for example do I have to set the equilibrium so that the first moment is:

sum(e[sub]i[/sub]f[sub]i[/sub]) = - delta t/2 * F or sum(e[sub]i[/sub]f[sub]i[/sub]) = 0 ?

Thank you,


Dear Jensenb

Are you initializing a time-dependent flow?

If so, you have to initialize both the equilibrium (feq) and the non-equilibrium (fneq) part of the distribution functions. The equilibrium part is initialize by simply introducing the (known) density and velocity fields at t=0 in feq. The non-equilibrium part is constructed by including the flow strain-rate information at t=0 plus the force term, F. This is explained by the fact that F enters Chapman-Enskog analysis at 1st order. So F only affects f(neq).

Nevetheless, if your flow is steady you just have to initialize feq with u,v and rho and then set f=feq. If the problem is well-posed you will get to the steady-state solution.

Good luck



Hi guys,

That’s quite interesting thing and discussion. Goncalo, have you tried to do proper initialization as you described?

From my perspective and experience, Goncalo is right about initialization. I tried just to play with initialization with 0 velocity and shifted by force. The former showed better results. However, I’ve never done the proper initialization procedure.

Just a few simple calculations towards it (we neglect time dependency for initialization):

\partial_{\alpha} c_{i\alpha}f_i^{(0)}=-f_i^{(1)}/\tau +F_i
f_i^{(1)}=\tau( F_i -\partial_{\alpha} c_{i\alpha} f_i^{(0)})

f_i^{(0)} is represented through zero macroscopic velocity (particular example) therefore f_i^{(0)}=w_i \rho
Therefore \partial_{\alpha} c_{i\alpha} \rho as far as initial density is taken uniform becomes 0 as well.

Therefore the non-equilibrium part is f_i^{(1)}=\tau F_i. In case of Guo term is something like \tau w_i(1-1(2\tau))(3F_{\alpha} c_{i\alpha}+…)

If we take right now summation as \sum_i{f_i c_{i\alpha}}=\sum_i{f^(0)i c{i\alpha}}+\epsilon \sum_i{f^{(1)}c_{i\alpha}}

The term \sum_i{f^{(0)}i c{i\alpha}} = \rho u^macroscopic =0
The term \sum_i \sum_i{f_i^{1} c_{i\alpha}}=w_i (\tau - 1/2) F_{\alpha})

Therefore the contribution will be like that \sum_i f_i c_{i\alpha} = \rho u^m + w_i (\tau -1/2) F_{\alpha} = w_i (\tau-1/2) F_{\alpha}

It’s close to initialization proposed by Jensenb but not exactly if everything is done properly.

Hopefully it will help,

Dear Alex,

this is a most interesting discussion, especially because I have dealt with this point recently for my thesis.
I believe that your analysis is not correct. You assume that the time dependence can be ignored. This is obviously not true since the force will lead to an acceleration. Therefore, one has to start with

(\partial_t + c_{i \alpha} \partial_\alpha) f_i^0 = - f_i^1 / \tau + F_i

I have not checked it for the particular case of initially zero velocity (but not zero acceleration!), but the result should be the one Guo proposed.


Dear Alex and Timm

Really nice discussion indeed.

I used the initialization procedure, previously posted, for two simple benchmarks: a Wormesly flow and a Taylor-Green vortex flow. In both cases, the initial velocity field was not only different from zero but also spatially non-uniform. Therefore, f_i^(1) had to consider the strain-rate information. Furthermore, since the momentum source term F_i is \epsilon^1 order it was also considered in the f_i^(1), more or less like you did in your post Alex.

I think the question here is: how the inclusion of F_i in f_i^(1) affects the proper initialization procedure?

To be honest I do not know a definite answer. If you choose to follow the Chapman-Enskog expressions I know for sure that you will be playing on safe grounds and that is generally the most sensible thing to do. :stuck_out_tongue:

Yet, I did some tests without even initializing the f_i^(1) contribution at all, i.e. f_i^(neq) (x,t=0)=0, and only a few time steps after my LB velocity solution was reasonably matching the expected hydrodynamic solution.

Timm raised the question of oscillations in the LB solution introduced by a hydrodynamically inconsistent initialization. That makes total sense! However, I did not study that.

The inclusion of body forces in LB is in my opinion still a controversial issue because it affects several aspects of the LB scheme. It affects the bulk hydrodynamic solution, the boundary conditions construction and also introduces additional discretisation errors when the hydrodynamic body force is not exactly evaluated by the trapezoidal method, or any second-order quadrature scheme. What has the major impact over the final solution accuracy? I do not know. Yet, I insist, respecting Chapman-Enskog at least ensures that our model accuracy matches Navier-Stokes up to second order.

Finally, Timm commented about the physical significance of neglecting time in the initialization procedure. When initializing a mathematical problem, in case our initial solution is not known we have to solve for a time-independent problem to get it, right? Hence I think Alex’s reasoning is valid. Don’t you think so Timm?




I do not agree with your last paragraph. One cannot just generally neglect the fact that the equilibrium populations change in time. The point is that the initial solution is known (zero velocity, constant density, and finite force). From this, the temporal change of the populations naturally emerges if one sticks to the results from the Chapman-Enskog expansion. I think that everything is self-consistent, even if one does not assume that the populations do not change in time.

On the other hand, I also observed that details of the initialization do not seem to be so important. I initialized Taylor vortex flow without non-equilibrium at all, and the results were not really bad. It is much more important to initialize the correct equilibrium populations.


Dear Timm and Goncalo,

I am so happy to return today on the forum and see your answers. It’s just a pleasure, indeed.

First of all, one day I wanted to study this problem more carefully but haven’t found people to do it with me since I’m busy. So I offer you both to share our experience in one document and hopefully it will be nice work out of it :slight_smile: Just drop me email if you are interested and I will send some results.

The second thing - I agree with Timm that initialization doesn’t matter much but only in the steady state. For time-dependent problem it matters. Of course not as the equilibrium function but on smaller scales. I invented one time-dependent test to try the procedures on.

The third thing is the inclusion of the partial time derivative in the CE analysis. Let’s think about initialization - we need to impose some macroscopic variables (which dictate us the initial distribution functions) and we don’t know anything about time dependency (because it’s the property of the PDE). Speaking philosophically, suppose we need to include time dependancy then we need to include the velocities time derivatives as well. In this case the solution should be known before the initialization and we don’t need to use LBM solver to solve PDE. Moreover, people in some papers do not include time derivatives (though never explain why).

The fourth thing - I really want to try this paper in practice - Consistent initial conditions for lattice Boltzmann simulations by Renwei Mei, Li-Shi Luo, Pierre Lallemand and Dominique d’Humieres.

Let me know what you think guys :slight_smile:

In any case pleasure to discuss this problem,

Hello again Alex and Timm,

@1 – I agree. These discussions are really a pleasure. In fact, most of them end up being more instructive than some papers :slight_smile:
I am really really short on time. My PhD dead line is in July and I am not even close to finish it :frowning:
Yet, in case you are interested I can manage to find some time for sharing with you some of my experiments and the corresponding results. I believe we all will learn from each other experiences. You have my email, so please fell free to contact me whenever you want :slight_smile:

@2 – Yes, we all agree on that: when solving a time-dependent problem the initialization has only to ensure that the numerical scheme converges to the steady state. In the fact, the word initialization is misleading here.

@3 – This conducts me to point 3. The traditional LB scheme is by construction time-dependent. Yet, when solving for a time-independent hydrodynamic solution the method behaves as a “fake transient” scheme! Chapman-Enskog analysis is established on physical grounds. Therefore, when our hydrodynamic solution does not depend on time it does not make sense to account for time-dependencies in our physical solution!

@4 - An initial condition of a time-dependent problem is a field that does not dependent on time. (This statement is quite redundant I admit… :P). When such an initial condition is not known, a way to find it may be to solve a new related problem whose time-independent solution is the initial condition of the original problem. That is the idea of the work of Renwei Mei, Li-Shi Luo, Pierre Lallemand and Dominique d’Humieres. They solve a time-independent convection-diffusion problem to obtain the unknown initial condition of the time-independent hydrodynamic problem of interest. I tested this method but found it quite inefficient. The computational time to obtain the initial condition was about the same order of magnitude (or sometimes even longer) than that needed to solve the time-dependent hydrodynamic problem.
Points 3 and 4 were the basis of my previous post.
I am glad we are having this discussion.



Hi Goncalo,

At least one person tried to do this procedure :slight_smile: Sent you email.


Well, this is fun.

Okay, let me explain it like this: Of course, a snapshot in time (at t = 0, say) is not time-dependent. But the underlying LBM equations are generally time-dependent. For that reason, one cannot just say that the time derivative in the LBM equation does not exist. It does always formally exist, but its contribution may vanish.
However, in the present case, it will not vanish. Why?
Imagine you have a zero-velocity flow which you accelerate at the very beginning. This still means that at t = 0 the flow has velocity zero everywhere. That is for sure. Yet, the acceleration at time t = 0 is not zero. The good thing is: You do not have to know how the velocity changes in this very moment because the LBM algorithm does it for you! This is exactly the point why you cannot say that the time derivatives are zero.
On the other hand, if you neglect the time derivative at t = 0, the force will act “later” than at t = 0. For this reason I actually believe that the difference in the algorithms (setting time derivative equal to zero or not) will eventually only lead to a time-shift of the solutions by half a time step or so. At the end, after many time steps, you will not see any significant difference.


Dear Timm,

That’s getting more interesting :slight_smile: Especially your comment about half time difference. Timm, I understand your point and would like to test it on real problem, where the solution is known 100%. Will write you email. Basically, my point is that the PDE initial condition do not depend on the time characteristics of PDE. Your point is that for LBM to be properly initialized we need to include LBE time dependency. Both of points are understandable. My suggestion is to try real numerical experiments with known analytical solutions :slight_smile: