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
© Copyright 2026 Paperzz