Discrete Simplicial Fluids - Discrete Differential Geometry

Overview
Fluids, fluids, fluids
geometric interpretation of classical models
„ discrete geometric interpretation
„
Discrete Differential Fluids
¾ new integration technique
An Application of Discrete Differential Modeling to Fluid Mechanics
Bigger Picture:
Discrete Differential Modeling
don’t discretize your PDEs
uncover their inherent geometry
„ then discretize this geometry
„
Mathieu Desbrun
„
Discrete Differential Geometry: An Applied Introduction
ACM SIGGRAPH 2005 Course
Discrete Differential Geometry: An Applied Introduction
ACM SIGGRAPH 2005 Course
1
Fluid Models (I)
2
Fluid Models (II)
Euler Equations
Navier-Stokes Equations
pressure
∂u
+ (u ⋅ ∇ )u = −∇p + f
∂t
∇ ⋅u = 0
velocity
∂u
+ (u ⋅ ∇ )u = −∇p + f −ν ∆u
∂t
momentum eq.
∇ ⋅u = 0
body
massforces
eq.
inviscid fluids (not viscous)
incompressible
„ non-linear PDE, with linear constraint
„
„
only change: viscosity
„
loss of total energy during motion
¾ coefficient ν
„
Discrete Differential Geometry: An Applied Introduction
ACM SIGGRAPH 2005 Course
Discrete Differential Geometry: An Applied Introduction
ACM SIGGRAPH 2005 Course
3
Algorithm for Simulation
Implementation Issues
One of many possibilities… (see CFD lit.)
“Stable Fluids” (Stam 99)
Advection
adapted for graphics needs
„ regular Eulerian discretization
„
discretize? Nah…
„
method of characteristics
„
4
¾ non-linear and nasty
¾ parcels transported along velocity…
¾ let’s go backwards in time
− to know where a “parcel” is coming from
− need to interpolate velocities
− and resample them
¾ unconditional stability! (large time step)
solve Poisson
notproblem
“free of
velocity
divergence”
advection
Discrete Differential Geometry: An Applied Introduction
ACM SIGGRAPH 2005 Course
5
Discrete Differential Geometry: An Applied Introduction
ACM SIGGRAPH 2005 Course
6
What Where?
The Geometry of Fluids
Co-located grids
Euler equations seem clear
„
velocities & pressures at vertices
„
advection + div-free projection ad infinitum
¾ numerous follow-up work (Fedkiw et al.)
„
centered
differences
but what does it mean, geometrically?
¾ “total energy” is rather unintuitive
¾ is there a notion of momentum preservation?
„
staggered grids
Yes
„
works MUCH better
„
Discrete Differential Geometry: An Applied Introduction
ACM SIGGRAPH 2005 Course
Geometry Revealed
So we know:
Integral of vorticity constant on an advected
sheet
(vorticity)
Additionally, ω defines u
vorticity measures the “spin” of a parcel
„ vorticity is “advected” along the flow
„ the circulation around any
closed loop is constant
∫ u.dl as it gets advected
„
C( t )
¾ if we ignore complex topology for a moment
¾ u = ∇x (∆-1ω) because u is divergence free!
Vorticity is the only real variable here
and Kelvin’s is a defining property
− known as Kelvin’s theorem
− call it preserv. of angular momentum if you want
Discrete Differential Geometry: An Applied Introduction
ACM SIGGRAPH 2005 Course
(Navier-Stokes: loss along the way)
Discrete Differential Geometry: An Applied Introduction
ACM SIGGRAPH 2005 Course
9
Towards a Proper Discretization
Domain discretization = simplicial complex
„
Enter Discrete Exterior Calculus
„
„
net flux for divergence
„
− what comes in…must come out
¾ flux = 2-form
¾ div = exterior derivative of flux
valid for any grid…
Discrete Differential Geometry: An Applied Introduction
ACM SIGGRAPH 2005 Course
Fortunately, that’s DEC
¾ we know how to do all that, right??
flux spin for vorticity
¾ Torque created on a “paddle wheel”
„
hopefully matching differential counterparts
to create a discrete differential structure
¾ i.e., structure-preserving discretization
» reminiscent of staggered grids…
„
10
Need for proper link btw flux, vorticity, div
fluxes through faces for velocity
¾ intrinsic (coordinate-free) and eulerian
„
8
Geometry Revealed
Pressure disappears when we take the curl:
Γ(t ) =
Discrete Differential Geometry: An Applied Introduction
ACM SIGGRAPH 2005 Course
7
∂u
+ (u ⋅ ∇ ) u = −∇p
∂t
but of course, we need to massage the PDE
so as to reveal the geometric structure
¾ curl =
11
d
of flux
Discrete Differential Geometry: An Applied Introduction
ACM SIGGRAPH 2005 Course
12
Divergence Operator
Curl Operator
Simply d of 2-form
Curl requires going to the dual
summing face values of tets
„ returning values in tets
from faces to dual edges first
„ then d (sum of dual edge values)
„ then back onto primal edges
„
point-based
scalar field
∇
edge-based
vector field
cell-based
scalar field
∇•
face-based
vector field
∇×
∇×
face-based
vector field
edge-based
vector field
„
∇•
∇
cell-based
scalar field
point-based
scalar field
∇
edge-based
vector field
point-based
scalar field
cell-based
scalar field
∇•
face-based
vector field
Discrete Differential Geometry: An Applied Introduction
ACM SIGGRAPH 2005 Course
∇×
face-based
vector field
∇×
edge-based
vector field
∇•
cell-based
scalar field
∇
point-based
scalar field
Discrete Differential Geometry: An Applied Introduction
ACM SIGGRAPH 2005 Course
13
14
Laplacian Operator
Gradient Operator (for completeness)
Wait, sum of second partial derivatives…
on a PWL field??
Wait, constant per tet, right? (FEM 101)
„
sure, we do it all the time
¾ link to FE/weak formulation
yes
„ but can be stored as values
on edges, as announced
„
Try it for 0-forms at home:
you’ll get the cot formula…
cell-based
scalar field
∇
∇•
edge-based
vector field
∇×
face-based
vector field
∇×
face-based
vector field
edge-based
vector field
∇•
∇
cell-based
scalar field
⇒ du = ∑ u i dϕ i =
i
We have all the computational set-up
„
∑ (u
ek ={i , j }
i
− u j ) ϕ ek
u2
Discrete Differential Geometry: An Applied Introduction
ACM SIGGRAPH 2005 Course
15
Integrating Equations of Motion
u3
u1
i
point-based
scalar field
Discrete Differential Geometry: An Applied Introduction
ACM SIGGRAPH 2005 Course
∇u
u = ∑ ui ϕ i
How does it work here? ∆ = d d + d d
point-based
scalar field
u0
16
Discrete Kelvin’s Theorem
Simple way to integrate Euler equations:
But how do we integrate the motion?
„
Through preserving important structures?
For each 1-simplex
¾ backtrack local loop
Circulation/vorticity preservation
„ Crucial for visual impact
„
in current velocity field
¾ deduce new circulation
− i.e., new discrete vorticity
¾ volutes in smoke
„
¾ vortices in liquids
Find new velocity field
¾ simple Poisson equation
− u = ∇x (∆-1ω)
Discrete Differential Geometry: An Applied Introduction
ACM SIGGRAPH 2005 Course
17
Discrete Differential Geometry: An Applied Introduction
ACM SIGGRAPH 2005 Course
18
Discrete Kelvin’s Theorem
Results
Guarantees circulation preservation
for any discrete loop
New method
exact discrete vorticity preservation
„ arbitrary simplicial meshes
„
big loop = union of small ones
„ … even on curved spaces
„
¾ see also paper by Feldman et al. this year
everything is intrinsic
„ basic operators very simple (super parse)
„ great flows for small meshes!
„
¾ computationally efficient even on coarse mesh
¾ no need for millions of vortex particles
Discrete Differential Geometry: An Applied Introduction
ACM SIGGRAPH 2005 Course
19
Channel
Discrete Differential Geometry: An Applied Introduction
ACM SIGGRAPH 2005 Course
20
Smoking Bunny
7k vertices, 32k tets; 0.45s
per frame on PIV (3GHz)
Discrete Differential Geometry: An Applied Introduction
ACM SIGGRAPH 2005 Course
21
Merging Vortices
Discrete Differential Geometry: An Applied Introduction
ACM SIGGRAPH 2005 Course
Discrete Differential Geometry: An Applied Introduction
ACM SIGGRAPH 2005 Course
22
Movie
23
Discrete Differential Geometry: An Applied Introduction
ACM SIGGRAPH 2005 Course
24
Take-Home Message
Don’t Discretize your PDE
„
discretize its geometric structures
¾ PDEs often hide these structures
„
uncover the nature of the variables involved
„
turn the crank….
¾ usually, natural locations on mesh
Next
„
circles may be the right discrete geometry!
¾ conformal geometry
Discrete Differential Geometry: An Applied Introduction
ACM SIGGRAPH 2005 Course
25