Fuel moisture model

From openwfm
Revision as of 20:36, 17 February 2019 by Jmandel (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search
Back to the WRF-SFIRE user guide.

Fire spread rate depends strongly on the moisture contents of the fuel. In fact, the spread rate drops to zero when the moisture reaches the so-called extinction value

Dependence of fire spread rate (with zero wind and slope) on fuel moisture. The spread rate becomes zero when the fuel moisture equals the extinction moisture, here 0.25.

For this reason, we have coupled the fire spread model with a simple fuel moisture model integrated with WRF and SFIRE. The model takes atmospheric state from WRF and provides fuel moisture to SFIRE.

Fuel moisture model description

The fuel is considered to consist of components - called moisture classes here - such as those with standard 1, 10, and 100 hour lag time. Each fuel category is a mixture of the moisture classes with the proportions given per the fuel category. The temperature and the relative humidity of the air (from the WRF atmosphere model) determine the fuel equilibrium moisture contents. In each class, the moisture contents approaches the equilibrium exponentially in time, with 63% of the difference gone within the given time lag if the equilibrium is constant in time. This is modeled by a standard time-lag differential equation and the class moisture contents generally tracks a time-varying equilibrium with a delay. To model hysteresis effects, there is a higher drying equilibrium and a lower wetting equilibrium; when the fuel moisture is between the two, it does not change. The equilibria are computed from the atmospheric state from WRF. During rain, the equilibrium moisture is replaced by the saturation moisture contents, and the time lag depends on rain intensity. If the rain intensity is under the given rain threshold, no rain wetting (soaking) takes place. For more intense rain, the time lag decreases and approaches the given soaking time lag exponentially, with 63% of the asymptotic value achieved at a given saturation rain intensity.

The moisture classes are modeled on the atmospheric grid, then interpolated to fire grid points and combined in proportions given the fuel category at the fire grid point. The moisture model can run with time step larger than the fire model time step. The numerical method used is stable for arbitrarily large time steps and exact if the equilibrium moisture is constant for the duration of the time step.

Calibration of rain wetting

The default rain wetting coefficients were fitted for fine fuels (10 hour moisture class) for the Canadian fire danger rating system. Both pictures show the increase of fuel moisture over 24 hours for a given rain intensity.

Finefuels.png Timelag.png

Configuration

The moisture properties of the fuels are defined in the &moisture section of the file namelist.fire. The parameters of the moisture model itself are set in the &fire section of file namelist.input. See an example in test/em_fire/moisture.

The treatment of moisture consists of two parts which can be activated independently, and can run also independently of the fire model itself.

  1. The moisture model, which creates the values in the array fmc_gc, at the atmosphere mesh resolution. fmc_gc(i,k,j) is the moisture contents in the class k at the point (i,j). The model is turned on by fmoist_run=.true. in namelist.input.
  2. Interpolation to the fire mesh and averaging with weights between the moisture classes to turn the array fmc_gc into fmc_g at the fire mesh resolution, which is used in the fire model. This is turned on by fmoist_interp=.true. in namelist.input.
  3. If fmoist_only=.true. in namelist.input, either or both of the above can run but the fire model itself is turned off. The resulting values of fmc_gc or fmc_g are available in wrfout files.

The fuel moisture in fmc_g can be also set directly to scalar constant fuelmc_g from namelist.fire by specifying fire_fmc_read=1 in namelist.input. This setting conflicts with using the moisture model. Some valid combinations are:

fmoist_run fmoist_interp fmoist_only fire_fmc_read Function
.true. .true. .false. 0 Run the fuel moisture model, create the arrays fmc_gc and fmc_g, and use fmc_g in the fire model.
.true. .true. .true. 0 Run the fuel moisture model and create the arrays fmc_gc and fmc_g in wrfout only, the fire model does not run.
.true. .false. .true. 0 Run the fuel moisture model and create the array fmc_gc in wrfout only, the fire model does not run.
.false. .true. .false. 0 Interpolate the fuel moisture fields fmc_gc from wrfinput to fmc_g and use it in the fire model.
.false. .false. .false. 0 Run the fire model using the fuel moisture map fmc_g from wrfinput.
.false. .false. .false. 1 Run the fire model using the same fuel moisture fmc_g=fuelmc_g everywhere, as given in namelist.fire.

When the fire model runs ( fmoist_run=.true.), the initial values of fmc_gc need to be specified. This is done for each moisture class separately by specifying the values of fmc_gc_initialization in the &moisture section of namelist.fire:

fmc_gc_initialization=0: from wrfinput, =1:from fuelmc_g, =2: from equilibrium

Standalone moisture model

make moisture_test in the standalone directory will create moisture_test.exe. Like all other standalone codes, the build process pulls the original sources in the WRF source tree. Running moisture_test.exe will exercise the moisture model. The input is from file moisture_input.txt (provided in the directory), which is a flat text file with the format

Time(h) T(K) P(Pa) Q(kg/kg) RAIN(mm/h)

where Time is the time from the start of the run, T the temperature, Q the air moisture contents, and RAIN the rain intensity.

make moisture will build moisture.exe which will take existing wrfout files as input, use the atmospheric state to run the moisture model, and write the resulting fuel moisture class fields to file moisture.nc. The resulting frames of fmc_gc are meant be copied from moisture.nc to wrfinput by user's code (for example, using our ncread and ncreplace utilities in matlab).

References

  • Jan Mandel, J.D. Beezley, A. K. Kochanski, V. Y. Kondratenko, and M. Kim, Assimilation of Perimeter Data and Coupling with Fuel Moisture in a Wildland Fire - Atmosphere DDDAS, ICCS 2012, Procedia Computer Science 9, 2012, 1100-1109