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.