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