From one compressible Navier-Stokes formulation to another


First I should introduce myself. My name is Erlend Magnus Viggen, and I’m writing my master’s thesis this semester on “The lattice Boltzmann method with applications in acoustics”. In short, I’m going to write an introduction to the method and see how well acoustics simulations can be performed with it. I might be posting a few questions here from time to time.

I’ve been through the entire derivation in sections 2.1 - 2.3 in Jonas Lätt’s excellent thesis, where he derives the compressible Navier-Stokes equation (although with a bulk velocity of zero) from the standard lattice Boltzmann dynamics. But the formulation in his dissertation of the compressible Navier-Stokes equation is somewhat different from the formulation I’ve seen most other places (for instance Wikipedia and a friend’s continuum dynamics textbook).

I would like to show that these formulations are equivalent. I’m trying to rewrite Lätt’s formulation to show this, but I’m having some trouble along the way. I’ve tried to explain what I’ve done in this page on the community wiki. Could anyone help me with this?

Erlend M Viggen

Welcome to the forum!

Actually, you will find that the Navier-Stokes equations and the macroscopic lattice Boltzmann equations are not equivalent. But they are very similar. In other words: The LBM solves another equation than the Navier-Stokes equation. However, at sufficiently small Mach numbers and large lattice resolutions, the LB equation and the NS equations are asymptotically equivalent. I recommend that you read some more literature on this topic, because it takes some time to understand all the basic concepts of LBM.
Just look around a bit in the forum!

Good luck,

Thanks for the reply, but I think you misunderstand me. What I’m asking is strictly speaking not related to the lattice Boltzmann method, but simply a question of showing that one formulation of the compressible Navier-Stokes equation is equivalent to another.

Lätt derives in his thesis that the dynamics of the lattice Boltzmann method has a good correspondence with his formulation of the compressible Navier-Stokes equation, if one takes certain reasonable assumptions of weak compression (for instance neglecting epsilon[sup]3[/sup] terms and O(Ma[sup]3[/sup]) terms). I’ve spent a lot of time recently meticulously going through this derivation myself, so I have a certain understanding of it.

What puzzles me is that this formulation of the compressible Navier-Stokes equation is quite dissimilar from the other formulations that I’ve seen. I’ve tried to show that these formulations are equivalent, but I get some extra terms and some terms that don’t match up properly. My attempted derivation can, as mentioned, be found here. Please ask me if it is unclear.


I did went through the complete derivation you did, but you thing that is sure is that you shoul not rewrite div(rho u u) the way you did. Rather rewrite

div(rho u u)=rho (u,grad) u + u div(rho u),

where (.,.) is the scalar product. Then p_t(rho u) = rho p_t u + u p_t rho, (p_t is the partial derivative with respect to time).

Then you have

p_t(rho u) + div(rho u u) = (p_t rho + div(rho u)) u + rho(p_t u + (u,grad) u),

and the first term above is null due to the mass conservation.

I hope it helps you bit.


Thanks Orestis, that helps a lot. I’ve updated the wiki page to reflect the changes you suggested. There are only two problems remaining now.

The first is that the (rho nu + rho nu[sub]b[/sub]) […] term should be (rho nu / 3 + rho nu[sub]b[/sub]) […] according to the standard formulation. I’m really at a loss with this one.

The second is that the very last term should not be there. Is it possible to neglect it because it is a small number (nu[sub]b[/sub]) multiplied with an O(Ma[sup]2[/sup]) term? (I’m assuming here that div(u) is O(Ma), and I know that grad(rho) is O(Ma), or actually O(Ma[sup]2[/sup]) for low excursions.) Still, this would be an unfortunate assumption of weak compressibility and low bulk viscosity, which ideally shouldn’t be necessary.

If we figure this out, I’ll clean up and rewrite the wiki page so that it can be used as a tutorial for other people wondering how to match these two compressible NS formulations.

Hello again,

another thing that I thing is wrong in your reasoning is that you do not assume that the fluid is Newtonian in Latt’s formulation. In order to have equivalence between formulations you need to do this assumption. Therefore the term proportional to grad(rho) (the last one) should not appear, since you just say rho * nu_b=mu_p=cte and you are in business.

