Matlab

39
The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL Introduction to Modeling Fluid Dynamics in MATLAB 1

Transcript of Matlab

Page 1: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

Introduction to Modeling Fluid Dynamics in

MATLAB

1

Page 2: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

2

Different Kind of Problem• Can be particles, but lots of

them• Solve instead on a uniform

grid

Page 3: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

3

No Particles => New StateParticle• Mass• Velocity• Position

Fluid• Density• Velocity Field• Pressure• Viscosity

Page 4: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

4

No Particles => New EquationsNavier-Stokes equations for

viscous, incompressible liquids.

fuuuu

u

pt 1

0

2

Page 5: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

5

What goes in must come outGradient of the velocity field= 0

Conservation of Mass

fuuuu

u

pt 1

0

2

Page 6: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

6

Time derivativeTime derivative of velocity field

Think acceleration

fuuuu

u

pt 1

0

2

au

t

Page 7: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

7

Advection termField is advected through itself

Velocity goes with the flow

fuuuu

u

pt 1

0

2

Page 8: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

8

Diffusion termKinematic Viscosity times Laplacian of u

Differences in Velocity damp out

fuuuu

u

pt 1

0

2

Page 9: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

9

Pressure termFluid moves from high pressure to low pressureInversely proportional to fluid density, ρ

fuuuu

u

pt 1

0

2

Page 10: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

10

External Force TermCan be or represent anythying

Used for gravity or to let animator “stir”

fuuuu

u

pt 1

0

2

Page 11: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

11

Navier-StokesHow do we solve these equations?

fuuuu

u

pt 1

0

2

Page 12: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

12

Discretizing in space and time• We have differential

equations• We need to put them in a

form we can compute

• Discetization – Finite Difference Method

Page 13: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

13

Discretize in Space

X VelocityY VelocityPressure

Staggered Grid vs Regular

Page 14: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

14

Discretize the operators• Just look them up or derive

them with multidimensional Taylor Expansion

• Be careful if you used a staggered grid

Page 15: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

15

Example 2D Discetizations

-1 0 1

1

-1

1 -4 1

1

1

Divergence Operator Laplacian

Operator

Page 16: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

16

Make a linear systemIt all boils down

to Ax=b.

dddd nnxnnx

bb

x

xx

2

1

2

1

??

?????

Page 17: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

17

Simple Linear System• Exact solution takes O(n3)

time where n is number of cells

• In 3D k3 cells where k is discretization on each axis

• Way too slow O(n9)

Page 18: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

18

Need faster solver• Our matrix is symmetric and

positive definite….This means we can use♦ Conjugate Gradient

• Multigrid also an option – better asymptotic, but slower in practice.

Page 19: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

19

Time Integration• Solver gives us time

derivative• Use it to update the system

stateU(t+Δt)

U t

U(t)

Page 20: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

20

Discetize in Time• Use some system such as

forward Euler.• RK methods are bad because

derivatives are expensive • Be careful of timestep

Page 21: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

21

Time/Space relation?• Courant-

Friedrichs-Lewy (CFL) condition

• Comes from the advection term

uxt

Page 22: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

22

Now we have a CFD simulator• We can simulate fluid using only

the aforementioned parts so far• This would be like Foster &

Metaxas first full 3D simulator

• What if we want it real-time?

Page 23: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

23

Time for Graphics Hacks• Unconditionally stable

advection♦ Kills the CFL condition

• Split the operators♦ Lets us run simpler solvers

• Impose divergence free field♦ Do as post process

Page 24: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

24

Semi-lagrangian Advection

CFL Condition limits speed of information travel forward in time

Like backward Euler, what if instead we trace back in time?

p(x,t) back-trace

Page 25: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

25

Divergence Free Field• Helmholtz-Hodge Decomposition

♦ Every field can be written as

• w is any vector field• u is a divergence free field• q is a scalar field

quw

Page 26: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

26

Helmholtz-Hodge

