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.9.1. 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. System Requirements
1.2.1. Minimum System requirements
Intel | AMD | |
Operating System: | Windows 10 | Windows 10 |
Processor: | Core i5 3570 (4 core) | Athlon x4 970 (4 core) |
Graphics Card: | Integrated HD Graphics | Integrated HD Graphics |
Memory: | 8GB RAM | 8GB RAM |
1.2.2. Recommended System requirements
Intel | AMD | |
Operating System: | Windows 11 | Windows 11 |
Processor: | Core i7 8700 (6 Cores / 12 Threads) | Ryzen 7 1700 (8 Cores / 12 Threads) |
Graphics Card: | NVIDIA GeForce GTX570 / AMD Radeon HD7870 | NVIDIA GeForce GTX570 / AMD Radeon HD7870 |
Memory: | 16GB RAM | 16GB RAM |
1.3. 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.5.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](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-check-for-updates.png)
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.4. 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.4.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.4.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.4.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.4.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.4.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.5. 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:
- Download and install a new version of FDS from NIST.
- On the File menu, click Preferences.
- Click on the appropriate Folder icon in the FDS Execution section to select the executable you want PyroSim to use.
- Click OK to close the Preferences dialog.
1.5.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 21.2.1.
1.6. 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.7. 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](https://files.thunderheadeng.com/support/images/pyro-scrn-overview.png)
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 () or press the appropriate hotkey from Table 3.
View | Hotkey |
---|---|
Front | CTRL+1 |
Back | CTRL+2 |
Left | CTRL+3 |
Right | CTRL+4 |
Top | CTRL+5 |
Bottom | CTRL+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](https://files.thunderheadeng.com/support/images/pyro-ui-toolbar-nav-3d.png)
- Select/Manipulate Tool (
)
- 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 (
)
- 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 (
)
- 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 (
), Zoom Tool (
), Zoom Box Tool (
)
- 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
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 () or pressing CTRL+r.
In addition, the camera can be reset to only the currently selected objects by clicking the Reset to Visible button (
) 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](https://files.thunderheadeng.com/support/images/pyro-scrn-floor-show_2023-1.png)
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](https://files.thunderheadeng.com/support/images/pyro-ui-toolbar-toggle-filters.png)
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](https://files.thunderheadeng.com/support/images/pyro-ui-toolbar-filters-mesh.png)
Filtering mesh elements
Background images attached to floors can be quickly shown/hidden using the Show Background Image filter button () 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 () and Decrease Font Size (
) 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 2023 3](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-prefs-pyrosim_2023-3.png)
- 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](https://files.thunderheadeng.com/support/images/windows-ui-explorer-pyrosim-backup-files.png)
- 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 ap
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 2023 3](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-keyboard-shortcuts_2023-3.png)
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 2023 3](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-keyboard-shortcut-listener_2023-3.png)
- 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 2023 3](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-prefs-record-view_2023-3.png)
- 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 2023 3](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-prefs-fds_2023-3.png)
- 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 asGEOM
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 2023 3](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-prefs-results_2023-3.png)
- 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 2023 3](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-prefs-rendering_2023-3.png)
- 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
).
- To define a custom color scheme:
- Close PyroSim
- Edit the
PyroSim.props
file - 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
- Save the edited
PyroSim.props
file - 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](https://files.thunderheadeng.com/support/images/pyro-ui-view-tree-views.png)
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:
- Either the 3D View or the 2D View is selected, depending which was active when the viewpoint was saved.
- The saved camera properties are restored.
- 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
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](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-section-box-props.png)
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:
- On the File menu, select Import FDS/CAD File.
- 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:
- On the File menu, click Save.
- 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:
- On the File menu, click Open.
- 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:
- On the File menu, click Write Protection.
- 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:
- On the File menu, click Write Protection.
- 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:
- On the File menu, select Import FDS/CAD File.
or click the Import button (
) on the main toolbar.
- 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:
- On the File menu, click Export, then click FDS File.
or click the Export button (
) on the main toolbar.
- 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, windows, and doors. This data can be used to generate simplified and more adjustable geometry in PyroSim. See Section 4.7.3 for more information. 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](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-import-units.png)
![pyro ui dialog import settings](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-import-settings.png)
![pyro ui dialog import options](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-import-options.png)
- 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. - 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.
- 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 theSpecular (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 toFrom Specular
, and the color components should be set toR
,G
, andB
, 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.
- 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).
- 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
- …
- …
- Layer1
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:
- On the File menu, select Import FDS/CAD File.
or click the Import button (
) on the main toolbar.
- Select the desired STL file and click Open.
- Enter the import options in the STL Import Options dialog as shown in Figure 27.
- Click OK to begin import.
![pyro ui dialog import stl 2022 1](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-import-stl_2022-1.png)
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:
- Open the desired RVT file within Revit.
- Under the File menu, click Export→IFC.
- Choose the desired IFC filename.
- Click Modify setup to choose different export settings, if desired.
- Click Export to save the file.
- 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:
- Open the desired RVT file within Revit Architecture.
- Click the Revit icon at the top left
.
- Select Export→CAD Formats→DWG.
- In the DWG Export dialog, for Export, select <In session view/sheet set>.
- For Show in list, select Views in the Model.
- 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).
- Click the Next. button and choose a file name for the DWG file.
- Click OK to create the DWG.
- 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:
- Open the desired RVT file within Revit Architecture.
- Click the Revit icon at the top left
.
- Select Export→FBX.
- Choose a file name for the FBX file.
- Click OK to create the FBX.
- 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:
- Download and install the appropriate plugin.
- 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.
- 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:
- 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. - 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.
- Transfer the FBX file and the texture folder to the computer that will be importing the FBX file into PyroSim.
- 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
- 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.
- Open the desired RVT file within Revit Architecture.
- Click the Revit icon at the top left
.
- Select Export→FBX.
- Specify the desired filename and click Save.
- Open AutoCAD.
- On the Insert tab in the ribbon, select Import.
- Select the FBX file created by Revit.
- The FBX Import Options dialog will appear.
The following are recommended settings for the FBX import:
- Import section: Make sure Objects and Materials are checked. Lights and Cameras are unused in PyroSim.
- Assign Objects to Layers: any option may be selected, but By Material is a useful option for PyroSim.
- 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.
- Block: Uncheck Insert file as block.
- Click OK to finish the import. You may receive a warning about the clip plane of the camera.
- Save the file as a DWG.
- Import the DWG into PyroSim.
4.7.3. Adjusting Imported Geometry
Initially, CAD geometry is imported as a set of triangles.
This accurately represents the contents of the imported CAD model, but can be difficult to adjust from within PyroSim.
In some cases, PyroSim can convert this data to simplified geometry as though it were drawn by the Slab Obstruction Tool or Wall Obstruction Tool
.
To convert imported geometry to native PyroSim geometry, perform the following:
- In the Obstruction Properties dialog, set the BIM Conversion Type of the obstructions you want to convert.
- Select the imported obstructions you want to convert.
- Right-click one of your selected obstructions, and select Generate Model from BIM selection.
- Enter the conversion options in the Generate Settings dialog as shown in Figure 28.
- Click OK to begin conversion.
Alternatively, in the Model menu click Generate Model from BIM. This will convert all imported obstructions in the model.
The BIM Conversion Type is automatically set for geometry imported from IFC files.
The following options are available for BIM Conversion Type:
- <ignored>
- The obstruction will not be modified.
- Slab
- The obstruction will be converted to a vertically extruded polygon, as though drawn by the Slab Obstruction Tool
.
- Wall
- The obstruction will be converted to a box surrounding the original geometry, as though drawn by the Wall Obstruction Tool
. More complex walls with corners or curves cannot currently be converted.
- Door
- The obstruction will be converted to a box obstruction with Permit Holes disabled and a hole surrounding the geometry. The box will be fit around only the geometry using the surface that covers the most area in the original obstruction. In most cases, this includes only the door and ignores the door frame.
- Window
- The obstruction will be converted to a box obstruction with Permit Holes disabled and a hole surrounding the geometry. The box will be fit around only the geometry using the surface that covers the most area in the original obstruction. In most cases, this includes only the window pane and ignores the window frame.
- Remove
- The obstruction will be deleted instead of being converted.
For Slab, Wall, Door, and Window conversion, the surface of the resulting obstruction will be set to the surface that covers the most area in the original obstruction.
![pyro ui dialog generate from bim](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-generate-from-bim.png)
In Figure 28, the following options can be specified:
- Keep Original Objects
- If selected, the original obstructions will remain in the model and the converted objects will be placed in a new group in the tree. Otherwise, the original obstructions will be deleted and the new objects will be placed in their original position in the tree.
- Thicken Door Hole
- Defines the amount to thicken the hole generated from obstructions with a BIM Conversion Type of Door. This is used to ensure that the holes extend fully through surrounding walls.
- Thicken Window Hole
- Defines the amount to thicken the hole generated from obstructions with a BIM Conversion Type of Window. This is used to ensure that the holes extend fully through surrounding walls.
- Generate Slabs
- Whether to convert obstructions with a BIM Conversion Type of Slab.
- Generate Walls
- Whether to convert obstructions with a BIM Conversion Type of Wall.
- Generate Doors
- Whether to convert obstructions with a BIM Conversion Type of Door.
- Generate Windows
- Whether to convert obstructions with a BIM Conversion Type of Window.
- Remove Space Annotations
- Whether to delete obstructions with a BIM Conversion Type of Remove.
4.7.4. 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:
- On the Model menu, click Edit Meshes.
- Click New.
- 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.
- In the X Cells box, type 50, in the Y Cells box, type 10, and in the Z Cells box, type 10.
- Click OK.
The 3D View will now display the resulting mesh.
![pyro ui dialog edit meshes uniform](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-edit-meshes-uniform.png)
5.3. Nonuniform Meshes
To create a second, nonuniform mesh:
- On the Model menu, click Edit Meshes.
- Click New
- 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
- 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
- In the Division method box, select Non-Uniform
In the table, enter the data shown in Table 4
Table 4. Non-Uniform Mesh Parameters Dir (X,Y,Z) Num Cells Size X 10 0.1 Y 10 0.1 Y 5 0.2 Z 10 0.1 - Click OK
![pyro ui dialog edit meshes nonuniform](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-edit-meshes-nonuniform.png)
You can click or type Ctrl+R to reset the model.
The resulting meshes are displayed below.
![pyro scrn meshes uniform nonuniform](https://files.thunderheadeng.com/support/images/pyro-scrn-meshes-uniform-nonuniform.png)
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 31, 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
Incorrect Mesh Alignment Examples
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:
- In the Edit Materials. dialog, click New.
- In the Material Name box, type the name of the new material
- In the Material Type box, select Solid
- 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:
- In the Edit Materials. dialog, click New.
- In the Material Name box, type the name of the new material
- In the Material Type box, select Liquid Fuel
- 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 36 shows the dialog being used to edit an upholstery surface.
![pyro ui dialog edit surfaces material layers](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-edit-surfaces-material-layers.png)
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.
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.
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 24.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 37.
- 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](https://files.thunderheadeng.com/support/images/smv-scrn-tangential-velocity.png)
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
The default heat transfer model is one-dimensional and is well suited for building materials that have low thermal conductivity. There is an experimental 3D heat transfer model that may be more suitable for materials with high thermal conductivity such as steel. For more information about 3D heat transfer, refer to section Heat Conduction (Beta) in the FDS User Guide (McGrattan et al. 2021).
- 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:
- On the Model menu, click Edit Surfaces.
- Either create or edit the surface to which you want to add a texture.
- Click on the Appearance box.
- 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.
- 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.
- 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](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-appearances_2022-1.png)
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](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-advancedmaterials_2022-1.png)
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 21.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 40) and its conversion to blocks for use in FDS (Figure 41).
Conversion of a slab obstruction 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](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-obst-props-general_2022-1.png)
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.- BIM Conversion Type
- Controls the type of geometry this obstruction is converted to when using the Generate Model from BIM action. See Section 4.7.3 for more information.
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 43. 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](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-fdsgeom-cleanup.png)
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 44. 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 21.8.
![pyro scrn geom slab hole](https://files.thunderheadeng.com/support/images/pyro-scrn-geom-slab-hole.png)
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 45.
![pyro ui dialog hole props](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-hole-props.png)
Like obstructions, holes can also be activated as discussed in Chapter 17. 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 46: "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](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-hole-expand.png)
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 47 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 48 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 49. 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
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 50. 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](https://files.thunderheadeng.com/support/images/pyro-scrn-vents-mesh-obstruction.png)
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 51. 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](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-vent-props.png)
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 (
) from the main tool bar.
Both of these actions will show the Create Group dialog as shown in Figure 52. This dialog allows the user to choose the parent group and name of the new group.
![pyro ui dialog group create](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-group-create.png)
8.4.2. Adding Objects to Groups
There are several ways to add objects to a group:
- For existing objects, in the Navigation View, select the objects and drag them into the desired group as shown in Dragging objects to a new group in the Navigation View.. Alternatively, right click them in any view and select Change Group.
In the Change Group dialog shown in Figure 56, 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 57. All newly drawn objects will be added to this group.
Dragging objects to a new group in the Navigation View.
![pyro ui dialog group change](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-group-change.png)
![pyro ui toolbar group select](https://files.thunderheadeng.com/support/images/pyro-ui-toolbar-group-select.png)
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 58 shows all floors and Figure 59 shows a single floor.
Floor clipping
To define the floors in a model, go to the Navigation View and click the Define Floor Locations button ().
This will display the Manage Floors dialog shown in Figure 60.
![pyro ui dialog floors manage](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-floors-manage.png)
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 60.
- 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 61. 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](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-floors-new.png)
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 61 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 ().
Alternately click the Define Floor Locations button, (
), and then in the Background Image column, select the Edit button.
This will display the Configure Background Image dialog shown in Figure 62.
You will be guided through the following steps:
- Choose a background image file. Valid image formats are bmp, dxf, gif, jpg, png, tga, and tif.
- 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.
- 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.
- Use the sliding scale to change the image transparency.
- 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.
- Click OK to close the Configure Background Image dialog.
![pyro ui dialog configure background image](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-configure-background-image.png)
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 () 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 63.
![pyro ui toolbar draw edit](https://files.thunderheadeng.com/support/images/pyro-ui-toolbar-draw-edit.png)
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 () on the filter toolbar above the 3D or 2D View.
For information on block conversion, see Section 21.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 ().
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 ().
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 () 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 64 shows an example of the quick action menu for the wall tool.
![pyro ui menu context wall](https://files.thunderheadeng.com/support/images/pyro-ui-menu-context-wall.png)
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 65 will appear at the snap point.
![pyro ui icon mouse snap point dot](https://files.thunderheadeng.com/support/images/pyro-ui-icon-mouse-snap-point-dot.png)
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 66.
![pyro scrn sketch grid](https://files.thunderheadeng.com/support/images/pyro-scrn-sketch-grid.png)
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 67.
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](https://files.thunderheadeng.com/support/images/pyro-scrn-polar-constraint.png)
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 68, 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:
- After the second point for the slab was clicked, the cursor was moved until the X-axis constraint became visible.
- SHIFT was pressed and held on the keyboard to lock the constraint.
- The cursor was moved to a point on the right edge of the box while still holding SHIFT.
![pyro scrn locked constraint](https://files.thunderheadeng.com/support/images/pyro-scrn-locked-constraint.png)
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 69. 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 70. 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](https://files.thunderheadeng.com/support/images/pyro-scrn-tool-editor.png)
![pyro scrn precise keyboard entry](https://files.thunderheadeng.com/support/images/pyro-scrn-precise-keyboard-entry.png)
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 71), 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 72).
Slabs in different planes aligned in the 2D 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 73.
![pyro scrn attached wall](https://files.thunderheadeng.com/support/images/pyro-scrn-attached-wall.png)
The 3D snapping feature is also useful for stacking objects, as shown in Figure 74. 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](https://files.thunderheadeng.com/support/images/pyro-scrn-objects-stacked.png)
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 75.
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 76.
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
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 77 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](https://files.thunderheadeng.com/support/images/pyro-scrn-snap-other-plane.png)
9.5. Obstruction Drawing Tools
There are four tools that can draw obstructions, for more information on obstructions, see Section 8.1.
Slab Obstruction Tool: Used to draw the slab for a floor.
Wall Obstruction Tool: Used to draw a wall.
Block Obstruction Tool: Used to fill grid cells with obstructions.
Room Tool: Used to draw a rectangular room
For all the obstruction tools, the tool properties dialog () will appear similar to that in Figure 78.
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](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-tool-props.png)
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 79 that can be used to draw the slab for a floor in a building.
![pyro scrn slab polygon](https://files.thunderheadeng.com/support/images/pyro-scrn-slab-polygon.png)
The slab obstruction tool 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:
- Select the Slab Obstruction Tool (
) from the drawing toolbar.
- 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 () can be used to draw multi-segmented walls as shown in Figure 80.
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](https://files.thunderheadeng.com/support/images/pyro-scrn-walls.png)
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 81), Center (Figure 82) and Right (Figure 83) as shown in Wall alignment options.
Wall alignment options
To draw a wall, perform the following steps:
- Select the Wall Obstruction Tool (
) from the drawing toolbar.
- 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 () can be used to quickly fill grid cells with blocks as shown in Figure 84 or place a block with a single click.
![pyro scrn blocks](https://files.thunderheadeng.com/support/images/pyro-scrn-blocks.png)
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:
- Select the Block Obstruction Tool (
) from the drawing toolbar.
- 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 () can be used to draw a rectangular room using one closed wall as shown in Figure 85.
![pyro scrn room](https://files.thunderheadeng.com/support/images/pyro-scrn-room.png)
The room tool contains the same properties as the wall obstruction tool.
To draw a room with the room tool perform the following:
- Select the Room Tool (
) from the drawing toolbar.
- 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.
Slab Hole Tool: Used to draw a hole in a floor slab.
Wall Hole Tool: Used to draw an opening in a wall, such as for a doorway or window.
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:
- Select the Vent Tool (
) from the drawing toolbar.
- 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 () as shown in Figure 86.
![pyro scrn mesh drawn](https://files.thunderheadeng.com/support/images/pyro-scrn-mesh-drawn.png)
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
To draw a solution mesh, perform the following:
- Select the Solution Mesh Tool (
).
- 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 ().
To split one or more meshes, perform the following:
- 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.
- Select the Mesh Splitter Tool (
.
- Move the cursor over one of the meshes. A preview slice will show where the meshes will be split as shown in Figure 89. 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.
- Once the desired split location can be seen, left-click the mouse to set the location.
- Repeat steps 3) and 4) to set more split locations. The meshes can be split along any number of axes in a single operation.
- To perform the split, right-click in the 2D or 3D view and select Finish.
- PyroSim will create a new mesh group for each selected mesh and place the resulting meshes in the appropriate groups.
![pyro scrn mesh splitting](https://files.thunderheadeng.com/support/images/pyro-scrn-mesh-splitting.png)
9.10. Device Tool
PyroSim allows point devices to be drawn with the Device Tool (), for more information on devices, Chapter 16.
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:
- Select the Device Tool (
).
- 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 90. 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](https://files.thunderheadeng.com/support/images/pyro-scrn-device-gas.png)
9.11. Planar Slice Tool
Planar slices, as discussed in Section 19.2 can be drawn with the planar slice tool ().
To do so, perform the following:
- Select the Planar Slice Tool (
).
- 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.
- Move the cursor to the desired slice location. A preview slice will be displayed as shown in Figure 91.
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.
- Left-click the mouse to create the slice.
![pyro scrn slice 2d](https://files.thunderheadeng.com/support/images/pyro-scrn-slice-2d.png)
9.12. HVAC Node Tool
HVAC nodes as discussed in Section 18.2, can be drawn with the HVAC Node Tool ().
To do so, perform the following:
- Select the HVAC Node Tool (
).
- In the tool properties dialog, select the desired height of the node.
- Move the cursor to the desired slice location.
- Left-click the mouse to create the node.
![pyro scrn hvac nodes](https://files.thunderheadeng.com/support/images/pyro-scrn-hvac-nodes.png)
9.13. HVAC Duct Tool
PyroSim allows HVAC ducts to be drawn with the HVAC Duct Tool ().
To do so, perform the following:
- Select the HVAC Duct Tool (
).
- Click to select the first HVAC Node. It is best to select the nodes in the direction air will flow through them.
- 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](https://files.thunderheadeng.com/support/images/pyro-scrn-hvac-duct.png)
9.14. Other Box Drawing Tools
PyroSim can also be used to draw:
Init Regions (Section 21.1.4) with the Init Region Tool.
Particle Clouds (Section 15.6) with the Particle Cloud Tool.
3D Slices (Section 19.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:
- Select the appropriate tool.
- 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
Single Particles (Chapter 15) with the Particles at a Point Tool.
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:
- Select the appropriate tool.
- 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 ().
Editing is performed through an object’s editing handles. Handles appear on an object either as a blue dot as shown in Figure 94 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](https://files.thunderheadeng.com/support/images/pyro-scrn-edit-handles.png)
To graphically edit an object, perform the following:
- Select the Select/Manipulate Tool (
) from the navigation toolbar.
- Select one object to edit If the object can be graphically edited, blue editing handles will appear.
- 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 95.
- Move the handle using Click-drag Mode or Multi-click Mode to specify two points defining the movement vector.
![pyro scrn edit faces](https://files.thunderheadeng.com/support/images/pyro-scrn-edit-faces.png)
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 96, or to create and move a copy of the selected objects.
To use this tool, perform the following:
- Select the desired objects to move from any of the views.
- Select the Move Tool (
) from the drawing toolbar.
- Use Click-drag Mode or Multi-click Mode to draw two points defining the movement vector.
![pyro scrn move](https://files.thunderheadeng.com/support/images/pyro-scrn-move.png)
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:
- Select the desired objects to rotate from any of the views.
- Select the Rotate Tool (
) from the drawing toolbar.
- Single-click to specify the rotation center (Figure 97).
- Single-click another point to define a reference vector from the first point to the second point (Figure 98). This reference vector is what the angle is based from.
- Single-click a third point to define the angle vector from the first point to the third point (Figure 99).
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
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:
- Select the desired objects to mirror from any view.
- Select the Mirror Tool (
) from the drawing toolbar.
- Use Click-drag Mode or Multi-click Mode to define two points that create a plane about which the selected objects are mirrored (Figure 101).
Mirroring an object using the Mirror Tool
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 () 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:
- Select the Paint Tool (
) from the drawing toolbar.
- 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 102.
- 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](https://files.thunderheadeng.com/support/images/pyro-scrn-paint.png)
9.18.2. Pick Tool
The Pick Tool () 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:
- Select the Pick Tool (
) from the drawing toolbar.
- Hover the cursor over the object from which the color/surface should be chosen. A popup window will show what that color/surface is.
- 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 () to measure distances in the model.
To measure a distance, perform the following:
- Select the Measure Tool (
).
- 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 103.
- 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](https://files.thunderheadeng.com/support/images/pyro-scrn-measure-info.png)
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 104.
![pyro scrn background curved wall](https://files.thunderheadeng.com/support/images/pyro-scrn-background-curved-wall.png)
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 105 illustrates these settings.
![pyro scrn background curved wall settings](https://files.thunderheadeng.com/support/images/pyro-scrn-background-curved-wall-settings.png)
10.1.1. Using the Wall Tool
To create a curved wall section from wall segments, you can follow these steps:
- Click the 2D View tab, and select the Draw Wall Obstruction (
) tool.
- Turn off grid snapping. In the View menu, click Disable Grid Snapping.
- Position the cursor at the beginning of the curve where you want to place the first wall segment.
- Use Multi-click Mode to click several points along the curve. More points will create a smoother curve.
- 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
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:
- Create a mesh. This example uses a 50.0 ft x 50.0 ft mesh with 1 ft mesh cells.
- Click the 2D View tab, and select the Block Obstruction Tool (
).
- Turn grid snapping on. If snapping is off: in the View menu, click Snap to Model Grid.
- 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 109.
![pyro scrn wall blocks](https://files.thunderheadeng.com/support/images/pyro-scrn-wall-blocks.png)
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:
- Click the 2D View tab, and select the Wall Obstruction Tool (
).
- Turn off grid snapping. If snapping is on: in the View menu, click Disable Grid Snapping.
- Create an initial wall segment somewhere on the curve.
- In the Model menu, click Rotate.
- Select the Copy mode.
- 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.
- Click Preview to verify that the settings are correct, then click OK.
The curve for this example is shown in Figure 110.
![pyro scrn wall segments rotated](https://files.thunderheadeng.com/support/images/pyro-scrn-wall-segments-rotated.png)
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 111.
The following steps show how to create the trusses for an example roof.
- Click the 2D View tab
On the toolbar, click the Reset to Front option.
- On the drawing toolbar, select the Slab Obstruction Tool (
).
- On the drawing toolbar, click the Tool Properties (
) button, and set the thickness to the desired thickness of the truss.
- Draw a triangle representing the outer boundary of the truss.
- On the toolbar, select the Slab Hole Tool (
) .
- Draw a triangular hole in the left half of the truss.
- Select the newly created hole.
- Select the Mirror Tool (
).
- Right click in the 2D View and select Copy Mode.
- Draw a line from the top vertex of the outer obstruction to the center of the bottom to define the mirror plane.
- Select the entire truss, including the outer obstruction and two holes.
- Open the Model menu, and click Move.
- In the Move dialog: select Copy, set Number of Copies to
4
, set Offset to be2.0
meters along the Y axis, and click OK.
![pyro scrn trusses](https://files.thunderheadeng.com/support/images/pyro-scrn-trusses.png)
10.3. Roofs
You can quickly add a roof to the model using the Slab Obstruction Tool ().
The following steps show how to add a roof to the previous truss example.
- Click the 2D View tab.
On the view toolbar, Reset to Front.
- On the drawing toolbar, select the Slab Obstruction Tool (
).
- 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.
- On the view toolbar, Reset to Top.
- On the navigation toolbar, select the Select/Manipulate Tool
.
- Click to drag the leading edge of the slab to the opposite truss.
- Single-click to end manipulation.
- 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 112.
![pyro scrn slab roof](https://files.thunderheadeng.com/support/images/pyro-scrn-slab-roof.png)
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.
- On the Model menu, click New Obstruction.
- 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).
- On the Model menu, click Move.
- 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 113.
![pyro scrn stairs](https://files.thunderheadeng.com/support/images/pyro-scrn-stairs.png)
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 () 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 selections and model edits can be undone and redone using the Undo () and Redo (
) buttons, as well as the shortcuts Ctrl+Z and Ctrl+Y, respectively.
The shortcuts Ctrl+Shift+Z and Ctrl+Shift+Y will skip selection history and revert or continue to the next model edit.
Alternately, the drop-down tab adjacent to the Undo () and Redo (
) buttons or the Edit→Undo and Edit→Redo menu can be used to view your Undo or Redo history and jump to a specific point.
The size of your history can be changed in File→Preferences→Undo/Redo History. History for model edits is limited by that preference, while history for selection-only changes has double that limit.
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:
- Right click the object(s) to move.
- From the right-click menu, select Move.
- This will show the Move dialog, Figure 114.
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](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-translate.png)
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:
- Right click the object(s) to mirror.
- From the right-click menu, select Mirror*.
- This will show the Mirror dialog as in Figure 115.
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](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-mirror.png)
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:
- Right click the object(s) to scale.
- From the right-click menu, select Scale*.
- This will show the Scale dialog as in Figure 116.
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](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-scale.png)
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:
- Right click the object(s) to rotate.
- From the right-click menu, select Rotate
- This will show the Rotate dialog as in Figure 117.
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](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-rotate.png)
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. Working with Large Models
Large models can contains thousands of objects defining the geometry and underlying behavior of a PyroSim model. In order to make modeling more effective, PyroSim provides a variety of utilities to assist in organizing, reorganizing, and maintaing a cohesive simulation model.
12.1. Selection
It is simple to select an individual object in either the Naviation View or the Model View, but doing so for many objects at once can be cumbersome. The following actions are available from the right-click menu to accelerate selecting networks of objects.
- Select Referencing Objects
- Selects other objects in the model referencing the selected objects. Alternatively, use the Show Referencing Objects action to show these objects in a separate list.
- Select Non-Group Descendants
- Selects all objects that are part of the selected group node, but ignores all group nodes.
12.2. Show Referencing Objects
Most models can have complex relationships between objects, with some objects referencing others. In these cases, it can often be helpful to start at the referenced object and see which objects are referencing it. To do this, right-click the referenced object and choose Show Referencing Objects.
![pyro ui dialogs tags show referencing](https://files.thunderheadeng.com/support/images/pyro-ui-dialogs-tags-show-referencing.png)
This opens the floating Show Referencing Objects dialog, which displays each of the referencing objects in a list. Objects in the list have their selection state synchronized with the selection in the Navigation View and the Model View. This includes the ability to right-click an object in this tool and access the object’s context menu.
12.3. Object Tags
Any number of custom Tags may be added to identify and organize objects with common characteristics. Most non-group node objects in the Navigation View support tags. Once added, the given Tag will also appear in its own group in the Navigation View.
![pyro scrn tags tree](https://files.thunderheadeng.com/support/images/pyro-scrn-tags-tree.png)
12.3.1. Editing Tags
Most objects that are edited in a manager dialog allow the Tag properties of the objects to be directly edited alongside other properties. When Tags are assigned in the editor panel, PyroSim will create a unique Tag for each character string separated by spaces or other delimiter characters. Unlike most model properties, a Tags have no impact on the FDS output corresponding to the object.
![pyro scrn tags mgr](https://files.thunderheadeng.com/support/images/pyro-scrn-tags-mgr.png)
To assist in editing the Tag properties of many objects at once, the following actions can be used from the right-click context menu for an object supporting Tags.
- Edit Tags…
- Launches the Edit Tags dialog.
- Add Tags…
- Launches a simple input dialog. Input the text of each Tag you want to add for all objects in the current selection. If not already defined, the Tag will be created.
- Remove Tags…
- Launches a simple input dialog. Input the text of each Tag you want to remove for all objects in the current selection. If the Tag is unrecognized or not defined on an object, that object will be ignored.
12.3.1.1. The Edit Tags Dialog
The Edit Tags Dialog allows Tag editing through any combination of the following:
- Set Tags
- Directly edit the Tags for each selected object. If some selected objects have different Tags assigned, this field will display as "<mixed>". Be careful to not override this field if you do not intend to have all selected objects have the exact same set of Tags.
- Add Tags
- Input the text of each Tag you want to add to all objects in the current selection. Use this input to add Tags without overriding the preexisting Tag properties of the selected objects.
- Remove Tags
- Input the text of each Tag you want to remove from all objects in the current selection. Use this input to remove Tags without overriding the preexisting Tag properties of the selected objects.
![pyro scrn edit tags](https://files.thunderheadeng.com/support/images/pyro-scrn-edit-tags.png)
12.3.2. Finding Objects with a Shared Tag
One of the main purposes of Tags is to quickly find and identify related objects. PyroSim provides several ways to quickly find tagged objects.
- Double-click
- Double-click Tags in the Navigation View to show the objects that are tagged with any of those in the selection. The objects will be listed in a separate window.
- Context-menu actions
- Right-click Tags in the Navigation View to choose one of the following actions:
- Show Tagged Objects
- Launches a helper dialog to either select the objects tagged with those in the selection or show them in a dialog.
- Select Referencing Objects
- Selects other objects in the model referencing the selected Tag.
- Show Referencing Objects
- Lists the referencing objects in a floating window.
12.3.2.1. Show Tagged Objects
![pyro ui dialogs tags show tags](https://files.thunderheadeng.com/support/images/pyro-ui-dialogs-tags-show-tags.png)
- Selected Tags
- Displays the currently selected tags that will be used for the search.
- Tagged Objects
- Indicates how the tagged objects are chosen.
The following options are available:
- Objects must have at least 1 of the selected tags
- This option is available when more than one tag is selected.
It indicates that the chosen objects must have at least one of the selected tags.
For instance, if the selection contains tags,
tag1
andtag2
, the chosen objects will have eithertag1
ortag2
or bothtag1
andtag2
. - Objects must have all of the selected tags
- This option is available when more than one tag is selected.
It indicates that the chosen objects must have all of the selected tags.
For instance, if the selection contains tags,
tag1
andtag2
, the chosen objects will have both of the tags. - Exclude objects with other tags
- Excludes objects if they have tags that are not in the selection.
For instance, if the selection contains tags,
tag1
andtag2
, and an object contains these tags but also containstag3
, it will be excluded from the result. This may be useful, for instance, to find objects that contain exactly the selected tags and no more.
- Tag Display
- Specifies what to do with the resulting tagged objects.
The following options are available:
- Show in a List
- Shows the resulting tagged objects in a floating window, similar to the Show Referencing Objects dialog.
- Select Tagged Objects
- Selects all the resulting tagged objects.
12.4. Bulk Renaming
As objects are being created via the drawing tools, geometry import, manager dialogs, and Copy / Paste, the names assigned by Pathfinder can become increasingly complex. After some time it may be desireable to change many thousands of object names to make the model more clear.
To open the Rename dialog, right click one of the selected objects in either the 3D view or in the Navigation view and select Rename….
![pyro scrn rename dlg](https://files.thunderheadeng.com/support/images/pyro-scrn-rename-dlg.png)
To rename all selected objects with a common name, simply enter the desired new object name in the text field, and click OK.
For more complex renaming scenarios, you may check the Rename with Template checkbox.
When the Rename with Template checkbox is selected, you may create a name as a mixture of both text and keywords. Keywords are uniquely interpreted for each of the selected objects based on the object’s properties. Using this approach a large set of mixed-type objects can all be renamed according to a standard syntax.
For example:
*${base_name}${type}_${post_num}
will rename a door called Exterior56 to ExteriorDoor_56.
The full set of available keywords are as follows:
- name
- The existing name of object.
- base_name
- The existing name of the object without any leading or trailing numbers.
- parent_name
- The name of the parent object.
- parent_name-x
- Where x is a number. Will go up the hierarchy x times.
- pre_num
- Any number at the beginning of the existing name.
- post_num
- Any number at the end of the existing name.
- sel_index
- The 1-based index of the item in the current selection.
- global_index
- The 1-based index of the object within its top-level type group.
- local_index
- The 1-based index of the item within its parent group.
- results_id
- The globally-unique 64 bit integer ID of the object, if available.
- type
- The object type.
Each of these keywords are detailed in the Rename dialog dropdown.
To make it easier to work with name templates, the keyword names in the dialog work as buttons. Clicking one of the keyword buttons will inject the keyword directly into the editor dialog at the current caret location.
13. 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:
- The species has a non-zero Initial Mass Fraction.
- An initialization region includes some mass fraction of the species (see Chapter 21).
- A liquid particle referenced in the model refers to the species (see Chapter 15).
- A supply surface referenced in the model injects the species (see Chapter 7).
- A material referenced in the model creates the species through its pyrolysis reaction (see Chapter 6).
- An HVAC filter absorbs some fraction of the species (see Chapter 18).
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.
13.1. Primitive Species
Primitive species can be tracked individually, or as a component of a more complex lumped species.
To edit primitive species:
- On the Model menu, click Edit Species.
- 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.
- 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).
- 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.
- 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).
- 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 15.
- 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.
13.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:
- On the Model menu, click Edit Species.
- Click New
- Select the Lumped option.
- Click OK
To edit the lumped species:
- On the Model menu, click Edit Species.
- 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:
- On the Model menu, click Edit Species.
- If a primitive species is to be used only as a component of a lumped species, select that species.
- Click the Advanced panel.
- Add the line LUMPED_COMPONENT_ONLY = .TRUE. to the list of Additional Fields. For more information about Advanced FDS Parameters, see Chapter 24>.
- 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.
14. 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.
14.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:
- On the Model menu, click Edit Reactions.
- Click New and give the Reaction Name.
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:
- From the Fuel Type list, select Predefined.
- Click Edit Species.
- Click New.
- From the Predefined list, select the fuel.
- Return to the Fuel tab and from the Fuel Species list, select the fuel species you just added.
- 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
). - 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.
14.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.
15. Particles
PyroSim supports three types of particles: massless tracers, liquid droplets, and solid particles. To create a new particle:
- On the Model menu, click Edit Particles.
- Click New.
- In the Particle Type box, select one of the types.
- Click OK
15.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.
15.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.
15.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:
- On the Model menu, click Edit Species.
- Select the primitive species.
- Select the Liquid tab.
- Specify the fields below.
- 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.
15.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.
15.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.
15.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.
15.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.
15.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.4.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.
15.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 24.
15.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.
15.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 17.
15.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.
15.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 124.
![pyro ui dialog particle cloud](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-particle-cloud.png)
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.
16. 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 17. 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.
16.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:
- On the Devices menu, click New Aspirator Sampler.
- Enter the Name and Location of the sampler.
- Click OK to create the sampler.
To define the aspiration detection system:
- On the Devices menu, click New Aspirator.
- Give the Name and select which Aspirator Samplers will be included. For each sampler, provide the data described below.
- Click OK to create the aspirator detector.
Supply the following information for the aspiration detection system, Figure 125.
- 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](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-aspirator.png)
The output of the aspiration detection system will be the combined obscuration.
16.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.
16.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.
16.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.
16.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.
16.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.
16.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.
16.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.
16.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.
16.10. Sprinkler
Sprinklers can spray water or fuel into the model. To define a sprinkler:
- On the Devices menu, click New Sprinkler. This will display the Sprinkler dialog, Figure 126.
- Select the desired options and define required input parameters as described below.
- Click OK to create the sprinkler.
![pyro ui dialog sprinkler](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-sprinkler.png)
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).
16.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.
17. 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 127: On the Devices menu, click Edit Activation Controls.
![pyro ui dialog activation controls 2022 2](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-activation-controls-2022-2.png)
17.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:
- Activation - An Activation Control manages the activation state of an object according to user specified inputs.
- Custom - A Custom Control is a specialized Activation Control that manages object creation and removal according to multiple events which vary over time.
- 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](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-new-control-2021-4.png)
17.2. Creating Activation Controls
Creating controls in PyroSim takes 3 steps:
- Select an input type (time, detector, deadband, or custom). This is the source of the signal that will trigger the control.
- Choose an action to perform (e.g. create an object).
- 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 129 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](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-activation-controls-object.png)
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 130 shows the activation control in the object properties dialog for a hole.
![pyro ui dialog hole props activation](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-hole-props-activation.png)
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.
17.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.
17.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:
- Create a new device or open the properties for an existing device.
- Check the box next to Enable Setpoint:
- Enter the desired value at which the device will trip.
- 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.
- 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.
17.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.
17.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.
17.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](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-custom-control-2021-4.png)
17.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:
- Check the box next to Enable Setpoint:
- Enter the desired value at which the control will trip.
- 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](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-math-control-2022-2.png)
18. 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.
18.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:
- On the Model menu, click New HVAC Duct.
You can now edit the duct:
18.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.
18.1.2. Waypoints
- Points
- The table of coordinates that define a duct’s path.
18.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.
18.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:
- On the Model menu, click Edit HVAC.
- Click New.
- In the Type box, select NODE.
- 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.
18.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:
- On the Model menu, click Edit HVAC.
- Click New.
- In the Type box, select FAN.
- 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.
18.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:
- On the Model menu, click Edit HVAC.
- Click New.
- In the Type box, select FILTER.
- 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.
18.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:
- On the Model menu, click Edit HVAC.
- Click New.
- In the Type box, select AIRCOIL.
- 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.
18.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:
- On the Model menu, click New Vent.
- In the Surface box, select HVAC.
- Click the Geometry tab. Specify the appropriate 2D geometry of the vent.
- 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.
- Click OK.
19. Output Controls
In this chapter we describe the simulation output options available in PyroSim. Each of these options is located in the Output menu.
19.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.
19.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 133).
![results scrn output slice 2d](https://files.thunderheadeng.com/support/images/results-scrn-output-slice-2d.png)
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.
19.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 134 shows a volumetric rendering.
![results scrn rendering volume temperature](https://files.thunderheadeng.com/support/images/results-scrn-rendering-volume-temperature.jpg)
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.
19.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 135). Since the data applies to all surfaces in the simulation, no geometric data needs to be specified.
![results scrn output boundaries](https://files.thunderheadeng.com/support/images/results-scrn-output-boundaries.png)
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.
19.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 136).
![results scrn output isosurface](https://files.thunderheadeng.com/support/images/results-scrn-output-isosurface.png)
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.
19.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 138). 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](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-plot3d-data.png)
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](https://files.thunderheadeng.com/support/images/results-scrn-data3d-slice-angled.png)
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.
19.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](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-hvac-output.png)
19.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 140).
![results scrn 2d statistics](https://files.thunderheadeng.com/support/images/results-scrn-2d-statistics.png)
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.
20. Model Checks
Model Checks are a feature of PyroSim that allows the user to specify a list of checks to perform on the current model and generate a report that includes the results of each check. Model Checks can be used to identify undesirable parameters of the model before beginning expensive simulation time.
20.1. Record Checks
Record Model Checks can be constructed by the user in order to report on and enforce parameters of FDS records that will be written for the current model. To create a Record Check:
- On the Model menu, click Edit Model Checks.
- Click New.
- Click the Check Type dropdown and select Record.
![pyro ui dialog edit model checks records](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-edit-model-checks-records.png)
- Check ID
- Unique ID of this model check.
- Description
- Description of this model check.
- Check Condition
- This determines whether records matching the filters will indicate a passing or failing model check.
- Filters
- The set of filters to apply to the FDS records that will be written for the current model. The resulting set is then compared to the Check Condition in order to determine whether the check is passing or failing.
20.1.1. Record Check Filtering
Record Checks contain a list of filters that are applied to the set of FDS records that will be written for the current model. The Record Check will pass or fail depending on whether or not it passes the Result Condition after filtering. For example:
- If the filtered record set is empty, and the Result Condition is Records Found, the Record Check will fail and be reported on.
- If filtered record set is non-empty, and the Result Condition is No Records Found, then the Record check will fail and be reported on.
- Op
- This is the operation to apply when constructiong compound filters. AND applies the filter to the current filtered set. OR starts filtering the initial record set again, and unions it with the prior filtered set.
- Record
- The FDS record to filter by.
- Field
- The field of the FDS record to filter by.
- Condition
- The condition to apply to the value of the record’s field.
- Value
- The value that the condition will be applied to.
20.1.2. Record Check Example
Figure 142 shows an example of a Record Check with a specified Pass Condition and set of Filters.
![pyro ui dialog edit model checks filters](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-edit-model-checks-filters.png)
This Record Check will first filter all FDS records by the slice (SLCF) record type, where the quantity being measured is equal to "TEMPERATURE". Then it will continue filtering this set by all slice records where the parameter PBY is equal to 0.25 meters.
This Record Check will collect all slices that measure temperature and lie on the Y plane at 0.25 meters. Since the Result Condition is Non-Empty Set, this particular check enforces that this model includes at least one slice that matches this criteria. If no such slices exist, the Record Check will fail.
20.2. Surface Checks
Surface Model Checks can be created by the user in order to report on maximum values related to the output of Burner, Supply, and Exhaust type surfaces.
To create a Surface Check:
- On the Model menu, click Edit Model Checks.
- Click New.
- Click the Check Type dropdown and select Surface.
![pyro ui dialog edit model checks surfaces](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-edit-model-checks-surfaces.png)
- Surface Type
- Determines the type of surface that this Surface Check will be inspecting. Available surfaces to inspect are Burner, Supply, and Exhaust type surfaces.
20.2.1. Burner Surface Check
Surface Checks inspecting Burner type surfaces can report the maximum Heat Release Rate (HRR) per applicable surface.
20.2.2. Supply and Exhaust Surface Checks
Surface Checks inspecting Supply or Exhaust type surfaces can report on the following:
- Maximum flow volume per applicable surface.
- Maximum flow velocity per applicable surface.
20.3. Running Model Checks
To run Model Checks, from the Analysis menu, click Run Model Checks. This will process each enabled Model Check and generate a report dialog. From here, the results of each failing or informational Model Check can be viewed. The report can be saved to file or copied to clipboard. If any objects can be attributed to the reported Model Checks, those objects can be found in the Components column, and can be selected in PyroSim by selecting the row and clicking Show Selected Objects.
![pyro ui dialog run model checks](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-run-model-checks.png)
20.4. Enabling and Disabling Model Checks
Model Checks can be enabled and disabled similar to other objects that exist in a PyroSim model. To do this, right click the Model Check to bring up the context menu and select Disable Object(s).
This includes enabling and disabling Model Checks per scenario, as described in Section 2.6. This gives the user control over which Model Checks they would like to apply per scenario. Disabled Model Checks will be ignored when running Model Checks.
20.5. Sharing Model Checks
Model Checks can be saved to and loaded from Data Libraries (see Chapter 23). These libraries are written to a PyroSim Library File (PSLIB) to be shared. Like other data libraries in PyroSim, Model Check libraries can be created, loaded, and saved from the libraries dialog. Model Checks can also be loaded into the current model from these libraries.
![pyro ui dialog model check libraries](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-model-check-libraries.png)
21. 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.
21.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.
21.1.1. Time
All time-related values can be entered on the Time tab as shown in Figure 146.
![pyro ui dialog sim params time](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-sim-params-time.png)
- 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.
21.1.2. Output
The Output tab provides fine-grained control of how output values are recorded.
![pyro ui dialog sim params output](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-sim-params-output.png)
- 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.
21.1.3. Environment
The Environment tab enables various ambient environmental properties to be set as shown in Figure 148
![pyro ui dialog sim params environment 2022 1](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-sim-params-environment_2022-1.png)
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.
21.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 149. 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](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-init-region-props.png)
21.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 150.
![pyro ui dialog sim params environment wind](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-sim-params-environment-wind.png)
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 151, 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](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-sim-params-environment-wind-mo.png)
- 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.
21.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.
21.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.
21.1.8. Angled Geometry
PyroSim allows obstructions and holes to be drawn that are not aligned with the solution mesh needed by FDS (Figure 155). 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 152.
![pyro ui dialog sim params angled geometry 2021 1](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-sim-params-angled-geometry_2021-1.png)
- 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 thanGEOM
records. This option is only available ifFDS 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 153).
- Force blocks to be no larger than one grid cell thick
- Blocks will not be merged (Figure 154). 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 156. 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 157).
- 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
Effect of thickening on converted blocks
21.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.
21.1.10. Misc Tab
This tab allows some miscellaneous simulation and model properties to be set.
![pyro ui dialog sim params misc](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-sim-params-misc.png)
- 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.
21.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 159). These settings are applied to the execution context created by PyroSim and do not alter system environment variables.
![pyro ui dialog openmp environment](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-openmp-environment.png)
- 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.
21.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.
21.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 160.
To begin a simulation: on the Analysis menu, click Run FDS.
or click from the main toolbar.
Simulations launched in this way can use multiple OpenMP threads, but will not use multiple MPI processes.
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 21.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 161 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](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-fds-simulation.png)
- 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.
21.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 (
) and select
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.
21.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 (
) and select
Run FDS Cluster.
This will launch the Cluster FDS Parameters dialog as shown in Figure 162.
![pyro ui dialog cluster fds params](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-cluster-fds-params.png)
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.
21.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 163.
![pyro ui dialog cloud fds params](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-cloud-fds-params.png)
- 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 164 has a few distinct differences from the normal FDS Simulation dialog.
![pyro ui dialog fds simulation cloud](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-fds-simulation-cloud.png)
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.
21.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.
21.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 17). In order to make this work correctly, however, PyroSim must perform some additional processing on the geometry, including the following:
- Before converting objects into blocks, PyroSim detects which obstructions intersect holes that have activation logic.
- 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.
- 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.
22. 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.
22.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 () 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.
22.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.
22.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 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 165. The user can export the image to a file.
![pyro scrn time history](https://files.thunderheadeng.com/support/images/pyro-scrn-time-history.png)
22.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 166.
![pyro ui dialog archive fds results](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-archive-fds-results.png)
- 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.
22.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 167.
![pyro ui dialog archive fds results restore](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-archive-fds-results-restore.png)
- 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.
23. 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.
23.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:
- On the Model menu, click Edit Libraries.
- Select the Category that you want to manage and move selected items from the Current Model into the Library, Figure 168.
- Click Save Current Library and save the library in a location and with a name that you can access in the future.
- Close the PyroSim Libraries dialog.
![pyro ui dialog libraries](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-libraries.png)
After you have saved your library, you can load it into a new model and copy data from the library to your model.
23.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:
- On the Model menu, click Edit Libraries.
- Click Load Library and open the
property_library.fds
file that is found in theC:\Program Files\PyroSim 2024
folder. - In the Category box, select Gas-phase Reactions and copy appropriate reactions into your model.
- In the Category box, select Materials and copy the appropriate materials into your model.
- Close the PyroSim Libraries dialog.
23.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:
- On the File menu, click Import and select FDS File.
- In the Open dialog, browse to
Program Files/PyroSim 2007/fds
folder and open thedatabase4.data
file. - 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.
- Click OK to close the File Conversion Warnings dialog.
- The imported materials and reactions are now available for use in PyroSim 2007.
24. 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.
24.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 169.
![pyro scrn additional records](https://files.thunderheadeng.com/support/images/pyro-scrn-additional-records.png)
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/
.
24.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 170. 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](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-edit-surfaces-advanced.png)
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.
25. Troubleshooting
25.1. Licensing Issues
For troubleshooting tips on licensing Issues, see our [Licensing FAQs](/answers/pyrosim/licenses).
25.2. 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:
- Open a command-prompt by opening the start menu and typing
cmd
. Then press Enter. - In the command-prompt, navigate to the PyroSim install folder by typing
cd "C:\Program Files\PyroSim 2024"
. - Start PyroSim in Safe Mode by typing
pyrosim -DSafeMode
. - 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.
- 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.
25.3. 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 2024
).
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 2024\pyrosim.exe" -JXmx1200m
.
25.4. Parallel Simulation (MPI) Problems
25.4.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
25.4.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.
25.4.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.
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 171. If no warning dialog appears, PyroSim was able to convert the input file without encountering any compatibility issues.
![pyro ui dialog import warnings](https://files.thunderheadeng.com/support/images/pyro-ui-dialog-import-warnings.png)
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 171. 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.