@@ -771,7 +771,7 @@ SUBROUTINE INITIALIZE_MESH_VARIABLES_1(DT,NM)
771771 DO J= OB% J1+1 ,OB% J2
772772 I = OB% I1+1
773773 ! Don't assign wall cell index to obstruction face pointing out of the computational domain
774- IF (I== 1 ) CYCLE
774+ IF (I== 1 ) THEN ; OB % EXPOSED_FACE_INDEX( 1 ) = 1 ; CYCLE ; ENDIF
775775 IC = M% CELL_INDEX(I-1 ,J,K)
776776 IF (M% CELL(IC)% SOLID .AND. .NOT. M% OBSTRUCTION(M% CELL(IC)% OBST_INDEX)% REMOVABLE) CYCLE ! Permanently covered face
777777 IOR = - 1
@@ -794,7 +794,7 @@ SUBROUTINE INITIALIZE_MESH_VARIABLES_1(DT,NM)
794794 DO J= OB% J1+1 ,OB% J2
795795 I = OB% I2
796796 ! Don't assign wall cell index to obstruction face pointing out of the computational domain
797- IF (I== M% IBAR) CYCLE
797+ IF (I== M% IBAR) THEN ; OB % EXPOSED_FACE_INDEX( 2 ) = 1 ; CYCLE ; ENDIF
798798 IC = M% CELL_INDEX(I+1 ,J,K)
799799 ! Permanently covered face
800800 IF (M% CELL(IC)% SOLID .AND. .NOT. M% OBSTRUCTION(M% CELL(IC)% OBST_INDEX)% REMOVABLE) CYCLE
@@ -818,7 +818,7 @@ SUBROUTINE INITIALIZE_MESH_VARIABLES_1(DT,NM)
818818 DO I= OB% I1+1 ,OB% I2
819819 J = OB% J1+1
820820 ! Don't assign wall cell index to obstruction face pointing out of the computational domain
821- IF (J== 1 ) CYCLE
821+ IF (J== 1 ) THEN ; OB % EXPOSED_FACE_INDEX( 3 ) = 1 ; CYCLE ; ENDIF
822822 IC = M% CELL_INDEX(I,J-1 ,K)
823823 ! Permanently covered face
824824 IF (M% CELL(IC)% SOLID .AND. .NOT. M% OBSTRUCTION(M% CELL(IC)% OBST_INDEX)% REMOVABLE) CYCLE
@@ -842,7 +842,7 @@ SUBROUTINE INITIALIZE_MESH_VARIABLES_1(DT,NM)
842842 DO I= OB% I1+1 ,OB% I2
843843 J = OB% J2
844844 ! Don't assign wall cell index to obstruction face pointing out of the computational domain
845- IF (J== M% JBAR) CYCLE
845+ IF (J== M% JBAR) THEN ; OB % EXPOSED_FACE_INDEX( 4 ) = 1 ; CYCLE ; ENDIF
846846 IC = M% CELL_INDEX(I,J+1 ,K)
847847 ! Permanently covered face
848848 IF (M% CELL(IC)% SOLID .AND. .NOT. M% OBSTRUCTION(M% CELL(IC)% OBST_INDEX)% REMOVABLE) CYCLE
@@ -866,7 +866,7 @@ SUBROUTINE INITIALIZE_MESH_VARIABLES_1(DT,NM)
866866 DO I= OB% I1+1 ,OB% I2
867867 K = OB% K1+1
868868 ! Don't assign wall cell index to obstruction face pointing out of the computational domain
869- IF (K== 1 ) CYCLE
869+ IF (K== 1 ) THEN ; OB % EXPOSED_FACE_INDEX( 5 ) = 1 ; CYCLE ; ENDIF
870870 IC = M% CELL_INDEX(I,J,K-1 )
871871 ! Permanently covered face
872872 IF (M% CELL(IC)% SOLID .AND. .NOT. M% OBSTRUCTION(M% CELL(IC)% OBST_INDEX)% REMOVABLE) CYCLE
@@ -890,7 +890,7 @@ SUBROUTINE INITIALIZE_MESH_VARIABLES_1(DT,NM)
890890 DO I= OB% I1+1 ,OB% I2
891891 K = OB% K2
892892 ! Don't assign wall cell index to obstruction face pointing out of the computational domain
893- IF (K== M% KBAR) CYCLE
893+ IF (K== M% KBAR) THEN ; OB % EXPOSED_FACE_INDEX( 6 ) = 1 ; CYCLE ; ENDIF
894894 IC = M% CELL_INDEX(I,J,K+1 )
895895 ! Permanently covered face
896896 IF (M% CELL(IC)% SOLID .AND. .NOT. M% OBSTRUCTION(M% CELL(IC)% OBST_INDEX)% REMOVABLE) CYCLE
@@ -2891,7 +2891,7 @@ SUBROUTINE INIT_WALL_CELL(NM,I,J,K,OBST_INDEX,IW,IOR,SURF_INDEX,IERR,TT)
28912891REAL (EB), INTENT (IN ) :: TT
28922892REAL (EB) :: PX,PY,PZ,T_ACTIVATE,XIN,YIN,ZIN,DIST,XW,YW,ZW,RDN,AW,TSI,&
28932893 ZZ_GET(1 :N_TRACKED_SPECIES),RSUM_F,R1,RR,DELTA
2894- INTEGER :: N,SURF_INDEX_NEW,IIG,JJG,KKG,IIO,JJO,KKO,IC,ICG,ICO,NOM_CHECK(0 :1 ),BOUNDARY_TYPE
2894+ INTEGER :: N,SURF_INDEX_NEW,IIG,JJG,KKG,IIO,JJO,KKO,IC,ICG,ICO,NOM_CHECK(0 :1 ),BOUNDARY_TYPE,FI
28952895LOGICAL :: VENT_FOUND,ALIGNED
28962896TYPE (MESH_TYPE), POINTER :: M,MM
28972897TYPE (OBSTRUCTION_TYPE), POINTER :: OBX
@@ -3195,6 +3195,17 @@ SUBROUTINE INIT_WALL_CELL(NM,I,J,K,OBST_INDEX,IW,IOR,SURF_INDEX,IERR,TT)
31953195
31963196ENDIF CHECK_MESHES
31973197
3198+ ! If this wall cell is attached to an OBST, check if the OBST face is exposed
3199+
3200+ IF (OBST_INDEX> 0 ) THEN
3201+ IF (.NOT. M% CELL(ICG)% SOLID .OR. M% OBSTRUCTION(M% CELL(ICG)% OBST_INDEX)% REMOVABLE) THEN
3202+ FI = ABS (IOR)* 2 ; IF (IOR< 0 ) FI = FI-1
3203+ M% OBSTRUCTION(OBST_INDEX)% EXPOSED_FACE_INDEX(FI) = 1
3204+ ENDIF
3205+ ENDIF
3206+
3207+ ! Ensure that the WALL_INDEX and SURF_INDEX can be identified from the abutting gas phase cell, ICG
3208+
31983209M% CELL(ICG)% WALL_INDEX(- IOR) = IW
31993210M% CELL(ICG)% SURF_INDEX(- IOR) = SURF_INDEX_NEW
32003211
0 commit comments