WRF-Fire development notes

From openwfm
Jump to navigation Jump to search

This page tracks activity in the WRF-Fire software development.

Wish list

Add your suggestions or plans here. For longer explanations or a discussion, please start a new section of the talk page and link to it here.
  • Get rid of the ugly includes in the argument lists to get the coefficients down the call chain to the spread rate calculations. Pass the coefficients by pointers defined in a module instead. Declare the pointers in the module, or pass them around in a single derived type argument. This is a necessary step before including the weather and fire components into VisTrails separately.
  • A standalone driver for the fire code that is independent of WRF. See discussion.
  • Merge with WRF 3.2
  • Modify WPS to compute terrain gradient at data resolution and interpolate it to the fire mesh.
  • Gradual ignition from a point or a line, without limitation on the initial radius.
    • The current scheme requires that the ignition area is several fire mesh steps large. When such area ignites all at once, all the heat is output to the atmosphere at once, instead of being output gradually and allowing ground layer circulation to develop over time.
  • Real test problem with real fire data, fine resolution and sharp terrain gradients
  • Canopy fire
    • Canopy fire collocated with ground fire is easy. A separate canopy fire would be harder.
  • Output to WRF-Chem
    • Output of the combustion products into WRF is also needed to visualize smoke.

In progress

When you start on an item from the wish list, please move the item here and add a link to the branch where you work on it.
  • Better quadrature for fuel left
    • The quadrature is done separately on 4 smaller cells per fire cell. The interpolation of time from ignition to the smaller cells should take into consideration the case when some of the nodes interpolated from are ignited and some are not.
  1. REDIRECT Template:WRF-Fire-branch
    • The current scheme is second order accurate when all 4 corners of a fire mesh cell are on fire, and exact when all 4 corners are not on fire. In the case when only some of the 4 corners are on fire, the only requirements are that the transition when nodes ignite is continuous and monotonous. In that case, the scheme may not be very accurate. A better scheme would be accurate in more cases and have natural invariance properties. branch jm2/mkim
This affects the amount of heat output from the cell in the timesteps when the fireline crosses the cell.
  • Input to the fire model the gradient rather than terrain height. This will allow the gradient to be smoothly interpolated in preprocessing in the WPS or in setting up ideal cases. No artificial terrain smoothing is needed. The current scheme interpolates terrain height linearly, and if the mesh the terrain is interpolated from is much coarser than the fire mesh, this results in gradient jumps along the terrain mesh lines. Then, the fire spread rate jumps along the terrain mesh lines. See discussion. branch jm2/grad.
  • Read the topography from a file in an ideal run. Fix/extend surface initialization in ideal cases to allow for defining surface properties like roughness, ground temperature, albedo etc., required by soil models and radiation codes. See discussion. branch adamko/surface
  • Support hyperbolic vertical mesh grading in ideal run not only exponential. branch adamko/surface
  • Set up fireflux text case branch jc

Done

Move the item here when done and add a link to the contributor's last commit before the merge into master.

2007

  • Initial WRF 2 + fire by tracers code received
  • Imported standalone new level set code
  • WRF+level set coupled code
  • Ignition from namelist

2008

  • Change nodes on the fire mesh from corners to centers
  • OpenMP support
  • Merge with WRF/WPS V3.0.1.1, delete standalone driver and the tracers fire code
  • Landfire data conversion

2009

  • Distributed memory (halos)
  • Set up nested ideal case
  • WPS support for fire grid and nesting
  • Add namelist.fire to define fuel categories
  • Interpolate for fuel_left locally to save stack memory

2010

  • Add restart support
  • Remove (by default) the warm perturbation (bubble) from atmospheric initializations in idealized case. Modify the code and add namelist variables allowing for ingesting the cold/warm perturbation of a specified size (for people interested in fire propagation in downburst/convective environments)
  • Released with WRF 3.2
  • Fetch high-resolution geogrid data automatically
  • Walking line ignition (as the fireman walks igniting the fire)

Back burner

Items from the wish list that are around for a long time or may never be done should be moved here.

External links