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.
Related Materials
The following demos, manuals and tutorials can provide additional information about the topics at the focus of this demo:
-
Related Demos
-
N/A
-
-
Related Manuals
-
The Temperature Solvers manual
-
-
Related Tutorials
-
N/A
-
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 all240
<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 thegeometry/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 ID992
is assigned to this sphere. The initial size of the sphere is49.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 thematerials/demo.mat
file. The temperature vs. time data is in the filefireball_temp.txt
.
The radius and temperature data verus time is plotted below:

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:
-
Run the DIRSIG
demo.sim
file -
Load the resulting
vis-t0000-c0000.img
and/ormwir-t0000-c0000.img
radiance file in the image viewer.
Multi-Frame (Video) Simulation
To run the multi-frame simulation, perform the following steps:
-
Run the DIRSIG
video.sim
file -
Load the resulting
vis
andmwir
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.


Point Collectors Simulation
The output of the point collectors plugin is shown below.
