GPU-native CFD solver for OpenFOAM-style cases: feedback on CUDA architecture

Hi everyone,

I’m working on brae, a GPU-resident CFD solver for OpenFOAM-style cases. The goal is to run existing OpenFOAM cases on one GPU while avoiding the usual CPU-GPU transfer loop every iteration.

The current implementation focuses on a simpleFoam-compatible path: matrix assembly, pressure correction, turbulence updates, and linear solves are designed to stay resident on the GPU. In our current benchmark, brae is around ~5× faster than a GPU-accelerated OpenFOAM setup on the same GPU, with validation error under 1%.

I’m looking for technical feedback from CUDA/HPC developers, especially around:

  • sparse linear solver design for CFD workloads
  • memory layout for finite-volume meshes
  • LDU/CSR representation on GPU
  • reducing synchronization and host-device transfers
  • whether grid-stride kernels are enough here, or where more specialized CUDA patterns would help

The repo is here:

I’d appreciate any feedback on the CUDA architecture, benchmarking approach, or solver design. This is still early, but the goal is to make existing OpenFOAM-style cases run faster on modern NVIDIA GPUs without forcing users to rewrite their workflows.