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: 2 additions & 2 deletions Manuals/FDS_User_Guide/FDS_User_Guide.tex
Original file line number Diff line number Diff line change
Expand Up @@ -3916,7 +3916,7 @@ \subsection{Louvered HVAC Vents}
\subsection{HVAC Mass Transport}
\label{info:hvacmasstransport}

FDS can account for the time delay of species and enthalpy transport through HVAC networks by discretizing individual HVAC ducts. This can by done using either \ct{N_CELLS} on an HVAC duct input or by setting \ct{HVAC_MASS_TRANSPORT_CELL_L}. The input \ct{N_CELLS} divides the length on the duct into \ct{N_CELLS} uniform segments. The parameter \ct{HVAC_MASS_TRANSPORT_CELL_L} defines a cell length that is applied to all ducts in an input file unless overridden by \ct{N_CELLS}. IF specified, the number of cells for a duct is taken as the nearest integer of the duct \ct{LENGTH} divided by \ct{HVAC_MASS_TRANSPORT_CELL_L}. The current HVAC solver does not account for heat loss in the HVAC network.
FDS can account for the time delay of species and enthalpy transport through HVAC networks by discretizing individual HVAC ducts. This can by done using either \ct{N_CELLS} on an HVAC duct input or by setting \ct{HVAC_MASS_TRANSPORT_CELL_L} on \ct{MISC}. The input \ct{N_CELLS} divides the length on the duct into \ct{N_CELLS} uniform segments. The parameter \ct{HVAC_MASS_TRANSPORT_CELL_L} defines a cell length that is applied to all ducts in an input file unless overridden by \ct{N_CELLS}. When specified, the number of cells for a duct is the duct \ct{LENGTH} divided by \ct{HVAC_MASS_TRANSPORT_CELL_L} rounded to the nearest integer (minimum of 1 cell). The current HVAC solver does not account for heat loss in the HVAC network.

If a duct is discretized, then all other ducts in that ductrun must also be discretized. There is no requirement that the same cell size be used for all ducts in a ductrun. A ductrun is any collection of interconnected HVAC components where a path exists between two components via traversing ducts in the ductrun.

Expand Down Expand Up @@ -12577,7 +12577,7 @@ \section{\texorpdfstring{{\tt MISC}}{MISC} (Miscellaneous Parameters)}
\ct{H_F_REFERENCE_TEMPERATURE} & Real & Section~\ref{info:enthalpy} & $^\circ$C & 25. \\ \hline
\ct{HUMIDITY} & Real & Section~\ref{info:humidity} & \% & 40. \\ \hline
\ct{HVAC_LOCAL_PRESSURE} & Logical & Section~\ref{info:HVAC} & & \ct{T} \\ \hline
\ct{HVAC_MASS_TRANSPORT_CELL_L} & Logical & Section ~\ref{info:hvacmasstransport} & & \ct{F} \\ \hline
\ct{HVAC_MASS_TRANSPORT_CELL_L} & Real & Section ~\ref{info:hvacmasstransport} & m & \\ \hline
\ct{HVAC_PRES_RELAX} & Real & Section ~\ref{info:HVAC} & & 1.0 \\ \hline
\ct{HVAC_QFAN} & Logical & Section ~\ref{info:HVAC_QFAN} & & \ct{F} \\ \hline
\ct{IBLANK_SMV} & Logical & Section~\ref{info:SLCF} & & \ct{T} \\ \hline
Expand Down
28 changes: 15 additions & 13 deletions Source/hvac.f90
Original file line number Diff line number Diff line change
Expand Up @@ -3510,17 +3510,18 @@ SUBROUTINE UPDATE_HVAC_MASS_TRANSPORT(DT,NR)
MASS_FLUX = DU%RHO_D * DU%VEL(NEW)

! Set up of CFL and sub time step
DT_CFL = DU%DX/(2*DU%VEL(NEW)) ! CFL for Godunov pure upwinding scheme
DT_CFL = ABS(DU%DX/(2*DU%VEL(NEW))) ! CFL for Godunov pure upwinding scheme
N_SUBSTEPS = MAX(1,CEILING(DT/DT_CFL))
DT_DUCT = DT/REAL(N_SUBSTEPS,EB)

! Set upwind face indices and allocate flux arrays
ALLOCATE(ZZ_F(0:DU%N_CELLS,N_TRACKED_SPECIES))
ALLOCATE(CPT_F(0:DU%N_CELLS))
ALLOCATE(CPT_C(DU%N_CELLS))
ALLOCATE(RHOCPT_C(DU%N_CELLS))
ALLOCATE(RHOZZ_C(DU%N_CELLS,N_TRACKED_SPECIES))

SUBSTEP_LOOP: DO NS = 1,N_SUBSTEPS
! Set upwind face indices and allocate flux arrays
ALLOCATE(ZZ_F(0:DU%N_CELLS,N_TRACKED_SPECIES))
ALLOCATE(CPT_F(0:DU%N_CELLS))
ALLOCATE(CPT_C(DU%N_CELLS))
ALLOCATE(RHOCPT_C(DU%N_CELLS))
ALLOCATE(RHOZZ_C(DU%N_CELLS,N_TRACKED_SPECIES))

! Populates upwind face variables, accounting for direction of flow (i.e. includes relevant node value as first/last face)
IF (DU%VEL(NEW)>0._EB) THEN
Expand Down Expand Up @@ -3556,13 +3557,14 @@ SUBROUTINE UPDATE_HVAC_MASS_TRANSPORT(DT,NR)
DU%CP_C(NC) = HGAS / DU%TMP_C(NC)
ENDDO DU_UPDATE_LOOP

DEALLOCATE(RHOZZ_C)
DEALLOCATE(ZZ_F)
DEALLOCATE(CPT_F)
DEALLOCATE(CPT_C)
DEALLOCATE(RHOCPT_C)

ENDDO SUBSTEP_LOOP

DEALLOCATE(RHOZZ_C)
DEALLOCATE(ZZ_F)
DEALLOCATE(CPT_F)
DEALLOCATE(CPT_C)
DEALLOCATE(RHOCPT_C)

ENDDO DUCT_LOOP


Expand Down
Loading