MFIX  2016-1
zero_norm_vel.f
Go to the documentation of this file.
1 !vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvC
2 ! C
3 ! Subroutine: ZERO_NORM_VEL C
4 ! Purpose: Set the velocity component normal to a wall to zero C
5 ! C
6 ! Author: M. Syamlal Date: 14-MAY-92 C
7 ! Reviewer: S. Venkatesan Date: 11-DEC-92 C
8 ! C
9 ! Literature/Document References: C
10 ! C
11 ! Variables referenced: C
12 ! Variables modified: C
13 ! Local variables: C
14 ! C
15 !^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^C
16 
17  SUBROUTINE zero_norm_vel
18 
19 !-----------------------------------------------
20 ! Modules
21 !-----------------------------------------------
22  USE param
23  USE param1
24  USE parallel
25  USE geometry
26  USE physprop
27  USE fldvar
28  USE indices
29  USE is
30  USE compar
31  USE discretelement
32  USE mfix_pic
33  USE functions
34 
35  IMPLICIT NONE
36 !-----------------------------------------------
37 ! Local variables
38 !-----------------------------------------------
39 !
40  INTEGER :: ISV
41 ! Indicies
42  INTEGER :: IJK, IMJK, IJMK, IJKM
43  INTEGER :: M
44 
45 !!$omp parallel do private( IMJK, IJMK, IJKM)
46 
47  DO ijk = ijkstart3, ijkend3
48 
49  IF (.NOT.wall_at(ijk)) THEN
50  IF (ip_at_e(ijk)) u_g(ijk) = zero
51  IF (ip_at_n(ijk)) v_g(ijk) = zero
52  IF (ip_at_t(ijk)) w_g(ijk) = zero
53  ELSE
54  imjk = im_of(ijk)
55  ijmk = jm_of(ijk)
56  ijkm = km_of(ijk)
57  u_g(ijk) = zero
58  v_g(ijk) = zero
59  w_g(ijk) = zero
60  IF (.NOT.(cyclic_at(ijk) .AND. (i_of(ijk)==imax2 .OR. &
61  i_of(ijk)==imax3))) u_g(imjk) = zero
62  IF (.NOT.(cyclic_at(ijk) .AND. (j_of(ijk)==jmax2 .OR. &
63  j_of(ijk)==jmax3))) v_g(ijmk) = zero
64  IF (.NOT.(cyclic_at(ijk) .AND. (k_of(ijk)==kmax2 .OR. &
65  k_of(ijk)==kmax3))) w_g(ijkm) = zero
66  ENDIF
67  ENDDO ! end do (ijk=ijkstart3,ijkend3)
68 
69 
70  IF (.NOT.discrete_element .OR. des_continuum_hybrid .OR.mppic) THEN
71  DO m = 1, mmax
72 !!$omp parallel do private( ISV, IMJK, IJMK, IJKM)
73  DO ijk = ijkstart3, ijkend3
74 
75  IF (.NOT.wall_at(ijk)) THEN
76  IF (ip_at_e(ijk)) THEN
77  u_s(ijk,m) = zero
78  ELSEIF (sip_at_e(ijk)) THEN
79  isv = flag_e(ijk) - 1000
80  u_s(ijk,m) = is_vel_s(isv,m)
81  ENDIF
82  IF (ip_at_n(ijk)) THEN
83  v_s(ijk,m) = zero
84  ELSEIF (sip_at_n(ijk)) THEN
85  isv = flag_n(ijk) - 1000
86  v_s(ijk,m) = is_vel_s(isv,m)
87  ENDIF
88  IF (ip_at_t(ijk)) THEN
89  w_s(ijk,m) = zero
90  ELSEIF (sip_at_t(ijk)) THEN
91  isv = flag_t(ijk) - 1000
92  w_s(ijk,m) = is_vel_s(isv,m)
93  ENDIF
94  ELSE
95  imjk = im_of(ijk)
96  ijmk = jm_of(ijk)
97  ijkm = km_of(ijk)
98  u_s(ijk,m) = zero
99  v_s(ijk,m) = zero
100  w_s(ijk,m) = zero
101  IF (.NOT.(cyclic_at(ijk) .AND. (i_of(ijk)==imax2 .OR. &
102  i_of(ijk)==imax3))) u_s(imjk,m) = zero
103  IF (.NOT.(cyclic_at(ijk) .AND. (j_of(ijk)==jmax2 .OR. &
104  j_of(ijk)==jmax3))) v_s(ijmk,m) = zero
105  IF (.NOT.(cyclic_at(ijk) .AND. (k_of(ijk)==kmax2 .OR. &
106  k_of(ijk)==kmax3))) w_s(ijkm,m) = zero
107  ENDIF
108  ENDDO ! end do (ijk=ijkstart3,ijkend3)
109  ENDDO ! end do (m=1,mmax)
110  ENDIF ! endif (.not.discrete_element)
111 
112  RETURN
113 
114  END SUBROUTINE zero_norm_vel
115 
116 
117 
double precision, dimension(:,:), allocatable v_s
Definition: fldvar_mod.f:105
integer imax2
Definition: geometry_mod.f:61
integer, dimension(:), allocatable i_of
Definition: indices_mod.f:45
integer ijkend3
Definition: compar_mod.f:80
integer imax3
Definition: geometry_mod.f:91
double precision, dimension(:,:), allocatable w_s
Definition: fldvar_mod.f:117
subroutine zero_norm_vel
Definition: zero_norm_vel.f:18
Definition: is_mod.f:11
double precision, dimension(:,:), allocatable u_s
Definition: fldvar_mod.f:93
integer, dimension(:), allocatable k_of
Definition: indices_mod.f:47
integer mmax
Definition: physprop_mod.f:19
integer, dimension(:), allocatable j_of
Definition: indices_mod.f:46
integer jmax2
Definition: geometry_mod.f:63
double precision, dimension(dimension_is, dim_m) is_vel_s
Definition: is_mod.f:88
integer jmax3
Definition: geometry_mod.f:91
double precision, dimension(:), allocatable v_g
Definition: fldvar_mod.f:99
integer kmax2
Definition: geometry_mod.f:65
double precision, dimension(:), allocatable w_g
Definition: fldvar_mod.f:111
Definition: param_mod.f:2
integer, dimension(:), allocatable flag_e
Definition: geometry_mod.f:103
integer kmax3
Definition: geometry_mod.f:91
integer ijkstart3
Definition: compar_mod.f:80
double precision, dimension(:), allocatable u_g
Definition: fldvar_mod.f:87
logical mppic
Definition: mfix_pic_mod.f:14
integer, dimension(:), allocatable flag_n
Definition: geometry_mod.f:105
double precision, parameter zero
Definition: param1_mod.f:27
integer, dimension(:), allocatable flag_t
Definition: geometry_mod.f:107