+ All Categories
Home > Documents > Fluid Simulation forFluid Simulation for Computer...

Fluid Simulation forFluid Simulation for Computer...

Date post: 29-Jul-2018
Category:
Upload: tranthu
View: 217 times
Download: 0 times
Share this document with a friend
31
Fluid Simulation for Fluid Simulation for Computer Animation Computer Animation
Transcript

Fluid Simulation forFluid Simulation forComputer AnimationComputer Animation

Why�Simulate�Fluids?

• Feature�film�special�effects• Computer�games• Medicine (e g blood flow in heart)• Medicine�(e.g.�blood�flow�in�heart)• Because�it’s�fun

Fluid�Simulation

• Called�Computational�Fluid�Dynamics(CFD)

• Many approaches from math andMany�approaches�from�math�and�engineeringG hi f fi it diff• Graphics�favors�finite�differences

• Jos Stam introduced fast and stableJos�Stam�introduced�fast�and�stable�methods�to�graphics�[Stam�1999]

Navier Stokes EquationsNavier-Stokes�Equations

u=0 Incompressibility

u k2u (u )u + fut= k2u –(u)u – p + f

AdvectionDiffusion

d

Pressure

Change in VelocityAdvection

Body Forces

Navier Stokes EquationsNavier-Stokes�Equations

u=0 Incompressibility

u k2u (u )u + fut= k2u–(u)u – p + f

AdvectionDiffusion Pressure

dChange in Velocity

AdvectionBody Forces

Finite�Differences�Grids

• All�values�live�on�regular�grids• Need�scalar and�vector fields• Scalar fields: amount of smoke or• Scalar�fields:�amount�of�smoke�or�

dye• Vector�fields:�fluid�velocity• Subtract adjacent quantities to• Subtract�adjacent�quantities�to�

approximate�derivatives

Scalar�Field�(Smoke,�Dye)

1.2 3.7 5.1 …

cij

Diffusion

cij

DiffusionDiffusion

11c = k2c

1 1-4ct =�k c

1 1-4change�invalue

value�relativeto neighbors

1value to�neighbors

c new c + k t (c + c + c + ccijnew =�cij +�k�t�(ci-1j +�ci+1j +�cij-1 +�cij+1

Diffusion�=�Blurring

Original Some�Diffusion More�Diffusion

V t Fi ld (Fl id V l it )Vector�Fields�(Fluid�Velocity)

( x y)uij =�(ux,uy)

Vector Field DiffusionVector�Field�Diffusion

k2ut= k2uviscosity

Two�separate�diffusions:viscosity

ux = k2ux

p

u t k uuyt= k2uy

blur the x-velocity and the y-velocity

u t k u…�blur�the�x-velocity�and�the�y-velocity

Navier Stokes EquationsNavier-Stokes�Equations

u=0 Incompressibility

u k2u (u )u + fut= k2u –(u)u – p + f

AdvectionDiffusion Pressure

dChange in Velocity

AdvectionBody Forces

Advection:�stuffs�get�gpushed�by�the�flow

0.3 2.70.3

Forward�Advection

Backward�Advection

Scalar�Field�Advection

c =–(u)cct (u )c

change�in�value

advection

current�valuesvalue n

V t Fi ld Ad tiVector�Field�Advection

ut=–(u)ut ( )Two separate advections:

ux = (u)ux

Two�separate�advections:

u t=–(u)uy ( ) yuyt=–(u)uy

…�push�around�x-velocity�and�y-velocity

Advection

• Easy�to�code• Method�stable�even�at�large�time�

stepssteps• Problem:�numerical�inaccuracy�

diff fldiffuses�flow

Diffusion/dissipationDiffusion/dissipationin�first�order�advection

Original Image After 360 degree rotationusing first order advection

Navier Stokes EquationsNavier-Stokes�Equations

u=0 Incompressibility

u k2u (u )u + fut= k2u –(u)u– p + f

AdvectionDiffusion Pressure

dChange in Velocity

AdvectionBody Forces

Divergence: Difference between incoming and outgoing flowincoming and outgoing flow

High divergence Low divergenceHigh�divergence Low�divergence

Zero�divergence

Enforcing�Incompressibility

• First�do�velocity�diffusion�and�advection

• Find “closest” vector field that isFind� closest �vector�field�that�is�divergence-freeN d t l l t di• Need�to�calculate�divergence

• Need to find and use pressureNeed�to�find�and�use�pressure

M i DiMeasuring�Divergence

u=? uyij+1

?

ij 1

?-uxi-1j ux

i+1j

-uyij-1

( x x ) + ( y y )

ij 1

uij=(uxi+1j - ux

i-1j) + (uyij+1-uy

ij-1)

Pressure�Term

unew= u – ppTake�divergence�of�both�sides…

unew= u – p u u pzer

2

zero u = 2p

Pressure TermPressure�Term u = 2p u p

1known unknown 1

pnew =�p +�( u - 2p) 1 1-4

Let�dij =� uij1

pnewij =�pij +�(dij - (pi 1j +�pi+1j +�pij 1 +�pij+1 - 4p ij pij (dij (pi-1j pi+1j pij-1 pij+1

Pressure�Term

unew= u punew= u – p

…and�velocity�is�now�divergence-free

Found�“nearest”�divergence-free�vefield to originalfield�to�original.

Fluid�Simulator

1)Diffuse velocity1)Diffuse�velocity2)Advect�velocity3)Add b d f ( it )3)Add�body�forces�(e.g.�gravity)4)Pressure�projection) p j5)Diffuse�dye/smoke6)Advect dye/smoke6)Advect�dye/smoke

“Fluid simulation”Fluid�simulationSIGGRAPH�2006/2007�Course�Note

https://www.cs.ubc.ca/~rbridson/

“Real-Time Fluid Dynamics for GamesReal-Time�Fluid�Dynamics�for�GamesJosStam,�March�2003

l k d(CDROM�link�is�to�source�code)

www.dgp.toronto.edu/people/stam/reality/Research/p

Research�Areas

1)Thin�Features2)Surface tension2)Surface�tension3)Coupling4)Fl id lik b h i ( d4)Fluid-like�behaviors�(sand,�snow,�et


Recommended