Freezing HRR in PyroSim

A common strategy when modelling a fire with sprinklers is to assume the fire will be held at a constant heat release rate (HRR) when the first sprinkler activates. This post shows how to do this by automatically “freezing” the HRR at a constant value when a sprinkler activates.

A brute force way to do this is to:

  1. Run the model.
  2. Manually stop the model when a sprinkler activates.
  3. Use the ramp feature to define a new HRR that follows the calculated value and then remains constant when the sprinkler activates.
  4. Rerun the model.

A more elegant way to accomplish this is to use the freeze option in FDS. At this time, PyroSim does not support all the necessary details in the user interface, so we will demonstrate how to do this using the Additional Records feature in PryoSim.

This is a fairly advanced topic. Before starting review Section 15.6.2 of the FDS User Guide. As an example, you can download the FDS verification problem hrr_freeze.fds (click the link, select the file, then click Raw to display only the file contents).

Five lines from the hrr_freeze.fds file illustrate the basic concept.

Lines to freeze HRR.

These lines do the following:

  • Line 1 defines a device (TEMP), that will measure temperature. This device turns TRUE when it measures a temperature of 200 C.
  • Line 2 defines a device (FREEZE TIME) that outputs time. The NO_UPDATE_DEVICE_ID option means that time will stop updating and will remain fixed when the TEMP device turns TRUE. For example, if the measured temperature reaches 200 C at a time of 25 seconds, the device output time will remain fixed at 25 seconds.
  • Line 3 defines a surface (FIRE) that has a nominal heat release rate of 1000 kW/m2 that is modified by a ramp.
  • Lines 4 and 5 define a ramp (FRAMP) that obtains time from the FREEZE TIME device. Since the FREEZE TIME device output is constant after the temperature is reached, the HRR will remain fixed at the value corresponding to the time at which the temperature was reached.

To replicate this in PyroSim, we first define the mesh, fuel, solution controls, open vents, and temperature device using the PyroSim interface. We add the freeze related input in the Additional Records section. The image below shows the Record View, with the lines the user types in the Additional Records section. Since the FIRE surface is defined in Additional Records, the referencing VENT must also be defined there.


Now when we run the simulation, the temperature reaches 200 C at 5.85 seconds.


The time signal then freezes.


And since the time is now fixed, the HRR freezes and remains constant with a value of 18.72 kW. This is calculated from the HRRPUA at 5.85 seconds times the area of the vent (18.72=(5.85/50)*1000*(0.4^2).


To make a model where the HRR freezes when any sprinkler activates, we create a control that takes multiple sprinklers as input. The control freezes the time device and then the time device freezes HRR.


Download the PyroSim input files here:

CAUTION: PyroSim will correctly write and run the FDS input file when the freeze input is included in the Additional Records section as described in this post. The data is also correctly saved and read in the PyroSim file. However, PyroSim (Revision 2016.2.0922) will not correctly import an FDS file with the HRR freeze records. So you can create, save, open, and run a PyroSim model with freeze data in the Additional Records section, but you cannot automatically import an FDS file with the freeze data. The work-around is to manually edit the FDS file, cut and save the freeze records, import the remaining FDS model into PyroSim, and then paste the freeze records into the Additional Records section of PyroSim.

Thanks to Dave McGill for initiating this example.

Comments or Questions

This post was written by Daniel Swenson. For comments or questions, send email to

More Tutorials Like This

See all PyroSim tutorials