File: /nfs/home/0/users/jenkins/mfix.git/model/set_constprop.f
1
2
3
4
5
6
7
8
9
10
11
12 SUBROUTINE SET_CONSTPROP
13
14
15
16
17 USE param
18 USE param1, only: zero, half, one, undefined
19 USE fldvar
20 USE visc_s
21 USE visc_g
22 USE energy
23 USE geometry
24 USE indices
25 USE physprop
26 USE constant, only: ep_s_max_ratio, d_p_ratio, ep_s_max, m_max
27 use constant, only: ep_star, l_scale0
28 USE run
29 USE drag, only: f_gs, f_ss
30 USE compar
31 use kintheory
32 use mms, only: use_mms
33 use functions
34
35 IMPLICIT NONE
36
37
38
39
40 INTEGER :: IJK, M, I, J
41 DOUBLE PRECISION :: old_value, DP_TMP(SMAX)
42
43
44
45 = ZERO
46 LAMBDA_GT = ZERO
47 MU_s = ZERO
48 LAMBDA_s_c = ZERO
49 LAMBDA_s = ZERO
50 K_g = ZERO
51 K_s = ZERO
52 DIF_g = ZERO
53 DIF_S = ZERO
54 F_GS = ZERO
55 F_SS = ZERO
56
57
58 = (ENERGY_EQ .OR. L_SCALE0/=ZERO .OR. K_EPSILON)
59
60
61 = HALF
62
63
64 IF (KT_TYPE_ENUM == IA_2005) THEN
65 MU_sM_ip = ZERO
66 MU_sL_ip = ZERO
67 XI_sM_ip = ZERO
68 XI_sL_ip = ZERO
69 Fnu_s_ip = ZERO
70 FT_sM_ip = ZERO
71 FT_sL_ip = ZERO
72 Kth_sL_ip = ZERO
73 Knu_sM_ip = ZERO
74 Knu_sL_ip = ZERO
75 Kvel_s_ip = ZERO
76 ED_ss_ip = ZERO
77 EDvel_sL_ip = ZERO
78 ENDIF
79 IF (KT_TYPE_ENUM == IA_2005 .OR. KT_TYPE_ENUM == GD_1999 .OR. &
80 KT_TYPE_ENUM == GTSH_2012) THEN
81 EDT_s_ip = ZERO
82 EDvel_sM_ip = ZERO
83 ENDIF
84 IF(KT_TYPE_ENUM == GTSH_2012) THEN
85 A2_gtsh = ZERO
86 xsi_gtsh = zero
87 ENDIF
88
89
90 DO IJK = ijkstart3, ijkend3
91
92
93 IF (WALL_AT(IJK) .AND. .NOT.USE_MMS) THEN
94 RO_G(IJK) = ZERO
95 MU_G(IJK) = ZERO
96 K_G(IJK) = ZERO
97 C_PG(IJK) = ZERO
98 MW_MIX_G(IJK) = ZERO
99 ELSE
100
101 IF (RO_G0 /= UNDEFINED) RO_G(IJK) = RO_G0
102 IF (C_PG0 /= UNDEFINED) C_PG(IJK) = C_PG0
103 IF (MW_AVG /= UNDEFINED) MW_MIX_G(IJK) = MW_AVG
104
105
106 IF(FLUID_AT(IJK) .OR. USE_MMS) THEN
107 IF (MU_G0 /= UNDEFINED) THEN
108 MU_G(IJK) = MU_G0
109 MU_GT(IJK) = MU_G0
110 LAMBDA_GT(IJK) = -(2.0d0/3.0d0)*MU_G0
111 ENDIF
112 IF (K_G0 /= UNDEFINED) K_G(IJK) = K_G0
113 IF (DIF_G0 /= UNDEFINED) DIF_G(IJK,:NMAX(0)) = DIF_G0
114 ELSE
115
116
117 IF (MU_G0 /= UNDEFINED) THEN
118 MU_G(IJK) = ZERO
119 MU_GT(IJK) = ZERO
120 LAMBDA_GT(IJK) = ZERO
121 ENDIF
122 IF (K_G0 /= UNDEFINED) K_G(IJK) = ZERO
123 IF (DIF_G0 /= UNDEFINED) DIF_G(IJK,:NMAX(0)) = ZERO
124 ENDIF
125 ENDIF
126
127 ENDDO
128
129
130 DO M = 1, MMAX
131 DO IJK = ijkstart3, ijkend3
132
133 IF (WALL_AT(IJK) .AND. .NOT.USE_MMS) THEN
134 P_S(IJK,M) = ZERO
135 MU_S(IJK,M) = ZERO
136 LAMBDA_S(IJK,M) = ZERO
137 ALPHA_S(IJK,M) = ZERO
138 K_S(IJK,M) = ZERO
139 C_PS(IJK,M) = ZERO
140 D_p(IJK,M) = ZERO
141 RO_S(IJK,M) = ZERO
142 ELSE
143
144 IF (RO_S0(M) /= UNDEFINED) RO_S(IJK,M) = RO_S0(M)
145 IF (C_PS0(M) /= UNDEFINED) C_PS(IJK,M) = C_PS0(M)
146 IF (D_P0(M) /= UNDEFINED) D_P(IJK,M) = D_P0(M)
147
148
149 IF(FLUID_AT(IJK) .OR. USE_MMS) THEN
150 IF (MU_S0 /= UNDEFINED) THEN
151 P_S(IJK,M) = ZERO
152 MU_S(IJK,M) = MU_S0
153 LAMBDA_S(IJK,M) = (-2./3.)*MU_S(IJK,M)
154 ALPHA_S(IJK,M) = ZERO
155 ENDIF
156 IF (K_S0(M) /= UNDEFINED) K_S(IJK,M) = K_S0(M)
157 IF (DIF_S0 /= UNDEFINED) DIF_S(IJK,M,:NMAX(M)) = DIF_S0
158 ELSE
159
160
161 IF (MU_S0 /= UNDEFINED) THEN
162 P_S(IJK,M) = ZERO
163 MU_S(IJK,M) = ZERO
164 LAMBDA_S(IJK,M) = ZERO
165 ALPHA_S(IJK,M) = ZERO
166 ENDIF
167 IF (K_S0(M) /= UNDEFINED) K_S(IJK,M) = ZERO
168 IF (DIF_S0 /= UNDEFINED) DIF_S(IJK,M,:NMAX(M)) = ZERO
169 ENDIF
170 ENDIF
171
172
173
174 (ijk) = ep_star
175
176 IF(BLENDING_STRESS.AND.TANH_BLEND) THEN
177 ep_g_blend_start(ijk) = ep_star_array(ijk) * 0.99d0
178 ep_g_blend_end(ijk) = ep_star_array(ijk) * 1.01d0
179 ELSE IF(BLENDING_STRESS.AND.SIGM_BLEND) THEN
180 ep_g_blend_start(ijk) = ep_star * 0.97d0
181 ep_g_blend_end(ijk) = ep_star * 1.01d0
182 ELSE
183 ep_g_blend_start(ijk) = ep_star_array(ijk)
184 ep_g_blend_end(ijk) = ep_star_array(ijk)
185 ENDIF
186
187 ENDDO
188 ENDDO
189
190
191 IF (RO_G0 == ZERO .AND. MMAX > 0) THEN
192 IF(allocated(F_GS)) F_GS = ZERO
193 ENDIF
194
195
196
197
198 IF(YU_STANDISH .OR. FEDORS_LANDEL) THEN
199 DO M = 1, SMAX
200 IF(EP_S_MAX(M) == UNDEFINED) EP_S_MAX(M) = ONE-EP_STAR
201 ENDDO
202
203 IF (.NOT.CALL_DQMOM) THEN
204
205
206 IF (SMAX == 2) THEN
207 ep_s_max_ratio(1,2) = ep_s_max(1)/ &
208 (ep_s_max(1)+(1.-ep_s_max(1))*ep_s_max(2))
209 ENDIF
210
211
212 DO I = 1, SMAX
213 DP_TMP(I) = D_P0(I)
214 M_MAX(I) = I
215 ENDDO
216
217
218
219
220 DO I = 1, SMAX
221 DO J = I, SMAX
222 IF(DP_TMP(I) < DP_TMP(J)) THEN
223 old_value = DP_TMP(I)
224 DP_TMP(I) = DP_TMP(J)
225 DP_TMP(J) = old_value
226 ENDIF
227 ENDDO
228 ENDDO
229
230 DO I = 1, SMAX
231 DO J = 1, SMAX
232 IF(DP_TMP(I) == D_P0(J) .AND. D_P0(I) .NE. D_P0(J)) THEN
233 M_MAX(I) = J
234 ENDIF
235 ENDDO
236 ENDDO
237 ENDIF
238 ELSE
239 (:) = ZERO
240 EP_S_MAX_RATIO(:,:) = ZERO
241 D_P_RATIO(:,:) = ZERO
242 M_MAX(:) = ZERO
243 ENDIF
244
245 RETURN
246 END SUBROUTINE SET_CONSTPROP
247