We have a flow that is dominated by adhesion forces from the substrate and surface tension from the free surface. The material is nearly solid and at rest first, and gets a bit less solid by heating. So we have a creeping flow, which can be modeled by Stokes equation.

Because of the difficulties in simulating the free surface and the surface tension it generates, somebody proposed to use a lattice Boltzmann approach for simulation. However it's unclear to me whether the lattice Boltzmann scheme can be used at all for an incompressible Stokes flow, and even if it should be possible to use it, whether it would be grossly inefficient. Is my gut-feeling about lattice Boltzmann correct, or do I actually undervalue its potential for that type of problem?

  • $\begingroup$ What is the scale of your problem? How large is the domain and how complex is the geometry? $\endgroup$ – Paul May 3 '12 at 19:06
  • $\begingroup$ The domain is 3d, the extend in z-direction is rather small, the extend in x/y-direction is larger and contains 2-5 valley/hill like structures. The substrate is normally flat, and the structures are quite smooth. To summarize, the domain is not small, but the geometry is not complex (but "general smooth"). Note however that the question is about the applicability of lattice Boltzmann to incompressible Stokes flow, which should have an answer quite independent of the details of my problem. $\endgroup$ – Thomas Klimpel May 3 '12 at 19:57
  • $\begingroup$ How many different fluid phases are you simulating? $\endgroup$ – Paul May 3 '12 at 23:01
  • $\begingroup$ @Paul Basically just one phase, because the air/vacuum is not really simulated. There might be some solvent, and consequently smoothly varying material parameters, but the solvent itself is not treated as a fluid. $\endgroup$ – Thomas Klimpel May 4 '12 at 14:54

As a matter of general observation, it is certainly true than one can solve a great many problems using the Lattice Boltzmann Method. Specifically, since they have been used for the Navier-Stokes equations, they will also be applicable to the Stokes equations, much as for most any other flow problem.

That said, it is also true that LBMs are generally very very slow. There is little one can do about it if you have, say, a non-thermal equilibrium dilute gas flow problem for which there may not be any other efficient solver. But it is exceptionally silly to use such an expensive method for a problem for which there are any number of exceptionally efficient methods around, such as multigrid-preconditioned higher-order finite element discretizations of the Stokes problem.

So, yes: it's possible. And, no: it's not a good idea. :-)

  • $\begingroup$ Not that I would ever suggest to use LBM where FEM could be applied, but are you comparing unpreconditioned LBM to preconditioned FEM here? I am not an expert on preconditioning for LBM, but from what I heard, you can accelerate plain LBM by orders of magnitude, e.g. in a multigrid fashion. $\endgroup$ – Christian Waluga May 12 '14 at 7:08
  • $\begingroup$ That's quite possible. For example, I imagine you can precondition the LBM by a FEM discretization for Stokes. But then, why would you want to do that? If the FEM gives you a solution for Stokes, why not just use it? $\endgroup$ – Wolfgang Bangerth May 27 '14 at 22:41
  • $\begingroup$ @WolfgangBangerth I am not sure why you consider that LBM is significantly slower? It can be slower if you wish to obtain steady-state results (because then you have to calculate a full transient flow for no reason), but for transient flows, LBM is relatively fast. After all, it is nothing more than an explicit finite difference scheme on a Cartesian grid at CFL=1, which makes it really easy to parallelize. Since there is no linear system of equation to assemble or to solve, this is generally extremely efficient/fast ( and there is no pre-conditioning...) $\endgroup$ – BlaB Apr 28 '17 at 13:57
  • $\begingroup$ @BlaisB -- but surely you will agree that solving the stationary Stokes equation with an explicit time stepping scheme to steady state is significantly slower than using an implicit finite element solver using higher order elements. $\endgroup$ – Wolfgang Bangerth Apr 28 '17 at 23:44
  • $\begingroup$ @WolfgangBangerth Indeed, I fully agree with that statement. However, it is easier to write a LBM code to solve Stokes flow in a complex geometry than it is to write a good parallel FEM code that does the same thing. I know this point is rendered moot by the use of Open Source FEM codes (i.e DEALII), but generally that is an argument that LBM people would put forward. Like I said previously, you lose in terms of computational time by having to solve the transient flow, especially in open geometries, since they require long convergence time. $\endgroup$ – BlaB May 1 '17 at 12:10

