Complex Stoichiometry in Pyrosim

Reading Time: 17 minutes
Created with software version: 2024.1

To follow along with this tutorial, download the relevant files here.

1. Introduction

PyroSim supports both the simple chemistry and complex stoichiometry combustion models in FDS. This post demonstrates how the PyroSim user interface can be used to represent complex combustion and multiple fuels.

You must use complex stoichiometry if:

  • The fuel does not consist of just \(C\), \(H\), \(N\), \(O\).
  • To track soot deposition or removal from the atmosphere with HVAC filters.
  • There are multiple sequential gas phase reactions.

In this post we replicate examples from the FDS User’s Guide, the FDS Verification Guide, and the FDS Validation Guide. For all these examples, the stoichiometric equation is provided so the user does not need to calculate the stoichiometric coefficients. To see how to use a combustion calculator to calculate the coefficients yourself, see the tutorial Using the Combustion Calculator for HCN, HCl, and Soot.

The links below jump to each example.

  • Chapter 2 demonstrates non-simple chemistry fuels by including chlorine in the fuel and products.
  • Chapter 3 demonstrates use of multiple chemical reactions.
  • Chapter 4 demonstrates aerosol deposition.
  • Chapter 5 demonstrates a set of reactions where the downstream reactions use the products of the first reaction and shows how to set the Lumped Component Only option.

2. Combustion of Polyvinyl Chloride (PVC)

fds scrn compsto pvc
Figure 1. Complex stoichiometry: Example of PVC fuel with formation of hydrogen chloride

This example is based on the Section 13.2 Complex Fuel Molecules in the FDS User Guide. It adds chlorine to the fuel which produces the acid gas HCl.

As described in the FDS User Guide, "Fires, however, often involve fuels that do not just consist of C, H, N, and O. For example, chlorine is commonly found in building and household materials, and because of its propensity to form the acid gas HCl, you may want to account for it in the basic reaction scheme. Suppose the predominant fuel in the fire is polyvinyl chloride (PVC). Regardless of its detailed polymeric structure, it can be regarded as C2H3Cl for the purpose of modeling. Assuming that all of the Cl in the fuel is converted into HCl, you can derive a single-step reaction mechanism using appropriate soot and CO yields for the specified fuel." (McGrattan et al. 2021)

The stoichiometric equation given in the FDS User Guide is:

\[1\underbrace{\left(C_{2}H_{3}Cl\right)}_{Fuel}+1.0\underbrace{\left(1.53O_2+1.53(3.76) N_2\right)}_{Air}\Rightarrow\]
\[1\underbrace{\left(HCl + H_2 O + 0.14CO + 0.96CO_2 + 0.90C + 1.53(3.76)N_2\right)}_{Products}\]

2.1. Define the Species

The first step is to define the species. In this model, \(O_{2}\), \(N_{2}\), \(HCl\), \(H_{2}O\), \(CO\), \(CO_{2}\), and \(Soot\) will be defined as primitive species and will not be tracked in the solution. PVC will be defined as a primitive species that is tracked. Air and the products of combustion will be lumped species that are tracked.

To edit the primitive species:

  • On the Model menu, click Edit Species.
  • By default, PyroSim includes the species needed for a "simple chemistry" reaction. We will change the default air and products, so delete the default AIR, and PRODUCTS species. We will not use HYDROGEN CYANIDE, so delete it.
  • The remaining species are CARBON DIOXIDE, CARBON MONOXIDE, NITROGEN, OXYGEN, SOOT, and WATER VAPOR.
  • Add hydrogen chloride as a species. Note that hydrogen chloride is included in FDS as a predefined species, Table 12.1.2 Pre-Defined Gas and Liquid Properties (McGrattan et al. 2021), so we do not need to define the chemical formula. Click New, in the Predefined list select HYDROGEN CHLORIDE, and click OK.
  • Add PVC as a new species. Click New, click Custom, give the name as PVC, select Primitive, and click OK. Click Chemical Formula and type C2H3Cl. Click Apply to create the new species.

