There is a newer version of this document. To view the latest version, click here.

PyroSim User Manual

Disclaimer

Thunderhead Engineering makes no warranty, expressed or implied, to users of PyroSim, and accepts no responsibility for its use. Users of PyroSim assume sole responsibility under Federal law for determining the appropriateness of its use in any particular application, for any conclusions drawn from the results of its use, and for any actions taken or not taken as a result of analyses performed using these tools.

Users are warned that PyroSim is intended for use only by those competent in the fields of fluid dynamics, thermodynamics, combustion, and heat transfer, and is intended only to supplement the informed judgment of the qualified user.

The software package is a computer model that may or may not have predictive capability when applied to a specific set of factual circumstances. Lack of accurate predictions by the model could lead to erroneous conclusions with regard to fire safety. All results should be evaluated by an informed user.

All other product or company names that are mentioned in this publication are tradenames, trademarks, or registered trademarks of their respective owners.

Throughout this document, the mention of computer hardware or commercial software does not constitute endorsement by Thunderhead Engineering, nor does it indicate that the products are necessarily those best suited for the intended purpose.

Acknowledgements

We thank Kevin McGrattan, Simo Hostikka, Randall McDermott, Jason Floyd, Craig Weinschenk, Kristopher Overholt, and Glenn Forney in the Building and Fire Research Laboratory at the National Institute of Standards and Technology and the VTT Technical Research Centre of Finland. They are the primary authors of the Fire Dynamics Simulator and Smokeview, without which PyroSim would not exist. They have been gracious in their responses to our many questions.

We would like to gratefully acknowledge the RJA Group for their collaboration with Thunderhead engineering in the development of PyroSim. Feedback and testing from the engineers at RJA has improved the usability and quality of PyroSim.

Development of PyroSim was originally supported by the National Science Foundation under Grants DMI-0232401 and DMI-0349759. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the authors and do not necessarily reflect the views of the National Science Foundation.

1. Getting Started

1.1. Introduction

PyroSim is a graphical user interface for the Fire Dynamics Simulator (FDS) version 6.8.0. FDS is closely integrated into PyroSim. FDS models can predict smoke, temperature, carbon monoxide, and other substances during fires. The results of these simulations are used to ensure the safety of buildings before construction, evaluate safety options of existing buildings, reconstruct fires for post-accident investigation, and assist in firefighter training.

FDS is a powerful fire simulator which was developed at the National Institute of Standards and Technology (NIST). FDS simulates fire scenarios using computational fluid dynamics (CFD) optimized for low-speed, thermally-driven flow. This approach is very flexible and can be applied to fires ranging from stove-tops to oil storage tanks. It can also model situations that do not include a fire, such as ventilation in buildings.

The PyroSim interface provides immediate input feedback and ensures the correct format for the FDS input file.

Some highlights include:

  • Import CAD files to create and manage complex models.
  • High-level 2D and 3D geometry drawing tools.
  • Integrated parallel processing.
  • Flexible unit system that supports working in either metric or English units.
  • Tools to manage multiple meshes.
  • Multiple language translations.
  • HVAC (Heating, Ventilation, and Air Conditioning) systems integrated into the CFD simulation.
  • Import of existing FDS models.
  • Integrated post-processing.

In summary, PyroSim helps you quickly and reliably build complex fire models.

1.2. Download and Install

You can download the current version, sign up for a free trial, and purchase the software from the PyroSim Support Page. This page also provides instructions for installation and activation. Troubleshooting info can be found on the PyroSim FAQs page. There is no functional difference between the trial version of PyroSim and the full version, the only limitation is the trial license duration.

Administrator privileges are required to install PyroSim. This is necessary because the installer adds processes to the operating system for license management and parallel FDS simulation. The PyroSim installer will also add Windows Defender exclusions for the bundled FDS executables in order to avoid performance issues related to Windows Security. To see how to do this manually, see Section 1.4.1.

If an older version of PyroSim is present, the installer will automatically remove the older version during the installation process. License files and properties files (e.g., recently opened PSM files) from the older installation will be preserved and utilized by the updated version of PyroSim.

PyroSim will regularly check for and notify the user of available updates to the software when configured to do so. By default, PyroSim will check for updates on startup and display the relevant information in the Check For Updates dialog when one is available.

pyro ui dialog check for updates
Figure 1. The Check For Updates dialog.

Users can also access this dialog by navigating to Help→Check For Updates

The dialog can be disabled on startup by unchecking Check for newer version on startup.

1.3. Some Modeling Suggestions

In this section we make some suggestions that can help speed your model development. The big issues most users will face are: selecting a mesh, defining your geometry, selecting a reaction, and defining the correct boundary conditions.

We will broadly discuss each of those topics, but before you start thinking about them please:

Take the time to work through the examples.
On the PyroSim Fundamentals page we provide a series of examples that guide you through increasingly complex fire modeling concepts. It is worth your time to work through these examples.
Remember to "start small"
When developing a new model, don’t just rush in and make the final model. Use small models to make sure you understand the details. For example, test your sprinklers on a small model first. If you are using controls, practice on a simple case.

1.3.1. Selecting a mesh

The analyst will always need to balance solution time and accuracy. Reducing the mesh size by a factor of 2, will result in approximately a factor of 16 more computation time (a factor of 8 due to the number of cells and an additional factor of 2 due to reduced step size).

Two criteria will control the applicable mesh size:

  • Resolving the flow field.
  • Resolving the geometry.

For fire plumes, an initial mesh size estimate can be obtained as a fraction of the characteristic fire diameter (D*), see Chapter 6 of the Fire Dynamics Simulator Technical Reference Guide Volume 3: Validation. You can download a D* calculator from the PyroSim Resources page. Initial calculations should be done with a coarse mesh (\(\frac{D^{*}}{5}\)), but a mesh size study must be employed to analyze the suitability of the mesh (\(\frac{D^{*}}{20}\)).

An example of a convergence study for jet fans (no fire) can be found in the series of posts Modeling Jet Fans found on the PyroSim Tutorials web page. Here the solution was compared with experimental data.

In some problems the mesh resolution must be selected to adequately represent the geometry. An example where geometry controlled the mesh size is the modeling of a wood crib where each stick had a small diameter (see Modeling Fire, Part 4 - Combustion with HRR, Ignition, and Burn Away on the Thunderhead website).

1.3.2. Reactions

By default, no reaction is specified, a reaction is only needed if there will be a fire in the simulation. In FDS, a reaction defines not only the fuel and the products but also the Heat of Combustion. Once the heat of combustion and the desired HRR is known, FDS calculates the fuel mass flow rate from the surface.

For most situations, it is sufficient to use the "Simple Chemistry" model, where a single fuel species is composed of \(C\), \(H\), \(O\), and \(N\) that reacts with oxygen (\(Air\)) to form the product species consisting of \(H_{2}O\), \(CO_{2}\), \(Soot\), \(N_{2}\), and \(CO\). The user specifies the chemical formula of the fuel along with the yields of \(CO\) and \(Soot\), and the volume fraction of hydrogen in the \(Soot\), \(X_{H}\). A limited number of reactions are included in FDS and can be added from the library.

See Chapter 12 of the FDS User Guide for a more detailed discussion of combustion. The PyroSim Resources page provides Combustion and Fuel Composition calculators.

1.3.3. Parallel Processing

Parallel processing can speed the solution. In general, our experience indicates that running on multiple cores on the same computer offers the most significant improvement. Using multiple computers in a cluster can make it possible to solve larger problems, but the communication delays between computers tend to cancel the speed improvement of parallel processing.

The good news is that that standard installation of PyroSim includes support for parallel processing on the same computer. All the user must do is define multiple meshes and then select Run FDS Parallel.

PyroSim includes tools to manage multiple meshes. One effective strategy is to first define a single mesh that spans the entire model. Then use the PyroSim mesh splitting tool to create multiple meshes. You can then change the resolution of selected meshes using the Refine Mesh option and all the meshes will automatically stay correctly aligned.

1.3.4. FDS Snaps to the Mesh

All geometry in FDS is defined at the mesh resolution. Even if you input the geometry of an obstruction or vent to lie between cell corner points, when FDS runs the solution, all the geometry will be "snapped" to the grid.

If you are drawing your own geometry in PyroSim, you can select the Snap to Model Grids option that will ensure that your geometry matches the grid. You can also ensure that objects will fill entire grid cells rather than a cell face by turning on the Thicken option in the obstruction properties, see Section 8.1.1.

1.3.5. Numerical Instabilities are Usually Model Problems

In our experience, numerical instabilities that may occur during the solution are the result of an error in the model, not an error in FDS. The numerical instability typically arises due to either a pressure increase (or decrease) in a mesh. If you see this error, add a pressure sensor to your model and see what is happening to the pressures. Problems typically occur because of how boundary conditions have been defined.

Some common problems with boundary conditions include:

  • Lack of an open vent on the boundary. One typical case is that a fire heats the air in a room but there is no open vent, so the heated air expands and increases the pressure in the room which eventually causes an instability. The solution is to make sure all rooms have open vents.
  • Imbalance on the flow conditions. This often occurs if the user specifies velocity boundary conditions on both supply and exhaust vents in a room. If there is a fire in the room, the density of the hot exhaust air is less than that of the ambient supply air, so velocity conditions result in accumulation of mass in the room with a corresponding increase in the pressure. The solution is to specify the velocity flow on the supply, but define the exhaust as an open vent (or vice versa). The open vent will accommodate changes in density.
  • Flow boundary conditions into a closed space. This is more likely to occur when CAD data is used to import geometry. If a supply is defined on a mesh boundary, it can intersect both the model (as intended), but there can also be cells outside the model that are included in the supply. The solution is to make sure there are open vents on the boundaries outside a model.

1.4. Using a Different FDS Executable

Each PyroSim release comes bundled with FDS. A particular PyroSim release is designed and tested against the bundled version of FDS. You can use PyroSim to run any version of FDS, however PyroSim will generate the input file based on the bundled version of FDS and it is important to understand differences in input format between the FDS versions before changing PyroSim’s FDS version.

To change the version of FDS used by PyroSim:

  1. Download and install a new version of FDS from NIST.
  2. On the File menu, click Preferences.
  3. Click on the appropriate Folder icon in the FDS Execution section to select the executable you want PyroSim to use.
  4. Click OK to close the Preferences dialog.

1.4.1. Windows Defender FDS Exclusions

Windows Defender Antivirus may cause performance issues with FDS. PyroSim adds exclusions for the bundled FDS executables on install, but if you are using a custom executable path then it is recommended that you add these exclusions manually.

To add Windows Defender exclusions for your FDS executables:

  • Use Windows Search to find and open Windows Security.
  • In the left-hand menu, select Virus & threat protection.
  • Under Virus & threat protection settings, click Manage settings.
  • Under Exclusions, select Add or remove exclusions.
  • Add both a File and Process exclusion for the path to your FDS executable.
  • If you are using FDS 6.7.8 or newer, you will also want to add a exclusions for the path to the openmp-optimized executable, fds_openmp.exe, which is described in Section 19.2.1.

1.5. Additional FDS and Smokeview Documentation

In preparing this manual, we have liberally used descriptions from the FDS User’s Guide (McGrattan, et al., 2015). Links to the FDS Users Guide, the FDS Technical Reference, and the Smokeview Users Guide are included in PyroSim on the Help menu. You can also download documentation, executables, and verification and validation examples at: https://pages.nist.gov/fds-smv/ .

1.6. Contact Us

Thunderhead Engineering
403 Poyntz Avenue, Suite B
Manhattan, KS 66502-6081
USA

Sales Information: sales@thunderheadeng.com
Product Support: support@thunderheadeng.com
Phone: +1.785.770.8511

2. PyroSim Basics

2.1. PyroSim Interface

PyroSim provides four editors for your fire model: the 3D View, 2D View, Navigation View, and the Record View. These all represent your current model. If an object is added, removed, or selected in one view, the other views will simultaneously reflect the change.

Each view is briefly described below.

Navigation View
This view lists many of the important records in the model. It allows you to organize your model geometry into groups such as room or sofa. Locating and modifying records is often faster and easier in this view.
3D View
This view shows a 3D representation of your current fire model. You can explore the model using different view controls. You can also control the appearance of the model with options like smooth shading, textures, and object outlines. Geometric features can also be changed.
2D View
This view is useful for quickly sketching geometry such as walls and furniture. You can choose from three viewing planes and perform many useful geometric manipulations.
Record View
This view gives a preview of the FDS input file that will be generated for the simulation. It also provides a way to add custom records that will not be processed by PyroSim, but will be sent to FDS.

2.2. Navigation View

The navigation view is a tree-like view on the left side of the PyroSim main window. An example of this view in use is shown in Figure 2. When you right-click on an item in this view, a list of the functions PyroSim can perform on that item is shown. To rearrange objects in the Navigation view, make a selection and then drag the object(s) to the new location.

pyro scrn overview
Figure 2. Using the context menu in the Navigation View

2.3. 3D View

Use the 3D view to rapidly obtain a visual image of the model and perform some drafting. In this view, the user can navigate through the model in 3D and select objects. This view also provides display filters to quickly show/hide entire categories of objects or switch between floors. In addition, any drafting that requires objects to be snapped to faces of other objects, such as drawing a vent on an obstruction or attaching a measuring device to a solid can be easily achieved in this view. For more information on drafting, see Chapter 9.

2.3.1. Camera Views

The traditional orthographic views are pre-programmed into PyroSim and are valid in both the 3D and 2D views. It is also possible to save custom camera views, for more information, see Chapter 3.

To change the camera view, click the desired view button (pyro scrn camera views 2023 1) or press the appropriate hotkey from Table 1.

Table 1. Camera View Hotkeys
ViewHotkey
FrontCTRL+1
BackCTRL+2
LeftCTRL+3
RightCTRL+4
TopCTRL+5
BottomCTRL+6

2.3.2. Navigation/Selection

There are several tools that can be used to navigate the model and select objects. The tools for the 3D view are found in the navigation toolbar above the 3D view as shown in Figure 3.

pyro ui toolbar nav 3d
Figure 3. 3D navigation toolbar
Select/Manipulate Tool (pyro ui icon select)
This general-purpose tool can be used to perform most navigation activities.
Selection
The following actions can be used to select items.
  • Left-click an object to select it.
  • Drag the left mouse button to draw a selection box and select all objects within the box.
  • Double-click the left mouse button to select and open a properties dialog for the object under the cursor.
  • Hold ALT while performing selection to select the hierarchical parent of the object under the cursor.
  • Right-click to show a context menu for selected items under the cursor.
Panning
Drag the middle mouse button to pan the model.
Orbiting
Drag the right mouse button to orbit the model.
Zooming
Roll the scroll wheel on the mouse to zoom in and out of the cursor position.
Manipulating
If a single object is selected, it may show manipulation handles (blue dots or faces). Left-click one of the handles to begin manipulation or drag the left mouse button to perform manipulation in one gesture. For more information on manipulation, see Section 9.16.
Orbit Tool (pyro ui icon orbit)
This is another general-purpose tool that is a bit more limited than the Select/Manipulate Tool.
Orbiting
Drag any mouse button to orbit.
Panning
Hold the SHIFT key down while dragging any mouse button to pan.
Zooming
Hold the ALT key down while dragging any mouse button to zoom.
Manipulating
This tool cannot perform manipulation.
Roam Tool (pyro ui icon roam)
This tool allows the user to move into the model rather than viewing it only from the outside as shown in Figure 5. This tool can take some experimentation, but once mastered, it can provide unique views of the model.
Selection
This is the same as with the Orbit Tool.
Looking
Drag any mouse button to look around. This pivots the camera about the camera’s location, similar to a first-person video game.
Moving
There are keyboard shortcuts to modify the mouse actions.
  • Hold the ALT key while dragging a mouse button to move the camera up and down along the Z axis.
  • Hold the CTRL key while dragging a mouse button to move the camera forward, backward, and side-to-side in the camera’s XY plane.
Pan Tool (pyro ui icon pan), Zoom Tool (pyro ui icon zoom), Zoom Box Tool (pyro ui icon zoom box)
These tools break out the functionality of the above tools so that dragging any mouse button will perform the needed action.
Exterior and Interior Views of a Model
pyro scrn view exterior
Figure 4. Exterior view (PyroSim model by John McKinney)
pyro scrn view interior
Figure 5. Interior view of the same model looking at the roof and bleachers

2.3.3. Zooming

The model can also be zoomed in and out with any of the navigation tools by using the scroll wheel. Scrolling up zooms in and scrolling down zooms out. With all but the Roam Tool, using the scroll wheel will zoom in on the point under the cursor. With the Roam Tool, the scroll wheel only zooms the center of the view.

2.3.4. Resetting the View

At any time, the camera’s view can be reset to see the entire extents of the model by clicking the Reset View button (pyro ui icon view reset) or pressing CTRL+r. In addition, the camera can be reset to only the currently selected objects by clicking the Reset to Visible button (pyro ui icon view reset visible) or pressing CTRL+e. Resetting the view also has the effect of changing the orbit center when orbiting.

2.3.5. Orbiting

Orbiting is the action of spinning the camera about its focal point, which is the center of the model or center of the selection, depending on which reset action was last performed. By default, orbit works as if there is an invisible sphere around the model on which you click and drag the mouse to spin. Alternatively, orbiting can be performed similarly to Smokeview by going to the View menu and selecting, Use Smokeview-like Navigation. In this mode the camera spins about the Z axis with left and right mouse movements and about the local X axis with up and down movements.

2.3.6. Filtering

There are several ways to filter the objects shown in the 3D view. Filtering can be performed with clipping planes that are associated with floors or through filter buttons that can quickly show/hide categories of objects.

To use clipping, the user must first define floors for the model as discussed in Section 8.5. Once the floors are defined, a floor can be selected by using the Floor Drop-down above the Navigation View as shown in Figure 6.

pyro scrn floor show 2023 1
Figure 6. Floors drop-down

Once a floor has been selected, its clipping planes will be applied to the entire scene to only show objects within the clipping region.

Filtering can also be performed using the filter toolbar buttons as shown in Figure 7. Selecting/deselecting these buttons will quickly show/hide all objects of a specific type, such as obstructions, holes, vents, etc.

pyro ui toolbar toggle filters
Figure 7. Filter toolbar

Filtering can also be applied to meshes but in a slightly different way. Instead of showing/hiding all meshes, the user can selectively show/hide three different elements of them using the mesh filter toolbar shown in Figure 8. This toolbar selectively allows viewing mesh grid lines, mesh boundaries, and mesh outlines. Filtering mesh elements shows the different mesh elements. Figure 9 shows the grid lines, Figure 10 shows the boundary, and Figure 11 shows the outline.

pyro ui toolbar filters mesh
Figure 8. Mesh filter toolbar
Filtering mesh elements
pyro scrn mesh lines
Figure 9. Mesh lines
pyro scrn mesh boundary
Figure 10. Mesh boundary
pyro scrn mesh outlines
Figure 11. Mesh outline

Background images attached to floors can be quickly shown/hidden using the Show Background Image filter button (pyro ui icon filter background image) next to the floor drop-down.

2.4. 2D View

The 2D view is mostly the same as the 3D view with some key differences:

  • The 2D view does not have the Orbit and Roam tools.
  • The Select/Manipulate tool pans the model when dragging the right mouse button rather than orbiting.
  • Drafting is performed differently in the 2D View. For more information, see Section 9.4.
  • Snapping can be performed to either the solution mesh or to a user-defined sketch grid.
  • When snapping to a solution mesh, the mesh grid lines are always shown, the boundary is never shown, and only the outline of the mesh can be optionally shown.
  • Floor clipping is slightly different, for more information see Section 8.5.

2.5. Record View

The Record View shows an up-to-date display of the FDS input file currently represented by the PyroSim model. This view is divided into two sections, the Model Records and the Additional Records.

2.5.1. Model Records

This read only sections allows the user to see an exact copy of the file that will be input into the FDS simulator based on their current model. The user adjust font size of this using the Increase Font Size (pyro ui icon font increase) and Decrease Font Size (pyro ui icon font decrease) buttons at the top of the page. Other settings related to the file display can be toggled through the Preferences menu item.

2.5.2. Additional Records

Due to the complexity of the FDS simulator, it is difficult to support all possible records and input files. The Additional Records section of the Record View can be used to inject lines of text into the top of the FDS input file.

2.6. Scenarios

Scenarios can be used to manage variations of a single model. Any time a simulation object is enabled or disabled, that change is retained by only the current scenario. Objects can also be enabled or disabled per scenario via the Enable/Disable Object(s) per Scenario dialog, found in the context menu opened by right-clicking a selected object.

Multiple fire scenarios can be managed using the Scenarios box on the main toolbar. The Edit Scenarios dialog, activated by the toolbar button next to the Scenarios box, can be used to manage scenarios and examine which objects are enabled in a specific scenario.

For models that use multiple scenarios, a bulk export option is available on the File menu in the Export submenu, called Export Scenarios. Using this feature will export an FDS input file (and other supporting files) for each scenario in subfolders where the PSM file has been saved. A BAT file will also be produced that can be double-clicked in Windows Explorer to run all scenarios in sequence.

You can learn more about the scenarios feature by following along with the PyroSim Scenarios Tutorial.

2.7. Snapshots of Display

Images of the current display can be saved to a file by opening the File menu and clicking Screenshot. The user can specify the file name, image type (png, jpg, tif, bmp), and the resolution. A good choice for image type is Portable Network Graphics (png).

2.8. Preferences

PyroSim preferences can be set by going to the File menu and choosing Preferences. Any changes to the preferences will be set for the current PyroSim session and be remembered the next time PyroSim is started. The preferences are split into several groups, including PyroSim, Record View, FDS, Results, and Display preferences.

2.8.1. PyroSim Preferences

These describe global PyroSim preferences as shown in Figure 12.

pyro ui dialog prefs pyrosim
Figure 12. PyroSim preferences
Format FDS file for easy reading
Controls the format of real numbers in the FDS input file created by PyroSim. When this is checked, a real number is written such that if the absolute value is >=.001 and < 10000, it is written in decimal notation; otherwise, it is written in scientific notation.
Max precision
Controls the number of significant digits written to the input file.
Number of Recent Files
The maximum number of files that will be shown in the File → Recent PyroSim Files or File → Recent FDS Files menus.
Autosave
Instructs PyroSim to periodically create a backup of the current model that is deleted when the PyroSim model is closed. This backup is useful in case PyroSim crashes or the computer loses power. The backup file is stored in the same directory as your PyroSim file. If your working PyroSim file (testing.psm for example) becomes corrupted, then you can find the file that starts with a tilde like ~testing.psm shown in Figure 13. This file is sometimes preferred if you have a crash, as it will be the most up to date version of your work before your crash. If it cannot be opened or results in an immediate crash, there is another backup file described next that is the second best option. The default setting enables this feature and saves every 10 minutes. In some cases, when working with large models, this can cause unexpected delays during the save and some users prefer to disable the feature and save manually.
windows ui explorer pyrosim backup files
Figure 13. PyroSim backup files
Create Backup on Open
Controls whether PyroSim makes a backup copy of the PyroSim file after last successfully opening it. This backup remains on disk when the main PyroSim file is closed, and so it can be used in case the main file somehow becomes corrupted. The backup file is stored in the same directory as your PyroSim file. If your working PyroSim file or the automatic backup file becomes corrupted, then you can find the autosave backup file that has a tilde in the file extension, like testing.~sm shown in Figure 13. Rename (recommended) or delete your current working file, then change the file extension on this backup file, changing the tilde in the extension (.~sm) to a p character to get .psm. You can now open the new .psm file as you normally would.
Record Preview
Adds a preview pane to many of the dialogs in PyroSim. This preview pane shows the text that will be produced for the FDS input file. This can be helpful for users that want to understand exactly how PyroSim options correspond to FDS input.
Show Splash Screen on Startup
Controls whether the PyroSim splash screen is shown when starting PyroSim.
Keyboard Shortcuts
Launches a dialog for mapping various PyroSim actions to user specified shortcuts.

2.8.2. Keyboard Shortcuts

The Keyboard Shortcuts dialog is launched from the PyroSim preferences panel. These preferences bind combinations of modifier keys (ALT, CTRL, SHIFT, etc.) with other key presses to activate PyroSim actions.

pyro ui dialog keyboard shortcuts
Figure 14. Keyboard Shortcuts Dialog

The dialog is divided into three sections.

Global
These actions are available in most cases and generally match the behavior of other modeling tools.
View
Changes the way the current model is displayed.
Tool
Generally used to draw or to manually manipulate the model.

To change the keybinding for an action, click the value in the Key Press column. This launches an editor window (Figure 15) with four options.

pyro ui dialog keyboard shortcut listener
Figure 15. Keyboard Shortcut Editor Dialog
Awaiting Input
Press a key to assign the desired keybinding and map it to the action.
Cancel
Exit the editor window without making any changes.
Reset
Assign the action it’s default keybinding.
Clear
Remove the currently assigned keybinding from the action.

Some keyboard shortcuts are used by Java UI components. If a shortcut does not result in the expected behavior, it may be in direct conflict with a preexisting Java shortcut. It is best practice to avoid these conflicts (Default Swing key bindings).

2.8.3. Record View Preferences

These preferences control the visualization of the FDS input file in the Record View. They can be seen in Figure 16.

pyro ui dialog prefs record view
Figure 16. Record View Preferences
Font Size
Change the size of the text used to display the FDS input file.
Enable Syntax Highlighting
Controls whether or not PyroSim uses colors to improve readability of the FDS input file. Disabling this option will cause the record view to update faster and consume less memory.
Set Limit for Highlighting HOLE and OBST records
Sets the total number of HOLE and OBST records to highlight in the FDS input file, which improves readability. Increasing this value will decrease performance and consume more memory, and decreasing this value will increase performance and consume less memory.

2.8.4. FDS Preferences

These preferences define the execution of FDS within PyroSim. They can be seen in Figure 17.

pyro ui dialog prefs fds 2021.3
Figure 17. FDS Preferences
Executable Locations
Allow you to specify the FDS and Smokeview executables that are used by PyroSim.
Optimize Processor Utilization
Controls how meshes are distributed between available MPI processes.
Basic (Default)
PyroSim distributes meshes evenly across MPI processes.
None
PyroSim allows MPI to manage mesh distribution (default prior to PyroSim 2020.3). MPI assigns one mesh to all available MPI processes, however if the model has more meshes than available logical processors the last MPI process will be assigned multiple meshes. This can lead to increased simulation time.
Auto-save PyroSim model before running FDS
Controls whether PyroSim automatically saves the current PyroSim file just before beginning an FDS simulation.
Run Results when FDS simulation completes
Indicates whether to automatically launch the PyroSim 3D Results when an FDS simulation completes.
Parallel Execution Settings
Controls the number of MPI processes that are generated when using Parallel execution.
Create Process for Each Mesh
Creates one MPI process for each FDS mesh.
Limit Processes Based on Logical Processor Count (Default)
Creates one MPI process for each logical processor available.
FDS GEOM
Controls parameters related to immersed boundary obstructions, which is a new type of obstruction coming in a future release of FDS. The current release of FDS provides preliminary support for these types of obstructions but does not yet provide a guarantee on their level of support. Unlike normal obstructions, immersed boundary obstructions do not need to be converted to blocks when writing to the FDS input file. Instead, FDS will use their surfaces to cut FDS cells for more accurate geometry representations.
Enable FDS GEOM
Enables support for immersed boundary obstructions in the PyroSim user interface. If checked, additional actions are provided to convert obstructions into immersed boundary obstructions as discussed in Section 8.1.5 and to write them to the FDS input file. When importing an FDS file with immersed obstruction (GEOM) records, this option must be checked in order for those objects to be written as GEOM records; otherwise, they will be rasterized like other obstructions.
Validate GEOM obstructions

Indicates whether the geometry of obstructions should be validated when converting to immersed obstructions. FDS' specification for immersed geometry is fairly strict in that an object’s faces must form a closed, manifold volume. The validation process attempts to correct slight errors in the geometry to ensure a closed manifold is generated. It may cause conversion to take slightly longer but will help reduce geometry errors when writing the FDS input file. It is recommended to leave this option enabled. See Section 8.1.5 for more information.

2.8.5. Results Preferences

There are a number of preferences that control the files created by PyroSim when an FDS simulation is started that affect the results (either PyroSim 3D Results or Smokeview).

pyro ui dialog prefs results
Figure 18. Results Preferences
Include mesh boundaries in CAD files
Whether to include the non-open boundaries of the meshes in any CAD files that are written.
Output Views file
Whether to output a file that ends with the .views extension. This file contains information for all the views in the model (see Chapter 3) and can only be read by the PyroSim 3D Results. Enabling the views file prevents views from being written to the Smokeview INI file, see Section 3.4.
Output PyroGeom file
Whether to output a file that contains all CAD, obstruction, and vent geometry that can be viewed in the PyroSim 3D Results. This file represents the geometry before being converted to blocks for FDS and provides a high-quality visual in the 3D results. Objects in this file are also properly animated (turned on/off) if the objects have control logic associated with them, unlike the GE1 file.
Output INI file
Whether to output an INI file for Smokeview. This file contains shading information and some initialization information. If Output View file is unchecked, it also includes view information for Smokeview.
Output GE1 file
Whether to output a GE1 file. The GE1 file is similar to the PyroGeom file in that it includes CAD, obstruction, and vent geometry before block conversion. While this file format is viewable in both PyroSim 3D Results and Smokeview, it has some limitations:
  • CAD texture coordinates may not map properly.
  • Objects with control logic are not animated.
Show GE1 file by default
Whether to show the GE1 file by default in Smokeview rather than snapped obstructions and vents. This option can only be used if Output INI file is also checked.

2.8.6. Rendering and Display Preferences

These preferences define advanced 2D and 3D display properties, as shown in Figure 19. They can be used to improve display performance on complex models, but they tend to create problems for some older graphics cards, including crashing. For this reason, they are turned off when running in safe mode.

pyro ui dialog prefs rendering
Figure 19. Rendering Preferences
GPU Information
Provides information about the graphics hardware being used to render the 3d and 2d graphics.
Hardware accelerated cursor
When checked, mouse crosshairs and object editing will remain smooth even on complex geometry that may be slow to pan or orbit. PyroSim does this by rendering the scene into an image buffer and then rendering that buffer as a texture underneath the crosshairs or editing geometry whenever the mouse cursor moves.
Hardware accelerated vertex buffers
When checked, this can significantly improve rendering performance of complex geometry. PyroSim does this by storing the geometry in vertex buffers on the graphics card. PyroSim then makes very few OpenGL calls to render the geometry.
Scene Geometry
Controls how scene geometry is rendered.
Use Hardware Shaders
Uses OpenGL shaders to render the scene geometry if available. Typically, the use of shaders will improve the shading quality of objects and on some GPUs may significantly increase performance.
Use Compatibility Renderer
Uses the fixed-function OpenGL pipeline to render geometry. This is compatible with older GPUs.
Multisamples
Controls the antialiasing setting to smooth edges of objects. The values available depend on the GPU, but typically range from 0 to 16. A value of 0 will turn antialiasing off and will cause edges of objects to look jagged. Larger values increase visual quality, but may lower performance, depending on the GPU. A value of 4 usually provides a reasonable balance between quality and speed.
Anisotropic Filtering
Controls the texture quality when textured geometry is viewed at a large angle to the camera. Available values depend on the GPU and typically range from 1 to 16, where 1 turns off anisotropic filtering. Larger values improve the texture quality. Most GPUs see negligible performance impact setting this to a high value.

