Skip to content

Commit b88d5d8

Browse files
authored
Merge pull request #14726 from cxp484/FireX
FireX: Merge with firemodels/master
2 parents cc2b460 + 88c4791 commit b88d5d8

File tree

600 files changed

+1606
-1182
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

600 files changed

+1606
-1182
lines changed

Manuals/Bibliography/FDS_general.bib

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3470,6 +3470,16 @@ @ARTICLE{Lautenberger:FSJ
34703470
volume = {41},
34713471
}
34723472

3473+
@TECHREPORT{Leventon:NIST_TN_2282,
3474+
author = {I. Leventon and M. Heck and K. McGrattan and M. Bundy and R. Davis},
3475+
title = {{The Impact of Material Composition on Ignitability and Fire Growth. Volume 1: Full-Scale Burning Behavior of Combustible Solids Commonly Found in Nuclear Power Plants}},
3476+
institution = {National Institute of Standards and Technology},
3477+
year = {2024},
3478+
type = {NIST Technical Note},
3479+
number = {6196-1},
3480+
address = {Gaithersburg, Maryland}
3481+
}
3482+
34733483
@BOOK{Leveque:1,
34743484
author = {Leveque, R. J.},
34753485
title = {Finite Volume Methods for Hyperbolic Problems},

Manuals/FDS_User_Guide/FDS_User_Guide.tex

Lines changed: 53 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3998,6 +3998,46 @@ \subsection{Specified Flow vs. Unspecified Flow}
39983998

39993999
In the second approach, one or more ducts have flows that are not specified, in this case FDS must solve for the pressures at either end of the duct to determine the flow through the duct. As one example, if a tee has three ducts and only one of the ducts has a specified flow, then FDS will use the relative pressure drops along the two other ducts to determine the flow. If no \ct{LOSS} inputs are given, then FDS may not correctly solve for the flow. As another example, losses in the HVAC network limit how quickly flow in the ducts can change over time. If there is a single duct connecting two rooms with no \ct{LOSS} inputs given, then small pressure changes can lead to large changes in duct velocity and increase the risk of a numerical instability. If you specify an HVAC network where flow is being solved for by FDS, then you must provided \ct{LOSS} inputs for each possible flow path. FDS will perform a check at startup and return an error message if it finds insufficient losses have been specified; however, this check may not discover all cases.
40004000

4001+
\subsection{HVAC and Unstructured Geometry}
4002+
\label{info:hvac_geom}
4003+
4004+
Assigning either a normal HVAC node or a localized leakage HVAC to a GEOM is done using \ct{SURF}. Using the simple example from Section~\ref{info:GEOM_Basics}, an HVAC node named \ct{'MY NODE'} is assigned to the first face by defining a \ct{SURF} with \ct{NODE_ID='MY NODE'}. No other boundary conditions should be set on the \ct{SURF} other than a color or texture. On the node \ct{HVAC} input set \ct{GEOM=T} to indicate FDS needs to look for a \ct{GEOM} and not a \ct{VENT} for the node:
4005+
4006+
\begin{lstlisting}
4007+
&SURF ID='NODE SURF',NODE_ID='MY NODE'/
4008+
&GEOM ID='My Solid'
4009+
SURF_ID='NODE SURF','INERT'
4010+
VERTS= -1.0, -1.0, 0.0,
4011+
1.0, -1.0, 0.0,
4012+
0.0, 1.0, 0.0,
4013+
0.0, 0.0, 1.0,
4014+
FACES= 1,3,2, 2,
4015+
1,4,3, 1,
4016+
3,4,2, 1,
4017+
2,4,1, 0 /
4018+
&HVAC ID='MY NODE',TYPE_ID='NODE',GEOM=T,..../
4019+
\end{lstlisting}
4020+
4021+
The \ct{SURF} input \ct{NODE_ID} can only be applied to complex geometry. It cannot be used for \ct{OBST} or \ct{VENT}. While more than one \ct{GEOM} and more than one face of a \ct{GEOM} can use the same node, the same node cannot be shared by both a \ct{VENT} and a \ct{GEOM}.
4022+
4023+
To apply localized leakage to \ct{GEOM}, the process is similar. \ct{NODE_ID} on \ct{SURF} is still used to link faces of \ct{GEOM} to the localized leakage. The input for the localized leakage changes slightly. The inputs \ct{VENT_ID} and \ct{VENT2_ID} use \ct{GEOM} and \ct{GEOM2} to determine if the respective \ct{ID} is attached to a \ct{VENT} or a \ct{GEOM}. For example, to attach the second vent for a localized leakage path:
4024+
4025+
\begin{lstlisting}
4026+
&SURF ID='LEAK SURF',NODE_ID='LEAK OUT'/
4027+
&GEOM ID='My Solid'
4028+
SURF_ID='LEAK SURF','INERT'
4029+
VERTS= -1.0, -1.0, 0.0,
4030+
1.0, -1.0, 0.0,
4031+
0.0, 1.0, 0.0,
4032+
0.0, 0.0, 1.0,
4033+
FACES= 1,3,2, 2,
4034+
1,4,3, 1,
4035+
3,4,2, 1,
4036+
2,4,1, 0 /
4037+
&HVAC ID='MY LEAK',TYPE_ID='LEAK',VENT_ID='LEAK IN',VENT2_ID='LEAK OUT',GEOM2=T,AREA=0.01/
4038+
\end{lstlisting}
4039+
4040+
Here the use of \ct{GEOM2=T} indicates that \ct{VENT2_ID} is a \ct{NODE_ID} on \ct{SURF}.
40014041

40024042
\newpage
40034043

@@ -7138,7 +7178,7 @@ \subsection{Solid Phase}
71387178
\label{char_reaction}
71397179
{\rm Char} + \nu_{\rm O_2, char} \, {\rm O_2} \rightarrow (1+ \nu_{\rm O_2,char} - \nu_{\rm ash}) \, {\rm CO_2} + \nu_{\rm ash} \, {\rm Ash}
71407180
\ee
7141-
$M$ is the vegetation {\em moisture content} or {\em moisture fraction} determined on a dry weight basis, specified with \ct{MOISTURE_FRACTION} on the \ct{SURF} line. $\nu_{\rm char}$ is the mass fraction of Dry Vegetation that is converted to char during pyrolysis, specified with the parameter \ct{NU_MATL} on the \ct{MATL} line that describes the Dry Vegetation. The character string \ct{MATL_ID} on the same \ct{MATL} line indicates the name of the char. $\nu_{\rm O_2,char}$ is the mass of oxygen consumed per unit mass of char oxidized. $\nu_{\rm ash}$ is the mass fraction of char that is converted to ash during char oxidation, specified by \ct{NU_MATL} on the \ct{MATL} line describing the char.
7181+
$M$ is the vegetation {\em moisture content} or {\em moisture fraction} determined on a dry weight basis, specified with \ct{MOISTURE_CONTENT} on the \ct{SURF} line. $\nu_{\rm char}$ is the mass fraction of Dry Vegetation that is converted to char during pyrolysis, specified with the parameter \ct{NU_MATL} on the \ct{MATL} line that describes the Dry Vegetation. The character string \ct{MATL_ID} on the same \ct{MATL} line indicates the name of the char. $\nu_{\rm O_2,char}$ is the mass of oxygen consumed per unit mass of char oxidized. $\nu_{\rm ash}$ is the mass fraction of char that is converted to ash during char oxidation, specified by \ct{NU_MATL} on the \ct{MATL} line describing the char.
71427182

71437183
It is assumed that the Dry Vegetation in Eq.~(\ref{pyr_reac}) is 47~\% (by mass) carbon~\cite{Ma:BGS2018} with an effective organic component C$_{3.4}$H$_{6.2}$O$_{2.5}$~\cite{Ritchie:1}. In general, it is assumed that char may be comprised of more than pure carbon and is defined as $\mathrm{C_{x'}O_{z'}A}$ in Eq.~\ref{char_chemistry}. In the specific case where char is composed of pure carbon which reacts completely with O$_2$ to form CO$_2$ then $\nu_{\rm O_2,char}=2.67$ and $\nu_{\rm ash}=0$. A full discussion of the composition of the Char and Fuel Gas is given in Sec.~\ref{veg_pyrolysis_gas_phase}.
71447184

@@ -7397,12 +7437,12 @@ \section{Lagrangian Particle Model}
73977437
\begin{lstlisting}
73987438
&SURF ID = 'wet vegetation'
73997439
MATL_ID = 'dry pine'
7400-
MOISTURE_FRACTION = 0.25
7440+
MOISTURE_CONTENT = 0.25
74017441
SURFACE_VOLUME_RATIO = 8000.
74027442
LENGTH = 0.1
74037443
GEOMETRY = 'CYLINDRICAL' /
74047444
\end{lstlisting}
7405-
The needle is composed of two materials---\ct{'dry pine'} and \ct{'MOISTURE'}. Following the convention used in forestry, the moisture content is expressed via the \ct{MOISTURE_FRACTION}, which is the mass of moisture divided by the mass of {\em dry} vegetation. Do not confuse this with the mass fraction of moisture, $Y_{\rm m}$, which is related to the moisture fraction, $M$, via
7445+
The needle is composed of two materials---\ct{'dry pine'} and \ct{'MOISTURE'}. Following the convention used in forestry, the moisture content is expressed via the \ct{MOISTURE_CONTENT}, which is the mass of moisture divided by the mass of {\em dry} vegetation. Do not confuse this with the mass fraction of moisture, $Y_{\rm m}$, which is related to the moisture fraction, $M$, via
74067446
\be
74077447
Y_{\rm m} = \frac{M}{1+M}
74087448
\ee
@@ -7424,7 +7464,7 @@ \section{Lagrangian Particle Model}
74247464
CONDUCTIVITY = 1.0
74257465
SPECIFIC_HEAT = 1.6 /
74267466
\end{lstlisting}
7427-
Note that if you specify a \ct{MOISTURE_FRACTION} on the \ct{SURF} line, FDS will automatically add a \ct{MATL} line for \ct{'MOISTURE'} as it is written in Fig.~\ref{vege_inputs}. FDS will also alter the \ct{DENSITY} of the dry vegetation, in this case \ct{'dry pine'}, so that the size and wood content of the particle do not change when moisture is added. The modified density of the ``dry'' vegetation, $\tilde{\rho}_{\rm d}$, is given by:
7467+
Note that if you specify a \ct{MOISTURE_CONTENT} on the \ct{SURF} line, FDS will automatically add a \ct{MATL} line for \ct{'MOISTURE'} as it is written in Fig.~\ref{vege_inputs}. FDS will also alter the \ct{DENSITY} of the dry vegetation, in this case \ct{'dry pine'}, so that the size and wood content of the particle do not change when moisture is added. The modified density of the ``dry'' vegetation, $\tilde{\rho}_{\rm d}$, is given by:
74287468
\be
74297469
\tilde{\rho}_{\rm d} = \frac{\rho_{\rm d}} {1-\frac{\rho_{\rm d}}{\rho_{\rm m}} M }
74307470
\ee
@@ -7437,7 +7477,7 @@ \section{Lagrangian Particle Model}
74377477
&INIT PART_ID='pine needles', XB=0.,1.,0.,1.,0.,1., N_PARTICLES=1000,
74387478
MASS_PER_VOLUME=0.8, DRY=T /
74397479
\end{lstlisting}
7440-
This line inserts 1000 Lagrangian particles representing pine needles randomly within a unit cube. The \ct{MASS_PER_VOLUME} is the mass (kg) of solid needles divided by the volume (m$^3$) they occupy, sometimes called the ``bulk density.'' The parameter \ct{DRY=T} means that if you have specified a \ct{MOISTURE_FRACTION} on the \ct{SURF} line that describes the vegetation, then the actual mass per volume of wet vegetation is
7480+
This line inserts 1000 Lagrangian particles representing pine needles randomly within a unit cube. The \ct{MASS_PER_VOLUME} is the mass (kg) of solid needles divided by the volume (m$^3$) they occupy, sometimes called the ``bulk density.'' The parameter \ct{DRY=T} means that if you have specified a \ct{MOISTURE_CONTENT} on the \ct{SURF} line that describes the vegetation, then the actual mass per volume of wet vegetation is
74417481
\be
74427482
m_{\rm w}''' = m_{\rm d}''' \, (1+M)
74437483
\ee
@@ -7546,12 +7586,12 @@ \section{Boundary Fuel Model}
75467586
&SURF ID = 'Ground Vegetation'
75477587
MATL_ID(1,1) = 'Dry Vegetation'
75487588
MATL_ID(2,1) = 'Soil'
7549-
MOISTURE_FRACTION(1) = 0.218
7589+
MOISTURE_CONTENT(1) = 0.218
75507590
SURFACE_VOLUME_RATIO(1) = 3092.
75517591
MASS_PER_VOLUME(1) = 5.
75527592
THICKNESS(1:2) = 0.076,0.1 /
75537593
\end{lstlisting}
7554-
The presence of the parameter \ct{MASS_PER_VOLUME} automatically triggers the Boundary Fuel Model. Note that its argument of 1 refers to the first layer; the second layer being \ct{Soil}. If you specify \ct{MOISTURE_FRACTION}, FDS will automatically add a \ct{MATL} line for \ct{'MOISTURE'}.
7594+
The presence of the parameter \ct{MASS_PER_VOLUME} automatically triggers the Boundary Fuel Model. Note that its argument of 1 refers to the first layer; the second layer being \ct{Soil}. If you specify \ct{MOISTURE_CONTENT}, FDS will automatically add a \ct{MATL} line for \ct{'MOISTURE'}.
75557595

75567596
The drag exerted on the wind flowing through the vegetation is imposed as a force term in the gas phase grid cell adjacent to the boundary:
75577597
\be
@@ -11841,6 +11881,7 @@ \chapter{Alphabetical List of Input Parameters}
1184111881
% ignorenamelistkw: /PART/DEBUG, /PART/EMBER_SNAG_FACTOR
1184211882
% ignorenamelistkw: /REAC/C, /REAC/H, /REAC/O, /REAC/N, /REAC/FORMULA,
1184311883
% ignorenamelistkw: /SLCF/DEBUG, /SLCF/RLE_MIN, /SLCF/RLE_MAX, /SLCF/SLICETYPE
11884+
% ignorenamelistkw: /SURF/MOISTURE_FRACTION
1184411885
% ignorenamelistkw: /TIME/RAMP_DT
1184511886

1184611887
% ignore keywords that appear on any namelist
@@ -12418,6 +12459,8 @@ \section{\texorpdfstring{{\tt HVAC}}{HVAC} (HVAC System Definition)}
1241812459
\ct{FAN_ID} & Character & Section~\ref{info:HVACduct} & & \\ \hline
1241912460
\ct{FILTER_ID} & Character & Section~\ref{info:HVACnode} & & \\ \hline
1242012461
\ct{FIXED_Q} & Real & Section~\ref{info:HVACaircoil} & kW & \\ \hline
12462+
\ct{GEOM} & Logical & Section~\ref{info:hvac_geom} & & \ct{F} \\ \hline
12463+
\ct{GEOM2} & Logical & Section~\ref{info:hvac_geom} & & \ct{F} \\ \hline
1242112464
\ct{ID} & Character & Section~\ref{info:HVAC} & & \\ \hline
1242212465
\ct{LEAK_ENTHALPY} & Logical & Section~\ref{info:local_leakage} & & \ct{F} \\ \hline
1242312466
\ct{LEAK_PRESSURE_EXPONENT}& Real & Section~\ref{info:Leaks} & & 0.5 \\ \hline
@@ -13545,12 +13588,13 @@ \section{\texorpdfstring{{\tt SURF}}{SURF} (Surface Properties)}
1354513588
\ct{MINIMUM_LAYER_THICKNESS} & Real & Section~\ref{info:solid_phase_stability} & m & 1.E-4 \\ \hline
1354613589
\ct{MINIMUM_SCALING_HEAT_FLUX} & Real & Section~\ref{info:scaled_burning} & \si{kW/m^2} & 0 \\ \hline
1354713590
\ct{MLRPUA} & Real & Section~\ref{info:gas_burner} & \si{kg/(m^2.s)} & \\ \hline
13548-
\ct{MOISTURE_FRACTION(:)} & Real Array & Section~\ref{info:vegetation} & & 0. \\ \hline
13591+
\ct{MOISTURE_CONTENT(:)} & Real Array & Section~\ref{info:vegetation} & & 0. \\ \hline
1354913592
\ct{N_LAYER_CELLS_MAX(:)} & Integer Array & Section~\ref{info:solid_phase_stability} & & 1000 \\ \hline
1355013593
\ct{NEAR_WALL_EDDY_VISCOSITY} & Real & Section~\ref{info:LES} & m$^2$/s & \\ \hline
1355113594
\ct{NEAR_WALL_TURBULENCE_MODEL} & Character & Section~\ref{info:LES} & & \\ \hline
1355213595
\ct{NET_HEAT_FLUX} & Real & Section~\ref{info:convection} & \unit{kW/m^2} & \\ \hline
1355313596
\ct{NO_SLIP} & Logical & Section~\ref{info:WALL_MODEL} & & \ct{F} \\ \hline
13597+
\ct{NODE_ID} & Character & Section~\ref{info:hvac_geom} & & \\ \hline
1355413598
\ct{NPPC} & Integer & Section~\ref{info:particle_flux} & & 1 \\ \hline
1355513599
\ct{NUSSELT_C0} & Real & Section~\ref{info:convection} & & \\ \hline
1355613600
\ct{NUSSELT_C1} & Real & Section~\ref{info:convection} & & \\ \hline
@@ -14044,7 +14088,7 @@ \chapter{Error Codes}
1404414088
300 \> \ct{N_LAYER_CELLS_MAX should be at least ... for ...} \> Section~\ref{info:solid_phase_stability} \\
1404514089
301 \> \ct{SURF line must have an ID.} \> Section~\ref{info:SURF} \\
1404614090
302 \> \ct{SURF ID ... is used more than once.} \> Section~\ref{info:SURF} \\
14047-
303 \> \ct{MOISTURE_FRACTION on SURF ... exceeds theoretical limit.} \> Section~\ref{info:vegetation} \\
14091+
303 \> \ct{MOISTURE_CONTENT on SURF ... exceeds theoretical limit.} \> Section~\ref{info:vegetation} \\
1404814092
304 \> \ct{SURF ... One layer only for TGA_ANALYSIS=T.} \> Section~\ref{info:TGA_DSC_MCC} \\
1404914093
305 \> \ct{SURF ... indicates a level set simulation ...} \> Section~\ref{info:level_set} \\
1405014094
306 \> \ct{SURF ... cannot have a specified flux and a MATL_ID.} \> Section~\ref{info:MASS_FLUX} \\

Manuals/FDS_Validation_Guide/Burning_Rate_Chapter.tex

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1364,10 +1364,12 @@ \subsection{NIST/NRC Parallel Panel Experiments}
13641364
The figures below contain predictions of the burning rate of various plastics in a parallel panel apparatus described in Sec.~\ref{NIST_NRC_Parallel_Panels_Description}.
13651365

13661366
\begin{figure}[!ht]
1367-
\centering
1368-
\includegraphics[height=2.15in]{SCRIPT_FIGURES/NIST_NRC_Parallel_Panels/PMMA_60_kW} \\
1367+
\begin{tabular*}{\textwidth}{l@{\extracolsep{\fill}}r}
1368+
\includegraphics[height=2.15in]{SCRIPT_FIGURES/NIST_NRC_Parallel_Panels/PMMA_60_kW} &
13691369
\includegraphics[height=2.15in]{SCRIPT_FIGURES/NIST_NRC_Parallel_Panels/PBT_60_kW} \\
1370-
\includegraphics[height=2.15in]{SCRIPT_FIGURES/NIST_NRC_Parallel_Panels/PVC_60_kW}
1370+
\includegraphics[height=2.15in]{SCRIPT_FIGURES/NIST_NRC_Parallel_Panels/PVC_60_kW} &
1371+
\includegraphics[height=2.15in]{SCRIPT_FIGURES/NIST_NRC_Parallel_Panels/WRC_60_kW}
1372+
\end{tabular*}
13711373
\caption[NIST/NRC Parallel Panels experiments]{NIST/NRC Parallel Panels experiments.}
13721374
\label{NIST_NRC_PP_HRR}
13731375
\end{figure}

Manuals/FDS_Validation_Guide/Experiment_Chapter.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2037,7 +2037,7 @@ \subsubsection{Modeling Notes}
20372037
\section{NIST/NRC Parallel Panel Experiments}
20382038
\label{NIST_NRC_Parallel_Panels_Description}
20392039

2040-
As part of a Nuclear Regulatory Commission (NRC) research project to assess fire behavior in electrical enclosures, rate of spread and heat release rate measurements were made on various plastics lining a parallel panel apparatus. The panels were 0.6~m (2~ft) wide, 2.4~m (8~ft) tall, and separated by 0.3~m (1~ft). A 60~kW propane sand burner was positioned at the base of the two panels. Plastics tested to date include PMMA, PVC, and PBT, cut into 6.4~mm (0.25~in) thick panels. A sketch of the apparatus, originally developed by Factory Mutual, is shown in Fig.~\ref{Parallel_Panel_Sketch}.
2040+
As part of a Nuclear Regulatory Commission (NRC) research project to assess fire behavior in electrical enclosures, rate of spread and heat release rate measurements were made on various materials lining a parallel panel apparatus~\cite{Leventon:NIST_TN_2282}. The panels were 0.6~m (2~ft) wide, 2.4~m (8~ft) tall, and separated by 0.3~m (1~ft). A 60~kW propane sand burner was positioned at the base of the two panels. A sketch of the apparatus, originally developed by Factory Mutual, is shown in Fig.~\ref{Parallel_Panel_Sketch}.
20412041

20422042
The Parallel Panel experiment involving black PMMA is part of the suite of cases contributed to the MaCFP (Measurements and Computation of Fire Phenomena) working group of the IAFSS. Its properties are listed in Section~\ref{NIST_Polymers_Properties}.
20432043

0 commit comments

Comments
 (0)