1 #ifndef ERF_INTEGRATION_H_
2 #define ERF_INTEGRATION_H_
4 #include <AMReX_MultiFab.H>
5 #include <AMReX_EBMultiFabUtil.H>
19 const amrex::Vector<amrex::MultiFab>& S_data,
20 const amrex::MultiFab & S_prim,
21 const amrex::MultiFab &
qt,
22 amrex::MultiFab& buoyancy,
23 const amrex::Geometry geom,
25 const amrex::MultiFab& base_state,
32 const amrex::Geometry& geom,
33 amrex::Vector<amrex::MultiFab>& S_data,
34 const amrex::MultiFab&
p0,
35 const amrex::MultiFab& z_phys_nd,
36 const amrex::MultiFab& z_phys_cc,
37 amrex::Vector<std::unique_ptr<amrex::MultiFab>>& mapfac,
39 amrex::Vector<amrex::MultiFab>& gradp);
42 const amrex::Geometry& geom,
43 const amrex::MultiFab& z_phys_nd,
44 const amrex::MultiFab& z_phys_cc,
45 amrex::Vector<std::unique_ptr<amrex::MultiFab>>& mapfac,
47 amrex::Vector<amrex::MultiFab>& gradp,
51 const amrex::Geometry& geom,
52 const amrex::MultiFab& z_phys_cc,
53 amrex::Vector<std::unique_ptr<amrex::MultiFab>>& mapfac,
55 amrex::Vector<amrex::MultiFab>& gradp,
59 const amrex::Geometry& geom,
60 const amrex::MultiFab& z_phys_nd,
62 amrex::Vector<amrex::MultiFab>& gradp,
66 const amrex::Geometry& geom,
67 const amrex::MultiFab& z_phys_nd,
68 const amrex::MultiFab& z_phys_cc,
69 amrex::Vector<std::unique_ptr<amrex::MultiFab>>& mapfac,
70 amrex::Vector<amrex::MultiFab>& gradp,
75 const amrex::Vector<amrex::MultiFab>& S_data,
76 const amrex::MultiFab& S_prim,
77 amrex::MultiFab& cc_source,
78 const amrex::MultiFab& base_state,
79 const amrex::MultiFab* z_phys_cc,
80 const amrex::MultiFab&
xvel,
81 const amrex::MultiFab&
yvel,
82 const amrex::MultiFab* qheating_rates,
83 amrex::MultiFab* terrain_blank,
84 const amrex::Geometry geom,
86 amrex::Vector<std::unique_ptr<amrex::MultiFab>>& mapfac,
87 const amrex::MultiFab* rhotheta_src,
88 const amrex::MultiFab* rhoqt_src,
90 const amrex::Vector<amrex::Real*> d_rayleigh_ptrs_at_lev,
92 const amrex::MultiFab* surface_state_at_lev,
97 #if defined(ERF_USE_NETCDF)
99 add_moist_nudging_terms (
const amrex::MultiFab& S_data,
100 amrex::MultiFab& source,
109 const amrex::Geometry& geom,
110 amrex::Vector<amrex::Vector<amrex::FArrayBox>>& bdy_data_xlo,
111 amrex::Vector<amrex::Vector<amrex::FArrayBox>>& bdy_data_xhi,
112 amrex::Vector<amrex::Vector<amrex::FArrayBox>>& bdy_data_ylo,
113 amrex::Vector<amrex::Vector<amrex::FArrayBox>>& bdy_data_yhi,
114 std::unique_ptr<ReadBndryPlanes>& m_r2d,
117 const int bdy_moist_nudge_type);
122 const amrex::Vector<amrex::MultiFab>& S_data,
123 const amrex::MultiFab* z_phys_nd,
124 const amrex::MultiFab* z_phys_cc,
125 amrex::Vector<amrex::Real>& stretched_dz_h,
126 const amrex::MultiFab&
xvel,
127 const amrex::MultiFab&
yvel,
128 const amrex::MultiFab&
zvel,
129 amrex::MultiFab& xmom_source,
130 amrex::MultiFab& ymom_source,
131 amrex::MultiFab& zmom_source,
132 const amrex::MultiFab& base_state,
133 amrex::MultiFab* forest_drag,
134 amrex::MultiFab* terrain_blank,
135 amrex::MultiFab* cosPhi_mf,
136 amrex::MultiFab* sinPhi_mf,
137 const amrex::Geometry geom,
139 amrex::Vector<std::unique_ptr<amrex::MultiFab>>& mapfac,
143 const amrex::Vector<amrex::Real*> d_rayleigh_ptrs_at_lev,
146 const amrex::Vector<amrex::Real*> d_sponge_ptrs_at_lev,
147 const amrex::Vector<amrex::MultiFab>* forecast_state_at_lev,
148 const amrex::MultiFab* surface_state_at_lev,
154 amrex::MultiFab& ymom_source,
155 amrex::MultiFab& zmom_source,
156 std::unique_ptr<amrex::iMultiFab>& xflux_imask_lev,
157 std::unique_ptr<amrex::iMultiFab>& yflux_imask_lev,
158 std::unique_ptr<amrex::iMultiFab>& zflux_imask_lev,
159 std::unique_ptr<amrex::MultiFab>& thin_xforce_lev,
160 std::unique_ptr<amrex::MultiFab>& thin_yforce_lev,
161 std::unique_ptr<amrex::MultiFab>& thin_zforce_lev);
163 #if defined(ERF_USE_NETCDF)
165 moist_set_rhs (
const amrex::Geometry& geom,
166 const amrex::Box& tbx,
167 const amrex::Array4<amrex::Real const>& new_cons,
168 const amrex::Array4<amrex::Real >& cell_rhs,
177 const amrex::Box& domain,
178 amrex::Vector<amrex::Vector<amrex::FArrayBox>>& bdy_data_xlo,
179 amrex::Vector<amrex::Vector<amrex::FArrayBox>>& bdy_data_xhi,
180 amrex::Vector<amrex::Vector<amrex::FArrayBox>>& bdy_data_ylo,
181 amrex::Vector<amrex::Vector<amrex::FArrayBox>>& bdy_data_yhi,
182 std::unique_ptr<ReadBndryPlanes>& m_r2d);
186 const amrex::Geometry geom,
187 const amrex::Box& bx,
188 const amrex::Array4<amrex::Real>& cell_rhs,
189 const amrex::Array4<const amrex::Real>& cell_data,
190 const amrex::Array4<const amrex::Real>&
r0,
191 const amrex::Array4<const amrex::Real>& th0,
192 const amrex::Array4<const amrex::Real>& qv0,
193 const amrex::Array4<const amrex::Real>& z_phys_cc,
197 const amrex::Geometry geom,
198 const amrex::Box& tbx,
199 const amrex::Box& tby,
200 const amrex::Box& tbz,
201 const amrex::Array4<amrex::Real>& rho_u_rhs,
202 const amrex::Array4<amrex::Real>& rho_v_rhs,
203 const amrex::Array4<amrex::Real>& rho_w_rhs,
204 const amrex::Array4<const amrex::Real>& rho_u,
205 const amrex::Array4<const amrex::Real>& rho_v,
206 const amrex::Array4<const amrex::Real>& rho_w,
207 const amrex::Array4<const amrex::Real>&
r0,
208 const amrex::Array4<const amrex::Real>& z_phys_nd,
209 const amrex::Array4<const amrex::Real>& z_phys_cc);
212 const amrex::Geometry geom,
213 const amrex::Box& tbx,
214 const amrex::Box& tby,
215 const amrex::Array4<const amrex::Real>& cell_data,
216 const amrex::Array4<const amrex::Real>& z_phys_cc,
217 const amrex::Array4<amrex::Real>& rho_u_rhs,
218 const amrex::Array4<amrex::Real>& rho_v_rhs,
219 const amrex::Array4<const amrex::Real>& rho_u,
220 const amrex::Array4<const amrex::Real>& rho_v,
221 const amrex::Vector<amrex::Real*> d_sponge_ptrs_at_lev);
224 const amrex::Geometry geom,
225 const amrex::Box& tbx,
226 const amrex::Box& tby,
227 const amrex::Box& tbz,
228 const amrex::Array4<const amrex::Real>& z_phys_nd,
229 const amrex::Array4<amrex::Real>& rho_u_rhs,
230 const amrex::Array4<amrex::Real>& rho_v_rhs,
231 const amrex::Array4<amrex::Real>& rho_w_rhs,
232 const amrex::Array4<const amrex::Real>& rho_u,
233 const amrex::Array4<const amrex::Real>& rho_v,
234 const amrex::Array4<const amrex::Real>& rho_w,
235 const amrex::Array4<const amrex::Real>& rho_u_initial_state,
236 const amrex::Array4<const amrex::Real>& rho_v_initial_state,
237 const amrex::Array4<const amrex::Real>& rho_w_initial_state,
238 const amrex::Array4<const amrex::Real>& cons_initial_state);
242 const amrex::Box& tby,
243 const amrex::Array4<amrex::Real>& rho_u_rhs,
244 const amrex::Array4<amrex::Real>& rho_v_rhs,
245 const amrex::Array4<const amrex::Real>& rho_u,
246 const amrex::Array4<const amrex::Real>& rho_v,
247 const amrex::Array4<const amrex::Real>& cons_state,
248 const amrex::Array4<const amrex::Real>& z_phys_nd,
249 const amrex::Array4<const amrex::Real>& surface_state_arr);
253 const amrex::Array4<amrex::Real>& cell_rhs,
254 const amrex::Array4<const amrex::Real>& cons_state,
255 const amrex::Array4<const amrex::Real>& z_phys_cc,
256 const amrex::Array4<const amrex::Real>& surface_state_arr);
const Real rdOcp
Definition: ERF_InitCustomPert_Bomex.H:16
amrex::Real Real
Definition: ERF_ShocInterface.H:19
@ qt
Definition: ERF_Kessler.H:28
@ xvel
Definition: ERF_IndexDefines.H:175
@ zvel
Definition: ERF_IndexDefines.H:177
@ yvel
Definition: ERF_IndexDefines.H:176
@ p
Definition: ERF_WSM6.H:176
real(c_double), parameter p0
Definition: ERF_module_model_constants.F90:40
real(kind=kind_phys), parameter, private r0
Definition: ERF_module_mp_wsm6.F90:21
Definition: ERF_DataStruct.H:141
Definition: ERF_SpongeStruct.H:19
Definition: ERF_TurbPertStruct.H:22