Fluid Density

Dear all

How the density of the flow, (for example 1000 kg/m^3 for water) is implemented in the equations?

Kind Regards

I too have the same questions re LBM and further I am unsure as to how to set the density difference in MCMP type flows. Can anybody elucidate this point?

I suppose you have to scale density with a reference density, rho0, say. So your ‘LB’ density might be rhoLB=rho/rho0. If the fluid is incompressible, rhoLB will always be 1. If the density may fluctuate slightly then rhoLB will be ‘close’ to 1.

The LB density is related to the LB pressure by a (somewhat non-physical) ideal equation of state, pLB=‘RT’*rho, where pLB is the LB pressure (ie in lattice units - I say ‘somewhat unphysical’ because this standard definition depends on the scaling used). ‘RT’ is the gas constant in lattice units and usually taken to be 1/3.

The dimensional pressure, p, is related to the LB pressure by an appropriate numerical scaling like


where c=dx/dt is the grid, or particle, speed (dx=space-step, dt= time-step).

You can also relate the LB pressure to the dimensionless pressure P by, for example,


where U is the characteristic velocity of the flow.

You may want to make sure you have the correct value of a non-dimensioanl number, such as the Reynolds number. This would usually involve the kinematic (nu), or dynamic (mu) viscosity. So, depending on which of these you have/need, you may have to adjust the relaxation time tau accordingly (because nu=mu/rho, and thus Re=UL/nu=rhoU*L/mu, where nu~tau/3)

Good luck!

I think I understand how to scale from the “lattice units” to physical quantities but I’m still struggling to set up this MCMP as I wish. According to this paper we have

nu = (1/3)(tau-0.5) dx^2/dt

Now I can use this to set the kinematic viscosity of a fluid by setting tau (for a given lattice) or use it to calculate what physical time a single iteration represents. I wish to simulate an air/water system so after calculating dt based on nu for water it works out that for the air (kinematic viscosity =15 @ 300K) that tau is something ridiculous like 1.8E6. What can one do to simulate these mixtures?

Also can I just check, is the “omega” from the examples the same as “tau” or is it something different?


Perhaps it’s because you’ve forgot the units and exponent of viscosity? At 300K, nu~15*10^-6 m/s^2 for air. So if you had a mesh with 101 points in every (unit) characteristic length so that dx=1/100 and wanted dt=dx^2 (diffusive scaling), ie c=10000, then tau~0.50005.This is close to the stability bound so you might want to increase the Ma number and add more points. For example, dx=1/1000, c=10. This would give tau~0.5045. If this were a single phase flow then the Re number would be large and an MRT scheme recommended to improve stability and efficiency.

Which omege are you referring to?

You are quite correct I missed the order of magnitude off (doh!). So I think the following is correct. For water phase we have nu = 1E-6 m^2/s, I have dx = 1E-4 m, and I choose tau=0.505 then using the formula above means each iteration is dt = 1.66…E-5 s of real time.

Now for the air phase I have nu, dx and dt specified so I use the same formula but this time to work out tau which gives tau = 0.575.

In the examples I’ve looked at there is a variable called omega which is passed into the ExternalMomentRegularizedBGKdynamics variable, am I right in thinking this is the relaxation time (aka tau)?

I don’t know what “ExternalMomentRegularizedBGKdynamics variable” mean (if it’s something to do with palabos or pre-written codes I can’t help as I don’t use them); but people often use omega for either the relaxation time or the relaxation frequency (1/tau).

Yes it’s from the multicomponent2d example code from the palabos library. I think it’s just tau.

Is what I said regarding the tau for MCMP correct? I’m finding that if they are too different the simulation becomes unstable, at the moment I am trying tau(water)=0.6 ==> tau(air)=2.0

If you have a question about palabos libraries then you could post it on one of the other forums on this webpage.

I don’t know much about MCMP models but what you said seems correct: dx and dt are fixed, unless you have a non-uniform mesh, so you can easily find tau from nu. I imagine large density ratios are common problems for this model, especially if its based on Shan-Chen type LBEs. There is a viscosity jump, which has to be dealt with somehow. The model is also only first order accurate in time, so will probably require a lot of points and a small dt for large viscosity differences.

I did not get my answer!

In most references, the density is calculated as:

rho=summation of particle distribution function.

But the density of the desired flow (for example 1000 kg/m^3 for water) is not included.


As mentioned above, I imagine you have to scale the density by a reference value. The density=sum(f_i) is the LB density, ie rhoLB=rho/rho0. I’m guessing your confusion is due to scaling and units…? The comments above from the two people give some information about this (and I noticed a link to a paper which I think discusses units in one of them) but if this is not making things any clearer then I would suggest you try and have a look for more information about LB (or computational) and non-dimensional scalings. Indeed, this seems to be a common problem. There are resources and links on these webpages as well as in papers.If you have not met units, scaling and non-dimensioanlisation in a theoretical context before then you should find relevant information in undergraduate physics and applied maths text books (perhaps not about LB specifically, but the principles are really the same).

Hello pleb01,
I was struggling with unit conversion and defining the density. I briefly understood your explanation but could you please explain more as you stated

What does it mean characteristic velocity? How can you define it? Is it the maximum physical velocity of fluid ? How does it affect other parameters, i.e relaxation time, Reynold number, density conversion?
Thank you

it is up to you to chose the characteristic velocity. It can be the maximal value, the mean value, the inlet velocity, etc. Usually you pick a velocity that is easy to impose. This is the velocity you will use to define the non-dimensional quantities of your flow, so it’s also the value one uses in the Reynolds number.

You may want to read the chapter 7 of: https://www.springer.com/gp/book/9783319446479

1 Like