This example uses a simplified composition of air consisting only of nitrogen and oxygen. Define this as a lumped species:

  • In the Edit Species dialog.
  • Click New, click Custom, give the name as AIR, select Lumped, and click OK.
  • Click by Volume and type 5.76 for the Volume Fraction of NITROGEN and type 1.53 for the Volume Fraction of OXYGEN.
  • Click Apply to create the new species.

Define the combustion products as a lumped species.

  • In the Edit Species dialog.
  • Click New, click Custom, give the name as PRODUCTS, select Lumped, and click OK.
  • Click by Volume and type 0.96 for the Volume Fraction of CARBON DIOXIDE, type 0.14 for the Volume Fraction of CARBON MONOXIDE, type 1 for the Volume Fraction of HYDROGEN CHLORIDE, type 5.76 for the Volume Fraction of NITROGEN, type 0.9 for the Volume Fraction of SOOT, type 1 for the Volume Fraction of WATER VAPOR.
  • Click Apply to create the new species.
  • Click OK to close the Edit Species dialog.

Set AIR as the background species:

  • In the Navigation View (tree), right-click AIR and click Set as Background Species.

2.2. Define the Reaction

The next step is to define the reaction.

  • On the Model menu, click Edit Reactions.
  • Click New, give the name as PVC, select Complex Stoichiometry, for Fuel Species select PVC, and click OK.
  • Click Heat of Combustion and type 16400.
  • For AIR, the Type is Reactant and for the value of NU type 1.
  • For PVC, the Type is Reactant and for the value of NU type 1.
  • For PRODUCTS, the Type is Product and for the value of NU type 1.
  • Click Apply to create the new reaction.
  • Click OK to close the Edit Reactions dialog.

2.3. Create a Burning Surface

To use this reaction, define a surface that releases fuel:

  • On the Model menu, click Edit Surfaces.
  • Click New. For Surface Name, type Fire and for Surface Type select Burner. Click OK.
  • Input the desired value for Heat Release Rate Per Area.
  • Click OK and close the Edit Surfaces dialog.
  • Apply the Fire surface to the burning obstruction or vent.

2.4. Run the Simulation

See the attached input file for other details of the example problem.

3. Combustion of Polyurethane and Wood (PVC)

pyro scrn compsto multiple fuels results
Figure 2. Complex stoichiometry: Multiple fuel example showing HRRPUV of wood reaction.

The example in Section 13.2.4 Multiple Fuels of the FDS User Guide shows how to model two simultaneously burning fuels, polyurethane and wood. In the example, polyurethane is defined by the chemical formula \(C_{25}H_{42}O_{6}N_{2}\) and the combustion reaction has a soot yield \(y_{s} = 0.131\) and a \(CO\) yield of \(y_{CO} = 0.01\). The polyurethane reaction is given by:

\[1\underbrace{\left(C_{25}H_{42}O_6N_2\right)}_{Fuel\_Poly}+27.32741\underbrace{\left(O_2+3.76 N_2\right)}_{Air}\Rightarrow\]
\[1\underbrace{\left(19.74412 CO_2+0.16659 CO+21 H_2O+5.08930 C+103.7511 N_2\right)}_{Products\_poly}\]

Similarly, wood is defined by the chemical formula \(C_{1}H_{1.7}O_{0.74}N_{0.002}\) and the reaction has a soot yield \(y_{s} = 0.015\) and a \(CO\) yield of \(y_{CO} = 0.004\). The wood reaction is:

\[1\underbrace{\left(C_1H_{1.7}O_{0.74}N_{0.002}\right)}_{Fuel\_wood}+1.021246\underbrace{\left(O_2+3.76N_2\right)}_{Air}\Rightarrow\]
\[1\underbrace{\left(0.964384CO_2+0.003655CO+0.85H_2O+0.03196C+3.84076N_2\right)}_{Products\_wood}\]

3.1. Define the Species

In the FDS calculation, \(O_{2}\), \(N_{2}\), \(H_{2}O\), \(CO\), \(CO_{2}\), and \(Soot\) will be primitive species and will not be tracked. Polyurethane and wood will be defined as primitive species that are tracked. Air and the two products of combustion will be lumped species that are tracked.

