Skip to content

Commit 3ef804f

Browse files
authored
Merge pull request #16392 from cxp484/FireX
FireX: Merge with firemodels/master
2 parents cd6da94 + 5f3f06e commit 3ef804f

42 files changed

Lines changed: 9595 additions & 307 deletions

Some content is hidden

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

.github/workflows/cmake.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -249,7 +249,7 @@ jobs:
249249
# oneapi-ci/scripts/install_windows.bat
250250
- name: cache install oneapi
251251
id: cache-install
252-
uses: actions/cache@v5
252+
uses: actions/cache@v6
253253
with:
254254
path: C:\Program Files (x86)\Intel\oneAPI\
255255
key: install-${{ env.WINDOWS_TOOLKIT_URL }}-${{ env.WINDOWS_TOOLKIT_COMPONENTS }}

.github/workflows/windows.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848
# oneapi-ci/scripts/install_windows.bat
4949
- name: cache install oneapi
5050
id: cache-install
51-
uses: actions/cache@v5
51+
uses: actions/cache@v6
5252
with:
5353
path: C:\Program Files (x86)\Intel\oneAPI\
5454
key: install-${{ env.WINDOWS_TOOLKIT_URL }}-${{ env.WINDOWS_TOOLKIT_COMPONENTS }}

Manuals/Bibliography/FDS_general.bib

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4132,6 +4132,17 @@ @report{Luketa:1
41324132
year = {2022},
41334133
}
41344134

