Overview ======== The Wildfire Level-Set Solver is a unified wildfire front propagation framework built on AMReX (a software library for block-structured adaptive mesh refinement). It provides a single interface to operational fire behaviour tools — FARSITE elliptical spread, BehavePlus-style Rothermel/Balbi/Cheney–Gould models, and physics-based alternatives — with a path toward future two-way coupling with the Energy Research and Forecasting (ERF) atmospheric model. Summary Flow ------------ The wildfire simulation follows these key steps for each timestep: 1. **Setup inputs** (landscape, fuel, weather, wind) Parse configuration parameters for terrain, fuel properties, weather conditions, and wind field. 2. **Compute surface ROS via Rothermel/Level Set** Calculate rate of spread using Rothermel fire spread equations with terrain and wind corrections. When a landscape file is provided, per-cell fuel models are used from a pre-built lookup table. 3. **Generate elliptical wavelets per vertex** Create Huygens wavelets with elliptical shapes at each fire front vertex based on local spread rates. 4. **Merge to new perimeter** Combine wavelets to form new fire perimeter using level set or FARSITE methods. 5. **Apply crown/spotting sub-models** Evaluate crown fire initiation criteria and firebrand spotting (stochastic and/or physics-based Albini) to generate new ignition points. 6. **Simulate post-frontal burnout** Compute bulk fuel consumption fraction for areas behind the fire front. 7. **Update states, record outputs, step time** Save plotfiles with fire state (including fireline intensity and flame length diagnostics), advance simulation time, update data structures. Prerequisites ------------- * C++17 compiler * CMake (3.20+) * Git The project supports both 2D and 3D configurations. The default is 3D, but you can build for 2D using CMake options. Time-dependent wind fields are only available in 2D builds.