Skip to content

Commit 9cc23fe

Browse files
authored
Merge pull request #15307 from cxp484/FireX
FireX: Merge with firemodels/master
2 parents e90a8d5 + 0f0e7ca commit 9cc23fe

37 files changed

+2612
-3644
lines changed

Manuals/FDS_Validation_Guide/Plume_Chapter.tex

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1027,20 +1027,19 @@ \section{Sandia Plume Experiments}
10271027

10281028
Details of these experiments can be found in Sec.~\ref{Sandia_Plume_Description}.
10291029

1030-
The Fire Laboratory for Accreditation of Models by Experimentation (FLAME) facility \cite{OHern:2005,Blanchat:2001} at Sandia National Laboratories in Albuquerque, New Mexico, is designed specifically for validating models of buoyant fire plumes. The plume source is 1~m in diameter surrounded by a 0.5~m steel ``ground plane''. Particle Image Velocimetry (PIV) and Planar Laser-Induced Fluorescence (PLIF) techniques were used to obtain instantaneous joint scalar and velocity fields.
1030+
The Fire Laboratory for Accreditation of Models by Experimentation (FLAME) facility~\cite{OHern:2005,Blanchat:2001} at Sandia National Laboratories in Albuquerque, New Mexico, is designed specifically for validating models of buoyant fire plumes. The plume source is 1~m in diameter surrounded by a 0.5~m steel ``ground plane''. Particle Image Velocimetry (PIV) and Planar Laser-Induced Fluorescence (PLIF) techniques were used to obtain instantaneous joint scalar and velocity fields.
10311031

10321032
\subsection{Sandia 1 m Helium Plume}
10331033
\label{Sandia plume}
10341034

1035-
Calculations of the Sandia 1 m helium plume are run at three grid resolutions: 6 cm, 3 cm, and 1.5 cm. To give the reader with a qualitative feel for the results, Fig.~\ref{Sandia_He_1m_image} provides a snapshot of density contours from the simulation. The calculations are run in parallel on 16 processors; the outlined blocks indicate the domain decomposition. Data for vertical velocity, radial velocity, and helium mass fraction are recorded at three levels downstream from the base of the plume, $z = [0.2, 0.4, 0.6]$ m, corresponding to the experimental measurements of O'Hern et al.~\cite{OHern:2005}. Results for the mean and root mean square (RMS) profiles are given in Figs.~\ref{Sandia_He_1m_velocity} - \ref{Sandia_He_1m_massfraction}. The means are taken between $t=10$ and $t=20$ seconds in the simulation.
1035+
Calculations of the Sandia 1 m helium plume are run at five grid resolutions: 20~cm, 10~cm, 6~cm, 3~cm, and 1.5~cm. Figure~\ref{Sandia_He_1m_image} provides a snapshot of density contours from the simulation. Data for vertical velocity, radial velocity, and helium mass fraction are recorded at three levels above the base of the plume, $z = [20, 40, 60]$~cm, corresponding to the experimental measurements of O'Hern~et~al.~\cite{OHern:2005}. Results for the mean and root mean square (RMS) profiles are given in Figs.~\ref{Sandia_He_1m_velocity} - \ref{Sandia_He_1m_massfraction}. The means are taken between $t=10$ and $t=20$ seconds in the simulation.
10361036

10371037
The domain is 3~m by 3~m by 4~m. The boundary conditions are open on all sides with a smooth solid surface surrounding the 1~m diameter helium pool. The ambient and helium mixture temperature is set to 12~$^\circ$C and the background pressure is set to 80900~Pa to correspond to the experimental conditions. The helium/acetone/oxygen mixture molecular weight is set to 5.45~kg/kmol. The turbulent Schmidt and Prandtl numbers are left at the FDS default value of 0.5. The helium mixture mass flux is specified as 0.0605~kg/s/m$^2$. This case was studied previously by DesJardin et al.~\cite{DesJardin:2004}.
10381038
\begin{figure}[h]
1039-
\begin{center}
1039+
\centering
10401040
\includegraphics[height=4in]{FIGURES/Sandia_Plumes/Sandia_He_1m_image}
1041-
\caption[Sandia 1~m helium plume image]{A snapshot of FDS results at 1.5 cm resolution for the Sandia 1 m helium plume showing density contours. The rows of measurement devices are visible near the base. The calculations are run in parallel on 16 processors; the outlined blocks indicate the domain decomposition.}
1041+
\caption[Sandia 1~m helium plume image]{A snapshot of FDS results at 1.5 cm resolution for the Sandia 1~m helium plume showing density contours. The rows of measurement devices are visible near the base. The calculations are run in parallel on 16 processors; the outlined blocks indicate the domain decomposition.}
10421042
\label{Sandia_He_1m_image}
1043-
\end{center}
10441043
\end{figure}
10451044

