Coupling Water and Smoke to Thin Deformable and Rigid Shells

Download Report

Transcript Coupling Water and Smoke to Thin Deformable and Rigid Shells

Coupling Water and Smoke to Thin
Deformable and Rigid Shells
Eran Guendelman 1,2
Andrew Selle 1,3
Frank Losasso 1,2
Ronald Fedkiw 1,2
1Stanford
University, 2Industrial Light + Magic, 3Intel Corporation
Motivation
• Fluid simulation becoming more common
– Engineering, biomedicine, entertainment
• Want interaction with thin solids
– Parachutes
– Cardiovascular simulation
– CG characters w/clothing
Goal
• Two-way coupling between:
– Smoke or free-surface water
– Thin rigid and deformable open shells
• Prevent leaks across solid
256x256x192 effective octree; 30k triangles
Volumetric vs. Thin Solids
Volumetric
Thin shell
Related Work: Volumetric
• DLM / “Rigid Fluid” [Glowinski et al. ’94;Carlson et al. ’04]
• Inter-particle forces [Génevaux et al. ’03; Müller et al. ’04]
• Coupling solid velocity & fluid pressure
– Incompressible: [Takahashi et al. ’02]
– Compressible: [Yngve et al. ’00; Fedkiw ’02]
Diffuse Interface Methods
• Smear solid onto fluid grid
• e.g. Immersed boundary method [Peskin ‘72]
– Parasitic currents
Sharp Interface Methods
• Incorporate jump conditions into stencils
– Ghost fluid method [Fedkiw et al. ’99; Tam et al. ‘05]
– Immersed interface method [LeVeque & Li ’94]
Our Approach
• Couple using
– Solid velocity & fluid coupling pressure
• Sharp interface treatment
• Prevent leaks using robust ray intersections
Talk Overview
• Fluid simulation
• Solid simulation
• Preventing leaks across solid
• Enforcing solid velocity on fluid
• Computing and applying coupling force
• Summary and future work
Talk Overview
• Fluid simulation (focus on water)
• Solid simulation
• Preventing leaks across solid
• Enforcing solid velocity on fluid
• Computing and applying fluid coupling force
• Summary and future work
Fluid Simulation
• Assume incompressible & inviscid
• Use projection method: [Chorin ’68]
un
(u is fluid velocity)
Advect un and add gravity ! u*
u* violates incompressibility
Project u* ! un+1
Compute pressure to enforce
incompressibility
un+1
Fluid Grid
• Uniform & octree grids [Losasso et al. ’04]
• Staggered grid configuration [Harlow & Welch ‘65]
vi,j+½
ui-½,j
pi,j
vi,j-½
ui+½,j
Advection
• First order semi-Lagrangian [Courant et al. ’52; Stam ‘99]
– Advection on nodes
x
x-ut
u
Particle Level Set Method
[Enright et al. ‘02]
• Level set  captures water-air interface
• Particles help correct interface
water
air
Water Simulation Step (n!n+1)
un,n
Advance particle level set ! n+1
Advect un and add gravity ! u*
Project u* ! un+1
un+1,n+1
Advect  and particles
Now Add Solids to the Mix…
• Fluid simulation
• Solid simulation
• Preventing leaks across solid
• Enforcing solid velocity on fluid
• Computing and applying fluid coupling force
• Summary and future work
Now Add Solids to the Mix…
• Black box:
Input: external forces
Output: positions and velocities
[Guendelman et al. ’03]
[Bridson et al. ’02,’03]
Surface Quantities
• Rigid body
– Directly compute
• Deformable body
– Barycentric weights
Talk Overview
• Fluid simulation
• Solid simulation
• Preventing leaks across solid
• Enforcing solid velocity on fluid
• Computing and applying fluid coupling force
• Examples, summary, and future work
Key: Visibility
Thin Shell Aware Interpolation
Use replacement
ghost
value when interpolating
Check visibility
of interpolation
nodes
Replacement Ghost Values
Fluid velocity (u)
use solid velocity
Level set ()
average from nearest
valid nodes
Thin Shell Aware Advection
• Clip semi-Lagrangian rays
u
x-ut
Crossed Over Nodes
• Represent information from opposite side
• Reassign valid values by averaging
Thin Shell Aware Fluid Step
un,n
Advance particle level set ! n+1
Thin shell aware advection
( and particles)
Advect un and add gravity ! u*
Thin shell aware advection (u)
Project u* ! un+1
un+1,n+1
…see paper for more details
210x140x140 uniform; 30k triangles
210x140x140 uniform; 30k triangles
Talk Overview
• Fluid simulation
• Solid simulation
• Preventing leaks across solid
• Enforcing solid velocity on fluid
• Computing and applying fluid coupling force
• Summary and future work
Rasterizing Solid
• Rasterize onto faces of fluid grid
Solid Affecting Fluid
• Solid prescribes velocity on rasterized faces
• Enforce as Neumann boundary conditions in
projection step: Project u* ! un+1
Which Solid Velocities?
• At time n+1!n+2, at solid-fluid interface
– Fluid moves with velocity enforced during un+1 projection
– Solid moves from to Xn+1 to Xn+2
• Want these motions to match (reduce mass loss)
• Solution:
– Enforce effective solid velocity: Veff=(Xn+2-Xn+1)/t
One-Way Coupling Step
un,n,Sn,Sn+1
(S is the solid’s state)
Advance particle level set ! n+1
Advect un and add gravity ! u*
Advance solid ! Sn+2
Project u* ! un+1
un+1,n+1,Sn+1,Sn+2
Enforce effective solid
velocities (n+1! n+2) at
solid-fluid interface
160x192x160 effective octree
192x192x192 effective octree; 60k triangles
Talk Overview
• Fluid simulation
• Solid simulation
• Preventing leaks across solid
• Enforcing solid velocity on fluid
• Computing and applying fluid coupling force
• Summary and future work
Fluid Coupling Force
• Want to use fluid pressure
• Incompressible pressure can be noisy
– Incompressibility = hard constraint
– Enforcing solid velocity = hard constraint
– Better for compressible fluids [Yngve et al. ‘00; Fedkiw ‘02]
Smoother Coupling Pressure
• Treat solid as fluid
• Solve variable density fluid for pc
• Similar to projection step, but:
– Solid velocities not enforced
– Fluid velocities not modified!
Two Pressure Solves!
• Incompressible pressure (projection):
– Enforce incompressibility & solid velocity
– Essential for reducing mass loss
• Coupling pressure:
– Does not modify fluid velocity
– Essential for smoother coupling force on solid
Must Enforce Solid Velocity
Mass loss
Rigid Fluid
[Carlson et al. ’04]
Enforcing solid velocity
Enforced!
Computing Force on Solid
• Fluid pressure pushes on both sides
p1
p2
Computing Force on Solid
• Net force is proportional to pressure jump [pc]
p1 - p2
Computing Force on Solid
Compute
Interpolate
Extrapolate
at force
centroid
Compute
Pressure
Average
Rasterize
coupling
jumps
to
nodes
solid
on
pressure
faces
Two-Way Coupling Step
un,n,Sn,Sn+1
Advance particle level set ! n+1
Advect un and add gravity ! u*
Advance solid ! Sn+2
Project u* ! un+1
un+1,n+1,Sn+1,Sn+2
Compute coupling pressure
and apply force to solid
148x148x111 uniform; 2.5k triangles
200x200x200 effective octree; 30k triangles
256x256x192 effective octree; 30k triangles
256x256x192 effective octree; 30k triangles
Talk Overview
• Fluid simulation
• Solid simulation
• Preventing leaks across solid
• Enforcing solid velocity on fluid
• Computing and applying fluid coupling force
• Summary and future work
Summary
• Sharp interface treatment
– Prevent leaks using ray intersections (visibility)
• Solid prescribes velocity boundary conditions
– Use effective velocity to reduce mass loss
• Smooth coupling force applied to solid
– Treat solid as fluid to compute smoother pressure
Future Work
• Absorption, adhesion, permeability
• Compare against experiments
Acknowledgements
• Mike Houston, Christos Kozyrakis, Mark
Horowitz, Bill Dally, Vijay Pande
• Stanford Graphics Lab
• ONR, ARO, NSF, PECASE, Sloan Foundation,
Packard Foundation
The End