390 likes | 403 Views
This article provides an introduction to fluid simulation, covering topics such as particle-based methods, discretization techniques, solver algorithms, and extensions like free surfaces and solid-fluid interactions.
E N D
Introduction to Fluid Simulation Jacob Hicks 4/25/06 UNC-CH
Different Kind of Problem • Can be particles, but lots of them • Solve instead on a uniform grid
Particle Mass Velocity Position Fluid Density Velocity Field Pressure Viscosity No Particles => New State
No Particles => New Equations Navier-Stokes equations for viscous, incompressible liquids.
What goes in must come out Gradient of the velocity field= 0 Conservation of Mass
Time derivative Time derivative of velocity field Think acceleration
Advection term Field is advected through itself Velocity goes with the flow
Diffusion term Kinematic Viscosity times Laplacian of u Differences in Velocity damp out
Pressure term Fluid moves from high pressure to low pressure Inversely proportional to fluid density, ρ
External Force Term Can be or represent anythying Used for gravity or to let animator “stir”
Navier-Stokes How do we solve these equations?
Discretizing in space and time • We have differential equations • We need to put them in a form we can compute • Discetization – Finite Difference Method
Discretize in Space Staggered Grid vs Regular X Velocity Y Velocity Pressure
Discretize the operators • Just look them up or derive them with multidimensional Taylor Expansion • Be careful if you used a staggered grid
1 1 -1 1 0 -4 1 1 -1 1 Example 2D Discetizations Divergence Operator Laplacian Operator
Make a linear system It all boils down to Ax=b.
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)
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.
Time Integration • Solver gives us time derivative • Use it to update the system state Ut U(t+Δt) U(t)
Discetize in Time • Use some system such as forward Euler. • RK methods are bad because derivatives are expensive • Be careful of timestep
Time/Space relation? • Courant-Friedrichs-Lewy (CFL) condition • Comes from the advection term
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?
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
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
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
Helmholtz-Hodge STAM 2003
Divergence Free Field • We have w and we want u • Projection step solves this equation
Ensures Mass Conservation • Applied to field before advection • Applied at the end of a step • Takes the place of first equation in Navier-Stokes
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
Operator Splitting • Add External Forces • Semi-lagrangian advection • Diffusion solve • Project field
Operator Splitting u(x,t) W0 W1 W2 W3 W4 u(x,t+Δt)
Various Extensions • Free surface tracking • Inviscid Navier-Stokes • Solid Fluid interaction
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).
Free Surfaces MAC Grid Level Set - + + + + + + + + - 0 + + + + + + + - - 0 + + + + + + - - - + + + + + + - - - - - + + + + - - - - - - + + + - - - - - - - + + - - - - - - - - - - - - - - - - -
Inviscid Navier-Stokes • Can be run faster • Only 1 Poisson Solve needed • Useful to model smoke and fire • Fedkiw, Stam, Jensen2001
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
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
References CARLSON, 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.