Skip to content

Commit e965d77

Browse files
committed
Merge remote-tracking branch 'firemodels/master' into FireX
2 parents 6aad17f + 536ca82 commit e965d77

39 files changed

+493
-3659
lines changed

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@ elseif(CMAKE_Fortran_COMPILER_ID STREQUAL "Intel" OR CMAKE_Fortran_COMPILER_ID S
136136
endif()
137137
# When compiling with Intel and not on Windows apply -no-wrap-margin.
138138
if (NOT(WIN32))
139-
target_compile_definitions(fds PRIVATE -no-wrap-margin)
139+
target_compile_options(fds PRIVATE -no-wrap-margin)
140140
endif()
141141
endif()
142142

Manuals/Bibliography/commoncommands.tex

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,10 +32,11 @@
3232
%\pgfplotsset{compat=1.7}
3333
\usepackage{tocloft}
3434
\usepackage{color}
35-
\usepackage{amsmath}
3635
\definecolor{linknavy}{rgb}{0,0,0.50196}
3736
\definecolor{linkred}{rgb}{1,0,0}
3837
\definecolor{linkblue}{rgb}{0,0,1}
38+
\usepackage{amsmath}
39+
\usepackage{cancel}
3940
\usepackage{float}
4041
\usepackage{caption}
4142
\usepackage{pict2e}
@@ -65,6 +66,7 @@
6566

6667
\newcommand{\nopart}{\expandafter\def\csname Parent-1\endcsname{}} % To fix table of contents in pdf.
6768
\newcommand{\ct}[1]{\lstinline{#1}}
69+
\newcommand{\tct}[1]{\lstinline[basicstyle=\scriptsize\ttfamily]!#1!}
6870

6971
\usepackage{siunitx}
7072

Manuals/FDS_Technical_Reference_Guide/Appendices.tex

Lines changed: 256 additions & 92 deletions
Large diffs are not rendered by default.

Manuals/FDS_Technical_Reference_Guide/Momentum_Chapter.tex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -557,9 +557,9 @@ \subsection{Iterative Procedure for Updating Velocity}
557557
\be
558558
\left| u_I^* - u_0^* \right| < 0.5 \, \delta x
559559
\ee
560-
and the default convergence criteria for the pressure, $p=\rho(\cH-|\bu|^2/2)$, is
560+
and the default convergence criteria for the pressure, $p=\rho(\cH-|\bu|^2/2)$, is derived by taking the divergence of Eq.~(\ref{momeq}) and separating out the baroclinic pressure terms:
561561
\be
562-
\left| \nabla \cdot (p^k-p^{k-1}) \nabla (1/\rho) \right|<20/\dx^2
562+
\left| \nabla \cdot (p^k-p^{k-1}) \nabla (1/\rho) \right| \equiv \left| \nabla \cdot \left( \frac{\partial \bu}{\partial t} + \bF_{\rm A} + \nabla \frac{|\bu|^2}{2} + \frac{1}{\rho} \nabla p^k \right) \right| < 20/\dx^2
563563
\ee
564564
If the criteria are not met, return to Step~\ref{step3}.
565565
\end{enumerate}

Manuals/FDS_User_Guide/FDS_User_Guide.tex

Lines changed: 96 additions & 59 deletions
Large diffs are not rendered by default.

Manuals/FDS_Verification_Guide/FDS_Verification_Guide.tex

Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7943,32 +7943,41 @@ \chapter{Installation Testing}
79437943
\end{enumerate}
79447944

79457945
\begin{landscape}
7946-
\centering
7947-
\captionof{table}[FDS Installation Test Suite]{FDS Installation Test Suite. Details of each case may be found in the listed section or reference. Note that the light blue colored links refer to the FDS User's Guide.} \label{tbl:installation_test}
7948-
\footnotesize
7949-
\begin{tabular}{|l|c|l|l|l|}
7950-
\hline
7951-
Folder & Reference & Input File & FDS Output File & Expected Results File \\ \hline \hline
7952-
Controls & \ref{UG-activate_vents} & activate\_vents.fds & activate\_vents\_ctrl.csv & activate\_vents.csv \\ \hline
7953-
Pressure\_Effects & \ref{isentropic2} & isentropic2.fds & isentropic2\_devc.csv & isentropic2.csv \\ \hline
7954-
Energy\_Budget & \ref{energy_budget_tmix} & energy\_budget\_tmix.fds & energy\_budget\_tmix\_devc.csv & energy\_budget\_tmix.csv \\ \hline
7955-
Energy\_Budget & \ref{energy_budget_walls} & energy\_budget\_cold\_walls.fds & energy\_budget\_cold\_walls\_hrr.csv & energy\_budget\_cold\_walls.csv \\ \hline
7956-
Fires & \ref{UG-spray_burner} & spray\_burner.fds & spray\_burner\_hrr.csv & spray\_burner.csv \\ \hline
7957-
Heat\_Transfer & \ref{heat_conduction_kc} & heat\_conduction\_kc.fds & heat\_conduction\_kc\_devc.csv & heat\_conduction\_kc.csv \\ \hline
7958-
HVAC & \ref{ashrae7} & ashrae7\_table.fds & ashrae7\_table\_devc.csv & ashrae7\_exp.csv \\ \hline
7959-
Pressure\_Solver & \ref{UG-duct_flow} & duct\_flow.fds & duct\_flow\_devc.csv & duct\_flow.csv \\ \hline
7960-
Pressure\_Solver & \ref{UG-duct_flow} & duct\_flow\_uglmat.fds & duct\_flow\_uglmat\_devc.csv & duct\_flow.csv \\ \hline
7961-
Pyrolysis & \ref{enthalpy} & enthalpy.fds & enthalpy\_devc.csv & enthalpy.csv \\ \hline
7962-
Pyrolysis & \ref{shrink_swell} & shrink\_swell.fds & shrink\_swell\_devc.csv & shrink\_swell.csv \\ \hline
7963-
Radiation & \ref{radiation_shield} & radiation\_shield.fds & radiation\_shield\_devc.csv & radiation\_shield.csv \\ \hline
7964-
Species & \ref{mixing_reactions} & reactionrate\_EDC\_1step\_CH4\_nonmix.fds & reactionrate\_EDC\_1step\_CH4\_nonmix\_devc.csv & reactionrate\_EDC\_1step\_CH4\_nonmix\_spec.csv \\ \hline
7965-
Species & \ref{finite_rate_reactions} & reactionrate\_arrhenius\_2order\_1step.fds & reactionrate\_arrhenius\_2order\_1step\_devc.csv & reactionrate\_arrhenius\_2order\_1step\_soln.csv \\ \hline
7966-
Sprinklers\_and\_Sprays & \ref{water_evaporation_1} & water\_evaporation\_1.fds & water\_evaporation\_1\_devc.csv & water\_evaporation\_1.csv \\ \hline
7967-
Sprinklers\_and\_Sprays & \ref{particle_drag} & particle\_drag\_U50\_N16.fds & particle\_drag\_U50\_N16\_devc.csv & particle\_drag\_U50\_N16.csv \\ \hline
79687946

7969-
\end{tabular}
7947+
\scriptsize
7948+
\begin{xltabular}{9in}{|p{1.4in}|X|p{2.1in}|p{2.1in}|p{2.1in}|}
7949+
\caption[FDS Installation Test Suite]{FDS Installation Test Suite. Details of each case may be found in the listed section or reference. Note that the light blue colored links refer to the FDS User's Guide.}
7950+
\label{tbl:installation_test} \\
7951+
\hline
7952+
Folder & Reference & Input File & FDS Output File & Expected Results File \\
7953+
\hline \hline
7954+
\endfirsthead
7955+
\caption[]{FDS Installation Test (continued).} \\
7956+
\hline
7957+
Folder & Reference & Input File & FDS Output File & Expected Results File \\
7958+
\hline \hline
7959+
\endhead
7960+
\tct{Controls} & \ref{UG-activate_vents} & \tct{activate_vents.fds} & \tct{activate_vents_ctrl.csv} & \tct{activate_vents.csv} \\ \hline
7961+
\tct{Energy_Budget} & \ref{energy_budget_tmix} & \tct{energy_budget_tmix.fds} & \tct{energy_budget_tmix_devc.csv} & \tct{energy_budget_tmix.csv} \\ \hline
7962+
\tct{Energy_Budget} & \ref{energy_budget_walls} & \tct{energy_budget_cold_walls.fds} & \tct{energy_budget_cold_walls_hrr.csv} & \tct{energy_budget_cold_walls.csv} \\ \hline
7963+
\tct{Fires} & \ref{UG-spray_burner} & \tct{spray_burner.fds} & \tct{spray_burner_hrr.csv} & \tct{spray_burner.csv} \\ \hline
7964+
\tct{Heat_Transfer} & \ref{heat_conduction_kc} & \tct{heat_conduction_kc.fds} & \tct{heat_conduction_kc_devc.csv} & \tct{heat_conduction_kc.csv} \\ \hline
7965+
\tct{HVAC} & \ref{ashrae7} & \tct{ashrae7_table.fds} & \tct{ashrae7_table_devc.csv} & \tct{ashrae7_exp.csv} \\ \hline
7966+
\tct{Pressure_Effects} & \ref{isentropic2} & \tct{isentropic2.fds} & \tct{isentropic2_devc.csv} & \tct{isentropic2.csv} \\ \hline
7967+
\tct{Pressure_Solver} & \ref{UG-duct_flow} & \tct{duct_flow.fds} & \tct{duct_flow_devc.csv} & \tct{duct_flow.csv} \\ \hline
7968+
\tct{Pressure_Solver} & \ref{UG-duct_flow} & \tct{duct_flow_uglmat.fds} & \tct{duct_flow_uglmat_devc.csv} & \tct{duct_flow.csv} \\ \hline
7969+
\tct{Pyrolysis} & \ref{enthalpy} & \tct{enthalpy.fds} & \tct{enthalpy_devc.csv} & \tct{enthalpy.csv} \\ \hline
7970+
\tct{Pyrolysis} & \ref{shrink_swell} & \tct{shrink_swell.fds} & \tct{shrink_swell_devc.csv} & \tct{shrink_swell.csv} \\ \hline
7971+
\tct{Radiation} & \ref{radiation_shield} & \tct{radiation_shield.fds} & \tct{radiation_shield_devc.csv} & \tct{radiation_shield.csv} \\ \hline
7972+
\tct{Species} & \ref{mixing_reactions} & \tct{reactionrate_EDC_1step_CH4_nonmix.fds} & \tct{reactionrate_EDC_1step_CH4_nonmix_devc.csv} & \tct{reactionrate_EDC_1step_CH4_nonmix_spec.csv} \\ \hline
7973+
\tct{Species} & \ref{finite_rate_reactions} & \tct{reactionrate_arrhenius_2order_1step.fds} & \tct{reactionrate_arrhenius_2order_1step_devc.csv} & \tct{reactionrate_arrhenius_2order_1step_soln.csv} \\ \hline
7974+
\tct{Sprinklers_and_Sprays} & \ref{water_evaporation_1} & \tct{water_evaporation_1.fds} & \tct{water_evaporation_1_devc.csv} & \tct{water_evaporation_1.csv} \\ \hline
7975+
\tct{Sprinklers_and_Sprays} & \ref{particle_drag} & \tct{particle_drag_U50_N16.fds} & \tct{particle_drag_U50_N16_devc.csv} & \tct{particle_drag_U50_N16.csv} \\ \hline
7976+
\end{xltabular}
79707977
\end{landscape}
79717978

7979+
\normalsize
7980+
79727981
% Unstructured geometry Appendix:
79737982

79747983
\ifcompgeom

Source/fire.f90

Lines changed: 36 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1189,18 +1189,36 @@ SUBROUTINE CALC_AFT_REAC_AND_PROD(ZZ,ZZ_REAC,ZZ_PROD)
11891189
REAL(EB), INTENT(IN) :: ZZ(N_TRACKED_SPECIES)
11901190
REAL(EB), INTENT(OUT) :: ZZ_REAC(N_TRACKED_SPECIES),ZZ_PROD(N_TRACKED_SPECIES)
11911191
REAL(EB) :: EQUIV, X,Y,Z,A,B,C,D,E, SUM_ZZ
1192-
1192+
REAL(EB) :: ZZ_MASS, ZZ_FUEL_O2_MASS
1193+
REAL(EB) :: REAC_MASS, PROD_MASS, FUEL_MASS, O2_MASS, CO2_MASS, H2O_MASS
1194+
INTEGER :: NS
11931195

11941196
CALL CALC_EQUIV_RATIO(ZZ(1:N_TRACKED_SPECIES), EQUIV)
11951197
IF (SIM_MODE /= DNS_MODE .AND. USE_MIXED_ZN_AFT_TMP) THEN
11961198
EQUIV = MAX(1.0_EB,EQUIV)
11971199
ENDIF
11981200

1199-
! Based on CxHyOz + a(O2+3.76N2) = bCO2 + cH2O + dCxHyOz + eO2 + 3.76aN2
1201+
! Adjust for diluents
1202+
ZZ_FUEL_O2_MASS = 0.0_EB
1203+
ZZ_MASS = SUM(ZZ(1:N_TRACKED_SPECIES))
1204+
ZZ_REAC(1:N_TRACKED_SPECIES) = ZZ(1:N_TRACKED_SPECIES)
1205+
ZZ_PROD(1:N_TRACKED_SPECIES) = ZZ(1:N_TRACKED_SPECIES)
1206+
DO NS=1, N_TRACKED_SPECIES
1207+
IF (SPECIES_MIXTURE(NS)%OXR > 0.0_EB) THEN ! FUEL
1208+
ZZ_REAC(NS) = 0.0_EB
1209+
ZZ_PROD(NS) = 0.0_EB
1210+
ZZ_FUEL_O2_MASS = ZZ_FUEL_O2_MASS + ZZ(NS)
1211+
ENDIF
1212+
ENDDO
1213+
ZZ_REAC(I_O2) = 0.0_EB
1214+
ZZ_PROD(I_O2) = 0.0_EB
1215+
ZZ_FUEL_O2_MASS = ZZ_FUEL_O2_MASS + ZZ(I_O2)
1216+
1217+
! Based on CxHyOz + aO2 = bCO2 + cH2O + dCxHyOz + eO2
12001218
X=SPECIES_MIXTURE(I_FUEL)%ATOMS(6) !C
12011219
Y=SPECIES_MIXTURE(I_FUEL)%ATOMS(1) !H
12021220
Z=SPECIES_MIXTURE(I_FUEL)%ATOMS(8) !O
1203-
A=0.5_EB*((2.0_EB*X+0.5_EB*Y)/EQUIV -Z)
1221+
A=0.5_EB*((2.0_EB*X+0.5_EB*Y)/EQUIV -Z) ! a is a function of equivalence ratio
12041222
IF(ABS(EQUIV - 1.0_EB) <1E-3_EB) THEN ! Stoich
12051223
B = X
12061224
C = 0.5_EB*Y
@@ -1219,25 +1237,29 @@ SUBROUTINE CALC_AFT_REAC_AND_PROD(ZZ,ZZ_REAC,ZZ_PROD)
12191237
ENDIF
12201238

12211239
! Setup reactants
1222-
ZZ_REAC = 0.0_EB
1223-
ZZ_REAC(I_FUEL)=1._EB*SPECIES_MIXTURE(I_FUEL)%MW
1224-
ZZ_REAC(I_O2)=A*SPECIES_MIXTURE(I_O2)%MW
1225-
ZZ_REAC(I_N2)=3.76*A*SPECIES_MIXTURE(I_N2)%MW
1240+
FUEL_MASS = 1._EB*SPECIES_MIXTURE(I_FUEL)%MW
1241+
O2_MASS = A*SPECIES_MIXTURE(I_O2)%MW
1242+
REAC_MASS = FUEL_MASS+O2_MASS
1243+
ZZ_REAC(I_FUEL)=FUEL_MASS/REAC_MASS*ZZ_FUEL_O2_MASS
1244+
ZZ_REAC(I_O2)=O2_MASS/REAC_MASS*ZZ_FUEL_O2_MASS
12261245
SUM_ZZ=SUM(ZZ_REAC)
12271246
ZZ_REAC = ZZ_REAC/SUM_ZZ
12281247

12291248
! Setup products
1230-
ZZ_PROD = 0.0_EB
1231-
ZZ_PROD(I_CO2)=B*SPECIES_MIXTURE(I_CO2)%MW
1232-
ZZ_PROD(I_H2O)=C*SPECIES_MIXTURE(I_H2O)%MW
1233-
ZZ_PROD(I_FUEL)=D*SPECIES_MIXTURE(I_FUEL)%MW
1234-
ZZ_PROD(I_O2)=E*SPECIES_MIXTURE(I_O2)%MW
1235-
ZZ_PROD(I_N2)=3.76_EB*A*SPECIES_MIXTURE(I_N2)%MW
1249+
CO2_MASS = B*SPECIES_MIXTURE(I_CO2)%MW
1250+
H2O_MASS = C*SPECIES_MIXTURE(I_H2O)%MW
1251+
FUEL_MASS = D*SPECIES_MIXTURE(I_FUEL)%MW
1252+
O2_MASS = E*SPECIES_MIXTURE(I_O2)%MW
1253+
PROD_MASS = CO2_MASS+H2O_MASS+FUEL_MASS+O2_MASS
1254+
ZZ_PROD(I_CO2)=ZZ_PROD(I_CO2)+CO2_MASS/PROD_MASS*ZZ_FUEL_O2_MASS
1255+
ZZ_PROD(I_H2O)=ZZ_PROD(I_H2O)+H2O_MASS/PROD_MASS*ZZ_FUEL_O2_MASS
1256+
ZZ_PROD(I_FUEL)=FUEL_MASS/PROD_MASS*ZZ_FUEL_O2_MASS
1257+
ZZ_PROD(I_O2)=O2_MASS/PROD_MASS*ZZ_FUEL_O2_MASS
12361258
SUM_ZZ=SUM(ZZ_PROD)
12371259
ZZ_PROD = ZZ_PROD/SUM_ZZ
12381260

1239-
12401261
END SUBROUTINE CALC_AFT_REAC_AND_PROD
1262+
12411263
#endif
12421264

12431265
SUBROUTINE CHECK_AUTO_IGNITION(EXTINCT,TMP_IN,AIT,IIC,JJC,KKC,REAC_INDEX)

Utilities/Matlab/scripts/openmp_timing_benchmarks.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
return
2121
end
2222
M = importdata(filename,',',2);
23-
j = find(strcmp(M.colheaders,'"clock time"'));
23+
j = find(strcmp(M.colheaders,'clock time'));
2424
time64(i) = M.data(end,j);
2525
end
2626
time64 = time64/time64(1) * 100;
@@ -32,7 +32,7 @@
3232
return
3333
end
3434
M = importdata(filename,',',2);
35-
j = find(strcmp(M.colheaders,'"clock time"'));
35+
j = find(strcmp(M.colheaders,'clock time'));
3636
time128(i) = M.data(end,j);
3737
end
3838
time128 = time128/time128(1) * 100;

Utilities/Matlab/scripts/statistics_output.m

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
fid = fopen(Statistics_Tex_Output, 'wt');
3939
% Generate table header information in .tex file
4040
fprintf(fid, '%s\n', '\scriptsize');
41-
fprintf(fid, '%s\n', '\begin{longtable}[c]{@{\extracolsep{\fill}}|l|c|c|c|c|c|c|c|c|c|}');
41+
fprintf(fid, '%s\n', '\begin{longtable}{|p{2.5in}|l|p{1in}|l|p{1in}|l|l|l|l|l|}');
4242
fprintf(fid, '%s\n', '\hline');
4343
fprintf(fid, '%s\n', 'Case Name & Section & Expected & Expected & Predicted & Predicted & Type of & Error & Error & Within \\');
4444
fprintf(fid, '%s\n', ' & & Quantity & Value & Quantity & Value & Error & & Tolerance & Tol. \\ \hline \hline');
@@ -54,15 +54,15 @@
5454
[rows, cols] = size(output_stats);
5555
m = sortrows(output_stats(2:rows,:),1);
5656
for i_row = 1:rows-1
57-
case_name = strrep(m{i_row, 3}, '_', '\_');
57+
case_name = ['\lstinline[basicstyle=\scriptsize\ttfamily]!',m{i_row,3},'!'];
5858
if m{i_row,14}(1:14)=='FDS_User_Guide'
5959
case_name_section = ['\ref{UG-',m{i_row,3},'}'];
6060
else
6161
case_name_section = ['\ref{',m{i_row,3},'}'];
6262
end
63-
expected_quantity = strrep(m{i_row, 5}, '_', '\_');
63+
expected_quantity = ['\lstinline[basicstyle=\scriptsize\ttfamily]!',m{i_row,5},'!'];
6464
expected_value = m{i_row, 6};
65-
predicted_quantity = strrep(m{i_row, 7}, '_', '\_');
65+
predicted_quantity = ['\lstinline[basicstyle=\scriptsize\ttfamily]!',m{i_row, 7},'!'];
6666
predicted_value = m{i_row, 8};
6767
error_type = strrep(m{i_row,10}, ' Error', '');
6868
error_val = str2num(m{i_row,11});

Validation/JH_FRA/FDS_Input_Files/JH_FRA_compartment_01.fds

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
&HEAD CHID='JH_FRA_compartment_01', TITLE='FRA 1:4 Compartment Door Only Inert'/
22
&TIME T_END=720.0, /
33

4-
&CATF OTHER_FILES='common.fds' /
4+
&CATF OTHER_FILES='common.txt' /
55

66

77
&SURF ID='PROP_BURNER', RGB=188,0,0, HRRPUA=1777.7778, RAMP_Q='PROP_BURNER_RAMP_Q', TMP_FRONT=400, /
@@ -17,7 +17,7 @@
1717
&RAMP ID='PROP_BURNER_RAMP_Q', T=600.0, F=1.0/
1818
&RAMP ID='PROP_BURNER_RAMP_Q', T=601.0, F=0.0/
1919

20-
&CATF OTHER_FILES='props.fds' /
21-
&CATF OTHER_FILES='quarterscale.fds' /
20+
&CATF OTHER_FILES='props.txt' /
21+
&CATF OTHER_FILES='quarterscale.txt' /
2222

2323
&TAIL /

0 commit comments

Comments
 (0)