@@ -118,8 +118,9 @@ SUBROUTINE WALL_BC(T,DT,NM)
118118 ENDIF
119119
120120 IF (DEPOSITION .AND. .NOT. INITIALIZATION_PHASE .AND. CORRECTOR .AND. .NOT. SOLID_PHASE_ONLY) THEN
121- IF (WC% BOUNDARY_TYPE== SOLID_BOUNDARY .AND. B1% NODE_INDEX== 0 .AND. ABS (SF% VEL)<TWO_EPSILON_EB .AND. &
122- ANY (ABS (SF% MASS_FLUX)<TWO_EPSILON_EB) .AND. ABS (SF% VOLUME_FLOW)<TWO_EPSILON_EB) THEN
121+ IF (WC% BOUNDARY_TYPE== SOLID_BOUNDARY .AND. &
122+ (ANY (SF% LEAK_PATH> 0 ) .OR. &
123+ (B1% NODE_INDEX== 0 .AND. SF% VEL< TWO_EPSILON_EB .AND. SF% VOLUME_FLOW< TWO_EPSILON_EB))) THEN
123124 CALL CALC_DEPOSITION(DT,BC,B1,B2,WALL_INDEX= IW)
124125 ENDIF
125126 ENDIF
@@ -173,8 +174,9 @@ SUBROUTINE WALL_BC(T,DT,NM)
173174 ENDIF
174175
175176 IF (DEPOSITION .AND. .NOT. INITIALIZATION_PHASE .AND. CORRECTOR .AND. .NOT. SOLID_PHASE_ONLY) THEN
176- IF (CFA% BOUNDARY_TYPE== SOLID_BOUNDARY .AND. B1% NODE_INDEX== 0 .AND. ABS (SF% VEL)<TWO_EPSILON_EB .AND. &
177- ANY (ABS (SF% MASS_FLUX)<TWO_EPSILON_EB) .AND. ABS (SF% VOLUME_FLOW)<TWO_EPSILON_EB) THEN
177+ IF (CFA% BOUNDARY_TYPE== SOLID_BOUNDARY .AND. &
178+ (ANY (SF% LEAK_PATH> 0 ) .OR. &
179+ (B1% NODE_INDEX== 0 .AND. SF% VEL< TWO_EPSILON_EB .AND. SF% VOLUME_FLOW< TWO_EPSILON_EB))) THEN
178180 CALL CALC_DEPOSITION(DT,BC,B1,B2,CFACE_INDEX= ICF)
179181 ENDIF
180182 ENDIF
@@ -1607,19 +1609,28 @@ SUBROUTINE CALC_DEPOSITION(DT,BC,B1,B2,WALL_INDEX,CFACE_INDEX)
16071609REAL (EB), PARAMETER :: CM3= 3._EB * CM,CS2= CS* 2._EB ,CT2= 2._EB * CT
16081610REAL (EB), PARAMETER :: ZZ_MIN_DEP= 1.E-14_EB
16091611REAL (EB) :: U_THERM,U_TURB,MU_G,Y_AEROSOL,ZZ_GET(1 :N_TRACKED_SPECIES),YDEP,K_G,TMP_FILM,ALPHA,DTMPDX,&
1610- TAU_PLUS,U_GRAV,D_SOLID,MW_RATIO,KN,KN_FAC,RSUM_G,ZZ_G(1 :N_TRACKED_SPECIES),TAU_PLUS_C
1612+ TAU_PLUS,U_GRAV,D_SOLID,MW_RATIO,KN,KN_FAC,RSUM_G,ZZ_G(1 :N_TRACKED_SPECIES),TAU_PLUS_C,U_NORMAL
16111613TYPE (BOUNDARY_COORD_TYPE), POINTER :: BC
16121614TYPE (BOUNDARY_PROP1_TYPE), POINTER :: B1
16131615TYPE (BOUNDARY_PROP2_TYPE), POINTER :: B2
1616+ TYPE (SURFACE_TYPE), POINTER :: SFD
16141617
16151618IF (PRESENT (WALL_INDEX)) THEN
1619+ SFD= >SURFACE(WALL(WALL_INDEX)% SURF_INDEX)
16161620 RSUM_G = RSUM(BC% IIG,BC% JJG,BC% KKG)
16171621 ZZ_G(1 :N_TRACKED_SPECIES) = ZZ(BC% IIG,BC% JJG,BC% KKG,1 :N_TRACKED_SPECIES)
16181622ELSEIF (PRESENT (CFACE_INDEX)) THEN
1623+ SFD= >SURFACE(CFACE(CFACE_INDEX)% SURF_INDEX)
16191624 RSUM_G= CFACE(CFACE_INDEX)% RSUM_G
16201625 ZZ_G(1 :N_TRACKED_SPECIES) = B1% ZZ_G(1 :N_TRACKED_SPECIES)
16211626ENDIF
16221627
1628+ IF (ANY (SFD% LEAK_PATH> 0 )) THEN
1629+ U_NORMAL = 0._EB
1630+ ELSE
1631+ U_NORMAL = B1% U_NORMAL
1632+ ENDIF
1633+
16231634SMIX_LOOP: DO N= 1 ,N_TRACKED_SPECIES
16241635
16251636 ZZ_GET(1 :N_TRACKED_SPECIES) = MAX (0._EB ,ZZ_G(1 :N_TRACKED_SPECIES))
@@ -1662,16 +1673,14 @@ SUBROUTINE CALC_DEPOSITION(DT,BC,B1,B2,WALL_INDEX,CFACE_INDEX)
16621673 U_TURB = B2% U_TAU * 0.17_EB
16631674 ENDIF
16641675 ENDIF
1665-
1666- B2% V_DEP = MAX (0._EB ,U_THERM+ U_TURB+ U_GRAV+ B1% U_NORMAL)
1676+ B2% V_DEP = MAX (0._EB ,U_THERM+ U_TURB+ U_GRAV+ U_NORMAL)
16671677 IF (B2% V_DEP <= TWO_EPSILON_EB) CYCLE SMIX_LOOP
16681678 ZZ_GET = ZZ_GET * B1% RHO_G
16691679 Y_AEROSOL = ZZ_GET(N)
16701680 YDEP = Y_AEROSOL* MIN (1._EB ,(B2% V_DEP)* DT* B1% RDN)
16711681 ZZ_GET(N) = Y_AEROSOL - YDEP
16721682 IF (SM% AWM_INDEX > 0 ) B1% AWM_AEROSOL(SM% AWM_INDEX)= B1% AWM_AEROSOL(SM% AWM_INDEX)+ YDEP/ B1% RDN
16731683 IF (SS% AWM_INDEX > 0 ) B1% AWM_AEROSOL(SS% AWM_INDEX)= B1% AWM_AEROSOL(SS% AWM_INDEX)+ YDEP/ B1% RDN
1674-
16751684 ! $OMP CRITICAL
16761685 D_SOURCE(BC% IIG,BC% JJG,BC% KKG) = D_SOURCE(BC% IIG,BC% JJG,BC% KKG) - MW_RATIO* YDEP / B1% RHO_G / DT
16771686 M_DOT_PPP(BC% IIG,BC% JJG,BC% KKG,N) = M_DOT_PPP(BC% IIG,BC% JJG,BC% KKG,N) - YDEP / DT
0 commit comments