2.9. Configuration Files

PyroSim stores data related to user preferences in a file called PyroSim.props. By default, this file can be found in one of the following locations.

%APPDATA%\PyroSim\PyroSim.props
%PROGRAMDATA%\PyroSim\PyroSim.props

If at least one of these files exists, PyroSim will use it to load the user preferences. If both files exist, PyroSim will load user preferences from both files, giving preference to the file located in the APPDATA folder. This way the preference file located in the PROGRAMDATA folder can be shared among multiple machines, and the file located in the APPDATA folder on each machine overrides the shared settings.

The PROPS file is stored in a plaintext format, and can be viewed or edited with any conventional text editor. While it is not recommended to edit the file directly, some troubleshooting techniques may involve deleting the PROPS file so that a new one can be created from scratch by PyroSim.

Configurations for hotkeys in PyroSim is stored in a separate file named keybindings.json located in the APPDATA folder.

2.10. Units

Models can be created in either English or Metric units. To select a system of units, on the View menu, click Units, then click the desired unit. PyroSim will automatically convert your previous input values into the unit system you select. The Record View will always display values in the appropriate FDS units, regardless of what unit system you choose to work in.

2.11. Color Schemes

To select a Default, Black Background, White Background, or Custom color scheme, on the View menu, click Color Scheme. The custom color scheme is defined in the PyroSim.props file in the PyroSim installation directory (For Windows 10 look in %USERPROFILE%\AppData\Roaming\PyroSim\PyroSim.props while some older operating systems use C:\Program Files\PyroSim).

  1. To define a custom color scheme:
  2. Close PyroSim
  3. Edit the PyroSim.props file
  4. Change the following default colors to the colors you wish:
Colors.Custom.axis=0xffff00
Colors.Custom.axis.box=0x404040
Colors.Custom.axis.text=0xffffff
Colors.Custom.background=0x0
Colors.Custom.boundary.line=0xffffff
Colors.Custom.grid=0x4d4d66
Colors.Custom.group.highlight=0xffff00
Colors.Custom.heatDetector=0xff0000
Colors.Custom.obst=0xff0000
Colors.Custom.obst.highlight=0xb2b200
Colors.Custom.origin2D=0x737373
Colors.Custom.smokeDetector=0xff00
Colors.Custom.snap.point=0xff00
Colors.Custom.snapto.grid=0x404040
Colors.Custom.snapto.points=0xc0c0c0
Colors.Custom.sprk=0xff
Colors.Custom.text=0xffffff
Colors.Custom.thcp=0xffff00
Colors.Custom.tool=0xff00
Colors.Custom.tool.guides=0x7c00
  1. Save the edited PyroSim.props file
  2. Restart PyroSim

3. Views

PyroSim provides the capability to save and recall view state from the 3D and 2D views in an object called a View. Views can also be used to specify clipping regions that limit the amount of the model shown in the 3D and 2D views. Views appear in the Navigation View as shown in Figure 20.

There can be multiple views in a model, but at any given time, there is always one active view. A new model will always start with one default view that has no view state associated with it. State can be added to the view as described in the sections, Section 3.2 and Section 3.3.

pyro ui view tree views
Figure 20. Views Tree

3.1. Managing Views

Views are managed in the navigation view. From there, they can be created, deleted, grouped, rearranged, etc.

A view can be created in one of the following ways:

  • In the View menu, select New View.
  • In the navigation view, right-click the Views group and select New View.
  • Right-click empty space in the 2D or 3D view and select New View.

This will add a new view to the model, saving the current camera viewpoint and section box into the new view (see the following sections to learn more about viewpoints and section boxes). The new view will become the active view.

To delete a view, select it in the navigation view and in the Edit menu, select Delete. A view can only be deleted if it is not active.

To activate a view, perform one of the following:

  • Double-click the view or the view’s viewpoint in the navigation view.
  • Right-click a view in the navigation view and select Set Active.

Activating a view will restore all its saved state as described in the following sections.

View settings can be copied or moved between views. To copy settings such as the viewpoint or section box select Copy, located in either the navigation view or in the Edit menu. To paste the settings to another view, select the desired target view and in the Edit menu select Paste. To move settings from one view to another, in the navigation view, drag the setting to the desired view.

3.2. Viewpoints

Each view can have one viewpoint associated with it. A viewpoint includes the 2D or 3D camera’s position, orientation, zoom, and camera type (3D versus 2D). When a viewpoint is saved, the current navigation tool is also saved with the view (Orbit, Roam, etc.). A viewpoint appears in the navigation view as a child item of a view and is labelled Viewpoint. This can be seen in Figure 20 for the two views, Inside and Section.

A viewpoint is automatically saved to newly created views. A viewpoint can also be explicitly saved in one of the following ways:

  • In the View menu, select Save Viewpoint. This will save the viewpoint to the active view.
  • Right-click empty space in the 2D or 3D view and select Save Viewpoint. This will also save the viewpoint to the active view.
  • Right-click a View or Viewpoint in the navigation view and select Save Viewpoint. This will save the viewpoint to the selected view.

The scene camera can be reset to a viewpoint in one of the following ways:

  • Double-click the currently active view. This will reset the viewpoint to that saved with the active view.
  • Double-click a viewpoint in the navigation view. If the viewpoint is not already in the active view, that viewpoint’s view is activated.
  • Right-click a viewpoint in the navigation view and select Reset to Selected Viewpoint.
  • Right-click empty space in the 3D or 2D view and select Reset to Viewpoint. This will reset to the viewpoint in the active view.
  • In the View menu select Reset to Viewpoint. This will also show the viewpoint stored in the active view.

A viewpoint can be removed from a view by selecting the item, Viewpoint, in the navigation view and deleting it.

When a view with a viewpoint is activated, the following occurs:

  1. Either the 3D View or the 2D View is selected, depending which was active when the viewpoint was saved.
  2. The saved camera properties are restored.
  3. The saved navigation tool is activated.

3.3. Section Boxes

A section box may also be added to a view. A section box is a convex region defined by six sides that is used to limit the scope of visible geometry. All geometry outside the box is clipped from view. An example of the clipping is shown below.

Effect of a Section Box
pyro scrn section box disabled
Figure 21. Section box disabled
pyro scrn section box enabled
Figure 22. Section box enabled

A section box can be created in several ways:

  • Right-click a view that does not already have a section box and select Add Section Box. This will add a section box that encompasses all visible geometry.
  • In the View menu select Add Section Box. This will add a section box to the active view if it does not already have one.
  • Right-click in empty space in the 2D or 3D view and select Add Section Box. This will also add a section box to the active view.
  • Select several geometric objects, right-click one of them, and select Create Section. If the active view does not already have a section box, one will be added that encompasses only the selection. If the active view already has a section box, a dialog will be shown that gives the option of replacing the active view’s section box or creating a new view with the section box.

A section box is displayed as a dashed outline of the region. Each section box has a color associated with it that is used to display both the outline of the section box and the clipped portions of solid, clipped objects as shown in Effect of a Section Box, Figure 21. In this figure, the section box is green, so any geometry that is clipped including the walls and slab in the image are also colored green.

The scope of a section box can be edited by selecting the section box and manipulating it like any other geometric object, see Section 9.16. Section boxes can also be rotated and moved like other geometric items, see Section 9.17.

The properties of a section box can be edited by either double-clicking the section box or by right-clicking it and selecting Properties.

See Figure 23 below.

pyro ui dialog section box props
Figure 23. Section box properties dialog

The active section box can be disabled in the 2D or 3D view by de-selecting Enable Section Boxes in the View menu. The display for the section box can be independently hidden from view by de-selecting Show Section Boxes in the View menu.

A section box can also be reset to encompass the currently visible objects by performing one of the following:

  • Right-click the section box to reset, and select Reset Section Box.
  • On the View menu, select Reset Section Box. This will reset the section box in the active view.
  • Right-click on empty space in the 2D or 3D view and select Reset Section Box. This will also reset the section box in the active view.

3.4. Smokeview Interoperability

Smokeview supports the concept of viewpoints, which are similar to PyroSim views. Smokeview viewpoints are defined by camera position, orientation, a navigation tool, and up to six axis-aligned clipping planes. Viewpoints are stored in the Smokeview INI file.

By default, when PyroSim prepares an FDS simulation or exports an FDS file, it also writes a Views file that can be read in the PyroSim 3D Results but not Smokeview. It does not write the views to the Smokeview INI file. This is to avoid view duplication in the 3D Results. This behavior can be changed, however, by turning off the Views file in the preferences, see Section 2.8. If turned off, PyroSim will instead write the view information to the INI file, which can be read in Smokeview.

At any time, the view information can be updated for the results without re-running the simulation by explicitly writing either the PyroSim Views file or the Smokeview INI file. This can be done by going to the File menu, and selecting either Export→PyroSim Viewpoints or Export→Smokeview INI, respectively.

While the Views file exports views exactly as defined in PyroSim, there are some limitations to how PyroSim views are exported to the Smokeview INI file:

  • Only views with viewpoints that were saved from the 3D View are written.
  • Camera "roll" information is not exported, which means that the Smokeview viewpoints might not match the orientation in PyroSim perfectly. The only way to guarantee that the orientation matches is to use the Roam tool in PyroSim to orient the camera.
  • Zoom information is not exported.
  • Only section boxes that have not been rotated are exported.
  • Sometimes the geometry is not visible in Smokeview from an exported viewpoint due to incorrectly chosen near and far clipping planes in Smokeview.

In addition, if a view was saved in PyroSim with the Roam tool active, the Rotation type in Smokeview is set to Eye centered. For all other navigation tools, the Rotation type in Smokeview is set to 2 axis.

Smokeview viewpoints may also be imported into PyroSim. This is useful if additional views have been specified in Smokeview while viewing the results and those viewpoints should be preserved in PyroSim. To import Smokeview viewpoints, perform the following:

  1. On the File menu, select Import FDS/CAD File.
  2. Choose the INI file that accompanies the SMV file that was viewed.

After importing, a new view group is added, containing one PyroSim view for each Smokeview viewpoint that was in the INI file.

4. Working with Files

Several files are used when performing a fire analysis using PyroSim. These include the PyroSim model file, the FDS input file, and FDS output files. This section describes how to load and save files in the formats supported by PyroSim.

4.1. Creating a New PyroSim Model

When PyroSim is started, it begins with an empty model. You can close the current model and create a new empty model by opening the File menu and clicking New. PyroSim always has one (and only one) active model.

4.2. Saving a PyroSim Model

The PyroSim model file (PSM) is stored in a binary format that represents a PyroSim model. The PyroSim model contains all the information needed to write an FDS input file, as well as additional information such as obstruction grouping, floor heights, background images, and textures. This format is ideal for sharing your models with other PyroSim users.

To save a new model:

  1. On the File menu, click Save.
  2. Enter the file name and click the Save button.

4.3. Open a Saved PyroSim Model

PyroSim model files have a PSM extension. To open a saved model:

  1. On the File menu, click Open.
  2. Select the file and click the Open button.

A list of recently opened files is also available. To open recent files, on the File menu, click Recent PyroSim Files, then click the desired file.

PyroSim has an auto-save feature which stores a copy of your current model every 10 minutes. This file is automatically deleted if PyroSim exits normally, but if PyroSim crashes, you can recover your work by opening the autosave file. It can be found either in the same directory as your most recent PSM file, or in the PyroSim installation directory if your model was unsaved.

For more information about opening files saved with previous versions of PyroSim, please refer to Appendix A and Appendix B.

4.4. Preventing Changes to a Model

PyroSim supports write protection for a model. When write protection is enabled, users cannot modify a model (e.g. change geometry, edit surface properties, etc). This option can be enabled with or without password protection. If a model is write-protected, PyroSim will display notification in the application title bar.

To add write protection to a model:

  1. On the File menu, click Write Protection.
  2. Click OK.

The model will now be write-protected. Since a password was not used, a password will not be required to remove write protection.

To remove write protection from a model:

  1. On the File menu, click Write Protection.
  2. Click OK.

The model can now be edited. If needed, the dialog will require a password to release the lock.

4.5. Importing FDS Models

PyroSim allows you to import existing FDS input files. When you import an FDS file, PyroSim will create a new PyroSim model from the imported file. During import, PyroSim will check for the validity of each record. If errors are detected, you will be notified. You may then make the required corrections and attempt to import the file again.

To import existing FDS models into PyroSim:

  1. On the File menu, select Import FDS/CAD File. or click the Import button (pyro ui icon import) on the main toolbar.
  2. Select the FDS file and click Open.

PyroSim supports file import for versions 4, 5, and 6 of FDS. For more information about opening files compatible with version 4 or 5 of FDS, please refer to Appendix A and Appendix B.

4.6. Exporting FDS Models

PyroSim also allows you to explicitly export the current model to an FDS input file. You can manually edit the file to take advantage of advanced FDS features, or to easily transfer the input file to a different machine or special version of FDS.

To export an FDS file:

  1. On the File menu, click Export, then click FDS File. or click the Export button (pyro ui icon export) on the main toolbar.
  2. Enter the file name and click Save.

The file exported by PyroSim will be compatible with version 6 of FDS.

4.7. Importing CAD files

PyroSim can import geometry from several CAD formats, including buildingSMART’s IFC format for Building Information Models (BIM), AutoCAD’s DXF (Drawing Exchange Format), DWG, FBX, DAE, OBJ, GLTF/GLB 2.0, and STL files. Each type of file provides a variety of geometry that can either be directly represented as obstructions or as drawing guides in the PyroSim model.

IFC
Provides building information model (BIM) data in a fully 3d format. This format contains advanced data about the types of objects in the building, including slabs, stairs, and doors, though it is currently only used for geometry import in PyroSim. It also contains information about whether objects are solid and is supported as an export format for many architectural CAD packages, including Revit. Unlike with the other import formats, however, textures are not currently supported.
DXF
A basic CAD format provided by Autodesk. This format supports robust geometry types, including 3d faces, lines, and text, but it does not support appearance information, such as textures, lighting parameters, etc. PyroSim may perform special post-processing of the data because a single object in a DXF file may have mixed geometry types, including lines, points, and faces. In PyroSim (and FDS), obstructions can only have faces. For this reason, PyroSim splits up these mixed objects into two, so that one object is an obstruction with only faces, and the other object is just meta data with lines and possibly points.
DWG
Similar to DXF, but it also has basic support for appearances, including textures. It has only basic support for mapping textures onto objects, however, and few CAD applications can export DWG files. Some, such as Revit, exclude material and texture information, see Section 4.7.2.
FBX
Provides support for 3d faces only and has good support for basic appearance information and texture mapping. In addition, many 3D modeling applications have built-in support for exporting FBX files. Unfortunately, this format has no information about whether objects are solid, so PyroSim treats them as collections of thin faces. This can cause issues if holes are intersected with objects from these files, as smoke will be able to enter the cavity of solid objects. In addition, this format does not natively support physically-based (PBR) appearances. glTF/GLB may be used as an alternative if higher visual fidelity is desired.
glTF/GLB 2.0
Like FBX, glTF/GLB provides support for 3d faces with good appearance support and texture mapping. Unlike FBX, glTF/GLB files natively support PBR materials for improved visual fidelity in Results, especially when combined with image-based lighting (IBL). This format has similar limitations to FBX in that objects are imported as collections of thin faces with no support for solids. In addition to basic glTF 2.0 features, PyroSim’s glTF/GLB importer also supports the following glTF extensions:
STL
A basic file format that is simply a listing of triangles. There is no appearance or texture information.

Unlike FDS import, which completely replaces the current PyroSim model, CAD import appends the data to the current model. This facilitates the ability to import data from several CAD files into one PyroSim model. This is useful when there is one blueprint per floor of a building or a 3D building has been split into several sections, each in a separate file.

To import one of these files, under the File menu, select Import FDS/CAD File and select the desired file.

STL files will import as shown in Section 4.7.1. For non-STL files, a step-by-step dialog will open as shown in Figure 24.

pyro ui dialog import units
Figure 24. CAD import units
pyro ui dialog import settings
Figure 25. CAD import settings
pyro ui dialog import options
Figure 26. CAD import options
  1. FBX Exporter: If an FBX file is being imported, the second prompt will ask what software was used to export the file. If a SimLab FBX plugin or Unreal Engine was used to create the FBX file, choose the appropriate option from the drop-down box; otherwise; choose Unknown. This selection controls the default settings in the subsequent prompts. In some cases, PyroSim is able to detect whether the file was exported using a SimLab plugin and will select this option automatically.
  2. Units: The next prompt asks the user to select the base unit in which the CAD file was created. If the drawing was saved in a more recent file format, the prompt will default to the unit type stored in the file. The dialog box shows the model’s width, depth, and height based on the selected unit as a guide for selecting the unit.
  3. Import Settings: The next several prompts (Figure 25) allow the user to control how some of the data is imported and to correct some data that may have been written incorrectly by the file’s CAD exporter.
    Normal Tolerance (DWG/DXF only)
    Controls the quality of curved objects. Decreasing this value produces higher quality objects at the expense of slower rendering speed. The default value of \(15^{\circ}\) provides a nice balance.
    NURB Gridlines (DWG/DXF only)
    Controls the quality of NURB surfaces. Increasing this value gives higher quality curves at the expense of slower rendering speed. The default value of \(5\) provides a good balance.
    Lighting
    Controls how objects are lit.
    Auto-correct inverted polygons
    Some CAD files contain information about the normal of a polygon that affects how the polygon is lit. In some cases, the normal may not match the orientation of the polygon, which can cause the polygon to appear too dark. Selecting this option will allow PyroSim to try to detect these cases and correct the orientation of the polygon so it may be lit correctly. This option works well in most models and is generally safe to leave on.
    Crease Angle
    Some CAD files do not provide lighting data for objects to determine whether they should look smooth or faceted. In this case the crease angle is used to determine this information. If the angle between two adjacent faces is greater than this value, the faces will be look like they are two separate, faceted faces. Otherwise, the two faces will look like one smooth curved face. This option may also affect whether the edges of faces are displayed when the Show Object Outlines option is enabled.
    Materials
    Specifies how CAD materials are imported. CAD materials control the imported objects' color and lighting. See Section 7.4 for more information.
    Merge identical materials
    Some CAD exporters (namely SimLab’s Revit FBX plugin) will create a unique material (appearance) per object in the file, which may lead to hundreds or thousands of materials that have duplicate properties. Selecting this option allows the materials with duplicate properties to be merged into one material, significantly reducing the number of materials in the model with no loss of quality.
    Ignore transparency color (FBX only)
    In FBX files, material transparency is determined from a transparency color and factor. Some CAD exporters (SimLab’s FBX plugins) export the color incorrectly. Selecting this option will allow PyroSim to ignore the transparency color in the FBX file and only use the transparency factor, which allows transparency in these files to import correctly. This option should only be selected if it is known that the file came from a SimLab plugin or there are transparency problems without it selected (For example, objects that should be transparent are not or vice versa).
    DirectX normal maps (FBX and IFC only)
    Indicates whether the normal maps in the imported file use the DirectX convention, where +Y is down.
    Workflow (FBX and IFC only)
    Specifies the lighting workflow to be used for imported materials. More information can be found in Section 7.4. The following values are available:
    As defined in file
    The materials are imported exactly as they were specified in the file. Currently, this means that the materials will be imported using the Specular (Basic) workflow, as this is the only workflow currently supported by IFC and FBX files. In some cases, however, such as when an FBX file is exported from Unreal Engine, the PBR parameters are packed into the basic specular texture property. In this case, the following two options can be used to reinterpret the basic specular workflow as a PBR workflow for correct lighting.
    Metallic (PBR)
    The materials should be imported as if they use the Metallic (PBR) workflow, even if they are specified in the import file using the Specular (Basic) workflow. When using this option, the PBR parameters can either be set to constant values or can be reinterpreted from other non-PBR color properties. For instance, when an FBX file is exported from other software, for each material it might create a single image containing the Metallic, Roughness, and Ambient Occlusion parameters, stored in the red, green, and blue color components, respectively. It then might set the specular texture in the FBX file to this combined image. When an exporter does this, there should be accompanying documentation with the FBX file that indicates how these PBR parameters are stored in the FBX file. When importing the FBX file in the above example, in the import dialog, the Metallic, Roughness, and Ambient Occlusion properties should all be set to From Specular, and the color components should be set to R, G, and B, respectively. See Section 7.4 for more information on the PBR properties.
    Specular (PBR)
    Similar to the Metallic (PBR) option, this forces imported materials to use the Specular (PBR) workflow, where the PBR parameters can be reinterpreted from non-PBR properties.
    Object Grouping (IFC only)
    Specifies how objects will be grouped once imported into PyroSim. The value can be one of the following:
    Spatial (default)
    The objects are grouped based on the spatial layout of the model. For instance, the top group is the building site, the next group is the building, the next are the floors, etc.
    By Type
    Objects are grouped by type. For instance, there will be a group for walls, furniture, slabs, etc.
  4. Import Options: This prompt allows the user to specify more options for import. Before this prompt is shown, PyroSim will attempt to discern if the CAD file contains a 2D Floorplan or a 3D Model and will select default values for the options based on the detected type, see Figure 26.
    Lines
    Check to import lines in the file (default=checked only for floorplans)
    Faces
    Check to import faces in the file (default=checked only for 3D models)
    Move geometry to origin (0,0,0)
    If checked, the imported geometry will be moved such that the minimum point of the bounding box surrounding the imported geometry will correspond with the model origin.
    Geometry Offset
    Will offset imported geometry on the X, Y, and Z planes by the specified values. If Move geometry to origin is checked, the geometry will be moved to the origin before being moved additionally by the Geometry Offset.
    Flatten so geometry lies in one plane
    If checked, all geometry will be scaled in the Z dimension by a very small scale (1e-9). This is useful for floorplans that have entities drawn in several planes. This option will flatten them all into one plane. (default=checked only for 2d floorplans).
    Add a blank rectangle to obscure lower floors
    If checked, a solid rectangle of the specified color will be added to the model. This is useful to obscure geometry located on lower floors. The imported rectangle will not become an obstruction and will be excluded from the simulation. (default=checked only for 2d floorplans).
  5. Choose Finish to import the file.

When PyroSim imports a CAD file, it will treat all 3D face data as obstructions and all other data (lines, curves, etc.) as separate CAD data. If an object in the file contains both face and CAD data, the entity will be split into two entities so that CAD data can be easily deleted or hidden after import using the CAD filter button on the 3D/2D View toolbar, see Section 2.3.6.

An object with CAD data can be snapped to while drawing in PyroSim but is not converted to any type of FDS geometry.

In DWG and DXF files, an entity with face data will either be treated as a single, solid obstruction with some volume or as a collection of thin obstructions depending on the entity type in the DWG/DXF file. These objects will be represented as FDS geometry. The following DWG/DXF entity types are treated as solids in PyroSim:

  • 3D Solid
  • Mass Element
  • Mass Group
  • Roof
  • Slab4
  • Roof Slab
  • Stair
  • Wall
  • Door
  • Window
  • Curtain Wall
  • Curtain Wall Unit
  • Curtain Wall Assembly
  • Structural Member

With the exception of IFC files, all other entities and objects from other CAD formats that contain faces are treated as collections of thin obstructions by PyroSim. They cannot be reliably treated as solid since there is no guarantee that their faces form a closed and non-self-intersecting shell or that this would even be desired.

Once the file is imported, PyroSim creates a hierarchy of groups and objects, such that there is one top group, named after the file. The next levels depend on the imported file type. For non-DWG/DXF files, the structure will mimic the node structure in the source file. For DWG/FXF files, the next level contains a group for every layer containing geometry. Under each layer group there are one or more objects representing the entities in the file. The following illustrates the hierarchy as it would appear in the Navigation View:

  • FileName
    • Layer1
      • Entity1
      • Entity2
      • …​
    • Layer2
      • Entity3
      • Entity4
      • …​
    • …​

If the DWG/DXF file contains a block insert and the block contains entities from multiple layers, the block insert is split into several PyroSim objects, one for each layer of the block’s originating entities. If all the entities in the block are from the same layer, however, there will be one resulting PyroSim object that will belong to the group corresponding to the block’s entities' layer rather than the block insert’s layer.

4.7.1. Importing STL Files

PyroSim can also import objects from STL files, which are simply listings of triangles. Usually, each STL file represents the shell of one 3D solid object.

To import an STL file, perform the following:

  1. On the File menu, select Import FDS/CAD File. or click the Import button (pyro ui icon import) on the main toolbar.
  2. Select the desired STL file and click Open.
  3. Enter the import options in the STL Import Options dialog as shown in Figure 27.
  4. Click OK to begin import.
pyro ui dialog import stl 2022 1
Figure 27. STL Import Options dialog

In Figure 27, the following options can be specified:

File Units
The units used to store the 3D coordinates in the STL file.
Vertex weld tolerance
A distance used to determine how far apart vertices must be to be considered separate.
Resulting Geometry Type
Filled Obstruction
Imports the triangles as solid obstructions. The triangles must form one or more closed, manifold collections of triangles. Each collection of connected triangles is treated as a separate shell. The shells are grouped such that if one shell is immediately inside another shell, the outside shell defines the outside of the solid, and the interior shell defines a hole/cavity in the solid. This option should not be used if there are several touching or intersecting solids. If this is the case, it is preferable to import the objects using a different file type.
Hollow Obstruction
Imports the triangles as is. Each set of connected triangles is treated as a separate unfilled obstruction.
Unstructured GEOM
Imports the triangles as immersed boundary obstructions. The geometry must follow the same rules as with the Filled Obstruction option. See FDS GEOM for more information about immersed boundary obstructions.
Hole
Imports the triangles as holes that will be subtracted from existing obstructions. The geometry must follow the same rules as with the Filled Obstruction option.
Surface
The surface to apply to the resulting obstructions if applicable.
Convert to solid obstructions
Whether to treat the resulting objects as solid obstructions. If this is unchecked, each resulting object will be a collection of thin obstructions.

Because the STL file is simply a listing of triangles, there may be more than one object represented in the file. PyroSim will use the vertex weld tolerance to detect triangle connectivity and determine if there are several, disconnected sets of faces in the file. If there are, there will be one resulting PyroSim object per connected set of faces.

In addition, if the solid option is enabled or the objects are being treated as holes, import will only succeed if each face set is detected as a closed shell by PyroSim.

4.7.2. Importing Revit Files

While PyroSim cannot directly import Autodesk Revit files (RVT), there are several ways to export the data from Revit into a file format that PyroSim can read. Each method has advantages and disadvantages as discussed below.

Revit to IFC (direct)
The first method exports a building information model (BIM) in the industry foundation classes (IFC) format. This method is simple to use and preserves much of the building information present in the model. Unfortunately, this method loses all texture information, so models are not as visually interesting when displayed in PyroSim. To perform the export in Revit 2019, perform the following:
  1. Open the desired RVT file within Revit.
  2. Under the File menu, click Export→IFC.
  3. Choose the desired IFC filename.
  4. Click Modify setup to choose different export settings, if desired.
  5. Click Export to save the file.
  6. Import the IFC file into PyroSim.
Revit to DWG (direct)
This method exports a DWG directly from Revit, which can then be imported into PyroSim. While simple to perform and only requires Revit, this method loses all information about materials, including textures, due to Revit’s limited DWG support. To perform the export in Revit Architecture 2014, perform the following:
  1. Open the desired RVT file within Revit Architecture.
  2. Click the Revit icon at the top left revit ui icon.
  3. Select Export→CAD Formats→DWG.
  4. In the DWG Export dialog, for Export, select <In session view/sheet set>.
  5. For Show in list, select Views in the Model.
  6. Click the Check None button, and then in the view table, select the check box for 3D View: 3D (Other views may be chosen, but the DWG will only contain entities visible in the selected views).
  7. Click the Next. button and choose a file name for the DWG file.
  8. Click OK to create the DWG.
  9. Import the DWG into PyroSim.
Revit to FBX (direct)
This method exports an FBX file directly from Revit, which can then be imported into PyroSim. As with exporting a DWG, this method is simple to perform and only requires Revit. Unfortunately, this method also loses all information about materials and textures because Revit encrypts the material data, making it unreadable by PyroSim. To export using Revit Architecture 2014, perform the following:
  1. Open the desired RVT file within Revit Architecture.
  2. Click the Revit icon at the top left revit ui icon.
  3. Select Export→FBX.
  4. Choose a file name for the FBX file.
  5. Click OK to create the FBX.
  6. Import the FBX into PyroSim.
Revit to FBX using third-party plugin
This method requires the use of a third party plugin, but it generally produces good results with materials, textures, and texture coordinates well-supported. In many cases, this is the most reliable method of reproducing the graphical representation of the original Revit file within PyroSim. SimLab Soft is one company that provides commercial FBX export plugins for several CAD packages, including Revit and Sketchup, among others, and provides robust texture support. To export using a third-party plugin, perform the following:
  1. Download and install the appropriate plugin.
  2. Follow the plugin’s instructions to export an FBX file from Revit. If the plugin supports embedded media, select this option before exporting. This option allows textures to be embedded into the FBX file, making it much easier to transfer the FBX to another computer, as only file has to be transferred.
  3. If the FBX file is to be imported into PyroSim on the same computer as the one that exported the file or the embedded media option was selected, continue to step 4; otherwise, some additional steps may be necessary to ensure the textures can be found when importing into PyroSim:
    1. Determine the directory into which the FBX exporter saved the textures. Some exporters may place the textures in a sub-directory of the FBX file and give it the same name as the FBX file. Others may save the textures to a common program-specific location. The SimLab Revit exporter, for example, saves textures for a particular file to
      C:\ProgramData\Autodesk\Revit\Addins\SimLab\FBXExporter\data\Imported_Textures\#
      where # is a number specific to the exported file, such as 40.
    2. If the folder is not already a sub-directory of the FBX file, cut this folder and paste it in the same location as the FBX file. The pasted folder may be left as is or renamed to be the same as the FBX file, without the .fbx extension.
    3. Transfer the FBX file and the texture folder to the computer that will be importing the FBX file into PyroSim.
  4. Import the FBX file into PyroSim.
