modeling and visualizing fire without getting burnedjun 29, 2005  · computing 3d contours...

65
Modeling And Visualizing Fire Without Getting Burned MCSD Seminar June 29, 2005 Glenn P. Forney

Upload: others

Post on 22-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Modeling And Visualizing Fire Without Getting Burned

MCSD Seminar

June 29, 2005

Glenn P. Forney

Page 2: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Overview

• Fire Models

• Fire modeling applications

• Gaining insight through visualization

Page 3: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Smokeview Visualization “Team”

Glenn ForneyKevin McGrattanHoward BaumRon Rehm

Anthony Hamins – experimental validationSteve Kerber – forced ventilationGreg Linteris – fundamental fire Physics

Ruddy MellRon Rehm

Urban-wildland interface problem

Dan MadrzykowskiBob VettoriDoug Walton

Fire reconstructions

and others…

FDS computational model

Kuldeep Prasad – multi-meshChuck Bouldin - parallelization

Smokeview visualization

Page 4: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

The Purpose of Computing is Insight Not Numbers - R. W. Hamming

Influence on visualization and Smokeview

Page 5: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Fire Models•Can provide insight into complex phenomena

within a fire scenario includingFlame spread Gas Conc.Fuel package SmokeHRR VentilationSuppression Radiation

•Can provide a tool for understandingFire behavior under various ventilation conditions

Page 6: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Single Equation Models

Hand (or simple computer) calculations– Heat release rate– Flame height– Minimum Flashover HRR– T-squared Fire Growth- Predicting Time to Flashover

Page 7: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Flame Height

DQLf 02.1- 23.0= 5/2&

Trash can HRR = 50 kWTrash can diameter = 0.3 m (1 ft)Estimated Trash Can Flame Height = 0.8 m (2.5 ft)

P 138 JQ

Page 8: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Zone Models(ODE models)

- Divide room into two zones

Hot Upper Zone

Cool Lower Zone

Page 9: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Zone models• Two primary control volumes

– Upper / lower layers• Conditions assumed uniform in each layer• Correlations

– Combustion – Plume flow– Vent flow (entrainment)

Hot Upper Zone

Cool Lower Zone

Page 10: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Zone models

radiation

entrainment ylay

fm&fq&

vq&vm&convection cq&

rq&

vq&vm&

Page 11: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Zone Modeling Equations

UULL TTRP ρρ ==

UUVU TmcE =L

L mdt

dm&= L

LL qdt

dVPdt

dE&=+

UU m

dtdm

&=U

UU qdt

dVPdt

dE&=+

Internal energy

work

enthalpy

State Equations

Ideal Gas Law

Internal Energy

LLVL TmcE =

Conservation of mass and energy

Page 12: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Zone modelsGoverning Equations:

)+(V1-γ

= UL qqdtdP

&&Pressure:

)-(γA1-

=room dt

dPVqPdt

dyUU

abs

lay&Layer interface:

)V-)Tmc-((1

= XXXp dtdP

qmcdtdT

XXp

X &&Upper/Lower LayerTemperature:

Page 13: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Zone Modeling Equations

⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜

=

U

L

U

TTVP

x )(xfdtdx

=

“Small” changes in P, VU, TL, TU Large changes in dP/dt

Stiff ODE solvers required for solution(use DASSL)

Page 14: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Zone model visualization

Page 15: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Zone to Field Models

Page 16: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Field models

Page 17: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Fire Dynamics Simulator and Smokeview

Version 1 release, February 2000Version 4 release, November 2004

http://fire.nist.gov/fds

Page 18: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Fire Modeling Applications

Page 19: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Fuel Spray (Walton, Floyd)

Page 20: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Rack Storage Fire

Page 21: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

WTC Phase 1, Test 5, West Aspirated TCs

Time (s)

0 1000 2000 3000

Tem

pera

ture

(C)

0

200

400

600

800

1000

365 cm (Exp)215 cm (Exp)34 cm (Exp)365 cm (FDS)215 cm (FDS)34 cm (FDS)

FDS Validation Experiment

3 MW Fire, 23’x12’x12’Compartment, 1 hour burn

Page 22: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each
Page 23: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Visualizing Fire Data

Fire Dynammics Simulator (FDS) - Modeling Fire Data

Page 24: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Software Used With Smokeview

• OpenGL – 3D low level graphics API• GLUT – graphics library utility toolkit• GLUI – user interface toolkit implementing

dialog boxes using GLUT and OpenGL• C • Fortran 90

Page 25: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Software Used With Smokeview (Cont)

• GD – image library

• Pnglib – image library

• Zlib – compression library

• Jpeglib – image library

Page 26: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Who is Using FDS and Smokeview?

1) DevelopersDiagnose problems with Physics and Numerics of FDS

Page 27: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Who is Using FDS and Smokeview?

Study effects of fire dynamics

Cherry Road LODD Incident December 1999

Litigation, Forensic studies,Fire Protection Engineers,Architects, Regulatory agencies NRC, DOE, …

2) Engineers/Scientists

Page 28: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Who is Using FDS and Smokeview?3) Fire Fighters (trainees)

Fight fire “on the computer”

