32 using namespace amrex;
33 Real v_tmp_j, v_tmp_jp1;
34 Real w_tmp_k, w_tmp_kp1;
35 Real y_hat_j, y_hat_jp1;
36 Real z_hat_k, z_hat_kp1;
41 v_tmp_j = v_ad(ic,j,k);
42 y_hat_j = yzlo(ic,j,k);
49 int ii = (fcy(ic,jc,kc,0) <=
amrex::Real(0.0)) ? ic-1 : ic+1;
50 int kk = (fcy(ic,jc,kc,1) <=
amrex::Real(0.0)) ? kc-1 : kc+1;
55 Real x0 = fcy(ic,jc,kc,0);
56 Real z0 = fcy(ic,jc,kc,1);
57 Real v0 = v_ad(ic,jc,kc );
Real h0 = yzlo(ic,jc,kc);
59 Real x1 = fcy(ii,jc,kc,0)+xoff;
60 Real z1 = fcy(ii,jc,kc,1);
61 Real v1 = v_ad(ii,jc,kc );
Real h1 = yzlo(ii,jc,kc);
63 Real x2 = fcy(ic,jc,kk,0);
64 Real z2 = fcy(ic,jc,kk,1)+zoff;
65 Real v2 = v_ad(ic,jc,kk );
Real h2 = yzlo(ic,jc,kk);
67 Real x3 = fcy(ii,jc,kk,0)+xoff;
68 Real z3 = fcy(ii,jc,kk,1)+zoff;
69 Real v3 = v_ad(ii,jc,kk );
Real h3 = yzlo(ii,jc,kk);
71 v_tmp_j = EB_interp_in_quad(
amrex::Real(0.),
amrex::Real(0.),v0,v1,v2,v3,x0,z0,x1,z1,x2,z2,x3,z3);
72 y_hat_j = EB_interp_in_quad(
amrex::Real(0.),
amrex::Real(0.),h0,h1,h2,h3,x0,z0,x1,z1,x2,z2,x3,z3);
78 v_tmp_jp1 = v_ad(ic,j+1,k);
79 y_hat_jp1 = yzlo(ic,j+1,k);
86 int ii = (fcy(ic,jc,kc,0) <=
amrex::Real(0.0)) ? ic-1 : ic+1;
87 int kk = (fcy(ic,jc,kc,1) <=
amrex::Real(0.0)) ? kc-1 : kc+1;
92 Real x0 = fcy(ic,jc,kc,0);
93 Real z0 = fcy(ic,jc,kc,1);
94 Real v0 = v_ad(ic,jc,kc );
Real h0 = yzlo(ic,jc,kc);
96 Real x1 = fcy(ii,jc,kc,0)+xoff;
97 Real z1 = fcy(ii,jc,kc,1);
98 Real v1 = v_ad(ii,jc,kc );
Real h1 = yzlo(ii,jc,kc);
100 Real x2 = fcy(ic,jc,kk,0);
101 Real z2 = fcy(ic,jc,kk,1)+zoff;
102 Real v2 = v_ad(ic,jc,kk );
Real h2 = yzlo(ic,jc,kk);
104 Real x3 = fcy(ii,jc,kk,0)+xoff;
105 Real z3 = fcy(ii,jc,kk,1)+zoff;
106 Real v3 = v_ad(ii,jc,kk );
Real h3 = yzlo(ii,jc,kk);
108 v_tmp_jp1 = EB_interp_in_quad(
amrex::Real(0.),
amrex::Real(0.),v0,v1,v2,v3,x0,z0,x1,z1,x2,z2,x3,z3);
109 y_hat_jp1 = EB_interp_in_quad(
amrex::Real(0.),
amrex::Real(0.),h0,h1,h2,h3,x0,z0,x1,z1,x2,z2,x3,z3);
115 w_tmp_k = w_ad(ic,j,k);
116 z_hat_k = zylo(ic,j,k);
123 int ii = (fcz(ic,jc,kc,0) <=
amrex::Real(0.0)) ? ic-1 : ic+1;
124 int jj = (fcz(ic,jc,kc,1) <=
amrex::Real(0.0)) ? jc-1 : jc+1;
129 Real x0 = fcz(ic,jc,kc,0);
130 Real y0 = fcz(ic,jc,kc,1);
131 Real v0 = w_ad(ic,jc,kc );
Real h0 = zylo(ic,jc,kc);
133 Real x1 = fcz(ii,jc,kc,0)+xoff;
134 Real y1 = fcz(ii,jc,kc,1);
135 Real v1 = w_ad(ii,jc,kc );
Real h1 = zylo(ii,jc,kc);
137 Real x2 = fcz(ic,jj,kc,0);
138 Real y2 = fcz(ic,jj,kc,1)+yoff;
139 Real v2 = w_ad(ic,jj,kc );
Real h2 = zylo(ic,jj,kc);
141 Real x3 = fcz(ii,jj,kc,0)+xoff;
142 Real y3 = fcz(ii,jj,kc,1)+yoff;
143 Real v3 = w_ad(ii,jj,kc );
Real h3 = zylo(ii,jj,kc);
145 w_tmp_k = EB_interp_in_quad(
amrex::Real(0.),
amrex::Real(0.),v0,v1,v2,v3,x0,y0,x1,y1,x2,y2,x3,y3);
146 z_hat_k = EB_interp_in_quad(
amrex::Real(0.),
amrex::Real(0.),h0,h1,h2,h3,x0,y0,x1,y1,x2,y2,x3,y3);
152 w_tmp_kp1 = w_ad(ic,j,k+1);
153 z_hat_kp1 = zylo(ic,j,k+1);
160 int ii = (fcz(ic,jc,kc,0) <=
amrex::Real(0.0)) ? ic-1 : ic+1;
161 int jj = (fcz(ic,jc,kc,1) <=
amrex::Real(0.0)) ? jc-1 : jc+1;
166 Real x0 = fcz(ic,jc,kc,0);
167 Real y0 = fcz(ic,jc,kc,1);
168 Real v0 = w_ad(ic,jc,kc );
Real h0 = zylo(ic,jc,kc);
170 Real x1 = fcz(ii,jc,kc,0)+xoff;
171 Real y1 = fcz(ii,jc,kc,1);
172 Real v1 = w_ad(ii,jc,kc );
Real h1 = zylo(ii,jc,kc);
174 Real x2 = fcz(ic,jj,kc,0);
175 Real y2 = fcz(ic,jj,kc,1)+yoff;
176 Real v2 = w_ad(ic,jj,kc );
Real h2 = zylo(ic,jj,kc);
178 Real x3 = fcz(ii,jj,kc,0)+xoff;
179 Real y3 = fcz(ii,jj,kc,1)+yoff;
180 Real v3 = w_ad(ii,jj,kc );
Real h3 = zylo(ii,jj,kc);
182 w_tmp_kp1 = EB_interp_in_quad(
amrex::Real(0.),
amrex::Real(0.),v0,v1,v2,v3,x0,y0,x1,y1,x2,y2,x3,y3);
183 z_hat_kp1 = EB_interp_in_quad(
amrex::Real(0.),
amrex::Real(0.),h0,h1,h2,h3,x0,y0,x1,y1,x2,y2,x3,y3);
187 Real dudy_l = (y_hat_jp1 - y_hat_j);
190 Real dudz_l = (z_hat_kp1 - z_hat_k);
192 trans_y = v_tmp_l * dudy_l / dy;
193 trans_z = w_tmp_l * dudz_l / dz;
209 using namespace amrex;
210 Real u_tmp_i, u_tmp_ip1;
211 Real w_tmp_k, w_tmp_kp1;
212 Real x_hat_i, x_hat_ip1;
213 Real z_hat_k, z_hat_kp1;
218 u_tmp_i = u_ad(i,jc,k);
219 x_hat_i = xzlo(i,jc,k);
226 int jj = (fcx(ic,jc,kc,0) <=
amrex::Real(0.0)) ? jc-1 : jc+1;
227 int kk = (fcx(ic,jc,kc,1) <=
amrex::Real(0.0)) ? kc-1 : kc+1;
232 Real y0 = fcx(ic,jc,kc,0);
233 Real z0 = fcx(ic,jc,kc,1);
234 Real v0 = u_ad(ic,jc,kc );
Real h0 = xzlo(ic,jc,kc);
236 Real y1 = fcx(ic,jj,kc,0)+yoff;
237 Real z1 = fcx(ic,jj,kc,1);
238 Real v1 = u_ad(ic,jj,kc );
Real h1 = xzlo(ic,jj,kc);
240 Real y2 = fcx(ic,jc,kk,0);
241 Real z2 = fcx(ic,jc,kk,1)+zoff;
242 Real v2 = u_ad(ic,jc,kk );
Real h2 = xzlo(ic,jc,kk);
244 Real y3 = fcx(ic,jj,kk,0)+yoff;
245 Real z3 = fcx(ic,jj,kk,1)+zoff;
246 Real v3 = u_ad(ic,jj,kk );
Real h3 = xzlo(ic,jj,kk);
248 u_tmp_i = EB_interp_in_quad(
amrex::Real(0.),
amrex::Real(0.),v0,v1,v2,v3,y0,z0,y1,z1,y2,z2,y3,z3);
249 x_hat_i = EB_interp_in_quad(
amrex::Real(0.),
amrex::Real(0.),h0,h1,h2,h3,y0,z0,y1,z1,y2,z2,y3,z3);
255 u_tmp_ip1 = u_ad(i+1,jc,k);
256 x_hat_ip1 = xzlo(i+1,jc,k);
263 int jj = (fcx(ic,jc,kc,0) <=
amrex::Real(0.0)) ? jc-1 : jc+1;
264 int kk = (fcx(ic,jc,kc,1) <=
amrex::Real(0.0)) ? kc-1 : kc+1;
269 Real y0 = fcx(ic,jc,kc,0);
270 Real z0 = fcx(ic,jc,kc,1);
271 Real v0 = u_ad(ic,jc,kc );
Real h0 = xzlo(ic,jc,kc);
273 Real y1 = fcx(ic,jj,kc,0)+yoff;
274 Real z1 = fcx(ic,jj,kc,1);
275 Real v1 = u_ad(ic,jj,kc );
Real h1 = xzlo(ic,jj,kc);
277 Real y2 = fcx(ic,jc,kk,0);
278 Real z2 = fcx(ic,jc,kk,1)+zoff;
279 Real v2 = u_ad(ic,jc,kk );
Real h2 = xzlo(ic,jc,kk);
281 Real y3 = fcx(ic,jj,kk,0)+yoff;
282 Real z3 = fcx(ic,jj,kk,1)+zoff;
283 Real v3 = u_ad(ic,jj,kk );
Real h3 = xzlo(ic,jj,kk);
285 u_tmp_ip1 = EB_interp_in_quad(
amrex::Real(0.),
amrex::Real(0.),v0,v1,v2,v3,y0,z0,y1,z1,y2,z2,y3,z3);
286 x_hat_ip1 = EB_interp_in_quad(
amrex::Real(0.),
amrex::Real(0.),h0,h1,h2,h3,y0,z0,y1,z1,y2,z2,y3,z3);
292 w_tmp_k = w_ad(i,jc,k);
293 z_hat_k = zxlo(i,jc,k);
300 int ii = (fcz(ic,jc,kc,0) <=
amrex::Real(0.0)) ? ic-1 : ic+1;
301 int jj = (fcz(ic,jc,kc,1) <=
amrex::Real(0.0)) ? jc-1 : jc+1;
306 Real x0 = fcz(ic,jc,kc,0);
307 Real y0 = fcz(ic,jc,kc,1);
308 Real v0 = w_ad(ic,jc,kc );
Real h0 = zxlo(ic,jc,kc);
310 Real x1 = fcz(ii,jc,kc,0)+xoff;
311 Real y1 = fcz(ii,jc,kc,1);
312 Real v1 = w_ad(ii,jc,kc );
Real h1 = zxlo(ii,jc,kc);
314 Real x2 = fcz(ic,jj,kc,0);
315 Real y2 = fcz(ic,jj,kc,1)+yoff;
316 Real v2 = w_ad(ic,jj,kc );
Real h2 = zxlo(ic,jj,kc);
318 Real x3 = fcz(ii,jj,kc,0)+xoff;
319 Real y3 = fcz(ii,jj,kc,1)+yoff;
320 Real v3 = w_ad(ii,jj,kc );
Real h3 = zxlo(ii,jj,kc);
322 w_tmp_k = EB_interp_in_quad(
amrex::Real(0.),
amrex::Real(0.),v0,v1,v2,v3,x0,y0,x1,y1,x2,y2,x3,y3);
323 z_hat_k = EB_interp_in_quad(
amrex::Real(0.),
amrex::Real(0.),h0,h1,h2,h3,x0,y0,x1,y1,x2,y2,x3,y3);
329 w_tmp_kp1 = w_ad(i,jc,k+1);
330 z_hat_kp1 = zxlo(i,jc,k+1);
337 int ii = (fcz(ic,jc,kc,0) <=
amrex::Real(0.0)) ? ic-1 : ic+1;
338 int jj = (fcz(ic,jc,kc,1) <=
amrex::Real(0.0)) ? jc-1 : jc+1;
343 Real x0 = fcz(ic,jc,kc,0);
344 Real y0 = fcz(ic,jc,kc,1);
345 Real v0 = w_ad(ic,jc,kc );
Real h0 = zxlo(ic,jc,kc);
347 Real x1 = fcz(ii,jc,kc,0)+xoff;
348 Real y1 = fcz(ii,jc,kc,1);
349 Real v1 = w_ad(ii,jc,kc );
Real h1 = zxlo(ii,jc,kc);
351 Real x2 = fcz(ic,jj,kc,0);
352 Real y2 = fcz(ic,jj,kc,1)+yoff;
353 Real v2 = w_ad(ic,jj,kc );
Real h2 = zxlo(ic,jj,kc);
355 Real x3 = fcz(ii,jj,kc,0)+xoff;
356 Real y3 = fcz(ii,jj,kc,1)+yoff;
357 Real v3 = w_ad(ii,jj,kc );
Real h3 = zxlo(ii,jj,kc);
359 w_tmp_kp1 = EB_interp_in_quad(
amrex::Real(0.),
amrex::Real(0.),v0,v1,v2,v3,x0,y0,x1,y1,x2,y2,x3,y3);
360 z_hat_kp1 = EB_interp_in_quad(
amrex::Real(0.),
amrex::Real(0.),h0,h1,h2,h3,x0,y0,x1,y1,x2,y2,x3,y3);
364 Real dudx_l = (x_hat_ip1 - x_hat_i);
367 Real dudz_l = (z_hat_kp1 - z_hat_k);
369 trans_x = u_tmp_l * dudx_l / dx;
370 trans_z = w_tmp_l * dudz_l / dz;
386 using namespace amrex;
387 Real u_tmp_i, u_tmp_ip1;
388 Real v_tmp_j, v_tmp_jp1;
389 Real x_hat_i, x_hat_ip1;
390 Real y_hat_j, y_hat_jp1;
395 u_tmp_i = u_ad(i,j,kc);
396 x_hat_i = xylo(i,j,kc);
403 int jj = (fcx(ic,jc,kc,0) <=
amrex::Real(0.0)) ? jc-1 : jc+1;
404 int kk = (fcx(ic,jc,kc,1) <=
amrex::Real(0.0)) ? kc-1 : kc+1;
409 Real y0 = fcx(ic,jc,kc,0);
410 Real z0 = fcx(ic,jc,kc,1);
411 Real v0 = u_ad(ic,jc,kc );
Real h0 = xylo(ic,jc,kc );
413 Real y1 = fcx(ic,jj,kc,0)+yoff;
414 Real z1 = fcx(ic,jj,kc,1);
415 Real v1 = u_ad(ic,jj,kc );
Real h1 = xylo(ic,jj,kc );
417 Real y2 = fcx(ic,jc,kk,0);
418 Real z2 = fcx(ic,jc,kk,1)+zoff;
419 Real v2 = u_ad(ic,jc,kk );
Real h2 = xylo(ic,jc,kk );
421 Real y3 = fcx(ic,jj,kk,0)+yoff;
422 Real z3 = fcx(ic,jj,kk,1)+zoff;
423 Real v3 = u_ad(ic,jj,kk );
Real h3 = xylo(ic,jj,kk );
425 u_tmp_i = EB_interp_in_quad(
amrex::Real(0.),
amrex::Real(0.),v0,v1,v2,v3,y0,z0,y1,z1,y2,z2,y3,z3);
426 x_hat_i = EB_interp_in_quad(
amrex::Real(0.),
amrex::Real(0.),h0,h1,h2,h3,y0,z0,y1,z1,y2,z2,y3,z3);
432 u_tmp_ip1 = u_ad(i+1,j,kc);
433 x_hat_ip1 = xylo(i+1,j,kc);
440 int jj = (fcx(ic,jc,kc,0) <=
amrex::Real(0.0)) ? jc-1 : jc+1;
441 int kk = (fcx(ic,jc,kc,1) <=
amrex::Real(0.0)) ? kc-1 : kc+1;
446 Real y0 = fcx(ic,jc,kc,0);
447 Real z0 = fcx(ic,jc,kc,1);
448 Real v0 = u_ad(ic,jc,kc );
Real h0 = xylo(ic,jc,kc );
450 Real y1 = fcx(ic,jj,kc,0)+yoff;
451 Real z1 = fcx(ic,jj,kc,1);
452 Real v1 = u_ad(ic,jj,kc );
Real h1 = xylo(ic,jj,kc );
454 Real y2 = fcx(ic,jc,kk,0);
455 Real z2 = fcx(ic,jc,kk,1)+zoff;
456 Real v2 = u_ad(ic,jc,kk );
Real h2 = xylo(ic,jc,kk );
458 Real y3 = fcx(ic,jj,kk,0)+yoff;
459 Real z3 = fcx(ic,jj,kk,1)+zoff;
460 Real v3 = u_ad(ic,jj,kk );
Real h3 = xylo(ic,jj,kk );
462 u_tmp_ip1 = EB_interp_in_quad(
amrex::Real(0.),
amrex::Real(0.),v0,v1,v2,v3,y0,z0,y1,z1,y2,z2,y3,z3);
463 x_hat_ip1 = EB_interp_in_quad(
amrex::Real(0.),
amrex::Real(0.),h0,h1,h2,h3,y0,z0,y1,z1,y2,z2,y3,z3);
469 v_tmp_j = v_ad(i,j,kc);
470 y_hat_j = yxlo(i,j,kc);
477 int ii = (fcy(ic,jc,kc,0) <=
amrex::Real(0.0)) ? ic-1 : ic+1;
478 int kk = (fcy(ic,jc,kc,1) <=
amrex::Real(0.0)) ? kc-1 : kc+1;
483 Real x0 = fcy(ic,jc,kc,0);
484 Real z0 = fcy(ic,jc,kc,1);
485 Real v0 = v_ad(ic,jc,kc );
Real h0 = yxlo(ic,jc,kc);
487 Real x1 = fcy(ii,jc,kc,0)+xoff;
488 Real z1 = fcy(ii,jc,kc,1);
489 Real v1 = v_ad(ii,jc,kc );
Real h1 = yxlo(ii,jc,kc);
491 Real x2 = fcy(ic,jc,kk,0);
492 Real z2 = fcy(ic,jc,kk,1)+zoff;
493 Real v2 = v_ad(ic,jc,kk );
Real h2 = yxlo(ic,jc,kk);
495 Real x3 = fcy(ii,jc,kk,0)+xoff;
496 Real z3 = fcy(ii,jc,kk,1)+zoff;
497 Real v3 = v_ad(ii,jc,kk );
Real h3 = yxlo(ii,jc,kk);
499 v_tmp_j = EB_interp_in_quad(
amrex::Real(0.),
amrex::Real(0.),v0,v1,v2,v3,x0,z0,x1,z1,x2,z2,x3,z3);
500 y_hat_j = EB_interp_in_quad(
amrex::Real(0.),
amrex::Real(0.),h0,h1,h2,h3,x0,z0,x1,z1,x2,z2,x3,z3);
506 v_tmp_jp1 = v_ad(i,j+1,kc);
507 y_hat_jp1 = yxlo(i,j+1,kc);
514 int ii = (fcy(ic,jc,kc,0) <=
amrex::Real(0.0)) ? ic-1 : ic+1;
515 int kk = (fcy(ic,jc,kc,1) <=
amrex::Real(0.0)) ? kc-1 : kc+1;
520 Real x0 = fcy(ic,jc,kc,0);
521 Real z0 = fcy(ic,jc,kc,1);
522 Real v0 = v_ad(ic,jc,kc );
Real h0 = yxlo(ic,jc,kc);
524 Real x1 = fcy(ii,jc,kc,0)+xoff;
525 Real z1 = fcy(ii,jc,kc,1);
526 Real v1 = v_ad(ii,jc,kc );
Real h1 = yxlo(ii,jc,kc);
528 Real x2 = fcy(ic,jc,kk,0);
529 Real z2 = fcy(ic,jc,kk,1)+zoff;
530 Real v2 = v_ad(ic,jc,kk );
Real h2 = yxlo(ic,jc,kk);
532 Real x3 = fcy(ii,jc,kk,0)+xoff;
533 Real z3 = fcy(ii,jc,kk,1)+zoff;
534 Real v3 = v_ad(ii,jc,kk );
Real h3 = yxlo(ii,jc,kk);
536 v_tmp_jp1 = EB_interp_in_quad(
amrex::Real(0.),
amrex::Real(0.),v0,v1,v2,v3,x0,z0,x1,z1,x2,z2,x3,z3);
537 y_hat_jp1 = EB_interp_in_quad(
amrex::Real(0.),
amrex::Real(0.),h0,h1,h2,h3,x0,z0,x1,z1,x2,z2,x3,z3);
541 Real dudx_l = (x_hat_ip1 - x_hat_i);
544 Real dudy_l = (y_hat_jp1 - y_hat_j);
546 trans_x = u_tmp_l * dudx_l / dx;
547 trans_y = v_tmp_l * dudy_l / dy;
AMREX_GPU_HOST_DEVICE AMREX_INLINE void create_transverse_terms_for_zface(int i, int j, int kc, amrex::Array4< amrex::Real const > const &u_ad, amrex::Array4< amrex::Real const > const &v_ad, amrex::Array4< amrex::Real const > const &xylo, amrex::Array4< amrex::Real const > const &yxlo, amrex::Array4< amrex::Real const > const &apx, amrex::Array4< amrex::Real const > const &apy, amrex::Array4< amrex::Real const > const &fcx, amrex::Array4< amrex::Real const > const &fcy, amrex::Real &trans_x, amrex::Real &trans_y, const amrex::Real dx, const amrex::Real dy)
Definition hydro_ebgodunov_transverse_3D_K.H:374