77

Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Embed Size (px)

Citation preview

Page 1: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm
Page 2: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Course 14Course 14

Fluid SimulationFluid SimulationMonday, Half Day, 8:30 am - 12:15 pmMonday, Half Day, 8:30 am - 12:15 pm

Page 3: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Course ScheduleCourse Schedule

• The Basics of Fluid Flow (Robert, 105 min)

• Break (15 min)

• The Cutting-Edge in Film (Eran, 45 min)

• Real Time Fluids in Games (Matthias, 45 min)

• Non-Newtonian Fluids (Robert, 15 min)

Page 4: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Talk OutlineTalk Outline

• Particle level set method

• Vorticity confinement & vortex particles

• Fire simulation

• Solid-fluid coupling

Page 5: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Particle Level Set MethodParticle Level Set Method

[Enright et al. ’02]

Page 6: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Level SetsLevel Sets

• We like level sets:

– Smooth surface for rendering

– Geometric information (normals, curvature)

– Handle topological changes

Page 7: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

simple rigid body rotation vortex stretching

Problem: Bad Mass ConservationProblem: Bad Mass Conservation

• Even with high order solvers!

Page 8: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

SolutionSolution

Lagrangian marker particlesEulerian level set

0

0

COMBINE

Page 9: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

ParticlesParticles

• Passively advected with flow

• Help correct interface

– Especially areas of high curvature

• Hybrid surface model [Foster & Fedkiw ’01]

– Particles inside water

• Particle level set method [Enright et al. ’02]

– Particles on both sides

Page 10: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

ParticlesParticles

Rigid Body

Original shape

Level set only One-sided particles Particle level set method

Page 11: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

ParticlesParticles

• Seeded within band of interface

• Carry sign and radius

• Periodically reseed particles

– Add to under-resolved regions

– Delete unnecessary particles

Page 12: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Error IdentificationError Identification

• Escaped particles (on wrong side of interface)

pr

0

0

Page 13: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Error QuantificationError Quantification

• Particles behave like little level set spheres

pr

Page 14: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Error CorrectionError Correction

• Compute corrections to >0 and <0 regions

• Merge into final corrected level set

– Take minimum magnitude

0

0

E

0 0

0

0

Page 15: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Particle Level Set UpdateParticle Level Set Update

• Advect particles & level set

• Particle correction

• Reinitialize

• Particle correction

• Adjust radii

Page 16: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

simple rigid body rotation vortex stretching

Reduced Mass LossReduced Mass Loss

Page 17: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Fast and Accurate PLSFast and Accurate PLS

• Original PLS:

– 3rd order RK; 5th order HJ-WENO

• [Enright et al. ‘04]: Good results with lower order methods

– Semi-Lagrangian (advection)

– Fast marching method (redistancing)

– 2nd order RK for particles

• Easier for adaptive grids

Page 18: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Vorticity Confinement & Vorticity Confinement & Vortex ParticlesVortex Particles

[Selle et al. ’05]

Page 19: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

VorticityVorticity

• Vorticity:

– Local rigid rotation

• Want to simulate turbulent phenomena

– Problem: numerical dissipation (boring flows)

Page 20: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Fixing Boring FlowsFixing Boring Flows

Boring Flow Vorticity Confinement Vortex Particle Method

Page 21: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Vorticity ConfinementVorticity Confinement

2. Compute vorticity

4. Compute a force

1. Start with a velocity field

3. Compute vectors directed toward local maxima in vorticity magnitude

[Steinhoff & Underhill ’94; Fedkiw et al. ’01]

[Andrew Selle]

Page 22: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Confinement ParameterConfinement Parameter

=0.25 =0.50

Page 23: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Limitations of Vorticity ConfinementLimitations of Vorticity Confinement

• Uniformly amplifies vorticity ) grid artifacts

• Can only amplify vorticity already on the grid

• Unstable with larger

=2

Page 24: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Vortex Equations of FlowVortex Equations of Flow

Navier-Stokes Equations

Vortex Equations of Flow

Page 25: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Vortex Particle MethodVortex Particle Method

• Hybrid method:

– Vortex particles & grid-based fluid solver

– Evolve both and u

• Easier than trying to compute u from

[Selle et al. ’05]