Revit to FBX to AutoCAD to DWG
This method requires both Revit and AutoCAD and does not perform a perfect conversion, but it retains some information about materials and texture coordinates. The steps described here use Revit Architecture 2014 and AutoCAD 2014.
  1. Open the desired RVT file within Revit Architecture.
  2. Click the Revit icon at the top left revit ui icon.
  3. Select Export→FBX.
  4. Specify the desired filename and click Save.
  5. Open AutoCAD.
  6. On the Insert tab in the ribbon, select Import.
  7. Select the FBX file created by Revit.
  8. The FBX Import Options dialog will appear. The following are recommended settings for the FBX import:
    1. Import section: Make sure Objects and Materials are checked. Lights and Cameras are unused in PyroSim.
    2. Assign Objects to Layers: any option may be selected, but By Material is a useful option for PyroSim.
    3. Unit Conversion: This section is somewhat misleading. While the Current Drawing Unit is correct, the FBX file unit tends to be incorrect. No matter what unit is displayed in the greyed-out text for FBX file units, the actual unit in the FBX file is always FOOT. The appropriate values need to be specified to make the proper unit conversion. For instance, if the current drawing unit is Millimeters, you can enter the value, 1 on the left and 304.8 on the right because there is 1 foot per 304.8 millimeters.
    4. Block: Uncheck Insert file as block.
  9. Click OK to finish the import. You may receive a warning about the clip plane of the camera.
  10. Save the file as a DWG.
  11. Import the DWG into PyroSim.

4.7.3. Converting 2D Floor Plans Into 3D Geometry

Some CAD files contain 2D floor plans, which, on their own, cannot be used in a simulation. These types of files must first be converted into solid 3D geometry. There are two ways in which this can be accomplished.

The first involves using the floor plan as a guide to draw the 3D model. See Chapter 9 for more information.

The second is to convert lines that represent walls into 3D walls using automated tools. This can be done as follows:

  • Select a set of 2D lines that represent walls in the model.
  • Right-click the selection and select Convert CAD lines into Walls.
  • Enter the desired Height and Thickness of the walls.
  • Click OK.

This will replace each line with a 3D wall, whose base is centered on the original line.

5. Meshes

5.1. Working with Meshes

All FDS calculations are performed within computational meshes. Every object in the simulation (e.g. obstructions and vents) must conform to the mesh. When an object’s location doesn’t exactly conform to a mesh, the object is automatically repositioned during the simulation. Any object that extends beyond the boundary of the physical domain is cut off at the boundary. There is no penalty for defining objects outside of the domain, but these objects do not appear in the Results.

To achieve optimal simulation accuracy, it is important to use mesh cells that are approximately the same size in all three directions.

FDS uses a Poisson solver based on Fast Fourier Transforms (FFTs). A side effect of this approach is that optimal mesh divisions are constrained to the form 2u 3v 5w, where u, v and w are integers. For example, 64 = 26, 72 = 23 * 32, and 108 = 22 * 33 are good mesh dimensions. However, 37, 99 and 109 are not. In addition, using a prime number of cells along an axis may cause undesirable results. PyroSim warns when the number of divisions is not optimal.

5.2. Uniform Meshes

This example illustrates creating a multiple mesh model.

To create the first mesh:

  1. On the Model menu, click Edit Meshes.
  2. Click New.
  3. In the Max X box, type 5.0, in the Max Y box, type 1.0, and in the Max Z box, type 1.0.
  4. In the X Cells box, type 50, in the Y Cells box, type 10, and in the Z Cells box, type 10.
  5. Click OK.

The 3D View will now display the resulting mesh.

pyro ui dialog edit meshes uniform
Figure 28. Defining properties of the new mesh

5.3. Nonuniform Meshes

To create a second, nonuniform mesh:

  1. On the Model menu, click Edit Meshes.
  2. Click New
  3. In the Min X box, type 0.0, in the Min Y box, type 1.0, and in the Min Z box, type 0.0
  4. In the Max X box, type 1.0, in the Max Y box, type 3.0, and in the Max Z box, type 1.0
  5. In the Division method box, select Non-Uniform
  6. In the table, enter the data shown in Table 2

    Table 2. Non-Uniform Mesh Parameters
    Dir (X,Y,Z)Num CellsSize
    X100.1
    Y100.1
    Y50.2
    Z100.1
  7. Click OK
pyro ui dialog edit meshes nonuniform
Figure 29. Defining properties of the nonuniform mesh

You can click pyro ui icon view reset or type Ctrl+R to reset the model. The resulting meshes are displayed below.

pyro scrn meshes uniform nonuniform
Figure 30. 3D display of uniform (blue) and non-uniform (red) meshes

5.4. Using Multiple Meshes

The term "multiple meshes" means that the computational domain consists of more than one rectangular mesh, usually connected, although this is not required. In each mesh, the governing equations can be solved with a time step based on the flow speed within that particular mesh. Some reasons for using multiple meshes include:

  • Multiple meshes can be simulated in multiple FDS processes via MPI, leading to faster simulation run times than using multiple OpenMP threads in a single mesh simulation.
  • If the geometry of the problem has corridors such as shown in Figure 30, using multiple meshes can significantly reduce the number of cells and the solution time.
  • Because each mesh can have different time steps, this technique can save CPU time by requiring relatively coarse meshes to be updated only when necessary. Coarse meshes are best used in regions where temporal and spatial gradients of key quantities are small or unimportant.

Meshes can overlap, abut, or not touch at all. In the last case, essentially two separate calculations are performed with no communication at all between them. Obstructions and vents are entered in terms of the overall coordinate system and need not apply to any one particular mesh. Each mesh checks the coordinates of all the geometric entities and decides whether or not they are to be included.

As described in the FDS User Guide (McGrattan et al. 2021) the following rules of thumb should also be followed when setting up a multiple mesh calculation:

Mesh Alignment
The most important rule of mesh alignment is that abutting cells ought to have the same cross sectional area, or integral ratios, as shown in Correct Mesh Alignment Examples.
Mesh Priority
In general, the meshes should be entered from finest to coarsest. FDS assumes that a mesh with higher priority has precedence over a mesh with a lower priority if the two meshes abut or overlap.
Mesh Boundaries
Avoid putting mesh boundaries where critical action is expected, especially fire. Sometimes fire spread from mesh to mesh cannot be avoided, but if at all possible try to keep mesh interfaces relatively free of complicating phenomena since the exchange of information across mesh boundaries is not as accurate as cell to cell exchanges within one mesh.
Data Exchange
Information from other meshes is received only at the exterior boundary of a given mesh. This means that a mesh that is completely embedded within another receives information at its exterior boundary, but the larger mesh receives no information from the mesh embedded within. Essentially, the larger, usually coarser, mesh is doing its own simulation of the scenario and is not affected by the smaller, usually finer, mesh embedded within it. Details within the fine mesh, especially related to fire growth and spread, may not be picked up by the coarse mesh. In such cases, it is preferable to isolate the detailed fire behavior within one mesh, and position coarser meshes at the exterior boundary of the fine mesh. Then the fine and coarse meshes mutually exchange information.
Boundary Obstructions
If a planar obstruction is close to where two meshes abut, make sure that each mesh "sees" the obstruction. If the obstruction is even a millimeter outside of one of the meshes, that mesh may not account for it, in which case information is not transferred properly between meshes.
Parallel Calculation
In a parallel calculation, it is recommended that the time steps in all meshes to be the same. This is the default setting in PyroSim and FDS 6 and provides a tighter connection between meshes. This option is selected by the Synchronize time step for tighter connection between meshes checkbox on the Edit Meshes dialog.
Trial and Error
Experiment with different mesh configurations using relatively coarse mesh cells to ensure that information is being transferred properly from mesh to mesh.
There are two issues of concern.
  • Does it appear that the flow is being badly affected by the mesh boundary? If so, try to move the mesh boundaries away from areas of activity.
  • Is there too much of a jump in cell size from one mesh to another? If so, consider whether the loss of information moving from a fine to a coarse mesh is tolerable.
Correct Mesh Alignment Examples
pyro scrn mesh align 1 1
Figure 31. Ideal 1:1 mesh alignment.
pyro scrn mesh align 1 n
Figure 32. Acceptable 1:n alignment.
Incorrect Mesh Alignment Examples
pyro scrn mesh align overlap
Figure 33. Questionable value, warning.
pyro scrn mesh align error
Figure 34. Not allowed in FDS 5.1+, error.

5.5. Additional Mesh Actions

To simplify working with multiple meshes, PyroSim provides the following additional mesh operations:

Split Mesh
Splits selected meshes at a coordinate along a single axis.
Refine Mesh
Makes selected meshes finer or coarser by a factor (e.g. refine a mesh by 4 to turn 1.0 meter cells into 0.25 meter cells).
Merge Meshes
Combines two or more meshes into a single mesh.
Partition Meshes
Divides selected meshes in to the desired number of (2-96) partitions, with each partition having as equal cell count as possible.

To use any of the above actions, select one or more meshes, right-click to open a popup menu, then click the desired mesh action.

6. Materials

To simulate a surface made of heat-conducting solids or a fuel you must specify a material that describes certain thermal properties and pyrolysis behavior. PyroSim offers two categories of materials: solid materials and liquid fuels.

To create a new material, you can use the Edit Materials dialog. On the Model menu, click Edit Materials.

6.1. Solid Materials

Examples of solid materials include brick, gypsum board, and upholstery. To create a solid material:

  1. In the Edit Materials. dialog, click New.
  2. In the Material Name box, type the name of the new material
  3. In the Material Type box, select Solid
  4. Click OK

After following these steps, a default solid material will be created. Text entered in the Description box will not affect the simulation, but will be preserved in the FDS input file using the FYI field of the material. Including a description of the material is recommended.

The Thermal Properties tab provides the following options:

Density
The material’s density.
Specific Heat
The material’s specific heat. Specific heat can be specified as a function of temperature.
Conductivity
The material’s heat conductivity. Conductivity can be specified as a function of temperature.
Emissivity
The material’s emissivity. A value of 1.0 corresponds to maximum radiation.
Absorption Coefficient
This coefficient refers to the depth over which thermal radiation can be absorbed.

The Pyrolysis tab provides options to set the heat of combustion and add reactions that will be used to govern how the material burns.

Each material can have a maximum of 10 reactions. To add a reaction, click the Add button. This will open a dialog to edit the new reaction. It provides the following options:

On the Rate tab:

Reference Temperature
The temperature at which the material mass fraction decreases at its highest rate.
Heating Rate
The reaction rate at a given temperature.
Pyrolysis Range
The approximate temperature range over which the reaction occurs.
A (Pre-exponential Factor)
(parameter shown in equation)
E (Activation Energy)
(parameter shown in equation)
Mass Fraction Exponent
(parameter shown in equation)
Exponent
(parameter shown in equation)
Value
(parameter shown in equation)

On the Byproducts tab:

Heat of Reaction
Heat yield of this reaction. This must be a positive number.
Endothermic/Exothermic
Specifies if the heat yield is endothermic or exothermic.
Residue
The material that will be used to represent the residue. If there is only one material defined in PyroSim, this option will not be available.

6.2. Liquid Fuels

Examples of liquid fuels include kerosene and ethanol.

To create a liquid fuel:

  1. In the Edit Materials. dialog, click New.
  2. In the Material Name box, type the name of the new material
  3. In the Material Type box, select Liquid Fuel
  4. Click OK

After following these steps, a default solid material will be created. Text entered in the Description box will not affect the simulation, but will be preserved in the FDS input file using the FYI field of the material. Including a description of the material is recommended.

The thermal properties tab for liquid fuels is identical to the thermal properties tab for solid fuels, see Section 6.1.

The Pyrolysis tab provides the following parameters:

Heat of Vaporization
Heat yield when this liquid fuel is converted to gas. This must be a positive number.
Endothermic/Exothermic
Specifies if the heat yield is endothermic or exothermic.
Heat of Combustion
The heat released when the liquid fuel combusts.
Boiling Temperature
The temperature at which the liquid fuel changes to a gaseous fuel.
Residue
The material that will be used to represent the residue. If there is only one material defined in PyroSim, this option will not be available.

7. Surfaces

Surfaces are used to define the properties of solid objects and vents in your FDS model. The surface can use previously defined materials in mixtures or layers. The default surface of all solid objects and vents, initialized as INERT, is defined by the default surface property in the Simulation Parameters dialog. The default temperature is fixed at the ambient temperature also set in the Simulation Parameters dialog. In addition to defining heat conduction in a solid, surfaces can also be used to define a burner, specify the ignition temperature for an object, give a vent a supply velocity, and set the many other properties supported by FDS.

To create, modify, and delete surfaces, you can use the Edit Surfaces dialog. To open the Edit Surfaces dialog, on the Model menu, click Edit Surface Properties. The dialog in Figure 35 shows the dialog being used to edit an upholstery surface.

pyro ui dialog edit surfaces material layers
Figure 35. The Edit Surfaces dialog

7.1. Reserved Surfaces

There are six fundamental or "reserved" surface types: ADIABATIC, INERT, MIRROR, OPEN, HVAC, and PERIODIC. These surfaces cannot be changed and are present in every analysis.

ADIABATIC
There is no net heat transfer (radiative and convective) from the gas to the solid. FDS will compute a wall temperature so that the sum of the net convective and radiative heat flux is zero.
INERT

This surface remains fixed at the ambient temperature. Heat transfer does occur from gases to INERT surfaces.

MIRROR

This surface is used only for vents on the exterior mesh boundary. A MIRROR is a no-flux, free-slip boundary that reverses flow. It is intended to be applied to an entire mesh boundary to symmetrically double the size of the domain.

OPEN
This surface is used only for vents on the exterior mesh boundary. OPEN denotes a passive opening to the outside and is often used to model open doors and windows.
PERIODIC
This surface is used only for vents on the exterior mesh boundary. PERIODIC boundaries can be used to approximate an infinitely large system with the domain as a representative unit cell.
PERIODIC FLOW ONLY
This surface is used only for vents on the exterior mesh boundary. PERIODIC FLOW ONLY boundaries have similar effects as PERIODIC boundaries, however the PERIODIC FLOW ONLY only affects the velocity field - not scalar quantities.
HVAC
This surface is used only for vents that are part of an HVAC system.

7.2. Surface Types

PyroSim aids the user by organizing the surface options into logical types, such as a burner to define a simple fire or a layered surface to represent a solid, heat conducting wall.

There are eight surface types in alphabetical order that you can create in PyroSim.

The Edit Surfaces dialog helps define a surface type with a set of tabs. Each tab provides a collection of input fields and settings for the user to customize that surface type.

7.2.1. Air Leak

Air leak surfaces can be used to create a permeable barrier between two pressure zones, defined by the Leak Path in the Edit Surfaces dialog. The leak area is defined by the zones selected.

Tabs: Advanced, Air Leak

7.2.2. Basic

This surface type is identical to the built-in INERT surface type. It allows you to customize the description, color, and texture of the inert surface described in Reserved Surfaces.

Tabs: Advanced, Properties (only on this Surface Type)

7.2.3. Burner

This surface type represents a fire with a known heat release rate or mass (fuel) loss rate.

Tabs: Advanced, Geometry, Heat Release, Particle Injection, Thermal

7.2.4. Exhaust

Exhaust surfaces can be used to remove gas from the simulation domain. The specification of their air movement parameters is identical to that of a supply surface, but instead of the velocity or flux driving air into the domain, they are pulling air out. Exhaust surfaces do not have the option to apply injection or geometry properties.

Tabs: Advanced, Air Flow, Thermal

7.2.5. General Surface

The General Surface type is a hybrid between the Burner and Supply surface types. Adding a little more flexibility than either of them individually.

Tabs: Advanced, Air Flow, Geometry, Heat Release, Particle Injection, Species Injection, Thermal

7.2.6. Heater/Cooler

This surface type represents a radiative heat source. The options are identical to the options for a burner without the heat release options. If the surface temperature is less than the ambient temperature, the surface will remove heat from the surrounding gases.

Tabs: Advanced, Geometry, Particle Injection, Thermal

7.2.7. Layered

Layered surfaces are composed of one or more material definitions. Materials include solid and liquid substances such as concrete, pine, and ethanol. For more information about materials and how they can be specified in PyroSim, please refer to Chapter 6. This type of surface is ideal for walls and other objects that are composed of real-world materials. This surface type can also be used to inject extra (non-reactive) species into the simulation.

Tabs: Advanced, Geometry, Material Layers, Particle Injection, Reaction, Species Injection, Surface Props, Thermal

7.2.8. Supply

This surface represents a vent that injects air into the simulation domain. The temperature of the air injected by supply vents can be controlled using settings on the thermal tab. Species Injection options are available if the Specify Mass Flux of Individual Species option in the Air Flow group is selected and there are extra, non-reactive species present in the simulation.

Tabs: Advanced, Air Flow, Geometry, Particle Injection, Species Injection, Thermal

7.3. Surface Tabs

Each tab of the Edit Surfaces dialog provides a set of inputs and settings that can be used to build a custom surface type as listed in Section 7.2. The following sections describe the parameters on each tab and are listed in alphabetical order, not the order they might appear for a surface type.

7.3.1. Advanced

Sometimes there will not be UI elements in PyroSim for an FDS input parameter that you want to configure. The Advanced tab can be used to enter Additional Fields as Name and Value pairs that will be placed into that specific FDS &SURF record. For more information about custom FDS record input that is not supported by the PyroSim UI, see Section 22.2.

7.3.2. Air Flow

Specify Volume Flow
Use a constant volume flux to define air movement through the vent.
Specify Velocity
Use a constant velocity to define air movement through the vent.
Specify Total Mass Flux
Use a constant mass flux to define air movement through the vent.
Specify Mass Flux of Individual Species
Define air movement through the vent using a table of species and their mass fluxes. This method requires a model that includes extra (non-reactive) species. Flux data is specified on the Species Injection tab.
Tangential Velocity
The tangential velocity of the air flow. The first parameter is the velocity in the X or Y direction and the second parameter is in the Y or Z direction, depending on the normal direction of the vent. An example is shown in Figure 36.
Ramp-Up Time
At the beginning of the simulation, vents with this surface will not be blowing. This parameter controls the time it takes to ramp the air flow up to the specified amount.
Wind Profile
The default wind profile is constant (Top Hat), to model wind conditions outdoors there are two additional options: parabolic and atmospheric.
Parabolic
Produces wind with a parabolic profile whose maximum is the specified velocity.
Atmospheric
Produces a wind profile of the form \(u=u_0(z/z_0)^p\).
Atmospheric Profile Exponent
The term \(p\) in the atmospheric profile equation. This option is only available when atmospheric profile is selected.
Atmospheric Profile Origin
The term \(z_0\) in the atmospheric profile equation. This option is only available when atmospheric profile is selected.
smv scrn tangential velocity
Figure 36. Effect of normal axis on the direction of tangential velocity

7.3.3. Geometry

Geometry
Specify the type of geometry for solid particles that reference the surface. Options are Default, Cartesian, Spherical, and Cylindrical.
Length
The length of the surface. Specified for both Cartesian and cylindrical geometries.
Width
The width of the surface.
Radius
The total radius of the rounded surface. Defined in the place of thickness.
Half-Thickness
For Cartesian geometry, the plate is assumed symmetric front and back, thus only the half-thickness needs specified.

7.3.4. Heat Release

Heat Release Rate (HRRPUA)
The heat release rate per unit area of this burner.
Mass Loss Rate (MLRPUA)
The mass loss rate per unit area of this burner.
Ramp-Up Time
At the beginning of the simulation, this surface will not be burning. This field allows you to describe how the heat release ramps up from ambient to the specified value.
Extinguishing Coefficient
This parameter governs the suppression of the fire by water.

7.3.5. Material Layers

7.3.5.1. Heat Transfer
Model
The heat transfer model.
  • 1D: Both HT3D and Normal Direction Only disabled.
  • 1D to 3D: Both HT3D and Normal Direction Only enabled.
  • 3D: Only HT3D enabled.
Cell Size
The cell size used in 3D heat conduction. This field defaults to the smallest mesh cell size in the model (see Chapter 5).
7.3.5.2. Material Layers
Thickness
The thickness of this material layer.
Material Composition
Within a layer (row), you can specify multiple materials based on mass fraction. For example, to specify a layer that is just brick, type 1.0 BRICK (assuming you have created a material called BRICK). To specify a layer of wet brick, you could enter 0.95 BRICK; 0.05 WATER. Each material is separated by a semi-colon.
Edit
Click to specify the materials in this layer using an alternate table UI.

7.3.6. Particle Injection

Emit Particles
Enable this option to emit particles from the surface.
Particle Type
Select a particle to emit. To create a new particle, click the Edit Particles. button.
Number of Particles per Cell
Controls the number of particles inserted per time step.
Insertion Interval
The frequency at which particles are inserted at the solid cells.
Mass Flux
For particles that have mass, this option provides an alternate way to control the number of particles inserted per second.

7.3.7. Reaction

The reaction used to model a given surface can either be taken from the material specifications, or given explicitly by the surface. Manually specifying the parameters will produce a surface similar to a burner.

You can edit this behavior using the reaction options:

Governed by Material
This surface’s reaction will be controlled by the materials that it is constructed from.
Governed Manually
Override the default reaction behavior for this surface and specify the following parameters.
Heat Release Rate
The heat release rate per unit area of this surface.
Mass Loss Rate
The mass loss rate per unit area of this surface.
Ramp-Up Time
This field allows you to describe how the heat release ramps up from ambient to the specified value.
Extinguishing Coefficient
This parameter governs the suppression of the fire by water. For more information, refer to section 15.6.2 Reduction of the Burning Rate in the FDS User Guide (McGrattan et al. 2021).
Burn Immediately
Select this option to create a surface that is initially burning.
Ignite at
Select this option to create a surface that will begin burning at a specified temperature.
Heat of Vaporization
Heat yield when this fuel is converted to gas.
Allow obstruction to burn away
Surfaces of this type can be removed from the simulation after expending all available fuel.

7.3.8. Species Injection

You can inject extra (non-reactive) species into the simulation using the species injection options. To use these options, you must first specify species using the Edit Species dialog.

You can edit the following species options:

Inject by Mass Fraction
Select this option to specify species injection using mass fractions.
Inject by Mass Flux
Select this option to specify species injection using mass flux.
Species
This value cannot be edited. It displays the name of one of the species selected in the Edit Species dialog.
Mass Fraction
The mass fraction of species to inject. This option is only available if Inject by Mass Fraction is selected.
Mass Flux
The mass flux of species to inject. This option is only available if Inject by Mass Flux is selected.
Ramp-Up Type
This field allows you to describe the function used to ramp up the injection rate from zero to the specified value.
Ramp Value
The time it takes to achieve the specified injection rate.

7.3.9. Surface Props

Enable Leakage
This option allows you to select two pressure zones for leakage across the surface.
Initial Internal Temperature
Starting temperature inside the solid. The temperature can also be varied using a ramp of depth vs. temperature.
Backing
The backing of a surface is the boundary condition behind the surface. The default value, Air Gap represents an air gap, Exposed will allow the surface to transfer heat into the space behind the wall, and Insulated prevents any heat loss from the back of the material.
Gap Temperature
The temperature of air in the air gap. This option is only available when the Air Gap backing type is selected.
Temperature Ramp
Specifies the surface temperature ramp from ambient, to the specified surface temperature.

7.3.10. Thermal

Emissivity
This parameter controls how the surface radiates heat. Using a value of 1.0 makes this surface a black body. Lower values increase the amount of radiated heat.
Surface Temperature
The surface temperature of this burner. The default temperature is \(300^{\circ}C\) based on the 'typical' surface temperature of a burning surface. The user should verify that this is appropriate for their scenario. A value of TMPA represents ambient temperature.
Temperature Ramp-Up Time
This field allows you to describe how the temperature ramps up from ambient to the specified value.
Convective Heat Flux
The heat flux per unit area at the surface.
Convective Flux Ramp-Up Time
This field alls you to specify how the convective heat flux changes over a specified period of time.
Net Heat Flux
The net heat flux per unit area at the surface.
Net Flux Ramp-Up Time
This field alls you to specify how the net heat flux changes over a specified period of time.

7.4. Surface Color and Appearance

Each surface has an associated Color value that defines the color and opacity (also known as Alpha) of the obstructions using that surface. Each referencing obstruction may optionally override the color/opacity value in the Obstructions Dialog.

A surface may also define an optional Appearance that specifies more advanced attributes, such as textures or lighting details to increase the realism of the model. When an Appearance is defined for a surface, the Appearance may override both the surface’s and the object’s color/opacity settings when the View Mode is set to Realistic or Realistic with Outlines. The exception is when the Appearance’s Diffuse/Albedo option is set to From Object Color. See Appearance Properties for more information.

Some default appearances are provided with PyroSim or you can import your own. The Room Fire example demonstrates using a wood texture for a pine floor and hanging a picture on a wall. Your textures will be automatically displayed in PyroSim.

To define an appearance with a texture and attach it to a Surface:

  1. On the Model menu, click Edit Surfaces.
  2. Either create or edit the surface to which you want to add a texture.
  3. Click on the Appearance box.
  4. Either select a pre-defined appearance or click the Import. button and select your own image file. If using the import option, a new appearance will be created with the specified image as a texture.
  5. The image you selected will be displayed. On the right, set the Width and the Height values to correspond to physical size of the data in the image. For example if the image is of a plank of wood, enter the real-world dimensions of the plank.
  6. Click OK to close the Appearances dialog.

Appearances can also be viewed by going to the Model menu and selecting Edit Appearances. This will show the Appearances Dialog.

pyro ui dialog appearances 2022 1
Figure 37. Appearances dialog

Appearances can be added manually by clicking New under the appearance list. Newly created appearances are added to the database, and can be used across instances of PyroSim.

Appearances can be deleted by clicking Remove under the appearance list. If the appearance exists in the database, all its associated files in the database directory will also be permanently removed.

The following appearance properties can be edited from this dialog:

Diffuse/Albedo
Defines the color of the object.
From Object Color
Uses the color and opacity settings from the objects using this appearance. Selecting this option allows multiple objects to use the same appearance and have the same advanced appearance effects but with different colors. For instance, multiple objects can have the same bumpiness and roughness, but have different colors using one appearance.
Color
Sets the color of all objects using the appearance to a specific value.
Texture Image
Causes all objects using the appearance to display a texture image.
Opacity Value
Defines the opacity of the appearance.
Opacity Texture Image
Defines a texture which controls the opacity of the appearance.
Masking
Specifies whether to enable masking for the appearance. Masking is a feature that treats rendered pixels as either opaque or completely transparent. This can help improve the edges of foliage, text decals, and other opaque, decal-like appearances. When enabled, pixels with opacity values >= 0.5 are drawn as opaque and those with opacity < .5 are not drawn. The following masking options are available:
Automatic
Masking will be enabled automatically if the opacity texture or the alpha channel of the diffuse texture contains both opaque and completely transparent pixels. In most cases, this is a safe option to use.
Enabled
Masking is enabled. This may need to be set if the edges of some objects have halos around them or appear fuzzy when using the Automatic option.
Disabled
Masking is disabled. This may need to be set if an appearance that should be translucent appears opaque when using the Automatic option.

7.4.1. Advanced Appearance Properties

Additional appearance properties can be edited by pressing the Advanced Materials button. This will show the Advanced Materials Dialog for the currently selected material.

pyro ui dialog advancedmaterials 2022 1
Figure 38. Advanced Materials dialog

Most properties in this dialog can be specified as either a constant color/value or as a texture image. For those properties that represent a single value as opposed to a color, such as the Roughness value for PBR workflow, a dropdown next to the texture chooser can be used to pick which color component is the source of the values. This is useful when multiple properties are packed into a single image, but in different color components. For instance, say the PBR parameters, metallic, roughness, and ambient occlusion, are packed into the red, green, and blue color components of a single image. In this case, the same image can be chosen for the metallic, roughness, and ambient occlusion textures. The dropdowns next to each texture would be set to R, G, and B, respectively.

The following appearance properties can be edited from this dialog:

Ambient
Defines the color used to modulate ambient lighting applied to the appearance. This will only be applied when Image Based Lighting is disabled. Selecting the From Diffuse/Albedo option for this channel causes the Diffuse channel value to modulate ambient lighting instead.
Emissive
Defines the amount and color of light emitted by the appearance.
Normal/Bump
Whether to use normal mapping or bump mapping for the appearance.
Normal
The normal map used for the appearance.
Y-Down Normals
Whether or not to invert the y-component of the provided normals. This should be enabled for normal maps designed for DirectX. Check any documentation that comes with the appearance to determine if this applies.
Bump
The bump map used for the appearance.
Bump Scale
The strength of the bump map effect.
Displacement/Height
The parallax displacement or height map to use.
Parallax Scale
The strength of the parallax mapping effect. This unit of this scale is purely visual, but it should be kept low to prevent rendering artifacts.
Invert Parallax
Whether or not to invert the displacement/height map. This should be enabled for height maps.
Workflow
The appearance workflow to use. Provided options are Specular (Basic), Metallic (PBR), and Specular (PBR). Appearances with a Specular map are designed for either the Specular (Basic) or Specular (PBR) workflow. Specular appearances with a Roughness, Glossiness, or Ambient Occlusion map are meant for the Specular (PBR) workflow. Appearances with a Metallic map are designed for the Metallic (PBR) workflow.

Depending on which workflow is selected, the following additional properties are provided:

Specular
Defines the specular reflectance of the appearance. This property is only available in the Specular (Basic) and Specular (PBR) workflows.
Metallic
Defines whether or not the appearance is metallic. This property is only available in the Metallic (PBR) workflow.
Shininess
Defines how shiny the appearance’s surface is. This property is only available in the Specular (Basic) workflow.
Roughness/Glossiness
Determines whether to use roughness or glossiness to define the appearance’s microsurface. This option is only available in the Metallic (PBR) and Specular (PBR) workflows.
Roughness
Defines how rough an appearance’s microsurface is. This is the exact inverse of Glossiness. This option is only available in the Metallic (PBR) and Specular (PBR) workflows.
Glossiness
Defines how glossy an appearance’s microsurface is. This is the exact inverse of Roughness. This option is only available in the Metallic (PBR) and Specular (PBR) workflows.
Ambient Occlusion
Provides additional shading information for the appearance. Note that this property is not related to the scene-wide Ambient Occlusion in Results. This property is only available in the Metallic (PBR) and Specular (PBR) workflows.
Invert Ambient Occlusion
Whether to invert the values read from the ambient occlusion texture (ao_inverted = 1.0 - ao_texture). This is useful when the ambient occlusion texture specifies the amount of occlusion (increasing values lead to more occlusion) rather than amount of visible light (lower values lead to more occlusion).

8. Geometry (Basic Concepts)

PyroSim provides tools to help the user rapidly create and organize model geometry.

Geometry can either be created through dialogs or by using the drafting tools in the 2D or 3D views as discussed in Chapter 9.

There are typically three types of geometry that can be created in PyroSim:

Obstructions
Solid barriers to flow
Holes
Negative regions that carve holes in obstructions
Vents
Patches that define a sub region on an obstruction’s surface that can have a different surface than the rest of the obstruction

The user can also organize the model by creating floors and groups. In addition, the user can assign background images to floors to aid in drafting.

8.1. Obstructions

Obstructions are the fundamental geometric representation in FDS. In FDS, obstructions are rectangular, axis-aligned solids defined by two points. Surface properties are assigned to each face of the obstruction. In PyroSim, obstructions can take any shape, have any number of faces, and have different surfaces applied to each face. At the time of simulation, PyroSim will automatically convert the obstructions to axis-aligned blocks required by FDS as discussed in Section 19.1.8.

