Description

FluidX3D is the fastest and most memory efficient lattice Boltzmann CFD software, running on any GPU via OpenCL. Find the source code on GitHub.

The Lattice Boltzmann Method

- streaming (part 2/2):

f0temp(x,t) = f0(x, t)
fitemp(x,t) = f(t%2 ? i : (i%2 ? i+1 : i-1))(i%2 ? x : x-ei, t)   for   i ∈ [1, q-1]

- collision:

ρ(x,t) = (Σi fitemp(x,t)) + 1

u(x,t) = 1ρ(x,t) Σi ci fitemp(x,t)

fieq-shifted(x,t) = wi ρ · ((u°ci)2(2c4) - (u°u)(2c2) + (u°ci)c2) + wi (ρ-1)

fitemp(x, tt) = fitemp(x,t) + Ωi(fitemp(x,t), fieq-shifted(x,t), τ)

- streaming (part 1/2):

f0(x, tt) = f0temp(x, tt)
f(t%2 ? (i%2 ? i+1 : i-1) : i)(i%2 ? x+ei : x, tt) = fitemp(x, tt)   for   i ∈ [1, q-1]

Line3D on the GPU

In order to render an entire flow vector field with millions of lattice points, I rewrote my graphics engine Line3D in OpenCL. It is capable of rendering two billion lines per second. There is no faster graphics engine for primitive figures (dots, lines and circles) out on the internet.

Demo


References

 - 
Accuracy and performance of the lattice Boltzmann method with 64-bit, 32-bit, and customized 16-bit number formats. Physical Review E, (2022)
 - 
Esoteric Pull and Esoteric Push: Two Simple In-Place Streaming Schemes for the Lattice Boltzmann Method on GPUs. Computation, (2022)
 - 
Combined scientific CFD simulation and interactive raytracing with OpenCL. IWOCL'22: International Workshop on OpenCL, (2022)
 - 
Analytic Solution to the Piecewise Linear Interface Construction Problem and Its Application in Curvature Calculation for Volume-of-Fluid Simulation Codes. Computation, (2022)
 - 
Ejection of marine microplastics by raindrops: a computational and experimental study. Microplastics and Nanoplastics, (2021)
 - 
High Performance Free Surface LBM on GPUs. (Master's Thesis), (2019)