To define the primitive species:

  • On the Model menu, click Edit Species.
  • By default, PyroSim includes the species needed for a "simple chemistry" reaction. We will redefine the air and products species, so delete the default AIR and PRODUCTS. We will not include HYDROGEN CYANIDE, so delete that also.
  • The remaining species are NITROGEN, OXYGEN, CARBON DIOXIDE, WATER VAPOR, CARBON MONOXIDE, and SOOT.
  • We now add polyurethane as a new species. In the Edit Species dialog, click New, click Custom, give the name as POLYURETHANE, select Primitive, and click OK. Click Chemical Formula and type C25H42O6N2. Click Apply to create the new species.
  • Similarly, we add wood. Click New, click Custom, give the name as WOOD, select Primitive, and click OK. Click Chemical Formula and type C1H1.7O0.74N0.002. Click Apply to create the new species.

In this example, air has been simplified to consist of only oxygen and nitrogen. Define air as a lumped species:

  • In the Edit Species dialog, click New, click Custom, give the name as AIR, select Lumped, and click OK.
  • Click by Volume and type 3.76 for the Volume Fraction of NITROGEN and type 1 for the Volume Fraction of OXYGEN.
  • Click Apply to create the new species.

Define the polyurethane combustion products as a lumped species.

  • In the Edit Species dialog, click New, click Custom, give the name as PRODUCTS_POLY, select Lumped, and click OK.
  • Click by Volume and type 19.74412 for the Volume Fraction of CARBON DIOXIDE, type 0.16659 for the Volume Fraction of CARBON MONOXIDE, type 103.7511 for the Volume Fraction of NITROGEN, type 5.08930 for the Volume Fraction of SOOT, type 21.0 for the Volume Fraction of WATER VAPOR.
  • Click Apply to create the new species.

Define the wood combustion products as a lumped species:

  • In the Edit Species dialog, click New, click Custom, give the name as PRODUCTS_WOOD, select Lumped, and click OK.
  • Click by Volume and type 0.964384 for the Volume Fraction of CARBON DIOXIDE, type 0.003655 for the Volume Fraction of CARBON MONOXIDE, type 3.84076 for the Volume Fraction of NITROGEN, type 0.03196 for the Volume Fraction of SOOT, type 0.85 for the Volume Fraction of WATER VAPOR.
  • Click Apply to create the new species.
  • Click OK to close the Edit Species dialog.

To set AIR as the background species:

  • In the Navigation View (tree), right-click AIR and click Set as Background Species.

3.2. Define the Reactions

The next step is to define the two reactions. First the polyurethane reaction:

  • On the Model menu, click Edit Reactions.
  • Click New, give the name as POLYURETHANE, select Complex Stoichiometry, for Fuel Species select POLYURETHANE and click OK.
  • Click Heat of Combustion and type 26200.
  • For AIR, the Type is Reactant and for the value of NU type 27.234364.
  • For POLYURETHANE, the Type is Reactant and for the value of NU type 1.
  • For PRODUCTS_POLY, the Type is Product and for the value of NU type 1.
  • Click Apply to create the new reaction.

Now the wood reaction:

  • In the Edit Reactions dialog.
  • Click New, give the name as WOOD, select Complex Stoichiometry, for Fuel Species select WOOD, and click OK.
  • Click Heat of Combustion and type 16400.
  • For AIR, the Type is Reactant and for the value of NU type 1.02121.
  • For WOOD, the Type is Reactant and for the value of NU type 1.
  • For PRODUCTS_WOOD, the Type is Product and for the value of NU type 1.
  • Click Apply to create the new reaction.
  • Click OK to close the Edit Reactions dialog.

We want both reactions to be active. By default, the first reaction created will be active. To set both reactions as active:

  • In the Navigation View (tree), under Reactions, verify that POLYURETHANE is active. If not, right-click POLYURETHANE and click Set as Active Reaction.
  • In the Navigation View (tree), under Reactions, right-click WOOD and click Set as Active Reaction.

3.3. Create a Burning Surface

We have defined the fuels and combustion reactions. The next step is to define the surface from which fuel is released (pyrolysis). Because we have two burning fuels, we must do this by specifying the mass flow rate of fuels from the surface. In this example, the total HRR is 1200 kW with each fuel contributing 50% of the total heat release rate. In this example, the vent that will release the fuel has an area of 1m2, so we use the area and the heats of combustion to calculate the fuel flow rates.

