Version: dev

FlameLengthWRFFire

Byram (1959) flame length as diagnosed by fire_behavior's Calc_flame_length (physics/fire_physics_mod.F90): L = 0.0775 (iboros ros)^0.46 m on cells containing the fire line (0 < fire_area < 1), with iboros = I_R t_r in kJ/m^2 from RothermelWRFFire so that iboros ros is the fireline intensity in kW/m; zero elsewhere. The EarthSciModels rothermel/fire_spread.esm F_L = c_FL (I_B/IB_ref)^0.46 with I_B in W/m is the same law in SI (0.0775 kW^-0.46 = 0.00323 W^-0.46); it is not reused because its I_B is built from its own (Andrews 2018) reaction intensity. Tests: cells of the instrumented test7 run at step 20 (flame dump) on the front (0 < fire_area < 1), outside it (fire_area = 0) and fully burning behind it (fire_area = 1), rel 1e-5.

Domain
wildland_fire
Subdomain
fire_behavior
Type
model
.esm schema
1.0.0
Source
components/wildland_fire/fire_behavior/flame_length_wrffire.esm
Tags
#wildland_fire #fire_behavior #model #wrf-fire #flame-length

Description

Byram (1959) flame length as diagnosed by fire_behavior’s Calc_flame_length (physics/fire_physics_mod.F90): L = 0.0775 (iboros ros)^0.46 m on cells containing the fire line (0 < fire_area < 1), with iboros = I_R t_r in kJ/m^2 from RothermelWRFFire so that iboros ros is the fireline intensity in kW/m; zero elsewhere. The EarthSciModels rothermel/fire_spread.esm F_L = c_FL (I_B/IB_ref)^0.46 with I_B in W/m is the same law in SI (0.0775 kW^-0.46 = 0.00323 W^-0.46); it is not reused because its I_B is built from its own (Andrews 2018) reaction intensity. Tests: cells of the instrumented test7 run at step 20 (flame dump) on the front (0 < fire_area < 1), outside it (fire_area = 0) and fully burning behind it (fire_area = 1), rel 1e-5.

Reference

  • NCAR Community Fire Behavior Model (fire_behavior), develop @ eb77580; instrumented fork ctessum-claude/fire_behavior branch earthsciml-instrumented (c9dda02).

Parameters

NameUnitsDefaultDescription
rosm/s0.0Rate of spread at the cell (ROSWRFFire ros).
iboros10.0I_R t_r of the cell in kJ/m^2 (RothermelWRFFire iboros).
fire_area10.0Burning area fraction of the cell (FuelFractionCellWRFFire fire_area).

Observed

NameUnitsDefaultDescription
on_front11 where 0 < fire_area < 1 (the cell contains the fire line), else 0.
fireline_intensity1Byram fireline intensity I_B = iboros ros, kW/m (dimensionless carrier).
flame_lengthmByram (1959) flame length 0.0775 I_B^0.46 m on front cells, 0 elsewhere (Calc_flame_length).
ros_frontm/sRate of spread reported on front cells only (ros_fl), 0 elsewhere.

Observed expressions

$$ on_{front} = \mathrm{ifelse}\left(\mathrm{and}\left(\mathrm{>}\left(fire_{area}, 0.0\right), \mathrm{<}\left(fire_{area}, 1.0\right)\right), 1.0, 0.0\right) $$

1 where 0 < fire_area < 1 (the cell contains the fire line), else 0.

$$ fireline_{intensity} = iboros \cdot \frac{ros}{par.unit_{speed}} $$

Byram fireline intensity I_B = iboros ros, kW/m (dimensionless carrier).

$$ flame_{length} = on_{front} \cdot par.unit_{length} \cdot par.c_{flame\,length} \cdot fireline_{intensity}^{par.p_{flame\,length}} $$

Byram (1959) flame length 0.0775 I_B^0.46 m on front cells, 0 elsewhere (Calc_flame_length).

$$ ros_{front} = on_{front} \cdot ros $$

Rate of spread reported on front cells only (ros_fl), 0 elsewhere.

Raw .esm

