
For this project an original computer program was written in the C++ language,
using a technique that draws off Huygen’s Principle, but it is original
in itself. The program traces the fire perimeter across the forest environment.
Implementing Newton’s Law of Cooling, Fourier’s Law of Conduction,
and the Stefan-Boltzmann Law of Radiation, the program differentiates fire flow
from heat flow. It also uses a patch class environment system that records the
individual aspects of each individual area. The virtual forest is created from
a forest environment editor that can be changed by the user to mimic any realistic
forest.
The Basic Environment
The environment in which the fire persists is a system of patches. Within those
patches, there are more mini-patches. The patches each own their own specific
set of variables which depend on the fuel type, wind speed, wind angle, ambient
temperature, humidity, wet fuel, dry fuel, temperature, flash point, secondary
flash point, produced heat, and crown height. Though, some of these variables
have yet to have a place in the program. The collection of patches, as a whole,
is known as the virtual forest. Each patch type is unique and causes a fire
to either accelerate or slow down as it passes over the patch. The patches then
have individual sections within them called mini-patches. These mini-patches
are then used to further track the exact movement of the fire as it crosses
the virtual forest.

This is an overhead view of the virtual forest. Each different color represents
a different fuel type. The rectangle top left is an overall view of the forest.
Virtual Forest Level Editor
The virtual forest was developed by the virtual forest level editor, which
allows the user to design a forest from scratch through a Graphic User Interface.
The Algorithm Fire Spread/ Flow
The program uses a hybrid of both Huygen’s Principle and the Elliptical
Fire Theory. The different patches in the virtual forest contain different values
of what is called spread rate, which is the rate at which fire can spread through
the patch. The spread rate can be manipulated by factors such as heat and humidity.
For each time step, the fire spreads across the patches until the accumulated
value of the time steps reaches a point called the maximum spread rate (top
picture). This process is repeated until a fire arc is formed, making the perimeter
of the fire for the certain time step. In this picture the teal patches have
certain values. The fire line spreads across these patches, accumulating their
values until the maximum value is reached for the fire.

The fire arc shown here (second from right) is the same process as shown before,
just taken out many more iterations. The endpoints of the fire arc are then
stored, and during the next step are transformed into fire arcs themselves.
This process is computed once per time step, producing fire perimeter results
such as in the bottom picture. This picture depicts the result of several time
steps in a non-uniform virtual forest and shows the created fire perimeter.
Fire Perimeter Reduction
As the fire grows larger, only the perimeter is needed to map the fire flow.
If the computer took every fire endpoint and arced it, its efficiency would
be xN, whereas ‘x’ is the number of endpoints the fire arc contains
and ‘N’ is the number of time steps. Therefore, a system was developed
to record previously burned spots and reject new fire arcs in those burned
spots. This would increase the efficiency of the program by preventing “burned”
patches from being burned a second time. These two pictures show the fire
perimeter and the burnt mini-patches that help with fire perimeter reduction.
The Algorithm Heat Flow
Heat flow was solved by incorporating Fourier’s Law of Conduction, Newton’s
Law of Cooling, and the Stefan-Boltzmann law of Radiation. Fourier’s
law of conduction is performed in order to account for heat conduction through
air. The Stefan-Boltzmann Law of Radiation is then performed to account for
heat radiation. It is not used, however, to account for fire radiation of
heat. However, no heat loss is factored into these because Newton’s
Law of Cooling accounts for heat loss through all three types of heat flow,
convection, conduction, and radiation.
Heat created during the rapid oxidization process is not accounted for through
radiation. The heat produced in a patch while burning is based upon the total
percent of the patch burning and a pseudo value dictated by fuel types to
calculate how much energy can be produced by burning the patch completely.
So, for each iteration the heat produced by fire can be defined by multiplying
the heat produced by the percent of the patch burning. This process will continue
until the fuel is exhausted. The pictures above demonstrate their use.
The pictures shown above depict a very hot heat source (white) as it cools
and transfers the heat (red) until the patch temperatures drop back to the
ambient range (blue).
Environmental Factors
Fire is greatly affected by three certain environmental factors: wind, humidity,
and ambient temperature.
Wind
Wind has been accounted for with the incorporation of vectoring. Each fire
arc is subject to course correction by adjusting for wind using a vector which
is based upon both the spread distance and the wind speed. However, this adjustment
only takes place upon spread lengths emanating from the central ignition point.
This is because, if the wind is blowing, the fire’s shape would not
produce the right shape as dictated by FARSITE and all other data upon which
wind is based on. These pictures show the vectoring process in more detail.
Humidity
Humidity has not been incorporated because its effect on fire could not be
easily defined. Humidity could possibly be accounted for by editing the spread
rate based upon the ambient humidity; however, there is no finite scale upon
which to make this assessment.
Ambient Temperature
Ambient temperature is the starting temperature of the virtual forest. As
seen in the heat flow example, as the environment cools, it approaches the
ambient temperature. This is the basis of Newton’s Law of Cooling. The
beginning ambient temperature must be input by the user in the beginning,
and is handled by the program from then on.
Technical
This program was developed to be efficient. The use of advanced classes, vectors,
header files, text file input and output, and such has successfully increased
the efficiency of the program. The program, at its current state, is 1,403 lines
of code, with the most important processes in the main header file (Please refer
to Appendix C). However, the task is not completely done as of yet. Before the
final presentations, there will be several more additions to the current code.
There will also be a website developed detailing the project in its entirety.
Code additions include: correction of the wind vectoring code, a status number
box, a view that integrates the physical environment with the fire flow, and
a java applet demo version of the program that will be placed on the website,
as well as possibly incorporating parallel processing.