Then probably in Lätt’s thesis the nu’=n_p*numerical constant (multiplied or divided by a number).

I think that doing this carefully you get everything you want.

Good luck,

Thanks again for the help. I got rid of the last extra term doing as you suggested: Setting
nu rho = mu
and assuming mu constant. I’ve updated this in the wiki page now.

I’ve got to admit that I have some qualms doing this - we take a quantity that varies with rho and rewrite it as a constant. That’s strictly speaking only correct if nu varies inversely with rho. Quoting Wikipedia: “For a Newtonian fluid, the viscosity, by definition, depends only on temperature and pressure”. Pressure is, of course, a function of particle density, so the dynamic viscosity mu is apparently supposed to vary with density. But I suppose the assumption we did is justifiable if this variance is not linear with the density.

Now, about the mysterious missing fraction. I don’t get how this (mu + mu_b) factor can become (mu/3 + mu_b) in any way when mu is scaled correctly. Since the Laplacian term mu del^2 u is correct, mu is apparently scaled correctly. Lätt’s thesis says that nu_b = 2/3 * nu for a simplified gas, but I don’t see how that helps us here. We could probably scale mu_b arbitrarily, but it’s mu that’s the problem. Maybe I misunderstood what you meant?

I’ve realized some things. The first was that I had made a grievous sign error. (mu + mu_b) should be (mu - mu_b). The other thing was that I realized that we shouldn’t assume that the constants mu and mu_b in Lätt’s formulation match with those in the standard formulation, so I labeled the constants mu_1 and mu_2 respectively instead.

I show in the wiki page that for the two formulations to match up, mu_1 = mu, while mu_2 = 2 mu / 3 - mu_b. Then we get a perfect match between the two formulations.

This assumption of the meaning of mu_2 clashes with that of the thesis, which states that it does directly equal the bulk viscosity. Have I made an error?


The algebra you went through is pretty impressive! And sigh, I knew I would be punished one day for being sloppy :wink:

I think that I agree with your conclusions: the parameter I call “bulk viscosity” in the thesis is not the same as the bulk viscosity defined in the Wikipedia entry. To tell the truth, I don’t really know which definition of the bulk viscosity is most widely accepted, so Wikipedia is probably right.

The important thing here is that with the original BGK model, the stress tensor tau is directly proportional to the strain rate S=1/2(grad U + grad U’):

tau = 2 mu S.

If however you include Paul Dellar’s correction term (Ref. 22 in the thesis), you get an additional parameter in front of the divergence of u:

tau = -lambda div(u) I + 2 mu S.

In the thesis, I simply call lambda bulk viscosity, but that’s probably inaccurate. As you rightfully point out, the comparison with the definition on Wikipedia yields

mu/3 + mu^v = -lambda + mu.

I’m not sure what Timm means when he says that lattice Boltzmann is not exactly equivalent to Navier-Stokes; whether he hints at the fact that lattice Boltzmann can go beyond Navier-Stokes and solve high Knudsen number flows, or if he means that lattice Boltzmann is always compressible, and in order to get the incompressible N-S equations, you need to run in a low Mach number regime (i.e. use lattice Boltzmann as a quasi-compressible solver).

Anyway, as the Chapman-Enskog expansion shows, the dynamics solved by lattice Boltzmann equation is fully compatible with the commonly used compressible N-S equations, if you are a little bit careful:

Great! Thanks a lot for the reply, and for pointing me towards the Paul J. Dellar paper.

Dellar’s paper confirms what we’ve found out here. It has a compressible Navier-Stokes formulation almost identical to yours, but defines mu_b directly in the deviatoric stress. Comparing the viscosity definitions, we see that
mu_b - 2/3 mu = - lambda, which corresponds exactly to what we found.

There are apparently several definitions of the bulk viscosity. Dellar talks about this in his paper, saying that some define the bulk viscosity like in the Wikipedia article, while others define it like you did (though apparently with the opposite sign). By the way, I can recommend reading at least the introductiory chapter of Dellar’s paper to anyone else who might be following this thread. Some of it is very relevant for what we’re discussing here.

I think this problem is pretty much resolved now. I’m going to finish up the wiki article sometime in the next couple of days, so that it’s more like a tutorial. Thanks again, everyone!