Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 17 additions & 8 deletions Source/wall.f90
Original file line number Diff line number Diff line change
Expand Up @@ -118,8 +118,9 @@ SUBROUTINE WALL_BC(T,DT,NM)
ENDIF

IF (DEPOSITION .AND. .NOT.INITIALIZATION_PHASE .AND. CORRECTOR .AND. .NOT.SOLID_PHASE_ONLY) THEN
IF (WC%BOUNDARY_TYPE==SOLID_BOUNDARY .AND. B1%NODE_INDEX==0 .AND. ABS(SF%VEL)<TWO_EPSILON_EB .AND. &
ANY(ABS(SF%MASS_FLUX)<TWO_EPSILON_EB) .AND. ABS(SF%VOLUME_FLOW)<TWO_EPSILON_EB) THEN
IF (WC%BOUNDARY_TYPE==SOLID_BOUNDARY .AND. &
(ANY(SF%LEAK_PATH>0) .OR. &
(B1%NODE_INDEX==0 .AND. SF%VEL<TWO_EPSILON_EB .AND. SF%VOLUME_FLOW<TWO_EPSILON_EB))) THEN
CALL CALC_DEPOSITION(DT,BC,B1,B2,WALL_INDEX=IW)
ENDIF
ENDIF
Expand Down Expand Up @@ -173,8 +174,9 @@ SUBROUTINE WALL_BC(T,DT,NM)
ENDIF

IF (DEPOSITION .AND. .NOT.INITIALIZATION_PHASE .AND. CORRECTOR .AND. .NOT.SOLID_PHASE_ONLY) THEN
IF (CFA%BOUNDARY_TYPE==SOLID_BOUNDARY .AND. B1%NODE_INDEX==0 .AND. ABS(SF%VEL)<TWO_EPSILON_EB .AND. &
ANY(ABS(SF%MASS_FLUX)<TWO_EPSILON_EB) .AND. ABS(SF%VOLUME_FLOW)<TWO_EPSILON_EB) THEN
IF (CFA%BOUNDARY_TYPE==SOLID_BOUNDARY .AND. &
(ANY(SF%LEAK_PATH>0) .OR. &
(B1%NODE_INDEX==0 .AND. SF%VEL<TWO_EPSILON_EB .AND. SF%VOLUME_FLOW<TWO_EPSILON_EB))) THEN
CALL CALC_DEPOSITION(DT,BC,B1,B2,CFACE_INDEX=ICF)
ENDIF
ENDIF
Expand Down Expand Up @@ -1607,19 +1609,28 @@ SUBROUTINE CALC_DEPOSITION(DT,BC,B1,B2,WALL_INDEX,CFACE_INDEX)
REAL(EB), PARAMETER :: CM3=3._EB*CM,CS2=CS*2._EB,CT2=2._EB*CT
REAL(EB), PARAMETER :: ZZ_MIN_DEP=1.E-14_EB
REAL(EB) :: U_THERM,U_TURB,MU_G,Y_AEROSOL,ZZ_GET(1:N_TRACKED_SPECIES),YDEP,K_G,TMP_FILM,ALPHA,DTMPDX,&
TAU_PLUS,U_GRAV,D_SOLID,MW_RATIO,KN,KN_FAC,RSUM_G,ZZ_G(1:N_TRACKED_SPECIES),TAU_PLUS_C
TAU_PLUS,U_GRAV,D_SOLID,MW_RATIO,KN,KN_FAC,RSUM_G,ZZ_G(1:N_TRACKED_SPECIES),TAU_PLUS_C,U_NORMAL
TYPE(BOUNDARY_COORD_TYPE), POINTER :: BC
TYPE(BOUNDARY_PROP1_TYPE), POINTER :: B1
TYPE(BOUNDARY_PROP2_TYPE), POINTER :: B2
TYPE(SURFACE_TYPE), POINTER :: SFD

IF (PRESENT(WALL_INDEX)) THEN
SFD=>SURFACE(WALL(WALL_INDEX)%SURF_INDEX)
RSUM_G = RSUM(BC%IIG,BC%JJG,BC%KKG)
ZZ_G(1:N_TRACKED_SPECIES) = ZZ(BC%IIG,BC%JJG,BC%KKG,1:N_TRACKED_SPECIES)
ELSEIF (PRESENT(CFACE_INDEX)) THEN
SFD=>SURFACE(CFACE(CFACE_INDEX)%SURF_INDEX)
RSUM_G= CFACE(CFACE_INDEX)%RSUM_G
ZZ_G(1:N_TRACKED_SPECIES) = B1%ZZ_G(1:N_TRACKED_SPECIES)
ENDIF

IF (ANY(SFD%LEAK_PATH>0)) THEN
U_NORMAL = 0._EB
ELSE
U_NORMAL = B1%U_NORMAL
ENDIF

SMIX_LOOP: DO N=1,N_TRACKED_SPECIES

ZZ_GET(1:N_TRACKED_SPECIES) = MAX(0._EB,ZZ_G(1:N_TRACKED_SPECIES))
Expand Down Expand Up @@ -1662,16 +1673,14 @@ SUBROUTINE CALC_DEPOSITION(DT,BC,B1,B2,WALL_INDEX,CFACE_INDEX)
U_TURB = B2%U_TAU * 0.17_EB
ENDIF
ENDIF

B2%V_DEP = MAX(0._EB,U_THERM+U_TURB+U_GRAV+B1%U_NORMAL)
B2%V_DEP = MAX(0._EB,U_THERM+U_TURB+U_GRAV+U_NORMAL)
IF (B2%V_DEP <= TWO_EPSILON_EB) CYCLE SMIX_LOOP
ZZ_GET = ZZ_GET * B1%RHO_G
Y_AEROSOL = ZZ_GET(N)
YDEP = Y_AEROSOL*MIN(1._EB,(B2%V_DEP)*DT*B1%RDN)
ZZ_GET(N) = Y_AEROSOL - YDEP
IF (SM%AWM_INDEX > 0) B1%AWM_AEROSOL(SM%AWM_INDEX)= B1%AWM_AEROSOL(SM%AWM_INDEX)+YDEP/B1%RDN
IF (SS%AWM_INDEX > 0) B1%AWM_AEROSOL(SS%AWM_INDEX)= B1%AWM_AEROSOL(SS%AWM_INDEX)+YDEP/B1%RDN

!$OMP CRITICAL
D_SOURCE(BC%IIG,BC%JJG,BC%KKG) = D_SOURCE(BC%IIG,BC%JJG,BC%KKG) - MW_RATIO*YDEP / B1%RHO_G / DT
M_DOT_PPP(BC%IIG,BC%JJG,BC%KKG,N) = M_DOT_PPP(BC%IIG,BC%JJG,BC%KKG,N) - YDEP / DT
Expand Down