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