FDS defines three types of obstructions:

Solid Obstructions
Obstructions that are at least one grid cell thick in all dimensions. FDS allows heat transfer calculations only on these types of obstructions. In addition, only these obstructions can have vents applied.
Thin Obstructions
Obstructions that have zero thickness in one dimension. These obstructions are mainly used to prevent flow. In addition, only this type of obstruction may be a fan as discussed in Chapter 7.
Immersed Obstructions
Obstructions that do not need to be converted into blocks when written to the FDS input file. These are only enabled if FDS GEOM is enabled. See FDS GEOM for more information.

Conversion of a slab obstruction to FDS blocks shows an example of a polygonal slab drawn in PyroSim (Figure 39) and its conversion to blocks for use in FDS (Figure 40).

Conversion of a slab obstruction to FDS blocks
pyro scrn geom slab
Figure 39. PyroSim slab obstruction
pyro scrn geom slab blocks
Figure 40. Slab converted to FDS blocks

8.1.1. Creating Obstructions

To create a new obstruction, either use an obstruction drawing tool as discussed in Chapter 9 or on the Model menu, click New Obstruction. or New Slab.

pyro ui dialog obst props general 2022 1
Figure 41. Obstruction dialog

8.1.2. General

This tab of the obstruction panel presents all options other than those controlling geometry and surface information. This includes activation events (conditions that can cause the obstruction to be added or removed from the simulation) and miscellaneous options such as color and smoothing.

Description
A human-readable description for the object. This value will not affect the result of the simulation.
Group
Controls the position of the object in PyroSim’s tree view.
Activation
Bind this object to new or existing activation control logic. Activation control logic is used to add or remove the object based on time or measurement conditions. To learn more about activation events, please refer to Chapter 16.
Specify Color
Override the surface color and opacity for this object. See Section 7.4 for more information.
Texture Origin
Properties for where to place the origin point of the texture image.
Relative to Object
When textures are attached to an object, they are tiled based on an origin point. By default, this point is the origin; Relative to Object makes the anchor point the minimum point of the object.
x,y,z
These values offset the texture origin based on the default texture origin. If the origin is relative to the object, leave at zero to use the object’s min point.
Obstruction Properties
Group of properties for the selected obstruction(s).
Thicken
When this option is selected, this object will not be reduced to 2D faces by FDS. This is needed for obstructions to have vents attached.
Record BNDF
When this option is selected, this object is included in boundary data output.
Permit Holes
When this option is selected, holes can modify the geometry of this object.
Allow Vents
Makes it possible for this object to be the backing object for a vent.
Removable
Makes it possible for the object to be removed from the simulation by activation events or the BURN_AWAY surface option.
Display as Outline
Changes the appearance of this object.
Bulk Density
Use this option to override the amount of fuel provided by this object.
Write as Geom

Causes the obstruction to be written as an immersed obstruction (GEOM) record when written to the FDS input file. If this is checked, additional options will be presented when OK is pressed. See Section 8.1.5 for more information about the options.

8.1.3. Geometry

This tab allows you to enter the min and max coordinates of the object. For more elaborate geometry, such as slabs, this tab may contain a table of points and extrusion options. Extrusion is the mechanism PyroSim uses to extend 2-dimensional objects along a vector - creating a 3-dimensional object.

8.1.4. Surfaces

By default, all six sides of an obstruction use the default surface specified in the Simulation Parameters dialog. The default surface for new models is initialized as INERT. The Surfaces tab can be used to specify one surface to be used for all six sides of the object or assign surfaces on a per-face basis. Alternately, surfaces can be "painted" using the Paint Tool as discussed in Section 9.18.

8.1.5. Converting to an Immersed Obstruction

If FDS GEOM is enabled, obstructions must be manually converted into immersed boundary obstructions in order for them to be written as GEOM records in the FDS input file. This can be accomplished in two ways:

  • Double-click the obstruction to edit its properties, check the box next to Write as Geom, and press OK. The object can be converted back by unchecking Write as Geom.
  • Right-click the desired obstructions to convert and select Write as GEOM. The objects can be converted back to regular obstructions by selecting Write as OBST instead.

In either case, if Validate GEOM obstructions is enabled in the preferences dialog (see FDS GEOM), a dialog will appear as shown in Figure 42. This dialog can be used to specify how the selected objects should be validated such that they can be converted to immersed obstructions. FDS requires that an immersed obstruction consists of a closed, manifold set of faces defining a volume. This requires that each face connect to exactly one other face on each edge and that the object does not self-intersect. Imported CAD objects often do not meet this criteria, so PyroSim’s validation process can help check and in many cases fix issues that arise.

pyro ui dialog fdsgeom cleanup
Figure 42. FDS GEOM cleanup dialog

The following validation options are available in the Convert to GEOM dialog:

Conversion Mode
Controls how geometry will be checked and whether to attempt to fix the geometry. The following modes are available:
Quick
Performs a basic test to see if the object appears manifold, but does not check for self-intersection or attempt to clean the object. This option is the fastest and ensures the object’s geometry will not change, but it also cannot fix errors in the object’s geometry.
Clean if non-manifold
Checks if the object appears to be manifold, and if not, performs an object cleanup. This option will only change the object’s geometry if necessary, but it might not correct the geometry of objects that self-intersect.
Force cleanup
Forces the object to be cleaned if possible. This option will likely change the geometry of the object, but it will ensure the object does not self-intersect.
Geometry Clean-up
Specifies additional geometry clean-up options to help ensure an object is manifold:
Remove internal faces
Removes invalid faces that appear to be internal to the object. In certain cases, this option may remove valid portions of the object. Uncheck if this happens.
Remove vestigial non-manifold faces
Removes faces that are not connected to others on at least one edge in an attempt to make the object manifold.

When PyroSim cleans geometry for an immersed obstruction, it will always attempt to apply the following set of fixes:

  • Vertices that are very close within a tolerance are merged together.
  • Vertices that lie on or very near another edge will split the edge.
  • Edges that intersect (or nearly intersect) will be split at the intersection point.
  • Edges that intersect faces will be split at the intersection point.
  • Faces that intersect each other will be split along the intersection line.

8.2. Holes

Holes are used to carve negative spaces out of obstructions. In FDS, holes are similar to obstructions in that they are defined as axis-aligned blocks. Like obstructions in PyroSim, however, holes can be any shape. PyroSim automatically converts them to blocks in the FDS input file.

PyroSim treats holes as first-class objects that can be selected, deleted, and have other operations performed on them like obstructions as discussed in Chapter 11.

In the 3D and 2D views, holes appear as transparent objects. In addition, for display purposes only, PyroSim carves holes out of obstructions as shown in Figure 43. For complex holes or obstructions or large holes that span many obstructions, this process may be slow. In these cases, hole-cutting display can be turned off by going to the View menu and deselecting Cut Holes From Obstructions.

By default, all obstructions allow holes to be cut from them. To prevent an obstruction from allowing holes, edit the properties of the obstruction as discussed in Section 8.1 and deselect Permit Holes.

There are various rules that govern how holes are written to the FDS input file. In general, if the PYROGEOM file is enabled, a hole has control logic, and the hole intersects obstructions, the hole will be pre-subtracted from obstructions before the obstructions are converted into blocks, and the holes will be excluded from the FDS file. If the above conditions do not hold, the holes are converted to blocks similarly to obstructions and are written as HOLE records. For more information, see Section 19.8.

pyro scrn geom slab hole
Figure 43. A slab obstruction with a hole cut from it

8.2.1. Creating Holes

Holes can either be drawn as discussed in Chapter 9 or can be created by opening the Model menu and clicking New Hole.

This will open the Hole Properties dialog as shown in Figure 44.

pyro ui dialog hole props
Figure 44. Hole Properties dialog

Like obstructions, holes can also be activated as discussed in Chapter 16. Holes can also have a color applied.

8.2.2. Holes at Mesh Boundaries

When starting a simulation or exporting an FDS file for some models, the user may receive the following message as shown in Figure 45: "PyroSim has detected a hole touching a mesh boundary, which may cause cutting problems in FDS. Would you like to slightly expand these types of holes?"

pyro ui dialog hole expand
Figure 45. Expand Boundary Holes dialog

FDS currently has an issue where it will not fully cut a hole from an obstruction if both the hole and obstruction touch a mesh boundary at the same location. Instead, FDS leaves a thin obstruction along the mesh boundary. Figure 46 shows a model in PyroSim that can lead this problem. In this model, both the hole and the obstruction touch the bottom of the mesh, and the hole should cut all the way through the mesh. Figure 47 shows this model in FDS where the hole has not been punched all the way through the obstruction.

PyroSim detects potential cases where this might happen and prompts the user with the Expand Boundary Holes dialog. If the user chooses to expand the hole (the Yes option), PyroSim will expand the hole to 1/10 of a mesh cell past the mesh boundary for every side of the hole that touches a mesh boundary. This ensures the hole is properly cut all the way through the obstruction as shown in Figure 48. If the user chooses not to expand these types of holes (the No option), the hole will be written exactly as specified and may lead to the thin obstruction problem.

Cutting holes in mesh boundaries
pyro scrn hole boundary
Figure 46. Hole along a mesh boundary
smv scrn hole improper
Figure 47. Improperly cut hole along mesh boundary in FDS
smv scrn hole proper
Figure 48. Properly cut hole along mesh boundary in FDS

8.3. Vents

Vents have general usage in FDS to describe a 2D rectangular patch on the surface of a solid obstruction or on a mesh boundary as shown in Figure 49. A vent may have a different surface applied to it than the rest of the obstruction to which it is attached.

pyro scrn vents mesh obstruction
Figure 49. Vents on a mesh boundary and obstruction

Taken literally, a vent can be used to model components of the ventilation system in a building, like a diffuser or a return. In these cases, the vent coordinates form a plane on a solid surface forming the boundary of the duct. No holes need to be created through the solid; it is assumed that air is pushed out of or sucked into duct work within the wall.

You can also use vents as a means of applying a particular boundary condition to a rectangular patch on a solid surface. A fire, for example, is usually created by first generating a solid obstruction and then specifying a vent somewhere on one of the faces of the solid with the characteristics of the thermal and combustion properties of the fuel.

There are two reserved surface types that may be applied to a vent: OPEN and MIRROR. For more information on these types, see Chapter 7.

8.3.1. Creating Vents

Vents can either be drawn as discussed in Chapter 9 or be created by opening the Model menu and clicking New Vent.

This will open the New Vent dialog as shown in Figure 50. Like obstructions and holes, vents can also be activated, but only if the surface is not MIRROR or OPEN. With the exception of Fire Spread, the other properties are similar to obstructions. Fire Spread can be specified on vents using a burner surface (Chapter 7). This option simulates a radially spreading fire at the vent. A vent can also be given radial properties. Defining a Center Point and Radius for a vent will cause FDS to define a vent bounded by the vent’s Bounding Box and the circle generated by the point radius combination.

pyro ui dialog vent props
Figure 50. New Vent dialog

8.4. Groups

Groups can be used to hierarchically organize the model. Groups can only be seen in the Navigation View. The "Model" is the base group. Users can nest groups inside other groups, allowing the user to work with thousands of objects in an organized way. When the user performs an action on a group, that action will be propagated to all objects in the group.

8.4.1. Creating Groups

There are two ways to create a group:

  • Right-click the desired parent group from the Navigation View and select New Group. from the context menu. This will create a child group in the selected parent.
  • Click the New Group. button (pyro ui icon group new) from the main tool bar.

Both of these actions will show the Create Group dialog as shown in Figure 51. This dialog allows the user to choose the parent group and name of the new group.

pyro ui dialog group create
Figure 51. Create Group dialog

8.4.2. Adding Objects to Groups

There are several ways to add objects to a group:

In the Change Group dialog shown in Figure 55, select the desired group. If a new group is desired, select New Subgroup and specify a name. If this is chosen, a new group will be created under the specified existing group, and the selected objects will be moved to this new group. * For newly drawn objects, in the 3D or 2D view select the desired group from the group drop-down above the view as shown in Figure 56. All newly drawn objects will be added to this group.

Dragging objects to a new group in the Navigation View.
pyro scrn group change select
Figure 52. Select the objects to move into group.
pyro scrn group change drag drop
Figure 53. Drag and Drop on new group
pyro scrn group change result
Figure 54. Objects placed in new group
pyro ui dialog group change
Figure 55. The Change Group dialog
pyro ui toolbar group select
Figure 56. The Group drop-down

8.5. Floors

Floors are used in PyroSim to quickly apply clipping filters to the scene to only show a portion of the model. They are also used to initialize the properties of drawing tools so that they draw at the proper Z location.

An example of floor clipping is shown in Floor clipping, where Figure 57 shows all floors and Figure 58 shows a single floor.

Floor clipping
pyro scrn floors all 2023 1
Figure 57. All floors
pyro scrn floors clipping 2023 1
Figure 58. Single floor

To define the floors in a model, go to the Navigation View and click the Define Floor Locations button (pyro ui icon floors). This will display the Manage Floors dialog shown in Figure 59.

pyro ui dialog floors manage
Figure 59. Manage Floors dialog

Floors are defined by the following properties:

Elevation
The Z location at which walls and other obstructions will be drawn. This is the location where occupants would walk on that floor.
Slab Thickness
The thickness of the slab for the floor. When the active floor is changed, this value is applied to the slab drawing tools but can be changed in the slab tool’s properties. This value is used such that the top of the slab is at the elevation and the bottom is at the elevation minus slab thickness.
Wall Height
The height of the walls for floors. When the active floor is changed, this value is applied to the wall drawing tools but can be changed in the wall tool’s properties. Walls are drawn from the elevation to the elevation plus wall height.
Clip Color
The color used to display clipped portions of solid geometric objects in the 3D or 2D view. This can be seen in Figure 59.
Background Image
An image display along with the floor that can be traced over.

To add a new floor, click on the Floor Drop-down above the Navigation View as shown in Figure 6 and select <Add New…​>. This will show the New Floor dialog as shown in Figure 60. By default this dialog will assume the user wants a floor above the previous floor using that floor’s slab thickness and wall height properties. In this dialog, if the user enters a new slab thickness, the elevation will be automatically updated so the new floor does not overlap the others unless the user enters a specific value for the elevation. In addition, unless the user enters a specific name, a name will be automatically generated based on the elevation.

Press OK to create the new floor.

pyro ui dialog floors new
Figure 60. New Floor dialog

Press OK again in the Manage Floors dialog to commit the changes.

By default, the model contains one floor at elevation 0.0 m with a slab thickness of .25 m and a wall height of 2.75 m. Using these values leaves a distance of 3.0 m from one floor elevation to another.

Once the floors have been defined, the user can filter the display to show either a single floor or all floors as shown in Figure 6. For most views, the Z clipping range for a particular floor is from the floor elevation minus slab thickness to floor elevation plus wall height. The Z clipping range works differently for the top camera of the 2D view, however. In this view, the clipping is from the elevation of the floor BELOW to the elevation plus wall height of the current floor. This allows the geometry on the floor below to be snapped to in drawing geometry for the current floor. For this to be useful, however, the user may want to use wireframe rendering.

8.5.1. Adding a Floor to Fit Objects

Quickly define floors by selecting some geometry, right-click the selection, and choose the Add Floor to Fit Objects item in the context menu. This will automatically add a floor in the Manage Floors dialog with values based upon the selected geometry.

See Figure 60 for an illustration of the information below.

  • The slab thickness (A) will always be set to 0.0 m.
  • The elevation value (B) is determined by the minimum z-value of the selected piece of geometry.
  • The wall height (C) value is determined by the maximun z-value of the selected piece of geometry.
  • If you have a slab that should be part of this floor but is not, adjust the slab thickness value according to the slab’s dimensions.

8.5.2. Adding a Background Image to a Floor

Each floor can have an associated background image. To add a background image to a floor, go to the Navigation View, select a specific floor, then click the Configure Background Image button (pyro ui icon background image configure). Alternately click the Define Floor Locations button, (pyro ui icon floors), and then in the Background Image column, select the Edit button. This will display the Configure Background Image dialog shown in Figure 61.

You will be guided through the following steps:

  1. Choose a background image file. Valid image formats are bmp, dxf, gif, jpg, png, tga, and tif.
  2. Specify the Anchor Point for the image by clicking on the image. The Anchor Point is a point on the image at which the coordinates are specified in the model coordinate system. The model coordinates of the anchor point are not required to be at the origin.
  3. Set the model scale. Select the Choose Point A button, then select the first point that will be used to define a length. Select the Choose Point B button and select the second point to define a length. Input the Distance between points A and B.
  4. Use the sliding scale to change the image transparency.
  5. If the image needs to be rotated, check the box next to Dist. A to B and enter an angle. This specifies the angle between the positive X axis and the vector from reference point A to B. For instance, if A→B should be aligned with the X axis, enter 0 for the angle or if A→B should be aligned with the positive Y axis, enter 90.
  6. Click OK to close the Configure Background Image dialog.
pyro ui dialog configure background image
Figure 61. Display of background image

Now, in the 3D or 2D views, when the user displays a specific floor, the background image for that floor will be displayed. To turn off the background images, go to the 2D or 3D View, and click the Show Background Images button (pyro ui icon filter background image) next to the floors drop-down.

9. Drawing in PyroSim

While not a full-fledged drafting application, PyroSim does provide useful drawing features, including the following:

  • Snapping to grids, objects, and polar and orthographic constraints
  • Precise keyboard entry
  • 3D and 2D drawing, each having strengths over the other
  • Mesh, Obstruction, Hole and Vent drawing tools
  • Editing tools
  • Transforming tools
  • Surface painting tools for obstructions and vents

9.1. Drawing/Editing Tool Overview

PyroSim provides several drawing and editing tools. These tools are located on the drawing toolbar at the left side of the 3D and 2D Views as shown in Figure 62.

pyro ui toolbar draw edit
Figure 62. Drawing/Editing toolbar

Some of these tools allow a user to create and edit objects such as slabs and walls that are not constrained to the FDS mesh. In these cases, PyroSim will automatically convert the shapes to mesh-based blocks when the FDS input file is created. These blocks can be previewed by clicking the Preview FDS Blocks button (pyro ui icon preview fds blocks) on the filter toolbar above the 3D or 2D View. For information on block conversion, see Section 19.1.8.

9.1.1. Selecting a Tool

To begin drawing or editing with a tool, the user can single-click the tool from the tool bar. Once the tool has finished drawing/editing its object, the last-used navigation tool is automatically selected.

If the user would like to create several objects with the same tool in succession, the desired tool can be pinned by clicking the tool’s button twice.

The button will show a green dot when pinned (pyro ui icon wall pinned).

Every time the same tool button is clicked, the pinned state of that tool will be toggled, so clicking the button again after pinning will disable pinning (pyro ui icon wall unpinned).

At any time, the current drawing/editing tool can be cancelled by pressing ESC on the keyboard. This will also cancel pinning and will revert back to the last-used navigation tool.

9.1.2. Tool Modes

Most drawing/editing tools require at least two points to be specified to complete its action, such as drawing the points for a wall or defining the extents of a box.

These tools can operate in two modes:

Multi-click mode
This mode allows the user to specify each desired point by single-clicking the left mouse button for each point. This mode also facilitates precise keyboard entry.
Click-drag mode
This mode only allows the user to specify two points. When the left mouse button is pressed, the first point is committed. Then the mouse is dragged to the next location while still holding the left mouse button. The button is then released to specify the second point.

9.1.3. Tool Properties

Each tool has a set of properties that can be modified by clicking the Tool Properties (pyro ui icon tool props) button located at the bottom of the toolbar after selecting the desired tool. Options such as elevation, height, surface, and color can all be edited in the Tool Properties dialog.

9.1.4. Quick Actions

In addition to the tool properties, each tool also has additional quick actions. To show these actions, start the desired tool and then right-click in the 2D or 3D View. This opens a context menu with the quick actions. Figure 63 shows an example of the quick action menu for the wall tool.

pyro ui menu context wall
Figure 63. The quick action menu for the wall tool

This menu allows the user to perform actions specific to the tool, such as closing a polygon, picking a surface, setting wall alignment, accessing the tool properties, etc.

9.1.5. Draw Tool Navigation

While using any of the draw tools, the mouse can still be used to zoom or pan the camera as follows:

Zoom
Use the scroll wheel on the mouse to zoom in or out.
Pan
Click+drag the middle mouse button to pan the camera.

9.2. Snapping

Snapping is one way to precisely draw and edit objects. It is the process of finding some element in the scene, such as a vertex or edge close to the cursor, and snapping the cursor to that element like a magnet.

In PyroSim, snapping can be performed against the solution meshes, objects in the model, and orthographic constraints. The 2D View additionally provides a sketch grid and polar (angle) constraints. If a snap point is found, an indicator dot shown in Figure 64 will appear at the snap point.

pyro ui icon mouse snap point dot
Figure 64. Snap point indicator dot

By default, snapping is enabled. It can be disabled by holding ALT on the keyboard while using a drawing/editing tool.

9.2.1. Solution Mesh Snapping

If there are any solution meshes in the model (see Chapter 5), PyroSim can snap to them during drawing and editing. For each mesh that is visible, PyroSim can snap to its boundary edges, boundary faces, grid lines, and the intersections of the grid lines, depending on which mesh display filters are active as discussed in Section 2.3.6.

9.2.2. Sketch Grid Snapping (2D View Only)

PyroSim also provides a user-defined drawing grid, or sketch grid, in the 2D View as shown in Figure 65.

pyro scrn sketch grid
Figure 65. Sketch grid

When a new model is created, the sketch grid is visible and can be snapped to in the 2D view. The default spacing for the divisions is 1 m, but can be changed by going to the View menu and clicking Set Sketch Grid Spacing.

Once the user has created a solution mesh, PyroSim will automatically switch to solution mesh snapping and disable sketch grid snapping. In the 2D View, PyroSim will only snap to the sketch grid or visible solution meshes. To switch which snapping is being used, on the View menu choose Snap to Sketch Grid or Snap to Model Grids. To disable grid snapping altogether, on the View menu choose Disable Grid Snapping.

9.2.3. Object Snapping

All objects displayed in the model can be snapped to when using the drawing/editing tools. There are three basic categories of geometry that can be snapped to on objects: faces, edges, and vertices. Objects can have any combination of types. If there are multiple types close to the cursor, PyroSim will give vertices precedence over edges and edges precedence over faces.

9.2.4. Constraint Snapping

Constraints are dynamic snapping lines that are only visible when the cursor is near them. They appear as infinite dotted lines as shown in Figure 66.

PyroSim contains two types of constraints:

Orthographic
These constraints allow the user to snap to a line parallel to the X, Y, or Z axis from the last relevant point. For instance, when drawing a polygonal slab, after each point specified, there will be three orthographic constraints extending from the last drawn point to aid in drawing the next point.
Polar (2D View Only )
These constraints are similar to orthographic constraints, but they are found at 15 degree increments from the current view’s local X axis.
pyro scrn polar constraint
Figure 66. Polar constraint at an angle of 45 degrees

9.2.5. Constraint Locking

If a constraint is currently being snapped to, that constraint can be locked by holding SHIFT on the keyboard. While holding SHIFT, a second dotted line will extend from the cursor to the locked constraint (the first dotted line). This is useful for lining up objects along a constraint with other objects.

For instance, in Figure 67, a box already exists in the model. A second slab is being drawn such that the third point of the slab lines up with the right side of the first box. This was done as follows:

  1. After the second point for the slab was clicked, the cursor was moved until the X-axis constraint became visible.
  2. SHIFT was pressed and held on the keyboard to lock the constraint.
  3. The cursor was moved to a point on the right edge of the box while still holding SHIFT.
pyro scrn locked constraint
Figure 67. Locked constraint

9.2.6. Asynchronous Snapping

Snapping may be a slow operation in complex models. In these cases, asynchronous snapping is used to keep the cursor and application responsive while the snapping operation takes place in the background. During asynchronous snapping, a wait cursor will appear at the cursor crosshairs while the snapping completes. While this takes place, either keep the cursor still to allow the current snapping operation to complete, or move the cursor to abort the operation and snap to a different location. Asynchronous snapping can be disabled by unchecking File→Preferences→Enable asynchronous snapping. Note that if it is disabled, the cursor may briefly hang and the application will become unresponsive while these long snapping calculations take place.

9.3. Precise Keyboard Entry

While using a drawing/editing tool, a popup window may appear next to the cursor, such as in Figure 68. This window shows the value used to determine the next point or value for the current tool. In this figure the value is the Distance from the previous point along the vector from the previous point to the current cursor location. For other tools, this value may be angle or relative offset, etc.

The value is editable if the status bar at the bottom of the 3D or 2D View indicates it is. For instance, in the figure, the status bar says "<Type to enter Distance or press TAB for alternatives>". If the user starts typing, the popup window will be replaced with an editing window as shown in Figure 69. If the user presses ENTER, the typed value will be committed. If the user presses ESC instead, the keyboard entry will be cancelled.

Pressing TAB cycles through alternate input methods to determine the next value. For instance, pressing TAB with the wall tool allows the user to enter a relative offset from the last point instead of a distance. Pressing TAB a second time allows the user to enter an absolute position for the next point, and pressing TAB a third time will cycle back to the distance input.

pyro scrn tool editor
Figure 68. Tool editor window
pyro scrn precise keyboard entry
Figure 69. Precise keyboard entry

Precise keyboard entry may be easiest for some users when using the multi-click mode of drawing rather than using the click-drag mode. Using multi-click allows both hands to be used to type as opposed to click-drag, which requires one hand to remain on the mouse.

9.4. 2D versus 3D Drawing

There are some key differences between drawing in the 2D and 3D Views. The 2D View is useful when drawing should be restricted to one pre-defined plane. It is also useful for lining up objects along the X, Y, or Z axes. The 3D View is useful when an object such as a vent or solid-phase device needs to be snapped to the face of an obstruction or vent or if the user would like to build objects by stacking them on top of one another.

9.4.1. 2D View Drawing

When drawing in the 2D View, the drawing will always take place in the drawing plane specified in the tool properties, and snapping is only performed in the local X and Y dimensions. The local Z value will remain true to the drawing plane. In addition, if a tool has some sort of height or depth property, the tool will also remain true to that value. Slabs in different planes aligned in the 2D View shows two slabs that have been drawn in the top view (Figure 70), one at Z = 0 m and the other at Z = 1.5 m. While snapping was used to partially align the objects, they both remain in the Z planes specified in their tool properties shown in the rotated view (Figure 71).

Slabs in different planes aligned in the 2D View
pyro scrn slab top view
Figure 70. Top view
pyro scrn slab rotated view
Figure 71. Rotated view

9.4.2. 3D View Drawing

The 3D View uses snapping in all three dimensions, causing tool properties to be interpreted more loosely. The drawing plane and depth properties for a drawn object are context-sensitive in the 3D View. When using tools such as the slab tool, the first clicked point determines the drawing plane. If, on this first click, another object is snapped to, the drawing plane is set at the Z location of that snap point. The tool properties' drawing plane is only used if nothing is snapped to on the first click.

This 3D snapping feature of the 3D View is useful for drawing vents on obstructions and attaching solid-phase devices to obstructions as shown in Figure 72.

pyro scrn attached wall
Figure 72. Vent and devices attached to a wall

The 3D snapping feature is also useful for stacking objects, as shown in Figure 73. In this figure, the drawing plane was never changed. All the objects were stacked on top of each other using snapping.

pyro scrn objects stacked
Figure 73. Objects stacked in the 3D View

9.4.3. Holes in the 3D View

While stacking can be useful for obstructions, a user must be more careful when drawing holes in the 3D View. For instance, with the slab hole tool and block hole tool, the user will need to change the extrusion direction to properly direct the hole into the obstruction.

For instance, if the user draws a slab obstruction in the 3D View and then draws a slab hole while snapping to the obstruction, the hole will be stacked on top of the obstruction without cutting a hole as shown in Figure 74.

To draw this properly, the user would need to change the extrusion direction when drawing the hole by pressing CTRL on the keyboard or changing it through the tool’s right-click menu. This will result in a proper hole as shown in Figure 75.

This is not a problem in the 2D View since it always uses the drawing plane set in the tool properties instead of stacking the objects.

Improper vs proper hole drawing in the 3D view
pyro scrn hole improper
Figure 74. Improperly drawn hole
pyro scrn hole proper
Figure 75. Properly drawn hole

9.4.4. Projected Drawing in the 3D View

Once the drawing plane for a tool has been established by the first click, the tool can still determine the next points by snapping to objects in another plane. In this case, the snapped points will be projected to the drawing plane for the current tool. A dotted line will show how the snapped point was projected to the plane. For instance, Figure 76 shows a new slab being drawn in the Z = 1.5 plane. A slab below the new slab is being snapped to determine the new slab’s points.

pyro scrn snap other plane
Figure 76. Snapping to another plane in the 3D View

9.5. Obstruction Drawing Tools

There are four tools that can draw obstructions, for more information on obstructions, see Section 8.1.

pyro ui icon slab Slab Obstruction Tool: Used to draw the slab for a floor.

pyro ui icon wall Wall Obstruction Tool: Used to draw a wall.

pyro ui icon block Block Obstruction Tool: Used to fill grid cells with obstructions.

pyro ui icon room Room Tool: Used to draw a rectangular room

For all the obstruction tools, the tool properties dialog (pyro ui icon tool props) will appear similar to that in Figure 77. The only section of the dialog that will change between these tools is the geometry, such as Z Location and Thickness. All other properties, including name, surface, color, and obstruction flags appear in all obstruction dialogs. These parameters control the properties that will be applied to the next drawn obstruction.

pyro ui dialog tool props
Figure 77. Tool properties dialog for obstructions

The surface and color of the next obstruction can also be set via the right-click menu for the tool.

9.5.1. Slab Obstruction Tool

A slab is an extruded polygonal object as shown in Figure 78 that can be used to draw the slab for a floor in a building.

pyro scrn slab polygon
Figure 78. A polygonal slab obstruction

The slab obstruction tool pyro ui icon slab adds two additional properties to the tool dialog for obstructions:

[X,Y, or Z] Location
The drawing plane for the slab. When the active floor is changed, this is set to the floor’s elevation minus the floor’s slab thickness.
Thickness
The thickness of the slab. When the active floor is changed, this is set to the floor’s slab thickness. If this value is positive, the slab is extruded toward the camera. If it is negative the slab is extruded away from the camera. The extrusion direction can be toggled by pressing CTRL on the keyboard or from the tool’s right-click menu.

To draw the polygon vertices of the slab obstruction, perform the following:

  1. Select the Slab Obstruction Tool (pyro ui icon slab) from the drawing toolbar.
  2. Define the slab points using one of the two tool modes:
    • Use Click-drag mode to draw an axis-aligned box between two points.
    • Use Multi-click mode to click several points defining the polygonal boundary for the slab.

9.5.2. Wall Obstruction Tool

The wall obstruction tool (pyro ui icon wall) can be used to draw multi-segmented walls as shown in Figure 79. In this figure, there is only one wall. The user specifies a path along the floor from which the wall is extruded up. The wall can be aligned to the left, right, or center of the drawn path.

