@@ -67,9 +67,10 @@ SUBROUTINE SETTLING_VELOCITY(NM)
6767 PRES_G= 0.5_EB * (PBAR(K,PRESSURE_ZONE(I,J,K))+ PBAR(K,PRESSURE_ZONE(I+1 ,J,K)))
6868 DTDN = - (TMP(I+1 ,J,K)- TMP(I,J,K))* RDXN(I)
6969 CALL GET_VISCOSITY(ZZ_GET,MU_G,TMP_G)
70- KN_FAC = SQRT (0.5_EB * PI/ (PRES_G* RHO_G))* MU_G
70+ ! Kn=2 lambda/d, lambda has sqrt(1/2). kn_fac has 2*sqrt(1/2)=sqrt(4/2)=sqrt(2)
71+ KN_FAC = SQRT (2._EB * PI/ (PRES_G* RHO_G))* MU_G
7172 IF (THERMOPHORETIC_SETTLING) THEN
72- KN = KN_FAC/ SPECIES_MIXTURE(N)% THERMOPHORETIC_DIAMETER
73+ KN = KN_FAC/ SPECIES_MIXTURE(N)% THERMOPHORETIC_DIAMETER
7374 CN = CUNNINGHAM(KN)
7475 CALL GET_CONDUCTIVITY(ZZ_GET,K_G,TMP_G)
7576 ALPHA = K_G/ SPECIES_MIXTURE(N)% CONDUCTIVITY_SOLID
@@ -89,7 +90,7 @@ SUBROUTINE SETTLING_VELOCITY(NM)
8990 PRES_G= 0.5_EB * (PBAR(K,PRESSURE_ZONE(I,J,K))+ PBAR(K,PRESSURE_ZONE(I,J+1 ,K)))
9091 DTDN = - (TMP(I,J+1 ,K)- TMP(I,J,K))* RDYN(J)
9192 CALL GET_VISCOSITY(ZZ_GET,MU_G,TMP_G)
92- KN_FAC = SQRT (0.5_EB * PI/ (PRES_G* RHO_G))* MU_G
93+ KN_FAC = SQRT (2._EB * PI/ (PRES_G* RHO_G))* MU_G
9394 IF (THERMOPHORETIC_SETTLING) THEN
9495 KN = KN_FAC/ SPECIES_MIXTURE(N)% THERMOPHORETIC_DIAMETER
9596 CN = CUNNINGHAM(KN)
@@ -111,7 +112,7 @@ SUBROUTINE SETTLING_VELOCITY(NM)
111112 PRES_G= 0.5_EB * (PBAR(K,PRESSURE_ZONE(I,J,K))+ PBAR(K,PRESSURE_ZONE(I,J,K+1 )))
112113 DTDN = - (TMP(I,J,K+1 )- TMP(I,J,K))* RDZN(K)
113114 CALL GET_VISCOSITY(ZZ_GET,MU_G,TMP_G)
114- KN_FAC = SQRT (0.5_EB * PI/ (PRES_G* RHO_G))* MU_G
115+ KN_FAC = SQRT (2._EB * PI/ (PRES_G* RHO_G))* MU_G
115116 IF (THERMOPHORETIC_SETTLING) THEN
116117 KN = KN_FAC/ SPECIES_MIXTURE(N)% THERMOPHORETIC_DIAMETER
117118 CN = CUNNINGHAM(KN)
@@ -177,9 +178,9 @@ END SUBROUTINE SETTLING_VELOCITY
177178
178179
179180SUBROUTINE INITIALIZE_AGGLOMERATION
181+ USE GLOBAL_CONSTANTS, ONLY: GRAVITATIONAL_SETTLING
180182INTEGER :: N,I,II,III
181183REAL (EB) :: E_PK,MIN_PARTICLE_MASS,MAX_PARTICLE_MASS
182-
183184ALLOCATE (BIN_S(N_AGGLOMERATION_SPECIES))
184185ALLOCATE (BIN_M(N_AGGLOMERATION_SPECIES,0 :MAXVAL (N_PARTICLE_BINS)))
185186ALLOCATE (BIN_X(N_AGGLOMERATION_SPECIES,1 :MAXVAL (N_PARTICLE_BINS)))
@@ -211,8 +212,6 @@ SUBROUTINE INITIALIZE_AGGLOMERATION
211212 BIN_X(N,I) = 2._EB * BIN_M(N,I)/ (1._EB + BIN_S(N))
212213 ENDDO
213214
214-
215-
216215 DO I= 1 ,N_PARTICLE_BINS(N)
217216 PARTICLE_RADIUS(N,I) = (BIN_X(N,I) / FOTHPI / SPECIES(AGGLOMERATION_SPEC_INDEX(N))% DENSITY_SOLID)** ONTH
218217 MOBILITY_FAC(N,I) = 1._EB / (6._EB * PI* PARTICLE_RADIUS(N,I))
@@ -222,7 +221,11 @@ SUBROUTINE INITIALIZE_AGGLOMERATION
222221 DO II= 1 ,N_PARTICLE_BINS(N)
223222 PARTICLE_MASS(N,I,II) = BIN_X(N,I) + BIN_X(N,II)
224223 E_PK = MIN (PARTICLE_RADIUS(N,I),PARTICLE_RADIUS(N,II))** 2 / (2._EB * (PARTICLE_RADIUS(N,I)+ PARTICLE_RADIUS(N,II))** 2 )
225- PHI_G_FAC(N,I,II) = E_PK* (PARTICLE_RADIUS(N,I)+ PARTICLE_RADIUS(N,II))** 2
224+ IF (GRAVITATIONAL_SETTLING) THEN
225+ PHI_G_FAC(N,I,II) = E_PK* (PARTICLE_RADIUS(N,I)+ PARTICLE_RADIUS(N,II))** 2
226+ ELSE
227+ PHI_G_FAC(N,I,II) = 0._EB
228+ ENDIF
226229 PHI_B_FAC(N,I,II)= 4._EB * PI* K_BOLTZMANN* (PARTICLE_RADIUS(N,I)+ PARTICLE_RADIUS(N,II))
227230 ! Check what Re and r are for PHI_I and _S
228231 PHI_S_FAC(N,I,II) = E_PK* (PARTICLE_RADIUS(N,I)+ PARTICLE_RADIUS(N,II))** 3 * SQRT (8._EB * PI/ 15._EB )
@@ -234,21 +237,21 @@ SUBROUTINE INITIALIZE_AGGLOMERATION
234237 BINDO:DO III= 2 ,N_PARTICLE_BINS(N)
235238 IF (PARTICLE_MASS(N,I,II) > BIN_X(N,N_PARTICLE_BINS(N))) THEN
236239 BIN_ETA_INDEX(N,I,II,:) = N_PARTICLE_BINS(N)
237- BIN_ETA(N,I,II,:) = 0.5_EB * BIN_X (N,N_PARTICLE_BINS(N)) / PARTICLE_MASS (N,I,II )
240+ BIN_ETA(N,I,II,:) = 0.5_EB * PARTICLE_MASS (N,I,II) / BIN_X (N,N_PARTICLE_BINS(N) )
238241 EXIT BINDO
239242 ELSE
240243 IF (PARTICLE_MASS(N,I,II) > BIN_X(N,III-1 ) .AND. PARTICLE_MASS(N,I,II) < BIN_X(N,III)) THEN
241244 BIN_ETA_INDEX(N,I,II,1 ) = III-1
242245 BIN_ETA(N,I,II,1 ) = (BIN_X(N,III)- PARTICLE_MASS(N,I,II))/ (BIN_X(N,III)- BIN_X(N,III-1 ))
243246 BIN_ETA_INDEX(N,I,II,2 ) = III
244247 BIN_ETA(N,I,II,2 ) = (PARTICLE_MASS(N,I,II)- BIN_X(N,III-1 ))/ (BIN_X(N,III)- BIN_X(N,III-1 ))
245- IF (I== II) BIN_ETA(N,I,II,:) = BIN_ETA(N,I,II,:) * 0.5_EB
246248 EXIT BINDO
247249 ENDIF
248250 ENDIF
249251 ENDDO BINDO
250252 ENDDO
251253 ENDDO
254+
252255 BIN_ETA(N,N_PARTICLE_BINS(N),N_PARTICLE_BINS(N),1 ) = 1._EB
253256 BIN_ETA_INDEX(N,N_PARTICLE_BINS(N),N_PARTICLE_BINS(N),1 ) = N_PARTICLE_BINS(N)
254257 BIN_ETA(N,N_PARTICLE_BINS(N),N_PARTICLE_BINS(N),2 ) = 0._EB
@@ -265,8 +268,8 @@ SUBROUTINE CALC_AGGLOMERATION(DT,NM)
265268INTEGER , INTENT (IN ) :: NM
266269REAL (EB), INTENT (IN ) :: DT
267270REAL (EB) :: DUDX,DVDY,DWDZ,ONTHDIV,S11,S22,S33,DUDY,DUDZ,DVDX,DVDZ,DWDX,DWDY,S12,S23,S13,STRAIN_RATE,DISSIPATION_RATE
268- REAL (EB) :: KN,MFP ,N_I(MAXVAL (N_PARTICLE_BINS)),N0(MAXVAL (N_PARTICLE_BINS)),N1(MAXVAL (N_PARTICLE_BINS)),&
269- N2(MAXVAL (N_PARTICLE_BINS)),N3(MAXVAL (N_PARTICLE_BINS)),&
271+ REAL (EB) :: KN,KN_FAC ,N_I(MAXVAL (N_PARTICLE_BINS)),N0(MAXVAL (N_PARTICLE_BINS)),N1(MAXVAL (N_PARTICLE_BINS)),&
272+ N2(MAXVAL (N_PARTICLE_BINS)),N3(MAXVAL (N_PARTICLE_BINS)),DN, &
270273 RHO_G,TMP_G,MUG,TERMINAL(MAXVAL (N_PARTICLE_BINS)),&
271274 FU,MOBILITY(MAXVAL (N_PARTICLE_BINS)),ZZ_GET(1 :N_TRACKED_SPECIES),AM,AMT(MAXVAL (N_PARTICLE_BINS)),&
272275 PHI_B,PHI_S,PHI_G,PHI_I,PHI(MAXVAL (N_PARTICLE_BINS),MAXVAL (N_PARTICLE_BINS)),VREL,FU1,FU2,DT_SUBSTEP,DT_SUM,TOL
@@ -287,7 +290,7 @@ SUBROUTINE CALC_AGGLOMERATION(DT,NM)
287290 ZZ_GET(1 :N_TRACKED_SPECIES) = ZZ(I,J,K,1 :N_TRACKED_SPECIES)
288291 TMP_G = TMP(I,J,K)
289292 CALL GET_VISCOSITY(ZZ_GET,MUG,TMP_G)
290- MFP = MUG* SQRT (0.5_EB * PI/ (PBAR(K,PRESSURE_ZONE(I,J,K))* RHO_G))
293+ KN_FAC = MUG* SQRT (PI/ (2._EB * PBAR(K,PRESSURE_ZONE(I,J,K))* RHO_G))
291294 IM1 = MAX (0 ,I-1 )
292295 JM1 = MAX (0 ,J-1 )
293296 KM1 = MAX (0 ,K-1 )
@@ -316,8 +319,9 @@ SUBROUTINE CALC_AGGLOMERATION(DT,NM)
316319 STRAIN_RATE = 2._EB * (S11** 2 + S22** 2 + S33** 2 + 2._EB * (S12** 2 + S13** 2 + S23** 2 ))
317320 DISSIPATION_RATE = MU(I,J,K)/ RHO_G* STRAIN_RATE
318321 N_I = N0
322+
319323 DO N= 1 ,N_PARTICLE_BINS(NS)
320- KN= 0.5_EB * MFP / PARTICLE_RADIUS(NS,N)
324+ KN= KN_FAC / PARTICLE_RADIUS(NS,N)
321325 ! Verify CN
322326 MOBILITY(N) = CUNNINGHAM(KN)* MOBILITY_FAC(NS,N)/ MUG
323327 TERMINAL(N) = MOBILITY(N)* GRAV* BIN_X(NS,N)
@@ -326,6 +330,7 @@ SUBROUTINE CALC_AGGLOMERATION(DT,NM)
326330 (3._EB * PARTICLE_RADIUS(NS,N)* AM)- PARTICLE_RADIUS(NS,N)
327331 ENDDO
328332 PHI = 0._EB
333+
329334 DO N= 1 ,N_PARTICLE_BINS(NS)
330335 DO NN= 1 ,N_PARTICLE_BINS(NS)
331336 IF (NN< N) CYCLE
@@ -356,15 +361,15 @@ SUBROUTINE CALC_AGGLOMERATION(DT,NM)
356361 DO NN= N,N_PARTICLE_BINS(NS)
357362 IF (N0(N)<MIN_AGGLOMERATION .OR. N0(NN)<MIN_AGGLOMERATION) CYCLE
358363 ! Remove particles that agglomerate
359- N1(N)= N1(N)- PHI(NN,N)* N0(N)* N0(NN)* DT_SUBSTEP
360- IF (NN/= N) N1(NN)= N1(NN)- PHI(NN,N)* N0(N)* N0(NN)* DT_SUBSTEP
364+ DN = PHI(NN,N)* N0(N)* N0(NN)* DT_SUBSTEP
365+ N1(N) = N1(N) - DN
366+ N1(NN) = N1(NN) - DN
361367 ! Create new particles from agglomeration
362- N2(BIN_ETA_INDEX(NS,N,NN,1 )) = N2(BIN_ETA_INDEX(NS,N,NN,1 )) + &
363- BIN_ETA(NS,N,NN,1 )* PHI(N,NN)* N0(N)* N0(NN)* DT_SUBSTEP
364- N2(BIN_ETA_INDEX(NS,N,NN,2 )) = N2(BIN_ETA_INDEX(NS,N,NN,2 )) + &
365- BIN_ETA(NS,N,NN,2 )* PHI(N,NN)* N0(N)* N0(NN)* DT_SUBSTEP
368+ N2(BIN_ETA_INDEX(NS,N,NN,1 )) = N2(BIN_ETA_INDEX(NS,N,NN,1 )) + BIN_ETA(NS,N,NN,1 ) * DN
369+ N2(BIN_ETA_INDEX(NS,N,NN,2 )) = N2(BIN_ETA_INDEX(NS,N,NN,2 )) + BIN_ETA(NS,N,NN,2 ) * DN
366370 ENDDO
367371 ENDDO AGGLOMERATE_LOOP
372+
368373 N3 = N1 + N2
369374 N3 = N3 + N0
370375 TOL = MAXVAL ((N0- N3)/ (N0+ TINY_EB))
0 commit comments