23 void ReSize (
const int& nlev,
const amrex::Vector<int>& active_levs)
33 template<
class NewUrbanModel>
60 void Init (
const int& lev,
const amrex::MultiFab& cons_in,
61 const amrex::MultiFab& u_in,
const amrex::MultiFab& v_in,
62 const amrex::Geometry& geom,
const amrex::Real& dt_advance,
63 const amrex::MultiFab& z_phys_nd,
const amrex::iMultiFab& land_type,
64 const amrex::MultiFab& urb_frac)
67 m_urban_model[lev]->Init(cons_in, u_in, v_in, geom, dt_advance,
68 z_phys_nd, land_type, urb_frac);
77 const amrex::Geometry& geom,
const amrex::MultiFab* z_phys_nd,
78 amrex::MultiFab& eddyDiffs_lev,
const amrex::Real& calday)
81 m_urban_model[lev]->Advance(dt_advance, time, start_time, geom,
82 z_phys_nd, eddyDiffs_lev, calday);
90 amrex::MultiFab& u_in, amrex::MultiFab& v_in)
172 const amrex::Vector<amrex::Vector<std::unique_ptr<amrex::MultiFab>>>& tsk_in,
173 const amrex::Vector<amrex::Vector<std::unique_ptr<amrex::iMultiFab>>>& lmask_in,
174 const amrex::Vector<amrex::Vector<std::unique_ptr<amrex::iMultiFab>>>& land_type_in,
175 const amrex::Vector<amrex::Vector<std::unique_ptr<amrex::MultiFab>>>& urb_frac_in,
176 amrex::MultiFab* lat_in, amrex::MultiFab* lon_in)
180 tsk_in[lev], lmask_in[lev], land_type_in[lev], urb_frac_in[lev],
AMREX_ALWAYS_ASSERT(bx.length()[2]==khi+1)
amrex::Real Real
Definition: ERF_ShocInterface.H:19
Wrapper class for managing urban models across AMR levels.
Definition: ERF_Urban.H:12
void Define(const int &lev, SolverChoice &sc)
Defines the urban model on an active level.
Definition: ERF_Urban.H:50
void Update_Urban_Vars_Lev(const int &lev, amrex::MultiFab &cons_in, amrex::MultiFab &u_in, amrex::MultiFab &v_in)
Updates coupled urban fields on an active level.
Definition: ERF_Urban.H:89
void ReSize(const int &nlev, const amrex::Vector< int > &active_levs)
Resizes urban-model storage and records active AMR levels.
Definition: ERF_Urban.H:23
int m_first_active_lev
Definition: ERF_Urban.H:188
int Get_DataIdx(const int &lev, const std::string &varname)
Returns a model data-field index.
Definition: ERF_Urban.H:152
amrex::Geometry Get_Urban_Geom(const int &lev)
Returns the urban-model geometry for a level.
Definition: ERF_Urban.H:126
amrex::Vector< int > m_active_levs
Definition: ERF_Urban.H:187
amrex::Vector< std::unique_ptr< NullUrban > > m_urban_model
Definition: ERF_Urban.H:186
void Init(const int &lev, const amrex::MultiFab &cons_in, const amrex::MultiFab &u_in, const amrex::MultiFab &v_in, const amrex::Geometry &geom, const amrex::Real &dt_advance, const amrex::MultiFab &z_phys_nd, const amrex::iMultiFab &land_type, const amrex::MultiFab &urb_frac)
Initializes the urban model on an active level.
Definition: ERF_Urban.H:60
void Advance(const int &lev, const amrex::Real &dt_advance, const amrex::Real &time, const amrex::Real &start_time, const amrex::Geometry &geom, const amrex::MultiFab *z_phys_nd, amrex::MultiFab &eddyDiffs_lev, const amrex::Real &calday)
Advances the urban model on an active level.
Definition: ERF_Urban.H:75
int Get_Data_Size()
Returns the number of model data fields.
Definition: ERF_Urban.H:134
void Update_State_Vars_Lev(const int &lev, amrex::MultiFab &cons_in)
Updates atmospheric state fields on an active level.
Definition: ERF_Urban.H:100
amrex::MultiFab * Get_Data_Ptr(const int &lev, const int &varIdx)
Returns a model data field, or null for an inactive level.
Definition: ERF_Urban.H:110
std::string Get_DataName(const int &varIdx)
Returns a model data-field name.
Definition: ERF_Urban.H:143
amrex::MultiFab * Get_Flux_Ptr(const int &lev, const int &varIdx)
Returns a model flux field, or null for an inactive level.
Definition: ERF_Urban.H:118
void SetModel()
Instantiates an urban model on each active AMR level.
Definition: ERF_Urban.H:34
void set_urban_flux_inputs(const int &lev, const amrex::Real &declin)
Sets flux inputs on an active level.
Definition: ERF_Urban.H:160
void set_urban_terrain_inputs(const int &lev, const amrex::Vector< amrex::Vector< std::unique_ptr< amrex::MultiFab >>> &tsk_in, const amrex::Vector< amrex::Vector< std::unique_ptr< amrex::iMultiFab >>> &lmask_in, const amrex::Vector< amrex::Vector< std::unique_ptr< amrex::iMultiFab >>> &land_type_in, const amrex::Vector< amrex::Vector< std::unique_ptr< amrex::MultiFab >>> &urb_frac_in, amrex::MultiFab *lat_in, amrex::MultiFab *lon_in)
Sets terrain inputs on an active level.
Definition: ERF_Urban.H:170
Definition: ERF_DataStruct.H:685