10461045
\newpage
@@ -1055,7 +1054,7 @@ \subsection{Sandia 1 m Helium Plume}
10551054
\includegraphics[height=2.15in]{SCRIPT_FIGURES/Sandia_Plumes/Sandia_He_1m_Wrms_p2}
10561055
\end{tabular*}
10571056
\caption[Sandia 1~m helium plume vertical velocity profiles]
1058-
{FDS predictions of mean and root mean square (RMS) vertical velocity profiles for the Sandia 1~m helium plume experiment. Results are shown for 6 cm, 3 cm, and 1.5 cm grid resolutions. With $z$ being the stream-wise coordinate, the bottom row is at $z=0.2$ m, the middle row is at $z=0.4$ m, and the top row is at $z=0.6$ m.}
1057+
{FDS predictions of mean and root mean square (RMS) vertical velocity profiles for the Sandia 1~m helium plume experiment. Results are shown for five grid resolutions and three elevations, $z$, above the base of the plume.}
10591058
\label{Sandia_He_1m_velocity}
10601059
\end{figure}
10611060

@@ -1069,7 +1068,7 @@ \subsection{Sandia 1 m Helium Plume}
10691068
\includegraphics[height=2.15in]{SCRIPT_FIGURES/Sandia_Plumes/Sandia_He_1m_Urms_p2}
10701069
\end{tabular*}
10711070
\caption[Sandia 1~m helium plume radial velocity profiles]
1072-
{FDS predictions of mean and root mean square (RMS) radial velocity profiles for the Sandia 1~m helium plume experiment. Results are shown for 6 cm, 3 cm, and 1.5 cm grid resolutions. With $z$ being the stream-wise coordinate, the bottom row is at $z=0.2$ m, the middle row is at $z=0.4$ m, and the top row is at $z=0.6$ m.}
1071+
{FDS predictions of mean and root mean square (RMS) radial velocity profiles for the Sandia 1~m helium plume experiment. Results are shown for five grid resolutions and three elevations, $z$, above the base of the plume.}
10731072
\label{Sandia_He_1m_velocity_rms}
10741073
\end{figure}
10751074

@@ -1083,7 +1082,7 @@ \subsection{Sandia 1 m Helium Plume}
10831082
\includegraphics[height=2.15in]{SCRIPT_FIGURES/Sandia_Plumes/Sandia_He_1m_Yrms_p2}
10841083
\end{tabular*}
10851084
\caption[Sandia 1~m helium plume mean and RMS mass fraction profiles]
1086-
{FDS predictions of mean and root mean square (RMS) helium mass fraction profiles for the Sandia 1~m helium plume experiment. Results are shown for 6 cm, 3 cm, and 1.5 cm grid resolutions. With $z$ being the stream-wise coordinate, the bottom row shows data at $z=0.2$ m, the middle row shows data at $z=0.4$ m, and the top row shows data at $z=0.6$ m.}
1085+
{FDS predictions of mean and root mean square (RMS) helium mass fraction profiles for the Sandia 1~m helium plume experiment. Results are shown for five grid resolutions and three elevations, $z$, above the base of the plume.}
10871086
\label{Sandia_He_1m_massfraction}
10881087
\end{figure}
10891088

Manuals/FDS_Verification_Guide/FDS_Verification_Guide.tex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1354,7 +1354,7 @@ \subsection{Species Bounds (\texorpdfstring{\ct{bound_test_*}}{bound\_test\_*})}
13541354

13551355
When multiple infinitely fast reactions are present it is not trivial to correctly partition the limiting reactant and maintain species bounds. FDS uses a special subcycling algorithm by Kahaner \cite{Kahaner:1989} to maintain boundedness for species when time integrating the ODEs for the chemical reaction step (the method is further discussed in the FDS Tech Guide \cite{FDS_Math_Guide}). In this section, we examine two test cases designed to verify the time integration method.
13561356

