Skip to content
Merged
59 changes: 28 additions & 31 deletions Source/dump.f90
Original file line number Diff line number Diff line change
Expand Up @@ -2461,28 +2461,34 @@ SUBROUTINE WRITE_SMOKEVIEW_FILE
WRITE(MYSTR,'(A)') 'OFFSET'; CALL ADDSTR
WRITE(MYSTR,'(3F13.5)') 0.,0.,0.; CALL ADDSTR

! Mesh grid dimensions and neighbor information.
! Determine if the six mesh faces abut a single mesh (MESH_NEIGHBOR>0), nothing (MESH_NEIGHBOR=0),
! or a combination of nothing and/or multiple meshes (MESH_NEIGHBOR=-1). Write six values to GRID line.

DO I=1,6
SELECT CASE(I)
CASE(1) ; IW1=1 ; IW2=IW1+M%JBAR*M%KBAR-1
CASE(2) ; IW1= M%JBAR*M%KBAR+1 ; IW2=IW1+M%JBAR*M%KBAR-1
CASE(3) ; IW1=2*M%JBAR*M%KBAR+1 ; IW2=IW1+M%IBAR*M%KBAR-1
CASE(4) ; IW1=2*M%JBAR*M%KBAR+ M%IBAR*M%KBAR+1 ; IW2=IW1+M%IBAR*M%KBAR-1
CASE(5) ; IW1=2*M%JBAR*M%KBAR+2*M%IBAR*M%KBAR+1 ; IW2=IW1+M%IBAR*M%JBAR-1
CASE(6) ; IW1=2*M%JBAR*M%KBAR+2*M%IBAR*M%KBAR+ M%IBAR*M%JBAR+1 ; IW2=IW1+M%IBAR*M%JBAR-1
END SELECT
MESH_NEIGHBOR(I) = M%EXTERNAL_WALL(IW1)%NOM
DO IW=IW1,IW2
IF (M%EXTERNAL_WALL(IW)%NOM/=MESH_NEIGHBOR(I)) THEN
MESH_NEIGHBOR(I) = -1
EXIT
ENDIF
MESH_NEIGHBOR = 0

IF (.NOT.SETUP_ONLY) THEN

! Mesh grid dimensions and neighbor information.
! Determine if the six mesh faces abut a single mesh (MESH_NEIGHBOR>0), nothing (MESH_NEIGHBOR=0),
! or a combination of nothing and/or multiple meshes (MESH_NEIGHBOR=-1). Write six values to GRID line.

DO I=1,6
SELECT CASE(I)
CASE(1) ; IW1=1 ; IW2=IW1+M%JBAR*M%KBAR-1
CASE(2) ; IW1= M%JBAR*M%KBAR+1 ; IW2=IW1+M%JBAR*M%KBAR-1
CASE(3) ; IW1=2*M%JBAR*M%KBAR+1 ; IW2=IW1+M%IBAR*M%KBAR-1
CASE(4) ; IW1=2*M%JBAR*M%KBAR+ M%IBAR*M%KBAR+1 ; IW2=IW1+M%IBAR*M%KBAR-1
CASE(5) ; IW1=2*M%JBAR*M%KBAR+2*M%IBAR*M%KBAR+1 ; IW2=IW1+M%IBAR*M%JBAR-1
CASE(6) ; IW1=2*M%JBAR*M%KBAR+2*M%IBAR*M%KBAR+ M%IBAR*M%JBAR+1 ; IW2=IW1+M%IBAR*M%JBAR-1
END SELECT
MESH_NEIGHBOR(I) = M%EXTERNAL_WALL(IW1)%NOM
DO IW=IW1,IW2
IF (M%EXTERNAL_WALL(IW)%NOM/=MESH_NEIGHBOR(I)) THEN
MESH_NEIGHBOR(I) = -1
EXIT
ENDIF
ENDDO
ENDDO
ENDDO

ENDIF

CALL EOL
WRITE(MYSTR,'(A,3X,A)') 'GRID',TRIM(MESH_NAME(NM)); CALL ADDSTR
WRITE(MYSTR,'(9I6)') M%IBAR,M%JBAR,M%KBAR,MESH_NEIGHBOR(1:6) ; CALL ADDSTR
Expand Down Expand Up @@ -2566,7 +2572,6 @@ SUBROUTINE WRITE_SMOKEVIEW_FILE
IF (VT%RADIUS>0._EB) N_CVENT=N_CVENT+1
ENDDO


! Write out information about vents to Smokeview file