pyro scrn walls
Figure 79. A wall obstruction

The wall obstruction tool adds three properties to the tool properties dialog:

Z Location
The drawing plane for the bottom of the wall. When the active floor is changed, this is set to the floor’s elevation property.
Height
The height of the wall as a positive number. When the active floor is changed, this is set to the floor’s wall height property.
Wall Thickness
The thickness of the wall.

The alignment of the wall can be controlled through the right-click menu for the tool or can be cycled by pressing the CTRL key on the keyboard. The alignment options are Left (Figure 80), Center (Figure 81) and Right (Figure 82) as shown in Wall alignment options.

Wall alignment options
pyro scrn wall align left
Figure 80. Left-aligned
pyro scrn wall align center
Figure 81. Center-aligned
pyro scrn wall align right
Figure 82. Right-aligned

To draw a wall, perform the following steps:

  1. Select the Wall Obstruction Tool (pyro ui icon wall) from the drawing toolbar.
  2. Define the wall points using one of the two tool modes:
    • Use Click-drag mode to draw a single wall segment.
    • Use Multi-click mode to click several points, with wall segments between each pair of points.

If the first clicked point is clicked again after drawing at least two segments or Close is chosen from the right-click menu, the tool will draw one last segment from the last clicked point to the first point and finish. Alternately, the wall can be ended at the last clicked point by choosing Finish from the right-click menu.

9.5.3. Block Obstruction Tool

The Block Obstruction Tool (pyro ui icon block) can be used to quickly fill grid cells with blocks as shown in Figure 83 or place a block with a single click.

pyro scrn blocks
Figure 83. Blocks drawn with the block obstruction tool

This tool adds the following properties to the tool properties dialog:

[X,Y, or Z] Location
The drawing plane. When the active floor is changed, this is set to the floor’s elevation.
Height
The distance the block is extruded toward or away from the camera. When the active floor is changed, this is set to the floor’s wall height property.
Size
The size of the block when there is no snap grid under the cursor.

In addition, the extrusion direction for the block can be toggled by pressing CTRL on the keyboard or through the right-click menu for the tool.

To create blocks using this tool, perform the following:

  1. Select the Block Obstruction Tool (pyro ui icon block) from the drawing toolbar.
  2. If a solution mesh or sketch grid is visible, either click the desired cell to fill or click-drag the mouse across the grid to "paint" blocks. The depth of the cells will not necessarily be the depth of a cell in the filled mesh, however. The depth is strictly controlled by the height property for the tool.

9.5.4. Room Tool

The Room Tool (pyro ui icon room) can be used to draw a rectangular room using one closed wall as shown in Figure 84.

pyro scrn room
Figure 84. A room drawn with the room tool

The room tool contains the same properties as the wall obstruction tool.

To draw a room with the room tool perform the following:

  1. Select the Room Tool (pyro ui icon room) from the drawing toolbar.
  2. Use Click-drag mode or Multi-click mode to draw two points defining the extents of the room.

9.6. Hole Drawing Tools

There are three tools that can draw holes, for more information on holes, see Section 8.2.

pyro ui icon slab hole Slab Hole Tool: Used to draw a hole in a floor slab. pyro ui icon wall hole Wall Hole Tool: Used to draw an opening in a wall, such as for a doorway or window. pyro ui icon block hole Block Hole Tool: Used to fill grid cells with holes.

All these tools work the same as their obstruction counterparts, but they do not have the properties specific to obstructions, such as the surface or obstruction flags.

9.7. Vent Tool

There is only one tool for drawing vents (for more information on vents, see Section 8.3). PyroSim only allows vents in an X, Y, or Z plane. Vents cannot currently be drawn off-axis like walls can.

Vents also must be attached to solid obstructions (at least one grid cell thick). This is easily accomplished by drawing the vent in the 3D View (see Section 9.4).

To draw a vent, perform the following:

  1. Select the Vent Tool (pyro ui icon vent) from the drawing toolbar.
  2. Use Click-drag Mode or Multi-click Mode to specify two points that define the extents of the vent.
    • When this is performed in the 2D View, the vent will be drawn in the plane specified in the tool properties and is view-dependent (in the top view, the vent will be drawn in the XY plane, in the front view, the vent will be drawn in the XZ plane, etc.).
    • If the vent is drawn in the 3D View, the vent will be drawn in the plane containing the two specified points. If the two points are not in an axis-aligned plane, an axis-aligned plane will be chosen containing the first point while maximizing the area of the vent.

9.8. Solution Mesh Tool

Solution meshes can also be drawn in PyroSim with the Solution Mesh Tool (pyro ui icon mesh) as shown in Figure 85.

pyro scrn mesh drawn
Figure 85. A solution mesh drawn with the mesh tool

The solution mesh tool has the following tool properties:

[X,Y, or Z] Location
The drawing plane containing the bottom of the mesh. When the active floor is changed, this is set to the floor’s elevation minus the floor’s slab thickness.
Height
The depth of the mesh in the current view. When the active floor is changed, this is set to the floor’s wall height plus the floor’s slab thickness.
Cells
Define how cells are generated as the mesh is being drawn. This can be one of two values: fixed size, or fixed count:
Fixed Size
Each cell will have a fixed size. While drawing the mesh, the mesh boundary will snap to integer multiples of the cell size. Two types of drawn meshes (A) shows a mesh drawn with fixed cell sizes of .25 x .25 x .25 m. As can be seen, the grid has been snapped away from the cursor the nearest multiple of .25 m.
Fixed Count
Each dimension of the drawn mesh will be evenly divided to have the specified number of cells. Two types of drawn meshes (B) shows a mesh drawn with fixed counts of 10 x 10 x 10. As can be seen, the cells are stretched to match the drawn mesh boundary.
Two types of drawn meshes
pyro scrn mesh fixed size
Figure 86. Fixed cell size
pyro scrn mesh fixed count
Figure 87. Fixed cell count

To draw a solution mesh, perform the following:

  1. Select the Solution Mesh Tool (pyro ui icon mesh).
  2. Use the Click-drag Mode or Multi-click Mode to draw two points defining the extents of the mesh.

9.9. Mesh Splitter Tool

Solution meshes can be easily split into two or more sub-meshes by using the Mesh Splitter Tool (pyro ui icon mesh split).

To split one or more meshes, perform the following:

  1. Select the desired meshes to split either in the navigation view or by holding g on the keyboard while selecting a grid in the 2D or 3D view.
  2. Select the Mesh Splitter Tool (pyro ui icon mesh split.
  3. Move the cursor over one of the meshes. A preview slice will show where the meshes will be split as shown in Figure 88. By default the tool will choose the split axis based on the nearest boundary edge of a selected mesh. The split axis can be explicitly set through the right-click menu, in the tool properties dialog, by click-dragging the left mouse button, or by pressing CTRL on the keyboard to cycle through the options.
  4. Once the desired split location can be seen, left-click the mouse to set the location.
  5. Repeat steps 3) and 4) to set more split locations. The meshes can be split along any number of axes in a single operation.
  6. To perform the split, right-click in the 2D or 3D view and select Finish.
  7. PyroSim will create a new mesh group for each selected mesh and place the resulting meshes in the appropriate groups.
pyro scrn mesh splitting
Figure 88. Meshes being split by the mesh splitter tool

9.10. Device Tool

PyroSim allows point devices to be drawn with the Device Tool (pyro ui icon device), for more information on devices, Chapter 15.

The device tool has the following properties:

[X,Y, or Z] Location
The drawing plane on which to place the device. When the active floor is changed, this is set to the floor’s elevation plus the floor’s wall height * 0.5.
Device Type
The type of point device to draw. This can include sprinklers, smoke detectors, gas-phase devices, solid-phase devices, etc. Changing the device type also changes the other properties editable in the properties dialog.

To draw a device, perform the following:

  1. Select the Device Tool (pyro ui icon device).
  2. Click on the desired location.

If it is a solid-phase device, the device’s location will snap directly to the point under the cursor if one is found. This makes it trivial to attach a solid-phase device to an obstruction. If the device is a gas-phase device, however, the device’s location will be projected to the plane as set in the device tool properties as shown in Figure 89. This makes it easy to draw devices at a specific height above the floor. This behavior can be overridden for either type of device by selecting Lock Z to [V] (where V is the drawing plane) or Lock Z to Snap Location in the tool’s right-click menu. Lock Z to [V] is the automatic behavior for gas-phase devices and Lock Z to Snap Location is the automatic behavior for solid-phase devices.

pyro scrn device gas
Figure 89. A gas-phase device being drawn in the 3D View

9.11. Planar Slice Tool

Planar slices, as discussed in Section 18.2 can be drawn with the planar slice tool (pyro ui icon slice 2d).

To do so, perform the following:

  1. Select the Planar Slice Tool (pyro ui icon slice 2d).
  2. In the tool properties dialog, select the desired quantity to record on the slice, the desired plane on which to draw the slice, and whether to include flow vectors.
  3. Move the cursor to the desired slice location. A preview slice will be displayed as shown in Figure 90.

The slice plane can be changed through the right-click menu, by click-dragging the left mouse button, or by pressing CTRL on the keyboard to cycle through the options.

  1. Left-click the mouse to create the slice.
pyro scrn slice 2d
Figure 90. Drawing a slice with the planar slice tool

9.12. HVAC Node Tool

HVAC nodes as discussed in Section 17.2, can be drawn with the HVAC Node Tool (pyro ui icon hvac node).

To do so, perform the following:

  1. Select the HVAC Node Tool (pyro ui icon hvac node).
  2. In the tool properties dialog, select the desired height of the node.
  3. Move the cursor to the desired slice location.
  4. Left-click the mouse to create the node.
pyro scrn hvac nodes
Figure 91. Using the HVAC Node drawing tool

9.13. HVAC Duct Tool

PyroSim allows HVAC ducts to be drawn with the HVAC Duct Tool (pyro ui icon hvac duct).

To do so, perform the following:

  1. Select the HVAC Duct Tool (pyro ui icon hvac duct).
  2. Click to select the first HVAC Node. It is best to select the nodes in the direction air will flow through them.
  3. After selecting the first node, a green line will appear from the node to the cursor, representing the duct. Complete the duct by selecting the second node.
pyro scrn hvac duct
Figure 92. Drawing an HVAC Duct

9.14. Other Box Drawing Tools

PyroSim can also be used to draw:

pyro ui icon init region Init Regions (Section 19.1.4) with the Init Region Tool.

pyro ui icon particle cloud Particle Clouds (Section 14.6) with the Particle Cloud Tool.

pyro ui icon slice 3d 3D Slices (Section 18.3) with the 3D Slices tool.

These tools draw axis-aligned boxes like the Solution Mesh Tool, so they behave similarly. They all have the following drawing properties:

[X,Y, or Z] Location
The drawing plane for the tool. When the active floor is changed, this is set to the floor’s elevation.
Height
The depth of the drawn box in the current view. When the active floor is changed, this is set to the floor’s wall height.

To draw one of these objects, perform the following:

  1. Select the appropriate tool.
  2. Use Click-drag Mode or Multi-click Mode to draw two points defining the extents of the object’s box.

9.15. Other Point Drawing Tools

pyro ui icon particle single Single Particles (Chapter 14) with the Particles at a Point Tool.

pyro ui icon zone Pressure Zones with the with the Zone Tool.

These tools draw points like the Device Tool, so the they behave similarly. They all have the following drawing property:

[X,Y, or Z] Location
The drawing plane for the tool. When the active floor is changed, this is set to the floor’s elevation.

To draw one of these objects, perform the following:

  1. Select the appropriate tool.
  2. Click on the desired location.

9.16. Editing Objects

Nearly all geometric objects can also be graphically edited in the 3D or 2D View with the Select/Manipulate Tool (pyro ui icon select).

Editing is performed through an object’s editing handles. Handles appear on an object either as a blue dot as shown in Figure 93 or a face with a different color. The dots indicate a point that can be moved in either two or three dimensions. A discolored face indicates that a face can be moved or extruded along a line.

pyro scrn edit handles
Figure 93. Editing handles on an object

To graphically edit an object, perform the following:

  1. Select the Select/Manipulate Tool (pyro ui icon select) from the navigation toolbar.
  2. Select one object to edit If the object can be graphically edited, blue editing handles will appear.
  1. Hover the cursor over the desired handle. If the handle is a dot, it will turn yellow. If the handle is a face, the entire face will turn yellow as shown in Figure 94.
  2. Move the handle using Click-drag Mode or Multi-click Mode to specify two points defining the movement vector.
pyro scrn edit faces
Figure 94. A highlighted face handle

9.17. Transforming Objects

PyroSim provides a variety of tools to transform geometry objects. With the transform tools, users can move, rotate, and mirror objects.

9.17.1. Copy Mode

Each tool has an alternate mode to copy the source objects with the transform. To toggle copy mode on/off, press the CTRL key on the keyboard. Alternately, choose Copy Mode or Move Mode from the tool’s right-click menu. When using copy mode, the selected objects are copied and the copies are transformed.

9.17.2. Move Tool

This tool allows the user to move selected objects to a new location as shown in Figure 95, or to create and move a copy of the selected objects.

To use this tool, perform the following:

  1. Select the desired objects to move from any of the views.
  2. Select the Move Tool (pyro ui icon move copy) from the drawing toolbar.
  3. Use Click-drag Mode or Multi-click Mode to draw two points defining the movement vector.
pyro scrn move
Figure 95. Moving an object using the Move Tool

9.17.3. Rotate Tool

This tool allows the user to rotate selected objects as shown in Rotating an object with the Rotate Tool, or to create and rotate a copy of the selected objects.

To use this tool, perform the following:

  1. Select the desired objects to rotate from any of the views.
  2. Select the Rotate Tool (pyro ui icon rotate) from the drawing toolbar.
  3. Single-click to specify the rotation center (Figure 96).
  4. Single-click another point to define a reference vector from the first point to the second point (Figure 97). This reference vector is what the angle is based from.
  5. Single-click a third point to define the angle vector from the first point to the third point (Figure 98).

The selected objects will be rotated by the angle between the reference and angle vectors.

The following defines the axis about which objects are rotated for each view:

  • 3D View: Z axis
  • Top View: Z axis
  • Front View: -Y axis
  • Side View: -X axis
Rotating an object with the Rotate Tool
pyro scrn rotate center
Figure 96. Click rotation center
pyro scrn rotate reference
Figure 97. Define reference vector
pyro scrn rotate angle
Figure 98. Define angle vector

9.17.4. Mirror Tool

The mirror tool allows selected objects to be mirrored across a plane as shown in Mirroring an object using the Mirror Tool, or to create a mirrored copy of the selected objects.

To use the mirror tool, perform the following:

  1. Select the desired objects to mirror from any view.
  2. Select the Mirror Tool (pyro ui icon mirror) from the drawing toolbar.
  3. Use Click-drag Mode or Multi-click Mode to define two points that create a plane about which the selected objects are mirrored (Figure 100).
Mirroring an object using the Mirror Tool
pyro scrn mirror point 1
Figure 99. Define first point
pyro scrn mirror point 2
Figure 100. Define second point and mirror line

9.18. Painting Obstructions and Vents

PyroSim provides tools to paint obstructions and vents with a surface and/or color. A user can also use a picking tool to pick the surface and/or color used to draw new obstructions or vents or to perform painting.

9.18.1. Paint Tool

A user can use the Paint Tool (pyro ui icon paint) to paint the faces of obstructions and vents a specific surface and/or color.

The Paint Tool has the following tool properties:

Apply Surface
Specifies whether to paint faces with surfaces and which surface to use.
Apply Color
Specifies whether to paint faces with a specific color and which color to use.

These painting options can also be cycled by pressing CTRL on the keyboard or through the tool’s right-click menu. The right-click menu also allows quick selection of a surface in the model or recently-used color.

To paint faces with the paint tool, perform the following:

  1. Select the Paint Tool (pyro ui icon paint) from the drawing toolbar.
  2. Hover the cursor over the desired face to paint. If the face can be painted with the current surface/color, the face with highlight yellow as shown in Figure 101.
  3. Either single-click the face to paint only that face, or click-drag the left mouse button to paint all faces the cursor moves over. Hold SHIFT on the keyboard while painting to paint all the faces of the object rather than just one face.
pyro scrn paint
Figure 101. An obstruction face highlighted by the paint tool

9.18.2. Pick Tool

The Pick Tool (pyro ui icon pick) can be used to pick the next color/surface to use when drawing or painting obstructions and vents.

The Pick Tool has the following tool properties:

Pick Surface
Whether to pick the surface under the cursor
Pick Color
Whether to pick the color under the cursor.

The pick options can also be toggled by pressing CTRL on the keyboard or from the tool’s right-click menu.

To use the Pick Tool, perform the following:

  1. Select the Pick Tool (pyro ui icon pick) from the drawing toolbar.
  2. Hover the cursor over the object from which the color/surface should be chosen. A popup window will show what that color/surface is.
  3. Single-click the left mouse button to pick.

The chosen color/surface will then be applied to the surface or color properties for the obstruction, vent, mesh, and paint tools.

9.19. Measuring Length/Distance

PyroSim provides a Measure Tool (pyro ui icon measure) to measure distances in the model.

To measure a distance, perform the following:

  1. Select the Measure Tool (pyro ui icon measure).
  2. Either click several points to measure the total distance along a path or click-drag to measure a single distance between two points. As the cursor is moved, the current cursor location, total path length, and length of the most recent segment are displayed as shown in Figure 102.
  3. To copy the distance, right-click and from the menu, choose Copy total distance to clipboard. This will make the total distance measurement available on the clipboard so it can be pasted into a field or any other paste location. The text that is copied to the clipboard includes both the full precision value and the current display length unit. For example, it might copy "3.2808399 ft" if working in the English unit system.
pyro scrn measure info
Figure 102. Information displayed by the measure tool

10. Creating Complex Geometry

This chapter provides guidance on using the geometry tools available in PyroSim to create several geometric shapes that often appear in building models. The ability to sketch in different planes, copy, replicate, drag, scale, and rotate objects can greatly simplify the tasks of geometry creation.

10.1. Curved Walls

While PyroSim’s tools do not explicitly produce curved walls, they can approximate them using any of the following techniques:

  • Draw the wall using several straight wall segments.
  • Draw the wall using individual blocks.
  • Rotate a single object to produce the desired arc.

In all of the following examples, we will use a background image as a pattern to draw against. While this is not required, it makes creating curved surfaces much easier and one of the strengths of PyroSim is that it allows you to sketch geometry directly on top of building design images. The background image we will be using is shown in Figure 103.

pyro scrn background curved wall
Figure 103. Background image used for all curved wall examples

For simplicity, we will assume that horizontal distance across the entire image is 50 feet, and we will place the origin of the model at the lower-left corner of the room shown in the image. The brightness of the image will be set to 50%. The Configure Background Image dialog shown in Figure 104 illustrates these settings.

pyro scrn background curved wall settings
Figure 104. Background image settings for curved wall examples

10.1.1. Using the Wall Tool

To create a curved wall section from wall segments, you can follow these steps:

  1. Click the 2D View tab, and select the Draw Wall Obstruction (pyro ui icon wall) tool.
  2. Turn off grid snapping. In the View menu, click Disable Grid Snapping.
  3. Position the cursor at the beginning of the curve where you want to place the first wall segment.
  4. Use Multi-click Mode to click several points along the curve. More points will create a smoother curve.
  5. Right-click in the 2D View and select Finish to finish drawing the wall.

This is the fastest way to create smooth curves in PyroSim. PyroSim will convert the curved walls to blocks before running the FDS simulation. While smaller segments will make the wall look better in PyroSim, placement of obstructions generated for FDS depends on the resolution of your mesh. A curved wall drawn with three different segment lengths created with this technique are shown below.

A curved wall drawn with three different segment lengths
pyro scrn wall segments
Figure 105. Curved wall segments
pyro scrn wall segments shorter
Figure 106. Shorter segments
pyro scrn wall segments shortest
Figure 107. Shortest segments

Using extremely short line segments will probably not be of any benefit unless you also use very small mesh cells.

10.1.2. Using the Block Tool

To create a curved wall section from blocks, you can follow these steps:

  1. Create a mesh. This example uses a 50.0 ft x 50.0 ft mesh with 1 ft mesh cells.
  2. Click the 2D View tab, and select the Block Obstruction Tool (pyro ui icon block).
  3. Turn grid snapping on. If snapping is off: in the View menu, click Snap to Model Grid.
  4. Click each cell along the curved wall to place the necessary blocks.

This technique forces you to convert the curve to blocks manually, but the advantage is you know exactly what geometry will be generated for FDS. If you have a high resolution mesh, it may be useful to drag the mouse and "paint" the curve rather than clicking individual blocks. The example curved wall is shown in Figure 108.

pyro scrn wall blocks
Figure 108. A curved wall drawn using individual blocks

10.1.3. Rotating an Object

To create curved objects using the rotation technique, you must place an initial segment, then perform a rotate operation about the center point of your desired curve.

This process is illustrated in the following steps:

  1. Click the 2D View tab, and select the Wall Obstruction Tool (pyro ui icon wall).
  2. Turn off grid snapping. If snapping is on: in the View menu, click Disable Grid Snapping.
  3. Create an initial wall segment somewhere on the curve.
  4. In the Model menu, click Rotate.
  5. Select the Copy mode.
  6. Specify the necessary parameters for the rotation operation. In this example, the Number of Copies is 15, the Angle is 6.0 degrees, and the Base Point is: x=32.0 feet, y=16.5 feet.
  7. Click Preview to verify that the settings are correct, then click OK.

The curve for this example is shown in Figure 109.

pyro scrn wall segments rotated
Figure 109. A curved wall drawn using the rotate technique

If we would have created 60 copies instead of 15 this procedure would have created a cylinder. While complicated, the rotation approach is the most effective at creating complex symmetrical geometry.

10.2. Trusses

Trusses can be created by drawing a single truss out of slab obstructions and slab holes, then replicating that truss as many times as needed as shown in Figure 110.

The following steps show how to create the trusses for an example roof.

  1. Click the 2D View tab
  2. On the toolbar, click the Reset to Front option.

    pyro ui toolbar views
  3. On the drawing toolbar, select the Slab Obstruction Tool (pyro ui icon slab).
  4. On the drawing toolbar, click the Tool Properties (pyro ui icon tool props) button, and set the thickness to the desired thickness of the truss.
  5. Draw a triangle representing the outer boundary of the truss.
  6. On the toolbar, select the Slab Hole Tool (pyro ui icon slab hole) .
  7. Draw a triangular hole in the left half of the truss.
  8. Select the newly created hole.
  9. Select the Mirror Tool (pyro ui icon mirror).
  10. Right click in the 2D View and select Copy Mode.
  11. Draw a line from the top vertex of the outer obstruction to the center of the bottom to define the mirror plane.
  12. Select the entire truss, including the outer obstruction and two holes.
  13. Open the Model menu, and click Move.
  14. In the Move dialog: select Copy, set Number of Copies to 4, set Offset to be 2.0 meters along the Y axis, and click OK.
pyro scrn trusses
Figure 110. Trusses created using PyroSim tools

10.3. Roofs

You can quickly add a roof to the model using the Slab Obstruction Tool (pyro ui icon slab).

The following steps show how to add a roof to the previous truss example.

  1. Click the 2D View tab.
  2. On the view toolbar, Reset to Front.

    pyro ui toolbar views
  3. On the drawing toolbar, select the Slab Obstruction Tool (pyro ui icon slab).
  4. Draw the profile of the roof as one polygon so that it touches the trusses. Click the top point, then bottom point, and the top point once more to create the slab.
  5. On the view toolbar, Reset to Top.
  6. On the navigation toolbar, select the Select/Manipulate Tool pyro ui icon select.
  7. Click to drag the leading edge of the slab to the opposite truss.
  8. Single-click to end manipulation.
  9. Repeat steps 7-9 for the back edge of the roof slab to line it up with the back of the last truss.

The resulting roof section is shown in Figure 111.

pyro scrn slab roof
Figure 111. A roof created with the slab obstruction tool

The extruded polygon tool can be used to create obstructions with any number of boundary points (triangles, quads, etc).

10.4. Stairs

Users can create simple stairways by placing the initial stair, then using the move operation. This section will present a simple example to illustrate the approach.

We will create a 10 step stairway. Each step will have a 7 inch rise (0.58 feet), and a 10 inch (0.83 feet) run. The stairway itself will be 24 inches (2.0 feet) wide. To keep things as simple as possible, we will construct the stairway in an empty model.

  1. On the Model menu, click New Obstruction.
  2. In the Obstruction Properties dialog, specify the min point as (0.0, 0.0, 0.0) and the max point as (2.0, 0.83, 0.58).
  3. On the Model menu, click Move.
  4. In the Move dialog, select Copy, set the Number of Copies to 9, set the Offset to (0.0, 0.83, 0.58), and click OK.

The stairway generated in this example is shown in Figure 112.

pyro scrn stairs
Figure 112. A stairway created with the copy tool

11. Working with Geometry Objects

11.1. Selection

PyroSim relies heavily on the idea of selected objects. For almost all operations, the user first selects an object(s) and then changes the selected object(s). The Selection Tool (pyro ui icon select) is used to select objects.

  • A left mouse click on an object in any view will select it.
  • Holding Ctrl while clicking will toggle the item in the selection, adding previously unselected items and removing previously selected items.
  • Holding Alt while clicking an object in the 3D View or the 2D View will select the entire group that the object belongs to.
  • In the Navigation View, a range of objects can be selected by clicking the first object, then holding Shift while clicking the last object.
  • In the 2D and 3D Views, multiple objects can be selected with the Selection Tool and a click-drag motion to define a selection box.

Once objects have been selected, the user can modify the object using the menus.

Selection can be made in any of the views using the Selection tool. Multiple objects can be selected using the Ctrl key or click and drag to define a box. In the Navigation View, the Shift key can be used to select a consecutive list of objects.

11.2. Context Menus

A right-click on a selection displays a context menu. This menu includes the most common options for working with the object. The user may also right-click on individual objects for immediate display of the context menu.

11.3. Undo/Redo

All geometric changes to the model can be undone and redone using the Undo (pyro ui icon undo) and Redo (pyro ui icon redo) buttons, as well as Ctrl+Z and Ctrl+Y, respectively.

11.4. Copy/Paste

Select an object to copy, then either use Ctrl+C or Edit→Copy to copy. Alternately, right-click on an object to display the context menu with Copy.

Either use Ctrl+V or Edit→Paste to paste a copy of the object. Alternately, right-click on an object to display the context menu with Paste.

11.4.1. Copy/Paste from Other Models

By running two instances of PyroSim, you can copy objects from one model and paste them into a second model. If the copied objects rely on other properties, such as surfaces, that are not included in the second model, these properties will be pasted into the model when the objects are pasted.

11.4.2. Copy/Paste from Text Files

Copy/paste can also be performed to and from text files. For example the user can select an object in PyroSim, open a text file, and paste the object. The text FDS representations of the object and dependent properties will be pasted. Alternatively, the user can copy the text from an FDS file and paste into PyroSim (the 3D View, 2D View, or Navigation View). The object will be added to the PyroSim model. An error message will be received if the pasted object depends on data that is not available in the PyroSim model. The user will then need to paste that information (such as surface properties) first before pasting the geometric object.

11.5. Double-Click to Edit

Double-clicking on an object opens the appropriate dialog for editing the object properties.

11.6. Move Dialog

The Move dialog can be used to both move an object and to create copies of an object, each offset in space.

To move an object in this manner, perform the following:

  1. Right click the object(s) to move.
  2. From the right-click menu, select Move.
  3. This will show the Move dialog, Figure 113.

The Mode selects either the option to move only the selected object or to create copies of the object and move them. The Offset parameters indicate the increment to move or offset the copies.

To preview the changes without applying them, click Preview. To apply the changes and close the dialog, click OK. To cancel the changes instead, click Cancel.

pyro ui dialog translate
Figure 113. The move dialog

11.7. Mirror Dialog

The Mirror dialog can be used to mirror an object about a plane or planes or create a mirrored copy of an object. To mirror an object in this manner, perform the following:

  1. Right click the object(s) to mirror.
  2. From the right-click menu, select Mirror*.
  3. This will show the Mirror dialog as in Figure 114.

The Mode selects either the option to mirror only the selected object or to create a mirrored copy of the object. The Mirror Plane(s) define planes normal to the X, Y, and Z axes about which the object will be mirrored. The Use Center button can be used to fill the Mirror Plane data with the center coordinates of the selected objects.

To preview the changes without applying them, click Preview. To apply the changes and close the dialog, click OK. To cancel the changes instead, click Cancel.

pyro ui dialog mirror
Figure 114. The mirror dialog

11.8. Scale Dialog

The Scale dialog can be used to change the size of an object or create scaled copies of an object. To scale an object, perform the following:

  1. Right click the object(s) to scale.
  2. From the right-click menu, select Scale*.
  3. This will show the Scale dialog as in Figure 115.

The Mode selects either the option to scale only the selected object or to create multiple scaled copies of the object. The Scale values define the scale factors in the X, Y, and Z directions. The Base Point defines the point about which the scaling will be performed. The Use Center button can be used to fill the Base Point data with the center coordinates of the selected objects.

To preview the changes without applying them, click Preview. To apply the changes and close the dialog, click OK. To cancel the changes instead, click Cancel.

pyro ui dialog scale
Figure 115. The scale dialog being used to scale an object

11.9. Rotate Dialog

The Rotate dialog can be used to rotate an object or to create rotated copies of an object. To rotate an object, perform the following:

  1. Right click the object(s) to rotate.
  2. From the right-click menu, select Rotate
  3. This will show the Rotate dialog as in Figure 116.

The Mode selects either the option to rotate only the selected object or to create multiple rotated copies of the object. The Rotation values allow the user to select the axis about which the rotation will be made and the angle is the rotation angle (counter-clockwise is positive). The Base Point defines the point about which the rotation will be performed. The Use Center button can be used to fill the Base Point data with the center coordinates of the selected objects.

To preview the changes without applying them, click Preview. To apply the changes and close the dialog, click OK. To cancel the changes instead, click Cancel.

pyro ui dialog rotate
Figure 116. The rotate dialog being used to rotate an object

11.10. Object Visibility

Often it is desirable to turn off the display of selected objects, for example, to hide a roof of a building in order to visualize the interior. In any of the views, right-click on a selection to obtain the following options:

  • Hide object(s) - This turns off the display of the selected object(s).
  • Show object(s) - This turns on the display of the selected object(s).
  • Filter object(s) - This turns off the display of all objects except the selection(s).
  • Show all objects - Turns on the display of all objects.

12. Species

Gas species can serve many different roles in a PyroSim model. In the simplest applications, a number of gaseous species are implicitly defined and tracked within the simulator to model the combustion of hydrocarbon fuels. For this type of model, the Fire Dynamics Simulator simulates and tracks three unique species; AIR, PRODUCTS, and FUEL. These three species can consequently be used anywhere else in the model, and their major components; OXYGEN, CARBON DIOXIDE, WATER VAPOR, NITROGEN, CARBON MONOXIDE, and SOOT can be referenced for output data.

