Abstract: We introduce a new advection scheme for fluid animation. Our main contribution is the use of long-term temporal changes in pressure to extend the commonly used semi-Lagrangian scheme further back along the time axis. Our algorithm starts by tracing sample points along a trajectory following the velocity field backwards in time for many steps. During this backtracing process, the pressure gradient along the path is integrated to correct the velocity of the current time step. We show that our method effectively suppresses numerical diffusion, retains small-scale vorticity, and provides better long-term kinetic energy preservation.
Hindsight (December 6, 2017): We would like to note that the method of Hachisuka [2005] also handles the velocity advection. This can be done by generalizing the non-advection terms (e.g., the pressure gradient, external forces) as the source of change [H06] (See Eq.3.37 for detail). Our method shares the same strategy to the work of Hachisuka [2005] but diverges by noting that our method consistently fetches the velocity field N steps back after reaching N's time steps, while the method of Hachisuka [2005] proposes to "reset" the total record of velocity at fixed intervals. This brings pros and cons - resetting all the previous records like this way may speed up the average simulation time while the effects of dissipation are still minimized by O(1/N) at the cost of (possibly) noticeable temporal artifacts at the time of re-initialization. Our method does not display such artifacts but the performance drag due to the backward sampling persists for the entire simulation.
[H06] Advection Equation Solver using Mapping Functions
T. Hachisuka. Thesis for Bachelor of Engineering, University of Tokyo, 2006
Takahiro Sato, Christopher Batty, Takeo Igarashi and Ryoichi Ando. SIGGRAPH Asia 2017 Technical Briefs.