@@ -4121,13 +4121,11 @@ SUBROUTINE GET_EXT_INB_CUTFACES_TO_CFACE
41214121
41224122! Local Variables:
41234123INTEGER :: ICF, CFACE_INDEX_LOCAL, SURF_INDEX
4124- INTEGER :: IVENT
41254124REAL(EB):: ADDMAT(IAXIS:KAXIS,LOW_IND:HIGH_IND)
41264125
41274126! GET_CUTCELLS_VERBOSE variables:
41284127INTEGER, ALLOCATABLE, DIMENSION(:) :: NCFACE_BY_MESH
41294128
4130- TYPE(VENTS_TYPE), POINTER :: VT
41314129TYPE(CFACE_TYPE), POINTER :: CFA
41324130
41334131IF(GET_CUTCELLS_VERBOSE) CALL CPU_TIME(CPUTIME_START)
@@ -4310,53 +4308,10 @@ SUBROUTINE GET_EXT_INB_CUTFACES_TO_CFACE
43104308 MESHES(NM)%N_INTERNAL_CFACE_CELLS = CFACE_INDEX_LOCAL - MESHES(NM)%INTERNAL_CFACE_CELLS_LB
43114309ENDDO MESH_LOOP_1
43124310
4313- ! Second loop, apply VENTS to change SURF_ID associated with CFACEs:
4314- MESH_LOOP_2 : DO NM=LOWER_MESH_INDEX,UPPER_MESH_INDEX
4315- CALL POINT_TO_MESH(NM)
4316-
4317- ! ! Currently : Modify CFACE SURF_INDEX with VENT information: This needs more development.
4318- IF(TERRAIN_CASE) THEN
4319- VENT_LOOP : DO IVENT=1,MESHES(NM)%N_VENT
4320- VT => VENTS(IVENT)
4321- IF(.NOT.VT%GEOM) CYCLE VENT_LOOP ! Do not apply vent to Geometries.
4322-
4323- ! This test is a simplified test for VENTS changing the CFACE SURF_ID to VENT SURF_ID for all CFACEs whose
4324- ! centroid locations lay within the frame of the IOR grid aligned VENT:
4325- ADDMAT = 0._EB;
4326- SELECT CASE(ABS(VT%IOR))
4327- CASE(IAXIS)
4328- ADDMAT(IAXIS,LOW_IND) = -(XF_MAX-XS_MIN) ! -DX(VT%I1) Set normal size to 2 times domain size.
4329- ADDMAT(IAXIS,HIGH_IND) = (XF_MAX-XS_MIN) ! DX(VT%I2) XF_MAX, etc. defined in cons.f90.
4330- CASE(JAXIS)
4331- ADDMAT(JAXIS,LOW_IND) = -(YF_MAX-YS_MIN) ! -DY(VT%J1)
4332- ADDMAT(JAXIS,HIGH_IND) = (YF_MAX-YS_MIN) ! DY(VT%J2)
4333- CASE(KAXIS)
4334- ADDMAT(KAXIS,LOW_IND) = -(ZF_MAX-ZS_MIN) ! -DZ(VT%K1)
4335- ADDMAT(KAXIS,HIGH_IND) = (ZF_MAX-ZS_MIN) ! DZ(VT%K2)
4336- CASE DEFAULT
4337- CYCLE VENT_LOOP
4338- END SELECT
4339- ! CFACE Loop to modify SURF_INDEX in INTERNAL_CFACE_CELLS:
4340- CFACE_LOOP_2 : DO CFACE_INDEX_LOCAL=INTERNAL_CFACE_CELLS_LB+1,INTERNAL_CFACE_CELLS_LB+N_INTERNAL_CFACE_CELLS
4341- CFA => CFACE(CFACE_INDEX_LOCAL)
4342- BC => BOUNDARY_COORD(CFA%BC_INDEX)
4343- IF (BC%X < X(VT%I1)+ADDMAT(IAXIS,LOW_IND )) CYCLE CFACE_LOOP_2
4344- IF (BC%X > X(VT%I2)+ADDMAT(IAXIS,HIGH_IND)) CYCLE CFACE_LOOP_2
4345- IF (BC%Y < Y(VT%J1)+ADDMAT(JAXIS,LOW_IND )) CYCLE CFACE_LOOP_2
4346- IF (BC%Y > Y(VT%J2)+ADDMAT(JAXIS,HIGH_IND)) CYCLE CFACE_LOOP_2
4347- IF (BC%Z < Z(VT%K1)+ADDMAT(KAXIS,LOW_IND )) CYCLE CFACE_LOOP_2
4348- IF (BC%Z > Z(VT%K2)+ADDMAT(KAXIS,HIGH_IND)) CYCLE CFACE_LOOP_2
4349- CFA%VENT_INDEX = IVENT
4350- CFA%SURF_INDEX = VT%SURF_INDEX
4351- ENDDO CFACE_LOOP_2
4352- ENDDO VENT_LOOP
4353- ENDIF
4354- ENDDO MESH_LOOP_2
43554311! - At this pont all final values of SURF_INDEX have been given to CFACEs.
43564312
43574313! Third loop, 1. Compute final FDS area integrals by SURF_ID and GEOM.
4358- ! 2. Compute input areas by SURF_ID and GEOM. First sum over GEOM FACES SURF_IDs,
4359- ! then VENTS input surfaces are assigned to corresponding GEOMs and SURF_IDs if present (VENTs take precedence).
4314+ ! 2. Compute input areas by SURF_ID and GEOM. First sum over GEOM FACES SURF_IDs.
43604315IF(N_GEOMETRY>0) THEN
43614316 ALLOCATE(FDS_AREA_GEOM(0:N_SURF,N_GEOMETRY)); FDS_AREA_GEOM = 0._EB
43624317ENDIF
@@ -8855,7 +8810,7 @@ SUBROUTINE INIT_CFACE_CELL(NM,ICF,IFACE,CFACE_INDEX,SURF_INDEX,STAGE_FLG,IS_INB,
88558810CF=> CUT_FACE(ICF)
88568811
88578812STAGE_FLG_BRANCH : SELECT CASE(STAGE_FLG)
8858-
8813+
88598814CASE(INTEGER_ONE) ! Geometry information for CFACE.
88608815
88618816 CALL ALLOCATE_STORAGE(NM,SURF_INDEX=SURF_INDEX,CFACE_INDEX=CFACE_INDEX)
@@ -8865,6 +8820,8 @@ SUBROUTINE INIT_CFACE_CELL(NM,ICF,IFACE,CFACE_INDEX,SURF_INDEX,STAGE_FLG,IS_INB,
88658820 B1 => M%BOUNDARY_PROP1(CFA%B1_INDEX)
88668821
88678822 CFA%SURF_INDEX = SURF_INDEX
8823+ CFA%NODE_INDEX = SURFACE(SURF_INDEX)%NODE_INDEX
8824+ B1%NODE_INDEX = CFA%NODE_INDEX
88688825
88698826 BC%X = CF%XYZCEN(IAXIS,IFACE)
88708827 BC%Y = CF%XYZCEN(JAXIS,IFACE)
@@ -8880,7 +8837,6 @@ SUBROUTINE INIT_CFACE_CELL(NM,ICF,IFACE,CFACE_INDEX,SURF_INDEX,STAGE_FLG,IS_INB,
88808837
88818838 IBOD = CF%BODTRI(1,IFACE)
88828839 IWSEL = CF%BODTRI(2,IFACE)
8883- CFA%VENT_INDEX = GEOMETRY(IBOD)%VENTS(IWSEL)
88848840
88858841 ! Normal to cut-face:
88868842 V2(IAXIS:KAXIS) = CF%XYZVERT(IAXIS:KAXIS,CF%CFELEM(2,IFACE))-CF%XYZCEN(IAXIS:KAXIS,IFACE)
@@ -8921,7 +8877,7 @@ SUBROUTINE INIT_CFACE_CELL(NM,ICF,IFACE,CFACE_INDEX,SURF_INDEX,STAGE_FLG,IS_INB,
89218877
89228878 ! External mesh boundary CFACES inherit the underlaying WALL type.
89238879 CFA%BOUNDARY_TYPE = WC%BOUNDARY_TYPE
8924- CFA%VENT_INDEX = WC%VENT_INDEX
8880+ CFA%NODE_INDEX = BOUNDARY_PROP1( WC%B1_INDEX)%NODE_INDEX
89258881
89268882 BC%II = WC_BC%II
89278883 BC%JJ = WC_BC%JJ
@@ -22174,10 +22130,10 @@ SUBROUTINE READ_GEOM
2217422130CHARACTER(LABEL_LENGTH) :: ID,MATL_ID,TEXTURE_MAPPING, &
2217522131 DEVC_ID,CTRL_ID,SURF_IDS(3),SURF_ID6(6),MOVE_ID
2217622132CHARACTER(MESSAGE_LENGTH) :: BUFFER,FN_BINGEOM,BINARY_FILE
22177- CHARACTER(LABEL_LENGTH), ALLOCATABLE, DIMENSION(:) :: SURF_ID,VENT_ID
22133+ CHARACTER(LABEL_LENGTH), ALLOCATABLE, DIMENSION(:) :: SURF_ID
2217822134REAL(EB), ALLOCATABLE, DIMENSION(:) :: ZVALS,TFACES
2217922135REAL(EB), ALLOCATABLE, TARGET, DIMENSION(:) :: VERTS,VERTS_AUX
22180- INTEGER, ALLOCATABLE, DIMENSION(:) :: SURF_ID_IND,VENT_ID_IND, POLY
22136+ INTEGER, ALLOCATABLE, DIMENSION(:) :: SURF_ID_IND,POLY
2218122137INTEGER, ALLOCATABLE, TARGET, DIMENSION(:) :: FACES,FACES_AUX,VOLUS,OFACES,SURFS,SURFS2
2218222138LOGICAL, ALLOCATABLE, DIMENSION(:) :: IS_EXTERNAL
2218322139
@@ -22192,7 +22148,7 @@ SUBROUTINE READ_GEOM
2219222148 GEOM_TYPE,NXB,IJK(3),N_LEVELS,N_LAT,N_LONG,SPHERE_TYPE,BOXVERTLIST(8),NI,NIJ,IVOL,SORT_FACES,II,II1,II2,II3,&
2219322149 X1AXIS,NNN,CYLINDER_NSEG_THETA,CYLINDER_NSEG_AXIS,CYL_FIND(LOW_IND:HIGH_IND,1:3),CELL_BLOCK_IOR
2219422150
22195- LOGICAL :: HAVE_SURF,HAVE_VENT, HAVE_MATL,IN_LIST,SURF_INDEX_PER_FACE,BNDF_GEOM,LOGTEST
22151+ LOGICAL :: HAVE_SURF,HAVE_MATL,IN_LIST,SURF_INDEX_PER_FACE,BNDF_GEOM,LOGTEST
2219622152REAL(EB), POINTER, DIMENSION(:) :: V1,V2,V3,V4
2219722153INTEGER, POINTER, DIMENSION(:) :: FACEI,FACEJ,FACE_FROM,FACE_TO,VOL
2219822154TYPE(MESH_TYPE), POINTER :: M
@@ -22235,7 +22191,7 @@ SUBROUTINE READ_GEOM
2223522191 CYLINDER_RADIUS,CYLINDER_LENGTH,CYLINDER_NSEG_THETA,CYLINDER_NSEG_AXIS,&
2223622192 EXTRUDE,EXTEND_TERRAIN,FACES,ID,IJK,IS_TERRAIN,MOVE_ID,N_LAT,N_LEVELS,N_LONG,POLY,&
2223722193 RGB,SPHERE_ORIGIN,SPHERE_RADIUS,SPHERE_TYPE,SURF_ID,SURF_IDS,SURF_ID6,&
22238- TEXTURE_MAPPING,TEXTURE_ORIGIN,TEXTURE_SCALE,TRANSPARENCY,VENT_ID, &
22194+ TEXTURE_MAPPING,TEXTURE_ORIGIN,TEXTURE_SCALE,TRANSPARENCY,&
2223922195 VERTS,XB,ZMIN,ZVALS,ZVAL_HORIZON
2224022196
2224122197! first pass - count number of &GEOM lines.
@@ -23326,9 +23282,7 @@ SUBROUTINE READ_GEOM
2332623282 ENDDO
2332723283 ALLOCATE(G%SURF_ID(1:N_SURF_ID))
2332823284 G%SURF_ID(1:N_SURF_ID) = SURF_ID(1:N_SURF_ID)
23329- ALLOCATE(G%VENT_ID(1:N_SURF_ID))
23330- G%VENT_ID(1:N_SURF_ID) = VENT_ID(1:N_SURF_ID)
23331-
23285+
2333223286 ! Now find correspondence with SURFACE(N)%ID:
2333323287 IF (ALLOCATED(SURF_ID_IND)) DEALLOCATE(SURF_ID_IND)
2333423288 ALLOCATE(SURF_ID_IND(N_SURF_ID))
@@ -23350,35 +23304,6 @@ SUBROUTINE READ_GEOM
2335023304 ENDIF
2335123305 G%HAVE_SURF = HAVE_SURF
2335223306
23353- ! Look for non-'null' VENTS:
23354- HAVE_VENT=.FALSE.
23355- DO I = 1, MAX_SURF_IDS
23356- IF (TRIM(VENT_ID(I))=='null') CYCLE
23357- HAVE_VENT=.TRUE.
23358- ENDDO
23359- G%HAVE_VENT = HAVE_VENT
23360-
23361- IF(HAVE_VENT) THEN
23362- ! Build single VENT_ID index list:
23363- IF (ALLOCATED(VENT_ID_IND)) DEALLOCATE(VENT_ID_IND); ALLOCATE(VENT_ID_IND(0:MAX_SURF_IDS)); VENT_ID_IND = 0
23364- DO I = 1, MAX_SURF_IDS ! Here we run over the GEOM local vent array max range.
23365- IF (TRIM(VENT_ID(I))=='null') CYCLE ! Cycle if undefined vent, its VENT_ID_IND(I)=0.
23366- ! Get VENT Index:
23367- IN_LIST = .FALSE.
23368- DO J = 1, N_VENT
23369- IF (TRIM(VENT_ID(I))/=TRIM(VENTS(J)%ID)) CYCLE
23370- VENT_ID_IND(I)=J
23371- IN_LIST = .TRUE.
23372- EXIT
23373- ENDDO
23374- IF(.NOT.IN_LIST) THEN
23375- WRITE(MESSAGE,'(A,I4,3A)') 'ERROR(735): problem with GEOM, the vent ID(',I,') =',&
23376- TRIM(VENT_ID(I)),' is not defined.'
23377- CALL SHUTDOWN(MESSAGE)
23378- ENDIF
23379- ENDDO
23380- ENDIF
23381-
2338223307 IF (MATL_ID=='null') THEN
2338323308 HAVE_MATL = .FALSE.
2338423309 ENDIF
@@ -23671,21 +23596,13 @@ SUBROUTINE READ_GEOM
2367123596 ALLOCATE(G%SURFS(N_FACES),STAT=IZERO)
2367223597 CALL ChkMemErr('READ_GEOM','G%SURFS',IZERO)
2367323598
23674- ALLOCATE(G%VENTS(N_FACES),STAT=IZERO)
23675- CALL ChkMemErr('READ_GEOM','G%VENTS',IZERO)
23676- G%VENTS = 0
23677-
2367823599 PER_FACE_IF: IF (SURF_INDEX_PER_FACE) THEN
2367923600 DO I=1,N_FACES
2368023601 IF ( SURFS(I) <= 0 ) THEN
2368123602 G%SURFS(I) = DEFAULT_SURF_INDEX ! If local SURF ID index <= 0, use default surf ID.
2368223603 ELSE
2368323604 G%SURFS(I) = SURF_ID_IND(SURFS(I))
2368423605 ENDIF
23685- IF (HAVE_VENT) THEN
23686- G%VENTS(I) = VENT_ID_IND(SURFS(I)) ! Uses SURF index in local numeration from FACES input.
23687- IF(G%VENTS(I)>0) G%SURFS(I) = VENTS(G%VENTS(I))%SURF_INDEX ! Change SURF to apply to the vent surface.
23688- ENDIF
2368923606 ENDDO
2369023607 DEALLOCATE(SURF_ID_IND)
2369123608 ELSE
@@ -23712,26 +23629,10 @@ SUBROUTINE READ_GEOM
2371223629 IF (SURF_ID6(4)==SURFACE(NNN)%ID .AND. NVECI(2)> TWO_EPSILON_EB) G%SURFS(I) = NNN ! Y2
2371323630 IF (SURF_ID6(5)==SURFACE(NNN)%ID .AND. NVECI(3)<-TWO_EPSILON_EB) G%SURFS(I) = NNN ! Z1
2371423631 IF (SURF_ID6(6)==SURFACE(NNN)%ID .AND. NVECI(3)> TWO_EPSILON_EB) G%SURFS(I) = NNN ! Z2
23715- IF (HAVE_VENT) THEN
23716- IF (SURF_ID(1)==SURFACE(NNN)%ID .AND. ANY(ABS(NVECI(:))>TWO_EPSILON_EB)) G%VENTS(I)=VENT_ID_IND(1) !all sides
23717- IF (SURF_IDS(2)==SURFACE(NNN)%ID .AND. (ABS(NVECI(1))>TWO_EPSILON_EB .OR. ABS(NVECI(2))>TWO_EPSILON_EB) ) &
23718- G%VENTS(I) = VENT_ID_IND(2) ! sides
23719- IF (SURF_IDS(1)==SURFACE(NNN)%ID .AND. NVECI(3)> TWO_EPSILON_EB) G%VENTS(I) = VENT_ID_IND(1) ! top
23720- IF (SURF_IDS(3)==SURFACE(NNN)%ID .AND. NVECI(3)<-TWO_EPSILON_EB) G%VENTS(I) = VENT_ID_IND(3) ! bottom
23721- IF (SURF_ID6(1)==SURFACE(NNN)%ID .AND. NVECI(1)<-TWO_EPSILON_EB) G%VENTS(I) = VENT_ID_IND(1) ! X1
23722- IF (SURF_ID6(2)==SURFACE(NNN)%ID .AND. NVECI(1)> TWO_EPSILON_EB) G%VENTS(I) = VENT_ID_IND(2) ! X2
23723- IF (SURF_ID6(3)==SURFACE(NNN)%ID .AND. NVECI(2)<-TWO_EPSILON_EB) G%VENTS(I) = VENT_ID_IND(3) ! Y1
23724- IF (SURF_ID6(4)==SURFACE(NNN)%ID .AND. NVECI(2)> TWO_EPSILON_EB) G%VENTS(I) = VENT_ID_IND(4) ! Y2
23725- IF (SURF_ID6(5)==SURFACE(NNN)%ID .AND. NVECI(3)<-TWO_EPSILON_EB) G%VENTS(I) = VENT_ID_IND(5) ! Z1
23726- IF (SURF_ID6(6)==SURFACE(NNN)%ID .AND. NVECI(3)> TWO_EPSILON_EB) G%VENTS(I) = VENT_ID_IND(6) ! Z2
23727-
23728- IF(G%VENTS(I)>0) G%SURFS(I) = VENTS(G%VENTS(I))%SURF_INDEX ! Change SURF to apply to the vent surface.
23729- ENDIF
2373023632 ENDDO SURF_LOOP
2373123633 ENDDO FACE_LOOP
2373223634 ENDIF BOX_TYPE_IF
2373323635 ENDIF PER_FACE_IF
23734- IF(HAVE_VENT) DEALLOCATE(VENT_ID_IND)
2373523636
2373623637 ! Test for Unsupported surfaces:
2373723638 DO I=1,N_FACES
@@ -23813,9 +23714,10 @@ SUBROUTINE READ_GEOM
2381323714
2381423715DEALLOCATE(GEOM_LINE)
2381523716
23717+ CC_IBM = .TRUE.
23718+
2381623719IF( (T_END-T_BEGIN) < TWO_EPSILON_EB) RETURN
2381723720
23818- CC_IBM = .TRUE.
2381923721! If unstructured projection defined set Pressure solver on unstructured grid.
2382023722IF (PRES_FLAG/=UGLMAT_FLAG) THEN
2382123723 PRES_METHOD = 'ULMAT'
@@ -24313,10 +24215,6 @@ SUBROUTINE ALLOCATE_BUFFERS
2431324215ALLOCATE(SURF_ID(MAX_SURF_IDS+1),STAT=IZERO)
2431424216CALL ChkMemErr('ALLOCATE_BUFFERS','SURF_ID',IZERO)
2431524217
24316- IF(ALLOCATED(VENT_ID)) DEALLOCATE(VENT_ID)
24317- ALLOCATE(VENT_ID(MAX_SURF_IDS+1),STAT=IZERO)
24318- CALL ChkMemErr('ALLOCATE_BUFFERS','VENT_ID',IZERO)
24319-
2432024218IF(ALLOCATED(ZVALS)) DEALLOCATE(ZVALS)
2432124219ALLOCATE(ZVALS(MAX_ZVALS+1),STAT=IZERO)
2432224220CALL ChkMemErr('ALLOCATE_BUFFERS','ZVALS',IZERO)
@@ -24351,7 +24249,6 @@ SUBROUTINE SET_GEOM_DEFAULTS
2435124249 ZMIN=ZS_MIN
2435224250 WRITE(ID,'(A,I0)') 'geom_',N
2435324251 SURF_ID(:)='null'
24354- VENT_ID(:)='null'
2435524252 SURF_IDS = 'null'
2435624253 SURF_ID6 = 'null'
2435724254 MATL_ID = 'null'
0 commit comments