Restoring Missing Vortices in Advection-Projection Fluid Solvers
[paper] [code] [video] [bibtex] SIGGRAPH 2015

Xinxin Zhang University of British Columbia
zhxx at cs dot ubc dot ca
Robert Bridson Autodesk, University of British Columbia
Chen Greif University of British Columbia
Above: Smoke raising from a cigarette simulated with IVOCK scheme

Most visual effects fluid solvers use a time-splitting approach where velocity is first advected in the flow, then projected to be incompressible with pressure. Even if a highly accurate advection scheme is used, the self-advection step typically transfers some kinetic energy from divergence-free modes into divergent modes, which are then projected out by pressure, losing energy noticeably for large time steps. Instead of taking smaller time steps or using significantly more complex time integration, we propose a new scheme called IVOCK (Integrated Vorticity of Convective Kinematics) which cheaply captures much of what is lost in self-advection by identifying it as a violation of the vorticity equation. We measure vorticity on the grid before and after advection, taking into account vortex stretching, and use a cheap multigrid V-cycle approximation to a vector potential whose curl will correct the vorticity error. IVOCK works independently of the advection scheme (we present examples with various semi-Lagrangian methods and FLIP), works independently of how boundary conditions are applied (it just corrects error in advection, leaving pressure etc.\ to take care of boundaries and other forces), and other solver parameters (we provide smoke, fire, and water examples). For $10\sim25\%$ extra computation time per step much larger steps can be used, while producing detailed vorticial structures and convincing turbulence that are lost without correction.

Auxiliary videos
Youtube Links:
Youku Links:
Additional Comments

IVOCK provides an aternative way of applying viscosity: one can diffuse the stretch-advected vorticity field instead of velocity field.