We describe a new approach for the purely Eulerian simulation of incompressible fluids. In it, the fluid state is represented by a ℂ²-valued wave function evolving under the Schrödinger equation subject to incompressibility constraints. The underlying dynamical system is Hamiltonian and governed by the kinetic energy of the fluid together with an energy of Landau-Lifshitz type. The latter ensures that dynamics due to thin vortical structures, all important for visual simulation, are faithfully reproduced. This enables robust simulation of intricate phenomena such as vortical wakes and interacting vortex filaments, even on modestly sized grids. Our implementation uses a simple splitting method for time integration, employing the FFT for Schrödinger evolution as well as constraint projection. Using a standard penalty method we also allow arbitrary obstacles. The resulting algorithm is simple, unconditionally stable, and efficient. In particular it does not require any Lagrangian techniques for advection or to counteract the loss of vorticity. We demonstrate its use in a variety of scenarios, compare it with experiments, and evaluate it against benchmark tests. A full implementation is included in the ancillary materials.
This work was supported in part by the DFG Collaborative Research Center TRR 109 "Discretization in Geometry and Dynamics," Joel A. Tropp under the auspices of ONR grant N00014-11-1-0025, and the German Academic Exchange Service (DAAD). Additional support was provided by IST at Caltech, SideFX software, and Framestore Los Angeles. We also gratefully acknowledge Alessandro Pepe's help with visualization. The Bunny model is courtesy Stanford Computer Graphics laboratory while the Teapot is courtesy the Computer Graphics program at the University of Utah.