cs 775 - advanced computer graphics · cs775: lecture 10 parag chaudhuri fluid simulation eulerian...

23
CS 775: Advanced Computer Graphics Lecture 10: Grid Fluids

Upload: ngokiet

Post on 29-Jul-2018

235 views

Category:

Documents


0 download

TRANSCRIPT

CS 775: Advanced Computer Graphics

Lecture 10: Grid Fluids

CS775: Lecture 10 Parag Chaudhuri

Fluid Simulation

● Calculus Review

— Gradient (   ): A vector pointing in the direction of the greatest rate of increment

— Divergence (     ): Measure how the vectors are converging or diverging at a given location (volume density of the outward flux)

      can be a scalar or a vectoru∇ u=( ∂u∂ x,∂u∂ y,∂u∂ z )

http://en.wikipedia.org/wiki/Gradient

∇⋅

http://www.cs.unc.edu/~lin/COMP768­S09/LEC/fluid.ppt

∇⋅u=∂ u∂ x

+∂ u∂ y

+∂ u∂ z

      can only be a vectoru

CS775: Lecture 10 Parag Chaudhuri

Fluid Simulation

● Calculus Review

— Laplacian (   ): Divergence of the gradient

— Finite Difference: Approximating a derivative

∇2

      can be a scalar or a vectoru∇ 2u=( ∂

2u

∂ x2 +∂

2u

∂ y2 +∂

2u

∂ z 2 )

∂ u∂ x

=ui+1−u ix i+1−x i

∂ u∂ t

=u i+1−u it i+1−t i

over space

over time

CS775: Lecture 10 Parag Chaudhuri

Fluid Simulation

● Calculus Review

then, ∇ F=[∂ f∂ x

∂ f∂ y

∂ f∂ z

∂ g∂ x

∂ g∂ y

∂ g∂ z

∂ h∂ x

∂ h∂ y

∂ h∂ z

] ∇⋅F=∂ f∂ x

+∂ g∂ y

+∂h∂ z

If F (x , y , z)=f (x , y , z) i+g(x , y , z) j+h(x , y , z) k

and, ∇ 2 F=∇⋅(∇ F )=[∂

∂ x(∂ f∂ x

)+ ∂∂ y

(∂ f∂ y

)+ ∂∂ z

(∂ f∂ z

)

∂∂ x

(∂ g∂ x

)+ ∂∂ y

(∂ g∂ y

)+ ∂∂ z

(∂ g∂ z

)

∂∂ x

(∂h∂ x

)+ ∂∂ y

(∂h∂ y

)+ ∂∂ z

(∂h∂ z

) ]

CS775: Lecture 10 Parag Chaudhuri

Fluid Simulation

● Navier­Stokes Equation

● Derivation Sketch

∂ u∂ t

=−u⋅∇ u−1ρ ∇ p+ν∇

2 u+ g Momentum Equation

mD uD t

=F where Dϕ( x , t )Dt

=∂ϕ( x , t )

∂ t+

∂ϕ( x , t )∂ x

⋅∂ x∂ t

=∂ϕ( x , t )

∂ t+∇ ϕ( x , t )⋅u

mD uD t

=m g−V ∇ p+V μ ∇2 u

D uD t

= g−1ρ ∇ p+

μρ ∇

2 u

∂ u∂ t

=−u⋅∇ u−1ρ ∇ p+ν∇

2 u+ g

u is fluid velocityμ is dynamic viscosityg is acceleration due to gravity

CS775: Lecture 10 Parag Chaudhuri

Fluid Simulation

● Navier­Stokes Equation

● Derivation Sketch

∇⋅u=0 Incompressibility Equation

u is fluid velocity

Ω is an arbitrary chunk of fluid

n is normal at surface

ddt

(VolumeΩ)=∫∫Su . n . dS

=∫∫∫Ω∇⋅u .dΩ

=0 for incompressibility

⇒∇⋅u=0

VolumeΩ is its volume

S is its surface boundary

CS775: Lecture 10 Parag Chaudhuri

Fluid Simulation● Eulerian Viewpoint

— Discretize the domain using finite differences

— Define scalar & vector fields on the grid

— Use the operator splitting technique to solve each term separately

— Advantages

› Derivative approximation

› Adaptive time step/solver

— Disadvantages

› Memory usage & speed

› Grid artifact/resolution limitation

http://www.eng.nus.edu.sg/EResnews/022014/images/rd02­fig1.jpg

CS775: Lecture 10 Parag Chaudhuri

