181 BL_PROFILE_REGION(
"realbdy_compute_interior_ghost_RHS()");
183 Real delta_t =
static_cast<Real>(delta_t_d);
192 Array4<Real> bdatxlo, bdatxhi, bdatylo, bdatyhi;
193 Array4<Real> btenxlo, btenxhi, btenylo, btenyhi;
196 Vector<std::unique_ptr<PlaneVector>>& bndry_data = m_r2d->interp_in_time(time);
197 bdatxlo = (*bndry_data[0])[0].array();
198 bdatylo = (*bndry_data[1])[0].array();
199 bdatxhi = (*bndry_data[3])[0].array();
200 bdatyhi = (*bndry_data[4])[0].array();
202 Vector<std::unique_ptr<PlaneVector>>& bndry_tend = m_r2d->get_tendency(time);
203 btenxlo = (*bndry_tend[0])[0].array();
204 btenylo = (*bndry_tend[1])[0].array();
205 btenxhi = (*bndry_tend[3])[0].array();
206 btenyhi = (*bndry_tend[4])[0].array();
210 Real F1 =
one/(nudge_factor*delta_t);
211 Real F1_rho =
one/((bdy_rho_nudge_factor >
zero ? bdy_rho_nudge_factor : nudge_factor) * delta_t);
214 double dT_d = bdy_time_interval;
216 int n_time =
static_cast<int>( (time-start_bdy_time) / dT_d);
217 int n_time_p1 = n_time + 1;
218 Real alpha =
static_cast<Real>(((time-start_bdy_time) - n_time * dT_d) / dT_d);
221 if (time >= final_bdy_time) {
222 n_time =
static_cast<int>( (final_bdy_time - start_bdy_time)/ dT_d);
231 FArrayBox U_xlo, U_xhi, U_ylo, U_yhi;
232 FArrayBox V_xlo, V_xhi, V_ylo, V_yhi;
233 FArrayBox T_xlo, T_xhi, T_ylo, T_yhi;
234 FArrayBox R_xlo, R_xhi, R_ylo, R_yhi;
235 Array4<Real> r_xlo_arr, r_xhi_arr, r_ylo_arr, r_yhi_arr;
255 for (
int ivar(ivarU); ivar < BdyEnd; ivar++) {
256 int ivar_idx = var_map[ivar];
257 Box domain = geom.Domain();
258 auto ixtype = S_cur_data[ivar_idx].boxArray().ixType();
259 domain.convert(ixtype);
264 Box gdom(domain); gdom.grow(ng_vect);
265 Box bx_xlo, bx_xhi, bx_ylo, bx_yhi;
273 U_xlo.resize(bx_xlo,1,The_Async_Arena()); U_xhi.resize(bx_xhi,1,The_Async_Arena());
274 U_ylo.resize(bx_ylo,1,The_Async_Arena()); U_yhi.resize(bx_yhi,1,The_Async_Arena());
275 }
else if (ivar == ivarV) {
276 V_xlo.resize(bx_xlo,1,The_Async_Arena()); V_xhi.resize(bx_xhi,1,The_Async_Arena());
277 V_ylo.resize(bx_ylo,1,The_Async_Arena()); V_yhi.resize(bx_yhi,1,The_Async_Arena());
278 }
else if (ivar == ivarT){
279 T_xlo.resize(bx_xlo,1,The_Async_Arena()); T_xhi.resize(bx_xhi,1,The_Async_Arena());
280 T_ylo.resize(bx_ylo,1,The_Async_Arena()); T_yhi.resize(bx_yhi,1,The_Async_Arena());
286 if (use_wrf_bdy_density) {
287 Box domain = geom.Domain();
288 const IntVect ng_vect(0);
289 Box bx_xlo, bx_xhi, bx_ylo, bx_yhi;
291 bx_xlo, bx_xhi, bx_ylo, bx_yhi, ng_vect,
true);
292 R_xlo.resize(bx_xlo, 1, The_Async_Arena());
293 R_xhi.resize(bx_xhi, 1, The_Async_Arena());
294 R_ylo.resize(bx_ylo, 1, The_Async_Arena());
295 R_yhi.resize(bx_yhi, 1, The_Async_Arena());
297 const auto& r_xlo_n = bdy_data_xlo[n_time][
WRFBdyVars::R].const_array();
298 const auto& r_xlo_np1 = bdy_data_xlo[n_time_p1][
WRFBdyVars::R].const_array();
299 const auto& r_xhi_n = bdy_data_xhi[n_time][
WRFBdyVars::R].const_array();
300 const auto& r_xhi_np1 = bdy_data_xhi[n_time_p1][
WRFBdyVars::R].const_array();
301 const auto& r_ylo_n = bdy_data_ylo[n_time][
WRFBdyVars::R].const_array();
302 const auto& r_ylo_np1 = bdy_data_ylo[n_time_p1][
WRFBdyVars::R].const_array();
303 const auto& r_yhi_n = bdy_data_yhi[n_time][
WRFBdyVars::R].const_array();
304 const auto& r_yhi_np1 = bdy_data_yhi[n_time_p1][
WRFBdyVars::R].const_array();
305 const auto& rbx = lbound(domain);
306 const auto&
rhi = ubound(domain);
307 r_xlo_arr = R_xlo.array();
308 r_xhi_arr = R_xhi.array();
309 r_ylo_arr = R_ylo.array();
310 r_yhi_arr = R_yhi.array();
313 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
314 int ii = amrex::max(i, rbx.x); ii = amrex::min(ii, rbx.x + width - 1);
315 int jj = amrex::max(j, rbx.y); jj = amrex::min(jj,
rhi.y);
316 r_xlo_arr(i,j,k) = oma*r_xlo_n(ii,jj,k) +
alpha*r_xlo_np1(ii,jj,k);
318 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
319 int ii = amrex::max(i,
rhi.x - width + 1); ii = amrex::min(ii,
rhi.x);
320 int jj = amrex::max(j, rbx.y); jj = amrex::min(jj,
rhi.y);
321 r_xhi_arr(i,j,k) = oma*r_xhi_n(ii,jj,k) +
alpha*r_xhi_np1(ii,jj,k);
324 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
325 int ii = amrex::max(i, rbx.x); ii = amrex::min(ii,
rhi.x);
326 int jj = amrex::max(j, rbx.y); jj = amrex::min(jj, rbx.y + width - 1);
327 r_ylo_arr(i,j,k) = oma*r_ylo_n(ii,jj,k) +
alpha*r_ylo_np1(ii,jj,k);
329 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
330 int ii = amrex::max(i, rbx.x); ii = amrex::min(ii,
rhi.x);
331 int jj = amrex::max(j,
rhi.y - width + 1); jj = amrex::min(jj,
rhi.y);
332 r_yhi_arr(i,j,k) = oma*r_yhi_n(ii,jj,k) +
alpha*r_yhi_np1(ii,jj,k);
345 for (
int ivar(ivarU); ivar < BdyEnd; ivar++) {
346 int ivar_idx = var_map[ivar];
347 Box domain = geom.Domain();
348 auto ixtype = S_cur_data[ivar_idx].boxArray().ixType();
349 domain.convert(ixtype);
350 const auto& dom_lo = lbound(domain);
351 const auto& dom_hi = ubound(domain);
354 int bdy_comp = bnd_map[ivar];
355 const auto& dom_cc_lo = lbound(geom.Domain());
356 const auto& dom_cc_hi = ubound(geom.Domain());
359 #pragma omp parallel if (Gpu::notInLaunchRegion())
361 for (MFIter mfi(S_cur_data[ivar_idx],TilingIfNotGPU()); mfi.isValid(); ++mfi) {
365 Box gtbx = grow(mfi.tilebox(ixtype.toIntVect()),ng_vect);
366 Box tbx_xlo, tbx_xhi, tbx_ylo, tbx_yhi;
372 Array4<Real> arr_xlo; Array4<Real> arr_xhi;
373 Array4<Real> arr_ylo; Array4<Real> arr_yhi;
375 arr_xlo = U_xlo.array(); arr_xhi = U_xhi.array();
376 arr_ylo = U_ylo.array(); arr_yhi = U_yhi.array();
377 }
else if (ivar == ivarV) {
378 arr_xlo = V_xlo.array(); arr_xhi = V_xhi.array();
379 arr_ylo = V_ylo.array(); arr_yhi = V_yhi.array();
380 }
else if (ivar == ivarT){
381 arr_xlo = T_xlo.array(); arr_xhi = T_xhi.array();
382 arr_ylo = T_ylo.array(); arr_yhi = T_yhi.array();
388 const auto& bdatxlo_n = bdy_data_xlo[n_time ][ivar].const_array();
389 const auto& bdatxlo_np1 = bdy_data_xlo[n_time_p1][ivar].const_array();
390 const auto& bdatxhi_n = bdy_data_xhi[n_time ][ivar].const_array();
391 const auto& bdatxhi_np1 = bdy_data_xhi[n_time_p1][ivar].const_array();
392 const auto& bdatylo_n = bdy_data_ylo[n_time ][ivar].const_array();
393 const auto& bdatylo_np1 = bdy_data_ylo[n_time_p1][ivar].const_array();
394 const auto& bdatyhi_n = bdy_data_yhi[n_time ][ivar].const_array();
395 const auto& bdatyhi_np1 = bdy_data_yhi[n_time_p1][ivar].const_array();
404 const auto rxlo = r_xlo_arr;
405 const auto rxhi = r_xhi_arr;
406 const auto rylo = r_ylo_arr;
407 const auto ryhi = r_yhi_arr;
409 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
411 int ii = std::max(i , dom_lo.x); ii = std::min(ii, dom_lo.x+
offset);
412 int jj = std::max(j , dom_lo.y); jj = std::min(jj, dom_hi.y);
415 if (use_wrf_bdy_density && ivar==ivarU) {
416 int im = amrex::max(i-1, dom_lo.x);
417 rho_interp =
myhalf * (rxlo(im,j,k) + rxlo(amrex::max(i, dom_lo.x),j,k));
418 }
else if (use_wrf_bdy_density && ivar==ivarV) {
419 int jm = amrex::max(j-1, dom_lo.y);
420 rho_interp =
myhalf * (rxlo(i,jm,k) + rxlo(i,amrex::max(j, dom_lo.y),k));
421 }
else if (use_wrf_bdy_density) {
422 rho_interp = rxlo(i,j,k);
423 }
else if (ivar==ivarU) {
424 rho_interp =
myhalf * ( r_arr(i-1,j ,k) + r_arr(i,j,k) );
425 }
else if (ivar==ivarV) {
426 rho_interp =
myhalf * ( r_arr(i ,j-1,k) + r_arr(i,j,k) );
428 rho_interp = r_arr(i,j,k);
432 int ii2 = std::min(std::max(i , dom_cc_lo.x), dom_cc_hi.x);
433 int jj2 = std::min(std::max(j , dom_cc_lo.y), dom_cc_hi.y);
434 arr_xlo(i,j,k) = rho_interp * bdatxlo(ii2,jj2,k,bdy_comp);
436 arr_xlo(i,j,k) = rho_interp * ( oma * bdatxlo_n (ii,jj,k,0)
437 +
alpha * bdatxlo_np1(ii,jj,k,0) );
440 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
442 int ii = std::max(i , dom_hi.x-
offset); ii = std::min(ii, dom_hi.x);
443 int jj = std::max(j , dom_lo.y); jj = std::min(jj, dom_hi.y);
446 if (use_wrf_bdy_density && ivar==ivarU) {
447 int im = amrex::max(i-1, dom_lo.x);
448 rho_interp =
myhalf * (rxhi(im,j,k) + rxhi(amrex::max(i, dom_lo.x),j,k));
449 }
else if (use_wrf_bdy_density && ivar==ivarV) {
450 int jm = amrex::max(j-1, dom_lo.y);
451 rho_interp =
myhalf * (rxhi(i,jm,k) + rxhi(i,amrex::max(j, dom_lo.y),k));
452 }
else if (use_wrf_bdy_density) {
453 rho_interp = rxhi(i,j,k);
454 }
else if (ivar==ivarU) {
455 rho_interp =
myhalf * ( r_arr(i-1,j ,k) + r_arr(i,j,k) );
456 }
else if (ivar==ivarV) {
457 rho_interp =
myhalf * ( r_arr(i ,j-1,k) + r_arr(i,j,k) );
459 rho_interp = r_arr(i,j,k);
463 int ii2 = std::min(std::max(i , dom_cc_lo.x), dom_cc_hi.x);
464 int jj2 = std::min(std::max(j , dom_cc_lo.y), dom_cc_hi.y);
465 arr_xhi(i,j,k) = rho_interp * bdatxhi(ii2,jj2,k,bdy_comp);
467 arr_xhi(i,j,k) = rho_interp * ( oma * bdatxhi_n (ii,jj,k,0)
468 +
alpha * bdatxhi_np1(ii,jj,k,0) );
473 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
475 int ii = std::max(i , dom_lo.x); ii = std::min(ii, dom_hi.x);
476 int jj = std::max(j , dom_lo.y); jj = std::min(jj, dom_lo.y+
offset);
479 if (use_wrf_bdy_density && ivar==ivarU) {
480 int im = amrex::max(i-1, dom_lo.x);
481 rho_interp =
myhalf * (rylo(im,j,k) + rylo(amrex::max(i, dom_lo.x),j,k));
482 }
else if (use_wrf_bdy_density && ivar==ivarV) {
483 int jm = amrex::max(j-1, dom_lo.y);
484 rho_interp =
myhalf * (rylo(i,jm,k) + rylo(i,amrex::max(j, dom_lo.y),k));
485 }
else if (use_wrf_bdy_density) {
486 rho_interp = rylo(i,j,k);
487 }
else if (ivar==ivarU) {
488 rho_interp =
myhalf * ( r_arr(i-1,j ,k) + r_arr(i,j,k) );
489 }
else if (ivar==ivarV) {
490 rho_interp =
myhalf * ( r_arr(i ,j-1,k) + r_arr(i,j,k) );
492 rho_interp = r_arr(i,j,k);
496 int ii2 = std::min(std::max(i , dom_cc_lo.x), dom_cc_hi.x);
497 int jj2 = std::min(std::max(j , dom_cc_lo.y), dom_cc_hi.y);
498 arr_ylo(i,j,k) = rho_interp * bdatylo(ii2,jj2,k,bdy_comp);
500 arr_ylo(i,j,k) = rho_interp * ( oma * bdatylo_n (ii,jj,k,0)
501 +
alpha * bdatylo_np1(ii,jj,k,0) );
504 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
506 int ii = std::max(i , dom_lo.x); ii = std::min(ii, dom_hi.x);
507 int jj = std::max(j , dom_hi.y-
offset); jj = std::min(jj, dom_hi.y);
510 if (use_wrf_bdy_density && ivar==ivarU) {
511 int im = amrex::max(i-1, dom_lo.x);
512 rho_interp =
myhalf * (ryhi(im,j,k) + ryhi(amrex::max(i, dom_lo.x),j,k));
513 }
else if (use_wrf_bdy_density && ivar==ivarV) {
514 int jm = amrex::max(j-1, dom_lo.y);
515 rho_interp =
myhalf * (ryhi(i,jm,k) + ryhi(i,amrex::max(j, dom_lo.y),k));
516 }
else if (use_wrf_bdy_density) {
517 rho_interp = ryhi(i,j,k);
518 }
else if (ivar==ivarU) {
519 rho_interp =
myhalf * ( r_arr(i-1,j ,k) + r_arr(i,j,k) );
520 }
else if (ivar==ivarV) {
521 rho_interp =
myhalf * ( r_arr(i ,j-1,k) + r_arr(i,j,k) );
523 rho_interp = r_arr(i,j,k);
527 int ii2 = std::min(std::max(i , dom_cc_lo.x), dom_cc_hi.x);
528 int jj2 = std::min(std::max(j , dom_cc_lo.y), dom_cc_hi.y);
529 arr_yhi(i,j,k) = rho_interp * bdatyhi(ii2,jj2,k,bdy_comp);
531 arr_yhi(i,j,k) = rho_interp * ( oma * bdatyhi_n (ii,jj,k,0)
532 +
alpha * bdatyhi_np1(ii,jj,k,0) );
541 auto dx = geom.CellSizeArray();
542 auto ProbLo = geom.ProbLoArray();
543 auto ProbHi = geom.ProbHiArray();
545 for (
int ivar(ivarU); ivar < BdyEnd; ivar++) {
546 int ivar_idx = ivar_map[ivar];
547 int icomp = comp_map[ivar];
549 Box domain = geom.Domain();
550 domain.convert(S_cur_data[ivar_idx].boxArray().ixType());
554 #pragma omp parallel if (Gpu::notInLaunchRegion())
556 for (MFIter mfi(S_cur_data[ivar_idx],TilingIfNotGPU()); mfi.isValid(); ++mfi)
558 Box tbx = mfi.tilebox();
559 Box tbx_xlo, tbx_xhi, tbx_ylo, tbx_yhi;
565 Array4<Real> rhs_arr; Array4<Real> data_arr;
566 Array4<Real> arr_xlo; Array4<Real> arr_xhi;
567 Array4<Real> arr_ylo; Array4<Real> arr_yhi;
569 arr_xlo = U_xlo.array(); arr_xhi = U_xhi.array();
570 arr_ylo = U_ylo.array(); arr_yhi = U_yhi.array();
573 }
else if (ivar == ivarV) {
574 arr_xlo = V_xlo.array(); arr_xhi = V_xhi.array();
575 arr_ylo = V_ylo.array(); arr_yhi = V_yhi.array();
578 }
else if (ivar == ivarT){
579 arr_xlo = T_xlo.array(); arr_xhi = T_xhi.array();
580 arr_ylo = T_ylo.array(); arr_yhi = T_yhi.array();
588 width,
dx, ProbLo, ProbHi, F1,
589 tbx_xlo , tbx_xhi , tbx_ylo , tbx_yhi ,
590 arr_xlo , arr_xhi , arr_ylo , arr_yhi ,
591 data_arr, rhs_arr , c_p,
rdOcp);
595 if (use_wrf_bdy_density) {
596 for (MFIter mfi(S_cur_data[
IntVars::cons], TilingIfNotGPU()); mfi.isValid(); ++mfi) {
597 Box domain = geom.Domain();
598 Box tbx_xlo, tbx_xhi, tbx_ylo, tbx_yhi;
600 tbx_xlo, tbx_xhi, tbx_ylo, tbx_yhi);
602 tbx_xlo, tbx_xhi, tbx_ylo, tbx_yhi,
603 r_xlo_arr, r_xhi_arr, r_ylo_arr, r_yhi_arr,
611 Box domain = geom.Domain();
612 Box domainx = convert(domain, IntVect(1,0,0));
613 Box domainy = convert(domain, IntVect(0,1,0));
615 int ilo = domainx.smallEnd(0);
616 int ihi = domainx.bigEnd(0);
617 int jlo = domainy.smallEnd(1);
618 int jhi = domainy.bigEnd(1);
621 #pragma omp parallel if (Gpu::notInLaunchRegion())
623 for (MFIter mfi(S_cur_data[
IntVars::cons],TilingIfNotGPU()); mfi.isValid(); ++mfi)
625 Box tbx = mfi.nodaltilebox(0);
627 if (tbx.smallEnd(0) == ilo) {
628 tbx_lo = makeSlab(tbx,0,ilo);
630 if (tbx.bigEnd(0) == ihi) {
631 tbx_hi = makeSlab(tbx,0,ihi);
634 Box tby = mfi.nodaltilebox(1);
636 if (tby.smallEnd(1) == jlo) {
637 tby_lo = makeSlab(tby,1,jlo);
639 if (tby.bigEnd(1) == jhi) {
640 tby_hi = makeSlab(tby,1,jhi);
646 Array4<const Real> rhs_cons = S_rhs[
IntVars::cons].const_array(mfi);
647 Array4<const Real> cons_arr = S_cur_data[
IntVars::cons].const_array(mfi);
649 const auto& bdatxlo_n = bdy_data_xlo[n_time ][ivarU].const_array();
650 const auto& bdatxlo_np1 = bdy_data_xlo[n_time_p1][ivarU].const_array();
651 const auto& bdatxhi_n = bdy_data_xhi[n_time ][ivarU].const_array();
652 const auto& bdatxhi_np1 = bdy_data_xhi[n_time_p1][ivarU].const_array();
654 const auto& bdatylo_n = bdy_data_ylo[n_time ][ivarV].const_array();
655 const auto& bdatylo_np1 = bdy_data_ylo[n_time_p1][ivarV].const_array();
656 const auto& bdatyhi_n = bdy_data_yhi[n_time ][ivarV].const_array();
657 const auto& bdatyhi_np1 = bdy_data_yhi[n_time_p1][ivarV].const_array();
659 Real dT =
static_cast<Real>(bdy_time_interval);
662 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
664 Real rho_tend = rhs_cons(i,j,k);
665 Real rho_val =
Real(0.5) * (cons_arr(i,j,k) + cons_arr(i-1,j,k));
671 u_tend = (bdatxlo_np1(i,j,k) - bdatxlo_n(i,j,k)) / dT;
672 u_val = oma * bdatxlo_n(i,j,k) +
alpha * bdatxlo_np1(i,j,k);
674 rhs_xmom(i,j,k) = rho_val * u_tend + u_val * rho_tend;
676 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
681 Real rho_tend = rhs_cons(i-1,j,k);
682 Real rho_val =
Real(0.5) * (cons_arr(i,j,k) + cons_arr(i-1,j,k));
688 u_tend = (bdatxhi_np1(i,j,k) - bdatxhi_n(i,j,k)) / dT;
689 u_val = oma * bdatxhi_n(i,j,k) +
alpha * bdatxhi_np1(i,j,k);
691 rhs_xmom(i,j,k) = rho_val * u_tend + u_val * rho_tend;
695 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
697 Real rho_tend = rhs_cons(i,j,k);
698 Real rho_val =
Real(0.5) * (cons_arr(i,j,k) + cons_arr(i,j-1,k));
704 v_tend = (bdatylo_np1(i,j,k) - bdatylo_n(i,j,k)) / dT;
705 v_val = oma * bdatylo_n(i,j,k) +
alpha * bdatylo_np1(i,j,k);
707 rhs_ymom(i,j,k) = rho_val * v_tend + v_val * rho_tend;
709 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept
714 Real rho_tend = rhs_cons(i,j-1,k);
715 Real rho_val =
Real(0.5) * (cons_arr(i,j,k) + cons_arr(i,j-1,k));
721 v_tend = (bdatyhi_np1(i,j,k) - bdatyhi_n(i,j,k)) / dT;
722 v_val = oma * bdatyhi_n(i,j,k) +
alpha * bdatyhi_np1(i,j,k);
724 rhs_ymom(i,j,k) = rho_val * v_tend + v_val * rho_tend;
#define Rho_comp
Definition: ERF_IndexDefines.H:36
#define RhoTheta_comp
Definition: ERF_IndexDefines.H:37
const Real dx
Definition: ERF_InitCustomPert_ABL.H:23
const Real rdOcp
Definition: ERF_InitCustomPert_Bomex.H:16
void realbdy_interior_bxs_xy(const Box &bx, const Box &domain, const int &width, Box &bx_xlo, Box &bx_xhi, Box &bx_ylo, Box &bx_yhi, const IntVect &ng_vect, const bool get_int_ng)
Definition: ERF_InteriorGhostCells.cpp:23
AMREX_FORCE_INLINE IntVect offset(const int face_dir, const int normal)
Definition: ERF_ReadBndryPlanes.cpp:31
AMREX_GPU_HOST AMREX_FORCE_INLINE void realbdy_compute_relaxation(const int &icomp, const int &num_var, const int &width, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &dx, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &ProbLo, const amrex::GpuArray< amrex::Real, AMREX_SPACEDIM > &ProbHi, const amrex::Real &F1, const amrex::Box &bx_xlo, const amrex::Box &bx_xhi, const amrex::Box &bx_ylo, const amrex::Box &bx_yhi, const amrex::Array4< const amrex::Real > &arr_xlo, const amrex::Array4< const amrex::Real > &arr_xhi, const amrex::Array4< const amrex::Real > &arr_ylo, const amrex::Array4< const amrex::Real > &arr_yhi, const amrex::Array4< const amrex::Real > &data_arr, const amrex::Array4< amrex::Real > &rhs_arr, const amrex::Real &c_p, const amrex::Real &rdOcp, const int bdy_moist_nudge_type=0)
Definition: ERF_Utils.H:242
@ RhoTheta_bc_comp
Definition: ERF_IndexDefines.H:88
@ yvel_bc
Definition: ERF_IndexDefines.H:103
@ xvel_bc
Definition: ERF_IndexDefines.H:102
@ U
Definition: ERF_IndexDefines.H:123
@ NumTypes
Definition: ERF_IndexDefines.H:128
@ T
Definition: ERF_IndexDefines.H:125
@ V
Definition: ERF_IndexDefines.H:124
@ xvel
Definition: ERF_IndexDefines.H:177
@ cons
Definition: ERF_IndexDefines.H:176
@ yvel
Definition: ERF_IndexDefines.H:178
@ R
Definition: ERF_IndexDefines.H:138
@ rhi
Definition: ERF_WSM6.H:250
real(kind=kind_phys), parameter, public alpha
Definition: ERF_module_mp_wsm6.F90:44