By default, PyroSim adds all species which have been implicitly defined by FDS to the model on startup. These species are unique from those involved in the reaction chemistry, and will not take part in the simple reaction chemistry if referenced. While PyroSim manually handles the logic that determines whether or not it is necessary to include a species in the FDS input file, it is important to understand what requires a species line be written to the output. A species referenced by any of the following will cause it to be written:

  1. The species has a non-zero Initial Mass Fraction.
  2. An initialization region includes some mass fraction of the species (see Chapter 19).
  3. A liquid particle referenced in the model refers to the species (see Chapter 14).
  4. A supply surface referenced in the model injects the species (see Chapter 7).
  5. A material referenced in the model creates the species through its pyrolysis reaction (see Chapter 6).
  6. An HVAC filter absorbs some fraction of the species (see Chapter 17).

Three different classifications of species type can be created in a PyroSim model. The first type are predefined species, whose name’s and chemical properties are known by FDS. The second type are custom primitive species. These differ from predefined species in that they must have their chemical properties defined. And lastly, there are custom lumped species, which are defined as either a mass or volume fraction of predefined and custom primitive species.

Species can be managed by opening the Model menu and selecting Edit Species.

To create either a new species, or include a predefined one, select New and choose whether the species should be Predefined, Primitive, or Lumped.

12.1. Primitive Species

Primitive species can be tracked individually, or as a component of a more complex lumped species.

To edit primitive species:

  1. On the Model menu, click Edit Species.
  2. On the Primitive tab, set the Molecular Weight (MW) of the species. You may also specify the chemical formula for the reaction if you plan to use the species in a combustion reaction.
  3. On the Vis/Dif tab, you can specify the Diffusivity (DIFFUSIVITY) or Viscosity (VISCOSITY) for the species. These can either be fixed, or specified as ramps using the Custom option in the respective combo boxes. You can also specify the Lennard-Jones Parameters (SIGMALJ, EPSILONKLJ).
  4. Some species need to absorb or emit thermal radiation. In this case, you may specify a Radcal Surrogate on the Radiation tab. The species will use the absorbing properties of the specified surrogate. It is best to use a surrogate with molecular properties similar to the custom species.
  5. To invoke the aerosol deposition model of FDS, select the Aerosol (AEROSOL) checkbox on the Aerosol tab. If the deposition model is used, you must also specify Density (Solid) (DENSITY_SOLID), Conductivity (Solid) (CONDUCTIVITY_SOLID), and Mean Diameter (MEAN_DIAMETER).
  6. The Liquid tab is used to define the thermal properties of evaporating liquid droplets. Note that these variables are only used when a particle evaporates. For more information about specifying an evaporating liquid droplet, see Chapter 14.
  7. The Gas tab is used to set parameters related to the enthalpy of the gas species. The enthalpy is specified by a combination of Specific Heat (SPECIFIC_HEAT), Reference Temperature (REFERENCE_TEMPERATURE), and Reference Enthalpy (REFERENCE_ENTHALPY). For more information on how enthalpy is calculated, refer to the FDS User Manual.

12.2. Lumped Species

Species mixtures can be defined as a mixture of any number of primitive species. Because all species in the simulation must be tracked by a transport equation, a lumped species can be used to save on simulation time.

To create a lumped species:

  1. On the Model menu, click Edit Species.
  2. Click New
  3. Select the Lumped option.
  4. Click OK

To edit the lumped species:

  1. On the Model menu, click Edit Species.
  2. Lumped species cannot be assigned fixed values like a primitive species can. Instead, the simulator derives this information from the combination of all the individual components of the species. In the Lumped panel, you can specify the composition as either a Mass Fraction or a Volume Fraction. In either case, a table of all declared Primitive Species and their fractional composition is displayed on the panel.

When using lumped species, it is recommended that certain actions be taken to reduce the complexity of the simulation.

To save on simulation time:

  1. On the Model menu, click Edit Species.
  2. If a primitive species is to be used only as a component of a lumped species, select that species.
  3. Click the Advanced panel.
  4. Add the line LUMPED_COMPONENT_ONLY = .TRUE. to the list of Additional Fields. For more information about Advanced FDS Parameters, see Chapter 22>.
  5. Click OK.

Doing this check for all primitive species will reduce the number of transport equations solved by the simulator, and save significant time on the simulation.

13. Reactions

This chapter provides an overview of how to specify combustion (the reaction of fuel vapor and oxygen) using PyroSim. A more detailed discussion of this topic is provided in the Fire Dynamics Simulator User’s Guide and the Fire Dynamics Simulator Technical Reference Guide.

As described in the Fire Dynamics Simulator User’s Guide, a common source of confusion in FDS is the distinction between gas phase combustion and solid phase pyrolysis. The former refers to the reaction of fuel vapor and oxygen; the latter the generation of fuel vapor at a solid or liquid surface. In an FDS fire simulation, there is only one gaseous fuel that acts as a surrogate for all the potential fuel sources.

In most fire simulations, pyrolysis is defined by specifying a Heat Release Rate Per Unit Area (HRRPUA) as part of a surface. A more complex approach is to define a material with a pyrolysis reaction.

The reaction is defined using the Edit Reactions dialog in PyroSim.

13.1. Defining the Combustion Reaction

PyroSim supports the "simple chemistry" combustion model in FDS that considers a single fuel species composed of \(C\), \(H\), \(O\), and \(N\) that reacts with oxygen in one mixing-controlled step to form \(H_{2}O\), \(CO_{2}\), \(Soot\), and \(CO\) (see Chapter 12 in the FDS User Guide).

To create a reaction:

  1. On the Model menu, click Edit Reactions.
  2. Click New and give the Reaction Name.
  3. The fuel composition is entered on the Fuel tab. If the user selects the Simple Chemistry Model, define the fuel composition by specifying the number of \(C\), \(H\), \(O\), and \(N\) atoms (fractions are acceptable). Alternately, the user can select the fuel from a predefined species list that is given in the FDS User Guide, Table 11.1: Optional gas and liquid species.

    To do this:

    1. From the Fuel Type list, select Predefined.
    2. Click Edit Species.
    3. Click New.
    4. From the Predefined list, select the fuel.
    5. Return to the Fuel tab and from the Fuel Species list, select the fuel species you just added.
  4. On the Fire Suppression tab, you can enable fire suppression and then enter values for the Critical Flame Temperature (CRITICAL_FLAME_TEMPERATURE) and the Automatic Ignition Temperature (AUTO_IGNITION_TEMPERATURE).
  5. On the Byproducts tab, you can select either Specify release per unit mass oxygen (EPUMO2) or specify heat of combustion (HEAT_OF_COMBUSTION). You can also specify the \(CO\) yield, \(H_{2}\) yield, and \(Soot\) yield.

FDS will use the chemical formula of the fuel along with the yields of \(CO\) and \(Soot\), and the volume fraction of hydrogen in the soot to calculate the stoichiometric coefficients for the reaction. Details of the reaction are output by FDS in the *.out file written during execution.

13.2. Custom Smoke

PyroSim supports the custom smoke features available in FDS. To create custom smoke, first define an species with the desired mass extinction coefficient. This "smoke" species can then be injected into the domain like any other species. Smoke detectors can also detect this smoke species if it is selected under the smoke detector’s model, which can be edited under Edit Smoke Detector Models. on the Devices menu. Finally, if the Results should track this species as smoke, go to the Analysis menu, select Simulation Parameters. and on the Output tab select the mass fraction quantity of the desired species from the Smoke Quantity drop-down box. Note that in addition to specifying the mass fraction of a species, the mass fraction of any mixture fraction species can also be selected for smoke display, including the mass fraction of oxygen, water vapor, and the other species specified in the gas-phase reaction.

14. Particles

PyroSim supports three types of particles: massless tracers, liquid droplets, and solid particles. To create a new particle:

  1. On the Model menu, click Edit Particles.
  2. Click New.
  3. In the Particle Type box, select one of the types.
  4. Click OK

14.1. Liquid Droplets

Evaporating liquid droplets can be used with sprinkler spray models and nozzles to customize the spray. They can also be used in particle clouds and surface types that support particle injection.

14.1.1. Liquid

Species
The species that defines the thermal properties of the particles.
Movement
Defines whether the particles can move or are static, causing them to act as obstructions to flow.
14.1.1.1. Liquid Species Parameters

To specify a liquid droplet, you must specify a species. This can be one of the predefined species recognized in Table 11.1 of the FDS User’s Guide, or any other user defined species. If the species is not predefined, it is important to specify the liquid properties of the species.

To edit the liquid properties of the species:

  1. On the Model menu, click Edit Species.
  2. Select the primitive species.
  3. Select the Liquid tab.
  4. Specify the fields below.
  5. Click OK.

Liquid species have the following properties.

Specific Heat
The droplet specific heat.
Density
The droplet density.
Vaporization Temperature
The droplet liquid boiling temperature.
Melting Temperature
The droplet melting/freezing temperature.
Heat of Vaporization
The droplet latent heat of vaporization.
Enthalpy of Formation
The heat of formation of the gaseous species.
H-V Reference Temperature
The temperature associated with the Heat of Vaporization

Properties of the liquid particles are specified in the Particle Dialog.

14.1.2. Drag

Drag refers to the drag force the particle exerts on the flow around it, see section "17.4.2 Drag" in the FDS User Guide. There are four Drag options: Sphere (default), Cylinder, Screen and Specify Drag Coefficient.

The Dense Volume Fraction value must be ⇐1.0 and is discussed in section "17.3.5 Dense Clouds of Droplets" in the FDS Users Guide.

14.1.3. Size Distribution

Median Diameter
The median volumetric diameter of each droplet.
Constant
Use a constant diameter for each droplet.
Rosin-Rammler
Allow each droplet to be sized according to Rosin-Rammler distribution.
Lognormal
Allow each droplet to be sized according to a lognormal distribution.
Rosin-Rammler-Lognormal
Rather than use a constant diameter for each droplet, allow each to be sized according to a combination of Rosin-Rammler and lognormal.
Gamma D
The width of the Rosin-Rammler distribution. The larger the value of gamma, the narrower the droplet size is distributed about the median value.
Sigma D
The width of the lognormal distribution.
Minimum Diameter
Droplets smaller than the minimum diameter are assumed to evaporate in a single time step.
Maximum Diameter
Droplets larger than the maximum diameter are assumed to break up in a single time step.

14.1.4. Coloring

Default
Allows FDS to select a color for this particle.
Specify
Select to choose a custom particle color.
By Droplet Property
Select this option to choose one or more scalar quantities that will be used to color this particle in the 3D Results.

14.1.5. Injection

Duration
The amount of time a water droplet will remain in the simulation.
Sampling Factor
Sampling factor for the particle output file. A value of -1 uses the FDS default value for this property. Set to an integer greater than 1 to reduce the size of particle output.

14.1.6. Special Topic: Fuel Droplets

Liquid particles can be injected into the domain as evaporating fuel vapor that will burn according to the combustion model specified in the active reaction. To specify a fuel particle, set the liquid particle’s species to the same species as the Fuel Species for the active reaction, see Section 1.3.2. For instance, if the fuel species of the active reaction is METHANE, choose METHANE for the particle species as well. If the active reaction is using the Simple Chemistry Model option, choose the species, REAC_FUEL for the particle species.

14.2. Solid Particles

PyroSim provides basic support for specifying solid particles. A solid particle must reference a surface, from which it derives its thermophysical and geometric parameters. A solid particle can be used to model various heat transfer, drag, and vegetation applications. Most of the parameters unique to solid particles must be defined on the Advanced Panel, see Chapter 22.

14.3. Massless Tracers

Massless tracer particles can be used to track air flow within a simulation. They can be used with the particle injection feature of the Burner, Heater/Cooler, Blower, and Layered surface types. They can also be used in particle clouds.

By default, PyroSim provides a black, massless tracer particle called Tracer. To use a custom tracer particle in your simulation, you can modify the parameters of this default particle to suit your needs, or you can create a new particle.

The tracer particle properties are as follows:

Color
The color of the tracer particle.
Duration
The amount of time a droplet of this type will remain in the simulation.
Sampling Factor
Sampling factor for the particle output file. A value of -1 uses the FDS default value for this property. Set to an integer greater than 1 to reduce the size of particle output.

14.4. Activation

Normally, the insertion of particles into the domain is controlled by the surface or object emitting them, such as by a fan or supply surface or a particle cloud. Alternatively, the insertion of particles can be controlled by a device or other control logic. For more information on controls, see Chapter 16.

14.5. Global Parameters

There are two global options relating to particles in the Simulation Parameters dialog. The first option, Droplets Disappear at Floor, can be used to prevent droplets from gathering on the floor of the simulation area. The default value for this option is ON. The second option, Max Particles per Mesh, can be used to set an upper limit on the number of particles allowed in any simulation mesh.

14.6. Particle Clouds

Particle Clouds provide a way to insert particles into the simulation either in a box-shaped region or at a specific point. Particles can either exist at the start of the FDS simulation or can be inserted periodically.

To create a particle cloud, on the Model menu, click either New Particle Cloud. to create a region of particles or New Particle Location. to specify a specific point for the particles. This will show the particle cloud dialog as in Figure 117.

pyro ui dialog particle cloud
Figure 117. Particle Cloud dialog

Particle clouds have the following properties:

Particle
The type of particle to insert in the volume.
Droplet Count
Controls the number of particles in the volume.
Density
Specifies the particle count as a volume density (NOTE: this is only available when the geometry is a volume).
Droplets/cell
FDS intersects the particle cloud’s geometry with the mesh cells in the model. For each cell, FDS inserts the specified number of particles. The particles may optionally be cell-centered.
Constant
Species a constant number of particles for the region.
Insertion
How often the particles are inserted in the region.
Insert Once
Inserts the particles once at the beginning of the simulation.
Mass Per Volume
Specifies the total density of the particles if the geometry is a volume. This is independent of the particle density, which is specified per particle type.
Insert Periodically
Inserts particles periodically during the simulation.
Insertion Interval
Specifies how often the particles are inserted when the control is true.
Mass Per Time
Controls how much mass is distributed across the inserted particles.
Activation
A control may be specified to control when the particles can be inserted.

The geometry properties, including the size and location of the volume or the point location can be specified on the Geometry tab.

Press OK to create the new particle cloud. It will appear as a translucent box or a point in the 3D and 2D Views.

15. Devices

Devices are used to record quantities in the model or to represent more complex sensors, such as smoke detectors, sprinklers, and thermocouples. You can make time history plots of device output in PyroSim by opening the CHID_devc.csv file.

Devices can be moved, copied, rotated, and scaled using the tools described in Chapter 11. Most often, the user will simply select one or more devices, right-click to display the context menu, and click Move. By copying a single device along a line and then copying the line in the normal direction, it is possible to quickly define an array of devices.

When a device is defined, a trigger value (setpoint) can be created that can be used to activate other objects. This is discussed more in Chapter 16. When acting as a detector you may specify whether the signal from the device starts as true (initially activated), whether the logic signal is locked after the setpoint is tripped (triggers only once), and whether the signal should flip when the device output ascends or descends (trip direction) across the setpoint.

In addition, the output of a device can be frozen at its current value when another control activates. This can be used to create more complex logic, such as holding the heat release rate of a fire at its current value when a sprinkler activates.

15.1. Aspiration Detection System

An aspiration detection system groups together a series of soot measurement devices. An aspiration system consists of a sampling pipe network that draws air from a series of locations to a central point where an obscuration measurement is made. To define such a system in FDS, you must provide the sampling locations, sampling flow rates, the transport time from each sampling location, and if an alarm output is desired, the overall obscuration setpoint.

To define the soot measurement devices:

  1. On the Devices menu, click New Aspirator Sampler.
  2. Enter the Name and Location of the sampler.
  3. Click OK to create the sampler.

To define the aspiration detection system:

  1. On the Devices menu, click New Aspirator.
  2. Give the Name and select which Aspirator Samplers will be included. For each sampler, provide the data described below.
  3. Click OK to create the aspirator detector.

Supply the following information for the aspiration detection system, Figure 118.

Aspirator Name
The name of the aspiration detection system.
Freeze Output
An input control that will cause the output of the device to freeze at its current value when the control activates.
Bypass Flow Rate
The flow rate of any air drawn into the system from outside the computational domain.
Transfer Delay
The transport time from the sampling location to the central detector.
Flowrate
The gas flow rate.
Location
The coordinates of the aspiration detection system.
Orientation
Not used.
Rotation
Not used.
pyro ui dialog aspirator
Figure 118. Creating an aspirator sampler

The output of the aspiration detection system will be the combined obscuration.

15.2. Gas or Solid Phase Device

Simple gas phase and solid phase devices can be used to measure quantities in the gas or solid phase. To define a measurement device, on the Devices menu, click New Gas-phase Device or New Solid-phase Device.

The device properties are:

Device Name
The name of the device.
Freeze Output
An input control that will cause the output of the device to freeze at its current value when the control activates.
Quantity
The quantity to measure.
Location
The coordinates of the device.
Orientation
Gas-phase only, not used.
Normal of Solid
Solid-phase only, specifies the outward normal of the surface on which the device is attached.
Rotation
Not used.

15.3. Thermocouple

To create a thermocouple, on the Devices menu, click New Thermocouple.

The thermocouple properties are:

Device Name
The name of the thermocouple.
Freeze Output
An input control that will cause the output of the device to freeze at its current value when the control activates.
Bead Diameter
The bead diameter of the thermocouple.
Emissivity
The emissivity of the thermocouple.
Bead Density
The material density of the bead. The default value is that for nickel.
Bead Specific Heat
The material specific heat of the bead. The default value is that for nickel.
Location
The coordinates of the device.
Orientation
Not used.
Rotation
Not used.

The output of the thermocouple is the temperature of the thermocouple itself, which is usually close to the gas temperature, but not always, since radiation is included in the calculation of thermocouple temperature.

15.4. Flow Measurement

The flow measurement device can be used to measure a flow quantity through an area. To create a flow measuring device, on the Devices menu, click New Flow Measuring Device.

The flow measurement device properties are:

Device Name
The name of the flow measuring device.
Freeze Output
An input control that will cause the output of the device to freeze at its current value when the control activates.
Measurement Type
The quantity to be measured. The selected measurement type is not the FDS quantity itself, but a category of quantity types that PyroSim infers based on other settings. Measurement types are either in the gas-phase, or in the solid-phase if the type contains the text "at a boundary".
Flow Direction
This is shown only for gas-phase quantities. Select the direction of flow to be considered. By default, the flow measurer includes all mass, volume, or enthalpy across the measurement region. You may select either "Positive" or "Negative" to isolate the flows in one direction.
Species
This is shown only for mass flow measurement types. Either select "All" to consider all mass across the measurer, or specify a species to consider its flow in isolation.
Component
This is shown only for mass flow measurement types. For gas-phase quantities, you may select one of the "Default", "Total", "Diffusive", or "Advective" components of mass flow. For solid-phase quantities, you may select of the "Default" ("Mass Flux"), "Mass Flux Wall", or "Total Mass Flux Wall".
Wall Normal
This is shown only for solid-phase quantities. Either select "Auto" to have this value auto-calculate or select the obstruction’s normal direction at the location of the device.
Plane
The axis normal to the measurement plane and the location of that plane on the axis. For gas-phase flow measurers, PyroSim will use the selected plane to determine the required flow quantity.
Bounds
The coordinates of the area normal to the axis.

The output will be the total flow through the defined area.

15.5. Heat Release Rate Device

The heat release rate device measures the heat release rate within a volume. To define a heat release rate device, on the Devices menu, click New Heat Release Rate Device.

The heat release rate device properties are:

Device Name
The name of the heat release rate device.
Freeze Output
An input control that will cause the output of the device to freeze at its current value when the control activates.
Bounds
The coordinates of the volume within which to calculate the heat release rate.

The output will be the total heat release rate within the volume.

15.6. Layer Zoning Device

There is often the need to estimate the location of the interface between the hot, smoke-laden upper layer and the cooler lower layer in a burning compartment. Relatively simple fire models, often referred to as two-zone models, compute this quantity directly, along with the average temperature of the upper and lower layers. In a computational fluid dynamics (CFD) model like FDS, there are not two distinct zones, but rather a continuous profile of temperature. FDS uses an algorithm based on integration along a line to estimate the layer height and the average upper and lower layer temperatures. To define a layer zoning device, on the Devices menu, click New Layer Zoning Device.

The layer zoning device properties are:

Device Name
The name of the layer zoning device.
Freeze Output
An input control that will cause the output of the device to freeze at its current value when the control activates.
Measure Layer Height
Enables measurement of the layer height.
Measure Upper Temperature
Enables measurement of the upper layer temperature.
Measure Lower Temperature
Enables measurement of the lower layer temperature.
Path
The coordinates of the end points of a line along which the layer height will be calculated. The two endpoints must lie in the same mesh.

The output will be the quantities selected.

15.7. Path Obscuration (Beam Detector) Device

A beam detector measures the total obscuration between points. To define a beam detector device, on the Devices menu, click New Beam Detector Device.

The path obscuration device properties are:

Device Name
The name of the path obscuration device.
Freeze Output
An input control that will cause the output of the device to freeze at its current value when the control activates.
Path
The coordinates of the end points of a line along which the obscuration will be calculated. The two endpoints must lie in the same mesh.

The output will be the percent obscuration along the path.

15.8. Heat Detector

A heat detector measures the temperature at a location using a Response Time Index model. To define a heat detector device, on the Devices menu, click New Heat Detector.

The heat detector device properties are:

Device Name
The name of the heat detector.
Freeze Output
An input control that will cause the output of the heat detector to freeze at its current value when the control activates.
Link
The link defines the activation temperature and the response time index.
Location
The coordinates of the device.
Orientation
Not used.
Rotation
Not used.

The output will be the heat detector temperature.

15.9. Smoke Detector

A smoke detector measures obscuration at a point with two characteristic fill-in or "lag" times. To define a smoke detector, on the Devices menu, click New Smoke Detector.

The smoke detector device properties are:

Detector Name
The name of the smoke detector.
Freeze Output
An input control that will cause the output of the smoke detector to freeze at its current value when the control activates.
Model
Select the smoke detector type. You can edit the smoke detector parameters to create a new type.
Location
The coordinates of the device.
Orientation
Not used.
Rotation
Not used.

The output will be the percent obscuration per meter.

15.10. Sprinkler

Sprinklers can spray water or fuel into the model. To define a sprinkler:

  1. On the Devices menu, click New Sprinkler. This will display the Sprinkler dialog, Figure 119.
  2. Select the desired options and define required input parameters as described below.
  3. Click OK to create the sprinkler.
pyro ui dialog sprinkler
Figure 119. Creating a new sprinkler

The sprinkler properties are:

Sprinkler Name
The name of the sprinkler.
Freeze Output
An input control that will cause the output of the sprinkler’s link to freeze at its current value when the control activates.
Spray Model
The spray model defines the particle type (water and fuel are default options), the flow rate, and the jet stream shape.
Dry Pipe
In a dry pipe sprinkler system, the normally dry sprinkler pipes are pressurized with gas. When a sprinkler link attached to the dry pipe activates, the pressure drops, allowing water to flow into the pipe network. Once the pipe is full, any activated sprinkler nozzles attached to that pipe will begin to flow. You can create any number of dry pipes and attach any number of sprinklers to them. Each dry pipe simulates the time to fill the pipe with a simple time delay parameter.
Activator
By default the sprinkler is activated by a temperature link, with a response time index. You can edit the activation temperature and the response time index. Alternately, you can select a more general quantity to activate the sprinkler. By default the sprinkler is initially not active and is triggered only once.
Location
The coordinates of the sprinkler.
Orientation
The components of the direction vector.
Rotation
Normally not used for a sprinkler. It could be used to rotate a spray pattern that varies with latitude (circumferentially).

15.11. Nozzle

Nozzles are very much like sprinklers, only they do not activate based on the standard RTI model. They can be set to activate by custom control logic.

16. Control Logic

Objects can be set to activate or deactivate during the simulation using activation events. Activation events are the control logic system in FDS and can be set on each geometric simulation object (e.g. walls, holes, vents) using the Activation option in the object’s Properties dialog. PyroSim supports activation events based on time, input devices, and math operations applied to such inputs. Some uses of activation events include:

  • Causing a door obstruction to be removed (i.e. opened) from the simulation at a particular time,
  • Causing a window obstruction to be removed (i.e. break) when a heat detector triggers, and
  • Causing a ventilation system to activate when any of several smoke detectors activates

To open the dialog shown in Figure 120: On the Devices menu, click Edit Activation Controls.

pyro ui dialog activation controls 2022 2
Figure 120. The Activation Controls dialog.

16.1. Activation Control Types

PyroSim allows the creation of three unique control types. When creating a new Activation Control, you may select from one of the following:

  1. Activation - An Activation Control manages the activation state of an object according to user specified inputs.
  2. Custom - A Custom Control is a specialized Activation Control that manages object creation and removal according to multiple events which vary over time.
  3. Mathematical - A Mathematical Control applies the selected math operation to device inputs. The output of a Mathematical Control can be used as an input to an Activation Control in order to manage PyroSim objects.
pyro ui dialog new control 2021 4
Figure 121. The New Control Dialog.

16.2. Creating Activation Controls

Creating controls in PyroSim takes 3 steps:

  1. Select an input type (time, detector, deadband, or custom). This is the source of the signal that will trigger the control.
  2. Choose an action to perform (e.g. create an object).
  3. Set specific inputs for the control based on a pattern created by steps 1 and 2.

After selecting an input type and an action, a pattern (in sentence form) for describing the control logic will appear in the dialog. Some key words and numbers will be drawn in blue and underlined. Any blue text can be clicked to modify the behavior of the specific control.

Figure 122 shows the selector popup for objects. Objects are selected by name. To quickly find objects in the selector popup, you can type the first few letters of the object’s name.

pyro ui dialog activation controls object
Figure 122. The Activation Controls object popup.

Activation controls are stored separately from specific geometric objects. This makes it possible to bind an object to a control after it has been created. You can use the Activation box in an object’s properties editor to bind that object to an existing activation control, or even create a new control directly. Figure 123 shows the activation control in the object properties dialog for a hole.

pyro ui dialog hole props activation
Figure 123. The Activation Control selection field.

Once a control has been bound to an object (or objects) any objects linked to that control will show a text description of the control in their properties editor. This text will be shown in blue and underlined and can be clicked to edit the activation control. Changes made to the activation control will impact all referencing objects.

16.3. Time-based Input

To create or remove an object at a specific time, select Time for the Input Type in the Activation Controls dialog. When using time as the input, objects can be created at a specific time, removed at a specific time, or be created and removed periodically throughout the simulation. To create or remove the objects once, select Create/Activate or Remove/Deactivate under the Action to Perform. To create/remove the object periodically, select Multiple under the Action to Perform. When performing multiple timed events, the creation and removal and times at which they occur are specified in the table at the bottom of the dialog. The create and remove events should alternate as time increases.

16.4. Detector-based Input

To create or remove some objects based on a device in the model, the device or math operation must first have a setpoint enabled.

To specify a device setpoint, perform the following:

  1. Create a new device or open the properties for an existing device.
  2. Check the box next to Enable Setpoint:
  3. Enter the desired value at which the device will trip.
  4. Choose the options for the detector:
    • Trigger only once - the detector will only trigger once at the setpoint during the entire simulation.
    • Initially activated - if this is unchecked, the detector is untriggered at the start of the simulation and will turn on when the setpoint is reached for the first time. If this is checked, the detector is triggered at the start and will turn off when the setpoint is reached.
    • Trip Direction - if this is set to Ascending the detector will trigger when the device value is greater than the setpoint. If set to Descending, the detector will trigger for the opposite behavior.
  5. Click OK to close the device dialog.

Once the desired devices have been given a setpoint, they can be used as inputs to the control logic expression. Now in the Activation Controls dialog, select Detector as the Input Type. The detector can be used to Create/Activate or Remove/Deactivate the desired objects when the detector either activates or deactivates. If more than one detector is to be used to activate the objects, the descriptive sentence can be used to decide if the objects should trigger when any, all, or a certain number of the devices activate.

16.5. Deadband-based Input

To create or remove an object according to bounding setpoints on device or math operation, select Deadband Control under the Input Type. Unlike Detector-based inputs, a Deadband-based control does not require a setpoint. The descriptive sentence will guide the user towards selecting an upper and a lower range at which the controlled objects will turn on or off.

16.6. Manual-based Input

Selecting Manual for the Input Type allows you to enter the exact CTRL record to be managed by the control. After defining a valid CTRL record in the text editor, the descriptive sentence can be used to specify the objects managed by the control.

16.7. Custom Controls

Custom controls allow objects to be created and removed periodically according to a table of setpoints. Use the Function Input combobox to specify either Time or a device as the input to the control. The table can then be used to specify multiple values at which the logic signal switches and the managed objects are created or removed. The create and remove events should alternate as values in the left hand side of the table increase.

pyro ui dialog custom control 2021 4
Figure 124. The Custom Control Dialog.

16.8. Mathematical Controls

Mathematical controls apply simple math operations on the selected input signals. Input signals may be any of Time, the output value of a device, a constant value, or the output of another Mathematical control.

The following operations use a single value as an input: Exponential, Logarithm, Cosine, Sine, Arccosine, Arcsine, Arctangent.

The following operations use a single value in addition to specialized parameters: PID, Percentile.

The following operations use two values as inputs: Subtract, Multiply, Divide, Power.

The following operations may use many values as inputs: Sum, Maximum, Minimum.

To use a Mathematical control as an input to a detector, perform the following:

  1. Check the box next to Enable Setpoint:
  2. Enter the desired value at which the control will trip.
  3. Choose the options for the detector:
    • Trigger only once - the detector will only trigger once at the setpoint during the entire simulation.
    • Initially activated - if this is unchecked, the detector is untriggered at the start of the simulation and will turn on when the setpoint is reached for the first time. If this is checked, the detector is triggered at the start and will turn off when the setpoint is reached.
    • Trip Direction - if this is set to Ascending the detector will trigger when the device value is greater than the setpoint. If set to Descending, the detector will will trigger for the opposite behavior.
pyro ui dialog math control 2022 2
Figure 125. The Mathematical Control Dialog.

17. HVAC Systems

In PyroSim, HVAC (Heating, Ventilation, and Air Conditioning) systems are specified as networks of ducts, nodes, and some combination of fans, aircoils, and filters.

17.1. HVAC Duct

A duct is required for any HVAC system. At a basic level, a duct represents the joining of two HVAC Nodes.

To define an HVAC Duct:

  1. On the Model menu, click New HVAC Duct.

You can now edit the duct:

17.1.1. General

Node
The names of nodes on either side of the duct (Nodes must already exist to be selected.) A positive velocity is described as flowing from Node 1 to Node 2.
Length
By default, PyroSim estimates the length of the duct based on the straight line geometry between the specified nodes. If for any reason this is not a sufficient representation of the model, you may explicitly specify a fixed length for the duct.
Shape
Defines the cross-sectional shape of the duct. Used by the simulator to compute a hydraulic diameter for predicting the flow.
Circular
The Diameter for a circular duct.
Non-Circular
Specify the cross-sectional Area and Perimeter of the duct.

