Function for computing the strain rates without terrain.
48 Box domain_xy = convert(domain, tbxxy.ixType());
49 Box domain_xz = convert(domain, tbxxz.ixType());
50 Box domain_yz = convert(domain, tbxyz.ixType());
52 const auto&
dom_lo = lbound(domain);
53 const auto&
dom_hi = ubound(domain);
59 xl_v_dir = ( xl_v_dir && (tbxxy.smallEnd(0) == domain_xy.smallEnd(0)) );
64 xh_v_dir = ( xh_v_dir && (tbxxy.bigEnd(0) == domain_xy.bigEnd(0)) );
69 xl_w_dir = ( xl_w_dir && (tbxxz.smallEnd(0) == domain_xz.smallEnd(0)) );
74 xh_w_dir = ( xh_w_dir && (tbxxz.bigEnd(0) == domain_xz.bigEnd(0)) );
80 yl_u_dir = ( yl_u_dir && (tbxxy.smallEnd(1) == domain_xy.smallEnd(1)) );
85 yh_u_dir = ( yh_u_dir && (tbxxy.bigEnd(1) == domain_xy.bigEnd(1)) );
90 yl_w_dir = ( yl_w_dir && (tbxyz.smallEnd(1) == domain_yz.smallEnd(1)) );
95 yh_w_dir = ( yh_w_dir && (tbxyz.bigEnd(1) == domain_yz.bigEnd(1)) );
100 zl_u_dir = ( zl_u_dir && (tbxxz.smallEnd(2) == domain_xz.smallEnd(2)) );
104 zh_u_dir = ( zh_u_dir && (tbxxz.bigEnd(2) == domain_xz.bigEnd(2)) );
108 zl_v_dir = ( zl_v_dir && (tbxyz.smallEnd(2) == domain_yz.smallEnd(2)) );
112 zh_v_dir = ( zh_v_dir && (tbxyz.bigEnd(2) == domain_yz.bigEnd(2)) );
117 Box planexy = tbxxy; planexy.setBig(0, planexy.smallEnd(0) );
120 ParallelFor(planexy,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
121 Real mfy = 0.5 * (mf_uy(i,j,0) + mf_uy(i ,j-1,0));
122 Real mfx = 0.5 * (mf_vx(i,j,0) + mf_vx(i-1,j ,0));
123 if (!need_to_test || u(
dom_lo.x,j,k) >= 0.) {
124 tau12(i,j,k) = 0.5 * ( (u(i, j, k) - u(i, j-1, k))*dxInv[1]*mfy
125 + (-(8./3.) * v(i-1,j,k) + 3. * v(i,j,k) - (1./3.) * v(i+1,j,k))*dxInv[0]*mfx );
127 tau12(i,j,k) = 0.5 * ( (u(i, j, k) - u(i, j-1, k))*dxInv[1]*mfy +
128 (v(i, j, k) - v(i-1, j, k))*dxInv[0]*mfx );
134 Box planexy = tbxxy; planexy.setSmall(0, planexy.bigEnd(0) );
137 ParallelFor(planexy,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
138 Real mfy = 0.5 * (mf_uy(i,j,0) + mf_uy(i ,j-1,0));
139 Real mfx = 0.5 * (mf_vx(i,j,0) + mf_vx(i-1,j ,0));
140 if (!need_to_test || u(
dom_hi.x+1,j,k) <= 0.) {
141 tau12(i,j,k) = 0.5 * ( (u(i, j, k) - u(i, j-1, k))*dxInv[1]*mfy
142 - (-(8./3.) * v(i,j,k) + 3. * v(i-1,j,k) - (1./3.) * v(i-2,j,k))*dxInv[0]*mfx );
144 tau12(i,j,k) = 0.5 * ( (u(i, j, k) - u(i, j-1, k))*dxInv[1]*mfy +
145 (v(i, j, k) - v(i-1, j, k))*dxInv[0]*mfx );
151 Box planexz = tbxxz; planexz.setBig(0, planexz.smallEnd(0) );
154 ParallelFor(planexz,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
155 Real mfx = mf_ux(i,j,0);
156 if (!need_to_test || u(
dom_lo.x,j,k) >= 0.) {
157 tau13(i,j,k) = 0.5 * ( (u(i, j, k) - u(i, j, k-1))*dxInv[2]
158 + (-(8./3.) * w(i-1,j,k) + 3. * w(i,j,k) - (1./3.) * w(i+1,j,k))*dxInv[0]*mfx );
160 tau13(i,j,k) = 0.5 * ( (u(i, j, k) - u(i, j, k-1))*dxInv[2]
161 + (w(i, j, k) - w(i-1, j, k))*dxInv[0]*mfx );
167 Box planexz = tbxxz; planexz.setSmall(0, planexz.bigEnd(0) );
170 ParallelFor(planexz,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
171 Real mfx = mf_ux(i,j,0);
172 if (!need_to_test || u(
dom_hi.x+1,j,k) <= 0.) {
173 tau13(i,j,k) = 0.5 * ( (u(i, j, k) - u(i, j, k-1))*dxInv[2]
174 - (-(8./3.) * w(i,j,k) + 3. * w(i-1,j,k) - (1./3.) * w(i-2,j,k))*dxInv[0]*mfx );
176 tau13(i,j,k) = 0.5 * ( (u(i, j, k) - u(i, j, k-1))*dxInv[2]
177 + (w(i, j, k) - w(i-1, j, k))*dxInv[0]*mfx );
185 Box planexy = tbxxy; planexy.setBig(1, planexy.smallEnd(1) );
188 ParallelFor(planexy,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
189 Real mfy = 0.5 * (mf_uy(i,j,0) + mf_uy(i ,j-1,0));
190 Real mfx = 0.5 * (mf_vx(i,j,0) + mf_vx(i-1,j ,0));
191 if (!need_to_test || v(i,
dom_lo.y,k) >= 0.) {
192 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
193 + (v(i, j, k) - v(i-1, j, k))*dxInv[0]*mfx );
195 tau12(i,j,k) = 0.5 * ( (u(i, j, k) - u(i, j-1, k))*dxInv[1]*mfy
196 + (v(i, j, k) - v(i-1, j, k))*dxInv[0]*mfx );
202 Box planexy = tbxxy; planexy.setSmall(1, planexy.bigEnd(1) );
205 ParallelFor(planexy,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
206 Real mfy = 0.5 * (mf_uy(i,j,0) + mf_uy(i ,j-1,0));
207 Real mfx = 0.5 * (mf_vx(i,j,0) + mf_vx(i-1,j ,0));
208 if (!need_to_test || v(i,
dom_hi.y+1,k) <= 0.) {
209 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
210 + (v(i, j, k) - v(i-1, j, k))*dxInv[0]*mfx );
212 tau12(i,j,k) = 0.5 * ( (u(i, j, k) - u(i, j-1, k))*dxInv[1]*mfy
213 + (v(i, j, k) - v(i-1, j, k))*dxInv[0]*mfx );
219 Box planeyz = tbxyz; planeyz.setBig(1, planeyz.smallEnd(1) );
222 ParallelFor(planeyz,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
223 Real mfy = mf_vy(i,j,0);
224 if (!need_to_test || v(i,
dom_lo.y,k) >= 0.) {
225 tau23(i,j,k) = 0.5 * ( (v(i, j, k) - v(i, j, k-1))*dxInv[2]
226 + (-(8./3.) * w(i,j-1,k) + 3. * w(i,j ,k) - (1./3.) * w(i,j+1,k))*dxInv[1]*mfy );
228 tau23(i,j,k) = 0.5 * ( (v(i, j, k) - v(i, j, k-1))*dxInv[2]
229 + (w(i, j, k) - w(i, j-1, k))*dxInv[1]*mfy );
235 Box planeyz = tbxyz; planeyz.setSmall(1, planeyz.bigEnd(1) );
238 ParallelFor(planeyz,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
239 Real mfy = mf_vy(i,j,0);
240 if (!need_to_test || v(i,
dom_hi.y+1,k) <= 0.) {
241 tau23(i,j,k) = 0.5 * ( (v(i, j, k) - v(i, j, k-1))*dxInv[2]
242 - (-(8./3.) * w(i,j ,k) + 3. * w(i,j-1,k) - (1./3.) * w(i,j-2,k))*dxInv[1]*mfy );
244 tau23(i,j,k) = 0.5 * ( (v(i, j, k) - v(i, j, k-1))*dxInv[2]
245 + (w(i, j, k) - w(i, j-1, k))*dxInv[1]*mfy );
253 Box planexz = tbxxz; planexz.setBig(2, planexz.smallEnd(2) );
255 ParallelFor(planexz,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
256 Real mfx = mf_ux(i,j,0);
257 tau13(i,j,k) = 0.5 * ( (-(8./3.) * u(i,j,k-1) + 3. * u(i,j,k) - (1./3.) * u(i,j,k+1))*dxInv[2]
258 + (w(i, j, k) - w(i-1, j, k))*dxInv[0]*mfx );
263 Box planexz = tbxxz; planexz.setSmall(2, planexz.bigEnd(2) );
265 ParallelFor(planexz,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
266 Real mfx = mf_ux(i,j,0);
267 tau13(i,j,k) = 0.5 * ( -(-(8./3.) * u(i,j,k) + 3. * u(i,j,k-1) - (1./3.) * u(i,j,k-2))*dxInv[2]
268 + (w(i, j, k) - w(i-1, j, k))*dxInv[0]*mfx );
273 Box planeyz = tbxyz; planeyz.setBig(2, planeyz.smallEnd(2) );
275 ParallelFor(planeyz,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
276 Real mfy = mf_vy(i,j,0);
277 tau23(i,j,k) = 0.5 * ( (-(8./3.) * v(i,j,k-1) + 3. * v(i,j,k ) - (1./3.) * v(i,j,k+1))*dxInv[2]
278 + (w(i, j, k) - w(i, j-1, k))*dxInv[1]*mfy );
283 Box planeyz = tbxyz; planeyz.setSmall(2, planeyz.bigEnd(2) );
285 ParallelFor(planeyz,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
286 Real mfy = mf_vy(i,j,0);
287 tau23(i,j,k) = 0.5 * ( -(-(8./3.) * v(i,j,k ) + 3. * v(i,j,k-1) - (1./3.) * v(i,j,k-2))*dxInv[2]
288 + (w(i, j, k) - w(i, j-1, k))*dxInv[1]*mfy );
295 ParallelFor(bxcc, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
296 Real mfx = mf_mx(i,j,0);
297 Real mfy = mf_my(i,j,0);
298 tau11(i,j,k) = (u(i+1, j , k ) - u(i, j, k))*dxInv[0]*mfx;
299 tau22(i,j,k) = (v(i , j+1, k ) - v(i, j, k))*dxInv[1]*mfy;
300 tau33(i,j,k) = (w(i , j , k+1) - w(i, j, k))*dxInv[2];
304 ParallelFor(tbxxy,tbxxz,tbxyz,
305 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
306 Real mfy = 0.5 * (mf_uy(i,j,0) + mf_uy(i ,j-1,0));
307 Real mfx = 0.5 * (mf_vx(i,j,0) + mf_vx(i-1,j ,0));
308 tau12(i,j,k) = 0.5 * ( (u(i, j, k) - u(i, j-1, k))*dxInv[1]*mfy
309 + (v(i, j, k) - v(i-1, j, k))*dxInv[0]*mfx );
311 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
312 Real mfx = mf_ux(i,j,0);
313 tau13(i,j,k) = 0.5 * ( (u(i, j, k) - u(i, j, k-1))*dxInv[2]
314 + (w(i, j, k) - w(i-1, j, k))*dxInv[0]*mfx );
316 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
317 Real mfy = mf_vy(i,j,0);
318 tau23(i,j,k) = 0.5 * ( (v(i, j, k) - v(i, j, k-1))*dxInv[2]
319 + (w(i, j, k) - w(i, j-1, k))*dxInv[1]*mfy );
@ tau12
Definition: ERF_DataStruct.H:30
@ tau23
Definition: ERF_DataStruct.H:30
@ tau33
Definition: ERF_DataStruct.H:30
@ tau22
Definition: ERF_DataStruct.H:30
@ tau11
Definition: ERF_DataStruct.H:30
@ tau13
Definition: ERF_DataStruct.H:30
const auto & dom_hi
Definition: ERF_DiffSetup.H:10
const auto & dom_lo
Definition: ERF_DiffSetup.H:9
@ 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