Finally got around to improving my fluid sim. I've recreated my older code in CUDA and created a basic engine for it. I've also drastically improved performance: previously I was getting around 45 FPS with 10k particles. Now I can simulate 64k particles at 250 FPS - and if I push it I can simulate 1m particles at 15 FPS on my poor GT 1030.