Skip to content

Commit f587c57

Browse files
committed
FDS Source: Trap no HEAT_OF_REACTION for MATL Issue #14851
1 parent a8d2d67 commit f587c57

File tree

2 files changed

+5
-4
lines changed

2 files changed

+5
-4
lines changed

Manuals/FDS_User_Guide/FDS_User_Guide.tex

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3452,7 +3452,7 @@ \subsubsection{Example}
34523452
\section{Pyrolysis and Energy Conservation}
34533453
\label{solid_phase_energy_conservation}
34543454

3455-
The \ct{HEAT_OF_REACTION} is the energy gained or lost in converting the material to residue(s) and/or gas(es). In other words the \ct{HEAT_OF_REACTION} is the enthalpy of the products at the current solid temperature minus the enthalpy of the initial material at the current solid temperature. For total internal energy to be conserved, this must hold true. A challenge is that while the heat of reaction may be known for a solid material, detailed knowledge of the material enthalpy or the enthalpy of any residue or gaseous products is often not known. In cases where a reference enthalpy for a material is known, you can input on the \ct{MATL} line the \ct{REFERENCE_ENTHALPY} in kJ/kg and the \ct{REFERENCE_ENTHALPY_TEMPERATURE} in $^\circ$C.
3455+
The \ct{HEAT_OF_REACTION} is the energy gained or lost in converting the material to residue(s) and/or gas(es). In other words the \ct{HEAT_OF_REACTION} is the enthalpy of the products at the current solid temperature minus the enthalpy of the initial material at the current solid temperature. For total internal energy to be conserved, this must hold true. A challenge is that while the heat of reaction may be known for a solid material, detailed knowledge of the material enthalpy or the enthalpy of any residue or gaseous products is often not known. In cases where a reference enthalpy for a material is known, you can input on the \ct{MATL} line the \ct{REFERENCE_ENTHALPY} in kJ/kg and the \ct{REFERENCE_ENTHALPY_TEMPERATURE} in $^\circ$C. All reactions require a \ct{HEAT_OF_REACTION} even if it is zero.
34563456

34573457
FDS will attempt to adjust all material enthalpies so that internal energy is conserved. For each material reaction a linear equation is defined:
34583458
\be
@@ -3467,7 +3467,7 @@ \section{Pyrolysis and Energy Conservation}
34673467

34683468
The value of $T_{\rm ref}$ used for a reaction is the value specified by the \ct{REFERENCE_TEMPERATURE} for that reaction. If no value is given (when the reaction is defined using \ct{A} and \ct{E}), then FDS will do a virtual TGA using just the single reaction for the single material. The temperature where the peak reaction rate occurs is used for $T_{\rm ref}$. Since in most cases the specific heat of a material and the specific heats of its residues and product gases are not the same, the heat of reaction is temperature dependent. FDS will create a temperature dependent array for the heat of reaction that accounts for this where the value at $T_{\rm ref}$ is fixed to the value specified with \ct{HEAT_OF_REACTION}.
34693469

3470-
This process of adjusting enthalpies can be skipped by setting \ct{ADJUST_H=F} on a \ct{MATL} line. This should be done when material reactions do not represent actual chemical reactions. If no \ct{HEAT_OF_REACTION} is specified for a \ct{MATL} with a reaction then \ct{ADJUST_H=F} will be set. Note that this means if a reaction has \ct{HEAT_OF_REACTION} that is actually zero, and enthalpy adjustment is desired, then set \ct{HEAT_OF_REACTION} to 0 in the input file for that reaction.
3470+
This process of adjusting enthalpies can be skipped by setting \ct{ADJUST_H=F} on a \ct{MATL} line. This should be done when material reactions do not represent actual chemical reactions.
34713471

34723472
If the sum of the yields is less than 1, then for the purpose of solving for the $H_{\rm adj}$ values, FDS will assume that the missing mass is a material with the same specific heat as the original material.
34733473

@@ -14066,6 +14066,7 @@ \chapter{Error Codes}
1406614066
242 \> \ct{Spray Pattern Table ... massflux <= 0 for line ...} \> Section~\ref{info:sprinklers} \\
1406714067
243 \> \ct{PROP ... VIEW_ANGLE must be between 0 and 180} \> Section~\ref{info:sprinklers} \\
1406814068
\> \> \\
14069+
250 \> \ct{MATL ... REAC ... requires a HEAT_OF_REACTION.} \> Section~\ref{solid_phase_energy_conservation} \\
1406914070
251 \> \ct{MATL ... REAC ... Set REFERENCE_TEMPERATURE or E, A.} \> Section~\ref{info:kinetic_parameters} \\
1407014071
252 \> \ct{MATL ... HEAT_OF_REACTION should be greater than 0.} \> Section~\ref{info:HEAT_OF_REACTION} \\
1407114072
253 \> \ct{MATL ... DENSITY=0.} \> Section~\ref{info:thermal_properties} \\

Source/read.f90

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7077,8 +7077,8 @@ SUBROUTINE READ_MATL
70777077

70787078
DO NR=1,N_REACTIONS
70797079
IF (HEAT_OF_REACTION(NR)<=-1.E12_EB) THEN
7080-
HEAT_OF_REACTION(NR) = 0._EB
7081-
ADJUST_H = .FALSE.
7080+
WRITE(MESSAGE,'(A,A,A,I0,A)') 'ERROR(250): MATL ',TRIM(ID),', REAC ',NR,' requires a HEAT_OF_REACTION.'
7081+
CALL SHUTDOWN(MESSAGE) ; RETURN
70827082
ENDIF
70837083
IF (REFERENCE_TEMPERATURE(NR)<-TMPM .AND. (E(NR)< 0._EB .OR. A(NR)<0._EB)) THEN
70847084
WRITE(MESSAGE,'(A,A,A,I0,A)') 'ERROR(251): MATL ',TRIM(ID),', REAC ',NR,'. Set REFERENCE_TEMPERATURE or E, A'

0 commit comments

Comments
 (0)