CFD timelapse of wind over city @ProjectPhysX
CFD timelapse of wind over city  @ProjectPhysX
Uploaded October 2022 | Updated September 2026, 2 weeks ago
FluidX3D source code: github.com/ProjectPhysX/FluidX3D

Timelapse: 1km/h wind blowing over a city for about an hour, simulated with FluidX3D on a 3 billion voxel grid. OpenCL compute (1448×2896×724 resolution grid, 34k time steps) plus rendering took ~104 minutes. Shown is the Q-criterion isosurfaces with marching-cubes. Reynolds number is 19 Million with Smagorinsky-Lilly subgrid model.

How is it possible to squeeze 3 billion grid points in only 160GB VRAM?
I'm using two techniques here, which together form the holy grail of lattice Boltzmann, cutting memory demand down to only 55 Bytes/node for D3Q19 LBM, or 1/3 of conventional codes:

1. In-place streaming with Esoteric-Pull. This almost cuts memory demand in half and slightly increases performance due to implicit bounce-back boundaries.
Paper: doi.org/10.3390/computation10060092

2. Decoupled arithmetic precision (FP32) and memory precision (FP16): all arithmetic is done in FP32, but LBM density distribution functions in memory are compressed to FP16. This almost cuts memory demand in half and almost doubles performance, without impacting overall accuracy for most setups.
Paper: researchgate.net/publication/362275548_Accuracy_and_performance_of_the_lattice_Boltzmann_method_with_64-bit_32-bit_and_customized_16-bit_number_formats

Graphics are done directly in FluidX3D with OpenCL, with the raw simulation data already residing in ultra-fast video memory. No volumetric data (1 frame of the velocity field is 35GB!) ever has to be copied to the CPU or hard drive, but only rendered 4K frames (33MB) instead. Once on the CPU side, a copy of the frame is made in memory and a thread is detached to handle the slow .png compression, all while the simulation is already continuing. At any time, about 16 frames are compressed in parallel on 16 CPU cores, while the simulation is running on GPU.
Paper: researchgate.net/publication/360501260_Combined_scientific_CFD_simulation_and_interactive_raytracing_with_OpenCL

Timestamps:
0:00 bottom view
0:20 top view
0:40 side view

Thanks to the people at Jülich Supercomputing Centre for letting me test their hardware!
The 3D model of the city was provided by Thomas Tian: building-engineering.de

#CFD #GPU #FluidX3D #OpenCL
CFD timelapse of wind over citySimulating terminal velocity raindrop impacts with FluidX3D at Reynolds number 51kFluidX3D running AMD + Nvidia + Intel GPUs in SLI to pool together 132GB VRAMLine3D [GRAPHICS ENGINE] Dynamische BeleuchtungCommercial CFD would take months for this | its just minutes with FluidX3DSoundFFT - SoundFFT meets Line3DReal time raytracing without RTX? No problem! Raytraced isosurface demo running on GTX 960MFluidX3D [FLUID SIMULATION] - Real Time Free Surface LBM with Volume-of-FluidFluidX3D [FLUID SIMULATION] - Smashing the Memory Wall with FP16 | 100 Subscriber SpecialRadial Fan simulated in FluidX3D CFD (this was 45min on a gaming PC)FluidX3D Rendering Comparison (Raindrop Impact)Bad Apple in cmd.exe... but in color
Dr. Moritz Lehmann |

CFD timelapse of wind over city

SHARE TO X SHARE TO REDDIT SHARE TO FACEBOOK WALLPAPER