29 DOUBLE PRECISION,
INTENT(OUT) :: ltrD_g(
dimension_3)
34 INTEGER :: I, J, K, IJK, IMJK, IJMK, IJKM, IM
42 IF (.NOT.wall_at(ijk))
THEN 103 INTEGER,
INTENT(IN) :: IJK
105 DOUBLE PRECISION,
INTENT(INOUT) :: ltrD_g(
dimension_3)
110 INTEGER :: I, J, K, IMJK, IJMK, IJKM, IM
112 DOUBLE PRECISION :: DEL_H,Nx,Ny,Nz
113 DOUBLE PRECISION :: dudx,dvdy,dwdz
114 DOUBLE PRECISION :: Xi,Yi,Zi,Ui,Vi,Wi,Sx,Sy,Sz
115 DOUBLE PRECISION :: UW_g,VW_g,WW_g
116 LOGICAL :: U_NODE_AT_E, U_NODE_AT_W
117 LOGICAL :: V_NODE_AT_N, V_NODE_AT_S
118 LOGICAL :: W_NODE_AT_T, W_NODE_AT_B
132 IF(flow_at(ijk))
THEN 186 IF(u_node_at_e.AND.u_node_at_w)
THEN 194 CALL get_del_h(ijk,
'SCALAR',xi,yi,zi,del_h,nx,ny,nz)
195 IF(abs(sx) >
zero)
THEN 196 dudx = (
u_g(ijk) -
u_g(imjk))/sx
197 IF(
noc_trdg) dudx = dudx - ((ui-uw_g)/(sx*del_h)*&
212 IF(v_node_at_n.AND.v_node_at_s)
THEN 220 CALL get_del_h(ijk,
'SCALAR',xi,yi,zi,del_h,nx,ny,nz)
221 IF(abs(sy) >
zero)
THEN 222 dvdy = (
v_g(ijk) -
v_g(ijmk))/sy
223 IF(
noc_trdg) dvdy = dvdy - ((vi-vw_g)/(sy*del_h)*&
228 ELSEIF (v_node_at_n.AND.(.NOT.v_node_at_s).AND.
noc_trdg)
THEN 230 z_v(ijk),del_h,nx,ny,nz)
231 dvdy = (
v_g(ijk) - vw_g) / del_h * ny
232 ELSEIF ((.NOT.v_node_at_n).AND.v_node_at_s.AND.
noc_trdg)
THEN 234 z_v(ijmk),del_h,nx,ny,nz)
235 dvdy = (
v_g(ijmk) - vw_g) / del_h * ny
249 IF(w_node_at_t.AND.w_node_at_b)
THEN 257 CALL get_del_h(ijk,
'SCALAR',xi,yi,zi,del_h,nx,ny,nz)
258 IF(abs(sz) >
zero)
THEN 259 dwdz = (
w_g(ijk) -
w_g(ijkm))/sz
260 IF(
noc_trdg) dwdz = dwdz - ((wi-ww_g)/(sz*del_h)*&
265 ELSEIF (w_node_at_t.AND.(.NOT.w_node_at_b).AND.
noc_trdg)
THEN 267 z_w(ijk),del_h,nx,ny,nz)
268 dwdz = (
w_g(ijk) - ww_g) / del_h * nz
269 ELSEIF ((.NOT.w_node_at_t).AND.w_node_at_b.AND.
noc_trdg)
THEN 271 z_w(ijkm),del_h,nx,ny,nz)
272 dwdz = (
w_g(ijkm) - ww_g) / del_h * nz
278 ltrd_g(ijk) = dudx + dvdy + dwdz
291 vge, vgw, vgn, vgs, vgt, vgb, &
292 wge, wgw, wgn, wgs, wgt, wgb, wgcc
299 use fun_avg, only: avg_x, avg_x_e
300 use fun_avg, only: avg_y, avg_y_n
301 use fun_avg, only: avg_z, avg_z_t
311 INTEGER,
INTENT(IN) :: IJK
313 DOUBLE PRECISION,
INTENT(OUT) :: UgE, UgW
315 DOUBLE PRECISION,
INTENT(OUT) :: UgN, UgS
317 DOUBLE PRECISION,
INTENT(OUT) :: UgT, UgB
320 DOUBLE PRECISION,
INTENT(OUT) :: UgcC
323 DOUBLE PRECISION,
INTENT(OUT) :: VgE, VgW
325 DOUBLE PRECISION,
INTENT(OUT) :: VgN, VgS
327 DOUBLE PRECISION,
INTENT(OUT) :: VgT, VgB
330 DOUBLE PRECISION,
INTENT(OUT) :: WgE, WgW
332 DOUBLE PRECISION,
INTENT(OUT) :: WgN, WgS
334 DOUBLE PRECISION,
INTENT(OUT) :: WgT, WgB
337 DOUBLE PRECISION,
INTENT(OUT) :: WgcC
342 INTEGER :: I, J, K, IM, JM, KM
343 INTEGER :: IMJK, IPJK, IJMK, IJPK, IJKM, IJKP
344 INTEGER :: IMJPK, IMJMK, IMJKP, IMJKM, IPJKM, IPJMK
345 INTEGER :: IJMKP, IJMKM, IJPKM
371 ugn = avg_y(avg_x_e(
u_g(imjk),
u_g(ijk),i), &
372 avg_x_e(
u_g(imjpk),
u_g(ijpk),i),j)
373 ugs = avg_y(avg_x_e(
u_g(imjmk),
u_g(ijmk),i),&
374 avg_x_e(
u_g(imjk),
u_g(ijk),i),jm)
375 ugt = avg_z(avg_x_e(
u_g(imjk),
u_g(ijk),i),&
376 avg_x_e(
u_g(imjkp),
u_g(ijkp),i),k)
377 ugb = avg_z(avg_x_e(
u_g(imjkm),
u_g(ijkm),i),&
378 avg_x_e(
u_g(imjk),
u_g(ijk),i),km)
382 vge = avg_x(avg_y_n(
v_g(ijmk),
v_g(ijk)),&
383 avg_y_n(
v_g(ipjmk),
v_g(ipjk)),i)
384 vgw = avg_x(avg_y_n(
v_g(imjmk),
v_g(imjk)),&
385 avg_y_n(
v_g(ijmk),
v_g(ijk)),im)
386 vgt = avg_z(avg_y_n(
v_g(ijmk),
v_g(ijk)),&
387 avg_y_n(
v_g(ijmkp),
v_g(ijkp)),k)
388 vgb = avg_z(avg_y_n(
v_g(ijmkm),
v_g(ijkm)),&
389 avg_y_n(
v_g(ijmk),
v_g(ijk)),km)
393 wgn = avg_y(avg_z_t(
w_g(ijkm),
w_g(ijk)),&
394 avg_z_t(
w_g(ijpkm),
w_g(ijpk)),j)
395 wgs = avg_y(avg_z_t(
w_g(ijmkm),
w_g(ijmk)),&
396 avg_z_t(
w_g(ijkm),
w_g(ijk)),jm)
397 wge = avg_x(avg_z_t(
w_g(ijkm),
w_g(ijk)),&
398 avg_z_t(
w_g(ipjkm),
w_g(ipjk)),i)
399 wgw = avg_x(avg_z_t(
w_g(imjkm),
w_g(imjk)),&
400 avg_z_t(
w_g(ijkm),
w_g(ijk)),im)
405 ugcc = avg_x_e(
u_g(imjk),
u_g(ijk),i)
406 wgcc = avg_z_t(
w_g(ijkm),
w_g(ijk))
442 INTEGER,
INTENT(IN) :: IJK
444 DOUBLE PRECISION,
INTENT(OUT) :: lVelGradG(3,3)
446 DOUBLE PRECISION,
INTENT(OUT) :: lRateStrainG(3,3)
453 DOUBLE PRECISION :: uge, ugw, ugn, ugs, ugt, ugb, ugcc
454 DOUBLE PRECISION :: vge, vgw, vgn, vgs, vgt, vgb
455 DOUBLE PRECISION :: wge, wgw, wgn, wgs, wgt, wgb, wgcc
469 lvelgradg(1,1) = (uge-ugw)*odx(i)
470 lvelgradg(1,2) = (ugn-ugs)*ody(j)
471 lvelgradg(1,3) = (ugt-ugb)*(
ox(i)*odz(k))-wgcc*
ox(i)
473 lvelgradg(2,1) = (vge-vgw)*odx(i)
474 lvelgradg(2,2) = (vgn-vgs)*ody(j)
475 lvelgradg(2,3) = (vgt-vgb)*(
ox(i)*odz(k))
477 lvelgradg(3,1) = (wge-wgw)*odx(i)
478 lvelgradg(3,2) = (wgn-wgs)*ody(j)
479 lvelgradg(3,3) = (wgt-wgb)*(
ox(i)*odz(k)) + ugcc*
ox(i)
484 lratestraing(1,1) = (uge-ugw)*odx(i)
485 lratestraing(1,2) =
half*((ugn-ugs)*ody(j)+&
487 lratestraing(1,3) =
half*((wge-wgw)*odx(i)+&
488 (ugt-ugb)*(
ox(i)*odz(k))-&
491 lratestraing(2,1) = lratestraing(1,2)
492 lratestraing(2,2) = (vgn-vgs)*ody(j)
493 lratestraing(2,3) =
half*((vgt-vgb)*(
ox(i)*odz(k))+&
496 lratestraing(3,1) = lratestraing(1,3)
497 lratestraing(3,2) = lratestraing(2,3)
498 lratestraing(3,3) = (wgt-wgb)*(
ox(i)*odz(k)) +&
540 INTEGER,
INTENT(IN) :: IJK
545 DOUBLE PRECISION,
INTENT(OUT) :: lVelGradG(3,3)
547 DOUBLE PRECISION,
INTENT(OUT) :: lRateStrainG(3,3)
552 INTEGER :: I, J, K, IMJK, IJMK, IJKM
556 DOUBLE PRECISION :: DEL_H,Nx,Ny,Nz
557 DOUBLE PRECISION :: dudx,dudy,dudz
558 DOUBLE PRECISION :: dvdx,dvdy,dvdz
559 DOUBLE PRECISION :: dwdx,dwdy,dwdz
560 DOUBLE PRECISION :: Xi,Yi,Zi,Ui,Vi,Wi,Sx,Sy,Sz
561 DOUBLE PRECISION :: UW_g,VW_g,WW_g
563 LOGICAL :: U_NODE_AT_E, U_NODE_AT_W
564 LOGICAL :: V_NODE_AT_N, V_NODE_AT_S
565 LOGICAL :: W_NODE_AT_T, W_NODE_AT_B
581 IF(flow_at(ijk))
THEN 636 IF(u_node_at_e.AND.u_node_at_w)
THEN 644 CALL get_del_h(ijk,
'SCALAR',xi,yi,zi,del_h,nx,ny,nz)
645 IF(abs(sx) >
zero)
THEN 646 dudx = (
u_g(ijk) -
u_g(imjk))/sx
650 dudx = dudx - ((ui-uw_g)/(sx*del_h)*(sy*ny+sz*nz))
651 dudy = (ui-uw_g) / del_h * ny
652 dudz = (ui-uw_g) / del_h * nz
659 ELSEIF (u_node_at_e.AND.(.NOT.u_node_at_w).AND.
noc_trdg)
THEN 662 dudx = (
u_g(ijk) - uw_g) / del_h * nx
663 dudy = (
u_g(ijk) - uw_g) / del_h * ny
664 dudz = (
u_g(ijk) - uw_g) / del_h * nz
665 ELSEIF ((.NOT.u_node_at_e).AND.u_node_at_w.AND.
noc_trdg)
THEN 668 dudx = (
u_g(imjk) - uw_g) / del_h * nx
669 dudy = (
u_g(imjk) - uw_g) / del_h * ny
670 dudz = (
u_g(imjk) - uw_g) / del_h * nz
676 lvelgradg(1,1) = dudx
677 lvelgradg(1,2) = dudy
678 lvelgradg(1,3) = dudz
687 IF(v_node_at_n.AND.v_node_at_s)
THEN 695 CALL get_del_h(ijk,
'SCALAR',xi,yi,zi,del_h,nx,ny,nz)
696 IF(abs(sy) >
zero)
THEN 698 dvdy = (
v_g(ijk) -
v_g(ijmk))/sy
701 dvdx = (vi-vw_g) / del_h * nx
702 dvdy = dvdy - ((vi-vw_g)/(sy*del_h)*(sx*nx+sz*nz))
703 dvdz = (vi-vw_g) / del_h * nz
710 ELSEIF (v_node_at_n.AND.(.NOT.v_node_at_s).AND.
noc_trdg)
THEN 713 dvdx = (
v_g(ijk) - vw_g) / del_h * nx
714 dvdy = (
v_g(ijk) - vw_g) / del_h * ny
715 dvdz = (
v_g(ijk) - vw_g) / del_h * nz
716 ELSEIF ((.NOT.v_node_at_n).AND.v_node_at_s.AND.
noc_trdg)
THEN 719 dvdx = (
v_g(ijmk) - vw_g) / del_h * nx
720 dvdy = (
v_g(ijmk) - vw_g) / del_h * ny
721 dvdz = (
v_g(ijmk) - vw_g) / del_h * nz
727 lvelgradg(2,1) = dvdx
728 lvelgradg(2,2) = dvdy
729 lvelgradg(2,3) = dvdz
742 IF(w_node_at_t.AND.w_node_at_b)
THEN 750 CALL get_del_h(ijk,
'SCALAR',xi,yi,zi,del_h,nx,ny,nz)
751 IF(abs(sz) >
zero)
THEN 754 dwdz = (
w_g(ijk) -
w_g(ijkm))/sz
756 dwdx = (wi-ww_g) / del_h * nx
757 dwdy = (wi-ww_g) / del_h * ny
758 dwdz = dwdz - ((wi-ww_g)/(sz*del_h)*(sx*nx+sy*ny))
765 ELSEIF (w_node_at_t.AND.(.NOT.w_node_at_b).AND.
noc_trdg)
THEN 768 dwdx = (
w_g(ijk) - ww_g) / del_h * nx
769 dwdy = (
w_g(ijk) - ww_g) / del_h * ny
770 dwdz = (
w_g(ijk) - ww_g) / del_h * nz
771 ELSEIF ((.NOT.w_node_at_t).AND.w_node_at_b.AND.
noc_trdg)
THEN 774 dwdx = (
w_g(ijkm) - ww_g) / del_h * nx
775 dwdy = (
w_g(ijkm) - ww_g) / del_h * ny
776 dwdz = (
w_g(ijkm) - ww_g) / del_h * nz
783 lvelgradg(3,1) = dwdx
784 lvelgradg(3,2) = dwdy
785 lvelgradg(3,3) = dwdz
789 lratestraing(p,q) =
half * (lvelgradg(p,q)+lvelgradg(q,p))
double precision, dimension(:), allocatable y_v
double precision, dimension(:), allocatable z_u
integer, dimension(:), allocatable i_of
logical, dimension(:), allocatable wall_u_at
double precision, dimension(dimension_bc) bc_uw_g
double precision, dimension(:), allocatable ody
double precision, dimension(:), allocatable odx
subroutine get_face_vel_gas(IJK, uge, ugw, ugn, ugs, ugt, ugb, ugc
double precision, dimension(:), allocatable x_e
double precision, dimension(:), allocatable x_u
integer, dimension(:), allocatable im1
logical, dimension(:), allocatable wall_v_at
subroutine calc_cg_deriv_vel_gas(IJK, lVelGradG, lRateStrainG)
integer, dimension(dimension_bc) bc_type_enum
subroutine calc_trd_g(lTRD_G)
double precision, parameter undefined
double precision, dimension(:), allocatable y_w
double precision, dimension(:), allocatable z_v
integer, dimension(:), allocatable k_of
logical, dimension(:), allocatable blocked_w_cell_at
subroutine calc_deriv_vel_gas(IJK, lVelGradG, lRateStrainG)
double precision, dimension(:), allocatable x_w
integer, dimension(:), allocatable j_of
integer, dimension(:), allocatable jm1
logical, dimension(:), allocatable wall_w_at
double precision, dimension(:), allocatable ox
logical, dimension(:), allocatable blocked_u_cell_at
double precision, dimension(dimension_bc) bc_hw_g
double precision, dimension(:), allocatable v_g
double precision, dimension(:), allocatable w_g
double precision, dimension(:), allocatable x_v
double precision, parameter half
logical, dimension(:), allocatable cut_cell_at
integer, dimension(:), allocatable km1
double precision, dimension(:), allocatable odz
double precision, dimension(dimension_bc) bc_vw_g
integer, dimension(:), allocatable bc_id
double precision, dimension(:), allocatable u_g
logical, dimension(:), allocatable blocked_v_cell_at
subroutine get_del_h(IJK, TYPE_OF_CELL, X0, Y0, Z0, Del_H, Nx, Ny, Nz)
double precision, dimension(:), allocatable z_w
double precision, dimension(dimension_bc) bc_ww_g
subroutine calc_cg_trd_g(IJK, lTRD_G)
double precision, dimension(:), allocatable y_u
double precision, parameter zero