3 #ifndef ERF_DIFFUSION_H_
4 #define ERF_DIFFUSION_H_
7 #include "AMReX_MultiFab.H"
8 #include "AMReX_BCRec.H"
18 const amrex::Array4< amrex::Real>& rho_u_rhs,
19 const amrex::Array4< amrex::Real>& rho_v_rhs,
20 const amrex::Array4< amrex::Real>& rho_w_rhs,
21 const amrex::Array4<const amrex::Real>&
tau11 ,
22 const amrex::Array4<const amrex::Real>&
tau22 ,
23 const amrex::Array4<const amrex::Real>&
tau33 ,
24 const amrex::Array4<const amrex::Real>&
tau12 ,
const amrex::Array4<const amrex::Real>&
tau21,
25 const amrex::Array4<const amrex::Real>&
tau13 ,
const amrex::Array4<const amrex::Real>&
tau31,
26 const amrex::Array4<const amrex::Real>&
tau23 ,
const amrex::Array4<const amrex::Real>&
tau32,
27 const amrex::Array4<const amrex::Real>& detJ_arr ,
28 const amrex::Gpu::DeviceVector<amrex::Real>& stretched_dz_d,
29 const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>&
dxInv,
30 const amrex::Array4<const amrex::Real>& mf_mx ,
31 const amrex::Array4<const amrex::Real>& mf_ux ,
32 const amrex::Array4<const amrex::Real>& mf_vx ,
33 const amrex::Array4<const amrex::Real>& mf_my ,
34 const amrex::Array4<const amrex::Real>& mf_uy ,
35 const amrex::Array4<const amrex::Real>& mf_vy ,
36 const bool use_stretched_dz,
const bool use_variable_dz);
40 [[maybe_unused]]
const amrex::Box& domain,
41 const amrex::Box& bxx,
const amrex::Box& bxy,
const amrex::Box& bxz,
42 const amrex::Array4< amrex::Real>& rho_u_rhs,
43 const amrex::Array4< amrex::Real>& rho_v_rhs,
44 const amrex::Array4< amrex::Real>& rho_w_rhs,
45 const amrex::Array4<const amrex::Real>& u_arr ,
46 const amrex::Array4<const amrex::Real>& v_arr ,
47 const amrex::Array4<const amrex::Real>& w_arr ,
48 const amrex::Array4<const amrex::Real>&
tau11 ,
49 const amrex::Array4<const amrex::Real>&
tau22 ,
50 const amrex::Array4<const amrex::Real>&
tau33 ,
51 const amrex::Array4<const amrex::Real>&
tau12 ,
52 const amrex::Array4<const amrex::Real>&
tau13 ,
53 const amrex::Array4<const amrex::Real>&
tau23 ,
54 const amrex::Array4<const amrex::Real>& u_tau_eb13 ,
55 const amrex::Array4<const amrex::Real>& u_tau_eb23 ,
56 const amrex::Array4<const amrex::Real>& v_tau_eb13 ,
57 const amrex::Array4<const amrex::Real>& v_tau_eb23 ,
58 const amrex::Array4<const amrex::Real>& w_tau_eb13 ,
59 const amrex::Array4<const amrex::Real>& w_tau_eb23 ,
61 const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>&
dxInv,
62 const amrex::Array4<const amrex::Real>& mf_mx ,
63 const amrex::Array4<const amrex::Real>& mf_ux ,
64 const amrex::Array4<const amrex::Real>& mf_vx ,
65 const amrex::Array4<const amrex::Real>& mf_my ,
66 const amrex::Array4<const amrex::Real>& mf_uy ,
67 const amrex::Array4<const amrex::Real>& mf_vy ,
70 [[maybe_unused]]
const amrex::BCRec* bc_ptr);
74 int start_comp,
int num_comp,
75 const amrex::Array4<const amrex::Real>& u,
76 const amrex::Array4<const amrex::Real>& v,
77 const amrex::Array4<const amrex::Real>& cell_data,
78 const amrex::Array4<const amrex::Real>& cell_prim,
79 const amrex::Array4<amrex::Real>& cell_rhs,
80 const amrex::Array4<amrex::Real>& xflux,
81 const amrex::Array4<amrex::Real>& yflux,
82 const amrex::Array4<amrex::Real>& zflux,
83 const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>& cellSizeInv,
84 const amrex::Array4<const amrex::Real>& SmnSmn_a,
85 const amrex::Array4<const amrex::Real>& mf_mx,
86 const amrex::Array4<const amrex::Real>& mf_ux,
87 const amrex::Array4<const amrex::Real>& mf_vx,
88 const amrex::Array4<const amrex::Real>& mf_my,
89 const amrex::Array4<const amrex::Real>& mf_uy,
90 const amrex::Array4<const amrex::Real>& mf_vy,
91 amrex::Array4< amrex::Real>& hfx_z,
92 amrex::Array4< amrex::Real>& qfx1_z,
93 amrex::Array4< amrex::Real>& qfx2_z,
94 amrex::Array4< amrex::Real>& diss,
95 const amrex::Array4<const amrex::Real>& mu_turb,
98 const amrex::Array4<const amrex::Real>& tm_arr,
99 const amrex::GpuArray<amrex::Real,AMREX_SPACEDIM> grav_gpu,
100 const amrex::BCRec* bc_ptr,
101 const bool use_SurfLayer,
106 int start_comp,
int num_comp,
107 const amrex::Array4<const amrex::Real>& u,
108 const amrex::Array4<const amrex::Real>& v,
109 const amrex::Array4<const amrex::Real>& cell_data,
110 const amrex::Array4<const amrex::Real>& cell_prim,
111 const amrex::Array4<amrex::Real>& cell_rhs,
112 const amrex::Array4<amrex::Real>& xflux,
113 const amrex::Array4<amrex::Real>& yflux,
114 const amrex::Array4<amrex::Real>& zflux,
115 const amrex::Gpu::DeviceVector<amrex::Real>& stretched_dz_d,
116 const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>&
dxInv,
117 const amrex::Array4<const amrex::Real>& SmnSmn_a,
118 const amrex::Array4<const amrex::Real>& mf_mx,
119 const amrex::Array4<const amrex::Real>& mf_ux,
120 const amrex::Array4<const amrex::Real>& mf_vx,
121 const amrex::Array4<const amrex::Real>& mf_my,
122 const amrex::Array4<const amrex::Real>& mf_uy,
123 const amrex::Array4<const amrex::Real>& mf_vy,
124 amrex::Array4< amrex::Real>& hfx_z,
125 amrex::Array4< amrex::Real>& qfx1_z,
126 amrex::Array4< amrex::Real>& qfx2_z,
127 amrex::Array4< amrex::Real>& diss,
128 const amrex::Array4<const amrex::Real>& mu_turb,
131 const amrex::Array4<const amrex::Real>& tm_arr,
132 const amrex::GpuArray<amrex::Real,AMREX_SPACEDIM> grav_gpu,
133 const amrex::BCRec* bc_ptr,
134 const bool use_SurfLayer,
139 int start_comp,
int num_comp,
141 const amrex::Array4<const amrex::Real>& u,
142 const amrex::Array4<const amrex::Real>& v,
143 const amrex::Array4<const amrex::Real>& cell_data,
144 const amrex::Array4<const amrex::Real>& cell_prim,
145 const amrex::Array4<amrex::Real>& cell_rhs,
146 const amrex::Array4<amrex::Real>& xflux,
147 const amrex::Array4<amrex::Real>& yflux,
148 const amrex::Array4<amrex::Real>& zflux,
149 const amrex::Array4<const amrex::Real>& z_nd,
150 const amrex::Array4<const amrex::Real>& z_cc,
151 const amrex::Array4<const amrex::Real>& ax,
152 const amrex::Array4<const amrex::Real>& ay,
153 const amrex::Array4<const amrex::Real>& az,
154 const amrex::Array4<const amrex::Real>& detJ,
155 const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>&
dxInv,
156 const amrex::Array4<const amrex::Real>& SmnSmn_a,
157 const amrex::Array4<const amrex::Real>& mf_mx,
158 const amrex::Array4<const amrex::Real>& mf_ux,
159 const amrex::Array4<const amrex::Real>& mf_vx,
160 const amrex::Array4<const amrex::Real>& mf_my,
161 const amrex::Array4<const amrex::Real>& mf_uy,
162 const amrex::Array4<const amrex::Real>& mf_vy,
163 amrex::Array4< amrex::Real>& hfx_x,
164 amrex::Array4< amrex::Real>& hfx_y,
165 amrex::Array4< amrex::Real>& hfx_z,
166 amrex::Array4< amrex::Real>& qfx1_x,
167 amrex::Array4< amrex::Real>& qfx1_y,
168 amrex::Array4< amrex::Real>& qfx1_z,
169 amrex::Array4< amrex::Real>& qfx2_z,
170 amrex::Array4< amrex::Real>& diss,
171 const amrex::Array4<const amrex::Real>& mu_turb,
174 const amrex::Array4<const amrex::Real>& tm_arr,
175 const amrex::GpuArray<amrex::Real,AMREX_SPACEDIM> grav_gpu,
176 const amrex::BCRec* bc_ptr,
177 const bool use_SurfLayer,
182 int start_comp,
int num_comp,
183 const amrex::Array4<const amrex::Real>& u,
184 const amrex::Array4<const amrex::Real>& v,
185 const amrex::Array4<const amrex::Real>& cell_data,
186 const amrex::Array4<const amrex::Real>& cell_prim,
187 const amrex::Array4<amrex::Real>& cell_rhs,
188 const amrex::Array4<amrex::Real>& xflux,
189 const amrex::Array4<amrex::Real>& yflux,
190 const amrex::Array4<amrex::Real>& zflux,
191 const amrex::Array4<const amrex::EBCellFlag>& cfg_arr,
192 const amrex::Array4<const amrex::Real>& ax_arr,
193 const amrex::Array4<const amrex::Real>& ay_arr,
194 const amrex::Array4<const amrex::Real>& az_arr,
195 const amrex::Array4<const amrex::Real>& detJ,
196 const amrex::Array4<const amrex::Real>& barea_arr,
197 const amrex::Array4<const amrex::Real>& bcent_arr,
199 const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>& cellSizeInv,
200 amrex::Array4< amrex::Real>& hfx_z,
201 amrex::Array4< amrex::Real>& qfx1_z,
202 amrex::Array4< amrex::Real>& qfx2_z,
203 amrex::Array4< amrex::Real>& hfx_EB,
204 const amrex::Array4<const amrex::Real>& mu_turb,
207 const amrex::BCRec* bc_ptr,
208 const bool use_SurfLayer);
216 const amrex::Array4<const amrex::Real>& cell_data,
217 amrex::Array4<amrex::Real>&
tau11,
218 amrex::Array4<amrex::Real>&
tau22,
219 amrex::Array4<amrex::Real>&
tau33,
220 amrex::Array4<amrex::Real>&
tau12,
221 amrex::Array4<amrex::Real>&
tau13,
222 amrex::Array4<amrex::Real>&
tau23,
223 const amrex::Array4<const amrex::Real>& er_arr,
224 amrex::Array4<const amrex::Real>& vfrac,
225 amrex::Array4<amrex::Real>& tau13i,
226 amrex::Array4<amrex::Real>& tau23i,
227 amrex::Array4<amrex::Real>& tau33i);
235 const amrex::Array4<const amrex::Real>& cell_data,
236 amrex::Array4<amrex::Real>&
tau11,
237 amrex::Array4<amrex::Real>&
tau22,
238 amrex::Array4<amrex::Real>&
tau33,
239 amrex::Array4<amrex::Real>&
tau12,
240 amrex::Array4<amrex::Real>&
tau13,
241 amrex::Array4<amrex::Real>&
tau23,
242 const amrex::Array4<const amrex::Real>& er_arr,
243 amrex::Array4<amrex::Real>& tau13i,
244 amrex::Array4<amrex::Real>& tau23i,
245 amrex::Array4<amrex::Real>& tau33i);
253 const amrex::Array4<const amrex::Real>& cell_data,
254 amrex::Array4<amrex::Real>&
tau11,
255 amrex::Array4<amrex::Real>&
tau22,
256 amrex::Array4<amrex::Real>&
tau33,
257 amrex::Array4<amrex::Real>&
tau12, amrex::Array4<amrex::Real>&
tau21,
258 amrex::Array4<amrex::Real>&
tau13, amrex::Array4<amrex::Real>&
tau31,
259 amrex::Array4<amrex::Real>&
tau23, amrex::Array4<amrex::Real>&
tau32,
260 const amrex::Array4<const amrex::Real>& er_arr,
261 const amrex::Array4<const amrex::Real>& mf_mx,
262 const amrex::Array4<const amrex::Real>& mf_ux,
263 const amrex::Array4<const amrex::Real>& mf_vx,
264 const amrex::Array4<const amrex::Real>& mf_my,
265 const amrex::Array4<const amrex::Real>& mf_uy,
266 const amrex::Array4<const amrex::Real>& mf_vy,
267 amrex::Array4<amrex::Real>& tau13i,
268 amrex::Array4<amrex::Real>& tau23i,
269 amrex::Array4<amrex::Real>& tau33i);
277 const amrex::Array4<const amrex::Real>& cell_data,
278 amrex::Array4<amrex::Real>&
tau11,
279 amrex::Array4<amrex::Real>&
tau22,
280 amrex::Array4<amrex::Real>&
tau33,
281 amrex::Array4<amrex::Real>&
tau12, amrex::Array4<amrex::Real>&
tau21,
282 amrex::Array4<amrex::Real>&
tau13, amrex::Array4<amrex::Real>&
tau31,
283 amrex::Array4<amrex::Real>&
tau23, amrex::Array4<amrex::Real>&
tau32,
284 const amrex::Array4<const amrex::Real>& er_arr,
285 const amrex::Array4<const amrex::Real>& z_nd,
286 const amrex::Array4<const amrex::Real>& detJ,
287 const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>&
dxInv,
288 const amrex::Array4<const amrex::Real>& mf_mx,
289 const amrex::Array4<const amrex::Real>& mf_ux,
290 const amrex::Array4<const amrex::Real>& mf_vx,
291 const amrex::Array4<const amrex::Real>& mf_my,
292 const amrex::Array4<const amrex::Real>& mf_uy,
293 const amrex::Array4<const amrex::Real>& mf_vy,
294 amrex::Array4<amrex::Real>& tau13i,
295 amrex::Array4<amrex::Real>& tau23i,
296 amrex::Array4<amrex::Real>& tau33i);
304 const amrex::Array4<const amrex::Real>& mu_turb,
305 const amrex::Array4<const amrex::Real>& cell_data,
306 amrex::Array4<amrex::Real>&
tau11,
307 amrex::Array4<amrex::Real>&
tau22,
308 amrex::Array4<amrex::Real>&
tau33,
309 amrex::Array4<amrex::Real>&
tau12,
310 amrex::Array4<amrex::Real>&
tau13,
311 amrex::Array4<amrex::Real>&
tau23,
312 const amrex::Array4<const amrex::Real>& er_arr,
313 amrex::Array4<const amrex::Real>& vfrac,
314 amrex::Array4<amrex::Real>& tau13i,
315 amrex::Array4<amrex::Real>& tau23i,
316 amrex::Array4<amrex::Real>& tau33i);
324 const amrex::Array4<const amrex::Real>& mu_turb,
325 const amrex::Array4<const amrex::Real>& cell_data,
326 amrex::Array4<amrex::Real>&
tau11,
327 amrex::Array4<amrex::Real>&
tau22,
328 amrex::Array4<amrex::Real>&
tau33,
329 amrex::Array4<amrex::Real>&
tau12,
330 amrex::Array4<amrex::Real>&
tau13,
331 amrex::Array4<amrex::Real>&
tau23,
332 const amrex::Array4<const amrex::Real>& er_arr,
333 amrex::Array4<amrex::Real>& tau13i,
334 amrex::Array4<amrex::Real>& tau23i,
335 amrex::Array4<amrex::Real>& tau33i);
343 const amrex::Array4<const amrex::Real>& mu_turb,
344 const amrex::Array4<const amrex::Real>& cell_data,
345 amrex::Array4<amrex::Real>&
tau11,
346 amrex::Array4<amrex::Real>&
tau22,
347 amrex::Array4<amrex::Real>&
tau33,
348 amrex::Array4<amrex::Real>&
tau12, amrex::Array4<amrex::Real>&
tau21,
349 amrex::Array4<amrex::Real>&
tau13, amrex::Array4<amrex::Real>&
tau31,
350 amrex::Array4<amrex::Real>&
tau23, amrex::Array4<amrex::Real>&
tau32,
351 const amrex::Array4<const amrex::Real>& er_arr,
352 const amrex::Array4<const amrex::Real>& mf_mx,
353 const amrex::Array4<const amrex::Real>& mf_ux,
354 const amrex::Array4<const amrex::Real>& mf_vx,
355 const amrex::Array4<const amrex::Real>& mf_my,
356 const amrex::Array4<const amrex::Real>& mf_uy,
357 const amrex::Array4<const amrex::Real>& mf_vy,
358 amrex::Array4<amrex::Real>& tau13i,
359 amrex::Array4<amrex::Real>& tau23i,
360 amrex::Array4<amrex::Real>& tau33i);
368 const amrex::Array4<const amrex::Real>& mu_turb,
369 const amrex::Array4<const amrex::Real>& cell_data,
370 amrex::Array4<amrex::Real>&
tau11,
371 amrex::Array4<amrex::Real>&
tau22,
372 amrex::Array4<amrex::Real>&
tau33,
373 amrex::Array4<amrex::Real>&
tau12, amrex::Array4<amrex::Real>&
tau21,
374 amrex::Array4<amrex::Real>&
tau13, amrex::Array4<amrex::Real>&
tau31,
375 amrex::Array4<amrex::Real>&
tau23, amrex::Array4<amrex::Real>&
tau32,
376 const amrex::Array4<const amrex::Real>& er_arr,
377 const amrex::Array4<const amrex::Real>& z_nd,
378 const amrex::Array4<const amrex::Real>& detJ,
379 const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>&
dxInv,
380 const amrex::Array4<const amrex::Real>& mf_mx,
381 const amrex::Array4<const amrex::Real>& mf_ux,
382 const amrex::Array4<const amrex::Real>& mf_vx,
383 const amrex::Array4<const amrex::Real>& mf_my,
384 const amrex::Array4<const amrex::Real>& mf_uy,
385 const amrex::Array4<const amrex::Real>& mf_vy,
386 amrex::Array4<amrex::Real>& tau13i,
387 amrex::Array4<amrex::Real>& tau23i,
388 amrex::Array4<amrex::Real>& tau33i);
392 amrex::Box bxcc, amrex::Box tbxxy,
393 amrex::Box tbxxz, amrex::Box tbxyz, amrex::Box domain,
394 const amrex::Array4<const amrex::Real>& u,
395 const amrex::Array4<const amrex::Real>& v,
396 const amrex::Array4<const amrex::Real>&
w,
397 amrex::Array4<amrex::Real>&
tau11,
398 amrex::Array4<amrex::Real>&
tau22,
399 amrex::Array4<amrex::Real>&
tau33,
400 amrex::Array4<amrex::Real>&
tau12,
401 amrex::Array4<amrex::Real>&
tau13,
402 amrex::Array4<amrex::Real>&
tau23,
403 const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>&
dxInv,
404 const amrex::BCRec* bc_ptr,
406 amrex::Array4<amrex::Real>& tau13i,
407 amrex::Array4<amrex::Real>& tau23i);
411 amrex::Box tbxxz, amrex::Box tbxyz, amrex::Box domain,
412 const amrex::Array4<const amrex::Real>& u,
413 const amrex::Array4<const amrex::Real>& v,
414 const amrex::Array4<const amrex::Real>&
w,
415 amrex::Array4<amrex::Real>&
tau11,
416 amrex::Array4<amrex::Real>&
tau22,
417 amrex::Array4<amrex::Real>&
tau33,
418 amrex::Array4<amrex::Real>&
tau12,
419 amrex::Array4<amrex::Real>&
tau13,
420 amrex::Array4<amrex::Real>&
tau23,
421 const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>&
dxInv,
422 const amrex::Array4<const amrex::Real>& mf_mx,
423 const amrex::Array4<const amrex::Real>& mf_ux,
424 const amrex::Array4<const amrex::Real>& mf_vx,
425 const amrex::Array4<const amrex::Real>& mf_my,
426 const amrex::Array4<const amrex::Real>& mf_uy,
427 const amrex::Array4<const amrex::Real>& mf_vy,
428 const amrex::BCRec* bc_ptr,
429 amrex::Array4<amrex::Real>& tau13i,
430 amrex::Array4<amrex::Real>& tau23i);
434 amrex::Box tbxxz, amrex::Box tbxyz, amrex::Box domain,
435 const amrex::Array4<const amrex::Real>& u,
436 const amrex::Array4<const amrex::Real>& v,
437 const amrex::Array4<const amrex::Real>&
w,
438 amrex::Array4<amrex::Real>&
tau11,
439 amrex::Array4<amrex::Real>&
tau22,
440 amrex::Array4<amrex::Real>&
tau33,
441 amrex::Array4<amrex::Real>&
tau12, amrex::Array4<amrex::Real>&
tau21,
442 amrex::Array4<amrex::Real>&
tau13, amrex::Array4<amrex::Real>&
tau31,
443 amrex::Array4<amrex::Real>&
tau23, amrex::Array4<amrex::Real>&
tau32,
444 const amrex::Gpu::DeviceVector<amrex::Real>& stretched_dz_d,
445 const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>&
dxInv,
446 const amrex::Array4<const amrex::Real>& mf_mx,
447 const amrex::Array4<const amrex::Real>& mf_ux,
448 const amrex::Array4<const amrex::Real>& mf_vx,
449 const amrex::Array4<const amrex::Real>& mf_my,
450 const amrex::Array4<const amrex::Real>& mf_uy,
451 const amrex::Array4<const amrex::Real>& mf_vy,
452 const amrex::BCRec* bc_ptr,
453 amrex::Array4<amrex::Real>& tau13i,
454 amrex::Array4<amrex::Real>& tau23i);
458 amrex::Box tbxxz, amrex::Box tbxyz, amrex::Box domain,
459 const amrex::Array4<const amrex::Real>& u,
460 const amrex::Array4<const amrex::Real>& v,
461 const amrex::Array4<const amrex::Real>&
w,
462 amrex::Array4<amrex::Real>&
tau11,
463 amrex::Array4<amrex::Real>&
tau22,
464 amrex::Array4<amrex::Real>&
tau33,
465 amrex::Array4<amrex::Real>&
tau12, amrex::Array4<amrex::Real>&
tau21,
466 amrex::Array4<amrex::Real>&
tau13, amrex::Array4<amrex::Real>&
tau31,
467 amrex::Array4<amrex::Real>&
tau23, amrex::Array4<amrex::Real>&
tau32,
468 const amrex::Array4<const amrex::Real>& z_nd,
469 const amrex::Array4<const amrex::Real>& detJ,
470 const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>&
dxInv,
471 const amrex::Array4<const amrex::Real>& mf_mx,
472 const amrex::Array4<const amrex::Real>& mf_ux,
473 const amrex::Array4<const amrex::Real>& mf_vx,
474 const amrex::Array4<const amrex::Real>& mf_my,
475 const amrex::Array4<const amrex::Real>& mf_uy,
476 const amrex::Array4<const amrex::Real>& mf_vy,
477 const amrex::BCRec* bc_ptr,
478 amrex::Array4<amrex::Real>& tau13i,
479 amrex::Array4<amrex::Real>& tau23i);
483 const amrex::Box& domain,
487 const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM*2>& bc_neumann_vals,
488 const amrex::Array4< amrex::Real>& cell_data,
489 const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>& cellSizeInv,
490 const amrex::Array4<const amrex::Real>& hfx_z,
491 const amrex::Array4<const amrex::Real>& mu_turb,
493 const amrex::BCRec* bc_ptr,
494 const bool use_SurfLayer,
496 const bool use_mrf_countergradient =
false);
500 const amrex::Box& domain,
504 const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM*2>& bc_neumann_vals,
505 const amrex::Array4< amrex::Real>& cell_data,
506 const amrex::Gpu::DeviceVector<amrex::Real>& stretched_dz_d,
507 const amrex::Array4<const amrex::Real>& hfx_z,
508 const amrex::Array4<const amrex::Real>& mu_turb,
510 const amrex::BCRec* bc_ptr,
511 const bool use_SurfLayer,
513 const bool use_mrf_countergradient =
false);
517 const amrex::Box& domain,
521 const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM*2>& bc_neumann_vals,
522 const amrex::Array4< amrex::Real>& cell_data,
523 const amrex::Array4<const amrex::Real>& z_nd,
524 const amrex::Array4<const amrex::Real>& detJ,
525 const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>& cellSizeInv,
526 const amrex::Array4<const amrex::Real>& hfx_z,
527 const amrex::Array4<const amrex::Real>& mu_turb,
529 const amrex::BCRec* bc_ptr,
530 const bool use_SurfLayer,
532 const bool use_mrf_countergradient =
false);
535 template <
int stagdir>
537 const amrex::Box& domain,
540 const amrex::Array4<const amrex::Real>& cell_data,
541 const amrex::Array4< amrex::Real>& face_data,
542 const amrex::Array4<const amrex::Real>& tau,
543 const amrex::Array4<const amrex::Real>& tau_corr,
544 const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>& cellSizeInv,
545 const amrex::Array4<const amrex::Real>& mu_turb,
547 const amrex::BCRec* bc_ptr,
548 const bool use_SurfLayer,
550 const bool use_ysu_mom_countergradient);
553 template <
int stagdir>
555 const amrex::Box& domain,
558 const amrex::Array4<const amrex::Real>& cell_data,
559 const amrex::Array4< amrex::Real>& face_data,
560 const amrex::Array4<const amrex::Real>& tau,
561 const amrex::Array4<const amrex::Real>& tau_corr,
562 const amrex::Gpu::DeviceVector<amrex::Real>& stretched_dz_d,
563 const amrex::Array4<const amrex::Real>& mu_turb,
565 const amrex::BCRec* bc_ptr,
566 const bool use_SurfLayer,
568 const bool use_ysu_mom_countergradient);
571 template <
int stagdir>
573 const amrex::Box& domain,
576 const amrex::Array4<const amrex::Real>& cell_data,
577 const amrex::Array4< amrex::Real>& face_data,
578 const amrex::Array4<const amrex::Real>& tau,
579 const amrex::Array4<const amrex::Real>& tau_corr,
580 const amrex::Array4<const amrex::Real>& z_nd,
581 const amrex::Array4<const amrex::Real>& detJ,
582 const amrex::GpuArray<amrex::Real, AMREX_SPACEDIM>& cellSizeInv,
583 const amrex::Array4<const amrex::Real>& mu_turb,
585 const amrex::BCRec* bc_ptr,
586 const bool use_SurfLayer,
588 const bool use_ysu_mom_countergradient);
@ tau12
Definition: ERF_DataStruct.H:38
@ tau23
Definition: ERF_DataStruct.H:38
@ tau33
Definition: ERF_DataStruct.H:38
@ tau22
Definition: ERF_DataStruct.H:38
@ tau11
Definition: ERF_DataStruct.H:38
@ tau32
Definition: ERF_DataStruct.H:38
@ tau31
Definition: ERF_DataStruct.H:38
@ tau21
Definition: ERF_DataStruct.H:38
@ tau13
Definition: ERF_DataStruct.H:38
void ComputeStressVarVisc_T(amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex::Box tbxyz, amrex::Real mu_eff, const amrex::Array4< const amrex::Real > &mu_turb, const amrex::Array4< const amrex::Real > &cell_data, amrex::Array4< amrex::Real > &tau11, amrex::Array4< amrex::Real > &tau22, amrex::Array4< amrex::Real > &tau33, amrex::Array4< amrex::Real > &tau12, amrex::Array4< amrex::Real > &tau21, amrex::Array4< amrex::Real > &tau13, amrex::Array4< amrex::Real > &tau31, amrex::Array4< amrex::Real > &tau23, amrex::Array4< amrex::Real > &tau32, const amrex::Array4< const amrex::Real > &er_arr, const amrex::Array4< const amrex::Real > &z_nd, const amrex::Array4< const amrex::Real > &detJ, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &dxInv, const amrex::Array4< const amrex::Real > &mf_mx, const amrex::Array4< const amrex::Real > &mf_ux, const amrex::Array4< const amrex::Real > &mf_vx, const amrex::Array4< const amrex::Real > &mf_my, const amrex::Array4< const amrex::Real > &mf_uy, const amrex::Array4< const amrex::Real > &mf_vy, amrex::Array4< amrex::Real > &tau13i, amrex::Array4< amrex::Real > &tau23i, amrex::Array4< amrex::Real > &tau33i)
Compute stress components for variable viscosity on terrain-following coordinates.
void DiffusionSrcForMom(const amrex::Box &bxx, const amrex::Box &bxy, const amrex::Box &bxz, const amrex::Array4< amrex::Real > &rho_u_rhs, const amrex::Array4< amrex::Real > &rho_v_rhs, const amrex::Array4< amrex::Real > &rho_w_rhs, const amrex::Array4< const amrex::Real > &tau11, const amrex::Array4< const amrex::Real > &tau22, const amrex::Array4< const amrex::Real > &tau33, const amrex::Array4< const amrex::Real > &tau12, const amrex::Array4< const amrex::Real > &tau21, const amrex::Array4< const amrex::Real > &tau13, const amrex::Array4< const amrex::Real > &tau31, const amrex::Array4< const amrex::Real > &tau23, const amrex::Array4< const amrex::Real > &tau32, const amrex::Array4< const amrex::Real > &detJ_arr, const amrex::Gpu::DeviceVector< amrex::Real > &stretched_dz_d, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &dxInv, const amrex::Array4< const amrex::Real > &mf_mx, const amrex::Array4< const amrex::Real > &mf_ux, const amrex::Array4< const amrex::Real > &mf_vx, const amrex::Array4< const amrex::Real > &mf_my, const amrex::Array4< const amrex::Real > &mf_uy, const amrex::Array4< const amrex::Real > &mf_vy, const bool use_stretched_dz, const bool use_variable_dz)
Add stress-divergence diffusion source terms to the momentum RHS.
void ComputeStressConsVisc_N(amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex::Box tbxyz, amrex::Real mu_eff, const amrex::Array4< const amrex::Real > &cell_data, amrex::Array4< amrex::Real > &tau11, amrex::Array4< amrex::Real > &tau22, amrex::Array4< amrex::Real > &tau33, amrex::Array4< amrex::Real > &tau12, amrex::Array4< amrex::Real > &tau13, amrex::Array4< amrex::Real > &tau23, const amrex::Array4< const amrex::Real > &er_arr, amrex::Array4< amrex::Real > &tau13i, amrex::Array4< amrex::Real > &tau23i, amrex::Array4< amrex::Real > &tau33i)
Compute stress components for constant viscosity on a uniform grid without terrain.
void ImplicitDiffForMomLU_S(const amrex::Box &bx, const amrex::Box &domain, const int level, const double dt, const amrex::Array4< const amrex::Real > &cell_data, const amrex::Array4< amrex::Real > &face_data, const amrex::Array4< const amrex::Real > &tau, const amrex::Array4< const amrex::Real > &tau_corr, const amrex::Gpu::DeviceVector< amrex::Real > &stretched_dz_d, const amrex::Array4< const amrex::Real > &mu_turb, const SolverChoice &solverChoice, const amrex::BCRec *bc_ptr, const bool use_SurfLayer, const amrex::Real implicit_fac, const bool use_ysu_mom_countergradient)
Apply implicit vertical momentum diffusion on a vertically stretched grid.
void DiffusionSrcForState_S(const amrex::Box &bx, const amrex::Box &domain, int start_comp, int num_comp, const amrex::Array4< const amrex::Real > &u, const amrex::Array4< const amrex::Real > &v, const amrex::Array4< const amrex::Real > &cell_data, const amrex::Array4< const amrex::Real > &cell_prim, const amrex::Array4< amrex::Real > &cell_rhs, const amrex::Array4< amrex::Real > &xflux, const amrex::Array4< amrex::Real > &yflux, const amrex::Array4< amrex::Real > &zflux, const amrex::Gpu::DeviceVector< amrex::Real > &stretched_dz_d, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &dxInv, const amrex::Array4< const amrex::Real > &SmnSmn_a, const amrex::Array4< const amrex::Real > &mf_mx, const amrex::Array4< const amrex::Real > &mf_ux, const amrex::Array4< const amrex::Real > &mf_vx, const amrex::Array4< const amrex::Real > &mf_my, const amrex::Array4< const amrex::Real > &mf_uy, const amrex::Array4< const amrex::Real > &mf_vy, amrex::Array4< amrex::Real > &hfx_z, amrex::Array4< amrex::Real > &qfx1_z, amrex::Array4< amrex::Real > &qfx2_z, amrex::Array4< amrex::Real > &diss, const amrex::Array4< const amrex::Real > &mu_turb, const SolverChoice &solverChoice, const int level, const amrex::Array4< const amrex::Real > &tm_arr, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > grav_gpu, const amrex::BCRec *bc_ptr, const bool use_SurfLayer, const amrex::Real implicit_fac)
Add state diffusion source terms on a vertically stretched grid.
void ImplicitDiffForMomLU_N(const amrex::Box &bx, const amrex::Box &domain, const int level, const double dt, const amrex::Array4< const amrex::Real > &cell_data, const amrex::Array4< amrex::Real > &face_data, const amrex::Array4< const amrex::Real > &tau, const amrex::Array4< const amrex::Real > &tau_corr, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &cellSizeInv, const amrex::Array4< const amrex::Real > &mu_turb, const SolverChoice &solverChoice, const amrex::BCRec *bc_ptr, const bool use_SurfLayer, const amrex::Real implicit_fac, const bool use_ysu_mom_countergradient)
Apply implicit vertical momentum diffusion on a uniform grid without terrain.
void DiffusionSrcForState_T(const amrex::Box &bx, const amrex::Box &domain, int start_comp, int num_comp, const bool &rotate, const amrex::Array4< const amrex::Real > &u, const amrex::Array4< const amrex::Real > &v, const amrex::Array4< const amrex::Real > &cell_data, const amrex::Array4< const amrex::Real > &cell_prim, const amrex::Array4< amrex::Real > &cell_rhs, const amrex::Array4< amrex::Real > &xflux, const amrex::Array4< amrex::Real > &yflux, const amrex::Array4< amrex::Real > &zflux, const amrex::Array4< const amrex::Real > &z_nd, const amrex::Array4< const amrex::Real > &z_cc, const amrex::Array4< const amrex::Real > &ax, const amrex::Array4< const amrex::Real > &ay, const amrex::Array4< const amrex::Real > &az, const amrex::Array4< const amrex::Real > &detJ, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &dxInv, const amrex::Array4< const amrex::Real > &SmnSmn_a, const amrex::Array4< const amrex::Real > &mf_mx, const amrex::Array4< const amrex::Real > &mf_ux, const amrex::Array4< const amrex::Real > &mf_vx, const amrex::Array4< const amrex::Real > &mf_my, const amrex::Array4< const amrex::Real > &mf_uy, const amrex::Array4< const amrex::Real > &mf_vy, amrex::Array4< amrex::Real > &hfx_x, amrex::Array4< amrex::Real > &hfx_y, amrex::Array4< amrex::Real > &hfx_z, amrex::Array4< amrex::Real > &qfx1_x, amrex::Array4< amrex::Real > &qfx1_y, amrex::Array4< amrex::Real > &qfx1_z, amrex::Array4< amrex::Real > &qfx2_z, amrex::Array4< amrex::Real > &diss, const amrex::Array4< const amrex::Real > &mu_turb, const SolverChoice &solverChoice, const int level, const amrex::Array4< const amrex::Real > &tm_arr, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > grav_gpu, const amrex::BCRec *bc_ptr, const bool use_SurfLayer, const amrex::Real implicit_fac)
Add state diffusion source terms on terrain-following coordinates.
void ComputeStrain_EB(const amrex::MFIter &mfi, amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex::Box tbxyz, amrex::Box domain, const amrex::Array4< const amrex::Real > &u, const amrex::Array4< const amrex::Real > &v, const amrex::Array4< const amrex::Real > &w, amrex::Array4< amrex::Real > &tau11, amrex::Array4< amrex::Real > &tau22, amrex::Array4< amrex::Real > &tau33, amrex::Array4< amrex::Real > &tau12, amrex::Array4< amrex::Real > &tau13, amrex::Array4< amrex::Real > &tau23, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &dxInv, const amrex::BCRec *bc_ptr, const eb_ &ebfact, amrex::Array4< amrex::Real > &tau13i, amrex::Array4< amrex::Real > &tau23i)
Compute embedded-boundary strain-rate components.
void ComputeStrain_T(amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex::Box tbxyz, amrex::Box domain, const amrex::Array4< const amrex::Real > &u, const amrex::Array4< const amrex::Real > &v, const amrex::Array4< const amrex::Real > &w, amrex::Array4< amrex::Real > &tau11, amrex::Array4< amrex::Real > &tau22, amrex::Array4< amrex::Real > &tau33, amrex::Array4< amrex::Real > &tau12, amrex::Array4< amrex::Real > &tau21, amrex::Array4< amrex::Real > &tau13, amrex::Array4< amrex::Real > &tau31, amrex::Array4< amrex::Real > &tau23, amrex::Array4< amrex::Real > &tau32, const amrex::Array4< const amrex::Real > &z_nd, const amrex::Array4< const amrex::Real > &detJ, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &dxInv, const amrex::Array4< const amrex::Real > &mf_mx, const amrex::Array4< const amrex::Real > &mf_ux, const amrex::Array4< const amrex::Real > &mf_vx, const amrex::Array4< const amrex::Real > &mf_my, const amrex::Array4< const amrex::Real > &mf_uy, const amrex::Array4< const amrex::Real > &mf_vy, const amrex::BCRec *bc_ptr, amrex::Array4< amrex::Real > &tau13i, amrex::Array4< amrex::Real > &tau23i)
Compute strain-rate components on terrain-following coordinates.
void ComputeStressConsVisc_T(amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex::Box tbxyz, amrex::Real mu_eff, const amrex::Array4< const amrex::Real > &cell_data, amrex::Array4< amrex::Real > &tau11, amrex::Array4< amrex::Real > &tau22, amrex::Array4< amrex::Real > &tau33, amrex::Array4< amrex::Real > &tau12, amrex::Array4< amrex::Real > &tau21, amrex::Array4< amrex::Real > &tau13, amrex::Array4< amrex::Real > &tau31, amrex::Array4< amrex::Real > &tau23, amrex::Array4< amrex::Real > &tau32, const amrex::Array4< const amrex::Real > &er_arr, const amrex::Array4< const amrex::Real > &z_nd, const amrex::Array4< const amrex::Real > &detJ, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &dxInv, const amrex::Array4< const amrex::Real > &mf_mx, const amrex::Array4< const amrex::Real > &mf_ux, const amrex::Array4< const amrex::Real > &mf_vx, const amrex::Array4< const amrex::Real > &mf_my, const amrex::Array4< const amrex::Real > &mf_uy, const amrex::Array4< const amrex::Real > &mf_vy, amrex::Array4< amrex::Real > &tau13i, amrex::Array4< amrex::Real > &tau23i, amrex::Array4< amrex::Real > &tau33i)
Compute stress components for constant viscosity on terrain-following coordinates.
void ComputeStressConsVisc_EB(amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex::Box tbxyz, amrex::Real mu_eff, const amrex::Array4< const amrex::Real > &cell_data, amrex::Array4< amrex::Real > &tau11, amrex::Array4< amrex::Real > &tau22, amrex::Array4< amrex::Real > &tau33, amrex::Array4< amrex::Real > &tau12, amrex::Array4< amrex::Real > &tau13, amrex::Array4< amrex::Real > &tau23, const amrex::Array4< const amrex::Real > &er_arr, amrex::Array4< const amrex::Real > &vfrac, amrex::Array4< amrex::Real > &tau13i, amrex::Array4< amrex::Real > &tau23i, amrex::Array4< amrex::Real > &tau33i)
Compute embedded-boundary stress components for constant viscosity.
void DiffusionSrcForState_N(const amrex::Box &bx, const amrex::Box &domain, int start_comp, int num_comp, const amrex::Array4< const amrex::Real > &u, const amrex::Array4< const amrex::Real > &v, const amrex::Array4< const amrex::Real > &cell_data, const amrex::Array4< const amrex::Real > &cell_prim, const amrex::Array4< amrex::Real > &cell_rhs, const amrex::Array4< amrex::Real > &xflux, const amrex::Array4< amrex::Real > &yflux, const amrex::Array4< amrex::Real > &zflux, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &cellSizeInv, const amrex::Array4< const amrex::Real > &SmnSmn_a, const amrex::Array4< const amrex::Real > &mf_mx, const amrex::Array4< const amrex::Real > &mf_ux, const amrex::Array4< const amrex::Real > &mf_vx, const amrex::Array4< const amrex::Real > &mf_my, const amrex::Array4< const amrex::Real > &mf_uy, const amrex::Array4< const amrex::Real > &mf_vy, amrex::Array4< amrex::Real > &hfx_z, amrex::Array4< amrex::Real > &qfx1_z, amrex::Array4< amrex::Real > &qfx2_z, amrex::Array4< amrex::Real > &diss, const amrex::Array4< const amrex::Real > &mu_turb, const SolverChoice &solverChoice, const int level, const amrex::Array4< const amrex::Real > &tm_arr, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > grav_gpu, const amrex::BCRec *bc_ptr, const bool use_SurfLayer, const amrex::Real implicit_fac)
Add state diffusion source terms on a uniform grid without terrain.
void ComputeStressVarVisc_EB(amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex::Box tbxyz, amrex::Real mu_eff, const amrex::Array4< const amrex::Real > &mu_turb, const amrex::Array4< const amrex::Real > &cell_data, amrex::Array4< amrex::Real > &tau11, amrex::Array4< amrex::Real > &tau22, amrex::Array4< amrex::Real > &tau33, amrex::Array4< amrex::Real > &tau12, amrex::Array4< amrex::Real > &tau13, amrex::Array4< amrex::Real > &tau23, const amrex::Array4< const amrex::Real > &er_arr, amrex::Array4< const amrex::Real > &vfrac, amrex::Array4< amrex::Real > &tau13i, amrex::Array4< amrex::Real > &tau23i, amrex::Array4< amrex::Real > &tau33i)
Compute embedded-boundary stress components for variable viscosity.
void ImplicitDiffForStateLU_N(const amrex::Box &bx, const amrex::Box &domain, const int level, const int n, const double dt, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM *2 > &bc_neumann_vals, const amrex::Array4< amrex::Real > &cell_data, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &cellSizeInv, const amrex::Array4< const amrex::Real > &hfx_z, const amrex::Array4< const amrex::Real > &mu_turb, const SolverChoice &solverChoice, const amrex::BCRec *bc_ptr, const bool use_SurfLayer, const amrex::Real implicit_fac, const bool use_mrf_countergradient=false)
Apply implicit vertical state diffusion on a uniform grid without terrain.
void DiffusionSrcForState_EB(const amrex::Box &bx, const amrex::Box &domain, int start_comp, int num_comp, const amrex::Array4< const amrex::Real > &u, const amrex::Array4< const amrex::Real > &v, const amrex::Array4< const amrex::Real > &cell_data, const amrex::Array4< const amrex::Real > &cell_prim, const amrex::Array4< amrex::Real > &cell_rhs, const amrex::Array4< amrex::Real > &xflux, const amrex::Array4< amrex::Real > &yflux, const amrex::Array4< amrex::Real > &zflux, const amrex::Array4< const amrex::EBCellFlag > &cfg_arr, const amrex::Array4< const amrex::Real > &ax_arr, const amrex::Array4< const amrex::Real > &ay_arr, const amrex::Array4< const amrex::Real > &az_arr, const amrex::Array4< const amrex::Real > &detJ, const amrex::Array4< const amrex::Real > &barea_arr, const amrex::Array4< const amrex::Real > &bcent_arr, const amrex::Real *dx_arr, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &cellSizeInv, amrex::Array4< amrex::Real > &hfx_z, amrex::Array4< amrex::Real > &qfx1_z, amrex::Array4< amrex::Real > &qfx2_z, amrex::Array4< amrex::Real > &hfx_EB, const amrex::Array4< const amrex::Real > &mu_turb, const SolverChoice &solverChoice, const int level, const amrex::BCRec *bc_ptr, const bool use_SurfLayer)
Add state diffusion source terms for embedded-boundary cells.
void ComputeStressConsVisc_S(amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex::Box tbxyz, amrex::Real mu_eff, const amrex::Array4< const amrex::Real > &cell_data, amrex::Array4< amrex::Real > &tau11, amrex::Array4< amrex::Real > &tau22, amrex::Array4< amrex::Real > &tau33, amrex::Array4< amrex::Real > &tau12, amrex::Array4< amrex::Real > &tau21, amrex::Array4< amrex::Real > &tau13, amrex::Array4< amrex::Real > &tau31, amrex::Array4< amrex::Real > &tau23, amrex::Array4< amrex::Real > &tau32, const amrex::Array4< const amrex::Real > &er_arr, const amrex::Array4< const amrex::Real > &mf_mx, const amrex::Array4< const amrex::Real > &mf_ux, const amrex::Array4< const amrex::Real > &mf_vx, const amrex::Array4< const amrex::Real > &mf_my, const amrex::Array4< const amrex::Real > &mf_uy, const amrex::Array4< const amrex::Real > &mf_vy, amrex::Array4< amrex::Real > &tau13i, amrex::Array4< amrex::Real > &tau23i, amrex::Array4< amrex::Real > &tau33i)
Compute stress components for constant viscosity on a vertically stretched grid.
void ComputeStrain_N(amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex::Box tbxyz, amrex::Box domain, const amrex::Array4< const amrex::Real > &u, const amrex::Array4< const amrex::Real > &v, const amrex::Array4< const amrex::Real > &w, amrex::Array4< amrex::Real > &tau11, amrex::Array4< amrex::Real > &tau22, amrex::Array4< amrex::Real > &tau33, amrex::Array4< amrex::Real > &tau12, amrex::Array4< amrex::Real > &tau13, amrex::Array4< amrex::Real > &tau23, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &dxInv, const amrex::Array4< const amrex::Real > &mf_mx, const amrex::Array4< const amrex::Real > &mf_ux, const amrex::Array4< const amrex::Real > &mf_vx, const amrex::Array4< const amrex::Real > &mf_my, const amrex::Array4< const amrex::Real > &mf_uy, const amrex::Array4< const amrex::Real > &mf_vy, const amrex::BCRec *bc_ptr, amrex::Array4< amrex::Real > &tau13i, amrex::Array4< amrex::Real > &tau23i)
Compute strain-rate components on a uniform grid without terrain.
void ComputeStressVarVisc_S(amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex::Box tbxyz, amrex::Real mu_eff, const amrex::Array4< const amrex::Real > &mu_turb, const amrex::Array4< const amrex::Real > &cell_data, amrex::Array4< amrex::Real > &tau11, amrex::Array4< amrex::Real > &tau22, amrex::Array4< amrex::Real > &tau33, amrex::Array4< amrex::Real > &tau12, amrex::Array4< amrex::Real > &tau21, amrex::Array4< amrex::Real > &tau13, amrex::Array4< amrex::Real > &tau31, amrex::Array4< amrex::Real > &tau23, amrex::Array4< amrex::Real > &tau32, const amrex::Array4< const amrex::Real > &er_arr, const amrex::Array4< const amrex::Real > &mf_mx, const amrex::Array4< const amrex::Real > &mf_ux, const amrex::Array4< const amrex::Real > &mf_vx, const amrex::Array4< const amrex::Real > &mf_my, const amrex::Array4< const amrex::Real > &mf_uy, const amrex::Array4< const amrex::Real > &mf_vy, amrex::Array4< amrex::Real > &tau13i, amrex::Array4< amrex::Real > &tau23i, amrex::Array4< amrex::Real > &tau33i)
Compute stress components for variable viscosity on a vertically stretched grid.
void DiffusionSrcForMom_EB(const amrex::MFIter &mfi, [[maybe_unused]] const amrex::Box &domain, const amrex::Box &bxx, const amrex::Box &bxy, const amrex::Box &bxz, const amrex::Array4< amrex::Real > &rho_u_rhs, const amrex::Array4< amrex::Real > &rho_v_rhs, const amrex::Array4< amrex::Real > &rho_w_rhs, const amrex::Array4< const amrex::Real > &u_arr, const amrex::Array4< const amrex::Real > &v_arr, const amrex::Array4< const amrex::Real > &w_arr, const amrex::Array4< const amrex::Real > &tau11, const amrex::Array4< const amrex::Real > &tau22, const amrex::Array4< const amrex::Real > &tau33, const amrex::Array4< const amrex::Real > &tau12, const amrex::Array4< const amrex::Real > &tau13, const amrex::Array4< const amrex::Real > &tau23, const amrex::Array4< const amrex::Real > &u_tau_eb13, const amrex::Array4< const amrex::Real > &u_tau_eb23, const amrex::Array4< const amrex::Real > &v_tau_eb13, const amrex::Array4< const amrex::Real > &v_tau_eb23, const amrex::Array4< const amrex::Real > &w_tau_eb13, const amrex::Array4< const amrex::Real > &w_tau_eb23, const amrex::Real *dx_arr, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &dxInv, const amrex::Array4< const amrex::Real > &mf_mx, const amrex::Array4< const amrex::Real > &mf_ux, const amrex::Array4< const amrex::Real > &mf_vx, const amrex::Array4< const amrex::Real > &mf_my, const amrex::Array4< const amrex::Real > &mf_uy, const amrex::Array4< const amrex::Real > &mf_vy, const SolverChoice &solverChoice, const eb_ &ebfact, [[maybe_unused]] const amrex::BCRec *bc_ptr)
Add embedded-boundary stress-divergence diffusion source terms to the momentum RHS.
void ImplicitDiffForStateLU_T(const amrex::Box &bx, const amrex::Box &domain, const int level, const int n, const double dt, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM *2 > &bc_neumann_vals, const amrex::Array4< amrex::Real > &cell_data, const amrex::Array4< const amrex::Real > &z_nd, const amrex::Array4< const amrex::Real > &detJ, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &cellSizeInv, const amrex::Array4< const amrex::Real > &hfx_z, const amrex::Array4< const amrex::Real > &mu_turb, const SolverChoice &solverChoice, const amrex::BCRec *bc_ptr, const bool use_SurfLayer, const amrex::Real implicit_fac, const bool use_mrf_countergradient=false)
Apply implicit vertical state diffusion on terrain-following coordinates.
void ImplicitDiffForStateLU_S(const amrex::Box &bx, const amrex::Box &domain, const int level, const int n, const double dt, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM *2 > &bc_neumann_vals, const amrex::Array4< amrex::Real > &cell_data, const amrex::Gpu::DeviceVector< amrex::Real > &stretched_dz_d, const amrex::Array4< const amrex::Real > &hfx_z, const amrex::Array4< const amrex::Real > &mu_turb, const SolverChoice &solverChoice, const amrex::BCRec *bc_ptr, const bool use_SurfLayer, const amrex::Real implicit_fac, const bool use_mrf_countergradient=false)
Apply implicit vertical state diffusion on a vertically stretched grid.
void ComputeStressVarVisc_N(amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex::Box tbxyz, amrex::Real mu_eff, const amrex::Array4< const amrex::Real > &mu_turb, const amrex::Array4< const amrex::Real > &cell_data, amrex::Array4< amrex::Real > &tau11, amrex::Array4< amrex::Real > &tau22, amrex::Array4< amrex::Real > &tau33, amrex::Array4< amrex::Real > &tau12, amrex::Array4< amrex::Real > &tau13, amrex::Array4< amrex::Real > &tau23, const amrex::Array4< const amrex::Real > &er_arr, amrex::Array4< amrex::Real > &tau13i, amrex::Array4< amrex::Real > &tau23i, amrex::Array4< amrex::Real > &tau33i)
Compute stress components for variable viscosity on a uniform grid without terrain.
void ImplicitDiffForMomLU_T(const amrex::Box &bx, const amrex::Box &domain, const int level, const double dt, const amrex::Array4< const amrex::Real > &cell_data, const amrex::Array4< amrex::Real > &face_data, const amrex::Array4< const amrex::Real > &tau, const amrex::Array4< const amrex::Real > &tau_corr, const amrex::Array4< const amrex::Real > &z_nd, const amrex::Array4< const amrex::Real > &detJ, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &cellSizeInv, const amrex::Array4< const amrex::Real > &mu_turb, const SolverChoice &solverChoice, const amrex::BCRec *bc_ptr, const bool use_SurfLayer, const amrex::Real implicit_fac, const bool use_ysu_mom_countergradient)
Apply implicit vertical momentum diffusion on terrain-following coordinates.
void ComputeStrain_S(amrex::Box bxcc, amrex::Box tbxxy, amrex::Box tbxxz, amrex::Box tbxyz, amrex::Box domain, const amrex::Array4< const amrex::Real > &u, const amrex::Array4< const amrex::Real > &v, const amrex::Array4< const amrex::Real > &w, amrex::Array4< amrex::Real > &tau11, amrex::Array4< amrex::Real > &tau22, amrex::Array4< amrex::Real > &tau33, amrex::Array4< amrex::Real > &tau12, amrex::Array4< amrex::Real > &tau21, amrex::Array4< amrex::Real > &tau13, amrex::Array4< amrex::Real > &tau31, amrex::Array4< amrex::Real > &tau23, amrex::Array4< amrex::Real > &tau32, const amrex::Gpu::DeviceVector< amrex::Real > &stretched_dz_d, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &dxInv, const amrex::Array4< const amrex::Real > &mf_mx, const amrex::Array4< const amrex::Real > &mf_ux, const amrex::Array4< const amrex::Real > &mf_vx, const amrex::Array4< const amrex::Real > &mf_my, const amrex::Array4< const amrex::Real > &mf_uy, const amrex::Array4< const amrex::Real > &mf_vy, const amrex::BCRec *bc_ptr, amrex::Array4< amrex::Real > &tau13i, amrex::Array4< amrex::Real > &tau23i)
Compute strain-rate components on a vertically stretched grid.
Declares the embedded-boundary factory manager used by ERF levels.
amrex::GpuArray< Real, AMREX_SPACEDIM > dxInv
Definition: ERF_InitCustomPertVels_ParticleTests.H:17
Real w
Definition: ERF_Plotfile2DInterpolator.cpp:22
amrex::Real Real
Definition: ERF_ShocInterface.H:19
Owns and exposes cell-centered and face-centered EB factories.
Definition: ERF_EB.H:24
Definition: ERF_DataStruct.H:241