CALL EOL
Expand Down Expand Up @@ -3014,7 +3019,7 @@ SUBROUTINE INITIALIZE_DIAGNOSTIC_FILE(DT)
WRITE(LU_OUTPUT,'(A,I8)') ' Cells in the X Direction ',M%IBAR
WRITE(LU_OUTPUT,'(A,I8)') ' Cells in the Y Direction ',M%JBAR
WRITE(LU_OUTPUT,'(A,I8)') ' Cells in the Z Direction ',M%KBAR
WRITE(LU_OUTPUT,'(A,I8)') ' Number of Grid Cells ',M%IBAR*M%JBAR*M%KBAR
WRITE(LU_OUTPUT,'(A,I12)') ' Number of Grid Cells ',M%IBAR*M%JBAR*M%KBAR
WRITE(LU_OUTPUT,'(//A,I5/)')' Physical Dimensions, Mesh ',NM
WRITE(LU_OUTPUT,'(A,F10.3)') ' Length (m) ',M%XF-M%XS
WRITE(LU_OUTPUT,'(A,F10.3)') ' Width (m) ',M%YF-M%YS
Expand All @@ -3029,7 +3034,7 @@ SUBROUTINE INITIALIZE_DIAGNOSTIC_FILE(DT)
ENDIF

WRITE(LU_OUTPUT,'(/A/)') ' Miscellaneous Parameters'
WRITE(LU_OUTPUT,'(A,I9)' ) ' Total Number of Grid Cells ',CELL_COUNT
WRITE(LU_OUTPUT,'(A,I12)') ' Total Number of Grid Cells' ,CELL_COUNT
WRITE(LU_OUTPUT,'(A,F9.3)') ' Maximum Cell Aspect Ratio ',MAXVAL(MAX_CELL_ASPECT_RATIO)
WRITE(LU_OUTPUT,'(A,F9.3)') ' Initial Time Step (s) ',DT
WRITE(LU_OUTPUT,'(A,I9)') ' CFL Velocity Norm ',CFL_VELOCITY_NORM
Expand Down Expand Up @@ -4952,7 +4957,6 @@ SUBROUTINE DUMP_SMOKE3D(T,DT,NM)
REAL(FB) :: DXX,STIME
REAL(EB), POINTER, DIMENSION(:,:,:) :: FF
REAL(FB), ALLOCATABLE, DIMENSION(:) :: QQ_PACK
REAL(EB) :: FR_C
TYPE(SMOKE3D_TYPE), POINTER :: S3

! Miscellaneous settings
Expand All @@ -4977,13 +4981,6 @@ SUBROUTINE DUMP_SMOKE3D(T,DT,NM)
ENDDO
ENDDO

! Adjust the temperature as it is used in the expression for the radiation source term

IF (S3%DISPLAY_TYPE=='TEMPERATURE' .AND. RTE_SOURCE_CORRECTION) THEN
FR_C = RTE_SOURCE_CORRECTION_FACTOR**0.25_EB
WHERE (CHI_R*Q>QR_CLIP) FF = (FF+TMPM)*FR_C - TMPM
ENDIF

! Interpolate data to cell nodes

DO K=0,KBAR
Expand Down
5 changes: 2 additions & 3 deletions Source/main.f90
Original file line number Diff line number Diff line change
Expand Up @@ -199,13 +199,12 @@ PROGRAM FDS
IF (DT_EXTERNAL_HEARTBEAT > 0._EB) LU_EXTERNAL_HEARTBEAT = GET_FILE_NUMBER()
ENDIF

! Set up the background atmosphere and initialize the WALL cells
! Set up the background atmosphere and initialize the boundary (WALL) arrays

DO NM=LOWER_MESH_INDEX,UPPER_MESH_INDEX
CALL INITIALIZE_ATMOSPHERE(NM)
CALL INITIALIZE_WALL_ARRAY(NM)
IF (.NOT.SETUP_ONLY) CALL INITIALIZE_WALL_ARRAY(NM)
ENDDO

IF (MY_RANK==0 .AND. VERBOSE) CALL VERBOSE_PRINTOUT('Completed INITIALIZE_WALL_ARRAY')

! Write the Smokeview (.smv) file using parallel MPI writes
Expand Down
2 changes: 2 additions & 0 deletions Source/part.f90
Original file line number Diff line number Diff line change
Expand Up @@ -1016,6 +1016,8 @@ SUBROUTINE INSERT_VOLUMETRIC_PARTICLES
IF ((IN_X1-XF)>-50._EB*TWO_EPSILON_EB .OR. (IN_X2-XS)<50._EB*TWO_EPSILON_EB .OR. &
(IN_Y1-YF)>-50._EB*TWO_EPSILON_EB .OR. (IN_Y2-YS)<50._EB*TWO_EPSILON_EB .OR. &
(IN_Z1-ZF)>-50._EB*TWO_EPSILON_EB .OR. (IN_Z2-ZS)<50._EB*TWO_EPSILON_EB) RETURN
ELSEIF (IN%SHAPE=='RING') THEN
IF (RING_MESH_INTERSECTION_ARC(NM,IN%X0,IN%Y0,IN%RADIUS)<TWO_EPSILON_EB) RETURN
ELSE
IF (IN_X1>XF .OR. IN_X2<XS .OR. IN_Y1>YF .OR. IN_Y2<YS .OR. IN_Z1>ZF .OR. IN_Z2<ZS) RETURN
ENDIF
Expand Down
10 changes: 6 additions & 4 deletions Source/read.f90
Original file line number Diff line number Diff line change
Expand Up @@ -12579,9 +12579,11 @@ SUBROUTINE READ_VENT