\[\dot{m''}_{poly}=\frac{600kW}{1m^2}\frac{1}{26200kJ/kg}=0.022901kg/\left(m^2\cdot s\right)\]
\[\dot{m''}_{wood}=\frac{600kW}{1m^2}\frac{1}{16400kJ/kg}=0.036585kg/\left(m^2\cdot s\right)\]

We also want each fuel to follow a ramp such that fire starts at 0kW at the initial time, reaches 1200kW at 10s, and remains at 1200kW for the remainder of a 30s simulation.

When there is a single fuel, we can use a Burner surface, but for multiple fuels we use a Supply surface. To define the surface:

  • On the Model menu, click Edit Surfaces.
  • Click New. For Surface Name, type Fire and for Surface Type select Supply. Click OK.
  • Click the color box and change the color to red.
  • Click Specify Mass Flux of Individual Species. Click the Species Injection tab.
  • First define the polyurethane mass flow rate. In the Mass Flux column, type 0.022901 for POLYURETHANE. In the Ramp-Up Type column select Custom. In the Ramp Value column click Edit Values and input the following (Time, Fraction) pairs: (0,0), (10,1), (30,1). Click OK.
  • Now define the wood mass flow rate. In the Mass Flux column, type 0.036585 for WOOD. In the Ramp-Up Type column select Custom. In the Ramp Value column click Edit Values and input the following (Time, Fraction) pairs: (0,0), (10,1), (30,1). Click OK.
  • Click OK and close the Edit Surfaces dialog.
pyro ui dialog compsto ramping function values
Figure 3. Define the ramp for the polyurethane mass flow.

3.4. Set Suppression

When using multiple chemical reactions, it is necessary to set suppression to false.

  • On the Analysis menu, click Simulation Parameters.
  • Select the Misc tab.
  • Set Reaction Suppression to False.
  • Click OK to close the Solution Parameters dialog.

3.5. Run the Simulation

See the attached input file for other details of the example problem.

4. Soot Deposition from a Propane Flame

pyro scrn compsto results soot deposition
Figure 4. Complex stoichiometry: Soot deposition from propane fire.

This example is based on Section 13.4.1 Soot Deposition from a Propane Flame in the FDS User Guide.

This example "shows how to define a reaction that invokes the aerosol deposition model in FDS. The fuel is propane with a specified soot yield of 0.05. Note that this is a fabricated soot yield that is used only for demonstration and verification purposes." (McGrattan et al. 2021)

The resulting stoichiometric equation is:

\[1\underbrace{\left(C_3H_8\right)}_{Fuel}+4.81643\underbrace{\left(O_2+3.76N_2\right)}_{Air}\Rightarrow\]
\[1\underbrace{\left(18.10978N_2+2.81643CO_2+4.0H_2O\right)}_{Products}+0.18357\underbrace{\left(C\right)}_{Soot}\]

4.1. Define the Species

The first step is to define the species. In this model, \(O_{2}\), \(N_{2}\), \(H_{2}O\), and \(CO_{2}\) will be defined as primitive species and will not be tracked. Propane and Soot will be defined as primitive species that are tracked. Air and the products of combustion will be lumped species that are tracked.

Edit the species:

  • On the Model menu, click Edit Species.
  • By default, PyroSim includes the species needed for a "simple chemistry" reaction. We will redefine air and the products species and will not use \(CO\), so delete the default AIR, PRODUCTS, and CARBON MONOXIDE species. We will not use HYDROGEN CYANIDE, so delete it.
  • The remaining species are CARBON DIOXIDE, NITROGEN, OXYGEN, SOOT, and WATER VAPOR.
  • Add propane as a species. Note that propane is included in FDS as a predefined species, Table 12.1.2 Pre-Defined Gas and Liquid Properties (McGrattan et al. 2021), so we do not need to define the chemical formula. Click New, in the Predefined list select PROPANE, and click OK.
  • For soot to deposit, it must be explicitly tracked by defining AEROSOL = .TRUE. on the SPEC line. Click SOOT and then the Advanced tab. In the Name column type AEROSOL and in the Value type .TRUE. (include both periods).
  • We also define the soot diameter. In the Name column type MEAN_DIAMETER and in the Value type 1.E-6.
  • Click Apply.

