Function for computing the strain rates without terrain.
56 Box domain_xy = convert(domain, tbxxy.ixType());
57 Box domain_xz = convert(domain, tbxxz.ixType());
58 Box domain_yz = convert(domain, tbxyz.ixType());
60 const auto& dom_lo = lbound(domain);
61 const auto& dom_hi = ubound(domain);
67 xl_v_dir = ( xl_v_dir && (tbxxy.smallEnd(0) == domain_xy.smallEnd(0)) );
72 xh_v_dir = ( xh_v_dir && (tbxxy.bigEnd(0) == domain_xy.bigEnd(0)) );
77 xl_w_dir = ( xl_w_dir && (tbxxz.smallEnd(0) == domain_xz.smallEnd(0)) );
82 xh_w_dir = ( xh_w_dir && (tbxxz.bigEnd(0) == domain_xz.bigEnd(0)) );
88 yl_u_dir = ( yl_u_dir && (tbxxy.smallEnd(1) == domain_xy.smallEnd(1)) );
93 yh_u_dir = ( yh_u_dir && (tbxxy.bigEnd(1) == domain_xy.bigEnd(1)) );
98 yl_w_dir = ( yl_w_dir && (tbxyz.smallEnd(1) == domain_yz.smallEnd(1)) );
103 yh_w_dir = ( yh_w_dir && (tbxyz.bigEnd(1) == domain_yz.bigEnd(1)) );
108 zl_u_dir = ( zl_u_dir && (tbxxz.smallEnd(2) == domain_xz.smallEnd(2)) );
112 zh_u_dir = ( zh_u_dir && (tbxxz.bigEnd(2) == domain_xz.bigEnd(2)) );
116 zl_v_dir = ( zl_v_dir && (tbxyz.smallEnd(2) == domain_yz.smallEnd(2)) );
120 zh_v_dir = ( zh_v_dir && (tbxyz.bigEnd(2) == domain_yz.bigEnd(2)) );
126 Box planexy = tbxxy; planexy.setBig(0, planexy.smallEnd(0) );
130 ParallelFor(planexy,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
131 Real mfy =
myhalf * (mf_uy(i,j,0) + mf_uy(i ,j-1,0));
132 Real mfx =
myhalf * (mf_vx(i,j,0) + mf_vx(i-1,j ,0));
133 if (!need_to_test || u(dom_lo.x,j,k) >=
zero) {
138 (v(i, j, k) - v(i-1, j, k))*
dxInv[0]*mfx );
144 Box planexy = tbxxy; planexy.setSmall(0, planexy.bigEnd(0) );
148 ParallelFor(planexy,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
149 Real mfy =
myhalf * (mf_uy(i,j,0) + mf_uy(i ,j-1,0));
150 Real mfx =
myhalf * (mf_vx(i,j,0) + mf_vx(i-1,j ,0));
151 if (!need_to_test || u(dom_hi.x+1,j,k) <=
zero) {
156 (v(i, j, k) - v(i-1, j, k))*
dxInv[0]*mfx );
162 Box planexz = tbxxz; planexz.setBig(0, planexz.smallEnd(0) );
166 ParallelFor(planexz,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
167 Real mfx = mf_ux(i,j,0);
169 Real du_dz = (u(i, j, k) - u(i, j, k-1))*
dxInv[2];
170 if (!need_to_test || u(dom_lo.x,j,k) >=
zero) {
175 + (
w(i, j, k) -
w(i-1, j, k))*
dxInv[0]*mfx );
178 if (tau13i) tau13i(i,j,k) =
myhalf * du_dz;
183 Box planexz = tbxxz; planexz.setSmall(0, planexz.bigEnd(0) );
187 ParallelFor(planexz,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
188 Real mfx = mf_ux(i,j,0);
189 Real du_dz = (u(i, j, k) - u(i, j, k-1))*
dxInv[2];
190 if (!need_to_test || u(dom_hi.x+1,j,k) <=
zero) {
195 + (
w(i, j, k) -
w(i-1, j, k))*
dxInv[0]*mfx );
198 if (tau13i) tau13i(i,j,k) =
myhalf * du_dz;
206 Box planexy = tbxxy; planexy.setBig(1, planexy.smallEnd(1) );
210 ParallelFor(planexy,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
211 Real mfy =
myhalf * (mf_uy(i,j,0) + mf_uy(i ,j-1,0));
212 Real mfx =
myhalf * (mf_vx(i,j,0) + mf_vx(i-1,j ,0));
213 if (!need_to_test || v(i,dom_lo.y,k) >=
zero) {
215 + (v(i, j, k) - v(i-1, j, k))*
dxInv[0]*mfx );
218 + (v(i, j, k) - v(i-1, j, k))*
dxInv[0]*mfx );
224 Box planexy = tbxxy; planexy.setSmall(1, planexy.bigEnd(1) );
228 ParallelFor(planexy,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
229 Real mfy =
myhalf * (mf_uy(i,j,0) + mf_uy(i ,j-1,0));
230 Real mfx =
myhalf * (mf_vx(i,j,0) + mf_vx(i-1,j ,0));
231 if (!need_to_test || v(i,dom_hi.y+1,k) <=
zero) {
233 + (v(i, j, k) - v(i-1, j, k))*
dxInv[0]*mfx );
236 + (v(i, j, k) - v(i-1, j, k))*
dxInv[0]*mfx );
242 Box planeyz = tbxyz; planeyz.setBig(1, planeyz.smallEnd(1) );
246 ParallelFor(planeyz,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
247 Real mfy = mf_vy(i,j,0);
249 Real dv_dz = (v(i, j, k) - v(i, j, k-1))*
dxInv[2];
250 if (!need_to_test || v(i,dom_lo.y,k) >=
zero) {
255 + (
w(i, j, k) -
w(i, j-1, k))*
dxInv[1]*mfy );
258 if (tau23i) tau23i(i,j,k) =
myhalf * dv_dz;
263 Box planeyz = tbxyz; planeyz.setSmall(1, planeyz.bigEnd(1) );
267 ParallelFor(planeyz,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
268 Real mfy = mf_vy(i,j,0);
270 Real dv_dz = (v(i, j, k) - v(i, j, k-1))*
dxInv[2];
271 if (!need_to_test || v(i,dom_hi.y+1,k) <=
zero) {
276 + (
w(i, j, k) -
w(i, j-1, k))*
dxInv[1]*mfy );
279 if (tau23i) tau23i(i,j,k) =
myhalf * dv_dz;
287 Box planexz = tbxxz; planexz.setBig(2, planexz.smallEnd(2) );
290 ParallelFor(planexz,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
291 Real mfx = mf_ux(i,j,0);
295 + (
w(i, j, k) -
w(i-1, j, k))*
dxInv[0]*mfx );
297 if (tau13i) tau13i(i,j,k) =
myhalf * du_dz;
302 Box planexz = tbxxz; planexz.setSmall(2, planexz.bigEnd(2) );
305 ParallelFor(planexz,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
306 Real mfx = mf_ux(i,j,0);
310 + (
w(i, j, k) -
w(i-1, j, k))*
dxInv[0]*mfx );
312 if (tau13i) tau13i(i,j,k) =
myhalf * du_dz;
317 Box planeyz = tbxyz; planeyz.setBig(2, planeyz.smallEnd(2) );
320 ParallelFor(planeyz,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
321 Real mfy = mf_vy(i,j,0);
325 + (
w(i, j, k) -
w(i, j-1, k))*
dxInv[1]*mfy );
327 if (tau23i) tau23i(i,j,k) =
myhalf * dv_dz;
332 Box planeyz = tbxyz; planeyz.setSmall(2, planeyz.bigEnd(2) );
335 ParallelFor(planeyz,[=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
336 Real mfy = mf_vy(i,j,0);
340 + (
w(i, j, k) -
w(i, j-1, k))*
dxInv[1]*mfy );
342 if (tau23i) tau23i(i,j,k) =
myhalf * dv_dz;
349 ParallelFor(bxcc, [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
350 Real mfx = mf_mx(i,j,0);
351 Real mfy = mf_my(i,j,0);
352 tau11(i,j,k) = (u(i+1, j , k ) - u(i, j, k))*
dxInv[0]*mfx;
353 tau22(i,j,k) = (v(i , j+1, k ) - v(i, j, k))*
dxInv[1]*mfy;
359 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
360 Real mfy =
myhalf * (mf_uy(i,j,0) + mf_uy(i ,j-1,0));
361 Real mfx =
myhalf * (mf_vx(i,j,0) + mf_vx(i-1,j ,0));
363 + (v(i, j, k) - v(i-1, j, k))*
dxInv[0]*mfx );
365 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
366 Real mfx = mf_ux(i,j,0);
368 Real du_dz = (u(i, j, k) - u(i, j, k-1))*
dxInv[2];
370 + (
w(i, j, k) -
w(i-1, j, k))*
dxInv[0]*mfx );
372 if (tau13i) tau13i(i,j,k) =
myhalf * du_dz;
374 [=] AMREX_GPU_DEVICE (
int i,
int j,
int k) noexcept {
375 Real mfy = mf_vy(i,j,0);
377 Real dv_dz = (v(i, j, k) - v(i, j, k-1))*
dxInv[2];
379 + (
w(i, j, k) -
w(i, j-1, k))*
dxInv[1]*mfy );
381 if (tau23i) tau23i(i,j,k) =
myhalf * dv_dz;
constexpr amrex::Real three
Definition: ERF_Constants.H:11
constexpr amrex::Real eightthirds
Definition: ERF_Constants.H:16
constexpr amrex::Real zero
Definition: ERF_Constants.H:8
constexpr amrex::Real myhalf
Definition: ERF_Constants.H:13
constexpr amrex::Real third
Definition: ERF_Constants.H:15
@ 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::GpuArray< Real, AMREX_SPACEDIM > dxInv
Definition: ERF_InitCustomPertVels_ParticleTests.H:17
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);})
Real w
Definition: ERF_Plotfile2DInterpolator.cpp:22
amrex::Real Real
Definition: ERF_ShocInterface.H:19
@ zvel_bc
Definition: ERF_IndexDefines.H:104
@ yvel_bc
Definition: ERF_IndexDefines.H:103
@ xvel_bc
Definition: ERF_IndexDefines.H:102
@ ext_dir_ingested
Definition: ERF_IndexDefines.H:253
@ ext_dir
Definition: ERF_IndexDefines.H:249
@ ext_dir_upwind
Definition: ERF_IndexDefines.H:257