Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
26f3826
Python: better handling of figure and plot size to match plot_style f…
rmcdermo Sep 22, 2025
6896b76
Merge pull request #15159 from rmcdermo/master
rmcdermo Sep 22, 2025
87adc95
FDS Validation: Fix Wu-Bakar plot
mcgratta Sep 22, 2025
8b17c9c
Merge pull request #15160 from mcgratta/master
mcgratta Sep 22, 2025
f29140e
Matlab: fix exp labels for CSTB
rmcdermo Sep 22, 2025
739adac
Merge pull request #15162 from rmcdermo/master
rmcdermo Sep 22, 2025
f6d4734
Python: set up dataplot for validation
rmcdermo Sep 22, 2025
05d7d9f
Merge pull request #15163 from rmcdermo/master
rmcdermo Sep 22, 2025
5306d7d
FDS Source: Do not allow + sign in labels
mcgratta Sep 22, 2025
2b3203d
Merge pull request #15164 from mcgratta/master
mcgratta Sep 22, 2025
fda5e66
Python: add converted NIST_deposition_gauge.py
rmcdermo Sep 22, 2025
12003d0
Merge pull request #15165 from rmcdermo/master
rmcdermo Sep 22, 2025
f45add4
FDS Source: adjust calculation for BI-DIR
drjfloyd Sep 23, 2025
505dd14
FDS Validation: adjust fuel and BI-DIR TC for WTC
drjfloyd Sep 23, 2025
f2ff11d
Merge pull request #15168 from drjfloyd/master
drjfloyd Sep 23, 2025
c0e316c
FDS Source: Add FYI message for &GEOM line.
marcosvanella Sep 23, 2025
b3b25aa
Python: add flame_height.py
rmcdermo Sep 23, 2025
31cd160
Merge pull request #15170 from rmcdermo/master
rmcdermo Sep 23, 2025
501aa5d
Merge remote-tracking branch 'firemodels/master'
marcosvanella Sep 23, 2025
37e1d13
Merge pull request #15171 from marcosvanella/master
marcosvanella Sep 23, 2025
64fe517
Python: add NIST_RSE.py
rmcdermo Sep 23, 2025
db1fee4
Merge pull request #15172 from rmcdermo/master
rmcdermo Sep 23, 2025
c05661a
FDS Verification: Remove + sign
mcgratta Sep 23, 2025
34cacda
Merge pull request #15173 from mcgratta/master
mcgratta Sep 23, 2025
5ba5e2b
Python: remove unnecessary module import
rmcdermo Sep 23, 2025
70761b6
Merge pull request #15174 from rmcdermo/master
rmcdermo Sep 23, 2025
1474afe
Python: add check_hrr to flame_height.py
rmcdermo Sep 23, 2025
52f55a4
Merge pull request #15176 from rmcdermo/master
rmcdermo Sep 23, 2025
2f9b47c
Python: add sippola_aerosol_deposition.py
rmcdermo Sep 23, 2025
3daad03
Merge pull request #15177 from rmcdermo/master
rmcdermo Sep 23, 2025
2ab74e4
FDS Source: Adding the chemical source term in the Appendix E
cxp484 Sep 23, 2025
4e1ec71
FDS Source: Adding the chemical source term in the Appendix E
cxp484 Sep 23, 2025
b700e2e
Merge pull request #15178 from cxp484/master
cxp484 Sep 23, 2025
3bf3a7d
FDS Source: Adding the chemical source term in the Appendix E
cxp484 Sep 23, 2025
24ca9a7
Merge pull request #15179 from cxp484/master
cxp484 Sep 23, 2025
4e6b5d4
Python: recommit sippola_aerosol_deposition.py
rmcdermo Sep 23, 2025
5868f80
Merge pull request #15180 from rmcdermo/master
rmcdermo Sep 23, 2025
67f52fb
Python: fix for csv filename
rmcdermo Sep 23, 2025
bc1e094
Merge pull request #15181 from rmcdermo/master
rmcdermo Sep 23, 2025
c4a789b
FDS Source: Initialize AIT zone temp Issue #15175
drjfloyd Sep 23, 2025
e88f8b0
FDS Source: remove debug
drjfloyd Sep 23, 2025
74166a5
Merge pull request #15182 from drjfloyd/master
drjfloyd Sep 23, 2025
bdc0fd1
Merge remote-tracking branch 'firemodels/master' into FireX
cxp484 Sep 23, 2025
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
141 changes: 129 additions & 12 deletions Manuals/FDS_Technical_Reference_Guide/Appendices.tex
Original file line number Diff line number Diff line change
Expand Up @@ -846,7 +846,8 @@ \chapter{Analytical Jacobian for Mixing and Detailed Chemistry}