In this example, air has been simplified to consist of only oxygen and nitrogen. Define air as a lumped species:

  • In the Edit Species dialog.
  • Click New, click Custom, give the name as AIR, select Lumped, and click OK.
  • Click by Volume and type 3.76 for the Volume Fraction of NITROGEN and type 1 for the Volume Fraction of OXYGEN.
  • Click Apply to create the new species.

Define the combustion products as a lumped species.

  • In the Edit Species dialog.
  • Click New, click Custom, give the name as PRODUCTS, select Lumped, and click OK.
  • Click by Volume and type 2.81643 for the Volume Fraction of CARBON DIOXIDE, type 18.10978 for the Volume Fraction of NITROGEN, and type 4.0 for the Volume Fraction of WATER VAPOR.
  • Click Apply to create the new species.
  • Click OK to close the Edit Species dialog.

To set AIR as the background species:

  • In the Navigation View (tree), right-click AIR and click Set as Background Species.

4.2. Define the Reaction

The next step is to define the reaction.

  • On the Model menu, click Edit Reactions.
  • Click New, give the name as PROPANE, select Complex Stoichiometry, for Fuel Species select PROPANE and click OK.
  • Click Heat of Combustion and type 44715.
  • For AIR, the Type is Reactant and for the value of NU type 4.81643.
  • For PROPANE, the Type is Reactant and for the value of NU type 1.
  • For PRODUCTS, the Type is Product and for the value of NU type 1.
  • For SOOT, the Type is Product and for the value of NU type 0.18357.
  • Click Apply to create the new reaction.
  • Click OK to close the Edit Reactions dialog.

4.3. Plot Soot Deposition on the Walls

To write boundary data that plots deposition on surfaces:

  • On the Output menu, click Boundary Quantities.
  • Select [Species: SOOT] Surface Deposition.
  • Click OK to close the dialog.

4.4. Run the Simulation

See the attached input file for other details of the example problem.

4.5. Change the Visualization of Soot Deposition in the Results Viewer

You can change the colorbar in the PyroSim Results Viewer to show the deposition of soot on the surfaces as a black opaque discoloration instead of the rainbow colorbar as shown above.

To do this:

  • Open the Results Viewer and double-click the 'SOOT SURFACE DEPOSITION' Boundaries quantity to activate it.
  • Double-right-click the colorbar to open the properties dialog.
  • Option 1 (Gradient Opacity):
  • Option 2 (White to Black Colorbar):
pyro scrn results soot deposition coloring option 1
Figure 5. Coloring option 1, Gradient Opacity.
pyro scrn results soot deposition coloring option 2
Figure 6. Coloring option 2, White to Black Colorbar.

5. Series Reactions

This example is described in Section 10.5 Heat Release Rates from Reaction Mechanisms in the FDS Verification Guide. It is a set of series reactions with primitive species and is described by the hrrpuv_reac_series.fds input file (attached).

In the first reaction, propane and oxygen produce carbon monoxide and hydrogen:

\[1\underbrace{\left(C_3H_8\right)}_{Fuel}+1.5\underbrace{\left(O_2\right)}_{Oxygen}\Rightarrow 1\underbrace{\left(3CO+4H_2\right)}_{Products}\]

In the second reaction, carbon monoxide (from the first reaction) and oxygen produce carbon dioxide:

\[1\underbrace{\left(CO\right)}_{Fuel}+0.5\underbrace{\left(O_2\right)}_{Oxygen}\Rightarrow 1\underbrace{\left(CO_2\right)}_{Products}\]

In the third section, hydrogen (from the first reaction) and oxygen produce water vapor:

\[1\underbrace{\left(H_2\right)}_{Fuel}+0.5\underbrace{\left(O_2\right)}_{Oxygen}\Rightarrow 1\underbrace{\left(H_2O\right)}_{Products}\]

5.1. Define the Species

