Fluid Simulation in Computer Graphics
Tomáš Skřivan
Fluid Simulation in Computer Graphics
Tomáš Skřivan
About me
- I like math and pretty pictures
- fluid simulation has both
- Work on Houdini at SideFX
- mainly working on FLIP solver
- Did internship at Weta Digital
- wave curve solver for Avatar 2
What are fluids?
- liquids like water, honey, gel, ...
- smoke, fire, ...
- almost anything
Two main computational approaches
Particle Based
Grid Based
- each particle has
- position
- velocity
- force
- each pixel/voxel has
- density
- velocity
- pressure
Particle Based

m_i a_i = F_i
F_i = \sum_j - \nabla_{p_i} E (\| p_i - p_j \|)
E(x) = e^{-x^2/r^2}
- Based on Newton's second law
- Force on each particle
p_i
p_j

\begin{align*}
v_i^{n+1} &= v_i^{n} + \Delta t \, a_i \\
p_i^{n+1} &= p_i^{n} + \Delta t \, v_i^{n}
\end{align*}
Particle Based

m_i a_i = F_i
F_i = \sum_j \nabla_{p_i} E (\| p_i - p_j \|)
E(x) = e^{-x^2/r^2}
- Based on Newton's second law
- Force on each particle
p_i
p_j

\begin{align*}
v_i^{n+1} &= v_i^{n} + \Delta t \, a_i \\
p_i^{n+1} &= p_i^{n} + \Delta t \, v_i^{n}
\end{align*}
Let's implement it!
Mathematical description "particle based"
Mathematical description
Mathematical description "particle based"
Mathematical description "particle based"
m \frac{d}{dt}
velocity
F
o
r
c
e
s
=
m a = F
Mathematical description "particle based"
Mathematical description "grid based"
Mathematical description "grid based"
Mathematical description "grid based"
Mathematical description
\frac{d}{dt} v = \frac{\partial v}{\partial t} + v \cdot \nabla v
F
o
r
c
e
s
=
\frac1m
Mathematical description
\frac{\partial v}{\partial t} + v \cdot \nabla v
\int_{\partial \Omega} N \cdot \sigma \, dA = \int_{\Omega} \text{div}\, \sigma \, dV
F = N \cdot \sigma
normal vector
stress tensor
(just 3x3 matrix)
F
o
r
c
e
s
=
\frac1m
=
= \frac1m \text{div} \, \sigma
F
o
r
c
e
s
Mathematical description
\frac{\partial v}{\partial t} + v \cdot \nabla v = \frac1\rho \text{div} \, \sigma
\sigma = - p I + \frac{\mu}{2} (\nabla v + \nabla v ^T)
\frac{\partial v}{\partial t} + v \cdot \nabla v = - \frac1\rho \nabla p + \nu \Delta v
Navier-Stokes equation:
\frac{\partial v}{\partial t} + v \cdot \nabla v = - \frac1\rho \nabla p + \nu \Delta v
Particle Based
Lagrangian methods
Grid Based
Eulerian methids
m \frac{d^2 p_i}{dt^2} = \sum_j - \nabla_{p_i} E (\| p_i - p_j \|)
Two main computational approaches
\frac{\partial v}{\partial t} + v \cdot \nabla v = - \frac1\rho p + \nu \Delta v
Grid Based Approach

\frac{\partial c}{\partial t} + v \cdot \nabla c = 0
Hybrid Approach
- particles for advection
- pressure solved on grid
Houdini Fluid Solver
Houdini Fluid Solver

particle to grid
external forces
pressure solve on the grid
grid to particles
particle advection
Thank You
For Your Attention
Any Questions?
deck
By lecopivo
deck
- 14