Wildfire Level-Set Solver Documentation
Welcome to the documentation for the Wildfire Level-Set Solver, an AMReX-based C++ level-set solver for wildfire-front style advection based on the community fire model.
Contents:
- Overview
- Mathematical Models
- Code Structure
- Building the Code
- Usage Guide
- Python Tools
- Overview
- Dependencies
wrf_wind_reader.py— WRF Wind Extractionsrtm_terrain_reader.py— SRTM Terrain Downloadlandscape_writer.py— LANDFIRE Landscape File Writerfarsite_weather_reader.py— FARSITE Weather File Parserfuel_moisture_from_weather.py— Equilibrium Fuel Moisture Calculatorplotfile_to_geotiff.py— GIS Export- Combining the Tools: Typical Workflow
farsite_fms_reader.py— FARSITE Fuel Moisture Scenario Parserfarsite_adj_reader.py— FARSITE Fuel Adjustment File Parserfarsite_fmd_reader.py— FARSITE Fuel Moisture Schedule Parserperimeter_to_shapefile.py— Fire Perimeter to Shapefile Converterutm_convert.py— Lat/Lon ↔ UTM Coordinate Conversionensemble_burn_probability.py— Ensemble Burn Probability Driversatellite_goes_to_csv.py/ Satellite Fire Detection Assimilationember_cascade_analysis.py— Ember Cascade Post-Processing
- Regression Tests
- Comparison with Other Wildfire Simulation Tools
- API Reference
Overview
This repository contains a small AMReX-based C++ level-set solver for wildfire-front style advection based on the community fire model. The code implements advanced fire spread models including:
Rothermel (1972) fire spread equations
FARSITE elliptical expansion model (Richards 1990)
Anderson (1983) length-to-width ratio
Van Wagner (1977) crown fire initiation
Terrain slope effects
Firebrand spotting models
Key Features
Multiple Fire Spread Models: Level-set advection (WENO5-Z + RK3) and FARSITE elliptical expansion
Multi-Class Rothermel: Full per-size-class fuel moisture and loading path (1-hr, 10-hr, 100-hr dead; live herbaceous; live woody)
Fuel Database: Anderson 13 (FBFM13) and Scott & Burgan 40 (FBFM40) standard fuel models
Terrain Effects: Slope-based spread rate modifications; terrain and FARSITE landscape file support
Crown Fire: Van Wagner (1977) crown fire initiation criteria
Spotting — Stochastic: Probability-based firebrand generation with lognormal/exponential distance distributions
Spotting — Physics-Based: Albini (1983) thermal-plume lofting with 2-D trajectory integration
Bulk Fuel Consumption: Post-frontal burnout simulation
Fire Behavior Diagnostics: Byram fireline intensity and flame length computed at every time step
Time-Dependent Wind: Sequential wind field snapshots with temporal interpolation (2D)
Multiple Ignition Types: Sphere, box, ellipse, embedded boundary implicit function, CSV fire points
2D/3D Support: Flexible spatial dimensions
Embedded Boundaries: Complex geometry support with AMReX EB
Quick Start
Clone with submodules:
git clone --recurse-submodules https://github.com/hgopalan/wildfire_levelset.git
cd wildfire_levelset
Build the project:
cmake -S . -B build
cmake --build build -j
Run a test case:
cd regtest/basic_levelset
../../build/levelset inputs.i