1357-
The first case, \ct{bound_test_1}, consists of two independent reactions, one with air as the limiting reactant, one with fuel as the limiting reactant. The stoichiometry of each reaction is the same: $\mathrm{F} + \mathrm{A} \rightarrow 2\,\mathrm{P}$. The initial volume fractions of determine which species are limiting. The results are shown in Fig.~\ref{fig:bound_test_1}. For the first reaction, $X_{\rm F1}$ is initially 0.3 and $X_{\rm A1}$ is initially 0.2. Therefore, all the A1 is converted to P1, which has a final volume fraction of $X_{\rm P1}=0.4$. In the second reaction, the initial fuel volume fraction is $X_{\rm F2}=0.1$ (limiting) and the initial air volume fraction is $X_{\rm A2}=0.4$. As can be see in Fig.~\ref{fig:bound_test_1}, the resulting final values give a product volume fraction of twice the limiting reactant, $X_{\rm P2}=0.2$.
1357+
The first case, \ct{bound_test_1}, consists of two independent reactions, one with air as the limiting reactant, one with fuel as the limiting reactant. The stoichiometry of each reaction is the same: $\mathrm{F} + \mathrm{A} \rightarrow 2\,\mathrm{P}$. The initial volume fractions determine which species are limiting. The results are shown in Fig.~\ref{fig:bound_test_1}. For the first reaction, $X_{\rm F1}$ is initially 0.3 and $X_{\rm A1}$ is initially 0.2. Therefore, all the A1 is converted to P1, which has a final volume fraction of $X_{\rm P1}=0.4$. In the second reaction, the initial fuel volume fraction is $X_{\rm F2}=0.1$ (limiting) and the initial air volume fraction is $X_{\rm A2}=0.4$. As can be seen in Fig.~\ref{fig:bound_test_1}, the resulting final values give a product volume fraction of twice the limiting reactant, $X_{\rm P2}=0.2$.
13581358

13591359
\begin{figure}[!ht]
13601360
\centering

Source/chem.f90

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -730,7 +730,7 @@ REAL(EB) FUNCTION DDC_TROE(P_RATIO, F, DPRDC, TMP, RNI)
730730
C = -0.4_EB - 0.67_EB*LOGFCENT
731731
N = 0.75_EB - 1.27_EB*LOGFCENT
732732

733-
DPARENTDC = 2.0*(LOGPR + C)/((N - D*(LOGPR + C))**2)*((DLOGPRDC)-(LOGPR + C)*(-D*(DLOGPRDC))/(N - D*(LOGPR + C)))
733+
DPARENTDC = 2.0_EB*(LOGPR + C)/((N - D*(LOGPR + C))**2)*((DLOGPRDC)-(LOGPR + C)*(-D*(DLOGPRDC))/(N - D*(LOGPR + C)))
734734

735735
DDC_TROE = F*LOGTEN * (- LOGFCENT*DPARENTDC/(1.0 + ((LOGPR + C)/(N - D*(LOGPR + C)))**2)**2)
736736

@@ -774,7 +774,7 @@ REAL(EB) FUNCTION DDTMP_TROE(P_RATIO, F, DPRDT, TMP, RNI)
774774
DNDT = -1.27*DLOGFCENTDT
775775
DLOGPRDT = DPRDT/P_RATIO/LOGTEN
776776

777-
DPARENTDT = 2.0*(LOGPR + C)/((N - D*(LOGPR + C))**2)* &
777+
DPARENTDT = 2.0_EB*(LOGPR + C)/((N - D*(LOGPR + C))**2)* &
778778
((DLOGPRDT + DCDT) - (LOGPR + C)*(DNDT - D*(DLOGPRDT + DCDT))/(N - D*(LOGPR + C)))
779779

