# New to CFD, Lattice Boltzmann or Navier-Stokes?

I apologize if some of my questions are naive; I am very new to computer simulations and fluid-dynamics.

I am going to start a PhD in early 2017, and I would like to bone-up on some Computational Fluid Dynamics to prepare. The PhD (and my background) is mostly physics-based analogous gravity, but there is a very hefty fluid-dynamics component to the course. Ideally, there will be theoretical components, simulations, and experiments.

I have looked into the most widely used solvers, and I stumbled onto a cfd-online wike, with a list of three different software suites: OpenFOAM, SU2, and Palabos. Since fluid dynamics will only be a portion of my PhD, and simulations a portion of a portion, I'm hoping to choose one pony and stick to it.

The problems will be primarily dealing with will be stationary and non-stationary liquid flows in ridged-walled channels (including open-channel flows with obstacles such as airfoils, and bathtub vortex problems). I am not sure whether or not the no-slip condition will be important, but measurements of vorticity and surface waves will be.

I am hoping that somebody could tell me which method would be the most efficient. I have read in another stackexchange post that the Lattice Boltzmann Equation (LBE) method can be easily parallel-ized. I have also read on reasearchgate that LBE can be more efficient than Navier-Stokes (NS) methods, but one often requires a finer-mesh.

I am also interested in which method (meaning, which of the above programs in bold) would be the easiest in which to utilize GP-GPU, and parallel GPU systems.

• Being a beginner myself, I can answer some of your questions. I am more of a code-writer than a software user. Yes, LBE is easy to parallelize and therefore you can also use it on GPU clusters and those codes could supposedly be very fast. And for the obstacles, the development of LBM-IBM(immersed boundary methods) has been on the way for a while, so that can help you. Again, this is from the POV of writing codes. If you want to stick to some software, you can check about which software allow you to be more flexible in your requirements. OpenFOAM is a very popular code, you might consider it. Commented May 30, 2016 at 2:27
• Thank you very much for your reply. Out of curiosity, why do you opt for coding this stuff yourself instead of using software libraries? Do you like to tinker with PDEs on your own, or are you required to write the code yourself? I am not sure that I would trust myself to write an error-proof PDE solver, even though I have had some training. Commented May 30, 2016 at 13:32
• Some researchers see CFD software as giant "black-boxes", especially if it is not open-source. It is often necessary to control everything in a CFD code to suit your needs rather than trying to calibrate randomly a parameter without knowing where it is involved in the code. When you are developing new algorithms, you often need to have your personal framework. You can rely on reliable libraries though to perform specific tasks (matrix inversion, linear algebra, FFT...) without any problem as those kind of library are designed to be used everywhere by everyone. Commented May 30, 2016 at 14:09

Each method has its pros and cons. LBM ans NS solvers are both efficient and reliable.

The no-slip condition may be important for physical meanings, otherwise it may be enough for you to solve Euler's equations (inviscid fluid), depending on your needs. Since you mentioned vorticity, the Navier-Stokes equation can be written in a velocity-vorticity formulation rather than the standard pressure-velocity coupling so it may be interesting for you. You did not say if you will be working in a compressible framework, that may change a lot of things if you are dealing with high or low Mach number.

About the parallelism, I can't answer for LBM but for NS, again it depends on your needs and your solver (explicit or implicit), you surely can parallelize on multiple CPU if you are familiar with this concept, but if your goal is not to spend too much time in developing your own code, then yes it may be relevant to use a software.

You can go check the book 'The Lattice Boltzmann method: Principles and Practice'

In chapter 2.4 - Outlook: Why Lattice Boltzmann?, it talks about the simplicity, efficiency, geometry and the applications in multiphase and multicomponent flows, thermal flow, sound wave, and compressible flow.

It might not appropriate to copy and paste them here. So I would suggest you download the book, either from the Springer or the Genesis:).

PS: 1. If your research is related to hydrodynamics, I would suggest Smoothed Particle Hydrodynamics (SPH). 2. Palabos did the parallelization based on CPU instead of GPU. But generally, one of the advantages of LBM, as stated by many researchers, is the ease of parallelization.