Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions Manuals/FDS_User_Guide/FDS_User_Guide.tex
Original file line number Diff line number Diff line change
Expand Up @@ -11248,6 +11248,7 @@ \subsection{Dry Volume and Mass Fractions}
DRY=T /
\end{lstlisting}

\ct{DRY} can also be specified on an \ct{SLCF} line that reports the \ct{'MASS FRACTION'} or \ct{'VOLUME FRACTION'} of a species as well as an \ct{HVAC} \ct{DUCT QUANTITY LIST} or \ct{NODE QUANTITY LIST}. For \ct{HVAC} line outputs, \ct{DRY} is an array corresponding to each entry on the \ct{QUANTITY LIST}.

\subsection{Aerosol and Soot Concentration}
\label{info:soot}
Expand Down Expand Up @@ -12547,6 +12548,7 @@ \section{\texorpdfstring{{\tt HVAC}}{HVAC} (HVAC System Definition)}
\ct{DEVC_ID} & Character & Sections ~\ref{info:HVACduct}, \ref{info:HVACfan}, \ref{info:HVACfilter} & & \\ \hline
\ct{DIAMETER} & Real & Section~\ref{info:HVACduct} & m & \\ \hline
\ct{DISCHARGE_COEFFICIENT} & Real & Section~\ref{info:Leaks} & & 1. \\ \hline
\ct{DRY} & Log. Array & Section~\ref{info:dry} & & \\ \hline
\ct{DUCT_ID} & Char.~Array & Section~\ref{info:HVACnode} & & \\ \hline
\ct{EFFICIENCY} & Real Array & Sections~\ref{info:HVACfilter}, \ref{info:HVACaircoil} & & 1.0 \\ \hline
\ct{FAN_ID} & Character & Section~\ref{info:HVACduct} & & \\ \hline
Expand Down Expand Up @@ -13421,6 +13423,7 @@ \section{\texorpdfstring{{\tt REAC}}{REAC} (Reaction Parameters)}
\ct{CHECK_ATOM_BALANCE} & Logical & Section~\ref{info:REAC_Diagnostics} & & \ct{T} \\ \hline
\ct{CO_YIELD} & Real & Section~\ref{info:simple_chemistry} & kg/kg & 0 \\ \hline
\ct{CRITICAL_FLAME_TEMPERATURE} & Real & Section~\ref{info:extinction} & $^\circ$C & 1427 \\ \hline
\ct{DRY} & Logical ray & Section~\ref{info:dry} & & \\ \hline
\ct{E} & Real & Section~\ref{info:finite} & J/mol & \\ \hline
\ct{E_LOW_PR} & Real & Section~\ref{info:falloff_reactions} & J/mol & \\ \hline
\ct{EPUMO2} & Real & Section~\ref{info:heat_of_combustion} & kJ/kg & 13100 \\ \hline
Expand Down Expand Up @@ -13480,6 +13483,7 @@ \section{\texorpdfstring{{\tt SLCF}}{SLCF} (Slice File Parameters)}
\ct{AGL_SLICE} & Real & Section~\ref{info:complex_terrain} & m & \\ \hline
\ct{CELL_CENTERED} & Logical & Section~\ref{info:SLCF} & & \ct{F} \\ \hline
\ct{DB} & Character & Section~\ref{info:SLCF} & & \\ \hline
\ct{DRY} & Logical & Section~\ref{info:dry} & & \\ \hline
\ct{ID} & Character & Section~\ref{info:SLCF} & & \\ \hline
\ct{MAXIMUM_VALUE} & Real & Reference~\cite{Smokeview_Users_Guide} & & \\ \hline
\ct{MESH_NUMBER} & Integer & Section~\ref{info:SLCF} & & \\ \hline
Expand Down
15 changes: 8 additions & 7 deletions Source/dump.f90
Original file line number Diff line number Diff line change
Expand Up @@ -5970,8 +5970,6 @@ SUBROUTINE DUMP_SLCF(T,DT,NM,IFRMT)

! Return if there are no slices to process and this is not a Plot3D dump

DRY=.FALSE.

SELECT CASE(IFRMT)
CASE(0) ; PLOT3D=.FALSE. ; SLCF3D=.FALSE.
CASE(1) ; PLOT3D=.TRUE. ; SLCF3D=.FALSE.
Expand Down Expand Up @@ -6087,6 +6085,7 @@ SUBROUTINE DUMP_SLCF(T,DT,NM,IFRMT)
AGL_TERRAIN_SLICE = .FALSE.
CC_CELL_CENTERED = .FALSE.
CC_INTERP2FACES = .FALSE.
DRY = .FALSE.
ELSE
SL => SLICE(IQ)
IND = SL%INDEX
Expand All @@ -6104,6 +6103,7 @@ SUBROUTINE DUMP_SLCF(T,DT,NM,IFRMT)
J2 = SL%J2
K1 = SL%K1
K2 = SL%K2
DRY = SL%DRY
DEBUG = 0
IF(SL%DEBUG)DEBUG = 1
AGL_TERRAIN_SLICE = SL%TERRAIN_SLICE
Expand Down Expand Up @@ -6811,7 +6811,7 @@ SUBROUTINE UPDATE_DEVICES_1(T,DT,NM)

