Function for computing the momentum RHS for diffusion operator without terrain.
161 Real dx = dx_arr[0],
dy = dx_arr[1],
dz = dx_arr[2];
174 Array4<const Real > u_volfrac = u_factory->getVolFrac().const_array(mfi);
175 Array4<const Real > u_volcent{};
176 Array4<const Real > u_afrac_x{};
177 Array4<const Real > u_afrac_y{};
178 Array4<const Real > u_afrac_z{};
179 Array4<const Real > u_bcent{};
180 Array4<const Real > u_bnorm{};
181 FabType u_type = u_factory->getMultiEBCellFlagFab()[mfi].getType();
182 if (u_type == FabType::singlevalued) {
183 u_volcent = u_factory->getCentroid().const_array(mfi);
184 u_afrac_x = u_factory->getAreaFrac()[0]->const_array(mfi);
185 u_afrac_y = u_factory->getAreaFrac()[1]->const_array(mfi);
186 u_afrac_z = u_factory->getAreaFrac()[2]->const_array(mfi);
187 u_bcent = u_factory->getBndryCent().const_array(mfi);
188 u_bnorm = u_factory->getBndryNormal().const_array(mfi);
195 Array4<const Real > v_volfrac = v_factory->getVolFrac().const_array(mfi);
196 Array4<const Real > v_volcent{};
197 Array4<const Real > v_afrac_x{};
198 Array4<const Real > v_afrac_y{};
199 Array4<const Real > v_afrac_z{};
200 Array4<const Real > v_bcent{};
201 Array4<const Real > v_bnorm{};
202 FabType v_type = v_factory->getMultiEBCellFlagFab()[mfi].getType();
203 if (v_type == FabType::singlevalued) {
204 v_volcent = v_factory->getCentroid().const_array(mfi);
205 v_afrac_x = v_factory->getAreaFrac()[0]->const_array(mfi);
206 v_afrac_y = v_factory->getAreaFrac()[1]->const_array(mfi);
207 v_afrac_z = v_factory->getAreaFrac()[2]->const_array(mfi);
208 v_bcent = v_factory->getBndryCent().const_array(mfi);
209 v_bnorm = v_factory->getBndryNormal().const_array(mfi);
215 Array4<const Real > w_volfrac = w_factory->getVolFrac().const_array(mfi);
216 Array4<const Real > w_volcent{};
217 Array4<const Real > w_afrac_x{};
218 Array4<const Real > w_afrac_y{};
219 Array4<const Real > w_afrac_z{};
220 Array4<const Real > w_bcent{};
221 Array4<const Real > w_bnorm{};
222 FabType w_type = w_factory->getMultiEBCellFlagFab()[mfi].getType();
223 if (w_type == FabType::singlevalued) {
224 w_volcent = w_factory->getCentroid().const_array(mfi);
225 w_afrac_x = w_factory->getAreaFrac()[0]->const_array(mfi);
226 w_afrac_y = w_factory->getAreaFrac()[1]->const_array(mfi);
227 w_afrac_z = w_factory->getAreaFrac()[2]->const_array(mfi);
228 w_bcent = w_factory->getBndryCent().const_array(mfi);
229 w_bnorm = w_factory->getBndryNormal().const_array(mfi);
233 if (u_type == FabType::regular) {
235 ParallelFor(bxx, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
237 Real mfsq = mf_ux(i,j,0) * mf_uy(i,j,0);
239 Real diffContrib = ( (
tau11(i , j , k ) -
tau11(i-1, j , k ) ) * dxinv * mfsq
240 + (
tau12(i , j+1, k ) -
tau12(i , j , k ) ) * dyinv * mfsq
241 + (
tau13(i , j , k+1) -
tau13(i , j , k ) ) * dzinv );
242 diffContrib /= u_volfrac(i,j,k);
244 rho_u_rhs(i,j,k) -= diffContrib;
247 }
else if (u_type == FabType::singlevalued) {
249 ParallelFor(bxx, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
251 if (u_volfrac(i,j,k)>
zero) {
254 Real mfsq = mf_ux(i,j,0) * mf_uy(i,j,0);
256 Real diffContrib = ( (
tau11(i , j , k ) * u_afrac_x(i+1,j ,k )
257 -
tau11(i-1, j , k ) * u_afrac_x(i ,j ,k ) ) * dxinv * mfsq
258 + (
tau12(i , j+1, k ) * u_afrac_y(i ,j+1,k )
259 -
tau12(i , j , k ) * u_afrac_y(i ,j ,k ) ) * dyinv * mfsq
260 + (
tau13(i , j , k+1) * u_afrac_z(i ,j ,k+1)
261 -
tau13(i , j , k ) * u_afrac_z(i ,j ,k )) * dzinv );
262 diffContrib /= u_volfrac(i,j,k);
264 rho_u_rhs(i,j,k) -= diffContrib;
266 if (!l_constraint_x && u_cellflg(i,j,k).isSingleValued()) {
268 Real axm = u_afrac_x(i ,j ,k );
269 Real axp = u_afrac_x(i+1,j ,k );
270 Real aym = u_afrac_y(i ,j ,k );
271 Real ayp = u_afrac_y(i ,j+1,k );
272 Real azm = u_afrac_z(i ,j ,k );
273 Real azp = u_afrac_z(i ,j ,k+1);
279 Real barea = std::sqrt(adx*adx + ady*ady + adz*adz);
283 if (l_no_slip || l_surface_layer) {
285 RealVect bcent_eb {u_bcent(i,j,k,0), u_bcent(i,j,k,1), u_bcent(i,j,k,2)};
291 Real nx = u_bnorm(i,j,k,0);
292 Real ny = u_bnorm(i,j,k,1);
293 Real nz = u_bnorm(i,j,k,2);
295 if (l_surface_layer) {
298 Real velx = u_arr(i,j,k);
299 Real vely = (v_volfrac(i-1,j ,k) * v_arr(i-1,j ,k) + v_volfrac(i,j ,k) * v_arr(i,j ,k)
300 + 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))
301 / (v_volfrac(i-1,j,k) + v_volfrac(i,j,k) + v_volfrac(i-1,j+1,k) + v_volfrac(i,j+1,k));
303 Real velz = (w_volfrac(i-1,j,k ) * w_arr(i-1,j,k ) + w_volfrac(i,j,k ) * w_arr(i,j,k )
304 + 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))
305 / (w_volfrac(i-1,j,k) + w_volfrac(i,j,k) + w_volfrac(i-1,j,k+1) + w_volfrac(i,j,k+1));
308 Real v_dot_n = velx * nx + vely * ny + velz * nz;
309 Dirichlet_u = velx - v_dot_n * nx;
310 Dirichlet_v = vely - v_dot_n * ny;
311 Dirichlet_w = velz - v_dot_n * nz;
314 GpuArray<Real,AMREX_SPACEDIM> slopes_u;
315 GpuArray<Real,AMREX_SPACEDIM> slopes_v;
316 GpuArray<Real,AMREX_SPACEDIM> slopes_w;
318 slopes_u =
erf_calc_slopes_eb_Dirichlet (
dx,
dy,
dz, i, j, k, bcent_eb, Dirichlet_u, u_arr, u_volcent, u_cellflg);
319 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);
320 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);
322 Real dudx = slopes_u[0];
323 Real dudy = slopes_u[1];
324 Real dudz = slopes_u[2];
325 Real dvdx = slopes_v[0];
326 Real dvdy = slopes_v[1];
327 Real dvdz = slopes_v[2];
328 Real dwdx = slopes_w[0];
329 Real dwdy = slopes_w[1];
330 Real dwdz = slopes_w[2];
332 Real tau11_eb = ( dudx - ( dudx + dvdy + dwdz ) /
three );
338 dudn = - mu_eff * (nx * tau11_eb + ny * tau12_eb + nz * tau13_eb);
340 }
else if (l_surface_layer) {
342 Real tbx_x, tbx_y, tbx_z, tby_x, tby_y, tby_z;
345 Real tau22_eb = ( dvdy - ( dudx + dvdy + dwdz ) /
three );
346 Real tau33_eb = ( dwdz - ( dudx + dvdy + dwdz ) /
three );
349 Real tauzz = mu_eff * ( nx*nx*tau11_eb + ny*ny*tau22_eb + nz*nz*tau33_eb
350 +
two * (nx*ny*tau12_eb + ny*nz*tau23_eb + nx*nz*tau13_eb ));
352 dudn = - tbx_x * u_tau_eb13(i,j,k) - tby_x * u_tau_eb23(i,j,k) - nx * tauzz;
356 rho_u_rhs(i,j,k) -= barea * dudn / (vol * u_volfrac(i,j,k));
364 if (v_type == FabType::regular) {
366 ParallelFor(bxy, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
368 Real mfsq = mf_vx(i,j,0) * mf_vy(i,j,0);
370 Real diffContrib = ( (
tau12(i+1, j , k ) -
tau12(i , j , k ) ) * dxinv * mfsq
371 + (
tau22(i , j , k ) -
tau22(i , j-1, k ) ) * dyinv * mfsq
372 + (
tau23(i , j , k+1) -
tau23(i , j , k ) ) * dzinv );
373 diffContrib /= v_volfrac(i,j,k);
375 rho_v_rhs(i,j,k) -= diffContrib;
377 }
else if (v_type == FabType::singlevalued) {
379 ParallelFor(bxy, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
381 if (v_volfrac(i,j,k)>
zero) {
384 Real mfsq = mf_vx(i,j,0) * mf_vy(i,j,0);
386 Real diffContrib = ( (
tau12(i+1, j , k ) * v_afrac_x(i+1,j ,k )
387 -
tau12(i , j , k ) * v_afrac_x(i ,j ,k ) ) * dxinv * mfsq
388 + (
tau22(i , j , k ) * v_afrac_y(i ,j+1,k )
389 -
tau22(i , j-1, k ) * v_afrac_y(i ,j ,k ) ) * dyinv * mfsq
390 + (
tau23(i , j , k+1) * v_afrac_z(i ,j ,k+1)
391 -
tau23(i , j , k ) * v_afrac_z(i ,j ,k ) ) * dzinv );
392 diffContrib /= v_volfrac(i,j,k);
394 rho_v_rhs(i,j,k) -= diffContrib;
396 if (!l_constraint_y && v_cellflg(i,j,k).isSingleValued()) {
398 Real axm = v_afrac_x(i ,j ,k );
399 Real axp = v_afrac_x(i+1,j ,k );
400 Real aym = v_afrac_y(i ,j ,k );
401 Real ayp = v_afrac_y(i ,j+1,k );
402 Real azm = v_afrac_z(i ,j ,k );
403 Real azp = v_afrac_z(i ,j ,k+1);
409 Real barea = std::sqrt(adx*adx + ady*ady + adz*adz);
413 if (l_no_slip || l_surface_layer) {
415 RealVect bcent_eb {v_bcent(i,j,k,0), v_bcent(i,j,k,1), v_bcent(i,j,k,2)};
421 Real nx = v_bnorm(i,j,k,0);
422 Real ny = v_bnorm(i,j,k,1);
423 Real nz = v_bnorm(i,j,k,2);
425 if (l_surface_layer) {
428 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)
429 + u_volfrac(i+1,j ,k) * u_arr(i+1,j ,k) + u_volfrac(i ,j ,k) * u_arr(i ,j ,k))
430 / (u_volfrac(i,j-1,k) + u_volfrac(i+1,j-1,k) + u_volfrac(i+1,j,k) + u_volfrac(i,j,k));
431 Real vely = v_arr(i,j,k);
432 Real velz = (w_volfrac(i,j-1,k ) * w_arr(i,j-1,k ) + w_volfrac(i,j,k ) * w_arr(i,j,k )
433 + 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))
434 / (w_volfrac(i,j-1,k) + w_volfrac(i,j,k) + w_volfrac(i,j,k+1) + w_volfrac(i,j-1,k+1));
437 Real v_dot_n = velx * nx + vely * ny + velz * nz;
438 Dirichlet_u = velx - v_dot_n * nx;
439 Dirichlet_v = vely - v_dot_n * ny;
440 Dirichlet_w = velz - v_dot_n * nz;
443 GpuArray<Real,AMREX_SPACEDIM> slopes_u;
444 GpuArray<Real,AMREX_SPACEDIM> slopes_v;
445 GpuArray<Real,AMREX_SPACEDIM> slopes_w;
447 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);
448 slopes_v =
erf_calc_slopes_eb_Dirichlet (
dx,
dy,
dz, i, j, k, bcent_eb, Dirichlet_v, v_arr, v_volcent, v_cellflg);
449 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);
451 Real dudx = slopes_u[0];
452 Real dudy = slopes_u[1];
453 Real dudz = slopes_u[2];
454 Real dvdx = slopes_v[0];
455 Real dvdy = slopes_v[1];
456 Real dvdz = slopes_v[2];
457 Real dwdx = slopes_w[0];
458 Real dwdy = slopes_w[1];
459 Real dwdz = slopes_w[2];
461 Real tau22_eb = ( dvdy - ( dudx + dvdy + dwdz ) /
three );
467 dvdn = - mu_eff * (nx * tau12_eb + ny * tau22_eb + nz * tau23_eb);
469 }
else if (l_surface_layer) {
471 Real tbx_x, tbx_y, tbx_z, tby_x, tby_y, tby_z;
474 Real tau11_eb = ( dudx - ( dudx + dvdy + dwdz ) /
three );
475 Real tau33_eb = ( dwdz - ( dudx + dvdy + dwdz ) /
three );
478 Real tauzz = mu_eff * ( nx*nx*tau11_eb + ny*ny*tau22_eb + nz*nz*tau33_eb
479 +
two * (nx*ny*tau12_eb + ny*nz*tau23_eb + nx*nz*tau13_eb ));
481 dvdn = - tbx_y * v_tau_eb13(i,j,k) - tby_y * v_tau_eb23(i,j,k) - ny * tauzz;
485 rho_v_rhs(i,j,k) -= barea * dvdn / (vol * v_volfrac(i,j,k));
492 if (w_type == FabType::regular) {
494 ParallelFor(bxz, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
496 Real mfsq = mf_mx(i,j,0) * mf_my(i,j,0);
498 Real diffContrib = ( (
tau13(i+1, j , k ) -
tau13(i , j , k ) ) * dxinv * mfsq
499 + (
tau23(i , j+1, k ) -
tau23(i , j , k ) ) * dyinv * mfsq
500 + (
tau33(i , j , k ) -
tau33(i , j , k-1) ) * dzinv );
501 diffContrib /= w_volfrac(i,j,k);
503 rho_w_rhs(i,j,k) -= diffContrib;
506 }
else if (w_type == FabType::singlevalued) {
508 ParallelFor(bxz, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
510 if (w_volfrac(i,j,k)>
zero) {
513 Real mfsq = mf_mx(i,j,0) * mf_my(i,j,0);
515 Real diffContrib = ( (
tau13(i+1, j , k ) * w_afrac_x(i+1,j ,k )
516 -
tau13(i , j , k ) * w_afrac_x(i ,j ,k ) ) * dxinv * mfsq
517 + (
tau23(i , j+1, k ) * w_afrac_y(i ,j+1,k )
518 -
tau23(i , j , k ) * w_afrac_y(i ,j ,k ) ) * dyinv * mfsq
519 + (
tau33(i , j , k ) * w_afrac_z(i ,j ,k+1)
520 -
tau33(i , j , k-1) * w_afrac_z(i ,j ,k ) ) * dzinv );
521 diffContrib /= w_volfrac(i,j,k);
523 rho_w_rhs(i,j,k) -= diffContrib;
525 if (!l_constraint_z && w_cellflg(i,j,k).isSingleValued()) {
527 Real axm = w_afrac_x(i ,j ,k );
528 Real axp = w_afrac_x(i+1,j ,k );
529 Real aym = w_afrac_y(i ,j ,k );
530 Real ayp = w_afrac_y(i ,j+1,k );
531 Real azm = w_afrac_z(i ,j ,k );
532 Real azp = w_afrac_z(i ,j ,k+1);
538 Real barea = std::sqrt(adx*adx + ady*ady + adz*adz);
542 if (l_no_slip || l_surface_layer) {
544 const RealVect bcent_eb {w_bcent(i,j,k,0), w_bcent(i,j,k,1), w_bcent(i,j,k,2)};
550 Real nx = w_bnorm(i,j,k,0);
551 Real ny = w_bnorm(i,j,k,1);
552 Real nz = w_bnorm(i,j,k,2);
554 if (l_surface_layer) {
557 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)
558 + u_volfrac(i+1,j,k ) * u_arr(i+1,j,k ) + u_volfrac(i ,j,k ) * u_arr(i ,j,k ))
559 / (u_volfrac(i,j,k-1) + u_volfrac(i+1,j,k-1) + u_volfrac(i+1,j,k) + u_volfrac(i,j,k));
560 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)
561 + v_volfrac(i,j+1,k ) * v_arr(i,j+1,k ) + v_volfrac(i,j ,k ) * v_arr(i,j ,k ))
562 / (v_volfrac(i,j,k-1) + v_volfrac(i,j+1,k-1) + v_volfrac(i,j+1,k) + v_volfrac(i,j,k));
563 Real velz = w_arr(i,j,k);
566 Real v_dot_n = velx * nx + vely * ny + velz * nz;
567 Dirichlet_u = velx - v_dot_n * nx;
568 Dirichlet_v = vely - v_dot_n * ny;
569 Dirichlet_w = velz - v_dot_n * nz;
572 GpuArray<Real,AMREX_SPACEDIM> slopes_u;
573 GpuArray<Real,AMREX_SPACEDIM> slopes_v;
574 GpuArray<Real,AMREX_SPACEDIM> slopes_w;
576 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);
577 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);
578 slopes_w =
erf_calc_slopes_eb_Dirichlet (
dx,
dy,
dz, i, j, k, bcent_eb, Dirichlet_w, w_arr, w_volcent, w_cellflg);
580 Real dudx = slopes_u[0];
581 Real dudy = slopes_u[1];
582 Real dudz = slopes_u[2];
583 Real dvdx = slopes_v[0];
584 Real dvdy = slopes_v[1];
585 Real dvdz = slopes_v[2];
586 Real dwdx = slopes_w[0];
587 Real dwdy = slopes_w[1];
588 Real dwdz = slopes_w[2];
590 Real tau33_eb = ( dwdz - ( dudx + dvdy + dwdz ) /
three );
596 dwdn = - mu_eff * (nx * tau13_eb + ny * tau23_eb + nz * tau33_eb);
598 }
else if (l_surface_layer) {
600 Real tbx_x, tbx_y, tbx_z, tby_x, tby_y, tby_z;
603 Real tau11_eb = ( dudx - ( dudx + dvdy + dwdz ) /
three );
604 Real tau22_eb = ( dvdy - ( dudx + dvdy + dwdz ) /
three );
607 Real tauzz = mu_eff * ( nx*nx*tau11_eb + ny*ny*tau22_eb + nz*nz*tau33_eb
608 +
two * (nx*ny*tau12_eb + ny*nz*tau23_eb + nx*nz*tau13_eb ));
610 dwdn = - tbx_z * w_tau_eb13(i,j,k) - tby_z * w_tau_eb23(i,j,k) - nz * tauzz;
615 rho_w_rhs(i,j,k) -= barea * dwdn / (vol * w_volfrac(i,j,k));
constexpr amrex::Real three
Definition: ERF_Constants.H:11
constexpr amrex::Real two
Definition: ERF_Constants.H:10
constexpr amrex::Real myhalf
Definition: ERF_Constants.H:13
@ tau12
Definition: ERF_DataStruct.H:39
@ tau23
Definition: ERF_DataStruct.H:39
@ tau33
Definition: ERF_DataStruct.H:39
@ tau22
Definition: ERF_DataStruct.H:39
@ tau11
Definition: ERF_DataStruct.H:39
@ tau13
Definition: ERF_DataStruct.H:39
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);})
eb_aux_ const * get_w_const_factory() const noexcept
Return the ERF auxiliary z-face EB factory.
Definition: ERF_EB.H:123
eb_aux_ const * get_v_const_factory() const noexcept
Return the ERF auxiliary y-face EB factory.
Definition: ERF_EB.H:121
eb_aux_ const * get_u_const_factory() const noexcept
Return the ERF auxiliary x-face EB factory.
Definition: ERF_EB.H:119
const amrex::FabArray< amrex::EBCellFlagFab > & getMultiEBCellFlagFab() const
Return the reconstructed EB cell flags.
Definition: ERF_EBAux.cpp:1145
@ xvel
Definition: ERF_IndexDefines.H:215
@ zvel
Definition: ERF_IndexDefines.H:217
@ yvel
Definition: ERF_IndexDefines.H:216
@ dz
Definition: ERF_AdvanceWDM6.cpp:270
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:1865
DiffChoice diffChoice
Diffusion-related options.
Definition: ERF_DataStruct.H:1861