Skip to content

Commit 2267378

Browse files
committed
FDS Source: Add HRRPUV and TEMP bounds for Smoke3D
1 parent e0d5873 commit 2267378

File tree

5 files changed

+26
-7
lines changed

5 files changed

+26
-7
lines changed

Manuals/FDS_User_Guide/FDS_User_Guide.tex

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10144,6 +10144,8 @@ \section{SMOKE3D: Realistic Smoke and Fire}
1014410144

1014510145
FDS outputs 3D smoke quantities as 8 bit integers compressed using run length encoding. Soot density, HRRPUV or temperatures are first scaled to 8 bit integers (soot density is converted to an opacity first). Repeated integers are replaced by $n$I where $n$ is the number of repeats and I is the value repeated.
1014610146

10147+
You can change the scale of \ct{HRRPUV} via the parameter \ct{HRRPUV_MAX_SMV} (default 1200~kW/m$^3$) on the \ct{DUMP} line. You can change the \ct{TEMPERATURE} bounds via \ct{TEMP_MIN_SMV} and \ct{TEMP_MAX_SMV} (default 20~$^\circ$C and 2000~$^\circ$C).
10148+
1014710149
\newpage
1014810150

1014910151
\section{Particle Output Quantities}
@@ -12173,6 +12175,7 @@ \section{\texorpdfstring{{\tt DUMP}}{DUMP} (Output Parameters)}
1217312175
\ct{DT_TMP} & Real & Section~\ref{info:CSVF} & s & \\ \hline
1217412176
\ct{DT_UVW} & Real & Section~\ref{info:CSVF} & s & \\ \hline
1217512177
\ct{FLUSH_FILE_BUFFERS} & Logical & Section~\ref{info:DUMP} & & \ct{T} \\ \hline
12178+
\ct{HRRPUV_MAX_SMV} & Real & Section~\ref{info:SMOKE3D} & kW/m$^3$ & 1200 \\ \hline
1217612179
\ct{MASS_FILE} & Logical & Section~\ref{info:DUMP} & & \ct{F} \\ \hline
1217712180
\ct{MAXIMUM_PARTICLES} & Integer & Section~\ref{info:controlling_droplets}& & 1000000 \\ \hline
1217812181
\ct{NFRAMES} & Integer & Section~\ref{info:DUMP} & & 1000 \\ \hline
@@ -12207,6 +12210,8 @@ \section{\texorpdfstring{{\tt DUMP}}{DUMP} (Output Parameters)}
1220712210
\ct{SMOKE3D} & Logical & Section~\ref{info:SMOKE3D} & & \ct{T} \\ \hline
1220812211
\ct{STATUS_FILES} & Logical & Section~\ref{info:DUMP} & & \ct{F} \\ \hline
1220912212
\ct{SUPPRESS_DIAGNOSTICS} & Logical & Section~\ref{info:monitoring_progress} & & \ct{F} \\ \hline
12213+
\ct{TEMP_MAX_SMV} & Real & Section~\ref{info:SMOKE3D} & $^\circ$C & 2000 \\ \hline
12214+
\ct{TEMP_MIN_SMV} & Real & Section~\ref{info:SMOKE3D} & $^\circ$C & 2000 \\ \hline
1221012215
\ct{VELOCITY_ERROR_FILE} & Logical & Section~\ref{info:TIMING} & & \ct{F} \\ \hline
1221112216
\ct{WRITE_XYZ} & Logical & Section~\ref{info:PL3D} & & \ct{F} \\ \hline
1221212217
\end{longtable}

Source/cons.f90

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,7 @@ MODULE GLOBAL_CONSTANTS
421421
REAL(EB) :: FINITE_RATE_MIN_TEMP=-273.15 !< When FR is present, min temp. to compute combustion (C->K)
422422
REAL(FB) :: HRRPUV_MAX_SMV=1200._FB !< Clipping value used by Smokeview (kW/m3)
423423
REAL(FB) :: TEMP_MAX_SMV=2000._FB !< Clipping value used by Smokeview (C)
424+
REAL(FB) :: TEMP_MIN_SMV=20._FB !< Clipping value used by Smokeview (C)
424425

425426
INTEGER :: N_SPECIES=0 !< Number of total gas phase primitive species
426427
INTEGER :: N_REACTIONS !< Number of gas phase reactions

Source/dump.f90

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1662,11 +1662,25 @@ SUBROUTINE WRITE_SMOKEVIEW_FILE
16621662
ENDIF
16631663

16641664
! Write out smoke albedo
1665+
16651666
CALL EOL
16661667
WRITE(MYSTR,'(A)') 'ALBEDO'; CALL ADDSTR
16671668
WRITE(MYSTR,'(F13.5)') SMOKE_ALBEDO; CALL ADDSTR
16681669

1670+
! Write out threshold for HRRPUV Smoke3d rendering
1671+
1672+
CALL EOL
1673+
WRITE(MYSTR,'(A)') 'HRRPUV_MINMAX'; CALL ADDSTR
1674+
WRITE(MYSTR,'(2F13.5)') 0._FB,HRRPUV_MAX_SMV; CALL ADDSTR
1675+
1676+
! Write out threshold for TEMPERATURE Smoke3d rendering
1677+
1678+
CALL EOL
1679+
WRITE(MYSTR,'(A)') 'TEMP_MINMAX'; CALL ADDSTR
1680+
WRITE(MYSTR,'(2F13.5)') TEMP_MIN_SMV,TEMP_MAX_SMV; CALL ADDSTR
1681+
16691682
! Write out smokeview IBLANK parameter
1683+
16701684
CALL EOL
16711685
WRITE(MYSTR,'(A)') 'IBLANK'; CALL ADDSTR
16721686
IF (IBLANK_SMV) THEN