17.1.2. Waypoints

Points
The table of coordinates that define a duct’s path.

17.1.3. Flow Model options

Forward Loss
The friction loss in the duct going from Node 1 to Node 2.
Reverse Loss
The friction loss in the duct going from Node 2 to Node 1.
Roughness
The absolute roughness of the duct material.
Flow Device
The type of flow device you would like to use in the duct.
Damper
A damper device sets an open/closed state for the duct. When a damper control is TRUE it allows normal airflow. When a damper is FALSE, the duct is closed and blocks 100% of the duct area.
Basic Fan
A basic fan represents a fan between the two nodes of the duct. Basic fans are defined on the duct itself, rather than on a fan object, are limited to simpler use cases.
Aircoil
An aircoil represents a heat exchanger between the two nodes of the duct.
Fan
Selecting Fan as the flow device allows you to choose a defined fan object as the airflow device between the nodes of the duct.
Activation
Specifying Activation for either a damper, a fan, or an aircoil attaches a device to set the state of the HVAC component as active or inactive.
Volume Flow
The fixed volumetric flow rate through the duct.
Ramp up time
Used to define a custom time ramp of the duct flow rising to the Volume Flow.
Fan
Selects a defined HVAC Fan object to use as the flow device.
Flow Direction
Choose the direction of airflow. By default, air moves from Node 1 to Node 2.
Aircoil
Selects a defined HVAC Aircoil object to use as the flow device.

17.2. HVAC Node

An HVAC Node represents a either a joining of two or more HVAC Ducts, or the meeting point between a duct and the PyroSim computational model. To create an HVAC Node:

  1. On the Model menu, click Edit HVAC.
  2. Click New.
  3. In the Type box, select NODE.
  4. Click OK.

You can now edit the node.

Filter
Select the HVAC Filter to be used at the node.
Auto
Selecting Node Type Auto tells PyroSim to predict the node type based on its interaction with other HVAC objects.
Internal
An Internal node is one connected to only ducts. An internal node must be connected to at least two ducts.
Ambient Endpoint
A node specified as an Ambient Endpoint is connected to at least one duct and is equivalent to an OPEN surface.
Vent Endpoint
If you select a node as a Vent Endpoint, you can select a vent with surface type HVAC, and the node will be the meeting point between the HVAC system and the rest of the PyroSim model.
Location
The 3D coordinates of the node. If the location is not specified, the default values of 0, 0, 0 will be used by the simulator.
In Loss
The flow loss for gases entering the HVAC system.
Out Loss
The flow loss for gases exiting the HVAC system.

17.3. HVAC Fan

An HVAC Fan is used to generate airflow in a HVAC network. A fan is specified between two nodes by selecting it as the Flow Device for an HVAC Duct. Note that an HVAC Fan is a class of object, and a single fan definition can be used by any number of ducts.

To create an HVAC Fan:

  1. On the Model menu, click Edit HVAC.
  2. Click New.
  3. In the Type box, select FAN.
  4. Click OK.
    Activation
    Attach a control logic device to the fan.
    Flow Loss
    The loss through the fan when the fan is not operational.
    Initial Ramp up time
    Specify either a Tanh or a t2 ramp up time to the flow rate.
    Maximum Flow Rate
    The maximum volumetric flow rate used for the quadratic fan model.
    Maximum Pressure
    The maximum stall pressure of the fan used for the quadratic fan model.
    Volume Flow Rate
    The fixed volumetric flow of the fan.
    Fan Curve
    Used to specify a table of pressure drops across the fan versus the volumetric flow rates.

17.4. HVAC Filter

An HVAC Filter is used to stop gaseous species from circulating in the HVAC system. A given filter can limit the flow of any number of valid species defined in the model. Note that an HVAC Filter is a class of object, and a single filter definition can be referenced by any number of nodes.

To create an HVAC Filter:

  1. On the Model menu, click Edit HVAC.
  2. Click New.
  3. In the Type box, select FILTER.
  4. Click OK.
    Clean Loss
    The flow loss across the filter at zero loading.
    Loss
    The loss as function of the clean loss and the species loadings/multipliers for the filter.
    Loss (Custom)
    Specify a ramp loss table as a function of total loading.
    Species
    The tracked species to be filtered.
    Efficiency
    The efficiency at which the species is filtered.
    Initial Loading
    The loading on the filter for the given species at t = 0.
    Loading Multiplier
    A factor used for calculating the overall flow loss at the filter.

17.5. HVAC Aircoil

An HVAC Aircoil is a device that provides a heating or cooling element to an HVAC system. An aircoil is specified between two nodes by selecting it as the Flow Device for an HVAC Duct. Note that an HVAC Aircoil is a class of object, and a single aircoil definition can be used by any number of ducts.

To create an HVAC Aircoil:

  1. On the Model menu, click Edit HVAC.
  2. Click New.
  3. In the Type box, select AIRCOIL.
  4. Click OK.
    Activation
    Attach a control logic device to the aircoil.
    Heat Exchange Rate
    A constant exchange rate between the aircoil and the air across it. A negative value represents heat removal.
    Ramp-Up Time
    Specify either a Tanh or a t2 ramp up time to the heat exchange rate.
    Coolant Specific Heat
    The specific heat of the working fluid.
    Coolant Mass Flow Rate
    The mass flow rate of the working fluid.
    Coolant Temperature
    The inlet temperature of the working fluid.
    Heat Exchanger Efficiency
    A value from 0 to 1 representing the efficiency of the aircoil. A value of 1 indicates the exit temperatures on both sides of the heat exchanger will be equal.

17.6. HVAC Vents

HVAC Vents are used to represent the junction between the HVAC system and the rest of the computational model. See Section 8.3 for more information on using vents.

To define an HVAC Vent:

  1. On the Model menu, click New Vent.
  2. In the Surface box, select HVAC.
  3. Click the Geometry tab. Specify the appropriate 2D geometry of the vent.
  4. Click the HVAC Properties tab. If you want the flow from the vent to go in a direction not perpendicular to the vent, click Louver. Specify the values X, Y, and Z as a vector of the direction you would like the flow to be directed.
  5. Click OK.

18. Output Controls

In this chapter we describe the simulation output options available in PyroSim. Each of these options is located in the Output menu.

18.1. Solid Profiles

Solid profiles measure quantities (e.g. temperature, density) as they extend into solid objects. The output file for this measurement device will be named CHID_prof_n where CHID is the job ID and n is the index of the solid profile. This output file contains the data necessary to create an animated 2D chart of the quantity as it extends into the object over time. PyroSim does not currently support displaying this output file.

To generate solid profile output, on the Output menu, click Edit Solid Profiles.

Each solid profile requires the following parameters:

ID
The name of this solid profile entry.
X, Y, Z
The coordinates of a point on the face that will be examined by this solid profile.
ORIENT
The direction of the face that will be examined by this solid profile. To generate solid profile output for the top of an object, this value will be Z+. This parameter prevents any ambiguity that might result from a point that lies on two adjoining faces.
QUANTITY
The quantity that will be measured in this solid profile.

18.2. 2D Slices

2D Slices or slice planes measure gas-phase data (e.g. pressure, velocity, temperature) on an axis-aligned plane. This data can then be animated and displayed using the 3D Results (Figure 126).

results scrn output slice 2d
Figure 126. A slice plane shown in the 3D Results.

To generate animated slice planes, either draw them using the drawing tools as described in Section 9.11 or on the Output menu, click 2D Slices.

Each slice plane requires the following parameters:

Name
A custom name used to identify the slice. 2D Slices will be identifiable by their slice names in Results.
XYZ Plane
The axis (X, Y, or Z) along which to place the slice plane.
Plane Value
The value along the specified axis where the plane will be placed.
Gas Phase Quantity
The quantity that this plane will measure. This list includes built-in options such as temperature as well as dynamic options such as those based on particles.
Use Vector?
Setting this option to YES will cause FDS to generate additional flow vector data for this slice.
Cell Centered?
Whether to output cell-centered data. In this mode, each cell is filled completely by a solid color representing the value of the cell at the center.

18.3. 3D Slices

3D Slices represent volumetric regions that measure gas-phase data (e.g. pressure, velocity, temperature). This data can then be animated and displayed using the 3D Results in several different ways, including volumetric renderings, plotting 2D slices through the data, plotting points, or creating isosurfaces, all in the 3D Results application. Figure 127 shows a volumetric rendering.

results scrn rendering volume temperature
Figure 127. A volumetric rendering of a 3D slice shown in the 3D Results

To generate animated 3D slices, either draw them using the drawing tools as described in Section 9.14 or on the Output menu, click 3D Slices.

Each 3D slice requires the following parameters:

Name
A custom name used to identify the slice. 3D Slices will be identifiable by their slice names in Results.
Min X,Y,Z
The minimum corner of the box defining the 3D slice.
Max X,Y,Z
The maximum corner of the box defining the 3D slice.
Gas Phase Quantity
The quantity that this region will measure. This list includes built-in options such as temperature as well as dynamic options such as those based on particles.
Use Vector?
Setting this option to YES will cause FDS to generate additional flow vector data for this slice.
Cell Centered?
Whether to output cell-centered data.

18.4. Boundary Quantities

Boundary quantities provide a way to visualize output quantities (e.g. temperature) on the walls of every obstruction in the simulation. This data can be animated and visualized in the 3D Results (Figure 128). Since the data applies to all surfaces in the simulation, no geometric data needs to be specified.

results scrn output boundaries
Figure 128. An example of a boundary quantity shown in the 3D Results

To generate boundary quantity data, on the Output menu, click Boundary Quantities. In the Animated Boundary Quantities dialog, you can select each quantity you would like to be available for visualization.

18.5. Isosurfaces

Isosurfaces are used to plot the three dimensional contour of gas phase quantities. This data can be animated and visualized in the 3D Results (Figure 129).

results scrn output isosurface
Figure 129. An example of an isosurface shown in the 3D Results

To generate isosurface data, on the Output menu, click Isosurfaces, In the Animated Isosurfaces dialog, you can select each quantity you would like to be available for visualization. Then you must enter values at which to display that quantity in the Contour Values column. If you enter more than one contour value, each value must be separated by the semi-colon character (;). Once you have finished typing the value, press enter.

18.6. Plot3D Data

Plot3D is a standard file format and, like 3D slices, can be used to display 2D contours, vector plots, and isosurfaces in a volumetric region the 3D Results (Figure 131). PLOT3D output is formed of two parts: an XYZ file containing information about the structure of the mesh, and a Q file for each output time. Each Q file contains data for up to five quantities. Simulations with multiple meshes have XYZ and Q files for each mesh. The 3D Results will automatically stitch the individual Q files together to animate the results.

pyro ui dialog plot3d data
Figure 130. The Plot3D Data dialog

PLOT3D data can also be used by the Pathfinder evacuation simulation software to integrate with FDS results. To quickly select the quantities useful in Pathfinder, including the FED calculation, click the Reset button and click Pathfinder Quantities.

results scrn data3d slice angled
Figure 131. An angled temperature slice through Plot3D data shown in the 3D Results

Enabling PLOT3D data in PyroSim will cause the XYZ file to be written. In previous versions of PyroSim, it was possible to generate PLOT3D output without writing the XYZ file. While this offered a way to save space in the simulation output, this sometimes led to errors when loading PLOT3D output without an XYZ file. Loading an old PyroSim file that includes PLOT3D output but is set not to write the XYZ file will cause the XYZ file settings to be ignored and the file will be written anyway.

18.7. HVAC Output

HVAC output is used to globally enable Node and Duct quantities for all HVAC systems. You may select up to 20 quantities per Node or Duct to generate data for them. Results does not yet support utilizing HVAC quantity data. Smokeview may be used to view HVAC specific quantities.

pyro ui dialog hvac output
Figure 132. The HVAC Output dialog

18.8. Statistics

Statistics output is an extension of the devices system. You can insert a statistics gathering device and it will output data about the minimum, maximum, and average value of a particular quantity in one or more mesh. This data can then be viewed in a 2D chart using PyroSim (Figure 133).

results scrn 2d statistics
Figure 133. An example of statistic output

To generate statistics data for some region, on the Output menu, click Statistics. then click New. Once a quantity is selected, some combination of the following options is available depending on whether the quantity is gas or solid-phase and what units are output by the quantity:

Quantity
The quantity that will be measured. This value is set when you create the statistics entry and cannot be modified.
Mean
Select this option to output the average value of the measured quantity over time in a mesh.
Minimum
Select this option to output the minimum value of the measured quantity over time in a mesh.
Maximum
Select this option to output the maximum value of the measured quantity over time in a mesh.
Volume Mean
This option is available for gas-phase quantities only. It is similar to "Mean," but each cell value is weighted according to its relative size.
Mass Mean
This option is available for gas-phase quantities only. It is similar to "Mean," but each cell value is weighted according to its relative mass.
Volume Integral
This option is available for gas-phase quantities whose units involve m-3, such as heat release rate per unit volume.
Area Integral
This option is available for gas-phase quantities whose units involve m-2. If this option is selected, a recording area rather than a recording volume must be defined.
Surface Integral
This option is available for solid-phase quantities whose units involve m-2, such as heat and mass fluxes.
Centroids
This option is available for gas-phase quantities only.
Recording Volume
This is available for gas-phase quantities as long as the Area Integral option is not selected. This defines a volume over which the statistics will be taken.
Recording Area
This is available for gas-phase quantities if the Area Integral option is selected. This defines an area over which the statistics will be taken.
Recording Mesh
This is available for solid-phase quantities. Select the mesh for which you would like to output this statistical data. A proper location will automatically be chosen for the device in the FDS output file.

The output file for measurement devices will be named CHID_devc.csv where CHID is the job ID.

19. Running the Simulation

All aspects of running an FDS simulation can be performed through the PyroSim user interface. This includes setting up simulation parameters, executing single- and multi-threaded simulations, running a remote cluster simulation, and resuming previously stopped simulations.

19.1. Simulation Parameters

Before running a simulation, FDS simulation parameters should be adjusted to fit the problem. This can include parameters such as simulation time, output quantities, environmental parameters, conversion of angled geometry to blocks, and miscellaneous simulator values.

To edit the simulation parameters, on the Analysis menu, select Simulation Parameters.

This shows the simulation parameters dialog. The parameters are split into several categories, with each category on another tab of the dialog.

19.1.1. Time

All time-related values can be entered on the Time tab as shown in Figure 134.

pyro ui dialog sim params time
Figure 134. Time tab of the simulation parameters dialog
Start Time
A remapping of simulation time, t=0, to a different time. This is used to format the output time, and can be useful for recreation scenarios.
End Time
The ending simulation time.
Initial Time Step
Overrides the default time step.
Do not allow time step changes
Prevents FDS from dynamically altering the time step.
Do not allow time step to exceed initial
Prevents FDS from allowing the time step to go above the initial time step.

19.1.2. Output

The Output tab provides fine-grained control of how output values are recorded.

pyro ui dialog sim params output
Figure 135. Output tab of the simulation parameters dialog
Enable 3D Smoke Visualization
Whether to show smoke in the results. If enabled, the visualization can be based on various species in the model.
Limit Text Output to 255 Columns
Limits how many columns are written to CSV output files.
Output File Write Intervals
Specifies intervals at which to write to various output files.
Limit HRR to Gas-Phase Combustion
Only the contribution from gas-phase combustion is included in the total Heat Release Rate.

19.1.3. Environment

The Environment tab enables various ambient environmental properties to be set as shown in Figure 136

pyro ui dialog sim params environment 2022 1
Figure 136. Environment tab of the simulation parameters dialog

A unique aspect of this tab is the specification feature for gravity. Gravity, in each of the X, Y, and Z directions, can be defined as a ramped function. This allows users to model complex behavior of gravity in tunnel or space applications where spatial or temporal variations in direction may change the magnitude vector. Each ramp can be set to vary as a function of either the position along the X direction, or time.

19.1.4. Init Regions

While the Environment tab provides control over ambient environmental conditions, different temperatures, pressures, and mass fractions of species can be specified in various sub-regions of the model by using Init Regions.

To create an Init Region, exit the Simulation Parameters dialog, and on the Model menu, choose New Init Region.

This opens the Initial Region dialog as shown in Figure 137. Specify the desired temperature, pressure, or mass fraction of species to override in the region on the General tab and enter the volume parameters on the Geometry tab. Press OK to create the Init Region.

pyro ui dialog init region props
Figure 137. Init Region Properties

19.1.5. Wind

Wind parameters can be specified by checking Configure Wind and then clicking the Edit button. This will open the Wind dialog as shown in Figure 138.

pyro ui dialog sim params environment wind
Figure 138. Wind dialog showing a custom wind profile

The Wind Profile tab provides control over how the wind speed and temperature develops as a function of the elevation. There are two options available for defining the Wind Profile, Custom and Monin-Obukhov Similarity.

The Custom Profile parameters provide fine-grained control over the initial wind speed, direction, and velocity and temperature as a function of elevation.

Initial Wind Velocity
Can be specified using three methods.
Speed and Direction
Allows the absolute speed and direction to be specified. The direction is specified as an angle where 0° indicates a northerly wind that blows from north to south. An angle of 90° indicates an easterly wind that blows from east to west.
Friction Velocity (u*)
Speed is calculated by FDS using Monin-Obukhov similarity as defined in the FDS user’s guide. Direction is explicitly stated as defined above.
UV Components
The U and V components of velocity are defined, where U corresponds to the X axis and V corresponds to the Y axis.
Z Velocity
Allows the definition of the velocity component in the Z direction.
Speed Profile
Can be used to define the wind velocity in X,Y and Z directions as a function of Elevation.
Temperature Profile
This section defines the atmospheric temperature profile for the wind.
Ground Level
The elevation in the model where the 'Ground' plane (sea-level) is located, by default, this is at Z=0.0.
Lapse Rate
Defines a constant rate at which the temperature increases or decreases with elevation.
Z Temperature Profile
Alternatively, a custom function can be specified for the temperature as a function of elevation.

If the Wind Profile is set to Monin-Obukhov Similarity as shown in Figure 139, the wind profile is specified using a set of similarity parameters as defined in the FDS User’s Guide.

pyro ui dialog sim params environment wind mo
Figure 139. Monin-Obukhov Similarity wind parameters
Thermal Stability
Indicates the stability of the temperature with rises in elevation. This can be set to several predefined values or to a custom value.
Landscape
Indicates the type of terrain in the model. This can also be set to several pre-defined values or a custom value.
Reference Height
Defines a height at which various parameters were measured, such as the wind Speed, Friction Velocity and Scaling Potential Temperature. If the scaling potential temperature or friction velocity are unknown, they will be calculated by FDS using the speed, reference height, and landscape value.

The Speed Change over Time tab allows control over the wind velocity as a function of time. While the wind profile determines the base speed at various locations and elevations in the model, the speed change over time parameters provide multipliers that are applied to these values to vary them over time.

The Natural Wind tab provides the ability to allow wind to develop naturally by specifying pressure drops over distance. This may be useful for modeling transit tunnels.

19.1.6. Simulator

The Simulator tab provides control over the simulator used in FDS. Refer to the FDS User Manual for more information on various parameters.

19.1.7. Radiation

The Radiation tab provides control over radiation parameters used in FDS. Refer to the FDS User Manual for more information on radiation parameters.

19.1.8. Angled Geometry

PyroSim allows obstructions and holes to be drawn that are not aligned with the solution mesh needed by FDS (Figure 143). To write the FDS input file, PyroSim must convert the objects that are not immersed boundary obstructions to axis-aligned blocks, first. PyroSim will either do this automatically when the FDS input file is generated, or this can be done manually for individual objects by right-clicking the object and selecting Convert to Blocks. For more information about immersed boundary obstructions, see FDS GEOM.

The Angled Geometry tab of the simulation parameters dialog provides default parameters that control conversion of obstructions and holes into blocks for the FDS input file as shown in Figure 140.

pyro ui dialog sim params angled geometry 2021 1
Figure 140. Angled Geometry tab of the simulation parameters dialog
Conversion Filtering
Controls which objects are converted into blocks.
Rasterize axis-aligned
This option forces non-GEOM objects that are axis-aligned to be rasterized.
Rasterize GEOM
Forces immersed boundary (GEOM) obstructions to be rasterized and written as OBST records rather than GEOM records. This option is only available if FDS GEOM is enabled. See FDS GEOM for more information.
Grouping
Controls how resulting objects are created after being converted to blocks. This is more relevant to manual conversion of objects to blocks.
Group blocks into composite objects [default]
For each converted object (such as a wall), creates one resulting object that is a composite of all the sub-blocks.
Create an object for each block and add to a group
Creates a new PyroSim object for each resulting block. These objects are then added to a group representing the original object.
Block Size
Controls how large resulting blocks may be, see Merging converted blocks below.
Allow resulting blocks to span multiple mesh cells [default]
Resulting adjacent blocks with the same properties are merged into one block, vastly reducing the number of produced blocks (Figure 141).
Force blocks to be no larger than one grid cell thick
Blocks will not be merged (Figure 142). This may create great numbers of blocks that will take additional memory but have the advantage of being more easily deleted.
Thickening
Controls whether objects are allowed to be thin.
Allow thin obstructions [default]
Allows objects to become thin as shown in Figure 144. This may be overridden for obstructions by turning on Thicken in the obstruction properties dialog.
Force all obstructions to be thickened
Prevents all obstructions from becoming thin (Figure 145).
Merge objects with identical properties [default=true]
Allows blocks to be merged across source objects if their resulting blocks have similar properties. For instance, if this is true and two walls are drawn with similar properties, their converted blocks will be merged into the same group or composite object. This can further reduce the number of resulting objects.
Separate disjoint objects [default=true]
Prevents objects' block from being merged if their blocks do not touch.
Ignore names while merging [default=false]
Controls whether names are considered when determining whether objects are "similar."
Merging converted blocks
pyro scrn blocks span cells
Figure 141. Span mesh cells
pyro scrn blocks one cell
Figure 142. No larger than one cell
Effect of thickening on converted blocks
pyro scrn wall angled
Figure 143. Original wall
pyro scrn wall angled thin
Figure 144. Allow thin obstructions
pyro scrn wall angled thick
Figure 145. Thicken obstructions

19.1.9. Zones

The Zones tab provides control over parameters related to filling pressure zones used in FDS. Refer to the FDS User Manual for more information on filling pressure zones.

19.1.10. Misc Tab

This tab allows some miscellaneous simulation and model properties to be set.

pyro ui dialog sim params misc
Figure 146. Misc. tab on the Simulation Parameters dialog
Default Surface Type
This specifies the surface to apply to mesh boundaries, solid objects, and vents by default.
Force the Mixture Fraction Model (If Needed)
This detects if an output quantity is being used, such as by a device,
Texture Origin
Sets the global XYZ position of all texture origin points. See Section 7.4 for more details on textures.

19.2. OpenMP Environment

As of FDS version 6.1, FDS added multithreading support using a library called OpenMP. OpenMP will automatically be used to utilize multiple processing cores, if available, during the simulation procedure. The behavior of OpenMP during an FDS simulation is not controlled by the FDS input file, but rather by environment variables.

The OpenMP environment dialog provides a way to edit the environment variables that control OpenMP (Figure 147). These settings are applied to the execution context created by PyroSim and do not alter system environment variables.

pyro ui dialog openmp environment
Figure 147. The OpenMP Environment dialog
OpenMP Threads
Controls the OMP_NUM_THREADS variable and limits number of threads OpenMP is able to use when running FDS in a single MPI process.
OpenMP Threads MPI
Controls the OMP_NUM_THREADS variable and limits number of threads OpenMP is able to use when Running FDS in parallel.
OpenMP Stack
Controls the OMP_STACKSIZE variable which controls the amount of memory available to OpenMP threads.

When left unset, OpenMP calculates a value (for example, 32-bit OpenMP uses 256M). Because the OpenMP’s calculated value tends to cause FDS to crash with a segmentation fault, PyroSim sets this value to 16M by default. An upper bound suggested by NIST is 200M.

19.2.1. OpenMP Optimization

As of FDS version 6.7.8, two separate executables are provided for optimized performance. These are bundled as fds.exe and fds_openmp.exe, the former being optmized for single-threaded calculations and the latter being optimized for multi-threaded calculations. PyroSim will automatically select the correct executable if detected for the type of calculation being done.

19.3. Run FDS

Once you have created a fire model, you can run the simulation from within PyroSim. FDS actions can be accessed from either the Analysis menu or the main toolbar, as shown in Figure 148. To begin a simulation: on the Analysis menu, click Run FDS. or click pyro ui icon run from the main toolbar. Simulations launched in this way can use multiple OpenMP threads, but will not use multiple MPI processes.

pyro ui toolbar fds 2023 1
Figure 148. The FDS Toolbar

PyroSim will create a sub-directory of the current PyroSim file to store FDS input and results. So for instance, if the PyroSim file is named C:\pyrosim_files\switchgear.psm, the results will be stored in C:\pyrosim_files\switchgear.

PyroSim will save a copy of the current PyroSim file into this directory and create the following files:

FDS input file (.fds)
Contains all the data necessary to run the FDS simulation.
Views file (.views) [optional]
Contains information about the views.
Floors file (.floors)
Contains information about the floors.
PyroGeom file (.pyrogeom) [optional]
Contains detailed information about CAD objects, obstructions, and vents before they were converted to blocks. See Section 19.8 for more information.
Smokeview INI file (.ini) [optional]
Contains initialization information for Smokeview and view information if the Views file was not written.
GE1 file (.ge1) [optional]
Contains basic information about CAD objects, obstructions, and vents before they were converted to blocks.

The file preferences control whether the optional files are written, see Section 2.8 for more information.

The input files will automatically be named after the PyroSim file. With the default preferences, for the "switchgear" example, the files would be switchgear.fds, switchgear.views, switchgear.pyrofloors, and switchgear.pyrogeom. All result files from FDS will also be stored in this directory.

Next, the FDS Simulation dialog shown in Figure 149 is launched. This dialog, which shows FDS progress and messages, can be minimized and you can continue using PyroSim (and even run additional simulations) while a simulation is running.

pyro ui dialog fds simulation
Figure 149. The FDS simulation dialog
Save Log
You can save the simulation log at any time by clicking this button. The log will be saved as a text file.
Show Results
You can run the 3D Results viewer while the simulation is in progress by clicking this button. For details on how to use the 3D Results, please consult the Results User Manual. The 3D Results will run automatically when the simulation is finished.
Stop
Will cause PyroSim to create a .stop file that signals FDS to stop the simulation, but also write out a checkpoint file that can be used to resume the simulation later. There is often a significant delay between the time when you click the Stop button and when the simulation actually terminates. This is because FDS checks for the stop file at the same rate that it updates the progress information.
Kill
Will immediately terminate the current simulation, you can click Kill or close the dialog. You will not be able to resume the current simulation if you kill it.

19.4. Parallel Execution

PyroSim includes support for FDS’s MPI-based multi-process execution. When running a simulation with multiple MPI processes, all of the computation within each of the meshes can take place independently. Assuming a simulation executes in t seconds using only one processor, the best possible performance improvement using n processors and n meshes is a reduction to t/n seconds.

To launch a simulation that uses multiple MPI processes:

  • On the Analysis menu, click Run FDS Parallel.

or

  • Click the down arrow next to the Run FDS button (pyro ui icon run fds arrow) and select pyro ui icon run fds parallel Run FDS Parallel.

Before running a parallel simulation, you may want to take into account some guidelines:

  • Use at least as many meshes as available processors (or cores). If there are 4 available processors and only two meshes, the additional two processors will not be used.
  • Do not overlap meshes. Since information is exchanged between meshes at the edges, it is ideal to organize meshes in such a way that they touch, but do not overlap. It is not recommended to embed a fine mesh within a coarse mesh in an attempt to improve localized mesh resolution. Because information is exchanged at mesh boundaries, the outer mesh will not receive any data from the inner mesh.
  • Do not allow a fire source to cross mesh boundaries. When a fire source crosses mesh boundaries, it is not possible to maintain the same level of simulation accuracy.

For a detailed list of suggestions and information about running FDS in parallel, please consult section 6.3.2 of the FDS Users Guide.

19.5. Cluster Execution

PyroSim supports the ability to run an FDS simulation on a network cluster using MPI. This has similar restrictions to running a parallel simulation, in that each grid is run in a separate process. The cluster may be composed of several computers, or nodes, and each node may have any number of processors.

Cluster simulations have the following configuration requirements:

  • PyroSim must be installed in the exact same folder on all cluster machines. This requirement is imposed by the way MPI’s HYDRA process scheduler locates a program called pmi_proxy.exe. It is not necessary to license PyroSim on machines that will be used only as simulation cluster nodes.
  • All PyroSim installations must be the exact same version. This ensures that the same version of FDS is used in each location.
  • The simulation folder where input and results are stored must be available to all cluster machines via the same UNC path. The UNC path may not contain spaces.

To launch a cluster simulation within PyroSim:

  • On the Analysis menu, click Run FDS Cluster.

or

  • Click the down arrow next to the Run FDS button (pyro ui icon run fds arrow) and select pyro ui icon run fds cluster Run FDS Cluster.

This will launch the Cluster FDS Parameters dialog as shown in Figure 150.

pyro ui dialog cluster fds params
Figure 150. The Cluster FDS Parameters dialog

All nodes in the cluster can be entered in the table, along with the number of processes to launch on each node.

Assigned Meshes
Previews which FDS meshes will run on each computer, which is determined by the order of the meshes and the order of the hosts.
FDS File Location
Must be in a directory that is visible to all nodes in the cluster.

Click the OK button to begin the simulation.

All input and output files will be stored in the same directory as the specified FDS file. In addition to the standard input files, PyroSim will also copy the appropriate FDS and MPI executables into the FDS file’s directory. This ensures that all nodes in the cluster use the same versions of FDS and MPI.

19.6. Cloud Execution

PyroSim supports the ability to run an FDS simulation in the cloud. PyroSim currently integrates with CFD FEA Service’s Cloud HPC. Users can view pricing details and register for Cloud HPC on their website.

To launch a cloud simulation within PyroSim:

  • On the Analysis menu, click Run FDS Cloud.

This will launch the Cloud FDS Parameters dialog as shown in Figure 151.

pyro ui dialog cloud fds params
Figure 151. The Cloud FDS Parameters dialog
Cloud Provider
Determines the Cloud Provider to use in running the simulation. PyroSim currently only integrates with CFD FEA Service.
API Key
A required field that is used to authenticate with the Cloud Provider. You may locate your private API Key on the CFD FEA profile page after you have registered.
FDS Version
Used to select the FDS version to run the simulation with. Available versions must be compatible with both PyroSim and the Cloud Provider.
Number of vCPUs
Determines the number of Virtual CPUs to provision for the Virtual Machine in the Cloud.
Memory Options
Determines the amount of memory (GB) per Virtual CPU provisioned.

The Cloud FDS Simulation dialog, as seen in Figure 152 has a few distinct differences from the normal FDS Simulation dialog.

