File: RELATIVE:/../../../mfix.git/model/des/cfwallposvel.f
1
2
3
4
5
6
7
8
9
10
11 SUBROUTINE CFWALLPOSVEL(L, IW, WALL_POS, WALL_VEL)
12
13
14
15
16 USE discretelement
17 USE des_bc
18 USE param
19 USE param1
20 USE parallel
21 USE fldvar
22 USE run
23 USE geometry
24 USE matrix
25 USE indices
26 USE physprop
27 USE drag
28 USE constant
29 USE compar
30 IMPLICIT NONE
31
32
33
34
35 INTEGER, INTENT(IN) :: L
36
37 INTEGER, INTENT(IN) :: IW
38
39 DOUBLE PRECISION, INTENT(INOUT) :: WALL_POS(3)
40
41 DOUBLE PRECISION, INTENT(INOUT) :: WALL_VEL(3)
42
43
44
45
46 INTEGER M
47
48 DOUBLE PRECISION DES_R
49
50
51
52 = ZERO
53 WALL_POS = ZERO
54
55 DES_R = DES_RADIUS(L)
56
57
58
59 = PIJK(L,5)
60
61
62 IF(IW.EQ.1) THEN
63 WALL_POS(1) = WX1 - DES_R
64 WALL_POS(2) = DES_POS_NEW(2,L)
65 IF(DO_K) WALL_POS(3) = DES_POS_NEW(3,L)
66
67 WALL_VEL(1) = ZERO
68 WALL_VEL(2) = DES_BC_Vw_s(IW,M)
69 IF(DO_K) WALL_VEL(3) = DES_BC_Ww_s(IW,M)
70
71 WALL_NORMAL(1,1) = -ONE
72 WALL_NORMAL(1,2) = ZERO
73 WALL_NORMAL(1,3) = ZERO
74
75
76 ELSEIF(IW.EQ.2) THEN
77 WALL_POS(1) = EX2 + DES_R
78 WALL_POS(2) = DES_POS_NEW(2,L)
79 IF(DO_K) WALL_POS(3) = DES_POS_NEW(3,L)
80
81 WALL_VEL(1) = ZERO
82 WALL_VEL(2) = DES_BC_Vw_s(IW,M)
83 IF(DO_K) WALL_VEL(3) = DES_BC_Ww_s(IW,M)
84
85 WALL_NORMAL(2,1) = ONE
86 WALL_NORMAL(2,2) = ZERO
87 WALL_NORMAL(2,3) = ZERO
88
89
90 ELSEIF(IW.EQ.3) THEN
91 WALL_POS(1) = DES_POS_NEW(1,L)
92 WALL_POS(2) = BY1 - DES_R
93 IF(DO_K) WALL_POS(3) = DES_POS_NEW(3,L)
94
95 WALL_VEL(1) = DES_BC_Uw_s(IW,M)
96 WALL_VEL(2) = ZERO
97 IF(DO_K) WALL_VEL(3) = DES_BC_Ww_s(IW,M)
98
99 WALL_NORMAL(3,1) = ZERO
100 WALL_NORMAL(3,2) = -ONE
101 WALL_NORMAL(3,3) = ZERO
102
103
104 ELSEIF(IW.EQ.4) THEN
105 WALL_POS(1) = DES_POS_NEW(1,L)
106 WALL_POS(2) = TY2 + DES_R
107 IF(DO_K) WALL_POS(3) = DES_POS_NEW(3,L)
108
109 WALL_VEL(1) = DES_BC_Uw_s(IW,M)
110 WALL_VEL(2) = ZERO
111 IF(DO_K) WALL_VEL(3) = DES_BC_Ww_s(IW,M)
112
113 WALL_NORMAL(4,1) = ZERO
114 WALL_NORMAL(4,2) = ONE
115 WALL_NORMAL(4,3) = ZERO
116
117
118 ELSEIF(IW.EQ.5) THEN
119 WALL_POS(1) = DES_POS_NEW(1,L)
120 WALL_POS(2) = DES_POS_NEW(2,L)
121 WALL_POS(3) = SZ1 - DES_R
122
123 WALL_VEL(1) = DES_BC_Uw_s(IW,M)
124 WALL_VEL(2) = DES_BC_Vw_s(IW,M)
125 WALL_VEL(3) = ZERO
126
127 WALL_NORMAL(5,1) = ZERO
128 WALL_NORMAL(5,2) = ZERO
129 WALL_NORMAL(5,3) = -ONE
130
131
132 ELSEIF(IW.EQ.6) THEN
133 WALL_POS(1) = DES_POS_NEW(1,L)
134 WALL_POS(2) = DES_POS_NEW(2,L)
135 WALL_POS(3) = NZ2 + DES_R
136
137 WALL_VEL(1) = DES_BC_Uw_s(IW,M)
138 WALL_VEL(2) = DES_BC_Vw_s(IW,M)
139 WALL_VEL(3) = ZERO
140
141 WALL_NORMAL(6,1) = ZERO
142 WALL_NORMAL(6,2) = ZERO
143 WALL_NORMAL(6,3) = ONE
144
145 ENDIF
146
147 RETURN
148 END SUBROUTINE CFWALLPOSVEL
149
150
151
152