ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_FireCoupler.H File Reference

The atmosphere side of the fire coupling, shared by every fire engine. More...

#include <memory>
#include <string>
#include <vector>
#include <AMReX_MultiFab.H>
#include <AMReX_Geometry.H>
#include <AMReX_BoxArray.H>
#include <ERF_FireCouplingParams.H>
#include <ERF_FireEngine.H>
#include <ERF_FireGrid.H>
#include <ERF_SurfacePrecipitation.H>
Include dependency graph for ERF_FireCoupler.H:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  FireCoupler
 

Detailed Description

The atmosphere side of the fire coupling, shared by every fire engine.

ERF holds one FireCoupler (std::unique_ptr<FireCoupler> m_fire_coupler), which owns the fire engine selected by erf.fire.engine. The coupler:

  • checks the ERF configuration a fire grid needs and builds that grid on the level it refines (erf.fire.anchor_level);
  • each step of that level, hands the engine the atmospheric state (FireForcing) and advances it; with lagged or synchronous coupling, or with the smoke tracer, it averages the fluxes the engine reports (FireFluxes) onto the atmospheric columns, where they wait for the next step (the one-step explicit lag of WRF-Fire);
  • at every Runge-Kutta stage of that next step, injects the lagged heat and vapour into the cell sources with the WRF-Fire exponential profile (ERF_FireAtmCoupling.H; lagged and synchronous coupling only) and the smoke tracer (ERF_FireSmokeEmission.H; erf.fire.smoke_enable);
  • holds the lagged fluxes for the boundary-layer scheme and the checkpoint.

Coarser levels see the fire through average-down, finer levels not at all.