pyro ui dialog fds simulation cloud
Figure 152. The Cloud FDS Simulation Dialog

After a simulation is launched in the cloud, the Cloud FDS Simulation dialog will not keep track of its status. It instead cedes to the dashboard of the Cloud Provider once the simulation has successfully been started. The simulation will continue to run, even after you close the Cloud FDS Simulation dialog. You may access the dashboard page for your simulation from the link provided in the Status field on the dialog.

The behavior of the Kill and Stop buttons may change depending on your Cloud Provider. For CFD FEA, the Kill button will wipe the simulation and not produce any results, while the Stop button will save the simulation and its results at its current step.

Users may also find links to the dashboards for the available Cloud Providers from within PyroSim:

  • On the Analysis menu, navigate to Manage Cloud Simulations to view a list of the available Cloud Providers.

19.7. Resuming a Simulation

If an FDS simulation has been gracefully stopped by pressing the Stop button in the simulation dialog, it can later be resumed. To do so, on the Analysis menu, click Resume FDS. This will cause an additional RESTART flag to be written to the FDS input file. When FDS detects this flag it will automatically attempt to reload the previous execution state from the hard disk and resume where it left off. If FDS is unable to load the previous execution state, it will exit with an error.

19.8. PyroGeom File

When PyroSim creates an FDS input file, it also outputs a PyroSim Geometry (.pyrogeom) file if enabled in the preferences, see Section 2.8.5. This file contains information about the scene geometry, including obstructions, vents, meshes, and other CAD data before they are converted to blocks. This allows the Results to show a detailed, animated view of the model along with FDS results.

Each object in this file is linked with the corresponding FDS blocks in the input file. This allows the Results application to show and hide the detailed objects that are activated/deactivated over time due to control logic in the FDS input file (see Chapter 16). In order to make this work correctly, however, PyroSim must perform some additional processing on the geometry, including the following:

  1. Before converting objects into blocks, PyroSim detects which obstructions intersect holes that have activation logic.
  2. For each of these obstruction/hole pairs, PyroSim subtracts the hole from the obstruction and creates a new obstruction that is the intersection of the original obstruction with the hole. If the original obstruction had no control logic, the new obstruction’s control logic is the inverse of the hole’s logic. Otherwise, the new obstruction’s control logic is the logical AND of the original obstruction’s logic and the inverse of the hole’s logic. This causes it to appear and disappear at the correct times.
  3. Because the holes with activation logic have been pre-subtracted from the obstructions, they are removed from the list of objects to send to FDS and will not be converted into HOLE records.

If there are any OBST, VENT, or HOLE records in the Additional Records section of the Record View, the following message will appear in PyroSim when writing an FDS file:

The additional records section contains OBST, VENT, and/or HOLE records. These objects will not appear in the PyroSim Geometry file and will prevent the geometry file from containing activation logic.

This message indicates that the PyroGeom file will no longer accurately represent FDS objects as they are activated and deactivated. Instead, the PyroGeom objects will always be visible, and all obstructions have all holes subtracted from them in this view (but not in the FDS input file). Objects will no longer show and hide as they would before. Because of this, the FDS snapped obstructions are shown by default in the Results instead of the PyroGeom file.

In order to fix this issue, the OBST, VENT, and HOLE records must be moved from the Additional Records section into the PyroSim model. This can be accomplished by cutting the text of these records and pasting them into the 2D or 3D model view.

20. Post-Processing

PyroSim supports post-processing in three ways:

  • Launching of PyroSim’s Results viewer,
  • Launching of Smokeview from within PyroSim, and
  • Time history plots of output data.

20.1. Launching Results

Results is a powerful post-processor for FDS created by Thunderhead Engineering. It allows the user to view the FDS model along with results in 3D. For Pathfinder users, it also allows the user to combine evacuation results in the same window. For more information, see the Results User’s Manual located in your PyroSim install folder or under the Help menu.

By default, if you run FDS from within PyroSim, the Results Viewer will automatically be launched at the end of the FDS run. This can be configured in the FDS Simulation dialog by checking "Show results when finished", or by going to the FDS tab in the Preferences dialog and selecting "Run Results when FDS simulation completes". Alternately, you can click (pyro ui icon results 2023 1) on the Analysis toolbar to launch the most recent results. You may also run the Results at any time by going to the Results menu and selecting View Results. This will prompt you to choose a Results file (.smv) to open.

20.2. Launching Smokeview

Smokeview is a post-processor for FDS supplied by NIST. It allows the user to view the FDS model along with results in 3D. The user can view animated smoke, slices, Plot3D, and various other output quantities.

If you run FDS from within PyroSim, Smokeview will not be automatically launched at the end of the FDS run. You may run Smokeview at any time by going to the Results menu and selecting Open Smokeview. This will prompt you to choose a Smokeview file to open.

20.3. Time History Results

Time history results are saved for heat detectors, thermocouples, and other fire output. After running an FDS simulation, the most recent plots can be viewed by clicking pyro ui icon plots on the FDS toolbar. This will show a plot of thermal results. Device and control results may also be viewed by by clicking the down-arrow and selecting the desired plot.

Not all results are supported for viewing in PyroSim. FDS output files that are known to not display correctly in PyroSim include CHID_pressit.csv and CHID_cpu.csv. The files CHID_devc.csv, CHID_hrr.csv, and CHID_ctrl.csv are expected to work in most configurations.

Additional plots may be shown by going to the Results menu and choosing View Time History Results. A typical heat detector plot is shown in Figure 153. The user can export the image to a file.

pyro scrn time history
Figure 153. Time History Results

20.4. Archiving Results

After running a simulation, the results may be archived along with the FDS and PyroSim input files. To do so, on the Results menu, click Archive FDS Results. This will show the Archive FDS Results dialog as shown in Figure 154.

pyro ui dialog archive fds results
Figure 154. Archive FDS Results dialog
Archive name
Identifies the archive for later retrieval. The default name contains the name of the model along with a date stamp.
Retain current results
If checked, the current results will remain in place and a copy will be made for the archive. If unchecked, the current results will be deleted.
Compress to a ZIP file
if checked, the archive will be stored in a compressed ZIP file. If unchecked, the archive will be stored as a duplicate folder of the current results.

Press OK to create the archive. The archive will be stored in the directory of the current PyroSim file.

20.5. Restoring Archived Results

Once results have been archived, they can be later restored. To do so, on the Results menu, click Restore FDS Results. This will show the Restore Archived Results dialog as shown in Figure 155.

pyro ui dialog archive fds results restore
Figure 155. Restore Archived Results dialog
Destination directory
Indicates the folder where the results will be restored. By default, this is the results directory of current PyroSim file.
Retain selected archive
If checked, the selected archive will be kept on disk. If it is unchecked, the selected archive will be deleted.
Available Archives
shows a record of all archives made under the current PyroSim file. Select one of these archives and then press the OK button to restore the archive.

21. Managing Data Libraries

Libraries of material, or other model data, can reduce errors and speed the creation of new models. The user can import data from the library into a new model. This section describes how to manage PyroSim libraries.

21.1. Create and Manage Your Own Libraries

You can create and manage your own libraries for data that you commonly use. A library is a single file that can contain several categories of objects, such as Materials, Gas-phase Reactions, and Surfaces.

To manage your library:

  1. On the Model menu, click Edit Libraries.
  2. Select the Category that you want to manage and move selected items from the Current Model into the Library, Figure 156.
  3. Click Save Current Library and save the library in a location and with a name that you can access in the future.
  4. Close the PyroSim Libraries dialog.
pyro ui dialog libraries
Figure 156. Creating a library of materials

After you have saved your library, you can load it into a new model and copy data from the library to your model.

21.2. Use the Library Provided with PyroSim

PyroSim includes a library of reaction and material data gathered from industry resources, the verification analyses provided with FDS, and predefined FDS values. Each of these reactions and materials has a reference in the Description that documents the source of the data. The properties in this library should be used as a starting point for your own settings, and not as a "standard" library.

It is your responsibility to verify that this data is correct and applicable to your simulation.

To import data from the PyroSim database:

  1. On the Model menu, click Edit Libraries.
  2. Click Load Library and open the property_library.fds file that is found in the C:\Program Files\PyroSim 2023 folder.
  3. In the Category box, select Gas-phase Reactions and copy appropriate reactions into your model.
  4. In the Category box, select Materials and copy the appropriate materials into your model.
  5. Close the PyroSim Libraries dialog.

21.3. Import a Material or Reaction from the FDS 4 Database

First, a caution. Version 4 of FDS provided a database that included several common materials and reactions. In version 5, the FDS developers made a conscious choice to remove material and reaction data. Many of the materials in FDS 4 were simply examples, and they were worried that users were applying them without using their own test or lab data as validation. In this section, we describe how to import the FDS 4 database, however, it is your responsibility to verify that this data is correct and applicable to your simulation.

You can convert the old FDS 4 materials and reactions for use in PyroSim 2007.

To import FDS 4 data:

  1. On the File menu, click Import and select FDS File.
  2. In the Open dialog, browse to Program Files/PyroSim 2007/fds folder and open the database4.data file.
  3. You will receive conversion warning messages depending on what is converted and what properties are defined. Because of the change in material and reaction models between FDS 4 and FDS 6, you should review these carefully and edit the imported data appropriately for use with FDS 6. You can save the warnings to a file for future reference.
  4. Click OK to close the File Conversion Warnings dialog.
  5. The imported materials and reactions are now available for use in PyroSim 2007.

22. Advanced FDS Parameters

PyroSim tries to support FDS completely, but there are some more obscure features that might not be found in the PyroSim user interface. For these items, PyroSim provides additional mechanisms to allow these features through the Additional Records section of the Record View and the Advanced tab of some dialogs.

22.1. Additional Records Section

There are times when PyroSim does not support an entire record. In this case, the record can be entered into the Additional Records Section of the Record View as shown in Figure 157.

pyro scrn additional records
Figure 157. Additional Records Section

When PyroSim write the FDS input file, it copies the contents of the Additional Records Section exactly at the beginning of the FDS file.

Because PyroSim performs no validation on text in this view, it is up to the user to ensure that the statements are well-formed FDS statements and that they do not conflict with any records generated by PyroSim. In addition, none of the records written in this section can be referenced by other PyroSim objects. For instance, if a SURF record is entered in this section, it cannot be referenced by an obstruction in the PyroSim user interface. The only way to do so would be to write the obstruction in the Additional Records Section as well.

Some records, such as MISC, RADI, and others that occur once in the FDS input file can be entered in the Additional Records Section even if PyroSim has generated the record already. For instance, if PyroSim generates the record, &MISC TMPA=30.0/, you can still enter another entry for MISC in the Additional Records Section, such as &MISC P_INF=2.0E5/. FDS will merge these MISC records together to form &MISC P_INF=2.0E5, TMPA=30.0/.

22.2. Advanced Parameters

Sometimes PyroSim may support a record but may not support it completely. For many of these records, including SURF, REAC, MATL, PART, TIME, DUMP, RADI, and MISC, PyroSim provides a way to enter additional fields. For Surfaces, Materials, Reactions, and Particles, there is an Advanced tab in the properties dialog where these additional fields may be entered, as shown in Figure 158. To enter additional fields for TIME, DUMP, RADI, and MISC, on the Analysis menu choose Simulation Parameters then choose the Misc. tab.

pyro ui dialog edit surfaces advanced
Figure 158. Additional Fields

When entering additional fields, you must specify the field name and the field value. These additional fields will then be appended to the FDS record generated by PyroSim. As in the Additional Records Section, PyroSim will write these fields to the file exactly as entered in the table, so care must be taken by the user to make sure they are correct.

When PyroSim generates an FDS input file, some model objects may be ignored. PyroSim attempts to use a system of dependencies to determine whether or not a PyroSim object needs to be written out to the input file. Occasionally, this can lead to problems, especially when the Additional Records section is in use. For some objects, this default behavior can be modified by specifying that PyroSim always write the object to the input file, via the Always Write FDS Record checkbox in the Advanced tab.

23. Troubleshooting

23.1. How to Activate a Node-Locked License

23.1.1. Online

With the License dialog open, as shown in Figure 159, Step 1 is to click the Online button under the 'License File' option. Step 2 is to paste the activation key that you received from Thunderhead and click OK.

pyro ui dialog license activation online
Figure 159. License Activation Dialog

23.1.2. Local License file

This is similar to the Online activation, except that you will click the Local button instead of "Online" and find the license file that was emailed to you from Thunderhead on your computer. This is often in Docwnloads where you saved it from the email you received.

23.2. Floating License Server Problems

The floating license server provides an administration web service that can assist with diagnosing many floating license problems. If the license server is installed on the local machine, the license administration server can be accessed at the following web address:

http://localhost:5054

If the license server is installed on a remote machine, replace "localhost" with the name of the remote machine (i.e. the host name of the floating license server).

Once you have opened the Reprise License Server Administration page, you can use the Status commands to attempt to debug the license server problem yourself, or you can send a diagnostic report to support@thunderheadeng.com for assistance. To generate a diagnostic report:

  1. Under RLM Administration Commands, click Diagnostics
  2. Click Run Diagnostics
  3. Email the generated file (rlmdiag.txt) to support@thunderheadeng.com

23.3. Floating License Server Too Old, Update Required

PyroSim 2017 and newer require and updated version of the Thunderhead License Manager. You can download an updated license manager from the PyroSim download page:

https://support.thunderheadeng.com/docs/license-manager/2020-1/user-manual/

The license manager is often not installed on the same computer where PyroSim is running and instead installed on a shared server. Please review the Floating License Manager Installation guide for details on the install process.

In most cases, the newer version of the floating license manager will replace the previous version, the LIC files will be retained throughout the update process, and PyroSim will authorize against the updated server with no additional work.

23.4. Licensing/Registration Problems

If you experience trouble registering PyroSim, please contact support@thunderheadeng.com.

23.5. Video Display Problems and Crashes on Startup

PyroSim utilizes many advanced graphics card features in order to provide accelerated and enhanced display of models.

Sometimes these graphics features combined with certain display drivers can cause display issues or crashes on startup. The first step in these cases is to ensure you have the latest operating system updates and graphics drivers installed. If you do and you still have display problems or crashing on startup, you can start PyroSim in Safe Mode, which disables several graphics features. To start in Safe Mode:

  1. Open a command-prompt by opening the start menu and typing cmd. Then press Enter.
  2. In the command-prompt, navigate to the PyroSim install folder by typing cd "C:\Program Files\PyroSim 2023".
  3. Start PyroSim in Safe Mode by typing pyrosim -DSafeMode.
  4. If PyroSim starts up successfully, you can see which display properties were changed. Under the File menu, click Preferences, and then click on the Rendering tab.
  5. You can enable each item one at a time to see which ones caused the issue.

If you encounter display problems or crashes, please let us know the make/model of your video card and what video driver you are using, even if Safe Mode fixes your issues. That will help us improve the software in future updates.

23.6. Memory for Large Models

When running large models, it is possible that an out of memory error will be encountered. If this occurs, you can increase the default Java heap size. In our experience, the maximum size can be specified to approximately 70% of physical memory. By default, PyroSim will specify a java heap size of 50% of physical memory.

To specify the memory, you can either run from a command line or change the Start Menu shortcut properties. To run from a command line, open a command window and then go to the PyroSim installation directory (usually C:\Program Files\PyroSim 2023). Execute PyroSim on the command line using the -JXmx argument. In this argument, the J specifies that the command will be passed along to the Java VM, not PyroSim. For example, pyrosim -JXmx1200m will request 1200 MB of memory.

To edit the PyroSim shortcut properties . Right-click on the PyroSim icon . Select the Shortcut tab . Edit the Target by adding a space and -JXmx1200m to the end of the Target.

A typical Target will then read C:\Program Files\PyroSim 2023\pyrosim.exe" -JXmx1200m.

23.7. Parallel Simulation (MPI) Problems

23.7.1. PyroSim Requires a Password to Run Parallel

MPI processes communicate using network protocols that are disabled by default for accounts without passwords. In order to work, MPI must have access to a password-protected account. Users without passwords can overcome this problem in a couple ways:

  • Set a password for the account.
  • Instruct MPI to authenticate using an alternate account.

To instruct MPI to authenticate using an alternate account (e.g. set to mpi_user on a computer named aurora), you must issue a command using the console.

Microsoft Windows [Version 10.0.18363.778]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\>cd "\Program Files\PyroSim {versionyear}\fds\mpi"

C:\Program Files\PyroSim {versionyear}\fds\mpi>mpiexec -remove
Account and password information removed from the Registry.

C:\Program Files\PyroSim {versionyear}\fds\mpi>mpiexec -register
account (domain\ user) [aurora\thornton]: aurora\mpi_user
password:
confirm password:
Password encrypted into the Registry.

To verify that MPI will function with the account information:

C:\Program Files\PyroSim {versionyear}\fds\mpi>mpiexec -validate
SUCCESS

23.7.2. PyroSim Repeatedly Requests a Password

PyroSim attempts to validate the MPI configuration prior to running the simulation. If this validation fails, PyroSim assumes it was because of a password mismatch. If you know this is not the case (e.g. you know you entered your password correctly), PyroSim may be responding incorrectly to a different error. To diagnose this error, please run PyroSim in safe mode. The error output should appear at the bottom of the console window. Forward this text to <support@thunderheadeng.com> and the support staff will help resolve the problem.

23.7.3. FDS Completes Immediately with No Output

This indicates that MPI started successfully, but the FDS executable failed to run. To gather additional information about this error, you must run the MPI executable manually from the command prompt and observe the error output. To run the MPI executable manually, open a console window and issue the following commands:

Microsoft Windows [Version 10.0.18363.778]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\>cd "\Program Files\PyroSim {versionyear}\fds"

C:\Program Files\PyroSim {versionyear}\fds>fds

The subsequent output should resemble the start of a successful FDS run; however, in this case it will probably contain error output. Copy this error output and email <support@thunderheadeng.com>, the support staff will help resolve the problem.

23.8. Additional Support Resources

PyroSim has a support forum located at https://thunderheadeng.freshdesk.com/support/discussions.

If you are unable to resolve your issues from the suggestions in the table, please contact Thunderhead Engineering Email Support.

The PyroSim software is available for download from the release notes: https://support.thunderheadeng.com/release-notes/pyrosim/

The same site provides PyroSim user manuals and example problems. Please follow the examples to become familiar with the software.

Mail should be sent to:

Thunderhead Engineering
403 Poyntz Ave. Suite B
Manhattan, KS 66502-6081
USA

Appendix A: Opening FDS v4 and PyroSim v2006 Files

Due to the differences between versions 4 and 5 of FDS, it is not always possible to automatically convert legacy FDS input files and PyroSim 2006 PSM files to the new version. However, many conversions are possible and in many cases PyroSim can completely convert old input files to the new format.

PyroSim will begin the conversion process as a result of either of two actions:

  • Opening a PSM file saved with a version of PyroSim designed to work with version 4 of FDS
  • Importing an FDS input file designed to work with version 4 of FDS.

In many cases, PyroSim 2015 can import records intended for version 4 of FDS that PyroSim 2006 could not. This is because PyroSim 2015 supports a broader range of FDS features than the previous version. Examples of previously unsupported version 4 features that can now be imported include solid-phase thermocouples and species.

The process for converting PSM files and FDS input files is identical. PyroSim first loads the data into a form designed to work with version 4 of FDS, then applies conversion logic to produce the corresponding data structures designed to work with version 5 of FDS. For more information about how the data is converted from a format suitable for version 5 of FDS to version 6 of FDS, see Appendix B. When PyroSim encounters a record that cannot be automatically converted, a warning message is generated. Each warning contains information about the source of the problematic record and the action taken. Some records are simply dropped and others are converted to default values. If a record is encountered that cannot be converted, but contained only default values and would not have affected the simulation, that record is dropped without issuing a warning.

Great care was taken to ensure that PyroSim generates these warnings whenever they contain important information, but not so often that they distract from important issues. When in question, PyroSim will err on the side of caution and generate a warning message. An example of this warning dialog is shown in Figure 160. If no warning dialog appears, PyroSim was able to convert the input file without encountering any compatibility issues.

pyro ui dialog import warnings
Figure 160. Example import warnings

In most cases, the following records can be converted with no additional input:

  • Geometry Data (walls, holes, triangles, etc)
  • Textures
  • Mesh
  • Floors
  • Particles
  • Smoke Detectors
  • Thermocouples
  • Heat Detectors
  • Boundary Quantity Output
  • Plot3D Data
  • Isosurfaces
  • Slices
  • Unsupported Records

A.1. Global Simulation Parameters

The following items that can be set in the Simulation Parameters dialog of PyroSim 2006 are not supported in PyroSim 2015 and will be dropped.

  • Under the Simulator tab, Incompressible Calculation (excludes heat)
  • Under the Environment tab, External Temperature
  • Under the Particles tab, Droplet Insert Interval
  • Under the Particles tab, Max Particles per Second

All other simulation parameters will be converted to PyroSim 2015 without warnings.

A.2. Sprinklers and Pipes

All correctly specified sprinkler parameters are converted without warnings. If a sprinkler has been assigned a massless particle, however, that sprinkler will be assigned a particle with parameters from the make file, and a warning will be issued.

For FDS 4 sprinkler make files, PyroSim has a robust built-in parser that can handle both simple and complex spray patterns. The only requirement is that referenced make files must exist in the fds folder in the PyroSim install directory. PyroSim 2015 ships with the make files provided by NIST for FDS 4. If a file uses another make file, place it in this directory before importing or opening the file.

If there is a dry pipe delay greater than zero, PyroSim 2015 will create a single dry pipe with that delay and attach it to all the sprinklers in the model. Note, however, that in PyroSim 2015 the water pressure is specified per sprinkler rather than per pipe. Because of this, PyroSim will not convert the dry pipe pressure specified in the pipe record, and a warning will be issued.

A.3. Reactions

To convert reaction data into a form useable by version 5 of FDS, PyroSim 2015 must reverse-engineer the fuel molecule composition based on stoichiometric coefficients. To accomplish this, PyroSim uses the equations given in section 4.4.2 of the users guide for version 4 of FDS. The result is then checked to ensure that the total molecular weight is the same as the specified molecular weight. If this check succeeds, no warning will be issued. If the test fails, PyroSim will issue a "Converted stoichiometry" warning and you must manually update reaction data to ensure accurate simulation results.

A.4. Surfaces

Some surface properties are converted with no additional input or warnings, including surface names, colors, and textures. The different surface types, however, undergo more complicated conversions. The following describes how PyroSim 2006 surface types are converted to Surfaces and Materials in PyroSim 2015:

  • Inert and Adiabatic - converted directly.
  • Burner Fire - converted to a Burner Surface.
  • Fan/Wind - converted to a Supply surface if the air flow is negative, an Exhaust surface, otherwise.
  • Flammable Solid of Fixed Temperature or Heat Flux - converted to a Heater/Cooler surface.
  • Thermally Thick/Thin Flammable Solid - converted to a Layered Surface with one single-step reacting Material.
  • Flammable Solid (Constant HRR) of Fixed Temperature or Heat Flux - converted to a burner.
  • Thermally Thick/Thin Flammable Solid (Constant HRR) - converted to a Layered Surface with one non-reacting Material. The reaction is controlled at the surface.
  • Non-Flammable Solid of Fixed Temperature or Heat Flux - converted to a Heater/Cooler.
  • Thermally Thick/Thin Non-Flammable Solid - converted to a Layered Surface with one non-reacting Material.
  • Liquid Fuel - converted to a Layered Surface with one Liquid Fuel Material.
  • Charring Fuel - converted to a Layered Surface with one layer. The layer is composed of a water and a virgin material. The virgin material undergoes one reaction where half of it is converted to fuel and the other half is converted to the charring material specified in the original surface. This ratio may need to be adjusted after conversion.
  • Liquid Thermoplastic - converted to a Layered Surface with one Liquid Fuel Material.
  • Charring Thermoplastic - converted to a Layered Surface with one single-step reacting Material.

A.5. Thermally Thin Surfaces

Unlike PyroSim 2006, PyroSim 2015 requires that every layered surface specify a thickness \(\delta\) for each layer and that materials specify density \(\rho\), specific heat, and conductivity \(C\). In PyroSim 2006, there were a number of ways for thermally thin surfaces to either specify or omit these parameters. These surfaces allowed any one or more of \(C\), \(\delta\), and \(\rho\) to be specified in addition to \(C*\delta*\rho\). PyroSim 2015 will make a best-effort calculation of missing parameters. For instance, if \(C*\delta*\rho\) is specified along with two of the parameters, the third will be calculated; however, if more than one parameter is missing, PyroSim will use defaults for up to two of the parameters and calculate the third missing one. The default thickness for thermally thin surfaces is set to 1mm. In all cases where a default number has been assumed due to a missing parameter, a warning will be shown for the parameter.

A.6. Where is the Surface Database?

PyroSim 2015 does not currently ship with a surface database, but users can still make their own. In fact, many different objects can now be put into a database including materials and surfaces, species, reactions, particles, and several more. As common surface descriptions and other of these object properties become available from reliable sources in a format supported by version 5 of FDS, PyroSim will again ship with a pre-filled database.

Appendix B: Opening FDS v5 and PyroSim v2012 Files

Due to the differences between versions 5 and 6 of FDS, it is not always possible to automatically convert legacy FDS input files and PyroSim 2012 PSM files to the new version. However, many conversions are possible and in many cases PyroSim can completely convert old input files to the new format.

PyroSim will begin the conversion process as a result of either of two actions: * Opening a PSM file saved with a version of PyroSim designed to work with version 5 of FDS * Importing an FDS input file designed to work with version 5 of FDS.

The process for converting PSM files and FDS input files is identical. PyroSim first loads the data into a form designed to work with version 5 of FDS, then applies conversion logic to produce the corresponding data structures designed to work with version 6 of FDS. When PyroSim encounters a record that cannot be automatically converted, a warning message is generated. Each warning contains information about the source of the problematic record and the action taken. Some records are simply dropped and others are converted to default values. If a record is encountered that cannot be converted, but contained only default values and would not have affected the simulation, that record is dropped without issuing a warning.

Great care was taken to ensure that PyroSim generates these warnings whenever they contain important information, but not so often that they distract from important issues. When in question, PyroSim will err on the side of caution and generate a warning message. An example of this warning dialog is shown in Figure 160. If no warning dialog appears, PyroSim was able to convert the input file without encountering any compatibility issues.

In most cases, the following records can be converted with no additional input:

  • Geometry Data (walls, holes, triangles, etc)
  • Textures
  • Mesh
  • Floors
  • Smoke Detectors
  • Thermocouples
  • Heat Detectors
  • Boundary Quantity Output
  • Plot3D Data
  • Isosurfaces
  • Slices
  • Unsupported Records

B.1. Global Simulation Parameters

The following items that can be set in the Simulation Parameters dialog of PyroSim 2012 are not supported in PyroSim 2015 and will be dropped.

  • Under the Simulator tab, Isothermal Calculation
  • Under the Simulator tab, Include Gas Phase Flame Extinction
  • Under the Simulator tab, Use Moinuddin and Li Turbulent Model
  • Under the Simulator tab, Specify forced coefficient
  • Under the Simulator tab, Specify horizontal coefficient
  • Under the Simulator tab, Specify verticlal coefficient
  • Under the Radiation tab, Use Additional Fuel Bands

All other simulation parameters will be converted to PyroSim 2015 without warnings.

B.2. Reactions

While most reaction data can be converted easily, FDS6 does add new requirements to specify a valid reaction. Most notable is the requirement that a Fuel Species by specified by the user. This can be either a Predefined species, a User Defined species, or a Default species. When the Default species type is used, a generic, non-editable species called REAC_FUEL is added to the list of species. This species can be used the same way any other species would be, but its fields cannot be edited. All reactions defined in PyroSim 2012 or older automatically use the Default fuel type.

It should also be noted that in FDS6 based PyroSim versions, it is required that a reaction be active in order to simulate a fire. To make this transition easier, PyroSim automatically adds a reaction called PROPANE_REAC when converting PyroSim files that do not specify a reaction. The PROPANE_REAC attempts to mimic the default propane reaction that is used in FDS5.

The following items will be dropped from the Reaction record:

  • Under the Fuel tab, Mass Fraction of Fuel in Burner
  • Under the Fuel tab, Other atoms
  • Under the Fuel tab, Molecular Weight
  • Under the Fire Suppression tab, Limiting Oxygen Index
  • Under the Heat Release Rate tab, Use Eddy Dissipation model for heat release rate
  • Under the Heat Release Rate tab, C (C_EDC)
  • Under the Byproducts tab, Hydrogen Fraction
  • Under the Soot tab, Hydrogen Fraction
  • Under the Soot tab, Maximum Visibility
  • Under the Soot tab, Mass Extinction Coefficient
  • Under the Fuel tab, Ambient Oxygen Mass Fraction has moved to Simulation Parameters

B.3. Surfaces

Surfaces have undergone relatively few changes in from PyroSim 2012 to PyroSim 2015. However, a number of items are no longer supported in the new version.

The following records will be dropped:

  • A surface of type Fan will no longer set the FDS variable POROUS = .TRUE.
  • Under the Surface Props tab, Porous
  • Under the Surface Props tab, Surface Density
  • Under the Air Duct tab, Enable Air Duct
  • Under the Air Duct tab, Duct Path
  • Under the Air Duct tab, Maximum Over-pressure
  • Under the Air Leak tab, Porous

B.4. Particles

Unlike PyroSim 2006, PyroSim 2007 requires that every layered surface specify a thickness Delta (\(\delta\)) for each layer and that materials specify density Rho (\(\rho\)), specific heat, and conductivity (\(C\)). In PyroSim 2006, there were a number of ways for thermally thin surfaces to either specify or omit these parameters. These surfaces allowed any one or more of \(C\), \(\delta\), and \(\rho\) to be specified in addition to \(C*\delta*\rho\). PyroSim 2007 will make a best-effort calculation of missing parameters. For instance, if \(C*\delta*\rho\) is specified along with two of the parameters, the third will be calculated; however, if more than one parameter is missing, PyroSim will use defaults for up to two of the parameters and calculate the third missing one. The default thickness for thermally thin surfaces is set to 1mm. In all cases where a default number has been assumed due to a missing parameter, a warning will be shown for the parameter.

In PyroSim 2015, the interaction between particles and species has changed significantly. In PyroSim 2012, a particle could be attributed various Thermal Properties and Fuel Properties. Most of these variables have since been moved to the species object.

To handle converting legacy files, PyroSim 2015 generates a new species based on the Thermal / Fuel Properties of the legacy particle. This species is then assigned under the Liquid tab of the PyroSim 2015 particle.

The following is a list of items which are applied to the generated species:

  • Under the Fuel tab, Melting Temperature
  • Under the Fuel tab, Vaporization Temperature
  • Under the Fuel tab, Heat of Vaporization
  • Under the Fuel tab, Density
  • Under the Fuel tab, Specific Heat

Some items are not convertible. The following are dropped from the record:

  • Under the Fuel tab, Initial Temperature
  • Under the Fuel tab, Heat of Combustion

All other items are converted properly.

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.