Skip to main content

Model Library

Here you can find a list of useful speed functions that can be used with Spark, submitted by users within CSIRO as well as partners outside the organisation. Feel free to use these models in your work, or modify them as you see fit. If you have created your own useful spread model, please feel free to submit it using the form at the bottom of the page, and we will publish it here for others to use.

Please note that these models may not be suitable to ‘plug and play’ for your specific applications. The models may not take certain things into account that are important for your application such as the slope of the terrain, the time of day, variability of input parameters and so on. Ensuring that the models are valid for the input parameters used is also important, we strongly recommend that you read the primary references to determine the applicability of the equations used.

Model name Submitted by Description
Test James Hilton (CSIRO) Test case for constant speed plus wind.
Dry Eucalypt (VESTA) William Swedosh (CSIRO) CSIRO and DPAW developed rate of spread model for dry eucalypt forests.
CSIRO Grassland William Swedosh (CSIRO) CSIRO developed rates of spread model for Australian grasslands.
McArthur Eucalypt Forest William Swedosh (CSIRO) McArthur rate of spread for eucalypt forests.
Buttongrass moorlands William Swedosh (CSIRO) Marsden-Smedley and Catchpole rate of spread for buttongrass moorlands.
Heathland William Swedosh (CSIRO) Anderson (2015) rate of spread for heathland.
Rothermal William Swedosh (CSIRO) Rothermal (1972) rate of spread model for wildlands.
Slope Effects William Swedosh (CSIRO) McArthur and CSIRO Kataburn example.

Writing Spark speed functions

Spark allows you to program the outward speed of the fire perimeter, allowing flexibility to use any rate-of-spread model or test your own. You can also program a user defined initialization step as well as user-defined post-processing step. Programs are written in the C programming language, using the OpenCL 1.1 API, which supports a wide range of built-in mathematics functions. All of these can be used in a program, including several functions specific to the Spark solver given in the table below. All valid OpenCL C code can be used in programs, except variables with leading underscores which are restricted for internal use. Local floating-point variables should also be defined with REAL, rather than double, which may not be available on all platforms. Likewise, vectors should be defined with REALVEC2. Otherwise, the programs can contain any valid combination of comments, functions, variables, layer names and branches. The Spark framework carries out limited checking on speed functions, so any errors should be returned by the OpenCL compiler (although, unfortunately, this is not the case with all compilers). The rate of spread program requires an additional ‘speed =‘ definition to set the outward speed. For example, a simple test case is given in the Test model.

Variable Type Description Used in*
easting scalar The cell easting value (m). I
northing scalar The cell northing value (m). I
speed scalar Required: sets the normal speed at the perimeter (m/s). RP
wind scalar The dot product of the wind and front normal, limited by zero. R
wind_vector vector The wind vector. R
normal_vector vector The normal vector of the perimeter. R
class scalar The current classification value. IRP
state scalar The current state of the cell. state = 1 is burnable, state = 0 is unburnable IRP
random scalar A random number from a uniform distribution between 0-1. IRP
user0 scalar Internal user-defined data layer, written to ‘output grid’ layer 0. IRP
user1 scalar Internal user-defined data layer, written to ‘output grid’ layer 1. IRP
user2 scalar Internal user-defined data layer, written to ‘output grid’ layer 2. IRP
arrival scalar The ignition (arrival) time of the perimeter at the cell (s). No-data values indicate no recorded arrival time. P
time scalar The current solver time (s). RP
hour scalar The hour of the day of the simulation as would be read on a 24 hour clock. R
layername scalar The interpolated value within the cell from the user-defined layer named layername. IRP
dx(layername) scalar The x-spatial derivative of the user-defined layer named layername. IR
dy(layername) scalar The y-spatial derivative of the user-defined layer named layername. IR
grad(layername) vector The gradient of the user-defined layer named layername. IR

* I: Initialization programs, R: Rate-of spread programs, P: Post-processing programs

Submit a speed function

Submit a new bushfire spread model

  • Submit your model code below and it will be published in the list above.
 

Verification