Mengdi Wang , Fan Feng, Junlin Li, Bo Zhu
This repo stores the source code of our SIGGRAPH 2025 paper Cirrus: Adaptive Hybrid Particle-Grid Flow Maps on GPU.
Left: smoke (large) passing a racing car and its vorticity field (small). Right: smoke (large) passing an aircraft with 4 rotating propellers at a 15-degree angle of attack and its vorticity field (small). The wingtip vortices are captured by our algorithm in the vorticity field. Effective resolutions are 512x512x1024 on our adaptive grid implemented on GPU.We propose the adaptive hybrid particle-grid flow map method, a novel flow-map approach that leverages Lagrangian particles to simultaneously transport impulse and guide grid adaptation, introducing a fully adaptive flow map-based fluid simulation framework. The core idea of our method is to maintain flow-map trajectories separately on grid nodes and particles: the grid-based representation tracks long-range flow maps at a coarse spatial resolution, while the particle-based representation tracks both long and short-range flow maps, enhanced by their gradients, at a fine resolution. This hybrid Eulerian-Lagrangian flow-map representation naturally enables adaptivity for both advection and projection steps. We implement this method in Cirrus, a GPU-based fluid simulation framework designed for octree-like adaptive grids enhanced with particle trackers. The efficacy of our system is demonstrated through numerical tests and various simulation examples, achieving up to
First, install the following dependencies:
- xmake
- A C++ build environment (e.g., Visual Studio on Windows)
- NVIDIA CUDA Toolkit (for
nvcc
)
To build the project, run:
xmake -v
To run a simulation:
xmake r cirrus scenes/smokesphere.json
That runs for 3 min 57 seconds on a desktop with Intel i9-14900KF CPU, RTX 4090 (24G dedicated VRAM) GPU and 64G memory, generating 100 frames.
The result can be visualized using Paraview by:
Representation - Volume Coloring - Vorticity