Function for computing the strain rates without terrain.
52 Box domain_xy = convert(domain, tbxxy.ixType());
53 Box domain_xz = convert(domain, tbxxz.ixType());
54 Box domain_yz = convert(domain, tbxyz.ixType());
56 const auto&
dom_lo = lbound(domain);
57 const auto&
dom_hi = ubound(domain);
63 xl_v_dir = ( xl_v_dir && (tbxxy.smallEnd(0) == domain_xy.smallEnd(0)) );
68 xh_v_dir = ( xh_v_dir && (tbxxy.bigEnd(0) == domain_xy.bigEnd(0)) );
73 xl_w_dir = ( xl_w_dir && (tbxxz.smallEnd(0) == domain_xz.smallEnd(0)) );
78 xh_w_dir = ( xh_w_dir && (tbxxz.bigEnd(0) == domain_xz.bigEnd(0)) );
84 yl_u_dir = ( yl_u_dir && (tbxxy.smallEnd(1) == domain_xy.smallEnd(1)) );
89 yh_u_dir = ( yh_u_dir && (tbxxy.bigEnd(1) == domain_xy.bigEnd(1)) );
94 yl_w_dir = ( yl_w_dir && (tbxyz.smallEnd(1) == domain_yz.smallEnd(1)) );
99 yh_w_dir = ( yh_w_dir && (tbxyz.bigEnd(1) == domain_yz.bigEnd(1)) );
104 zl_u_dir = ( zl_u_dir && (tbxxz.smallEnd(2) == domain_xz.smallEnd(2)) );
108 zh_u_dir = ( zh_u_dir && (tbxxz.bigEnd(2) == domain_xz.bigEnd(2)) );
112 zl_v_dir = ( zl_v_dir && (tbxyz.smallEnd(2) == domain_yz.smallEnd(2)) );
116 zh_v_dir = ( zh_v_dir && (tbxyz.bigEnd(2) == domain_yz.bigEnd(2)) );
122 Box planexy = tbxxy; planexy.setBig(0, planexy.smallEnd(0) );
126 ParallelFor(planexy,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
127 Real mfy = 0.5 * (mf_uy(i,j,0) + mf_uy(i ,j-1,0));
128 Real mfx = 0.5 * (mf_vx(i,j,0) + mf_vx(i-1,j ,0));
129 if (!need_to_test || u(
dom_lo.x,j,k) >= 0.) {
130 tau12(i,j,k) = 0.5 * ( (u(i, j, k) - u(i, j-1, k))*dxInv[1]*mfy
131 + (-(8./3.) * v(i-1,j,k) + 3. * v(i,j,k) - (1./3.) * v(i+1,j,k))*dxInv[0]*mfx );
133 tau12(i,j,k) = 0.5 * ( (u(i, j, k) - u(i, j-1, k))*dxInv[1]*mfy +
134 (v(i, j, k) - v(i-1, j, k))*dxInv[0]*mfx );
140 Box planexy = tbxxy; planexy.setSmall(0, planexy.bigEnd(0) );
144 ParallelFor(planexy,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
145 Real mfy = 0.5 * (mf_uy(i,j,0) + mf_uy(i ,j-1,0));
146 Real mfx = 0.5 * (mf_vx(i,j,0) + mf_vx(i-1,j ,0));
147 if (!need_to_test || u(
dom_hi.x+1,j,k) <= 0.) {
148 tau12(i,j,k) = 0.5 * ( (u(i, j, k) - u(i, j-1, k))*dxInv[1]*mfy
149 - (-(8./3.) * v(i,j,k) + 3. * v(i-1,j,k) - (1./3.) * v(i-2,j,k))*dxInv[0]*mfx );
151 tau12(i,j,k) = 0.5 * ( (u(i, j, k) - u(i, j-1, k))*dxInv[1]*mfy +
152 (v(i, j, k) - v(i-1, j, k))*dxInv[0]*mfx );
158 Box planexz = tbxxz; planexz.setBig(0, planexz.smallEnd(0) );
162 ParallelFor(planexz,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
163 Real mfx = mf_ux(i,j,0);
165 Real du_dz = (u(i, j, k) - u(i, j, k-1))*dxInv[2];
166 if (!need_to_test || u(
dom_lo.x,j,k) >= 0.) {
167 tau13(i,j,k) = 0.5 * ( du_dz
168 + (-(8./3.) * w(i-1,j,k) + 3. * w(i,j,k) - (1./3.) * w(i+1,j,k))*dxInv[0]*mfx );
170 tau13(i,j,k) = 0.5 * ( du_dz
171 + (w(i, j, k) - w(i-1, j, k))*dxInv[0]*mfx );
174 if (tau13i) tau13i(i,j,k) = 0.5 * du_dz;
179 Box planexz = tbxxz; planexz.setSmall(0, planexz.bigEnd(0) );
183 ParallelFor(planexz,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
184 Real mfx = mf_ux(i,j,0);
185 Real du_dz = (u(i, j, k) - u(i, j, k-1))*dxInv[2];
186 if (!need_to_test || u(
dom_hi.x+1,j,k) <= 0.) {
187 tau13(i,j,k) = 0.5 * ( du_dz
188 - (-(8./3.) * w(i,j,k) + 3. * w(i-1,j,k) - (1./3.) * w(i-2,j,k))*dxInv[0]*mfx );
190 tau13(i,j,k) = 0.5 * ( du_dz
191 + (w(i, j, k) - w(i-1, j, k))*dxInv[0]*mfx );
194 if (tau13i) tau13i(i,j,k) = 0.5 * du_dz;
202 Box planexy = tbxxy; planexy.setBig(1, planexy.smallEnd(1) );
206 ParallelFor(planexy,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
207 Real mfy = 0.5 * (mf_uy(i,j,0) + mf_uy(i ,j-1,0));
208 Real mfx = 0.5 * (mf_vx(i,j,0) + mf_vx(i-1,j ,0));
209 if (!need_to_test || v(i,
dom_lo.y,k) >= 0.) {
210 tau12(i,j,k) = 0.5 * ( (-(8./3.) * u(i,j-1,k) + 3. * u(i,j,k) - (1./3.) * u(i,j+1,k))*dxInv[1]*mfy
211 + (v(i, j, k) - v(i-1, j, k))*dxInv[0]*mfx );
213 tau12(i,j,k) = 0.5 * ( (u(i, j, k) - u(i, j-1, k))*dxInv[1]*mfy
214 + (v(i, j, k) - v(i-1, j, k))*dxInv[0]*mfx );
220 Box planexy = tbxxy; planexy.setSmall(1, planexy.bigEnd(1) );
224 ParallelFor(planexy,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
225 Real mfy = 0.5 * (mf_uy(i,j,0) + mf_uy(i ,j-1,0));
226 Real mfx = 0.5 * (mf_vx(i,j,0) + mf_vx(i-1,j ,0));
227 if (!need_to_test || v(i,
dom_hi.y+1,k) <= 0.) {
228 tau12(i,j,k) = 0.5 * ( -(-(8./3.) * u(i,j,k) + 3. * u(i,j-1,k) - (1./3.) * u(i,j-2,k))*dxInv[1]*mfy
229 + (v(i, j, k) - v(i-1, j, k))*dxInv[0]*mfx );
231 tau12(i,j,k) = 0.5 * ( (u(i, j, k) - u(i, j-1, k))*dxInv[1]*mfy
232 + (v(i, j, k) - v(i-1, j, k))*dxInv[0]*mfx );
238 Box planeyz = tbxyz; planeyz.setBig(1, planeyz.smallEnd(1) );
242 ParallelFor(planeyz,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
243 Real mfy = mf_vy(i,j,0);
245 Real dv_dz = (v(i, j, k) - v(i, j, k-1))*dxInv[2];
246 if (!need_to_test || v(i,
dom_lo.y,k) >= 0.) {
247 tau23(i,j,k) = 0.5 * ( dv_dz
248 + (-(8./3.) * w(i,j-1,k) + 3. * w(i,j ,k) - (1./3.) * w(i,j+1,k))*dxInv[1]*mfy );
250 tau23(i,j,k) = 0.5 * ( dv_dz
251 + (w(i, j, k) - w(i, j-1, k))*dxInv[1]*mfy );
254 if (tau23i) tau23i(i,j,k) = 0.5 * dv_dz;
259 Box planeyz = tbxyz; planeyz.setSmall(1, planeyz.bigEnd(1) );
263 ParallelFor(planeyz,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
264 Real mfy = mf_vy(i,j,0);
266 Real dv_dz = (v(i, j, k) - v(i, j, k-1))*dxInv[2];
267 if (!need_to_test || v(i,
dom_hi.y+1,k) <= 0.) {
268 tau23(i,j,k) = 0.5 * ( dv_dz
269 - (-(8./3.) * w(i,j ,k) + 3. * w(i,j-1,k) - (1./3.) * w(i,j-2,k))*dxInv[1]*mfy );
271 tau23(i,j,k) = 0.5 * ( dv_dz
272 + (w(i, j, k) - w(i, j-1, k))*dxInv[1]*mfy );
275 if (tau23i) tau23i(i,j,k) = 0.5 * dv_dz;
283 Box planexz = tbxxz; planexz.setBig(2, planexz.smallEnd(2) );
286 ParallelFor(planexz,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
287 Real mfx = mf_ux(i,j,0);
289 Real du_dz = (-(8./3.) * u(i,j,k-1) + 3. * u(i,j,k) - (1./3.) * u(i,j,k+1))*dxInv[2];
290 tau13(i,j,k) = 0.5 * ( du_dz
291 + (w(i, j, k) - w(i-1, j, k))*dxInv[0]*mfx );
293 if (tau13i) tau13i(i,j,k) = 0.5 * du_dz;
298 Box planexz = tbxxz; planexz.setSmall(2, planexz.bigEnd(2) );
301 ParallelFor(planexz,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
302 Real mfx = mf_ux(i,j,0);
304 Real du_dz = -(-(8./3.) * u(i,j,k) + 3. * u(i,j,k-1) - (1./3.) * u(i,j,k-2))*dxInv[2];
305 tau13(i,j,k) = 0.5 * ( du_dz
306 + (w(i, j, k) - w(i-1, j, k))*dxInv[0]*mfx );
308 if (tau13i) tau13i(i,j,k) = 0.5 * du_dz;
313 Box planeyz = tbxyz; planeyz.setBig(2, planeyz.smallEnd(2) );
316 ParallelFor(planeyz,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
317 Real mfy = mf_vy(i,j,0);
319 Real dv_dz = (-(8./3.) * v(i,j,k-1) + 3. * v(i,j,k ) - (1./3.) * v(i,j,k+1))*dxInv[2];
320 tau23(i,j,k) = 0.5 * ( dv_dz
321 + (w(i, j, k) - w(i, j-1, k))*dxInv[1]*mfy );
323 if (tau23i) tau23i(i,j,k) = 0.5 * dv_dz;
328 Box planeyz = tbxyz; planeyz.setSmall(2, planeyz.bigEnd(2) );
331 ParallelFor(planeyz,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
332 Real mfy = mf_vy(i,j,0);
334 Real dv_dz = -(-(8./3.) * v(i,j,k ) + 3. * v(i,j,k-1) - (1./3.) * v(i,j,k-2))*dxInv[2];
335 tau23(i,j,k) = 0.5 * ( dv_dz
336 + (w(i, j, k) - w(i, j-1, k))*dxInv[1]*mfy );
338 if (tau23i) tau23i(i,j,k) = 0.5 * dv_dz;
345 ParallelFor(bxcc, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
346 Real mfx = mf_mx(i,j,0);
347 Real mfy = mf_my(i,j,0);
348 tau11(i,j,k) = (u(i+1, j , k ) - u(i, j, k))*dxInv[0]*mfx;
349 tau22(i,j,k) = (v(i , j+1, k ) - v(i, j, k))*dxInv[1]*mfy;
350 tau33(i,j,k) = (w(i , j , k+1) - w(i, j, k))*dxInv[2];
354 ParallelFor(tbxxy,tbxxz,tbxyz,
355 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
356 Real mfy = 0.5 * (mf_uy(i,j,0) + mf_uy(i ,j-1,0));
357 Real mfx = 0.5 * (mf_vx(i,j,0) + mf_vx(i-1,j ,0));
358 tau12(i,j,k) = 0.5 * ( (u(i, j, k) - u(i, j-1, k))*dxInv[1]*mfy
359 + (v(i, j, k) - v(i-1, j, k))*dxInv[0]*mfx );
361 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
362 Real mfx = mf_ux(i,j,0);
364 Real du_dz = (u(i, j, k) - u(i, j, k-1))*dxInv[2];
365 tau13(i,j,k) = 0.5 * ( du_dz
366 + (w(i, j, k) - w(i-1, j, k))*dxInv[0]*mfx );
368 if (tau13i) tau13i(i,j,k) = 0.5 * du_dz;
370 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
371 Real mfy = mf_vy(i,j,0);
373 Real dv_dz = (v(i, j, k) - v(i, j, k-1))*dxInv[2];
374 tau23(i,j,k) = 0.5 * ( dv_dz
375 + (w(i, j, k) - w(i, j-1, k))*dxInv[1]*mfy );
377 if (tau23i) tau23i(i,j,k) = 0.5 * dv_dz;
@ tau12
Definition: ERF_DataStruct.H:31
@ tau23
Definition: ERF_DataStruct.H:31
@ tau33
Definition: ERF_DataStruct.H:31
@ tau22
Definition: ERF_DataStruct.H:31
@ tau11
Definition: ERF_DataStruct.H:31
@ tau13
Definition: ERF_DataStruct.H:31
const auto & dom_hi
Definition: ERF_SetupVertDiff.H:2
const auto & dom_lo
Definition: ERF_SetupVertDiff.H:1
amrex::Real Real
Definition: ERF_ShocInterface.H:19
@ zvel_bc
Definition: ERF_IndexDefines.H:89
@ yvel_bc
Definition: ERF_IndexDefines.H:88
@ xvel_bc
Definition: ERF_IndexDefines.H:87
@ ext_dir_ingested
Definition: ERF_IndexDefines.H:212
@ ext_dir
Definition: ERF_IndexDefines.H:209
@ ext_dir_upwind
Definition: ERF_IndexDefines.H:217