Fluid Simulation● Lagrangian Viewpoint

— Discretize the domain using particles

— Define interaction forces between neighbouring particles using smoothing kernels.

— Advantages

› Mass Conservation

› Intuitive— Disadvantages

› Surface tracking

http://mec­mail.eng.monash.edu.au/~mct/mct/docs/sph/sph.html

CS775: Lecture 10 Parag Chaudhuri

Fluid Simulation● Solving the Navier­Stokes Equation

— Eulerian Viewpoint

— Operator Splitting

› One complicated Multi­dimensional operator solved as a series of simple, lower dimensional operators

› Each operator can have its own integration scheme

› High Modularity and Easy to debug

un=A+B+D+P

u2

u1

u3

un+1

CS775: Lecture 10 Parag Chaudhuri

Fluid Simulation● Advection

● Euler

● Semi­Lagrangian (look back in time) 

∂ u∂ t

=−u⋅∇ u

uin+1−ui

n

Δ t=−u⋅

ui+1n − ui−1

n

2 Δ xUnstable!

u?n+1−ui

n

Δ t=0

Unconditionally stable!but hasNumerical Dissipation

CS775: Lecture 10 Parag Chaudhuri

Fluid Simulation● Incompressibility and Pressure Solve

— Advection may introduce  compression/expansion in the field

 Discrete Multiscale Vector Field Decomposition, Tong et al, 2003

CS775: Lecture 10 Parag Chaudhuri

Fluid Simulation● Hemlholtz­Hodge Decomposition

 Discrete Multiscale Vector Field Decomposition, Tong et al, 2003

=

+u ∇ p udiv_free

Input Velocity FieldCurl Free (irrotational)

Divergence Free (incompressible)

=

CS775: Lecture 10 Parag Chaudhuri

Fluid Simulation● Incompressibility and Pressure Solve

udiv_free=u−∇ p −(1)

∇⋅udiv_free=0 −(2)

∇⋅∇ p=∇⋅u

Solve (3), then plug into (1) to find new incompressible velocity field.

CS775: Lecture 10 Parag Chaudhuri

Fluid Simulation● Incompressibility and Pressure Solve

Staggered Grids

CS775: Lecture 10 Parag Chaudhuri

Fluid Simulation● Incompressibility and Pressure Solve

— Divergence

— Gradient

∇⋅u=∂ u∂ x

+∂ u∂ y

≈u2−u1+v2−v1

Δx

∇ x p=∂ p∂ x

≈p2− p1

Δx

CS775: Lecture 10 Parag Chaudhuri

Fluid Simulation● Incompressibility and Pressure Solve

— Laplacian (Divergence of Gradient)

∇⋅∇ p≈

pi+1, j− pi , jΔ x

−pi , j− pi−1, j

Δ x+pi , j+1− p i , j

Δ x−pi , j− pi , j−1

Δ xΔ x

CS775: Lecture 10 Parag Chaudhuri

Fluid Simulation● Incompressibility and Pressure Solve

— Boundary Conditions

u⋅n=0

CS775: Lecture 10 Parag Chaudhuri

Fluid Simulation● Incompressibility and Pressure Solve

— Solving

› A Poisson Equation

› Sparse, positive definite linear system of equations

› One equation per cell, cells globally coupled› Conjugate Gradients solver

∇⋅∇ p=∇⋅u

CS775: Lecture 10 Parag Chaudhuri

Fluid Simulation● Viscosity

— Solving

— Dicretize and solve

› If    is      , explicit integration● No need to solve linear system

› If     is      , implicit integration● Stable for high viscosities.

∂ u∂ t

=ν∇2 u

unew= uold+Δ t ν∇2 u*

u*

u*unew

uold

CS775: Lecture 10 Parag Chaudhuri

Fluid Simulation● Complete Solver

Velocity Solver

Advect Velocities

Add Viscosity

Add Gravity

Pressure Projection

CS775: Lecture 10 Parag Chaudhuri

Fluid Simulation● Complete Solver

Velocity Solver

Advect Velocities

Add Viscosity

Add Gravity

Pressure Projection

Done Finally?

CS775: Lecture 10 Parag Chaudhuri

Fluid Simulation● Complete Solver

Velocity Solver

Advect Velocities

Add Viscosity

Add Gravity

Pressure Projection

Not Quite!

CS775: Lecture 10 Parag Chaudhuri

Fluid Simulation● Complete Solver

Velocity Solver

Advect Velocities

Add Viscosity

Add Gravity

Pressure Projection

Surface Tracking and Reconstruction