FlowFixer: Using BFECC for Fluid Simulation ByungMoon Kim Yingjie Liu Ignacio Llamas Jarek Rossignac Georgia Institute of Technology
Contents Abstract Introduction Previous Work Fluid Simulation The BFECC Method – BFECC for Velocity Advection – BFECC for Smoke Density and Image Advection – BFECC for Level Set Advection Results Conclusion
Abstract Back and Forth Error Compensation and Correction (BFECC) Reduce dissipation and diffusion – First order upwinding or semi-Lagrangian integration – Second order accuracy both in space and time Animation : Image advection, Smoke, Water
Dissipation Example The function moves to the left
Dissipation Example To appear dissipation Interpolation
Introduction Simulation based on Navier-Stokes equation – Smoke : density – Image advection : colored density – Water : level-set First order semi-Lagrangian – Numerical diffusion and dissipation – Higher order schemes : WENO or CIP
Introduction Introduction (Con’t) BFECC – Easily – Very simple Combine particle level set method – Reduced the volume loss
Previous Work Stable fluid [1999] – Semi-Lagrangian treatment Visual simulation of smoke [2001] – Smoke simulation – Vorticity is added Practical animation of liquids Animation [2001] Animation and rendering of complex water surface – Free surface flows
Previous Work (Con’t) Constrained Interpolation Profile [CIP] – Yabe and Aoki [1991] – Stable but nondissipative water [2005] – To include velocity and partial derivatives advecting
What’s CIP Constrained Interpolation Profile Include partial derivatives
Previous Work (Con’t) Particle level-set method – volume preservation Particle Level-set Method
컴퓨터 그래픽스 연구실 The Equations of Flow Navier-Stokes equation – Velocity vector field u = (u, v, w) : velocity : density : pressure : viscosity : external force : time step
Fluid Simulation Split Project term Advect termDiffuse term
Fluid Simulation Project term – To solve Poisson equation
The BFECC Method Velocity (u,v,w), density, RGB, level-set First order upwinding or semi-Lagrangian integration
Implementation of BFECC BFECC is implemented as:
Implementation of BFECC
BFECC for Velocity Advection BFECC needs to be turned off – Multiphase flow – To prevent velocities of different fluids – To prevent different densities – |φ| < 5∆x
BFECC for Velocity Advection BFECC in velocity advection on a 80×200 grid. small scale details as well as large scale fluctuations
BFECC for Velocity Advection The bottom row is simulated with BFECC The cup tumbles thanks to the reduced damping in velocity field
BFECC for Smoke Density and Image Advection Advection of an image 100×250 grid
BFECC for Smoke Density and Image Advection bubble rising and bursting
BFECC for Smoke Density and Image Advection To measure the diffusion/dissipation amount – test problem similar to Zalesak’s problem (800×800 grid, CFL = 6.29) B : original image C: without BFECC time sec D: with BFECC time 0.36 sec
BFECC for Level Set Advection Redistancing equation Semi-Lagrangian style integration
What’s Redistancing (Reinitialize) Reinitialize water Air Using Fast-marching Method or Redistancing equation
BFECC for Level Set Advection Turning redistancing off near the interface Following two conditions
BFECC for Level Set Advection First order semi-Lagrangian implementation of level set advection Without BFECCWith BFECC To reduced volume loss
BFECC for Level Set Advection Left : Without BFECC Right : With BFECC highly dynamic behavior of water interaction with air, air bubbles, and solid
Results Using PovRay To implement the rigid fluid method 30 ~130 seconds per time step on 70 3 GRID
Adding BFECC with a trivial amount of code – Velocity, smoke density, image or level set advections – Reducing diffusion and dissipation – Preserving volume Conclusion