Source/read.f90

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2321,12 +2321,12 @@ SUBROUTINE READ_DUMP
23212321
DIAGNOSTICS_INTERVAL,&
23222322
DT_BNDF,DT_CPU,DT_CTRL,DT_DEVC,DT_FLUSH,DT_HRR,DT_HVAC,DT_ISOF,DT_MASS,DT_PART,DT_PL3D,DT_PROF,&
23232323
DT_RADF,DT_RESTART,DT_SL3D,DT_SLCF,DT_SMOKE3D,DT_UVW,DT_TMP,DT_SPEC,&
2324-
FLUSH_FILE_BUFFERS,GET_CUTCELLS_VERBOSE,MASS_FILE,MAXIMUM_PARTICLES,MMS_TIMER,&
2324+
FLUSH_FILE_BUFFERS,GET_CUTCELLS_VERBOSE,HRRPUV_MAX_SMV,MASS_FILE,MAXIMUM_PARTICLES,MMS_TIMER,&
23252325
NFRAMES,PLOT3D_PART_ID,PLOT3D_QUANTITY,PLOT3D_SPEC_ID,PLOT3D_VELO_INDEX,&
23262326
RAMP_BNDF,RAMP_CPU,RAMP_CTRL,RAMP_DEVC,RAMP_FLUSH,RAMP_HRR,RAMP_HVAC,RAMP_ISOF,RAMP_MASS,&
23272327
RAMP_PART,RAMP_PL3D,RAMP_PROF,RAMP_RADF,RAMP_RESTART,RAMP_SLCF,RAMP_SL3D,RAMP_SMOKE3D,&
23282328
RAMP_SPEC,RAMP_TMP,RAMP_UVW,RENDER_FILE,RESULTS_DIR,SIG_FIGS,SIG_FIGS_EXP,SMOKE3D,SMV_PARALLEL_WRITE,&
2329-
STATUS_FILES,SUPPRESS_DIAGNOSTICS,TURB_INIT_CLOCK,VELOCITY_ERROR_FILE,WRITE_XYZ
2329+
STATUS_FILES,SUPPRESS_DIAGNOSTICS,TEMP_MAX_SMV,TEMP_MIN_SMV,TURB_INIT_CLOCK,VELOCITY_ERROR_FILE,WRITE_XYZ
23302330

23312331
! Set defaults
23322332

Source/smvv.f90

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -924,12 +924,12 @@ END SUBROUTINE SLICE_TO_RLEFILE
924924
SUBROUTINE SMOKE3D_TO_FILE(NM,TIME,DX,SMOKE3D_INDEX,VALS,NX,NY,NZ)
925925

926926
USE OUTPUT_DATA, ONLY: SMOKE3D_TYPE,SMOKE3D_FILE,N_SMOKE3D
927-
USE GLOBAL_CONSTANTS, ONLY: TMPA,TMPM,LU_SMOKE3D,FN_SMOKE3D,TEMP_MAX_SMV,HRRPUV_MAX_SMV
927+
USE GLOBAL_CONSTANTS, ONLY: LU_SMOKE3D,FN_SMOKE3D,TEMP_MIN_SMV,TEMP_MAX_SMV,HRRPUV_MAX_SMV
928928
INTEGER, INTENT(IN) :: NX,NY,NZ,NM,SMOKE3D_INDEX
929929
REAL(FB), INTENT(IN) :: TIME, DX
930930
REAL(FB), INTENT(IN), DIMENSION(NX*NY*NZ) :: VALS
931931
CHARACTER(LEN=1), DIMENSION(:), ALLOCATABLE :: BUFFER_IN, BUFFER_OUT, BUFFER_DENSITY_IN, BUFFER_DENSITY_OUT
932-
REAL(FB) :: FACTOR,TEMP_MIN,VAL_FDS,VAL_SMV,MAX_VAL,MAX_DENSITY_VAL
932+
REAL(FB) :: FACTOR,VAL_FDS,VAL_SMV,MAX_VAL,MAX_DENSITY_VAL
933933
INTEGER :: I,NCHARS_OUT,NVALS,NCHARS_IN,NCHARS_DENSITY_OUT
934934
TYPE(SMOKE3D_TYPE), POINTER :: S3
935935

@@ -981,10 +981,9 @@ SUBROUTINE SMOKE3D_TO_FILE(NM,TIME,DX,SMOKE3D_INDEX,VALS,NX,NY,NZ)
981981

982982
ELSEIF (S3%DISPLAY_TYPE=='TEMPERATURE') THEN
983983

984-
TEMP_MIN = REAL(TMPA-TMPM,FB)
985984
DO I=1,NVALS
986-
VAL_FDS = MIN(TEMP_MAX_SMV,MAX(TEMP_MIN,VALS(I)))
987-
VAL_SMV = 254*((VAL_FDS-TEMP_MIN)/(TEMP_MAX_SMV-TEMP_MIN))
985+
VAL_FDS = MIN(TEMP_MAX_SMV,MAX(TEMP_MIN_SMV,VALS(I)))
986+
VAL_SMV = 254*((VAL_FDS-TEMP_MIN_SMV)/(TEMP_MAX_SMV-TEMP_MIN_SMV))
988987
BUFFER_IN(I) = CHAR(INT(VAL_SMV))
989988
MAX_VAL = MAX(VAL_FDS,MAX_VAL)
990989
ENDDO

0 commit comments

Comments
 (0)