Answer to the question:

Since LBMs model the Navier-Stokes equation, you can achieve incompressible Stokes flow by simply making sure $\mathrm{Re}=UL/\nu\ll1$ and keeping $U\ll1$. Since a stability limit of LBMs already limits $\mathrm{Ma}=U/c_s\sim0.1$ this should not be a problem. LBMs are considered pseudo-compressible, but since $\Delta\rho \sim O\left(\mathrm{Ma}^2\right)$, the fluctuations will be minor and you will have quasi-incompressibility. Now the stability limit may seem restrictive but understand this is in lattice units, in dimensional units the velocities may be as any desired value as long as the Reynolds number is the same in lattice units as in dimensional units.

If you need to model different phases i suggest looking into the pseudo-potential method or free-energy based methods.

Now as to if you should use LBMs or FEM for your problem, I think only you can really say after weighing the (dis)advantages of each method. Many times people pick the method they are most comfortable with and will tend to justify it with pseudo-scientific reasons about performance, ease of implementation, popularity, etc. Often times it become a slightly 'religious' debate between LBM users and other conventional CFD users. My advice is: I would suggest finding an opensource code which has examples resembling your problem which you can easily modify and go from there, learning the method it uses as you use it.

As a reply to the answer by @WolfgangBangerth:

That said, it is also true that LBMs are generally very very slow


So, yes: it's possible. And, no: it's not a good idea. :-)

In my opinion, this answer sounds like the poster has heard of LBMs before but never used the methods. As such i don't think he is in a position to give this advice (let alone have it as the accepted answer).

It is well known that LBMs are some of the most efficient explicit second-order accurate methods around. The algorithm is highly localized allowing for very efficient parallelization (see Sailfish CFD); LBMs are generally very very fast!. Another post discusses it here.

Granted it has disadvantages too (high memory requirement, convoluted boundary conditions, difficult to understand connection with 'real-world' equations, etc to name a few), but which method doesn't. I challenge you to give me an example in which equal situations LBM underperforms significantly compared to other methods.

  • $\begingroup$ See also ASL and this post (see the perormance link there). $\endgroup$ – user1876484 Apr 14 '16 at 15:12
  • 1
    $\begingroup$ As WolfgangBangerth mentioned, in LBM you will need to solve the full transient flow. If what you are interested is the steady-state Stokes flow, then there are many situations where LBM will underperform classical FEM method, especially since you are stuck with a diffusive scaling for the timestep as you refine ($\Delta t \propto \Delta x^5$ in 3D). FEM and FVM methods have evolved significantly since the last decades, simulations with 1Billion or 10Billions elements in steady-state are not as challenging as they used to be. $\endgroup$ – BlaB May 1 '17 at 12:13
  • $\begingroup$ As someone that use LBM for almost three years and used FEM/FVM for almost 10 years, I would say LBM is only a good option for very very small Reynolds numbers. You said: "in dimensional units the velocities may be as any desired value as long as the Reynolds number is the same in lattice units as in dimensional units." so what?! Our main concern is to use it for medium range Reynolds numbers of 500 to 1000 and honestly I would say LBM really sucks, specially for simulating the flow in unstructured grids. I agree that hypothetically LBM is easier to implement (don't believe it lol...) $\endgroup$ – Alone Programmer Jun 28 '19 at 22:25
  • $\begingroup$ But, for a given geometry and a given Reynolds number, LBM needs a extremely larger number of mesh (LBM people call it lattice point, sigh crazy people...) and extremely low time step which makes LBM somewhat impractical or at least it would need a lot of unnecessary resources such as higher number of nodes, cores, storage, etc. So, in my conclusion, LBM is great for physicists that study fluid dynamics for really structured simple geometries and in a very small Reynolds numbers. Otherwise, any sane guy must use FEM to solve a real world or an engineering problem. $\endgroup$ – Alone Programmer Jun 28 '19 at 22:28

A (very) quick literature review shows that people do use it for low Reynolds number and creeping incompressible flows. See this paper from JFM and this. The second paper shows a range of Reynolds numbers and indicates that the results match well between LBM and FVM with no mention of inefficiencies anywhere in the Reynolds number spectrum.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.