Summary

This demo shows how to model a expanding fireball with dynamic temperatures. The fireball is modeled as an analytical (primitive) sphere and a DeltaMotion description to change the size (via scales) as a function of time. The dynamic temperature uses the DataDrivenTempSolver to vary the temperature vs. time.

The following demos, manuals and tutorials can provide additional information about the topics at the focus of this demo:

Ground Geometry

The base geometry from the scene is a built-in ground plane. This plane is assigned material ID #1, which is configured with a blackbody emisisivity (spectrally flat and equal to 1). The temperature is fixed at 320 K.

Details

The fireball in the scene changes in size and temperature as a function of time. This section will briefly discuss how that can be accomplished.

Original Method

The original method for animating the fireball was developed by Tyler Peery @ AFIT and involved creating a unique sphere geometry for each timestep. Each of these spheres would be sized (radius) and temperature attributed for it’s given time. All of these spheres would be "buried" under the ground, and as a function of time the appropriate sphere would be "popped up" above the ground and then "dropped down" below the ground. The "pop up" and "drop down" motion was handled by a .mov file custom created for each sphere.

In the end, an animation with N time steps required N separate fireballs to be defined, each with a unique temperature and each driven by a unique .mov file. So N spheres, with N temperatures and N .mov files. Although this method worked, the required input files needed to be created by scripts and made the modification of the scenario difficult.

This demo includes the files using this method:

  • The geometry/lists/fireballs.glist file includes the declaration of all 240 <sphere> objects.

  • Each sphere has a unique .mov file associated with it that defines when it "pops up" and when it "drops down". These 240 files are located in the geometry/motion folder.

Simpler Method

Since this is really a single fireball, it makes more sense to configure it as such. When Tyler developed his solution, he did so because DIRSIG lacked a key feature: an way to change the temperature of the sphere as a function of time. More recent versions of DIRSIG addressed this with the data-driven temperature solver, which allows the user to create a file that has temperature vs. relative time as a simple, two-column ASCII/Text file.

The new approach is as follows:

  • A single fireball sphere is defined in geometry/lists/single.glist. Material ID 992 is assigned to this sphere. The initial size of the sphere is 49.74 meters.

  • The size of that sphere is driven by the geometry/motion/single.mov file. This .mov file places the center of the fireball sphere at -450,750,0 (half in the ground) and simply manipulates the XYZ scale (uniformly) of the sphere as a function of time to expand it.

  • The temperature of the sphere is temporally varied by assigning the data-driven temperature solver to material ID 992 in the materials/demo.mat file. The temperature vs. time data is in the file fireball_temp.txt.

The radius and temperature data verus time is plotted below:

fireball props

Setup

This section includes any step-by-step instructions for running and visualizing the simulation.

Single-Frame Simulation

To run the single-frame simulation, perform the following steps:

  1. Run the DIRSIG demo.sim file

  2. Load the resulting vis-t0000-c0000.img and/or mwir-t0000-c0000.img radiance file in the image viewer.

Multi-Frame (Video) Simulation

To run the multi-frame simulation, perform the following steps:

  1. Run the DIRSIG video.sim file

  2. Load the resulting vis and mwir radiance files (there will be multiple files due to the "file per capture" schedule used) in the image viewer.

The output of the multi-frame simulation is a series of images (frames). These image files can be scaled to series of PNG image files (using the image_tool) and then encoded as an MPEG-4 video using FFmpeg:

$ image_tool convert --autoscale=minmax mwir-t0000-c*.img
$ ffmpeg -i mwir-t0000-c%04d.img.png -pix_fmt yuv420p mwir.mp4

Point Collectors Simulation

With DIRSIG5, you can also run the point_collect.jsim scenario, which uses the PointCollectors to measure the total irradiance at various distanced from the fireball. This simulation can be run from the command-line:

$ dirsig5 point_collect.jsim

...

Setting up the 'PointCollectors' plugin
    8 collector(s)
    50000 sample(s) per collector
    50 time step(s)
    0.005 second sampling interval
    Output filename = 'point_collect_output.txt'
    Output units = IRRADIANCE
    Output cosine weighted = true
    Output spectrally integrated = true

...

Data collection started (capture time = 0.000000e+00 [s])
...
Data collection started (capture time = 2.400000e-01 [s])
Data collection started (capture time = 2.450000e-01 [s])

The primary output of this file is the point_collect_output.txt file, which has

Results

Framing Array Simulation

The output images from the framing array simulations are shown below.

single
Figure 1. The 320x240 single-frame fireball simulation.
video
Figure 2. The 320x240, 1 kHz, 120 frame fireball simulation.

Point Collectors Simulation

The output of the point collectors plugin is shown below.

collectors plot
Figure 3. A plot of two of the point collectors in the DIRSIG5 PointCollectors simulation.