The system of ODEs for concentration and temperature contains additional terms to account for turbulent mixing. Following the theory of Sec.~\ref{sec:subgrid_evironment}, we can derive these ODEs as follows.

\subsection*{Mass Balance}
\section{Mass Balance}
\label{mass_balance_mixing_chem}

Each cell in divided in two zones, unmixed and mixed. Chemical reaction is only allowed in the mixed zone. The total mass in the cell is $\rho V_c$ where $V_c$ is the cell volume. For the purposes of discussing the time integration for mixing and chemical kinetics, the variable $t$ here can be taken as zero at the start of an LES time step. Thus, we are concerned with integration of the state of mixing and reaction within the cell from $0 \le t \le \delta t_{\mathrm{LES}}$. The mass in the unmixed portion of the cell is $U(t)$ and the mass in the mixed zone is $M(t)$:
\begin{align} \label{eq:mixedAndUnmixedZoneMass}
Expand Down Expand Up @@ -925,7 +926,10 @@ \subsection*{Mass Balance}
\frac{\d {\hat{C}_{k}}}{\d t} &= \dot{\hat{C}}_k = \dot{\omega}_k + \frac{\hat{\rho} \widetilde{Y}_k^0}{W_k} \frac{\zeta}{(1-\zeta) \tau_{\rm mix}} - \hat{C}_{k} \left[ \frac{1}{\hat{T}} \frac{\d \hat{T}}{\d t} + \frac{\sum{\dot{\omega}_j}}{\sum{\hat{C}_j}}+\frac{\zeta}{(1-\zeta)\tau_{\rm mix}}\frac{\hat{W}}{\widetilde{W}^0} \right]
\end{align}

\subsection*{Energy Balance}
Deatails of chemistry source term $\dot{{\omega}_k}$ can be found in Section \ref{chem_source_term}.

\section{Energy Balance}
\label{energy_balance_mixing_chem}

Now consider the total internal energy balance in the mixing zone:

Expand Down Expand Up @@ -972,8 +976,11 @@ \subsection*{Energy Balance}

Eqs.~(\ref{eq:jspeciemolarconcentration2}) and (\ref{eq:tempeqn}) will be used in CVODE as the ODE RHS.

Deatails of chemistry source term $\dot{{\omega}_j}$ can be found in Section \ref{chem_source_term}.


\subsection{Analytical Jacobian formulation}
\section{Analytical Jacobian formulation}
\label{jacobian_mixing_chem}

Providing an analytical Jacobian to the CVODE solver can significantly accelerate the chemistry calculations. The Jacobian for the given system can be written as:

Expand All @@ -991,6 +998,7 @@ \subsection{Analytical Jacobian formulation}
\frac{\partial \boldsymbol{\dot{\hat{C}}}}{\boldsymbol{\partial \hat{C}}}& \frac{\partial \dot{\hat{T}}}{\partial \boldsymbol{\hat{C}}}\\
\frac{\partial \boldsymbol{\dot{\hat{C}}}}{\partial \hat{T}}& \frac{\partial \dot{\hat{T}}}{\partial \hat{T}}
\end{bmatrix}
\label{eq:jacobian_mix_chem}
\end{align}


Expand All @@ -1014,12 +1022,7 @@ \subsection{Analytical Jacobian formulation}
\end{align}

\subsection*{Calculation of $\frac{\partial \boldsymbol{\dot{\hat{C}}_A}}{\mathbf{\partial \hat{C}}}$}
Here, $\dot{\hat{C}}_{k,A} = \dot{\omega}_{k}$.
By taking derivative of Eq.~(\ref{eq:chemistry_ode_system}) with respect to concentration, we can write:
\begin{align}\label{eq:JacCAC}
\frac{\partial \dot{\omega}_k}{\partial \hat{C}_{l}} &= \sum_{i=1}^{N_{reac}} \left[ \nu_{ki} \ r_i \ \frac{\partial b_i}{\partial \hat{C}_{l}} + b_i \nu_{ki} \ \left( k_{f,i} \nu_{li}^{'} \ \frac{\prod_{j=1}^{N_{\rm s}} (\hat{C}_j)^{{\nu}_{ji}^{'}} }{\hat{C}_{l}} - k_{r,i} \ \nu_{li}^{''} \ \frac{\prod_{j=1}^{N_{\rm s}} (\hat{C}_j)^{{\nu}_{ji}^{''}} }{\hat{C}_{l}} \right) \right],
\end{align}
Here, the $\frac{\partial b_i}{\partial \hat{C}_{l}}$ term can be calculated using Eqs.~(\ref{eq:reac_mod_coeff})-(\ref{eq:falloff_Fi}).
Here, $\dot{\hat{C}}_{k,A} = \dot{\omega}_{k}$. This term can be be calculated using Eq. \ref{eq:Jac1st} detailed in Section \ref{chem_source_term}.