Page 26: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Vortex Particle MethodVortex Particle Method

• Vortex particle update:

– Move particles (advection)

– Change vorticity (vortex stretching)

• Adding vorticity to flow:

– Apply analytic confinement force

– Ensures vorticity is conserved

Page 27: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Results - SmokeResults - Smoke

Hybrid Method(6000 particles)

Page 28: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Results - Smoke Results - Smoke

Page 29: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Results - WaterResults - Water

[320x128x320 effective octree, 600 particles]

Page 30: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Fire SimulationFire Simulation

[Nguyen et al. ’02]

Page 31: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

FireFire

Gaseous fuel

Blue core

Blackbody radiation

Soot & smoke

Heating

Cooling

Emission due to chemical reaction

Assumed premixed with air

Yellowish/orange glow

Visible after cooling

ignition

Page 32: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Fire SimulationFire Simulation

• 2 phase flow

– Gaseous fuel

– Hot gaseous product

• Level set captures interface (blue core)

• Incompressible & inviscid

• Model gas expansion

[Nguyen et al. ’01,’02]

Page 33: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Flame ModelingFlame Modeling

hot gaseous product

gaseous fuel

thin flame

Page 34: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Blue CoreBlue Core

• Track using level set (don’t need PLS)

Varying flame reaction speed S (smaller on right)

Page 35: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Jump ConditionsJump Conditions

• Using:

• e.g. Conservation of mass:

Shorthand:

Mass flux entering flame front

Mass flux exitingflame front

Page 36: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Jump ConditionsJump Conditions

• Conservation of mass and momentum:

Page 37: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Jump ConditionsJump Conditions

• Can rewrite as

Page 38: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Varying Density RatioVarying Density Ratio

Larger f / h on right

Page 39: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Ghost ValuesGhost Values

Fuel

Ghost ValueHot Gas

Ghost Fluid Method: [Fedkiw et al. ’99]

Page 40: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Velocity JumpVelocity Jump

Solve for fuel phase Solve for products phase

Page 41: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Pressure JumpPressure Jump

• Incorporate into pressure solve (projection step)

• e.g. In 1D:

pi+2

pi pi-1

xi xi-1 xi+1 xi+2 xI

pi+1

ghost

Page 42: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

When All is Said and Done…When All is Said and Done…

• Still symmetric, positive definite!

Page 43: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Temperature & Smoke DensityTemperature & Smoke Density

Temperature

• Used for color map

Smoke Density

• Soot & smoke

Page 44: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

CampfireCampfire

Page 45: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Flammable SolidsFlammable Solids

• Voxelize solid

• Track solid’s temperature (heat conduction)

• After ignition

– Change solid voxels to negative (fuel)

– Set injection velocity on faces of solid voxels

Page 46: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Flammable BallFlammable Ball

Page 47: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Multiple Interacting LiquidsMultiple Interacting Liquids[2nd talk – “Fluids” papers session – Wed. 8:30-10:15]

Page 48: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Solid-Fluid CouplingSolid-Fluid Coupling

[Guendelman et al. ’05]

Page 49: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Lagrangian vs. Eulerian MeshesLagrangian vs. Eulerian Meshes

Lagrangian (moving) mesh

• Good for solids

• Bad for fluids

– Significant deformation and topology change

Eulerian (static) mesh

• Good for fluids

• Bad for solids

– Harder to track moving material quantities

Page 50: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Strong vs. Weak CouplingStrong vs. Weak Coupling

Strong coupling

(simultaneous solution)

• Monolothic system

• More stable

Weak coupling

(staggered solution)

• Use existing simulators

• Less stable

SOLIDS SIM

FLUIDS SIMSOLIDS + FLUIDS SIM

e.g. [Chentanez et al. ’06]

Page 51: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Volumetric vs. Thin SolidsVolumetric vs. Thin Solids

Volumetric Thin shell

Page 52: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

256x256x192 effective octree; 30k triangles

Coupling to Thin SolidsCoupling to Thin Solids[Guendelman et al. ’05]

Page 53: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Preventing Leaks: VisibilityPreventing Leaks: Visibility

Page 54: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Check visibility of interpolation nodesUse replacement ghost value when interpolating

One-Sided InterpolationOne-Sided Interpolation

Page 55: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

