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.