Skip to content

Commit

Permalink
Merge pull request #13164 from mcgratta/master
Browse files Browse the repository at this point in the history
FDS Source: Relax restriction on overlapping OBSTs
  • Loading branch information
mcgratta authored Jul 11, 2024
2 parents 8848524 + 33edae4 commit a98fb2d
Show file tree
Hide file tree
Showing 2 changed files with 13 additions and 6 deletions.
14 changes: 9 additions & 5 deletions Source/init.f90
Original file line number Diff line number Diff line change
Expand Up @@ -969,19 +969,23 @@ SUBROUTINE CHECK_OVERLAPPING_OBSTRUCTIONS(IERR)

USE COMP_FUNCTIONS, ONLY: SHUTDOWN
INTEGER, INTENT(OUT) :: IERR
INTEGER :: OBST_INDEX_PREVIOUS
INTEGER :: OBST_INDEX_PREVIOUS,OB_SURF_INDEX,OB_PREVIOUS_SURF_INDEX
TYPE(OBSTRUCTION_TYPE), POINTER :: OB_PREVIOUS
CHARACTER(MESSAGE_LENGTH) :: MESSAGE

IERR = 0
RETURN
OBST_INDEX_PREVIOUS = M%WALL(IW)%OBST_INDEX
OB_PREVIOUS => M%OBSTRUCTION(OBST_INDEX_PREVIOUS)
OB_SURF_INDEX = OB%SURF_INDEX(IOR)
OB_PREVIOUS_SURF_INDEX = OB_PREVIOUS%SURF_INDEX(IOR)

IF (OBST_INDEX_PREVIOUS>0 .AND. OBST_INDEX_PREVIOUS/=OBST_INDEX) THEN
IF ((OB%REMOVABLE.OR.OB_PREVIOUS%REMOVABLE) .AND. OB%SURF_INDEX(IOR)/=OB_PREVIOUS%SURF_INDEX(IOR)) THEN
WRITE(MESSAGE,'(5A,I0)') 'ERROR(613): OBST ',TRIM(OB%ID),' and OBST ',TRIM(OB_PREVIOUS%ID),' cannot overlap in Mesh ',NM
CALL SHUTDOWN(MESSAGE,PROCESS_0_ONLY=.FALSE.)
IERR = 1
IF ( (OB%REMOVABLE.OR.OB_PREVIOUS%REMOVABLE) .AND. OB_SURF_INDEX/=OB_PREVIOUS_SURF_INDEX .AND. &
(SURFACE(OB_SURF_INDEX)%THERMAL_BC_INDEX==THERMALLY_THICK .OR. &
SURFACE(OB_PREVIOUS_SURF_INDEX)%THERMAL_BC_INDEX==THERMALLY_THICK)) THEN
WRITE(LU_ERR,'(5A,I0)') 'WARNING(613): OBST ',TRIM(OB%ID),' and OBST ',TRIM(OB_PREVIOUS%ID),' overlap surfaces in Mesh ',NM
IERR = 0
ENDIF
ENDIF

Expand Down
5 changes: 4 additions & 1 deletion Source/read.f90
Original file line number Diff line number Diff line change
Expand Up @@ -10770,6 +10770,9 @@ SUBROUTINE READ_OBST(QUICK_READ)
OB%MASS = OB%BULK_DENSITY*(OB%X2-OB%X1)*OB%UNDIVIDED_INPUT_LENGTH(2)*(OB%Z2-OB%Z1)
IF (OB%K1==OB%K2 .AND. OB%UNDIVIDED_INPUT_LENGTH(3)<0.5_EB*DZ(OB%K1)) &
OB%MASS = OB%BULK_DENSITY*(OB%X2-OB%X1)*(OB%Y2-OB%Y1)*OB%UNDIVIDED_INPUT_LENGTH(3)
IF (OB%I1==OB%I2 .AND. OB%UNDIVIDED_INPUT_LENGTH(1)>=0.5_EB*DX(OB%I1)) OB%MASS = 1.E6_EB
IF (OB%J1==OB%J2 .AND. OB%UNDIVIDED_INPUT_LENGTH(2)>=0.5_EB*DY(OB%J1)) OB%MASS = 1.E6_EB
IF (OB%K1==OB%K2 .AND. OB%UNDIVIDED_INPUT_LENGTH(3)>=0.5_EB*DZ(OB%K1)) OB%MASS = 1.E6_EB
IF ((OB%UNDIVIDED_INPUT_LENGTH(1)<TWO_EPSILON_EB .OR. &
OB%UNDIVIDED_INPUT_LENGTH(2)<TWO_EPSILON_EB .OR. &
OB%UNDIVIDED_INPUT_LENGTH(3)<TWO_EPSILON_EB) .AND. .NOT.THICKEN) THEN
Expand Down Expand Up @@ -10903,7 +10906,7 @@ SUBROUTINE READ_OBST(QUICK_READ)
IF (OB%I1==OB%I2) THEN ; OBT%X1=OB%X1 ; OBT%X2=OB%X2 ; ENDIF
IF (OB%J1==OB%J2) THEN ; OBT%Y1=OB%Y1 ; OBT%Y2=OB%Y2 ; ENDIF
IF (OB%K1==OB%K2) THEN ; OBT%Z1=OB%Z1 ; OBT%Z2=OB%Z2 ; ENDIF
IF (OB%BULK_DENSITY > 0._EB) THEN
IF (OB%BULK_DENSITY > 0._EB .AND. OB%MASS<1.E5_EB) THEN
OBT%MASS = OB%BULK_DENSITY*(OBT%X2-OBT%X1)*(OBT%Y2-OBT%Y1)*(OBT%Z2-OBT%Z1)
IF (OB%I1==OB%I2 .AND. OB%UNDIVIDED_INPUT_LENGTH(1)<0.5_EB*DX(OB%I1)) &
OBT%MASS = OB%BULK_DENSITY*OB%UNDIVIDED_INPUT_LENGTH(1)*(OBT%Y2-OBT%Y1)*(OBT%Z2-OBT%Z1)
Expand Down

0 comments on commit a98fb2d

Please sign in to comment.