A Fast Variational Framework for Accurate Solid-Fluid Coupling Christopher Batty Florence Bertails Robert Bridson University of British Columbia
Motivation Goal: Simulate fluids coupled to objects. Extend the basic Eulerian approach: – Advect fluid velocities – Add forces (eg. gravity) – Enforce incompressibility via pressure projection See eg. [Stam ‘99, Fedkiw et al. ‘01, Foster & Fedkiw ‘01, Enright et al. ‘02, etc.]
Motivation Cartesian grid fluid simulation is great! – Simple – Effective – Fast data access – No remeshing needed But…
Motivation Achilles’ heel: Real objects rarely align with grids.
Overview Three parts to our work: 1) Irregular static objects on grids 2) Dynamic & kinematic objects on grids 3) Improved liquid-solid boundary conditions
Previous Work First solution Voxelize – [Foster & Metaxas ’96] Easy! “Stairstep” artifacts Artificial viscosity Doesn’t converge under refinement!
Previous Work Better solution Subdivide nearby – [Losasso et al. ‘04] Stairs are smaller But problem remains
Previous Work Better yet Mesh to match objects – [Feldman et al. ‘05] Accurate! Needs remeshing Slower data access Trickier interpolation Sub-grid objects?
And now… back to the future? We’ll return to regular grids – But achieve results like tet meshes!
Pressure Projection Converts a velocity field to be incompressible (or divergence-free) No expansion or compression No flow into objects Images courtesy of [Tong et al. ‘03]
Pressure Projection We want the “closest” incompressible velocity field to the input. It’s a minimization problem!
Key Idea! Distance metric in the space of fluid velocity fields is kinetic energy. Minimizing KE wrt. pressure is equivalent to the classic Poisson problem! fluid nn 2 11 2 1 KEu
Minimization Interpretation Fluid velocity update is: Resulting minimization problem is: p t n uu ~ 1 2 ~ 2 1 minarg fluid p p t u
What changes? Variational principle automatically enforces boundary conditions! No explicit manipulation needed. Volume/mass terms in KE account for partial fluid cells. – Eg. Result: Easy, accurate fluid velocities near irregular objects. 2 2/12/12/1 2 1 KE iii uvol
Discretization Details Normal equations always give an SPD linear system. – Solve with preconditioned CG, etc. Same Laplacian stencil, but with new volume terms. Classic: Variational: x uu x ppp iiiii 2/12/1 2 11 )1()1()1()2()1( x uVuV x pVpVVpV iiiiiiiiiii 2/12/12/12/1 2 12/12/12/112/1 )()()()()(
Object Coupling This works for static boundaries How to extend to… – Two-way coupling? Dynamic objects fully interacting with fluid – One-way coupling? Scripted/kinematic objects pushing the fluid
Object Coupling – Previous Work “Rigid Fluid” [Carlson et al ’04] – Fast, simple, effective – Potentially incompatible boundary velocities, leakage Explicit Coupling [Guendelman et al. ’05] – Handles thin shells, loose coupling approach – Multiple pressure solves per step, uses voxelized solve
Object Coupling – Previous Work Implicit Coupling [Klingner et al ‘06, Chentanez et al.’06] – solves object + fluid motion simultaneously – handles tight coupling (eg. water balloons) – requires conforming (tet) mesh to avoid artifacts
A Variational Coupling Framework Just add the object’s kinetic energy to the system. Automatically gives: – incompressible fluid velocities – compatible velocities at object surface fluid solid VMVu * 2 1 2 1 KE 2
A Coupling Framework Two components: 1) Velocity update: How does the pressure force update the object’s velocity? 2) Kinetic energy: How do we compute the object’s KE?
Example: Rigid Bodies 1) Velocity update: 2) Kinetic Energy: Discretize consistently with fluid, add to minimization, and solve. solid CM solid p p nXx n ˆ )(Torque ˆ Force 22 2 1 2 1 KEIωv m
Wall Separation - Previous Work If ũ·n ≥ 0 before projection, hold u fixed. – [Foster & Fedkiw ’01, Houston et al ’03, Rasmussen et al ‘04] Inaccurate or incorrect in certain cases:
Wall Separation Two cases at walls: – If p > 0, pressure prevents penetration (“push”) – If p < 0, pressure prevents separation (“pull”) Disallow “pull” force: – Add p ≥ 0 constraint to minimization – Gives an inequality-constrained QP – u·n ≥ 0 enforced implicitly via KKT conditions
Future Directions Robust air-water-solid interfaces. Add overlapping ghost pressures to handle thin objects, à la [Tam et al ’05]
Future Directions Explore scalable QP solvers for 3D wall- separation. Extend coupling to deformables and other object models. Employ linear algebra techniques to accelerate rigid body coupling.
Summary Easy method for accurate sub-grid fluid velocities near objects, on regular grids. Unified variational framework for coupling fluids and arbitrary dynamic solids. New boundary condition for liquid allows robust separation from walls.