780780
DDTMP_TROE = F*LOGTEN*(DLOGFCENTDT/(1.0 + ((LOGPR + C)/(N - D*(LOGPR + C)))**2) &

Source/fire.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1242,7 +1242,7 @@ SUBROUTINE CALC_AFT_REAC_AND_PROD(ZZ,ZZ_REAC,ZZ_PROD)
12421242
B = X
12431243
C = 0.5_EB*Y
12441244
D = 0._EB ! No fuel
1245-
E = A + 0.5*Z - B - 0.5_EB*C
1245+
E = A + 0.5_EB*Z - B - 0.5_EB*C
12461246
ENDIF
12471247

12481248
! Setup reactants

Source/func.f90

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2451,13 +2451,13 @@ SUBROUTINE SPRAY_ANGLE_DISTRIBUTION(LON,LAT,LON_CDF,LAT_CDF,BETA,MU,SPRAY_ANGLE,
24512451
LAT_CDF=0._EB
24522452
! Latitude distribution conditional on Longtitude
24532453
DO I=1,NPT
2454-
LAT_CDF(I,:)=LAT_CDF(I-1,:)+0.5*(PDF(I,:)+PDF(I-1,:))*DLAT
2454+
LAT_CDF(I,:)=LAT_CDF(I-1,:)+0.5_EB*(PDF(I,:)+PDF(I-1,:))*DLAT
24552455
ENDDO
24562456

24572457
! Marginal longtitude distribution
24582458
LON_CDF=0._EB
24592459
DO I=1,NPT
2460-
LON_CDF(I)=LON_CDF(I-1)+0.5*(LAT_CDF(NPT,I-1)+LAT_CDF(NPT,I))*DLON
2460+
LON_CDF(I)=LON_CDF(I-1)+0.5_EB*(LAT_CDF(NPT,I-1)+LAT_CDF(NPT,I))*DLON
24612461
ENDDO
24622462

24632463
! Normalize marginal longtitude distribution

Source/hvac.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2178,7 +2178,7 @@ SUBROUTINE UPDATE_FAN(T,ND)
21782178
DEL_P = FA%MAX_PRES - FA%MAX_PRES*(VDOT/FA%MAX_FLOW)**2
21792179
DEL_P = DEL_P*EVALUATE_RAMP(TSI,FA%SPIN_INDEX,TAU=FA%TAU)
21802180
CASE(3) !Fan curve
2181-
VDOT = 0.5*(DU%VEL(NEW)+DU%VEL(OLD))*DU%AREA
2181+
VDOT = 0.5_EB*(DU%VEL(NEW)+DU%VEL(OLD))*DU%AREA
21822182
IF (DU%REVERSE) VDOT = -VDOT
21832183
DEL_P = EVALUATE_RAMP(VDOT,FA%RAMP_INDEX)*EVALUATE_RAMP(TSI,FA%SPIN_INDEX,TAU=FA%TAU)
21842184
END SELECT

Source/part.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ SUBROUTINE GENERATE_PARTICLE_DISTRIBUTIONS
5151
DI = RM%T_MIN + I*DD
5252
LPC%R_CNF(I) = DI
5353
LPC%CNF(I) = EVALUATE_RAMP(DI,LPC%CNF_RAMP_INDEX)
54-
LPC%CVF(I) = LPC%CVF(I-1) + (DI-0.5*DD)**3*(LPC%CNF(I)-LPC%CNF(I-1))
54+
LPC%CVF(I) = LPC%CVF(I-1) + (DI-0.5_EB*DD)**3*(LPC%CNF(I)-LPC%CNF(I-1))
5555
ENDDO
5656
LPC%R_CNF = 1.E-6_EB*0.5_EB*LPC%R_CNF ! Convert diameter in microns to radius in meters.
5757
LPC%CNF = LPC%CNF/LPC%CNF(NDC)

Source/read.f90

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4219,7 +4219,7 @@ SUBROUTINE PROC_SPEC_1
42194219
SS_K(N,0) = SS_K(N,1)
42204220
SS_MU(N,0) = SS_MU(N,1)
42214221
ENDIF
4222-
SS%H_G(I) = SS%H_G(I-1) + 0.5*(SS_CP(N,I-1)+SS_CP(N,I))
4222+
SS%H_G(I) = SS%H_G(I-1) + 0.5_EB*(SS_CP(N,I-1)+SS_CP(N,I))
42234223
IF (SS%EXPLICIT_G_F) SS%G_F(I) = SS_G_F(N,I)
42244224
ENDDO
42254225

Source/wall.f90

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2936,8 +2936,8 @@ SUBROUTINE PERFORM_PYROLYSIS
29362936
R_DROP=R_SURF,LPU=U_SURF,LPV=V_SURF,LPW=W_SURF)
29372937
ELSE
29382938
CALL PYROLYSIS(ONE_D%N_MATL,ONE_D%MATL_INDEX,SURF_INDEX,BC%IIG,BC%JJG,BC%KKG,ONE_D%TMP(I),B1%TMP_F,Y_O2_F,BC%IOR,&
2939-
RHO_DOT(1:ONE_D%N_MATL,I),RHO_TEMP(1:ONE_D%N_MATL),0.5*(ONE_D%X(I-1)+ONE_D%X(I)),ASH_DEPTH,DX_S,DT_BC_SUB,&
2940-
M_DOT_G_PPP_ADJUST,M_DOT_G_PPP_ACTUAL,M_DOT_S_PPP,Q_S(I),Q_DOT_G_PPP,Q_DOT_O2_PPP,&
2939+
RHO_DOT(1:ONE_D%N_MATL,I),RHO_TEMP(1:ONE_D%N_MATL),0.5_EB*(ONE_D%X(I-1)+ONE_D%X(I)),ASH_DEPTH,DX_S,&
2940+
DT_BC_SUB,M_DOT_G_PPP_ADJUST,M_DOT_G_PPP_ACTUAL,M_DOT_S_PPP,Q_S(I),Q_DOT_G_PPP,Q_DOT_O2_PPP,&
29412941
Q_DOT_PART,M_DOT_PART,T_BOIL_EFF,B1%B_NUMBER,LAYER_INDEX(I),REMOVE_LAYER,ONE_D,B1,SOLID_CELL_INDEX=I)
29422942
ENDIF
29432943

0 commit comments

Comments
 (0)