4135+
@report{Luketa:11078,
4136+
title = {{Fire and Thermal Experiments in Support of the Model Evaluation Protocol for LNG Facility Fires}},
4137+
author = {A. Luketa and S. Adee and R. Allen and A. Cruz-Cabrera},
4138+
address = {Albuquerque, New Mexico},
4139+
institution = {Sandia National Laboratories},
4140+
month = 9,
4141+
number = {SAND2025-11078},
4142+
type = {Sandia Report},
4143+
year = {2025}
4144+
}
4145+
41354146
@misc{Lund:1997,
41364147
title = {On the use of discrete filters for large eddy simulation},
41374148
author = {T. S. Lund},
@@ -5306,6 +5317,15 @@ @article{Mulholland:F+M
53065317
year = {2000},
53075318
}
53085319

5320+
@article{Munoz:JHM2007,
5321+
title = {{Predicting the emissive power of hydrocarbon pool fires}},
5322+
author = {M. Mu\~{n}oz and E. Planas and F. Ferrero and J. Casal},
5323+
journal = {Journal of Hazardous Materials},
5324+
pages = {725-729},
5325+
volume = {144},
5326+
year = {2007}
5327+
}
5328+
53095329
@book{MYO,
53105330
title = {Fundamentals of Fluid Mechanics},
53115331
author = {Bruce R. Munson and Donald F. Young and Theodore H. Okiishi},
@@ -6340,6 +6360,16 @@ @inproceedings{Ren:IAFSS2020
63406360
year = {2020},
63416361
}
63426362

6363+
@article{Rengel:JLP2018,
6364+
title = {{A priori validation of CFD modelling of hydrocarbon pool fires}},
6365+
author = {B. Rengel and C. Mata and E. Pastor and J. Casal and E. Planas},
6366+
doi = {doi.org/10.1016/j.jlp.2018.08.002},
6367+
journal = {Journal of Loss Prevention in the Process Industries},
6368+
pages = {18-31},
6369+
volume = {56},
6370+
year = {2018}
6371+
}
6372+
63436373
@report{Restivo:1979,
63446374
title = {{Turbulent Flow in Ventilated Rooms}},
63456375
author = {Restivo, A.},

Manuals/FDS_Technical_Reference_Guide/Radiation_Chapter.tex

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -535,6 +535,8 @@ \subsection{Spatial Discretization}
535535
all the upwind intensities are determined from solid or gas phase boundaries. In theory, iterations are needed if the reflections
536536
or scattering are important, or if the scenario is optically very thick. Currently, no iterations are made.
537537

538+
To mitigate ray effects in the wall radiative heat flux, an option is implemented to randomly rotate the local meridian ($x$), azimuthal ($y$), and axial ($z$) coordinate system at each selected time step with respect to which the angular coordinates, $\theta$ and $\phi$ are evaluated. When random rotation is enabled, the discrete angular integration coefficients (e.g., $D_{xu}^l$) are no longer exactly symmetric with respect to the mesh faces. Consequently, the sum of $D_{xu}^l$ (and the corresponding coefficients for the other coordinate directions) over a face may deviate slightly from the theoretical value of $\pi$.
539+
538540
\subsection{Spatial Discretization in Cut Cells}
539541

540542
In the case of complex geometry where irregular cut-cells may exist (see Sec.~\ref{sec:unstructured_geometry}) an unstructured version of the RTE in Eq.~\ref{RTEdiscrete3} is adopted

Manuals/FDS_User_Guide/FDS_User_Guide.tex

Lines changed: 28 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2434,23 +2434,32 @@ \subsection{Walls with Different Materials Front and Back}
24342434
\subsection{Specified Internal Heat Source}
24352435

24362436
\label{info:INTERNAL_HEAT_SOURCE}
2437+
\label{internal_heating}
24372438

24382439
The condensed phase heat conduction equation has a source term that describes the internal sources and sinks of energy.
24392440
There are three types of sources that contribute to this term:
24402441
heats of reaction for the pyrolysis (see Sec.~\ref{info:solid_pyrolysis}),
24412442
internal absorption and emission of radiation (see Sec.~\ref{info:liquid_fuels}), and the source specified by the user.
24422443
An example of the case where specified heat source could be needed is the heating of electrical cables due to internal current.
24432444

2444-
The internal source term for each layer of the surface is specified using \ct{INTERNAL_HEAT_SOURCE} on the \ct{SURF} line. Its units are \unit{kW/m^3} and the default value is zero. An optional time ramp can be specified for each layer's heat source using \ct{RAMP_IHS}. In the example below, the cylindrical surface describing a cable consists of an outer plastic layer and inner core of metal. The metal core is heated with a power of 300~\unit{kW/m^3}.
2445+
The internal source term for each layer of the surface is specified using \ct{INTERNAL_HEAT_SOURCE} on the \ct{SURF} line. Its units are \unit{kW/m^3} and the default value is zero. An optional time ramp can be specified for each layer's heat source using \ct{RAMP_IHS}. In the example below, the cylindrical surface describing a 10~cm long cable segment consists of an outer plastic layer and inner core of metal. The metal core is heated with a power of 300~\unit{kW/m^3}.
24452446
\begin{lstlisting}
2446-
&SURF ID = 'Cable'
2447-
THICKNESS = 0.002,0.008
2448-
MATL_ID(1,1) = 'PLASTIC'
2449-
MATL_ID(2,1) = 'METAL'
2450-
GEOMETRY = 'CYLINDRICAL'
2451-
LENGTH = 0.1
2452-
INTERNAL_HEAT_SOURCE = 0.,300. /
2447+
&SURF ID = 'Cable'
2448+
THICKNESS = 0.002,0.008
2449+
MATL_ID(1,1) = 'PLASTIC'
2450+
MATL_ID(2,1) = 'METAL'
2451+
GEOMETRY = 'CYLINDRICAL'
2452+
LENGTH = 0.1
2453+
INTERNAL_HEAT_SOURCE = 0.,300. /
24532454
\end{lstlisting}
2455+
Figure~\ref{fig:internal_heating} displays the heat generated by 10 of these cable segments. The exact value is 300~\unit{kW/m^3} multiplied by the volume of the metal within the cable segment, $2 \times 10^{-5}$~\unit{m^3}, multiplied by the number of segments, 10, which equals approximately 0.06~kW.
2456+
\begin{figure}[!ht]
2457+
\centering
2458+
\includegraphics[height=2.35in]{SCRIPT_FIGURES/internal_heating}
2459+
\caption[Results of the \ct{internal_heating} test case]{Heating rate of a set of 10 cable segments. The dashed line represents the heat generated by the cable and the dotted line the heat flowing out of the computational domain.}
2460+
\label{fig:internal_heating}
2461+
\end{figure}
2462+
24542463

24552464
\subsection{Non-Planar Walls and Targets}
24562465

@@ -2533,7 +2542,8 @@ \subsection{Limitations}
25332542
\item Avoid contact between 3-D and 1-D solids. If two sides of a 3-D solid touch 1-D solids, there will be no lateral heat conduction computed in that particular direction.
25342543
\item If your 3-D obstruction extends beyond meshes that abut, FDS uses a special algorithm to identify all the meshes where this obstruction lives, and also those obstructions connected to it. However, if this algorithm fails to detect all the meshes and you receive an error stating that there is a problem, add the parameter \ct{NEIGHBOR_SEPARATION_DISTANCE} to the \ct{MISC} line. Any mesh within this distance of another mesh will share geometry information for use in the 3-D heat conduction calculation. If you set this parameter to a value larger than the width of the computational domain, then all meshes will establish communication channels for exchanging boundary information.
25352544
\item By default, the interior nodes are clustered near the surface and stretched out deeper within the solid. If you want to maintain uniform spacing, set \ct{CELL_SIZE} on the \ct{SURF} or \ct{OBST} line to indicate the desired interior node spacing. The \ct{CELL_SIZE} is typically chosen to be comparable to the gas phase cells. If the obstruction is thin; that is, less than one gas phase cell thick, the specified \ct{CELL_SIZE} will only apply to the heat conduction in the transverse, not normal, direction. The normal direction gridding will be controlled by the parameters \ct{STRETCH_FACTOR} and \ct{CELL_SIZE_FACTOR}. This may be useful in cases where the specified \ct{CELL_SIZE} is too coarse to resolve variations in surface definition along the normal dimension (see Section~\ref{checkerboard} for an example).
2536-
\item \ct{HT3D} cannot be applied to an \ct{OBST} that is to \ct{BURN_AWAY}. In addition, if the solid undergoes significant shrinking or swelling, do not use \ct{HT3D}. ``Significant'' means that the number of internal cells changes, in which case the 3-D nodal structure breaks down. To determine if this happens, use the \ct{PROF}ile output feature (Sec.~\ref{info:PROF}) to visualize profiles of internal temperature or other solid phase quantities. These output files contain the internal node coordinates as a function of time.
2545+
\item \ct{HT3D=T} cannot be applied to an \ct{OBST} that is to \ct{BURN_AWAY}. In addition, if the solid undergoes significant shrinking or swelling, do not use \ct{HT3D}. ``Significant'' means that the number of internal cells changes, in which case the 3-D nodal structure breaks down. To determine if this happens, use the \ct{PROF}ile output feature (Sec.~\ref{info:PROF}) to visualize profiles of internal temperature or other solid phase quantities. These output files contain the internal node coordinates as a function of time.
2546+
\item \ct{HT3D=T} or \ct{VARIABLE_THICKNESS=T} cannot be applied to an \ct{OBST} that is to be created or removed during the simulation, unless the \ct{OBST} does not touch any other \ct{OBST} or the boundary of the domain. This rule does not apply to two \ct{OBST}s that are controlled by the exact same device or controller; that is, the two \ct{OBST}s are created or removed at the same time.
25372547
\item If a \ct{SURF} line specifies either \ct{HT3D=T} or \ct{VARIABLE_THICKNESS=T} and also specifies an \ct{HRRPUA}, \ct{MLPUA}, or \ct{MASS_FLUX}, you must specify a \ct{MATL_ID} on the \ct{SURF} line and the appropriate \ct{OBST} lines. The reason for doubly specifying the \ct{MATL_ID} is so that the \ct{SURF} line can be set up properly. Note that the specification of \ct{HRRPUA} or similar on the surface of a 3-D or variably thick solid means that no obstruction making up the solid can have specified internal reactions, i.e. pyrolysis.
25382548
\item Issues regarding pyrolysis and material transport in 3-D solids is discussed in Section~\ref{info:LAYER_DIVIDE}.
25392549
\end{enumerate}
@@ -3814,6 +3824,7 @@ \subsection{HVAC Fan Parameters}
38143824
\end{lstlisting}
38153825
where:
38163826
\begin{itemize}
3827+
\item \ct{CURVE_TEMP} is the temperature the fan curve is based upon. FDS assumes a default value of \SI{20}{\degreeCelsius}.
38173828
\item \ct{LOSS} is the loss coefficient for flow through the fan when it is not operational. FDS assumes a default value of 1.
38183829
\item \ct{MAX_FLOW} is the maximum volumetric flow of the fan in \unit{m^3/s}. This input activates a quadratic fan model. Value must be > 0.
38193830
\item \ct{MAX_PRESSURE} is the stall pressure of the fan in units of Pa. This input activates a quadratic fan model. Value must be > 0.
@@ -3860,6 +3871,8 @@ \subsubsection{Fan Curves}
38603871
\end{center}
38613872
\end{figure}
38623873

3874+
FDS will automatically adjust the pressures of the fan curve to reflect the fan affinity law for density. This law states that the fan curve will shift in proportion to the ratio of the current duct density to the as tested duct density. The as tested duct density is computed assuming air as the gas, standard pressure, and \ct{CURVE_TEMP}.
3875+
38633876
\subsubsection{Jet Fans}
38643877

38653878
Fans do not have to be mounted on a solid wall, like a supply or an exhaust fan. If you just want to blow gases in a particular direction, create an obstruction \ct{OBST}, at least one cell thick, and apply to it \ct{VENT} lines that are associated with a simple HVAC system. This allows hot, smokey gases to pass through the obstruction, much like a free-standing fan. See the example case \ct{jet_fan.fds} which places a louvered fan (blowing diagonally down) near a fire (see Fig.~\ref{fig:Jet_Fan}).
@@ -5853,6 +5866,8 @@ \section{Spatial and Temporal Resolution of the Radiation Transport Solver}
58535866

58545867
The frequency of calls to the radiation solver can be changed from every 3 time steps with an integer called \ct{TIME_STEP_INCREMENT}. The increment over which the angles are updated can be changed from 5 with the integer called \ct{ANGLE_INCREMENT}. If \ct{TIME_STEP_INCREMENT} and \ct{ANGLE_INCREMENT} are both set to 1, the radiation field is completely updated in a single time step, but the cost of the calculation increases significantly. By default, the radiation transport equation is fully updated every 15 time steps. Given the relatively small time steps typically dictated by the CFL constraint, 15 time steps is usually still a relatively short interval of time. Increasing the temporal resolution of the radiation solver rarely adds to the overall accuracy of the calculation. Spatial resolution is far more important.
58555868

5869+
Additionally, to mitigate ray effects in the wall radiative heat flux, the option \ct{RANDOMIZE_RADIATION_DIRECTIONS} randomly rotates the local meridian ($x$), azimuthal ($y$), and axial ($z$) coordinate system used to define the angular coordinates $\theta$ and $\phi$. If \ct{RANDOMIZE_RADIATION_DIRECTIONS} is true, this rotation is performed after each complete sweep of the angular directions.
5870+
58565871
If you are using multiple meshes, the radiation solver cannot transfer energy from mesh to mesh within a single time step. If you notice an obvious delay in the propagation of radiative intensity from one mesh to another, you can increase the number of times the radiative intensity is updated within a single time step using \ct{RADIATION_ITERATIONS}, which is 1 by default. You rarely need to do this, unless it is obvious from the animation of various slice files.
58575872

58585873
The radiation solver is called before the start of the calculation to establish the radiation field in the event that you specify something to have a non-ambient temperature initially. By default, the radiation and wall boundary routines are iterated three times to establish thermal equilibrium. To change the number of iterations, set \ct{INITIAL_RADIATION_ITERATIONS} on the \ct{RADI} line.
@@ -12402,6 +12417,7 @@ \section{\texorpdfstring{{\tt HVAC}}{HVAC} (HVAC System Definition)}
1240212417
\ct{COOLANT_SPECIFIC_HEAT} & Real & Section~\ref{info:HVACaircoil} & \unit{kJ/(kg.K)} & \\ \hline
1240312418
\ct{COOLANT_TEMPERATURE} & Real & Section~\ref{info:HVACaircoil} & \unit{\degreeCelsius} & \ct{TMPA} \\ \hline
1240412419
\ct{CTRL_ID} & Character & Sections~\ref{info:HVACduct} & & \\ \hline
12420+
\ct{CURVE_TEMP} & Real A & Sections~\ref{info:HVACfan} & \unit{\degreeCelsius} & 20. \\ \hline
1240512421
\ct{DAMPER} & Logical & Sections~\ref{info:HVACduct}, \ref{info:HVACdamper} & & \ct{F} \\ \hline
1240612422
\ct{DEVC_ID} & Character & Sections ~\ref{info:HVACduct} & & \\ \hline
1240712423
\ct{DIAMETER} & Real & Section~\ref{info:HVACduct} & m & \\ \hline
@@ -13213,6 +13229,7 @@ \section{\texorpdfstring{{\tt RADI}}{RADI} (Radiation Parameters)}
1321313229
\ct{RADIATION} & Logical & Section~\ref{info:radiation_off} & & \ct{T} \\ \hline
1321413230
\ct{RADIATION_ITERATIONS} & Integer & Section~\ref{info:RADI_Resolution} & & 1 \\ \hline
1321513231
\ct{RADTMP} & Real & Section~\ref{info:RADI_Two_Phase} & \unit{\degreeCelsius} & 900 \\ \hline
13232+
\ct{RANDOMIZE_RADIATION_DIRECTIONS}& Logical & Section~\ref{info:RADI_Resolution} & & \ct{F} \\ \hline
1321613233
\ct{TIME_STEP_INCREMENT} & Integer & Section~\ref{info:RADI_Resolution} & & 3\,(3D),2\,(2D) \\ \hline
1321713234
\ct{WIDE_BAND_MODEL} & Logical & Section~\ref{info:RADI_Wide_Band} & & \ct{F} \\ \hline
1321813235
\ct{WSGG_MODEL} & Logical & Section~\ref{info:RADI_WSGG} & & \ct{F} \\ \hline
@@ -13530,7 +13547,7 @@ \section{\texorpdfstring{{\tt SURF}}{SURF} (Surface Properties)}
1353013547
\ct{INIT_IDS} & Char.~Array & Section~\ref{info:trees} & & \\ \hline
1353113548
\ct{INIT_PER_AREA} & Real & Section~\ref{info:trees} & m$^{-2}$ & \\ \hline
1353213549
\ct{INNER_RADIUS} & Real & Section~\ref{info:PART_GEOMETRY} & m & \\ \hline
13533-
\ct{INTERNAL_HEAT_SOURCE} & Real Array & Section~\ref{info:INTERNAL_HEAT_SOURCE} & \unit{kW/m^3} & \\ \hline
13550+
\ct{INTERNAL_HEAT_SOURCE} & Real Array & Section~\ref{info:INTERNAL_HEAT_SOURCE} & \unit{kW/m^3} & 0 \\ \hline
1353413551
\ct{LAYER_DIVIDE} & Real & Section~\ref{info:LAYER_DIVIDE} & & \ct{N_LAYERS}/2 \\ \hline
1353513552
\ct{LEAK_PATH} & Int.~Pair & Section~\ref{info:Leaks} & & \\ \hline
1353613553
\ct{LEAK_PATH_ID} & Character~Pair & Section~\ref{info:Leaks} & & \\ \hline
@@ -14130,6 +14147,7 @@ \chapter{Error Codes}
1413014147
377 \> \ct{SURF ... IMPINGING JET model requires ...} \> Section~\ref{info:impinging_jet} \\
1413114148
378 \> \ct{SURF ... cannot be applied to a 3-D conducting solid.} \> Section~\ref{info:BACKING} \\
1413214149
379 \> \ct{SURF ... NODE_ID does not exist.} \> Section~\ref{info:hvac_geom} \\
14150+
380 \> \ct{OBST ... is VARIABLE_THICKNESS or HT3D and cannot be removed.} \> Section~\ref{info:HT3D_Limitations} \\
1413314151
\> \> \\
1413414152
381 \> \ct{Need more spectral band limits.} \> Section~\ref{info:RADI_Wide_Band} \\
1413514153
382 \> \ct{Spectral band limits should be given in ascending order.} \> Section~\ref{info:RADI_Wide_Band} \\

0 commit comments

Comments
 (0)