One-Sided AdvectionOne-Sided Advection

• Clip semi-Lagrangian rays

u

x-ut

Page 56: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Additional ConsiderationsAdditional Considerations

• Crossed-over nodes

• Preventing particles from crossing solid

• Redistancing & velocity extrapolation

Page 57: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Simulation StepSimulation Step

un,n

Advance particle level set ! n+1

Advect un and add gravity ! u*

Project u* ! un+1

un+1,n+1

One-sided advection( and particles)

One-sided advection (u)

Page 58: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Solid Affecting FluidSolid Affecting Fluid

• Rasterize solid onto grid faces

• Enforce solid velocity with Neumann boundary conditions

Project u* ! un+1

Page 59: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

One-Way Coupling StepOne-Way Coupling Step

un,n

Advance particle level set ! n+1

Advect un and add gravity ! u*

Project u* ! un+1

un+1,n+1

Advance solid

Enforce solid velocities at solid-fluid interface

Page 60: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

160x192x160 effective octree

One Way Coupling ExampleOne Way Coupling Example

Page 61: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Fluid Coupling ForceFluid Coupling Force

• Want to use fluid pressure

• Incompressible pressure can be noisy

– Incompressibility = hard constraint

– Enforcing solid velocity = hard constraint

– Better for compressible fluids [Yngve et al. ‘00; Fedkiw ‘02]

Page 62: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Smoother Coupling PressureSmoother Coupling Pressure

• Don’t enforce solid velocity

– Treat solid as fluid

• Solve variable density fluid for pc

Page 63: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Two Pressure Solves!Two Pressure Solves!

• Incompressible pressure (projection):

– Enforce incompressibility & solid velocity

– Essential for reducing mass loss

• Coupling pressure:

– Does not modify fluid velocity

– Essential for smoother coupling force on solid

Page 64: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Computing Force on SolidComputing Force on Solid

• Fluid pressure pushes on both sides

p1

p2

Page 65: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Computing Force on SolidComputing Force on Solid

• Net force is proportional to pressure jump [pc]

p1 - p2

Page 66: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Computing Force on SolidComputing Force on Solid

Rasterize solid

Compute coupling pressure

Pressure jumps on faces

Average to nodes

Extrapolate

Interpolate at centroid

Compute force

Page 67: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Two-Way Coupling StepTwo-Way Coupling Step

un,n

Advance particle level set ! n+1

Advect un and add gravity ! u*

Advance solid

Project u* ! un+1

un+1,n+1

Compute coupling pressure and apply force to solid

Page 68: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

148x148x111 uniform; 2.5k triangles

Rigid ShellRigid Shell

Page 69: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

200x200x200 effective octree; 30k triangles

Water-Cloth CouplingWater-Cloth Coupling

Page 70: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

210x140x140 uniform; 30k triangles

Coupling to SmokeCoupling to Smoke

Page 71: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Coupling to Volumetric SolidsCoupling to Volumetric Solids[Losasso et al. ’06]

Page 72: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

ApproachApproach

• Rasterize solid onto fluid grid

– Compute object

• Fill with ghost fluid values

• Two-way coupling as for thin shells

Page 73: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Volumetric SolidsVolumetric Solids

Extrapolate fluid values[Houston et al. ’03;

Rasmussen et al. ’04]

Need grid values in solid

Page 74: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Volumetric SolidsVolumetric Solids

• Velocity boundary conditions

– Model object friction (slip to no-slip)

boundary conditions

– Extrapolate fluid into object

• Separation conditions

– Avoid pulling water out of solid

• Also collide fluid particles against objects

Page 75: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Two-Way CouplingTwo-Way Coupling

Solid Affecting Fluid

• Neumann boundary conditions

Fluid Affecting Solid

• Compute coupling pressure

• Apply force

Page 76: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

Ice Cubes ExampleIce Cubes Example

100x100x100 uniform grid

Page 77: Course 14 Fluid Simulation Monday, Half Day, 8:30 am - 12:15 pm

SummarySummary

• Particle level set method

– Particles help conserve mass

• Vorticity confinement & vortex particles

– Help preserve “turbulence” in flow

• Fire simulation

– 2 phases with jump conditions

• Solid-fluid coupling

– Couple using solid velocity & fluid pressure