CASE(300:350) OUTPUT_INDEX_SELECT ! HVAC output

SDV%VALUE_1 = HVAC_OUTPUT(DV%QUANTITY_INDEX(1),DV%Y_INDEX,DV%Z_INDEX,DV%DUCT_INDEX,DV%NODE_INDEX,DV%DUCT_CELL_INDEX)
SDV%VALUE_1 = HVAC_OUTPUT(DV%QUANTITY_INDEX(1),DV%Y_INDEX,DV%Z_INDEX,DV%DUCT_INDEX,DV%NODE_INDEX,DV%DUCT_CELL_INDEX,DV%DRY)

CASE(400:454) OUTPUT_INDEX_SELECT ! Particle-specific output

Expand Down Expand Up @@ -9544,14 +9544,15 @@ REAL(EB) FUNCTION SOLID_PHASE_OUTPUT(INDX,Y_INDEX,Z_INDEX,PART_INDEX,OPT_WALL_IN
END FUNCTION SOLID_PHASE_OUTPUT


REAL(EB) FUNCTION HVAC_OUTPUT(IND,Y_INDEX,Z_INDEX,DUCT_INDEX,NODE_INDEX,DUCT_CELL_INDEX)
REAL(EB) FUNCTION HVAC_OUTPUT(IND,Y_INDEX,Z_INDEX,DUCT_INDEX,NODE_INDEX,DUCT_CELL_INDEX,DRY)

! Compute HVAC Output Quantities

USE MATH_FUNCTIONS, ONLY: INTERPOLATE1D
USE PHYSICAL_FUNCTIONS, ONLY: GET_MASS_FRACTION,GET_MOLECULAR_WEIGHT,GET_ENTHALPY,GET_SENSIBLE_ENTHALPY
INTEGER, INTENT(IN) :: Y_INDEX,Z_INDEX,IND,DUCT_INDEX,NODE_INDEX(2),DUCT_CELL_INDEX
REAL(EB) :: Y_H2O,ZZ_GET(1:N_TRACKED_SPECIES),MW,Y_SPECIES,RCON,H_DUCT,H_TMPA
LOGICAL :: DRY

Y_H2O = 0._EB
Y_SPECIES=1.0_EB
Expand Down Expand Up @@ -10170,7 +10171,7 @@ SUBROUTINE DUMP_HVAC(T)
NODE_INDEX(1)=N
DO NN = 1, N_NODE_QUANTITY
HQT=>NODE_QUANTITY_ARRAY(NN)
OUTVAL_N(NN) = REAL(HVAC_OUTPUT(HQT%OUTPUT_INDEX,HQT%Y_INDEX,HQT%Z_INDEX,-1,NODE_INDEX,-1),FB)
OUTVAL_N(NN) = REAL(HVAC_OUTPUT(HQT%OUTPUT_INDEX,HQT%Y_INDEX,HQT%Z_INDEX,-1,NODE_INDEX,-1,HQT%DRY),FB)
ENDDO
WRITE(LU_HVAC) OUTVAL_N
ENDDO
Expand All @@ -10182,14 +10183,14 @@ SUBROUTINE DUMP_HVAC(T)
DO NNN=1,DUCT(N)%N_CELLS
DO NN = 1, N_DUCT_QUANTITY
HQT=>DUCT_QUANTITY_ARRAY(NN)
OUTVAL_D(NN) = REAL(HVAC_OUTPUT(HVAC_SMV_EQUIVALENCE(HQT%OUTPUT_INDEX),HQT%Y_INDEX,HQT%Z_INDEX,N,NODE_INDEX,NNN),FB)
OUTVAL_D(NN) = REAL(HVAC_OUTPUT(HVAC_SMV_EQUIVALENCE(HQT%OUTPUT_INDEX),HQT%Y_INDEX,HQT%Z_INDEX,N,NODE_INDEX,NNN,HQT%DRY),FB)
ENDDO
WRITE(LU_HVAC) OUTVAL_D
ENDDO
ELSE
DO NN = 1, N_DUCT_QUANTITY
HQT=>DUCT_QUANTITY_ARRAY(NN)
OUTVAL_D(NN) = REAL(HVAC_OUTPUT(HQT%OUTPUT_INDEX,HQT%Y_INDEX,HQT%Z_INDEX,N,NODE_INDEX,-1),FB)
OUTVAL_D(NN) = REAL(HVAC_OUTPUT(HQT%OUTPUT_INDEX,HQT%Y_INDEX,HQT%Z_INDEX,N,NODE_INDEX,-1,HQT%DRY),FB)
ENDDO
WRITE(LU_HVAC) OUTVAL_D
ENDIF
Expand Down
6 changes: 5 additions & 1 deletion Source/hvac.f90
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,7 @@ SUBROUTINE READ_HVAC
LOGICAL :: INITIALIZED_HVAC_MASS_TRANSPORT !< Flag indicating DUCTs with N_CELLS>1 have been initiazed.
LOGICAL :: DUCT_QUANTITY_DEFINED=.FALSE. !< Flag indicating a DUCT_QUANTITY list has alreayd been defined
LOGICAL :: NODE_QUANTITY_DEFINED=.FALSE. !< Flag indicating a NODE_QUANTITY list has alreayd been defined
LOGICAL :: DRY(20) !< Flag indicating species output is DRY
CHARACTER(LABEL_LENGTH) :: AIRCOIL_ID !< ID of an AIRCOIL located in a DUCT.
CHARACTER(LABEL_LENGTH) :: CTRL_ID !< Name of a control function controlling a FAN, damper, or AIRCOIL.
CHARACTER(LABEL_LENGTH) :: DEVC_ID !< Name of a device controlling a FAN, damper, or AIRCOIL.
Expand All @@ -145,7 +146,7 @@ SUBROUTINE READ_HVAC
TYPE(DUCT_TYPE), POINTER :: DU !< Pointer to a DUCT
TYPE(HVAC_QUANTITY_TYPE), POINTER :: HQT !< Pointer to a DUCT_ or NODE_QUANTITY_ARRAY
NAMELIST /HVAC/ AIRCOIL_ID,AMBIENT,AREA,CLEAN_LOSS,COOLANT_SPECIFIC_HEAT,COOLANT_MASS_FLOW,COOLANT_TEMPERATURE,CTRL_ID,&
DAMPER,DEBUG,DEVC_ID,DIAMETER,DISCHARGE_COEFFICIENT,DUCT_ID,&
DAMPER,DEBUG,DEVC_ID,DIAMETER,DISCHARGE_COEFFICIENT,DRY,DUCT_ID,&
EFFICIENCY,FAN_ID,FILTER_ID,FIXED_Q,GEOM,GEOM2,ID,LEAK_ENTHALPY,LEAK_PRESSURE_EXPONENT,LEAK_REFERENCE_PRESSURE,&
LENGTH,LOADING,LOADING_MULTIPLIER,LOSS,&
MASS_FLOW,MAX_FLOW,MAX_PRESSURE,N_CELLS,NETWORK_ID,NODE_ID,PERIMETER,QUANTITY,QUANTITY_SPEC_ID,&
Expand Down Expand Up @@ -719,6 +720,7 @@ SUBROUTINE READ_HVAC
N_DUCT_QUANTITY = N_DUCT_QUANTITY + 1
ENDDO
ALLOCATE (DUCT_QUANTITY_ARRAY(N_DUCT_QUANTITY))
DUCT_QUANTITY_ARRAY(1:N_DUCT_QUANTITY)%DRY = DRY(1:N_DUCT_QUANTITY)
DO N=1, N_DUCT_QUANTITY
HQT => DUCT_QUANTITY_ARRAY(N)
CALL GET_QUANTITY_INDEX(HQT%SMOKEVIEW_LABEL,HQT%SMOKEVIEW_BAR_LABEL,HQT%OUTPUT_INDEX,HQT%Y_INDEX,HQT%Z_INDEX,&
Expand All @@ -736,6 +738,7 @@ SUBROUTINE READ_HVAC
N_NODE_QUANTITY = N_NODE_QUANTITY + 1
ENDDO
ALLOCATE (NODE_QUANTITY_ARRAY(N_NODE_QUANTITY))
NODE_QUANTITY_ARRAY(1:N_NODE_QUANTITY)%DRY = DRY(1:N_NODE_QUANTITY)
DO N=1, N_NODE_QUANTITY
HQT => NODE_QUANTITY_ARRAY(N)
CALL GET_QUANTITY_INDEX(HQT%SMOKEVIEW_LABEL,HQT%SMOKEVIEW_BAR_LABEL,HQT%OUTPUT_INDEX,HQT%Y_INDEX,HQT%Z_INDEX,&
Expand Down Expand Up @@ -774,6 +777,7 @@ SUBROUTINE SET_HVAC_DEFAULTS
DAMPER = .FALSE.
DEVC_ID = 'null'
DIAMETER = -1._EB
DRY = .FALSE.
DUCT_ID = 'null'
FAN_ID = 'null'
FIXED_Q = -1.E10_EB
Expand Down
6 changes: 4 additions & 2 deletions Source/read.f90
Original file line number Diff line number Diff line change
Expand Up @@ -15716,12 +15716,12 @@ SUBROUTINE READ_SLCF
REAL(EB) :: MAXIMUM_VALUE,MINIMUM_VALUE
REAL(EB) :: AGL_SLICE
INTEGER :: N,NN,NM,MESH_NUMBER,N_SLCF_O,NITER,ITER,VELO_INDEX,GEOM_INDEX,IOR
LOGICAL :: VECTOR,CELL_CENTERED,DEBUG,CULL_SLICE
LOGICAL :: VECTOR,CELL_CENTERED,DEBUG,CULL_SLICE,DRY
CHARACTER(LABEL_LENGTH) :: QUANTITY,SPEC_ID,PART_ID,QUANTITY2,PROP_ID,REAC_ID,SLICETYPE
REAL(EB), PARAMETER :: TOL=1.E-10_EB
REAL(FB) :: RLE_MIN, RLE_MAX
TYPE (SLICE_TYPE), POINTER :: SL
NAMELIST /SLCF/ AGL_SLICE,CELL_CENTERED,DB,FYI,DEBUG,ID,MAXIMUM_VALUE,MESH_NUMBER,&
NAMELIST /SLCF/ AGL_SLICE,CELL_CENTERED,DB,DRY,FYI,DEBUG,ID,MAXIMUM_VALUE,MESH_NUMBER,&
MINIMUM_VALUE,PART_ID,PBX,PBY,PBZ,PROP_ID,QUANTITY,QUANTITY2,REAC_ID,RLE_MIN,RLE_MAX,SLICETYPE,&
SPEC_ID,VECTOR,VELO_INDEX,XB

Expand Down Expand Up @@ -15785,6 +15785,7 @@ SUBROUTINE READ_SLCF
VELO_INDEX = 0
RLE_MIN = 1.0_FB
RLE_MAX = 0.0_FB
DRY = .FALSE.

CALL CHECKREAD('SLCF',LU_INPUT,IOS) ; IF (STOP_STATUS==SETUP_STOP) RETURN
IF (IOS==1) EXIT SLCF_LOOP
Expand Down Expand Up @@ -15894,6 +15895,7 @@ SUBROUTINE READ_SLCF
SL=>SLICE(N)
SL%SLCF_INDEX=NN
SL%ID = ID
SL%DRY = DRY
SL%IOR = IOR
SL%SLICETYPE = TRIM(SLICETYPE)
SL%GEOM_INDEX = GEOM_INDEX
Expand Down
3 changes: 2 additions & 1 deletion Source/type.f90
Original file line number Diff line number Diff line change
Expand Up @@ -1564,7 +1564,7 @@ MODULE TYPES
REAL(FB), DIMENSION(2) :: MINMAX
REAL(FB) :: RLE_MIN, RLE_MAX
REAL(EB):: AGL_SLICE
LOGICAL :: TERRAIN_SLICE=.FALSE.,CELL_CENTERED=.FALSE.,RLE=.FALSE.,DEBUG=.FALSE.,THREE_D=.FALSE.
LOGICAL :: TERRAIN_SLICE=.FALSE.,CELL_CENTERED=.FALSE.,RLE=.FALSE.,DEBUG=.FALSE.,THREE_D=.FALSE.,DRY=.FALSE.
CHARACTER(LABEL_LENGTH) :: SLICETYPE='STRUCTURED',SMOKEVIEW_LABEL
CHARACTER(LABEL_LENGTH) :: SMOKEVIEW_BAR_LABEL,ID='null',MATL_ID='null'
END TYPE SLICE_TYPE
Expand Down Expand Up @@ -2130,6 +2130,7 @@ MODULE TYPES
CHARACTER(LABEL_LENGTH) :: SMOKEVIEW_LABEL !< Smokeview label for QUANTITY
CHARACTER(LABEL_LENGTH) :: SMOKEVIEW_BAR_LABEL !< Smokeview colorbar label for QUANTITY
CHARACTER(LABEL_LENGTH) :: UNITS !< Units for QUANTITY
LOGICAL :: DRY !< Remove water vapor before computing a mass or volume fraction
END TYPE HVAC_QUANTITY_TYPE


Expand Down
Loading