We recently checked out the MSAFluids library for Processing, a fluid simulation engine based on Navier-Stokes equations. Not physically accurate, but visually awesome.
We edited the MSAFluid java library a bit to add interior collisions in Processing. This allowed us to import building footprints to the canvas in order to see how fluids would interact with different shapes.
More info: lmnts.lmnarchitects.com/featured/fluids-in-processing/