\subsection*{Calculation of $\frac{\partial \boldsymbol{\dot{\hat{C}}_B}}{\mathbf{\partial \hat{C}}}$}

Expand Down Expand Up @@ -1064,7 +1067,9 @@ \subsection*{Calculation of $\frac{\partial \boldsymbol{\dot{\hat{C}}_A}}{\parti
\begin{align}\label{eq:JacCAT}
\frac{\partial {\dot{\hat{C}}_{k,A}}}{\partial \hat{T}} = \frac{\partial \dot{\omega}_k}{\partial \hat{T}}
\end{align}
This can be calculated similar to Eq. ?? as written before.
This term can be be calculated using Eq. \ref{eq:Jac2nd} detailed in Section \ref{chem_source_term}.




\subsection*{Calculation of $\frac{\partial \boldsymbol{\dot{\hat{C}}_B}}{\partial \hat{T}}$}
Expand All @@ -1091,7 +1096,7 @@ \subsection*{Calculation of $\frac{\partial \dot{\hat{T}}_A}{\mathbf{\partial \h
\begin{align}\label{eq:JacTAC}
\frac{\partial {\dot{\hat{T}}_{k,A}}}{\partial \hat{C}_{l}} = \frac{\partial}{\partial \hat{C}_{l}} \left( -\frac{1}{\hat{\rho} \hat{c}_p} \sum{\hat{h}_j W_j \dot{\omega}_j }\right)
\end{align}
This can be obtained by Eq. ??
This term can be be calculated using Eq. \ref{eq:Jac3rd} detailed in Section \ref{chem_source_term}.

\subsection*{Calculation of $\frac{\partial \dot{\hat{T}}_B}{\mathbf{\partial \hat{C}}}$}
\begin{align}\label{eq:JacTBC}
Expand All @@ -1104,7 +1109,7 @@ \subsection*{Calculation of $\frac{\partial \dot{\hat{T}}_A}{\partial \hat{T}}$}
\begin{align}\label{eq:JacTAT}
\frac{\partial {\dot{\hat{T}}_{k,A}}}{\partial \hat{T}} = \frac{\partial}{\partial \hat{T}} \left( -\frac{1}{\hat{\rho} \hat{c}_p} \sum{\hat{h}_j W_j \dot{\omega}_j }\right)
\end{align}
This can be obtained by Eq. ??
This term can be be calculated using Eq. \ref{eq:Jac4th} detailed in Section \ref{chem_source_term}.

\subsection*{Calculation of $\frac{\partial \dot{\hat{T}}_B}{\partial \hat{T}}$}

Expand All @@ -1114,6 +1119,118 @@ \subsection*{Calculation of $\frac{\partial \dot{\hat{T}}_B}{\partial \hat{T}}$}
&= - \frac{\zeta}{(1-\zeta) \tau_{\rm mix}} \frac{1}{\hat{c}_p} \left[ \sum{\hat{C}_{p,j}\widetilde{Y}_j^0} + \frac{1}{\hat{c}_p}\left( \sum{\hat{h}_j \widetilde{Y}_j^0} - \widetilde{h}^0 \right) \frac{\partial \hat{c}_p}{\partial \hat{T}} \right]
\end{align}

\section{Chemistry Source Term Calculation}
\label{chem_source_term}

The system of ODEs to solve a detailed chemical mechanism is given by Eqs.~(\ref{eq:chemistry_ode_system}) and (\ref{eq:TemperatureDerivative})
\begin{equation}\label{eq:chemistry_ode_system_appendix}
\frac{\d C_k}{\d t} = \dot{\omega}_k = \sum_{i=1}^{N_{\rm r}} b_i \ \nu_{ki} \ r_i, j=1,2,3,...,N_{\rm s}
\end{equation}
\begin{equation}\label{eq:TemperatureDerivativeAppendix}
\frac{\d T}{\d t} = \dot{T} = -\frac{1}{\rho c_p} \sum_{j=1}^{N_{\rm s}}h_j W_j \dot{\omega}_j
\end{equation}
For Eq.~(\ref{eq:chemistry_ode_system_appendix}), $C_j$ is the molar concentration \si{(kmol/m^3)} of the $j$th species; $b_i$ is the reaction rate modification coefficient of the $i$th reaction due to third-body effects and pressure; $\nu_{ki} = {\nu}_{ki}^{''} - {\nu}_{ki}^{'}$; and $r_i$ is the reaction progress rate of the $i$th reaction.
\begin{equation}\label{eq:reaction_progress_rate_appendix}
r_i = k_{f,i} \prod_{j=1}^{N_{\rm s}} (C_j)^{{\nu}_{ji}^{'}} - k_{r,i} \prod_{j=1}^{N_{\rm s}} (C_j)^{{\nu}_{ji}^{''}}
\end{equation}
For Eq.~(\ref{eq:TemperatureDerivativeAppendix}), $\rho$ is the density \si{(kg/m^3)}, $c_p$ is the specific heat of the mixture (J/kg/K), $h_k$ is the absolute enthalpy that includes enthalpy of formation (J/kg), $W_j$ is the molecular weight (kg/kmol) of species $j$, and $\dot{\omega}$ is the species production rate given by Eq.~(\ref{eq:chemistry_ode_system_appendix}).

The system of ODEs can be represented by:
\be
\begin{aligned}
f &= \left[ \frac{\d C_1}{\d t} \ \frac{\d C_2}{\d t} \ldots \ \frac{\d C_{N_{\rm s}}}{\d t} \ \frac{\d T}{\d t} \right]^T \
&= \left[ \dot{\omega}_1 \ \dot{\omega}_2 \ldots \ \dot{\omega}_{N_{\rm s}} \ \dot{T} \right]^T \
\end{aligned}
\ee

Providing an analytical Jacobian to the CVODE solver can significantly accelerate the chemistry calculations. The Jacobian for the given system can be written as:
\be
\begin{aligned}
J &=
\begin{bmatrix}
\frac{\partial\dot{\omega}_1}{\partial C_1}& \frac{\partial \dot{\omega}_2}{\partial C_1} & \ldots & \frac{\partial \dot{\omega}_{N_{\rm s}}}{\partial C_1} & | & \frac{\partial \dot{T}}{\partial C_1}\\
\frac{\partial\dot{\omega}_1}{\partial C_2}& \frac{\partial \dot{\omega}_2}{\partial C_2} & \ldots & \frac{\partial \dot{\omega}_{N_{\rm s}}}{\partial C_2} & | &\frac{\partial \dot{T}}{\partial C_2}\\
\ldots & \ldots & \ldots & \ldots & | & \ldots\\
\frac{\partial \dot{\omega}_1}{\partial C_{N_{\rm s}}}& \frac{\partial \dot{\omega}_2}{\partial C_{N_{\rm s}}} & \ldots & \frac{\partial \dot{\omega}_{N_{\rm s}}}{\partial C_{N_{\rm s}}} & | & \frac{\partial \dot{T}}{\partial C_{N_{\rm s}}}\\
---& --- & --- & --- & | & ---\\
\frac{\partial \dot{\omega}_1}{\partial T}& \frac{\partial \dot{\omega}_2}{\partial T} & \ldots & \frac{\partial \dot{\omega}_{N_{\rm s}}}{\partial T} & | & \frac{\partial \dot{T}}{\partial T}\\
\end{bmatrix}
&=\begin{bmatrix}
\frac{\partial \mathbf{\dot{\omega}}}{\mathbf{\partial C}}& \frac{\partial \dot{T}}{\partial \mathbf{C}}\\
\frac{\partial \mathbf{\dot{\omega}}}{\partial T}& \frac{\partial \dot{T}}{\partial T}
\end{bmatrix}
\label{eq:jacobian_chem}
\end{aligned}
\ee

This Jacobian is the first part of equations \ref{eq:jspeciemolarconcentration3} and \ref{eq:tempeqn2} for the mixing and chemistry Jacobian matrix (\ref{eq:jacobian_mix_chem}).

\subsection*{Calculation of $\frac{\partial \mathbf{\dot{\omega}}}{\mathbf{\partial C}}$}
By taking derivative of Eq.~(\ref{eq:chemistry_ode_system_appendix}) with respect to concentration, we can write:
\begin{equation}\label{eq:Jac1st}
\begin{aligned}
\frac{\partial \dot{\omega}_k}{\partial C_l} &= \sum_{i=1}^{N_{reac}} \left[ \nu_{ki} \ r_i \ \frac{\partial b_i}{\partial C_l} + b_i \nu_{ki} \ \left( k_{f,i} \nu_{li}^{'} \ \frac{\prod_{j=1}^{N_{\rm s}} (C_j)^{{\nu}_{ji}^{'}} }{C_l} - k_{r,i} \ \nu_{li}^{''} \ \frac{\prod_{j=1}^{N_{\rm s}} (C_j)^{{\nu}_{ji}^{''}} }{C_l} \right) \right],
\end{aligned}
\end{equation}
Here, the $\frac{\partial b_i}{\partial C_l}$ term can be calculated using Eqs.~(\ref{eq:reac_mod_coeff})-(\ref{eq:falloff_Fi}).

\subsection*{Calculation of $\frac{\partial \mathbf{\dot{\omega}}}{\partial T}$}
By taking derivative of Eq.~(\ref{eq:chemistry_ode_system_appendix}) with respect to temperature, we can write:
\begin{multline}\label{eq:Jac2nd}
\frac{\partial \dot{\omega}_k}{\partial T} = \sum_{i=1}^{N_{reac}} \left[ \nu_{ki} \ r_i \ \frac{\partial b_i}{\partial T} + b_i \nu_{ki} \ \left\{ \frac{\partial k_{f,i}}{\partial T} \prod_{j=1}^{N_{\rm s}} (C_j)^{{\nu}_{ji}^{'}} + k_{f,i} \frac{\partial}{\partial T} \left( \prod_{j=1}^{N_{\rm s}} (C_j)^{{\nu}_{ji}^{'}} \right) \right. \right. \\
- \left. \left. \frac{\partial k_{r,i}}{\partial T} \prod_{j=1}^{N_{\rm s}} (C_j)^{{\nu}_{ji}^{''}} - k_{r,i} \frac{\partial}{\partial T} \left( \prod_{j=1}^{N_{\rm s}} (C_j)^{{\nu}_{ji}^{''}} \right) \right\} \right]
\end{multline}
Similar to $\frac{\partial b_i}{\partial C_l}$, $\frac{\partial b_i}{\partial T}$ can be calculated using Eqs.~(\ref{eq:reac_mod_coeff})-(\ref{eq:falloff_Fi}).
\begin{equation} \label{eq:kfTmpDerivative}
\frac{\partial k_{f,i}}{\partial T} = \frac{k_{f,i}}{T} \left( n_{f,i} + \frac{E_{a,i}}{RT} \right) \ \text{using Eq. \ref{eq:rate_cons}}
\end{equation}
\begin{equation}\label{eq:krTmpDerivative}
\begin{aligned}
\frac{\partial k_{r,i}}{\partial T} &= \frac{\partial}{\partial T} \left( \frac{k_{f,i}}{K_i} \right) \
&= k_{r,i} \left( \frac{1}{k_{f,i}} \frac{\partial k_{f,i}}{\partial T} - \frac{1}{K_i} \frac{\partial K_i}{\partial T} \right)
\end{aligned}
\end{equation}
Here, $K_i$ is the concentration equilibrium constant obtained using Eq.~(\ref{eq:equilibrium_const}). Through mathematical derivation, it can be shown that:
\begin{equation}\label{eq:EqConstTmpDerivative}
\begin{aligned}
\frac{1}{K_i} \frac{\partial K_i}{\partial T} = -\frac{1}{T} \left( \sum_{i=1}^{N_{\rm s}} {\nu}_{ji}^{''} - \sum_{i=1}^{N_{\rm s}} {\nu}_{ji}^{'} \right) + \frac{1}{R T} \left( \frac{\Delta G_{\mathrm{rxn}}}{T} + \Delta S_{\mathrm{rxn}} \right)
\end{aligned}
\end{equation}
Here, $\Delta S_{\mathrm{rxn}}$ is the change in entropy, and can be calculated similar to the process described in Section \ref{sec:equilChem}.
\begin{equation}\label{eq:ConcTmpDerivative}
\begin{aligned}
\frac{\partial}{\partial T} \left( \prod_{j=1}^{N_{\rm s}} (C_j)^{{\nu}_{ji}^{'}} \right) &= - \frac{1}{T} \left( \sum_{j=1}^{N_{\rm s}} {\nu}_{ji}^{'} \right) \left( \prod_{j=1}^{N_{\rm s}} (C_j)^{{\nu}_{ji}^{'}} \right) \\
\frac{\partial}{\partial T} \left( \prod_{j=1}^{N_{\rm s}} (C_j)^{{\nu}_{ji}^{''}} \right) &= - \frac{1}{T} \left( \sum_{j=1}^{N_{\rm s}} {\nu}_{ji}^{''} \right) \left( \prod_{j=1}^{N_{\rm s}} (C_j)^{{\nu}_{ji}^{''}} \right){}
\end{aligned}
\end{equation}
In the above derivation, the relation $\frac{\partial C_j}{\partial T} = - \frac{C_j}{T}$ is used.
Using Eqs.~(\ref{eq:kfTmpDerivative})-(\ref{eq:ConcTmpDerivative}), all the terms of Eq.~(\ref{eq:Jac2nd}) can be calculated.


\subsection*{Calculation of $\frac{\partial \dot{T}}{\partial \mathbf{C}}$}
By taking derivative of Eq.~(\ref{eq:TemperatureDerivativeAppendix}) with respect to concentration, we can write:
\begin{equation} \label{eq:Jac3rd}
\begin{aligned}
\frac{\partial \dot{T}}{\partial C_l} &= \frac{\partial}{\partial C_l} \left( -\frac{1}{\rho c_p} \sum_{j=1}^{N_{\rm s}}h_j W_j \dot{\omega}_j \right) \\
&= -\left( \frac{1}{\rho} \frac{\partial \rho}{\partial C_l} + \frac{1}{c_p} \frac{\partial c_p}{\partial C_l} \right) \dot{T} - \frac{1}{{\rho} c_p} \sum_{j=1}^{N_{\rm s}}h_j W_j \frac{\partial \dot{\omega}_j}{\partial C_l}
\end{aligned}
\end{equation}
Using the relations $\frac{\partial \rho}{\partial C_l} = W_l$ and $\frac{\partial c_p}{\partial C_l} = - \frac{W_l}{\rho}\left( c_p -c_{p,l} \right)$, we can rewrite Eq. ~(\ref{eq:Jac3rd}) as:
\begin{equation} \label{eq:Jac3rd_final}
\frac{\partial \dot{T}}{\partial C_l} = \frac{W_l c_{p,l}}{\rho c_p} \dot{T} - \frac{1}{{\rho} c_p} \sum_{j=1}^{N_{\rm s}}h_j W_j \frac{\partial \dot{\omega}_j}{\partial C_l}
\end{equation}
Here, $c_{p,l}$ is the specific heat of species $l$. The last term Eq.~(\ref{eq:Jac3rd_final}) can be obtained using Eq. \ref{eq:Jac1st}.

\subsection*{Calculation of $\frac{\partial \dot{T}}{\partial T}$}
By taking derivative of Eq.~(\ref{eq:TemperatureDerivativeAppendix}) with respect to temperature, we can write:
\begin{equation} \label{eq:Jac4th}
\begin{aligned}
\frac{\partial \dot{T}}{\partial T} &= \frac{\partial}{\partial T} \left( -\frac{1}{\rho c_p} \sum_{j=1}^{N_{\rm s}}h_j W_j \dot{\omega}_j \right) \\
&=\frac{\dot{T}}{T} - \frac{1}{c_p} \frac{\partial c_p}{\partial T} \dot{T} - \frac{1}{\rho c_p} \sum_{j=1}^{N_{\rm s}} \left[ h_j \frac{\partial \dot{\omega}_j}{\partial T} + \dot{\omega}_j c_{p,j} \right] W_j
\end{aligned}
\end{equation}
To derive the above equation, the relations $\frac{\partial \rho}{\partial T} = -\frac{\rho}{T}$ and $\frac{\partial h_j}{\partial T} = c_{p,j}$ are used. The term $\frac{\partial \dot{\omega}_j}{\partial T}$ can be obtained using Eq.~(\ref{eq:Jac2nd}).


\chapter{The Unmixed Fraction}
\label{app:unmixed_fraction}
Expand Down
6 changes: 3 additions & 3 deletions Manuals/FDS_Verification_Guide/FDS_Verification_Guide.tex
Original file line number Diff line number Diff line change
Expand Up @@ -1484,7 +1484,7 @@ \subsection{Fire Plume using Constant Specific Heat Ratio (\texorpdfstring{\ct{f
\includegraphics[height=2.2in]{SCRIPT_FIGURES/fire_const_gamma_dH} &
\includegraphics[height=2.2in]{SCRIPT_FIGURES/fire_const_gamma_dP}
\end{tabular*}
\caption[Results of the \ct{fire\_const\_gamma} case]{Results of the \ct{fire\_const\_gamma} case.}
\caption[Results of the \ct{fire_const_gamma} case]{Results of the \ct{fire_const_gamma} case.}
\label{fig_fire_const_gamma}
\end{figure}

Expand Down Expand Up @@ -4743,7 +4743,7 @@ \section{Simple Thermocouple Model (\texorpdfstring{\ct{thermocouples}}{thermoco



\section{Heat Conduction through Insulated Steel (\texorpdfstring{\ct{insulated\_steel\_x}}{insulated\_steel\_x})}
\section{Heat Conduction through Insulated Steel (\texorpdfstring{\ct{insulated_steel_x}}{insulated\_steel\_x})}
\label{insulated_steel_pipe}
\label{insulated_steel_plate}

Expand All @@ -4768,7 +4768,7 @@ \section{Heat Conduction through Insulated Steel (\texorpdfstring{\ct{insulated\
\includegraphics[height=2.2in]{SCRIPT_FIGURES/insulated_steel_pipe} \\
\multicolumn{2}{c}{\includegraphics[height=2.2in]{SCRIPT_FIGURES/insulated_steel_pipe_2d}}
\end{tabular*}
\caption[The \ct{insulated\_steel} test cases]{Steady-state temperature profile within an insulated steel plate and pipe. Note that the pipe conduction case has been performed as part of a 3-D calculation (upper right) and a 2-D, axi-symmetric calculation (bottom).}
\caption[The \ct{insulated_steel} test cases]{Steady-state temperature profile within an insulated steel plate and pipe. Note that the pipe conduction case has been performed as part of a 3-D calculation (upper right) and a 2-D, axi-symmetric calculation (bottom).}
\label{insulated_steel_fig}
\end{figure}

Expand Down
16 changes: 8 additions & 8 deletions Source/dump.f90
Original file line number Diff line number Diff line change
Expand Up @@ -2456,9 +2456,9 @@ SUBROUTINE WRITE_SMOKEVIEW_FILE
IF (.NOT.SETUP_ONLY) THEN

! Mesh grid dimensions and neighbor information.
! Determine if the six mesh faces abut a single mesh (MESH_NEIGHBOR>0), nothing (MESH_NEIGHBOR=0),
! Determine if the six mesh faces abut a single mesh (MESH_NEIGHBOR>0), nothing (MESH_NEIGHBOR=0),
! or a combination of nothing and/or multiple meshes (MESH_NEIGHBOR=-1). Write six values to GRID line.

DO I=1,6
SELECT CASE(I)
CASE(1) ; IW1=1 ; IW2=IW1+M%JBAR*M%KBAR-1
Expand All @@ -2478,7 +2478,7 @@ SUBROUTINE WRITE_SMOKEVIEW_FILE
ENDDO

ENDIF

CALL EOL
WRITE(MYSTR,'(A,3X,A)') 'GRID',TRIM(MESH_NAME(NM)); CALL ADDSTR
WRITE(MYSTR,'(9I6)') M%IBAR,M%JBAR,M%KBAR,MESH_NEIGHBOR(1:6) ; CALL ADDSTR
Expand Down Expand Up @@ -9047,9 +9047,9 @@ REAL(EB) RECURSIVE FUNCTION GAS_PHASE_OUTPUT(T,DT,NM,II,JJ,KK,IND,IND2,Y_INDEX,Z
ELSE
PROBE_TMP = TMP(II,JJ,KK)
ENDIF
UU = U(II,JJ,KK)
VV = V(II,JJ,KK)
WW = W(II,JJ,KK)
UU = 0.5_EB*(U(MAX(0,II-1),JJ,KK)+U(MIN(IBAR,II),JJ,KK))
VV = 0.5_EB*(V(II,MAX(0,JJ-1),KK)+V(II,MIN(JBAR,JJ),KK))
WW = 0.5_EB*(W(II,JJ,MAX(0,KK-1))+W(II,JJ,MIN(KBAR,KK)))
VEL2 = UU**2+VV**2+WW**2
VEL = SQRT(VEL2)
DP = 0.5_EB*VEL2*RHO(II,JJ,KK)
Expand Down Expand Up @@ -9458,7 +9458,7 @@ REAL(EB) RECURSIVE FUNCTION GAS_PHASE_OUTPUT(T,DT,NM,II,JJ,KK,IND,IND2,Y_INDEX,Z
IF(FCVAR(II,JJ,KK,CC_IDRC,JAXIS)>0) GAS_PHASE_OUTPUT_RES = REAL(RC_FACE(FCVAR(II,JJ,KK,CC_IDRC,JAXIS))%UNKF,EB)
ENDIF

CASE(194) ! F_Z UNKNOWN NUMBER
CASE(194) ! F_Z UNKNOWN NUMBER
GAS_PHASE_OUTPUT_RES = 0._EB
IF (CC_IBM) THEN
GAS_PHASE_OUTPUT_RES = REAL(FCVAR(II,JJ,KK,CC_UNKF,KAXIS),EB)
Expand Down Expand Up @@ -13097,7 +13097,7 @@ SUBROUTINE DUMP_CVODE_SUBSTEPS()
DO ROWI = 1, TOTAL_SUBSTEPS_TAKEN
WRITE(LU_CVODE_SUBSTEPS,TCFORM) (CVODE_SUBSTEP_DATA(ROWI,COLI),COLI=1,NCOLS)
ENDDO
ENDIF
ENDIF

END SUBROUTINE DUMP_CVODE_SUBSTEPS

Expand Down
4 changes: 3 additions & 1 deletion Source/geom.f90
Original file line number Diff line number Diff line change
Expand Up @@ -22197,6 +22197,7 @@ SUBROUTINE READ_GEOM
DEVC_ID,CTRL_ID,SURF_IDS(3),SURF_ID6(6),MOVE_ID
CHARACTER(FN_LENGTH) :: BUFFER,FN_BINGEOM,BINARY_FILE
CHARACTER(LABEL_LENGTH), ALLOCATABLE, DIMENSION(:) :: SURF_ID
CHARACTER(MESSAGE_LENGTH) :: FYI
REAL(EB), ALLOCATABLE, DIMENSION(:) :: ZVALS,TFACES
REAL(EB), ALLOCATABLE, TARGET, DIMENSION(:) :: VERTS,VERTS_AUX
INTEGER, ALLOCATABLE, DIMENSION(:) :: SURF_ID_IND,POLY
Expand Down Expand Up @@ -22255,7 +22256,7 @@ SUBROUTINE READ_GEOM

NAMELIST /GEOM/ BNDF_GEOM,BINARY_FILE,CELL_BLOCK_IOR,CELL_BLOCK_ORIENTATION,COLOR,CYLINDER_ORIGIN,CYLINDER_AXIS,&
CYLINDER_RADIUS,CYLINDER_LENGTH,CYLINDER_NSEG_THETA,CYLINDER_NSEG_AXIS,&
EXTRUDE,EXTEND_TERRAIN,FACES,ID,IJK,IS_TERRAIN,MOVE_ID,N_LAT,N_LEVELS,N_LONG,POLY,&
EXTRUDE,EXTEND_TERRAIN,FACES,FYI,ID,IJK,IS_TERRAIN,MOVE_ID,N_LAT,N_LEVELS,N_LONG,POLY,&
RGB,SPHERE_ORIGIN,SPHERE_RADIUS,SPHERE_TYPE,SURF_ID,SURF_IDS,SURF_ID6,&
TEXTURE_MAPPING,TEXTURE_ORIGIN,TEXTURE_SCALE,TRANSPARENCY,&
VERTS,XB,ZMIN,ZVALS,ZVAL_HORIZON
Expand Down Expand Up @@ -24331,6 +24332,7 @@ SUBROUTINE SET_GEOM_DEFAULTS
MOVE_ID = 'null'
DEVC_ID = 'null'
CTRL_ID = 'null'
FYI = 'null'
HAVE_SURF = .TRUE.
HAVE_MATL = .TRUE.
TEXTURE_ORIGIN = 0.0_EB
Expand Down
Loading
Loading