STAM 2003

Page 27: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

27

Divergence Free Field• We have w and we want u

• Projection step solves this equation

q

q

q

2

2

wuw

uw

qwu

Page 28: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

28

Ensures Mass Conservation• Applied to field before

advection• Applied at the end of a step

• Takes the place of first equation in Navier-Stokes

Page 29: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

29

Operator Splitting• We can’t use semi-lagrangian

advection with a Poisson solver• We have to solve the problem

in phases

• Introduces another source of error, first order approximation

Page 30: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

30

Operator Splitting

0 u

uu u2 p1 ftu

Page 31: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

31

Operator Splitting1. Add External

Forces

2. Semi-lagrangian advection

3. Diffusion solve

4. Project field

f

uu

u20 u

Page 32: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

32

Operator Splitting

u2f

uu

W0 W1 W2 W3 W4

u(x,t)

u(x,t+Δt)

0 u

Page 33: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

33

Various Extensions• Free surface tracking• Inviscid Navier-Stokes• Solid Fluid interaction

Page 34: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

34

Free Surfaces• Level sets

♦ Loses volume♦ Poor surface detail

• Particle-level sets♦ Still loses volume♦ Osher, Stanley, & Fedkiw, 2002

• MAC grid♦ Harlow, F.H. and Welch, J.E., "Numerical

Calculation of Time-Dependent Viscous Incompressible Flow of Fluid with a Free Surface", The Physics of Fluids 8, 2182-2189 (1965).

Page 35: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

35

Free Surfaces

+

-

+ +

+ +

+

+

+

+

+ +

+

+

+

+

+

+

+

+

+

+ +

+

+

+

+

+

+

+

+

+

+

+

+

+

-

-

-

-

-

+

0

0

-

-

-

-

-

-

-

-

--

-

-

-

-

-

-

-

-

-

-

-

--

-

-

-

-

-

-

-

-

--

--

-

MAC Grid Level Set

Page 36: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

36

Inviscid Navier-Stokes• Can be run faster• Only 1 Poisson Solve needed• Useful to model smoke and

fire♦ Fedkiw, Stam, Jensen 2001

Page 37: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

37

Solid Fluid Interaction• Long history in CFD• Graphics has many papers on

1 way coupling♦ Way back to Foster & Metaxas, 1996

• Two way coupling is a new area in past 3-4 years♦ Carlson 2004

Page 38: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

38

Where to get more info• Simplest way to working fluid

simulator (Even has code)♦ STAM 2003

• Best way to learn enough to be dangerous♦ CARLSON 2004

Page 39: Matlab

The UNIVERSITY of NORTH CAROLINA at CHAPEL HILL

39

ReferencesCARLSON, M., “Rigid, Melting, and Flowing Fluid,” PhD Thesis, Georgia Institute of Technology, Jul. 2004.

FEDKIW, R., STAM, J., and JENSEN, H. W., “Visual simulation of smoke,” in Proceedings of ACM SIGGRAPH 2001, Computer Graphics Proceedings, Annual Conference Series, pp. 15–22, Aug. 2001.

FOSTER, N. and METAXAS, D., “Realistic animation of liquids,” Graphical Models and Image Processing, vol. 58, no. 5, pp. 471–483, 1996.

HARLOW, F.H. and WELCH, J.E., "Numerical Calculation of Time-Dependent Viscous Incompressible Flow of Fluid with a Free Surface", The Physics of Fluids 8, 2182-2189 (1965).

LOSASSO, F., GIBOU, F., and FEDKIW, R., “Simulating water and smoke with an octree data structure,” ACM Transactions on Graphics, vol. 23, pp. 457–462, Aug. 2004.

OSHER, STANLEY J. & FEDKIW, R. (2002). Level Set Methods and Dynamic Implicit Surfaces. Springer-Verlag.

STAM, J., “Real-time fluid dynamics for games,” in Proceedings of the Game Developer Conference, Mar. 2003.