In the FDS calculation, \(N_{2}\), propane, \(O_{2}\), \(H_{2}\), \(H_{2}O\), \(CO_{2}\), and \(CO\) will be primitive species that will be tracked. When a species is defined, by default PyroSim will automatically select the setting for Lumped Component Only (that is, whether or not the species will only be used when defining a lumped species such as air). Usually the automatic option is satisfactory, but in this case we need to manually set the option for CARBON DIOXIDE, CARBON MONOXIDE, and WATER VAPOR.

To define the primitive species:

  • On the Model menu, click Edit Species.
  • By default, PyroSim includes the species needed for a "simple chemistry" reaction. Delete AIR, PRODUCTS, and SOOT. We will not use HYDROGEN CYANIDE, so delete it.
  • The remaining species are NITROGEN, OXYGEN, CARBON DIOXIDE, WATER VAPOR, and CARBON MONOXIDE.
  • Select CARBON DIOXIDE and for Lumped Component Only select FALSE. Repeat for CARBON MONOXIDE and WATER VAPOR.
  • Add propane as a species. Click New, in the Predefined list select PROPANE, and click OK.
  • Add hydrogen as a species. Click New, in the Predefined list select HYDROGEN, and click OK.
  • Click OK to close the Edit Species dialog.

To set NITROGEN as the background species:

  • In the Navigation View (tree), right-click NITROGEN and click Set as Background Species.

5.2. Define the Reactions

The next step is to define the three reactions.

  • On the Model menu, click Edit Reactions.
  • Click New, give the name as REACTION 1, select Complex Stoichiometry, for Fuel Species select PROPANE, and click OK.
  • For PROPANE, the Type is Reactant and for the value of NU type 1.
  • For OXYGEN, the Type is Reactant and for the value of NU type 1.5.
  • For CARBON MONOXIDE, the Type is Product and for the value of NU type 3.
  • For HYDROGEN, the Type is Product and for the value of NU type 4.
  • Click Apply to create the new reaction.

Now the second reaction:

  • In the Edit Reactions dialog.
  • Click New, give the name as REACTION 2, select Complex Stoichiometry, for Fuel Species select CARBON MONOXIDE and click OK.
  • For CARBON MONOXIDE, the Type is Reactant and for the value of NU type 1.
  • For OXYGEN, the Type is Reactant and for the value of NU type 0.5.
  • For CARBON DIOXIDE, the Type is Product and for the value of NU type 1.
  • Click Apply to create the new reaction.

The third reaction:

  • In the Edit Reactions dialog.
  • Click New, give the name as REACTION 3, select Complex Stoichiometry, for Fuel Species select HYDROGEN, and click OK.
  • For HYDROGEN, the Type is Reactant and for the value of NU type 1.
  • For OXYGEN, the Type is Reactant and for the value of NU type 0.5.
  • For WATER VAPOR, the Type is Product and for the value of NU type 1.
  • Click Apply to create the new reaction.
  • Click OK to close the Edit Reactions dialog.

Set all reactions to be active:

  • In the Navigation View (tree), under Reactions, verify that REACTION 1 is active. If not, right-click REACTION 1 and click Set as Active Reaction.
  • In the Navigation View (tree), under Reactions, right-click REACTION 2 and click Set as Active Reaction.
  • In the Navigation View (tree), under Reactions, right-click REACTION 3 and click Set as Active Reaction.

5.3. Set Suppression

When using multiple chemical reactions, it is necessary to set suppression to false.

  • On the Analysis menu, click Simulation Parameters.
  • Select the Misc tab.
  • Set Reaction Suppression to False.
  • Click OK to close the Solution Parameters dialog.

5.4. Run the Simulation

See the attached input file for other details of the example problem.

5.5. Additional Help

To download the most recent version of PyroSim, please visit the the PyroSim Support page and click the link for the current release. If you have any questions, please contact support@thunderheadeng.com.

6. Bibliography

McGrattan, Kevin, Simo Hostikka, Randall McDermott, Jason Floyd, and Marcos Vanella. 2021. Fire Dynamics Simulator User’s Guide, NIST Special Publication 1019. Sixth Edition. National Institute of Standards and Technology, Gaithersburg, Maryland, USA: NIST.

Related Tutorials