Function for computing the momentum RHS for diffusion operator without terrain.
132 Real dx = dx_arr[0],
dy = dx_arr[1],
dz = dx_arr[2];
145 Array4<const Real > u_volfrac = u_factory->getVolFrac().const_array(mfi);
146 Array4<const Real > u_volcent{};
147 Array4<const Real > u_afrac_x{};
148 Array4<const Real > u_afrac_y{};
149 Array4<const Real > u_afrac_z{};
150 Array4<const Real > u_bcent{};
151 Array4<const Real > u_bnorm{};
152 FabType u_type = u_factory->getMultiEBCellFlagFab()[mfi].getType();
153 if (u_type == FabType::singlevalued) {
154 u_volcent = u_factory->getCentroid().const_array(mfi);
155 u_afrac_x = u_factory->getAreaFrac()[0]->const_array(mfi);
156 u_afrac_y = u_factory->getAreaFrac()[1]->const_array(mfi);
157 u_afrac_z = u_factory->getAreaFrac()[2]->const_array(mfi);
158 u_bcent = u_factory->getBndryCent().const_array(mfi);
159 u_bnorm = u_factory->getBndryNormal().const_array(mfi);
166 Array4<const Real > v_volfrac = v_factory->getVolFrac().const_array(mfi);
167 Array4<const Real > v_volcent{};
168 Array4<const Real > v_afrac_x{};
169 Array4<const Real > v_afrac_y{};
170 Array4<const Real > v_afrac_z{};
171 Array4<const Real > v_bcent{};
172 Array4<const Real > v_bnorm{};
173 FabType v_type = v_factory->getMultiEBCellFlagFab()[mfi].getType();
174 if (v_type == FabType::singlevalued) {
175 v_volcent = v_factory->getCentroid().const_array(mfi);
176 v_afrac_x = v_factory->getAreaFrac()[0]->const_array(mfi);
177 v_afrac_y = v_factory->getAreaFrac()[1]->const_array(mfi);
178 v_afrac_z = v_factory->getAreaFrac()[2]->const_array(mfi);
179 v_bcent = v_factory->getBndryCent().const_array(mfi);
180 v_bnorm = v_factory->getBndryNormal().const_array(mfi);
186 Array4<const Real > w_volfrac = w_factory->getVolFrac().const_array(mfi);
187 Array4<const Real > w_volcent{};
188 Array4<const Real > w_afrac_x{};
189 Array4<const Real > w_afrac_y{};
190 Array4<const Real > w_afrac_z{};
191 Array4<const Real > w_bcent{};
192 Array4<const Real > w_bnorm{};
193 FabType w_type = w_factory->getMultiEBCellFlagFab()[mfi].getType();
194 if (w_type == FabType::singlevalued) {
195 w_volcent = w_factory->getCentroid().const_array(mfi);
196 w_afrac_x = w_factory->getAreaFrac()[0]->const_array(mfi);
197 w_afrac_y = w_factory->getAreaFrac()[1]->const_array(mfi);
198 w_afrac_z = w_factory->getAreaFrac()[2]->const_array(mfi);
199 w_bcent = w_factory->getBndryCent().const_array(mfi);
200 w_bnorm = w_factory->getBndryNormal().const_array(mfi);
204 if (u_type == FabType::regular) {
206 ParallelFor(bxx, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
208 Real mfsq = mf_ux(i,j,0) * mf_uy(i,j,0);
210 Real diffContrib = ( (
tau11(i , j , k ) -
tau11(i-1, j , k ) ) * dxinv * mfsq
211 + (
tau12(i , j+1, k ) -
tau12(i , j , k ) ) * dyinv * mfsq
212 + (
tau13(i , j , k+1) -
tau13(i , j , k ) ) * dzinv );
213 diffContrib /= u_volfrac(i,j,k);
215 rho_u_rhs(i,j,k) -= diffContrib;
218 }
else if (u_type == FabType::singlevalued) {
220 ParallelFor(bxx, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
222 if (u_volfrac(i,j,k)>
zero) {
225 Real mfsq = mf_ux(i,j,0) * mf_uy(i,j,0);
227 Real diffContrib = ( (
tau11(i , j , k ) * u_afrac_x(i+1,j ,k )
228 -
tau11(i-1, j , k ) * u_afrac_x(i ,j ,k ) ) * dxinv * mfsq
229 + (
tau12(i , j+1, k ) * u_afrac_y(i ,j+1,k )
230 -
tau12(i , j , k ) * u_afrac_y(i ,j ,k ) ) * dyinv * mfsq
231 + (
tau13(i , j , k+1) * u_afrac_z(i ,j ,k+1)
232 -
tau13(i , j , k ) * u_afrac_z(i ,j ,k )) * dzinv );
233 diffContrib /= u_volfrac(i,j,k);
235 rho_u_rhs(i,j,k) -= diffContrib;
237 if (!l_constraint_x && u_cellflg(i,j,k).isSingleValued()) {
239 Real axm = u_afrac_x(i ,j ,k );
240 Real axp = u_afrac_x(i+1,j ,k );
241 Real aym = u_afrac_y(i ,j ,k );
242 Real ayp = u_afrac_y(i ,j+1,k );
243 Real azm = u_afrac_z(i ,j ,k );
244 Real azp = u_afrac_z(i ,j ,k+1);
250 Real barea = std::sqrt(adx*adx + ady*ady + adz*adz);
254 if (l_no_slip || l_surface_layer) {
256 RealVect bcent_eb {u_bcent(i,j,k,0), u_bcent(i,j,k,1), u_bcent(i,j,k,2)};
262 Real nx = u_bnorm(i,j,k,0);
263 Real ny = u_bnorm(i,j,k,1);
264 Real nz = u_bnorm(i,j,k,2);
266 if (l_surface_layer) {
269 Real velx = u_arr(i,j,k);
270 Real vely = (v_volfrac(i-1,j ,k) * v_arr(i-1,j ,k) + v_volfrac(i,j ,k) * v_arr(i,j ,k)
271 + 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))
272 / (v_volfrac(i-1,j,k) + v_volfrac(i,j,k) + v_volfrac(i-1,j+1,k) + v_volfrac(i,j+1,k));
274 Real velz = (w_volfrac(i-1,j,k ) * w_arr(i-1,j,k ) + w_volfrac(i,j,k ) * w_arr(i,j,k )
275 + 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))
276 / (w_volfrac(i-1,j,k) + w_volfrac(i,j,k) + w_volfrac(i-1,j,k+1) + w_volfrac(i,j,k+1));
279 Real v_dot_n = velx * nx + vely * ny + velz * nz;
280 Dirichlet_u = velx - v_dot_n * nx;
281 Dirichlet_v = vely - v_dot_n * ny;
282 Dirichlet_w = velz - v_dot_n * nz;
285 GpuArray<Real,AMREX_SPACEDIM> slopes_u;
286 GpuArray<Real,AMREX_SPACEDIM> slopes_v;
287 GpuArray<Real,AMREX_SPACEDIM> slopes_w;
289 slopes_u =
erf_calc_slopes_eb_Dirichlet (
dx,
dy,
dz, i, j, k, bcent_eb, Dirichlet_u, u_arr, u_volcent, u_cellflg);
290 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);
291 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);
293 Real dudx = slopes_u[0];
294 Real dudy = slopes_u[1];
295 Real dudz = slopes_u[2];
296 Real dvdx = slopes_v[0];
297 Real dvdy = slopes_v[1];
298 Real dvdz = slopes_v[2];
299 Real dwdx = slopes_w[0];
300 Real dwdy = slopes_w[1];
301 Real dwdz = slopes_w[2];
303 Real tau11_eb = ( dudx - ( dudx + dvdy + dwdz ) /
three );
309 dudn = - mu_eff * (nx * tau11_eb + ny * tau12_eb + nz * tau13_eb);
311 }
else if (l_surface_layer) {
313 Real tbx_x, tbx_y, tbx_z, tby_x, tby_y, tby_z;
316 Real tau22_eb = ( dvdy - ( dudx + dvdy + dwdz ) /
three );
317 Real tau33_eb = ( dwdz - ( dudx + dvdy + dwdz ) /
three );
320 Real tauzz = mu_eff * ( nx*nx*tau11_eb + ny*ny*tau22_eb + nz*nz*tau33_eb
321 +
two * (nx*ny*tau12_eb + ny*nz*tau23_eb + nx*nz*tau13_eb ));
323 dudn = - tbx_x * u_tau_eb13(i,j,k) - tby_x * u_tau_eb23(i,j,k) - nx * tauzz;
327 rho_u_rhs(i,j,k) -= barea * dudn / (vol * u_volfrac(i,j,k));
335 if (v_type == FabType::regular) {
337 ParallelFor(bxy, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
339 Real mfsq = mf_vx(i,j,0) * mf_vy(i,j,0);
341 Real diffContrib = ( (
tau12(i+1, j , k ) -
tau12(i , j , k ) ) * dxinv * mfsq
342 + (
tau22(i , j , k ) -
tau22(i , j-1, k ) ) * dyinv * mfsq
343 + (
tau23(i , j , k+1) -
tau23(i , j , k ) ) * dzinv );
344 diffContrib /= v_volfrac(i,j,k);
346 rho_v_rhs(i,j,k) -= diffContrib;
348 }
else if (v_type == FabType::singlevalued) {
350 ParallelFor(bxy, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
352 if (v_volfrac(i,j,k)>
zero) {
355 Real mfsq = mf_vx(i,j,0) * mf_vy(i,j,0);
357 Real diffContrib = ( (
tau12(i+1, j , k ) * v_afrac_x(i+1,j ,k )
358 -
tau12(i , j , k ) * v_afrac_x(i ,j ,k ) ) * dxinv * mfsq
359 + (
tau22(i , j , k ) * v_afrac_y(i ,j+1,k )
360 -
tau22(i , j-1, k ) * v_afrac_y(i ,j ,k ) ) * dyinv * mfsq
361 + (
tau23(i , j , k+1) * v_afrac_z(i ,j ,k+1)
362 -
tau23(i , j , k ) * v_afrac_z(i ,j ,k ) ) * dzinv );
363 diffContrib /= v_volfrac(i,j,k);
365 rho_v_rhs(i,j,k) -= diffContrib;
367 if (!l_constraint_y && v_cellflg(i,j,k).isSingleValued()) {
369 Real axm = v_afrac_x(i ,j ,k );
370 Real axp = v_afrac_x(i+1,j ,k );
371 Real aym = v_afrac_y(i ,j ,k );
372 Real ayp = v_afrac_y(i ,j+1,k );
373 Real azm = v_afrac_z(i ,j ,k );
374 Real azp = v_afrac_z(i ,j ,k+1);
380 Real barea = std::sqrt(adx*adx + ady*ady + adz*adz);
384 if (l_no_slip || l_surface_layer) {
386 RealVect bcent_eb {v_bcent(i,j,k,0), v_bcent(i,j,k,1), v_bcent(i,j,k,2)};
392 Real nx = v_bnorm(i,j,k,0);
393 Real ny = v_bnorm(i,j,k,1);
394 Real nz = v_bnorm(i,j,k,2);
396 if (l_surface_layer) {
399 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)
400 + u_volfrac(i+1,j ,k) * u_arr(i+1,j ,k) + u_volfrac(i ,j ,k) * u_arr(i ,j ,k))
401 / (u_volfrac(i,j-1,k) + u_volfrac(i+1,j-1,k) + u_volfrac(i+1,j,k) + u_volfrac(i,j,k));
402 Real vely = v_arr(i,j,k);
403 Real velz = (w_volfrac(i,j-1,k ) * w_arr(i,j-1,k ) + w_volfrac(i,j,k ) * w_arr(i,j,k )
404 + 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))
405 / (w_volfrac(i,j-1,k) + w_volfrac(i,j,k) + w_volfrac(i,j,k+1) + w_volfrac(i,j-1,k+1));
408 Real v_dot_n = velx * nx + vely * ny + velz * nz;
409 Dirichlet_u = velx - v_dot_n * nx;
410 Dirichlet_v = vely - v_dot_n * ny;
411 Dirichlet_w = velz - v_dot_n * nz;
414 GpuArray<Real,AMREX_SPACEDIM> slopes_u;
415 GpuArray<Real,AMREX_SPACEDIM> slopes_v;
416 GpuArray<Real,AMREX_SPACEDIM> slopes_w;
418 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);
419 slopes_v =
erf_calc_slopes_eb_Dirichlet (
dx,
dy,
dz, i, j, k, bcent_eb, Dirichlet_v, v_arr, v_volcent, v_cellflg);
420 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);
422 Real dudx = slopes_u[0];
423 Real dudy = slopes_u[1];
424 Real dudz = slopes_u[2];
425 Real dvdx = slopes_v[0];
426 Real dvdy = slopes_v[1];
427 Real dvdz = slopes_v[2];
428 Real dwdx = slopes_w[0];
429 Real dwdy = slopes_w[1];
430 Real dwdz = slopes_w[2];
432 Real tau22_eb = ( dvdy - ( dudx + dvdy + dwdz ) /
three );
438 dvdn = - mu_eff * (nx * tau12_eb + ny * tau22_eb + nz * tau23_eb);
440 }
else if (l_surface_layer) {
442 Real tbx_x, tbx_y, tbx_z, tby_x, tby_y, tby_z;
445 Real tau11_eb = ( dudx - ( dudx + dvdy + dwdz ) /
three );
446 Real tau33_eb = ( dwdz - ( dudx + dvdy + dwdz ) /
three );
449 Real tauzz = mu_eff * ( nx*nx*tau11_eb + ny*ny*tau22_eb + nz*nz*tau33_eb
450 +
two * (nx*ny*tau12_eb + ny*nz*tau23_eb + nx*nz*tau13_eb ));
452 dvdn = - tbx_y * v_tau_eb13(i,j,k) - tby_y * v_tau_eb23(i,j,k) - ny * tauzz;
456 rho_v_rhs(i,j,k) -= barea * dvdn / (vol * v_volfrac(i,j,k));
463 if (w_type == FabType::regular) {
465 ParallelFor(bxz, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
467 Real mfsq = mf_mx(i,j,0) * mf_my(i,j,0);
469 Real diffContrib = ( (
tau13(i+1, j , k ) -
tau13(i , j , k ) ) * dxinv * mfsq
470 + (
tau23(i , j+1, k ) -
tau23(i , j , k ) ) * dyinv * mfsq
471 + (
tau33(i , j , k ) -
tau33(i , j , k-1) ) * dzinv );
472 diffContrib /= w_volfrac(i,j,k);
474 rho_w_rhs(i,j,k) -= diffContrib;
477 }
else if (w_type == FabType::singlevalued) {
479 ParallelFor(bxz, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
481 if (w_volfrac(i,j,k)>
zero) {
484 Real mfsq = mf_mx(i,j,0) * mf_my(i,j,0);
486 Real diffContrib = ( (
tau13(i+1, j , k ) * w_afrac_x(i+1,j ,k )
487 -
tau13(i , j , k ) * w_afrac_x(i ,j ,k ) ) * dxinv * mfsq
488 + (
tau23(i , j+1, k ) * w_afrac_y(i ,j+1,k )
489 -
tau23(i , j , k ) * w_afrac_y(i ,j ,k ) ) * dyinv * mfsq
490 + (
tau33(i , j , k ) * w_afrac_z(i ,j ,k+1)
491 -
tau33(i , j , k-1) * w_afrac_z(i ,j ,k ) ) * dzinv );
492 diffContrib /= w_volfrac(i,j,k);
494 rho_w_rhs(i,j,k) -= diffContrib;
496 if (!l_constraint_z && w_cellflg(i,j,k).isSingleValued()) {
498 Real axm = w_afrac_x(i ,j ,k );
499 Real axp = w_afrac_x(i+1,j ,k );
500 Real aym = w_afrac_y(i ,j ,k );
501 Real ayp = w_afrac_y(i ,j+1,k );
502 Real azm = w_afrac_z(i ,j ,k );
503 Real azp = w_afrac_z(i ,j ,k+1);
509 Real barea = std::sqrt(adx*adx + ady*ady + adz*adz);
513 if (l_no_slip || l_surface_layer) {
515 const RealVect bcent_eb {w_bcent(i,j,k,0), w_bcent(i,j,k,1), w_bcent(i,j,k,2)};
521 Real nx = w_bnorm(i,j,k,0);
522 Real ny = w_bnorm(i,j,k,1);
523 Real nz = w_bnorm(i,j,k,2);
525 if (l_surface_layer) {
528 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)
529 + u_volfrac(i+1,j,k ) * u_arr(i+1,j,k ) + u_volfrac(i ,j,k ) * u_arr(i ,j,k ))
530 / (u_volfrac(i,j,k-1) + u_volfrac(i+1,j,k-1) + u_volfrac(i+1,j,k) + u_volfrac(i,j,k));
531 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)
532 + v_volfrac(i,j+1,k ) * v_arr(i,j+1,k ) + v_volfrac(i,j ,k ) * v_arr(i,j ,k ))
533 / (v_volfrac(i,j,k-1) + v_volfrac(i,j+1,k-1) + v_volfrac(i,j+1,k) + v_volfrac(i,j,k));
534 Real velz = w_arr(i,j,k);
537 Real v_dot_n = velx * nx + vely * ny + velz * nz;
538 Dirichlet_u = velx - v_dot_n * nx;
539 Dirichlet_v = vely - v_dot_n * ny;
540 Dirichlet_w = velz - v_dot_n * nz;
543 GpuArray<Real,AMREX_SPACEDIM> slopes_u;
544 GpuArray<Real,AMREX_SPACEDIM> slopes_v;
545 GpuArray<Real,AMREX_SPACEDIM> slopes_w;
547 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);
548 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);
549 slopes_w =
erf_calc_slopes_eb_Dirichlet (
dx,
dy,
dz, i, j, k, bcent_eb, Dirichlet_w, w_arr, w_volcent, w_cellflg);
551 Real dudx = slopes_u[0];
552 Real dudy = slopes_u[1];
553 Real dudz = slopes_u[2];
554 Real dvdx = slopes_v[0];
555 Real dvdy = slopes_v[1];
556 Real dvdz = slopes_v[2];
557 Real dwdx = slopes_w[0];
558 Real dwdy = slopes_w[1];
559 Real dwdz = slopes_w[2];
561 Real tau33_eb = ( dwdz - ( dudx + dvdy + dwdz ) /
three );
567 dwdn = - mu_eff * (nx * tau13_eb + ny * tau23_eb + nz * tau33_eb);
569 }
else if (l_surface_layer) {
571 Real tbx_x, tbx_y, tbx_z, tby_x, tby_y, tby_z;
574 Real tau11_eb = ( dudx - ( dudx + dvdy + dwdz ) /
three );
575 Real tau22_eb = ( dvdy - ( dudx + dvdy + dwdz ) /
three );
578 Real tauzz = mu_eff * ( nx*nx*tau11_eb + ny*ny*tau22_eb + nz*nz*tau33_eb
579 +
two * (nx*ny*tau12_eb + ny*nz*tau23_eb + nx*nz*tau13_eb ));
581 dwdn = - tbx_z * w_tau_eb13(i,j,k) - tby_z * w_tau_eb23(i,j,k) - nz * tauzz;
586 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 zero
Definition: ERF_Constants.H:8
constexpr amrex::Real myhalf
Definition: ERF_Constants.H:13
@ 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
@ tau13
Definition: ERF_DataStruct.H:38
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:24
const Real dx
Definition: ERF_InitCustomPert_ABL.H:23
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:1149
@ xvel
Definition: ERF_IndexDefines.H:177
@ zvel
Definition: ERF_IndexDefines.H:179
@ yvel
Definition: ERF_IndexDefines.H:178
@ dz
Definition: ERF_AdvanceWSM6.cpp:104
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:1394
DiffChoice diffChoice
Diffusion-related options.
Definition: ERF_DataStruct.H:1390