Function for computing the momentum RHS for diffusion operator without terrain.
164 Real dx = dx_arr[0],
dy = dx_arr[1],
dz = dx_arr[2];
177 Array4<const Real > u_volfrac = u_factory->getVolFrac().const_array(mfi);
178 Array4<const Real > u_volcent{};
179 Array4<const Real > u_afrac_x{};
180 Array4<const Real > u_afrac_y{};
181 Array4<const Real > u_afrac_z{};
182 Array4<const Real > u_bcent{};
183 Array4<const Real > u_bnorm{};
184 FabType u_type = u_factory->getMultiEBCellFlagFab()[mfi].getType();
185 if (u_type == FabType::singlevalued) {
186 u_volcent = u_factory->getCentroid().const_array(mfi);
187 u_afrac_x = u_factory->getAreaFrac()[0]->const_array(mfi);
188 u_afrac_y = u_factory->getAreaFrac()[1]->const_array(mfi);
189 u_afrac_z = u_factory->getAreaFrac()[2]->const_array(mfi);
190 u_bcent = u_factory->getBndryCent().const_array(mfi);
191 u_bnorm = u_factory->getBndryNormal().const_array(mfi);
198 Array4<const Real > v_volfrac = v_factory->getVolFrac().const_array(mfi);
199 Array4<const Real > v_volcent{};
200 Array4<const Real > v_afrac_x{};
201 Array4<const Real > v_afrac_y{};
202 Array4<const Real > v_afrac_z{};
203 Array4<const Real > v_bcent{};
204 Array4<const Real > v_bnorm{};
205 FabType v_type = v_factory->getMultiEBCellFlagFab()[mfi].getType();
206 if (v_type == FabType::singlevalued) {
207 v_volcent = v_factory->getCentroid().const_array(mfi);
208 v_afrac_x = v_factory->getAreaFrac()[0]->const_array(mfi);
209 v_afrac_y = v_factory->getAreaFrac()[1]->const_array(mfi);
210 v_afrac_z = v_factory->getAreaFrac()[2]->const_array(mfi);
211 v_bcent = v_factory->getBndryCent().const_array(mfi);
212 v_bnorm = v_factory->getBndryNormal().const_array(mfi);
218 Array4<const Real > w_volfrac = w_factory->getVolFrac().const_array(mfi);
219 Array4<const Real > w_volcent{};
220 Array4<const Real > w_afrac_x{};
221 Array4<const Real > w_afrac_y{};
222 Array4<const Real > w_afrac_z{};
223 Array4<const Real > w_bcent{};
224 Array4<const Real > w_bnorm{};
225 FabType w_type = w_factory->getMultiEBCellFlagFab()[mfi].getType();
226 if (w_type == FabType::singlevalued) {
227 w_volcent = w_factory->getCentroid().const_array(mfi);
228 w_afrac_x = w_factory->getAreaFrac()[0]->const_array(mfi);
229 w_afrac_y = w_factory->getAreaFrac()[1]->const_array(mfi);
230 w_afrac_z = w_factory->getAreaFrac()[2]->const_array(mfi);
231 w_bcent = w_factory->getBndryCent().const_array(mfi);
232 w_bnorm = w_factory->getBndryNormal().const_array(mfi);
236 if (u_type == FabType::regular) {
238 ParallelFor(bxx, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
240 Real mfsq = mf_ux(i,j,0) * mf_uy(i,j,0);
242 Real diffContrib = ( (
tau11(i , j , k ) -
tau11(i-1, j , k ) ) * dxinv * mfsq
243 + (
tau12(i , j+1, k ) -
tau12(i , j , k ) ) * dyinv * mfsq
244 + (
tau13(i , j , k+1) -
tau13(i , j , k ) ) * dzinv );
245 diffContrib /= u_volfrac(i,j,k);
247 rho_u_rhs(i,j,k) -= diffContrib;
250 }
else if (u_type == FabType::singlevalued) {
252 ParallelFor(bxx, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
254 if (u_volfrac(i,j,k)>
zero) {
257 Real mfsq = mf_ux(i,j,0) * mf_uy(i,j,0);
259 Real diffContrib = ( (
tau11(i , j , k ) * u_afrac_x(i+1,j ,k )
260 -
tau11(i-1, j , k ) * u_afrac_x(i ,j ,k ) ) * dxinv * mfsq
261 + (
tau12(i , j+1, k ) * u_afrac_y(i ,j+1,k )
262 -
tau12(i , j , k ) * u_afrac_y(i ,j ,k ) ) * dyinv * mfsq
263 + (
tau13(i , j , k+1) * u_afrac_z(i ,j ,k+1)
264 -
tau13(i , j , k ) * u_afrac_z(i ,j ,k )) * dzinv );
265 diffContrib /= u_volfrac(i,j,k);
267 rho_u_rhs(i,j,k) -= diffContrib;
269 if (!l_constraint_x && u_cellflg(i,j,k).isSingleValued()) {
271 Real axm = u_afrac_x(i ,j ,k );
272 Real axp = u_afrac_x(i+1,j ,k );
273 Real aym = u_afrac_y(i ,j ,k );
274 Real ayp = u_afrac_y(i ,j+1,k );
275 Real azm = u_afrac_z(i ,j ,k );
276 Real azp = u_afrac_z(i ,j ,k+1);
282 Real barea = std::sqrt(adx*adx + ady*ady + adz*adz);
286 if (l_no_slip || l_surface_layer) {
288 RealVect bcent_eb {u_bcent(i,j,k,0), u_bcent(i,j,k,1), u_bcent(i,j,k,2)};
294 Real nx = u_bnorm(i,j,k,0);
295 Real ny = u_bnorm(i,j,k,1);
296 Real nz = u_bnorm(i,j,k,2);
298 if (l_surface_layer) {
301 Real velx = u_arr(i,j,k);
302 Real vely = (v_volfrac(i-1,j ,k) * v_arr(i-1,j ,k) + v_volfrac(i,j ,k) * v_arr(i,j ,k)
303 + v_volfrac(i-1,j+1,k) * v_arr(i-1,j+1,k) + v_volfrac(i,j+1,k) * v_arr(i,j+1,k))
304 / (v_volfrac(i-1,j,k) + v_volfrac(i,j,k) + v_volfrac(i-1,j+1,k) + v_volfrac(i,j+1,k));
306 Real velz = (w_volfrac(i-1,j,k ) * w_arr(i-1,j,k ) + w_volfrac(i,j,k ) * w_arr(i,j,k )
307 + w_volfrac(i-1,j,k+1) * w_arr(i-1,j,k+1) + w_volfrac(i,j,k+1) * w_arr(i,j,k+1))
308 / (w_volfrac(i-1,j,k) + w_volfrac(i,j,k) + w_volfrac(i-1,j,k+1) + w_volfrac(i,j,k+1));
311 Real v_dot_n = velx *
nx + vely *
ny + velz * nz;
312 Dirichlet_u = velx - v_dot_n *
nx;
313 Dirichlet_v = vely - v_dot_n *
ny;
314 Dirichlet_w = velz - v_dot_n * nz;
317 GpuArray<Real,AMREX_SPACEDIM> slopes_u;
318 GpuArray<Real,AMREX_SPACEDIM> slopes_v;
319 GpuArray<Real,AMREX_SPACEDIM> slopes_w;
321 slopes_u =
erf_calc_slopes_eb_Dirichlet (
dx,
dy,
dz, i, j, k, bcent_eb, Dirichlet_u, u_arr, u_volcent, u_cellflg);
322 slopes_v =
erf_calc_slopes_eb_Dirichlet_staggered(
Vars::xvel,
Vars::yvel,
dx,
dy,
dz, i, j, k, bcent_eb, Dirichlet_v, v_arr, v_volcent, v_cellflg);
323 slopes_w =
erf_calc_slopes_eb_Dirichlet_staggered(
Vars::xvel,
Vars::zvel,
dx,
dy,
dz, i, j, k, bcent_eb, Dirichlet_w, w_arr, w_volcent, w_cellflg);
325 Real dudx = slopes_u[0];
326 Real dudy = slopes_u[1];
327 Real dudz = slopes_u[2];
328 Real dvdx = slopes_v[0];
329 Real dvdy = slopes_v[1];
330 Real dvdz = slopes_v[2];
331 Real dwdx = slopes_w[0];
332 Real dwdy = slopes_w[1];
333 Real dwdz = slopes_w[2];
335 Real tau11_eb = ( dudx - ( dudx + dvdy + dwdz ) /
three );
341 dudn = - mu_eff * (
nx * tau11_eb +
ny * tau12_eb + nz * tau13_eb);
343 }
else if (l_surface_layer) {
345 Real tbx_x, tbx_y, tbx_z, tby_x, tby_y, tby_z;
348 Real tau22_eb = ( dvdy - ( dudx + dvdy + dwdz ) /
three );
349 Real tau33_eb = ( dwdz - ( dudx + dvdy + dwdz ) /
three );
352 Real tauzz = mu_eff * (
nx*
nx*tau11_eb +
ny*
ny*tau22_eb + nz*nz*tau33_eb
353 +
two * (
nx*
ny*tau12_eb +
ny*nz*tau23_eb +
nx*nz*tau13_eb ));
355 dudn = - tbx_x * u_tau_eb13(i,j,k) - tby_x * u_tau_eb23(i,j,k) -
nx * tauzz;
359 rho_u_rhs(i,j,k) -= barea * dudn / (vol * u_volfrac(i,j,k));
367 if (v_type == FabType::regular) {
369 ParallelFor(bxy, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
371 Real mfsq = mf_vx(i,j,0) * mf_vy(i,j,0);
373 Real diffContrib = ( (
tau12(i+1, j , k ) -
tau12(i , j , k ) ) * dxinv * mfsq
374 + (
tau22(i , j , k ) -
tau22(i , j-1, k ) ) * dyinv * mfsq
375 + (
tau23(i , j , k+1) -
tau23(i , j , k ) ) * dzinv );
376 diffContrib /= v_volfrac(i,j,k);
378 rho_v_rhs(i,j,k) -= diffContrib;
380 }
else if (v_type == FabType::singlevalued) {
382 ParallelFor(bxy, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
384 if (v_volfrac(i,j,k)>
zero) {
387 Real mfsq = mf_vx(i,j,0) * mf_vy(i,j,0);
389 Real diffContrib = ( (
tau12(i+1, j , k ) * v_afrac_x(i+1,j ,k )
390 -
tau12(i , j , k ) * v_afrac_x(i ,j ,k ) ) * dxinv * mfsq
391 + (
tau22(i , j , k ) * v_afrac_y(i ,j+1,k )
392 -
tau22(i , j-1, k ) * v_afrac_y(i ,j ,k ) ) * dyinv * mfsq
393 + (
tau23(i , j , k+1) * v_afrac_z(i ,j ,k+1)
394 -
tau23(i , j , k ) * v_afrac_z(i ,j ,k ) ) * dzinv );
395 diffContrib /= v_volfrac(i,j,k);
397 rho_v_rhs(i,j,k) -= diffContrib;
399 if (!l_constraint_y && v_cellflg(i,j,k).isSingleValued()) {
401 Real axm = v_afrac_x(i ,j ,k );
402 Real axp = v_afrac_x(i+1,j ,k );
403 Real aym = v_afrac_y(i ,j ,k );
404 Real ayp = v_afrac_y(i ,j+1,k );
405 Real azm = v_afrac_z(i ,j ,k );
406 Real azp = v_afrac_z(i ,j ,k+1);
412 Real barea = std::sqrt(adx*adx + ady*ady + adz*adz);
416 if (l_no_slip || l_surface_layer) {
418 RealVect bcent_eb {v_bcent(i,j,k,0), v_bcent(i,j,k,1), v_bcent(i,j,k,2)};
424 Real nx = v_bnorm(i,j,k,0);
425 Real ny = v_bnorm(i,j,k,1);
426 Real nz = v_bnorm(i,j,k,2);
428 if (l_surface_layer) {
431 Real velx = (u_volfrac(i ,j-1,k) * u_arr(i ,j-1,k) + u_volfrac(i+1,j-1,k) * u_arr(i+1,j-1,k)
432 + u_volfrac(i+1,j ,k) * u_arr(i+1,j ,k) + u_volfrac(i ,j ,k) * u_arr(i ,j ,k))
433 / (u_volfrac(i,j-1,k) + u_volfrac(i+1,j-1,k) + u_volfrac(i+1,j,k) + u_volfrac(i,j,k));
434 Real vely = v_arr(i,j,k);
435 Real velz = (w_volfrac(i,j-1,k ) * w_arr(i,j-1,k ) + w_volfrac(i,j,k ) * w_arr(i,j,k )
436 + w_volfrac(i,j ,k+1) * w_arr(i,j ,k+1) + w_volfrac(i,j-1,k+1) * w_arr(i,j-1,k+1))
437 / (w_volfrac(i,j-1,k) + w_volfrac(i,j,k) + w_volfrac(i,j,k+1) + w_volfrac(i,j-1,k+1));
440 Real v_dot_n = velx *
nx + vely *
ny + velz * nz;
441 Dirichlet_u = velx - v_dot_n *
nx;
442 Dirichlet_v = vely - v_dot_n *
ny;
443 Dirichlet_w = velz - v_dot_n * nz;
446 GpuArray<Real,AMREX_SPACEDIM> slopes_u;
447 GpuArray<Real,AMREX_SPACEDIM> slopes_v;
448 GpuArray<Real,AMREX_SPACEDIM> slopes_w;
450 slopes_u =
erf_calc_slopes_eb_Dirichlet_staggered(
Vars::yvel,
Vars::xvel,
dx,
dy,
dz, i, j, k, bcent_eb, Dirichlet_u, u_arr, u_volcent, u_cellflg);
451 slopes_v =
erf_calc_slopes_eb_Dirichlet (
dx,
dy,
dz, i, j, k, bcent_eb, Dirichlet_v, v_arr, v_volcent, v_cellflg);
452 slopes_w =
erf_calc_slopes_eb_Dirichlet_staggered(
Vars::yvel,
Vars::zvel,
dx,
dy,
dz, i, j, k, bcent_eb, Dirichlet_w, w_arr, w_volcent, w_cellflg);
454 Real dudx = slopes_u[0];
455 Real dudy = slopes_u[1];
456 Real dudz = slopes_u[2];
457 Real dvdx = slopes_v[0];
458 Real dvdy = slopes_v[1];
459 Real dvdz = slopes_v[2];
460 Real dwdx = slopes_w[0];
461 Real dwdy = slopes_w[1];
462 Real dwdz = slopes_w[2];
464 Real tau22_eb = ( dvdy - ( dudx + dvdy + dwdz ) /
three );
470 dvdn = - mu_eff * (
nx * tau12_eb +
ny * tau22_eb + nz * tau23_eb);
472 }
else if (l_surface_layer) {
474 Real tbx_x, tbx_y, tbx_z, tby_x, tby_y, tby_z;
477 Real tau11_eb = ( dudx - ( dudx + dvdy + dwdz ) /
three );
478 Real tau33_eb = ( dwdz - ( dudx + dvdy + dwdz ) /
three );
481 Real tauzz = mu_eff * (
nx*
nx*tau11_eb +
ny*
ny*tau22_eb + nz*nz*tau33_eb
482 +
two * (
nx*
ny*tau12_eb +
ny*nz*tau23_eb +
nx*nz*tau13_eb ));
484 dvdn = - tbx_y * v_tau_eb13(i,j,k) - tby_y * v_tau_eb23(i,j,k) -
ny * tauzz;
488 rho_v_rhs(i,j,k) -= barea * dvdn / (vol * v_volfrac(i,j,k));
495 if (w_type == FabType::regular) {
497 ParallelFor(bxz, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
499 Real mfsq = mf_mx(i,j,0) * mf_my(i,j,0);
501 Real diffContrib = ( (
tau13(i+1, j , k ) -
tau13(i , j , k ) ) * dxinv * mfsq
502 + (
tau23(i , j+1, k ) -
tau23(i , j , k ) ) * dyinv * mfsq
503 + (
tau33(i , j , k ) -
tau33(i , j , k-1) ) * dzinv );
504 diffContrib /= w_volfrac(i,j,k);
506 rho_w_rhs(i,j,k) -= diffContrib;
509 }
else if (w_type == FabType::singlevalued) {
511 ParallelFor(bxz, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
513 if (w_volfrac(i,j,k)>
zero) {
516 Real mfsq = mf_mx(i,j,0) * mf_my(i,j,0);
518 Real diffContrib = ( (
tau13(i+1, j , k ) * w_afrac_x(i+1,j ,k )
519 -
tau13(i , j , k ) * w_afrac_x(i ,j ,k ) ) * dxinv * mfsq
520 + (
tau23(i , j+1, k ) * w_afrac_y(i ,j+1,k )
521 -
tau23(i , j , k ) * w_afrac_y(i ,j ,k ) ) * dyinv * mfsq
522 + (
tau33(i , j , k ) * w_afrac_z(i ,j ,k+1)
523 -
tau33(i , j , k-1) * w_afrac_z(i ,j ,k ) ) * dzinv );
524 diffContrib /= w_volfrac(i,j,k);
526 rho_w_rhs(i,j,k) -= diffContrib;
528 if (!l_constraint_z && w_cellflg(i,j,k).isSingleValued()) {
530 Real axm = w_afrac_x(i ,j ,k );
531 Real axp = w_afrac_x(i+1,j ,k );
532 Real aym = w_afrac_y(i ,j ,k );
533 Real ayp = w_afrac_y(i ,j+1,k );
534 Real azm = w_afrac_z(i ,j ,k );
535 Real azp = w_afrac_z(i ,j ,k+1);
541 Real barea = std::sqrt(adx*adx + ady*ady + adz*adz);
545 if (l_no_slip || l_surface_layer) {
547 const RealVect bcent_eb {w_bcent(i,j,k,0), w_bcent(i,j,k,1), w_bcent(i,j,k,2)};
553 Real nx = w_bnorm(i,j,k,0);
554 Real ny = w_bnorm(i,j,k,1);
555 Real nz = w_bnorm(i,j,k,2);
557 if (l_surface_layer) {
560 Real velx = (u_volfrac(i ,j,k-1) * u_arr(i ,j,k-1) + u_volfrac(i+1,j,k-1) * u_arr(i+1,j,k-1)
561 + u_volfrac(i+1,j,k ) * u_arr(i+1,j,k ) + u_volfrac(i ,j,k ) * u_arr(i ,j,k ))
562 / (u_volfrac(i,j,k-1) + u_volfrac(i+1,j,k-1) + u_volfrac(i+1,j,k) + u_volfrac(i,j,k));
563 Real vely = (v_volfrac(i,j ,k-1) * v_arr(i,j ,k-1) + v_volfrac(i,j+1,k-1) * v_arr(i,j+1,k-1)
564 + v_volfrac(i,j+1,k ) * v_arr(i,j+1,k ) + v_volfrac(i,j ,k ) * v_arr(i,j ,k ))
565 / (v_volfrac(i,j,k-1) + v_volfrac(i,j+1,k-1) + v_volfrac(i,j+1,k) + v_volfrac(i,j,k));
566 Real velz = w_arr(i,j,k);
569 Real v_dot_n = velx *
nx + vely *
ny + velz * nz;
570 Dirichlet_u = velx - v_dot_n *
nx;
571 Dirichlet_v = vely - v_dot_n *
ny;
572 Dirichlet_w = velz - v_dot_n * nz;
575 GpuArray<Real,AMREX_SPACEDIM> slopes_u;
576 GpuArray<Real,AMREX_SPACEDIM> slopes_v;
577 GpuArray<Real,AMREX_SPACEDIM> slopes_w;
579 slopes_u =
erf_calc_slopes_eb_Dirichlet_staggered(
Vars::zvel,
Vars::xvel,
dx,
dy,
dz, i, j, k, bcent_eb, Dirichlet_u, u_arr, u_volcent, u_cellflg);
580 slopes_v =
erf_calc_slopes_eb_Dirichlet_staggered(
Vars::zvel,
Vars::yvel,
dx,
dy,
dz, i, j, k, bcent_eb, Dirichlet_v, v_arr, v_volcent, v_cellflg);
581 slopes_w =
erf_calc_slopes_eb_Dirichlet (
dx,
dy,
dz, i, j, k, bcent_eb, Dirichlet_w, w_arr, w_volcent, w_cellflg);
583 Real dudx = slopes_u[0];
584 Real dudy = slopes_u[1];
585 Real dudz = slopes_u[2];
586 Real dvdx = slopes_v[0];
587 Real dvdy = slopes_v[1];
588 Real dvdz = slopes_v[2];
589 Real dwdx = slopes_w[0];
590 Real dwdy = slopes_w[1];
591 Real dwdz = slopes_w[2];
593 Real tau33_eb = ( dwdz - ( dudx + dvdy + dwdz ) /
three );
599 dwdn = - mu_eff * (
nx * tau13_eb +
ny * tau23_eb + nz * tau33_eb);
601 }
else if (l_surface_layer) {
603 Real tbx_x, tbx_y, tbx_z, tby_x, tby_y, tby_z;
606 Real tau11_eb = ( dudx - ( dudx + dvdy + dwdz ) /
three );
607 Real tau22_eb = ( dvdy - ( dudx + dvdy + dwdz ) /
three );
610 Real tauzz = mu_eff * (
nx*
nx*tau11_eb +
ny*
ny*tau22_eb + nz*nz*tau33_eb
611 +
two * (
nx*
ny*tau12_eb +
ny*nz*tau23_eb +
nx*nz*tau13_eb ));
613 dwdn = - tbx_z * w_tau_eb13(i,j,k) - tby_z * w_tau_eb23(i,j,k) - nz * tauzz;
618 rho_w_rhs(i,j,k) -= barea * dwdn / (vol * w_volfrac(i,j,k));
@ tau12
Definition: ERF_DataStruct.H:40
@ tau23
Definition: ERF_DataStruct.H:40
@ tau33
Definition: ERF_DataStruct.H:40
@ tau22
Definition: ERF_DataStruct.H:40
@ tau11
Definition: ERF_DataStruct.H:40
@ tau13
Definition: ERF_DataStruct.H:40
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > erf_calc_slopes_eb_Dirichlet(amrex::Real dx, amrex::Real dy, amrex::Real dz, int i, int j, int k, amrex::RealVect const &bcent_eb, amrex::Real const state_eb, amrex::Array4< amrex::Real const > const &state, amrex::Array4< amrex::Real const > const &ccent, amrex::Array4< amrex::EBCellFlag const > const &flag)
Compute least-squares slopes using EB Dirichlet data.
Definition: ERF_EBSlopes.H:28
AMREX_GPU_DEVICE AMREX_FORCE_INLINE amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > erf_calc_slopes_eb_Dirichlet_staggered(int igrid_query, int igrid_data, amrex::Real dx, amrex::Real dy, amrex::Real dz, int i, int j, int k, amrex::RealVect const &bcent_eb, amrex::Real const state_eb, amrex::Array4< amrex::Real const > const &state, amrex::Array4< amrex::Real const > const &ccent, amrex::Array4< amrex::EBCellFlag const > const &flag)
Compute least-squares slopes from staggered data using EB Dirichlet data.
Definition: ERF_EBSlopes.H:160
amrex::GpuArray< Real, AMREX_SPACEDIM > dxInv
Definition: ERF_InitCustomPertVels_ParticleTests.H:17
const Real dy
Definition: ERF_InitCustomPert_ABL.H:45
const Real dx
Definition: ERF_InitCustomPert_ABL.H:44
ParallelFor(fab_box, [=] AMREX_GPU_DEVICE(int i, int j, int k) { qrcuten_arr(i, j, k)=Real(0);qscuten_arr(i, j, k)=Real(0);qicuten_arr(i, j, k)=Real(0);})
constexpr amrex::Real three
Definition: ERF_NumericalConstants.H:32
constexpr amrex::Real two
Definition: ERF_NumericalConstants.H:31
constexpr amrex::Real myhalf
Definition: ERF_NumericalConstants.H:34
eb_aux_ const * get_w_const_factory() const noexcept
Return the ERF auxiliary z-face EB factory.
Definition: ERF_EB.H:133
eb_aux_ const * get_v_const_factory() const noexcept
Return the ERF auxiliary y-face EB factory.
Definition: ERF_EB.H:131
eb_aux_ const * get_u_const_factory() const noexcept
Return the ERF auxiliary x-face EB factory.
Definition: ERF_EB.H:129
const amrex::FabArray< amrex::EBCellFlagFab > & getMultiEBCellFlagFab() const
Return the reconstructed EB cell flags.
Definition: ERF_EBAux.cpp:1146
@ xvel
Definition: ERF_IndexDefines.H:215
@ zvel
Definition: ERF_IndexDefines.H:217
@ yvel
Definition: ERF_IndexDefines.H:216
@ dz
Definition: ERF_AdvanceWDM6.cpp:272
Definition: ERF_DiffStruct.H:22
bool eb_diff_constraint_z
Whether to constrain EB diffusion in the z direction.
Definition: ERF_DiffStruct.H:109
MolecDiffType molec_diff_type
Selected molecular transport model.
Definition: ERF_DiffStruct.H:94
bool eb_diff_constraint_y
Whether to constrain EB diffusion in the y direction.
Definition: ERF_DiffStruct.H:108
bool eb_diff_constraint_x
Whether to constrain EB diffusion in the x direction.
Definition: ERF_DiffStruct.H:107
amrex::Real dynamic_viscosity
Dynamic viscosity for momentum diffusion [kg/(m-s)].
Definition: ERF_DiffStruct.H:106
amrex::Real rho0_trans
Reference density used to compute dynamic diffusion coefficients [kg/m3].
Definition: ERF_DiffStruct.H:101
Definition: ERF_EBStruct.H:36
EBChoice ebChoice
Embedded-boundary options.
Definition: ERF_DataStruct.H:1975
DiffChoice diffChoice
Diffusion-related options.
Definition: ERF_DataStruct.H:1971