Difference between revisions of "WRF-Fire development notes"

From openwfm
Jump to navigation Jump to search
m (category)
(shuffled around)
Line 1: Line 1:
== Short-term==
+
==Wish list==
These are tasks where what to do it is already known, all that remains is to find the time to do it.
+
 
* Read the topography from a file in an ideal run ''See [[Talk:WRF-Fire wish list#Proposed input of additional data in ideal run|discussion]].
 
* Input to the fire model the gradient rather than terrain height. ''See [[Talk:WRF-Fire wish list#Proposed computation of smooth terrain gradient|discussion]].''
 
** 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.
 
* 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.
 
** 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.
 
** This affects the amount of heat output from the cell in the timesteps when the fireline crosses the cell.
 
 
* 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.
 
* 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.
 
* A standalone driver for the fire code that is independent of WRF.
 
* A standalone driver for the fire code that is independent of WRF.
 
** This is how WRF-Fire was originally developed and such driver was available until late 2008 or so. But, then it fell into disuse and the Fire has grown into the WRF over time.
 
** This is how WRF-Fire was originally developed and such driver was available until late 2008 or so. But, then it fell into disuse and the Fire has grown into the WRF over time.
* 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.
 
 
==Long-term==
 
These are more complex tasks or research projects, where the plan of attack may not be completely clear yet.
 
 
 
* Gradual ignition from a point or a line, without limitation on the initial radius.
 
* 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.  
 
** 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.  
 
* Canopy fire
 
* Canopy fire
** Canopy fire colocated with ground fire is easy. A separate canopy fire would be harder.
+
** Canopy fire collocated with ground fire is easy. A separate canopy fire would be harder.
 
* Output to WRF-Chem
 
* Output to WRF-Chem
 
** Output of the combustion products into WRF is also needed to visualize smoke.
 
** Output of the combustion products into WRF is also needed to visualize smoke.
 +
 +
==In progress==
 +
 +
* 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.
 +
** 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.
 +
** 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. ''See [[Talk:WRF-Fire wish list#Proposed computation of smooth terrain gradient|discussion]].''
 +
** 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.
 +
* 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 [[Talk:WRF-Fire wish list#Proposed input of additional data in ideal run|discussion]]. 
  
 
==Done==
 
==Done==

Revision as of 23:42, 29 May 2010

Wish list

  • 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.
  • A standalone driver for the fire code that is independent of WRF.
    • This is how WRF-Fire was originally developed and such driver was available until late 2008 or so. But, then it fell into disuse and the Fire has grown into the WRF over time.
  • 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.
  • 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

  • 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.
    • 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.
    • 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. See discussion.
    • 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.
  • 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.

Done

  • Restart
  • Walking line ignition (as the fireman walks igniting the fire)
  • 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)