We provide a novel simulation method for incompressible free surface flows that allows for large time steps on the order of 10-40 times bigger than the typical explicit time step restriction would allow. Although semi-Lagrangian advection allows for this from the standpoint of stability, large time steps typically produce significant visual errors. This was addressed in previous work for smoke simulation using a mass and momentum conserving version of semi-Lagrangian advection, and while its extension to water for momentum conservation for small time steps was addressed, pronounced issues remain when taking large time steps. The main difference between smoke and water is that smoke has a globally defined velocity field whereas water needs to move in a manner uninfluenced by the surrounding air flow, and this poses real issues in determining an appropriate extrapolated velocity field. We alleviate problems with the extrapolated velocity field by not using it when it is incorrect, which we determine via conservative advection of a color function which adds forwardly advected semi-Lagrangian rays to maintain conservation when mass is lost. We note that one might also use a more traditional volume-of-fluid method which is more explicitly focused on the geometry of the interface but can be less visually appealing -- it is also unclear how to extend volume-of-fluid methods to have larger time steps. Finally, we prefer the visual smoothness of a particle level set method coupled to a traditional backward tracing semi-Lagrangian advection where possible, only using our forward traced color function solution in areas of the flow where the particle level set method fails due to the extremely large time steps.
Colse up view of a 512x512x512 simulation to show the amount of visual detail we get even after taking such large time steps.
Comparisons between our method and the particle level set method using similar amounts of computation. The left fgure shows the correct answer obtained by running the particle level set algorithm at a resolution of 256^3 at CFL 1. The middle figure shows the results of running our algorithm at a resolution of 256^3 at CFL 16. This requires a similar amount of computation to running the particle level set method at a resolution of 128^3 at CFL 1 which gives the results shown in the right figure. Our algorithm has the same degree of numerical viscosity as the 256^3 particle level set simulation but requires the same amount of computation as the 128^3 since the resolution is doubled in each dimension and the CFL condition becomes twice as strict.
Volume/Mass ConservationComparisons of our method with the standard PLS method run with same (large) time step. PLS results are shown on the left while our results for the same corresponding frame are shown on the right.
Here is the video showing a plethora of comparisons to show the usefulness of our method