ERF
Energy Research and Forecasting: An Atmospheric Modeling Code
ERF_FireSmokeEmission.H
Go to the documentation of this file.
1 #ifndef ERF_FIRE_SMOKE_EMISSION_H
2 #define ERF_FIRE_SMOKE_EMISSION_H
3 
4 #ifdef ERF_USE_FIRE
5 
6 #include <AMReX_MultiFab.H>
7 #include <AMReX_Geometry.H>
8 
9 /**
10  * @brief Inject smoke tracer from fire heat flux into cc_source at k=0.
11  *
12  * Converts fire heat flux [W/m2] to smoke mass flux [kg/m2/s] via:
13  * smoke_flux = emission_factor * Q_fire / heat_of_combustion
14  * then injects into cc_source[RhoSmoke_comp] at k=0 divided by dz.
15  *
16  * The fire heat flux must already be coarsened to the ATM grid BA
17  * by the caller (same ParallelCopy pattern as Phase 3 lofting).
18  *
19  * @param[in,out] cc_source ATM cell-centred source MultiFab
20  * @param[in] fire_heat_atm Fire heat flux coarsened to ATM grid [W/m2]
21  * @param[in] z_phys_nd Nodal terrain-following heights [m], or nullptr
22  * without terrain; the k = 0 cell thickness is
23  * the mean of its four node pairs
24  * @param[in] geom_atm ATM geometry
25  * @param[in] emission_factor kg smoke per kg fuel burned [-]
26  * @param[in] heat_of_combustion J per kg fuel burned [J/kg]; the caller passes
27  * FireEngine::smoke_heat_per_kg()
28  * @param[in] smoke_comp Component index in cc_source for smoke
29  * @param[in] fire_debug Print debug output if true
30  * @param[in] step Current step for debug output
31  */
32 void inject_smoke_from_fire(
33  amrex::MultiFab& cc_source,
34  const amrex::MultiFab& fire_heat_atm,
35  const amrex::MultiFab* z_phys_nd,
36  const amrex::Geometry& geom_atm,
37  amrex::Real emission_factor,
38  amrex::Real heat_of_combustion,
39  int smoke_comp,
40  bool fire_debug,
41  int step);
42 
43 #endif // ERF_USE_FIRE
44 #endif // ERF_FIRE_SMOKE_EMISSION_H
amrex::Real Real
Definition: ERF_ShocInterface.H:19