! Check UVW

IF (ABS(VT%UVW(ABS(VT%IOR))) < TWO_EPSILON_EB .AND. .NOT.VT%GEOM) THEN
WRITE(MESSAGE,'(3A)') 'ERROR(821): VENT ',TRIM(VT%ID),' cannot have normal component of UVW equal to 0.'
CALL SHUTDOWN(MESSAGE,PROCESS_0_ONLY=.FALSE.) ; RETURN
IF (.NOT.VT%GEOM) THEN
IF (ABS(VT%UVW(ABS(VT%IOR))) < TWO_EPSILON_EB) THEN
WRITE(MESSAGE,'(3A)') 'ERROR(821): VENT ',TRIM(VT%ID),' cannot have normal component of UVW equal to 0.'
CALL SHUTDOWN(MESSAGE,PROCESS_0_ONLY=.FALSE.) ; RETURN
ENDIF
ENDIF

! Special treatment for coloring GEOM surface with HVAC_BOUNDARY
Expand Down Expand Up @@ -16382,7 +16384,7 @@ SUBROUTINE READ_SM3D
IF (N<=N_SMOKE3D_RESERVED) THEN
IF (N==1) THEN ; QUANTITY='DENSITY' ; SPEC_ID='SOOT' ; ENDIF
IF (N==2) THEN ; QUANTITY='HRRPUV' ; ENDIF
IF (N==3) THEN ; QUANTITY='TEMPERATURE' ; ENDIF
IF (N==3) THEN ; QUANTITY='EFFECTIVE FLAME TEMPERATURE' ; ENDIF
ELSE
CALL CHECKREAD('SM3D',LU_INPUT,IOS) ; IF (STOP_STATUS==SETUP_STOP) RETURN
IF (IOS==1) EXIT READ_SM3D_LOOP
Expand Down
2 changes: 1 addition & 1 deletion Source/smvv.f90
Original file line number Diff line number Diff line change
Expand Up @@ -979,7 +979,7 @@ SUBROUTINE SMOKE3D_TO_FILE(NM,TIME,DX,SMOKE3D_INDEX,VALS,NX,NY,NZ)
MAX_VAL = MAX(VAL_FDS,MAX_VAL)
ENDDO

ELSEIF (S3%DISPLAY_TYPE=='TEMPERATURE') THEN
ELSEIF (S3%DISPLAY_TYPE=='TEMPERATURE' .OR. S3%DISPLAY_TYPE=='EFFECTIVE FLAME TEMPERATURE') THEN

DO I=1,NVALS
VAL_FDS = MIN(TEMP_MAX_SMV,MAX(TEMP_MIN_SMV,VALS(I)))
Expand Down
10 changes: 5 additions & 5 deletions Source/vege.f90
Original file line number Diff line number Diff line change
Expand Up @@ -197,9 +197,9 @@ SUBROUTINE INITIALIZE_LEVEL_SET_FIRESPREAD_2(NM,MODE)
LSET_TAN2 = .FALSE. ! Flag for ROS proportional to Tan(slope)^2

! Flux limiters
! LIMITER_LS=1 MINMOD
! LIMITER_LS=1 First order upwinding
! LIMITER_LS=2 SUPERBEE
! LIMITER_LS=3 First order upwinding
! LIMITER_LS=3 MINMOD

LIMITER_LS = I_FLUX_LIMITER
IF (LIMITER_LS > 3) LIMITER_LS = 1
Expand Down Expand Up @@ -1044,7 +1044,7 @@ END SUBROUTINE LEVEL_SET_ADVECT_FLUX
!>
!> \param SR_XY If positive, indicates that flow is from left to right
!> \param Z Scalar quantity
!> \param LIMITER Flux limiter (1) MINMOD, (2) SUPERBEE, (3) first-order upwinding (monotone)
!> \param LIMITER Flux limiter (1) first-order upwinding (monotone), (2) SUPERBEE, (3) MINMOD
!> \details
! face
! | o | o | o | o |
Expand Down Expand Up @@ -1083,11 +1083,11 @@ REAL(EB) FUNCTION SCALAR_FACE_VALUE_LS(SR_XY,Z,LIMITER)
ENDIF

IF (LIMITER==1) THEN
B = MAX(0._EB,MIN(1._EB,R))
B = 0._EB
ELSEIF (LIMITER==2) THEN
B = MAX(0._EB,MIN(2._EB*R,1._EB),MIN(R,2._EB))
ELSEIF (LIMITER==3) THEN
B = 0._EB
B = MAX(0._EB,MIN(1._EB,R))
ENDIF

SCALAR_FACE_VALUE_LS = ZUP + 0.5_EB * B * ( ZDWN - ZUP )
Expand Down
Loading