Page 29: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Visualization Overview• load data• specify geometry•Light scene• move, translate and scale geometry

xMM n1LMi – rotation, translation or scaling

matrix transformationsx – position vector

MotionColorStructure

Page 30: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Drawing

• Specify vertices• Draw objects (connect vertices)• Move objects• Project objects onto 2D plane • Transfer 2D plane onto a portion of the

computer screen

Page 31: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Drawing Shapes

Page 32: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Lighting

Page 33: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Smokeview Shading ExampleShadedUnshaded

Page 34: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Smokeview Shading Example

Shaded isosurface Unshaded slice

Page 35: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Lighting/ShadingLight source

normals

Lighting• Adds more realism to 3D scenes• Computed using normal vectors light source direction vectors

Observer

Page 36: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Specifying Normals(Perpendiculars)

One normal per triangle

glNormal3f(nx,ny,nz);glVertex3f(ux,uy,uz);glVertex3f(vx,vy,vz);glVertex3f(wx,wy,wz);

(facet shape)n = (u-v) x (w-v)

u

vw

n

Page 37: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Specifying Normals (Cont)(Perpendiculars)

One normal per vertex

glNormal3f(nx1,ny1,nz1);glVertex3f(x1,y1,z1);glNormal3f(nx2,ny2,nz2); glVertex3f(x2,y2,z2);glNormal3f(nx3,ny3,nz3);glVertex3f(x3,y3,z3);

(smooth shape)u

vw

Page 38: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Drawing a Smokeview Scene

• Particles

• Shaded contours (slice files)

• 3D contours (isosurface files)

• 3D Smoke

Page 39: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

ParticlesglPointSize(partpointsize);glBegin(GL_POINTS);for (n = 0; n < nsmokepoints; n++) {glColor4fv(rgb[itpoint[n]]);glVertex3f(xplts[xpoints[n]],

yplts[ypoints[n]],zplts[zpoints[n]]);}glEnd();

Page 40: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Slices - 2D Contours

Page 41: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

2D Contours (Cont)

10

0

5

5

5

5 0

10

Page 42: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

2D Contours (Cont)

10

0

5

5

5

5 0

10

Triangulate so that all hypotenuses follow level curves

Page 43: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Slices 2D Contours - Example

Page 44: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Computing 3D Contours (isosurfaces)

Marching Cube Algorithm

• Divide domain into a number of cubes• For each cube determine where isosurface crosses cube• At each corner of cube data is either above or below isosurface level – 256 cases

- Above isosurface level

3 of 15 cases

Page 45: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

3D Contours - Example

Outline Solid

Page 46: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

3D Contours - Example

Multiple normalsfor each vertex

Single normal for each vertex

Page 47: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Transparency - ExampleTransparent Solid

Page 48: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Visualizing Smoke

tracer particles 3d contours realistic/3D smoke

Page 49: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Simple Smoke Visualization Strategy

Observer

Assume “ambient” light source behind smoke

Mix smoke color with background scene color

Background scene

Page 50: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Advanced Smoke Visualization Strategy

Observer

“Ambient” light source behind smoke

Mix smoke color with background scene color

Background scene

Directional light source

Page 51: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

ExamplesSun behind clouds

Sun above clouds

Diffuse/Ambient Light

Page 52: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

3D SmokeUsing Transparency to Visualize SmokePhysics-based computation of smoke transparency

Front ViewSide View

Page 53: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

3D SmokeUsing Transparency to Visualize SmokePhysics-based computation of smoke transparency

α − οbscurationΔx - distance between adjacent grid planessi- soot densityαi = 1 - exp(-ksiΔx) - Beer’s law

Page 54: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

3D Smoke

• Smokeview adjusts each αiin real time for non-axis aligned view distances using:

xx ΔΔ−−= /ˆ)1(1ˆ αα

• Smoke may be drawn faster by skipping planes (need to adjust α’s for planes that remain)

2/ˆ =ΔΔ XX 22 2)1(1ˆ αααα −=−−=

Page 55: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Benchmark Exercise: Under-ventilated Compartment

Page 56: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

3D SmokeReality Check

Page 57: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Future Work

Possible future directions for Smokeview

Page 58: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Representing Data With Color

Page 59: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Representing Data With Color

Page 60: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Representing Data With Color

3D color “space”

Page 61: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Representing Data With Color

“rainbow colorbar”

3D color “space”

Page 62: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Simulating Thermal ImagersDetermine colorbar appropriate for use with a thermal imager

How does a thermal imager respond to • temperature, • gas composition

Page 63: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Exploiting Texture Mapping and Tours

Page 64: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Beyond the CPU Programming the GPU

Use the video card (GPU) to perform scientific computations

Why?Pseudo code for 3D smoke visualizationfor(i=0;i<ni;i++){

for(j=0;j<nj;j++){correct α at each grid node

{}

CPU - serialGPU - parallel

Page 65: Modeling And Visualizing Fire Without Getting BurnedJun 29, 2005  · Computing 3D Contours (isosurfaces) Marching Cube Algorithm • Divide domain into a number of cubes • For each

Summary

•Not enough to run a fire model (or any model)

•Visualization is a useful tool for analyzing data and gaining insight into the phenomena being studid

[email protected]