Raw .esm JSON (this component)
{
  "subsystems": {
    "par": {
      "ref": "./fire_behavior_parameters.esm"
    }
  },
  "variables": {
    "ros": {
      "type": "parameter",
      "units": "m/s",
      "default": 0.0,
      "description": "Rate of spread at the cell (ROSWRFFire ros)."
    },
    "iboros": {
      "type": "parameter",
      "units": "1",
      "default": 0.0,
      "description": "I_R t_r of the cell in kJ/m^2 (RothermelWRFFire iboros)."
    },
    "fire_area": {
      "type": "parameter",
      "units": "1",
      "default": 0.0,
      "description": "Burning area fraction of the cell (FuelFractionCellWRFFire fire_area)."
    },
    "on_front": {
      "type": "unknown",
      "units": "1",
      "description": "1 where 0 < fire_area < 1 (the cell contains the fire line), else 0."
    },
    "fireline_intensity": {
      "type": "unknown",
      "units": "1",
      "description": "Byram fireline intensity I_B = iboros ros, kW/m (dimensionless carrier)."
    },
    "flame_length": {
      "type": "unknown",
      "units": "m",
      "description": "Byram (1959) flame length 0.0775 I_B^0.46 m on front cells, 0 elsewhere (Calc_flame_length)."
    },
    "ros_front": {
      "type": "unknown",
      "units": "m/s",
      "description": "Rate of spread reported on front cells only (ros_fl), 0 elsewhere."
    }
  },
  "equations": [
    {
      "lhs": "on_front",
      "rhs": {
        "op": "ifelse",
        "args": [
          {
            "op": "and",
            "args": [
              {
                "op": ">",
                "args": [
                  "fire_area",
                  0.0
                ]
              },
              {
                "op": "<",
                "args": [
                  "fire_area",
                  1.0
                ]
              }
            ]
          },
          1.0,
          0.0
        ]
      }
    },
    {
      "lhs": "fireline_intensity",
      "rhs": {
        "op": "*",
        "args": [
          "iboros",
          {
            "op": "/",
            "args": [
              "ros",
              "par.unit_speed"
            ]
          }
        ]
      }
    },
    {
      "lhs": "flame_length",
      "rhs": {
        "op": "*",
        "args": [
          "on_front",
          "par.unit_length",
          "par.c_flame_length",
          {
            "op": "^",
            "args": [
              "fireline_intensity",
              "par.p_flame_length"
            ]
          }
        ]
      }
    },
    {
      "lhs": "ros_front",
      "rhs": {
        "op": "*",
        "args": [
          "on_front",
          "ros"
        ]
      }
    }
  ],
  "tests": [
    {
      "id": "step20_unburnt_cell_area_0",
      "description": "Reference: NCAR fire_behavior test7 (80x80 fire cells of 25 m, dt = 0.5 s, num_tiles = 1), default real32 build, dumped in-model by the ctessum-claude/fire_behavior fork (branch earthsciml-instrumented, commit c9dda02, based on NCAR fire_behavior eb77580, three commits before v1.0.0; -DESM_DUMP=ON; summary output bit-identical to the uninstrumented build). Single precision: rel 1e-5 (the tolerance contract for a single-precision reference). Regime: cell (i,j) = (16, 60) at step 20 (flame dump), unburnt cell next to the front (fire_area = 0): flame length 0.",
      "parameter_overrides": {
        "ros": 0.01777469739317894,
        "iboros": 777.2156372070312,
        "fire_area": 0.0
      },
      "expression_template_imports": [
        {
          "ref": "./tests/step20_unburnt_cell_area_0_inputs.esm"
        }
      ],
      "time_span": {
        "start": 0,
        "end": 1
      },
      "tolerance": {
        "rel": 1e-05
      },
      "assertions": [
        {
          "variable": "flame_length",
          "time": 0.0,
          "expected": 0.0,
          "tolerance": {
            "rel": 1e-05,
            "abs": 1e-09
          }
        },
        {
          "variable": "ros_front",
          "time": 0.0,
          "expected": 0.0,
          "tolerance": {
            "rel": 1e-05,
            "abs": 1e-09
          }
        }
      ]
    },
    {
      "id": "step20_front_cell_area_0p69",
      "description": "Reference: NCAR fire_behavior test7 (80x80 fire cells of 25 m, dt = 0.5 s, num_tiles = 1), default real32 build, dumped in-model by the ctessum-claude/fire_behavior fork (branch earthsciml-instrumented, commit c9dda02, based on NCAR fire_behavior eb77580, three commits before v1.0.0; -DESM_DUMP=ON; summary output bit-identical to the uninstrumented build). Single precision: rel 1e-5 (the tolerance contract for a single-precision reference). Regime: cell (i,j) = (17, 59) at step 20 (flame dump).",
      "parameter_overrides": {
        "ros": 0.01777469739317894,
        "iboros": 777.2156372070312,
        "fire_area": 0.6850700974464417
      },
      "expression_template_imports": [
        {
          "ref": "./tests/step20_front_cell_area_0p69_inputs.esm"
        }
      ],
      "time_span": {
        "start": 0,
        "end": 1
      },
      "tolerance": {
        "rel": 1e-05
      },
      "assertions": [
        {
          "variable": "flame_length",
          "time": 0.0,
          "expected": 0.2593342363834381,
          "tolerance": {
            "rel": 1e-05,
            "abs": 1e-09
          }
        },
        {
          "variable": "ros_front",
          "time": 0.0,
          "expected": 0.01777469739317894,
          "tolerance": {
            "rel": 1e-05,
            "abs": 1e-09
          }
        }
      ]
    },
    {
      "id": "step20_front_cell_cat2",
      "description": "Reference: NCAR fire_behavior test7 (80x80 fire cells of 25 m, dt = 0.5 s, num_tiles = 1), default real32 build, dumped in-model by the ctessum-claude/fire_behavior fork (branch earthsciml-instrumented, commit c9dda02, based on NCAR fire_behavior eb77580, three commits before v1.0.0; -DESM_DUMP=ON; summary output bit-identical to the uninstrumented build). Single precision: rel 1e-5 (the tolerance contract for a single-precision reference). Regime: cell (i,j) = (18, 64) at step 20 (flame dump).",
      "parameter_overrides": {
        "ros": 0.3605339527130127,
        "iboros": 6763.322265625,
        "fire_area": 0.8145828247070312
      },
      "expression_template_imports": [
        {
          "ref": "./tests/step20_front_cell_cat2_inputs.esm"
        }
      ],
      "time_span": {
        "start": 0,
        "end": 1
      },
      "tolerance": {
        "rel": 1e-05
      },
      "assertions": [
        {
          "variable": "flame_length",
          "time": 0.0,
          "expected": 2.801370859146118,
          "tolerance": {
            "rel": 1e-05,
            "abs": 1e-09
          }
        },
        {
          "variable": "ros_front",
          "time": 0.0,
          "expected": 0.3605339527130127,
          "tolerance": {
            "rel": 1e-05,
            "abs": 1e-09
          }
        }
      ]
    },
    {
      "id": "step20_front_cell_area_0p95",
      "description": "Reference: NCAR fire_behavior test7 (80x80 fire cells of 25 m, dt = 0.5 s, num_tiles = 1), default real32 build, dumped in-model by the ctessum-claude/fire_behavior fork (branch earthsciml-instrumented, commit c9dda02, based on NCAR fire_behavior eb77580, three commits before v1.0.0; -DESM_DUMP=ON; summary output bit-identical to the uninstrumented build). Single precision: rel 1e-5 (the tolerance contract for a single-precision reference). Regime: cell (i,j) = (17, 60) at step 20 (flame dump).",
      "parameter_overrides": {
        "ros": 0.01777469739317894,
        "iboros": 777.2156372070312,
        "fire_area": 0.9455223083496094
      },
      "expression_template_imports": [
        {
          "ref": "./tests/step20_front_cell_area_0p95_inputs.esm"
        }
      ],
      "time_span": {
        "start": 0,
        "end": 1
      },
      "tolerance": {
        "rel": 1e-05
      },
      "assertions": [
        {
          "variable": "flame_length",
          "time": 0.0,
          "expected": 0.2593342363834381,
          "tolerance": {
            "rel": 1e-05,
            "abs": 1e-09
          }
        },
        {
          "variable": "ros_front",
          "time": 0.0,
          "expected": 0.01777469739317894,
          "tolerance": {
            "rel": 1e-05,
            "abs": 1e-09
          }
        }
      ]
    },
    {
      "id": "step20_fully_burning_cell_area_1",
      "description": "Reference: NCAR fire_behavior test7 (80x80 fire cells of 25 m, dt = 0.5 s, num_tiles = 1), default real32 build, dumped in-model by the ctessum-claude/fire_behavior fork (branch earthsciml-instrumented, commit c9dda02, based on NCAR fire_behavior eb77580, three commits before v1.0.0; -DESM_DUMP=ON; summary output bit-identical to the uninstrumented build). Single precision: rel 1e-5 (the tolerance contract for a single-precision reference). Regime: cell (i,j) = (18, 60) at step 20 (flame dump), fully burning (fire_area = 1) behind the front: outside 0 < fire_area < 1, so flame length and ros_front are 0.",
      "parameter_overrides": {
        "ros": 0.01777469739317894,
        "iboros": 777.2156372070312,
        "fire_area": 1.0
      },
      "expression_template_imports": [
        {
          "ref": "./tests/step20_fully_burning_cell_area_1_inputs.esm"
        }
      ],
      "time_span": {
        "start": 0,
        "end": 1
      },
      "tolerance": {
        "rel": 1e-05
      },
      "assertions": [
        {
          "variable": "flame_length",
          "time": 0.0,
          "expected": 0.0,
          "tolerance": {
            "rel": 1e-05,
            "abs": 1e-09
          }
        },
        {
          "variable": "ros_front",
          "time": 0.0,
          "expected": 0.0,
          "tolerance": {
            "rel": 1e-05,
            "abs": 1e-09
          }
        }
      ]
    }
  ]
}