1 #ifndef ERF_FIRE_COUPLER_H
2 #define ERF_FIRE_COUPLER_H
7 #include <AMReX_MultiFab.H>
8 #include <AMReX_Geometry.H>
9 #include <AMReX_BoxArray.H>
65 const amrex::MultiFab* z_phys_nd_atm);
83 const amrex::BoxArray& ba_atm,
84 const amrex::DistributionMapping& dm_atm,
85 const amrex::Geometry& geom_atm);
106 const amrex::MultiFab& S_old,
107 const amrex::MultiFab& xvel_old,
const amrex::MultiFab& yvel_old,
108 const amrex::MultiFab& xvel_new,
const amrex::MultiFab& yvel_new,
109 const amrex::MultiFab& z_phys_cc,
110 const amrex::BoxArray& ba2d,
111 const amrex::Geometry& geom,
135 const amrex::MultiFab& S_old,
136 const amrex::MultiFab& z_phys_cc,
137 const amrex::MultiFab* z_phys_nd,
138 const amrex::Geometry& geom,
170 void read_checkpoint (
const std::string& restart_chkfile,
int max_level,
int step);
190 void fill_plot_var (
const std::string&
name, amrex::MultiFab& dst,
int dcomp,
int lev)
const;
The inputs of the atmosphere side of the fire coupling.
The interface between the fire coupling and a fire engine.
Fire grid data structure and construction.
std::string name
Definition: ERF_Plotfile2DCatalog.cpp:116
amrex::Real Real
Definition: ERF_ShocInterface.H:19
Definition: ERF_FireCoupler.H:40
FireGrid m_fg
Definition: ERF_FireCoupler.H:222
const FireCouplingParams & params() const
The coupling inputs.
Definition: ERF_FireCoupler.H:196
const amrex::MultiFab * get_Q_atm_prev() const
Sensible heat flux [W/m2] of the previous fire step on the atmospheric columns of the fire grid's lev...
Definition: ERF_FireCoupler.H:212
void add_sources(amrex::MultiFab &cc_source, const amrex::MultiFab &S_old, const amrex::MultiFab &z_phys_cc, const amrex::MultiFab *z_phys_nd, const amrex::Geometry &geom, bool has_moisture, int step)
Inject the lagged fire heat, vapour and smoke into the cell sources.
Definition: ERF_FireCoupler.cpp:275
std::unique_ptr< FireEngine > m_engine
Definition: ERF_FireCoupler.H:221
void set_fire_grid(int lev, const FireGrid &fg, const amrex::BoxArray &ba_atm, const amrex::DistributionMapping &dm_atm, const amrex::Geometry &geom_atm)
Lay the coupling out on a fire grid: what initialize() does after its start-up checks and before it s...
Definition: ERF_FireCoupler.cpp:112
void initialize(const ERF &erf, int lev, const SurfaceLayer *surface_layer, const amrex::MultiFab *z_phys_nd_atm)
Check the configuration, build the fire grid and set the engine up.
Definition: ERF_FireCoupler.cpp:83
void write_checkpoint(const std::string &checkpointname) const
Write the fire to a checkpoint: the engine's state (FireEngine::write_checkpoint),...
Definition: ERF_FireCoupler.cpp:336
void advance(amrex::Real time, amrex::Real dt, const amrex::MultiFab &S_old, const amrex::MultiFab &xvel_old, const amrex::MultiFab &yvel_old, const amrex::MultiFab &xvel_new, const amrex::MultiFab &yvel_new, const amrex::MultiFab &z_phys_cc, const amrex::BoxArray &ba2d, const amrex::Geometry &geom, const SurfacePrecipAccumulationSources &precip_sources)
Advance the fire one step of its level and refill the lagged fluxes.
Definition: ERF_FireCoupler.cpp:136
std::unique_ptr< amrex::MultiFab > m_Q_lat_atm_prev
latent [W/m2]
Definition: ERF_FireCoupler.H:233
FireCouplingParams m_params
Definition: ERF_FireCoupler.H:220
void fill_plot_var(const std::string &name, amrex::MultiFab &dst, int dcomp, int lev) const
Fill component dcomp of an ERF plotfile MultiFab of level lev with the fire field name.
Definition: ERF_FireCoupler.cpp:200
FireCoupler(const FireCouplingParams ¶ms, std::unique_ptr< FireEngine > engine)
Definition: ERF_FireCoupler.cpp:70
FireEngine & engine()
The fire engine.
Definition: ERF_FireCoupler.H:199
int m_lev
Definition: ERF_FireCoupler.H:223
void update_flux_buffer(const amrex::Geometry &geom_atm)
Average the engine's fluxes onto the atmospheric columns for the next step.
Definition: ERF_FireCoupler.cpp:232
std::vector< std::string > m_plot_var_names
FireEngine::plot_var_names(), read at construction.
Definition: ERF_FireCoupler.H:235
const FireEngine & engine() const
Definition: ERF_FireCoupler.H:200
const amrex::MultiFab * get_Q_lat_atm_prev() const
Latent heat flux [W/m2] of the previous fire step, laid out as get_Q_atm_prev().
Definition: ERF_FireCoupler.H:214
const std::vector< std::string > & plot_var_names() const
Definition: ERF_FireCoupler.H:174
amrex::Geometry m_geom_atm
geometry of the fire grid's level
Definition: ERF_FireCoupler.H:224
int level() const
The level the fire grid refines (erf.fire.anchor_level, resolved at initialize).
Definition: ERF_FireCoupler.H:193
std::unique_ptr< amrex::MultiFab > m_Q_atm_prev
sensible [W/m2]
Definition: ERF_FireCoupler.H:232
void read_checkpoint(const std::string &restart_chkfile, int max_level, int step)
Restore the engine's state, then the lagged fluxes, on a restart.
Definition: ERF_FireCoupler.cpp:368
std::string checkpoint_mismatch(int chk_lev, const amrex::Box &chk_region) const
Why a checkpoint's lagged fluxes do not belong to this run's fire grid, or an empty string when they ...
Definition: ERF_FireCoupler.cpp:353
const FireGrid & fire_grid() const
The fire grid.
Definition: ERF_FireCoupler.H:203
A fire engine behind the shared coupling layer.
Definition: ERF_FireEngine.H:132
Definition: ERF_SurfaceLayer.H:60
Definition: ERF_InterpolationUtils.H:15
@ fg
Definition: ERF_AdvanceMorrison.cpp:111
Definition: ERF_FireCouplingParams.H:18
2D horizontal fire computational grid
Definition: ERF_FireGrid.H:29
Definition: ERF_SurfacePrecipitation.H:34