PyroSim Results User Manual
Disclaimer
Thunderhead Engineering makes no warranty, expressed or implied, to users of this software, and accepts no responsibility for its use. Users of this software 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.
This software 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. 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.
About this Manual
This guide tells you how to use the results visualization software that accompanies PyroSim. It assumes a basic understanding of the work flow when using these platforms to model fire and movement. For introductory guides PyroSim and Pathfinder, refer to the support materials for each product online at https://support.thunderheadeng.com/
Additional Support Resources
This guide is the primary source of documentation for the Results visualization software and describes how to perform common tasks. For additional information describing how different parts of the software work, refer to Chapter 12.
For documentation on other Thunderhead Engineering applications, refer to the product-specific support materials online at https://www.thunderheadeng.com
Please Give Us Feedback
If you need assistance, or wish to provide feedback about any of our products, contact support@thunderheadeng.com
1. Installing and Licensing
The results visualization software will be installed automatically with PyroSim. There is no need to download or install a separate application. For more information about installing PyroSim and Pathfinder, refer to the support materials for each product online at https://www.thunderheadeng.com
1.1. System Requirements
Table 1 lists system requirements necessary to run results visualization.
Operating System | Microsoft Windows 7 or newer Desktop Experience and Media Feature Pack are required due to a dependency on Windows Media Player (wmvcore.dll). |
Memory | 4 GB (required) |
Display Adapter | Support for OpenGL 1.2 (required) |
Results visualization performance (measured in frames per second, or FPS) is controlled by the number of occupants in the model, the complexity of the geometry, and the resolutions of the FDS solution meshes. In one Pathfinder experiment, a single-room model containing 3,000 occupants and 4 geometry triangles operated at 15 FPS. By comparison, a complex model with 50,000 occupants and 1,300,000 geometry triangles operated at 5 FPS.
Performance can be improved in several ways:
- Upgrade the display adapter (GPU). The Results application has been optimized for use with gaming-level GPUs. There is little to no benefit to using a workstation GPU over a good gaming-level GPU such as an NVIDIA GeForce GTX 1050 or equivalent.
- Upgrade the processor (CPU). The Results does a fair amount of processing on the CPU to generate contours, interpolate data, etc. It also takes advantage of multi-core and multi-CPU systems.
- For FDS, a fast hard drive, such as an SSD, is also recommended, especially for viewing results of multi-million cell models. This is especially important for file streaming as discussed in Section 2.12.
1.2. Results Licensing
Results visualization requires a PyroSim or Pathfinder license. Additional information on license activation is located on the corresponding software download page.
To locate a license, a search is performed in standard locations for a valid license. In addition, license locations listed in the PROPS files for PyroSim and Pathfinder are searched.
The search order is shown below:
- Location listed in
Results.props
or-rlmpath
argument. - Install folder where the results executable resides.
- Current Working Folder
%PROGRAMDATA%\Application Data\Results\license
- Location listed in
%APPDATA%\PyroSim\PyroSim.props
%PROGRAMDATA%\PyroSim\license
- Location listed in
%APPDATA%\Pathfinder\Pathfinder.props
%PROGRAMDATA%\Pathfinder\license
Results will operate if any valid license is found.
It is recommended to run PyroSim or Pathfinder before running the results software to ensure a valid license location is present in the corresponding PROPS
file.
For advanced use and license troubleshooting, two command-line options are available:
-rlmpath <path> | Specify a custom RLM license location. This location will be prepended to the list of license search locations. To add a local license folder to the search path:
To add a floating license server to the search path (port@computer):
Results will save the value of |
-rlmstrict | Prevent results from appending default search locations to the RLM license search path. When this option is set, only the custom path and the executable folder will be searched for licenses. To use only the executable folder and (optionally) a license path stored in the PROPS file entry
To use this option in combination with
|
2. Using Results
The Results application can be used to visualize results from PyroSim/FDS and Pathfinder. It operates much like a video player in that it allows users to play, pause, stop, slide, and speed up and down time. It is completely 3D and allows users to navigate through a model.
- In the center of Figure 1 is the 3D View, which is the graphical representation of the scene.
- At the bottom of the 3D View are the time controls for adjusting playback of the results.
- At the far right is a color bar that provides a legend for the colors of the temperature vectors being displayed.
- At the far left is the Navigation View, which lists objects in the model that can be activated and deactivated.
- At the bottom left are the Quick Settings, which allow fine-tuning control over the currently active results.
- At the top is the main toolbar for the application.
2.1. Preferences
There are several per-user settings that control how the Results application works.
Many of these global settings can be found in the Preferences dialog, which can be opened by clicking the File menu and selecting Preferences.
These preferences are stored in a PROPS file called Results.props
.
By default, this file can be found in: %APPDATA%\PyroSim\Results.props
The PROPS file is stored in a plaintext format and can be viewed or edited with any conventional text editor.
2.2. Results Visualization File
The Results application allows users to create, save, and load results visualizations. A results visualization is a collection of settings that define which Pathfinder and FDS results are to be loaded and how those results are to be displayed. It also contains information entered by the user, such as views, tours, colorbar settings, time settings, annotations, object visibility, etc.
Results visualization files end with either .pfrv
when saved from Pathfinder Results or .smvv
when saved from PyroSim Results.
When Pathfinder or FDS results are viewed for the first time, a results visualization is automatically created and saved containing the results data. The visualization file name will match that of the originating PTH or PSM file. If a visualization file already exists with a matching name, the existing visualization is loaded instead. The same behavior is used when double-clicking a PFR or SMV file in Windows explorer.
2.2.1. Managing Visualizations
To create a new, empty visualization, on the File menu click New Results Visualization or press Ctrl+N on the keyboard.
To load results into the current visualization, see Section 2.2.2.
To save a visualization, on the File menu, click Save Results Visualization or press Ctrl+S on the keyboard. Alternatively, the results visualization can be saved to a new file by opening the File menu and clicking Save As. This allows several visualizations of the same Pathfinder/FDS results to be saved, each with their own settings.
To open an existing visualization, on the File menu, click Open Results Visualization or press Ctrl+O on the keyboard. When opening an existing visualization, the previously active results (e.g. fire/smoke, occupant contours, occupant paths, etc.) will be shown.
Because this may make some visualization files take longer to load, this behavior can be disabled by opening the Preferences dialog and unchecking Show previously active results on open.
2.2.2. Loading Results
The Results application can show exactly one results data file from Pathfinder and one file from PyroSim/FDS at the same time. If results are opened that are of the same type as those already loaded, the current results of that type will be replaced with those from the new file. For instance, if Pathfinder results A are opened and then PyroSim results B, both A and B will be shown. If Pathfinder results C are then loaded, only B and C will be shown.
To load Pathfinder or FDS results into the current visualization, on the File menu, click Load Results or press Ctrl+Shift+L on the keyboard. Choose a PFR file to open Pathfinder results or choose an SMV file to open FDS results.
If the PFR or SMV file was opened in a previous version of Results, there may be additional data that can be imported into the current visualization, including views, tours, unit preferences, time settings, and occupant contour settings. If the Results application detects any of this data, it will ask if that data should be imported.
Alternatively, some of this data can be imported later under the File menu by choosing Import→Import Occupant Contours or Import→Import Views.
Results can be individually unloaded as well without losing any of the associated visualization data. To do so, on the File menu click either Unload FDS Results or Unload Pathfinder Results. If another results file is loaded, the previous settings will be applied to the new results.
For instance, say Pathfinder results A is loaded, and an Average Density contour is added. If results A is then unloaded and Pathfinder results B is loaded, the Average Density contour, as well as all other contour settings are maintained and can be used with results B. The same is true if results file A is still loaded and B is loaded to replace A.
2.2.3. Results Paths
When results files are loaded into a results visualization, the paths to those files are stored relative to the visualization file’s directory if possible. This allows entire folders with results and their visualizations to be copied or moved to another location without breaking the links between files.
For instance, say a visualization file is saved to C:\case1\case1.pfrv
, and it has loaded both C:\case1\pathfinder\case1_occs.pfr
and C:\case1\pyrosim\case1_fire.smv
.
In this case, the visualization file would have saved the paths internally as pathfinder\case1_occs.pfr
and pyrosim\case1_fire.smv
.
If the visualization and results need to be moved, this can be done by simply moving all the contents of the C:\case1\
folder (or the folder itself) to another location.
The same can be done with copying as long as the files are pasted to another location such that the filenames do not change.
2.2.4. Importing Visualization Settings
It can be useful to share similar visualization settings across multiple sets of results, for example when working with multiple scenarios. This can be accomplished by importing settings from existing visualization files.
To import settings from another visualization:
- In the File menu, select Import→Import Visualization Settings or click the Import Visualization Settings button in the toolbar.
- Choose the visualization file to import settings from.
- Click Open.
- Choose the settings to import.
- Click Ok.
The following options are available when importing from other visualizations:
- Import Views
- Import Camera Viewpoints (Section 4.1) and Tours (Section 4.2).
- Import Occupant Contours
- Import Pathfinder Occupant Contours (Section 7.6).
- Import Contour Sample Points
- Import Pathfinder Occupant Contour Sample Points (Section 7.6.10).
- Import FDS Analysis Objects
- Import FDS analysis objects, including Data3D Points (Section 6.8.2), Data3D Slices (Section 6.8.3), and Data3D Isosurfaces (Section 6.8.4).
- Import FDS Preferences
- Import settings from the FDS Preferences dialog (Section 6.4), settings for 3D Smoke and Fire (Section 6.5), and settings for 2D Slice Vectors (Section 6.11).
- Import User Scripts
- Import custom Python User Scripts (Chapter 11).
2.3. Results Timelines
Each results file (Pathfinder or FDS) has its own timeline.
The Timelines dialog, as shown in Figure 2, can be used to control the timelines, set a reference clock time, and set the time range displayed in the results as controlled by the time slider.
To open the timelines dialog, perform one of the following:
- In the Analysis menu, select Time Settings.
- Click the Timelines button in the main toolbar.
There may be up to three timelines in the results. There is always a Global timeline, and depending on which results are loaded, there may also be a Pathfinder timeline and an FDS timeline.
The Global timeline has a Time Reference that is used to synchronize the Pathfinder and FDS results. The time reference has an associated calendar Date and a clock Time, such as June 3, 2018 at 3:47 PM. This value defaults to the date/time at which either the Pathfinder or FDS results was first created. It may be changed, however, to correspond with a real date/time either for event reconstruction or scenario planning.
The date/time may optionally be shown in the 3D View by going to the View menu and under the Time Display sub-menu, selecting either the Date/Time or Time option. The display of the date/time will automatically adjust depending on the current playback time. The Display Format defines how the date/time will be displayed.
The following formats are available:
- Regional
- Displays the date/time in a format that depends on the regional settings of the operating system.
For example, in the USA, it might display as
7/3/2018 3:47:00 PM
. In Germany, however, it might display as03.07.2018 15:47:00
. - ISO 8601
- Displays the date/time using the
ISO 8601
international standard. In this format, the date/time will appear in all regions as2018-07-03 15:47:00
.
Timeline Offsets are used to change the beginning time of the FDS and Pathfinder results relative to the global time reference in order to synchronize the timelines properly. This is necessitated by the fact that Pathfinder and FDS simulations are often run as though the beginning time is at some arbitrary value, usually t=0. When loading both Pathfinder and PyroSim/FDS results together at the same time, however, the results files might need to be offset from one another.
The View Timeline specifies the global time range displayed in the results.
It can be one of these values:
- Automatic (default)
- The time range is automatically calculated based on the active tour and currently active results. If a view with a tour is active (Section 4.2), the time range is set to the tour’s time range. Otherwise, the time range is the union of all time ranges for currently active results (Section 6.2).
- Custom
- The timeline can be entered manually using the Begin Time and End Time.
2.3.1. Example
To demonstrate the timeline parameters, suppose a hypothetical fire and evacuation scenario is recreated in PyroSim and Pathfinder.
- It is known that the fire alarms tripped on March 23, 2003 at 3:00 PM.
- It is believed that the fire started 2 minutes earlier.
- It is also known that the occupants started evacuating 3 minutes after the alarms tripped.
The fire is simulated such that the fire starts immediately at t=0. The Pathfinder simulation is also simulated with the evacuation taking place at t=0.
If both these results files were to be loaded with no changes to the timelines, the occupants would leave as soon as the fire started. In order to synchronize the results properly, the date, March 23, 2003 at 3:00 PM is entered for the reference time. The FDS time offset is set to -120 s to represent that the fire started 2 minutes earlier. The Pathfinder time offset is set to 180 s to represent the 3 minutes of pre-movement time. Now when played back, the results will be synchronized properly and show the correct date/time in the 3D View.
2.4. Navigating Through a Model
Once a model is loaded, the navigation tools (Figure 3) work similarly to those found in PyroSim.
At any time, press Ctrl+R to reset the camera view or in the View menu click Reset Camera.
2.5. Scene Camera
There are two main cameras that can be used to view the model. When switching between cameras, the Results application tries to maintain the same viewpoint if possible.
- Perspective View
- A camera that views the scene using a perspective projection. This tries to mimic the way a real camera would view the model. Perspective views can be used to view the model from any viewpoint including inside and outside buildings. All of the navigation tools can be used with the perspective view.
- Orthogonal View
- This camera uses an orthographic projection to view the model. Orthographic projections make edges that are parallel in the world coordinate system also appear parallel on the screen. The orthogonal view is limited to viewing the model from the outside. The roam tool cannot be used with the orthogonal view.
Either camera can be reset to several pre-defined viewpoints by selecting the appropriate toolbar button (Figure 4). These viewpoints include the Top, Front, and left Side (highlighted in red).
2.6. Views
Views can be used to store and retrieve various view state in the Results and to create animated tours of the model. For more information on using and creating views and tours, see Chapter 4.
2.7. Displaying Geometry Input
There are several geometry sets that may be available with Pathfinder and PyroSim/FDS results. When results are loaded, the available geometry sets are shown under the Scene Geometry group of the Navigation View.
By default, with the exception of the Pathfinder Navigation Mesh and Background Images, only one geometry set may be shown at a time. This can be changed in the Preferences dialog, by unchecking Scene Geometry→Only show one at a time. To go to the Preferences dialog, in the File menu select Preferences.
To switch between the geometry sets, either double-click the desired geometry set in the Navigation View or right-click it and select Show. The labels for geometry sets that are active become bold in the Navigation View.
The following geometry sets may be available for Pathfinder results:
- Pathfinder Geometry
- This includes CAD data that was imported into Pathfinder, such as from DWG or PyroSim files.
- Nav Mesh
- This represents the walkable space for Pathfinder occupants and may be shown with any other geometry set. It may either be shown on top of other geometry or underneath to fill in missing pieces of geometry, such as an elevator floor. To change this preference, either click the View menu and select Show Nav Mesh on Top or in the Navigation View right-click the geometry set that should be on top and select Show on Top of
- Background Images
- This includes any background images imported into Pathfinder.
The following geometry sets may be available for PyroSim/FDS results:
- FDS Actual
- The FDS obstructions, vents, and mesh boundaries that FDS used in the simulation. This geometry will be exactly aligned with the solution meshes.
- FDS Requested
- The FDS obstructions, vents, and mesh boundaries that were requested in the FDS input file. These may not line up with the solution meshes.
- PyroSim Geometry
- This includes CAD data that was imported into PyroSim. This format is richer than the GE1 format in that it can support arbitrary texture coordinates and it may better represent the actual CAD data.
- GE1
- A file format used by Smokeview to represent arbitrary CAD data.
The default geometry set shown in the results depends on which results type (Pathfinder or FDS) was loaded first and which geometry sets are available. For the results type that is loaded first, the geometry is chosen by selecting the first available set as listed above for each type.
With the exception of the Nav Mesh, geometry data can be shown in several different modes. To change the mode, click the mode drop-down box in the main toolbar (Figure 5).
The following modes are available:
- Solid Rendering
- Shows objects as solid with no materials/textures applied (Figure 6).
- Solid with Outlines
- Shows objects as solid with no materials/textures applied but with outlines turned on (Figure 7).
- Realistic
- Shows objects with their materials/textures (Figure 8).
- Realistic with Outlines
- Shows objects with their materials/textures and outlines turned on (Figure 9).
- Wireframe Rendering
- Displays only the outlines of geometric objects in the scene (Figure 10).
Rendering Modes
2.8. Selection
Objects in the Results can be selected by clicking them in either the 3D View or Navigation View. Selection is synchronized in all the views, which means that if you select an object in one view, it will also be selected in the other views. To select multiple objects, on the keyboard hold Ctrl while clicking the objects. To select an object’s parent, on the keyboard hold ALT while clicking the object. To clear the selection, press Esc or click in empty space in one of the views. Alternately, on the Edit menu, click Clear Selection.
When an object is selected, the name of the object will be displayed in the status bar at the bottom of the screen. In addition, the object will be highlighted in all the views.
Some objects have additional actions that can be performed on them once they are selected. Right-click on the selected objects or right-click an unselected object to select it and show a context menu with additional actions.
2.9. Viewing Multi-floor Problems
Some models are composed of several floors, causing each floor to obscure the one below it as shown in Figure 11. The Results application provides a variety of options for viewing the model such that building contents can be easily observed. One option is to view the model with the floors stacked vertically but separated by a settable distance. Another option is to view the model with the floors lying in the XY plane so that they can all be viewed from overhead. Both options allow a wall clip-height to be specified and for certain floors to be selectively shown or hidden.
Multi-floor layout options using the Pathfinder Getting Started model
To use any of the layout options, floors must first be defined. If the floors were defined in PyroSim or Pathfinder, they will carry through to the 3D visualization and no additional input is needed.
If they have not been defined or they need to be modified, this can be done as follows:
- Press the Edit Floor Settings button on the toolbar above navigation view or in the View menu, select Floor Settings. This will open the Floor Settings dialog as shown in Figure 15.
- Next to Floors click the Edit button. A dialog will appear that shows a list of the Z locations of the floors.
- In this list, add, remove, and edit floor locations (Figure 16).
- Click OK.
Floor Settings and Edit Floors dialogs
The Results application will partition the geometry among the floors such that the bottom floor contains all geometry from \(-{\infty}\) to the next floor’s location, the top floor contains all geometry from its location to \(+{\infty}\), and every other floor contains geometry from its location to the next floor’s location.
Once floors are defined, there are several ways to lay out the floors and clip the walls, which can all be done from the Floor Settings dialog. The Floor Layout controls how the floors are laid out in the view.
The following options are available:
- Vertical
- Stacks the floors vertically along the Z axis. When viewed in this manner, floors will appear naturally such that each floor is stacked on top of the one below it. The floors can then be separated by empty space to more easily view inside the model as shown in Figure 13. The Floor Separation controls the amount of space between floors.
- Horizontal
- Lays out the floors in a square grid and in one plane. They will appear in order from left to right and top to bottom such that the lowest floor is in the upper left corner and the highest floor is in the lower right corner. When laid out in this manner, the Floor Separation will affect the gap between floors in both the X and Y directions. An example of this type of layout is shown in Figure 14. By default, labels appear above each floor so the floors can be easily identified, but these labels can be hidden by opening the View menu and deselecting Show Labels.
- Wall Clipping
- Shorten the walls of each floor yet maintain a sense of obstruction placement as shown in Figure 12. As shown in this figure, more of the model can be seen than in Figure 11. To enable wall clipping, first check Clip Walls in the Floor Settings dialog. Then set Wall Height to the desired value. The geometry on every floor will be clipped above the floor’s Z location plus the wall height.
- Floor Separation
- Controls the amount of space between visible floors.
- Floor Visibility
- The floor visibility drop-down box image:results-ui-icon-floor-visibility_2023-1.jpg above navigartion view provides a way to show or hide floors, by default, all floors are visible.
Visible floors will appear either in Vertical or Horizontal layout, based on the choice in Floor Layout control.
One or multiple floors can then be observed easily inside the model.
- To show a single floor, click the down arrow and then click the desired floor.
- To show multiple floors, hold Ctrl on the keyboard while selecting the desired floors.
- To show all floors, click Show All.
- Show Floors for Selection
In addition to showing and hiding floors in floor visibility drop-down box, floors can also be isolated based on a selection. To do so, select the desired objects whose floors you want to isolate. Then right click and choose Show Floors for Selection. This will only show the floors containing the selected objects.
The floors are chosen as follows:
- A single floor will be displayed if the Z bounds of the selected objects is contained entirely within one floor.
- Several related floors will be displayed if the Z bounds of the selected objects span multiple floors.
- If the selection contains objects spanning multiple, non-consecutive floors, only the floors containing the objects are shown and not those in between.
To easily show all the floors again, either right-click on empty space in the scene view and choose Show All Floors or in the in the View menu, choose Show All Floors. The floors can also be shown again using the floor visibility drop-down box.
2.10. Animation playback
To begin animation playback, press the play button at the bottom of the 3D View. As the animation is playing, the time slider will move, and the animation can be paused . The buttons and will move the time slider to the beginning and end, respectively. The buttons and will slow down and speed up the animation by factors of two. In addition, the playback can be looped by checking the Repeat button.
The status bar at the bottom of the screen shows information about the current navigation tool and about playback status.
- The first section from left to right shows instructions for using the active navigation tool.
- The next shows the current playback status. This will display "Playing", "Paused", or "Stopped".
- The following section shows the current playback time as minutes:seconds.
- The next section shows the current playback speed.
- The last section shows the current rendering speed in frames per second - a common speed measurement in computer graphics. This can help determine how well a user’s computer handles 3D playback. Some ways to increase this are discussed in the section, Section 2.13.
2.11. Refreshing Results
Results can be viewed as a simulation is running, but they will only show the amount of time available at the last load or refresh. To refresh the results at any time, press F5 on the keyboard or select Refresh Results in the File menu. The current playback time will be restored after refreshing the results, making the refresh as seamless as possible. If the results are launched from PyroSim before the simulation is finished, the Results application will automatically refresh and come to the front of the screen when the simulation completes.
2.12. File Streaming
The Results application streams files from disk rather than loading the entire results files into memory. File streaming allows results to load quickly and enables very large results to be loaded even if there is limited system memory.
In order for file streaming to work well, the hard drive that contains the results data needs to be fast enough to load the results data at the desired playback speed. With some very large FDS results, however, even a fast disk may not be fast enough to stream the data.
These models may cause the results to stutter or pause intermittently during playback or when moving the time slider. In these extreme cases, the results can be loaded into memory.
To do so:
- Activate the problematic FDS results as discussed in Section 6.2.
- Right-click the problematic FDS results and select Cache results for smooth playback. This will ensure the results file will fit in memory and if so, start caching the file while showing a progress bar to indicate its progress.
2.13. Controlling Drawing Detail/Speed
There are several options controlling the drawing quality and speed in the Results application, including level-of-detail rendering, hardware versus software rendering, and vertex buffers. Almost all of the options are chosen automatically depending on the capabilities reported by the graphics adapter (GPU).
To view the rendering options, in the File menu select Preferences. This will open the Preferences dialog. Next select the Rendering tab. At any time, the Max Quality button may be pressed to load settings that will give the highest quality image available, which are automatically loaded by default.
There are some cases where these settings can be problematic for the graphics adapter and can produce incorrect renderings, such as black geometry, incorrect fire, etc. If this is the case, pressing the Max Compatibility button will load settings that should work even on these problematic GPUs, at the expense of rendering quality and speed.
The following rendering options are available:
- Enable level of detail
- Occupants far from the camera will be rendered with less detail than those closer to the camera. This greatly increases rendering speed when viewing occupants while only slightly sacrificing render quality.
- Enable vertex buffers
- Allows memory buffers used for graphical objects to be stored on the GPU rather than in system memory, reducing the amount of data that must be sent to the graphics card per frame. This increases rendering speed, but on some chipsets (e.g. older Intel graphics or drivers) we have found that using vertex buffers may lead to crashes, so it may need to be disabled for these chipsets.
- Load animation frames asynchronously
- Allows results animation frames to be loaded from disk in a separate thread. This is useful when the hard drive is too slow to stream the results at the desired playback speed (Section 2.12). In this case, the results will appear to pause, but the application will remain responsive to user clicks and maintains interaction with the scene. With it off, the UI may become unresponsive while frames are loaded.
- Ambient Occlusion
Enables shadowing in areas where light is less likely to reach, such as under objects, in corners, etc. This option generally produces more realistic and pleasing scenes, but it may have a large impact on rendering speed, depending on the system’s GPU. By default the option is off, but can be turned on manually or by selecting Max Quality.
Ambient Occlusion Options
- Occupants
- Specifies the algorithm used to animate Pathfinder occupants (Section 7.1).
- Use Hardware Shaders
- Uses GPU shaders to render the occupants. This option, coupled with Enable vertex buffers can vastly improve occupant-rendering performance on some GPUs.
- Use Compatibility Renderer
- Uses the CPU to render the occupants.
- Antialiasing
- Controls the antialiasing setting to smooth edges of objects.
The following options are available:
- Disabled
- Antialiasing is disabled. This is the fastest option, but edges of objects will appear jagged.
- SMAA 1x
- Uses enhanced subpixel morphological antialiasing in 1x mode. This is a fast antialiasing option that, for the most part, provides good quality for most object edges. In many cases it is higher-quality than MSAA 4X, but it does not work as well for very thin features such as thin lines or objects that are far from the camera.
- SMAA 2tx
- Uses enhanced subpixel morphological antialiasing in 2tx mode. This mode is similar to 1x mode but can handle thin features better in most cases. It still does not handle thin features as well as MSAA 4x, however, and is slightly slower than SMAA 1x mode.
- MSAA [2,4,8,16]x
- Uses multisample antialiasing. This antialiasing is the best option for rendering very thin features, such as thin lines, but is much slower than SMAA when using certain effects, such as ambient-occlusion. It also does not handle certain cases well as SMAA. Larger values increase the antialiasing quality at the expense of rendering speed, but a value of 4 usually provides a reasonable balance between quality and speed.
- VR Multisamples
- This option is only available when running Results using the VR Mode shortcut.
It controls the MSAA quality when rendering in VR (SMAA is not currently available in VR Mode).
A value of
0
disables anti-aliasing in VR Mode, and increasing values increase the quality. - 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.
- Image Based Lighting
- Enables scene lighting based on the current skybox (Section 2.15). This adds a large amount of detail to the lighting, especially when coupled with PBR materials, but may cause the scene to become too dark if the skybox doesn’t provide enough light. Lighting from a skybox may also appear inaccurate for indoor scenes. The lighting provided by this option can only be applied to geometry rendered with hardware shaders.
- FDS Slice Rendering
- Specifies the algorithm used to animate 2D FDS slices (Section 6.10).
- Use Hardware Shaders
- Uses GPU shaders to render the slices. This gives the highest quality rendering of 2D slices and may be the fastest option on modern GPUs.
- Use Compatibility Renderer
- Uses legacy OpenGL features to render the slices. This will be automatically chosen if the GPU fails to support shaders.
- FDS Data3D Slice Rendering
- Specifies the algorithm used to animate 2D Data3D slices (Section 6.8.3).
- Use Hardware Shaders
- Uses GPU shaders to render the slices. This gives the highest quality rendering.
- Use Compatibility Renderer
- Uses legacy OpenGL features to render the slices. This will be automatically chosen if the GPU fails to support shaders but still supports 3D textures.
- Disabled
- Disables the rendering of these slices. This will be automatically chosen if the GPU fails to support shaders or 3D textures.
- FDS Smoke/Fire→Render Method
- Specifies the algorithm used to render fire and smoke (Section 6.5).
A comparison of the algorithms is shown in the images below.
Using hardware shaders produces the most accurate color representation for fire when using Radiant rendering.
The other algorithms have restrictions that limit the amount of light that can penetrate and accumulate through the smoke.
- Use Hardware Shaders
- Uses GPU shaders to render smoke and fire (Figure 20). This produces the highest quality rendering and allows the use of more complex colormaps that may have colored smoke. It works by performing ray marching, which is a process where a ray is cast from each pixel away from the camera. The smoke/fire data is sampled at regular intervals along the ray and combined to produce the final color. This method may be slower than the other algorithms on older GPUs, especially if the smoke/fire mesh covers a significant portion of the pixels on the screen. The quality of this method can be reduced to increase speed by changing the Sampling Factor as discussed in Section 6.5.
- Use Compatibility Renderer
- Stores the smoke/fire data in 3D textures and draws many translucent slices through the data that are parallel with the view screen (Figure 21). This algorithm does not require the use of GPU shaders, but it has some disadvantages. It may produce visible artifacts where the slices intersect with scene geometry or the edge of the solution mesh. It will also produce incorrect renderings if using non-black smoke combined with the Radiant Fire Rendering technique (Section 6.5). It also has reduced quality and somewhat reduced rendering speed.
- Use Smokeview Renderer
Uses an algorithm similar to that used in Smokeview and the compatibility renderer where many slices are drawn through a 3D dataset (Figure 22). It also has the same limitations as the compatibility renderer except that it is generally much faster for static viewpoints. This technique also does not require 3D textures, which improves its compatibility with older GPUs, but the slices are only drawn through the data at fixed angles. This becomes more visible as the camera is rotated around the scene and can produce slight, sudden shifts in the rendering.
Fire rendering algorithms
- FDS Smoke/Fire→Reduce Banding Artifacts
This option is only available when using the hardware shaders algorithm. It reduces banding artifacts that may be visible when the ray-marching sampling frequency is too low for the fire data as seen in the images below. It counters the banding effect by using a dithering pattern that is generally more visually pleasing. It negatively impacts the rendering speed very slightly, but is still much faster than the alternative, which is to increase the Sampling Factor.
Reduce banding artifacts option
- FDS Smoke/Fire→Advanced Lighting
This experimental option is only available when using the hardware shaders algorithm. It simulates ambient lighting in smoke, which may help to better visualize the structure of the smoke and enhance realism as seen in the images below. This option may have a large impact on rendering speed, depending on the system’s GPU. By default the option is off, but can be turned on manually or by selecting Max Quality. When this option is enabled, an extra Smoke Brightness setting is available in the Smoke3D Properties dialog as discussed in Section 6.5 and in the Quick Settings.
Advanced Smoke Lighting Option
- FDS Volumetric Data3D→FDS Data3D Rendering
- Specifies the algorithm used to create volumetric rendering of 3D datasets, such as Plot3D and 3D Slices.
- Use Hardware Shaders
- Uses GPU shaders to perform volumetric rendering. As with fire/smoke, this uses a ray-marching algorithm to produce the highest quality rendering. The quality of this method can be reduced to increase speed by changing the Sampling Factor as discussed in Section 6.8.1.
- Use Compatibility Renderer
- As with fire/smoke rendering, this algorithm draws many slices through 3D textures to generate the volumetric effect.
- Disabled
- This is automatically chosen if the GPU does not support shaders or 3D textures.
- FDS Volumetric Data3D→Reduce Banding Artifacts
- This works the same way as for fire/smoke rendering.
2.14. Motion Blur
Motion blur is a graphics effect used to emulate the streaking of fast-moving objects in cinema, caused by the limited shutter speed of a motion camera. This effect is most noticable when there is fast motion on the screen such as watching a sped-up playback of Pathfinder occupants or fast movements of the camera. On the View menu, click Enable Motion Blur to enable the effect. This setting is saved with the visualization file. The images below compare a scene with motion blur enabled and disabled and were taken while playing back Pathfinder results at 16x speed.
Motion Blur Option
2.15. Skyboxes
One way to improve the visual appeal of a scene, especially if it is an outdoor area or has windows to the outside, is to add a skybox. A skybox is a specialized background with more interesting features, such as sky, clouds, the sun, mountains, cityscape, etc. It is simply an image or collection of images that are displayed as if they are infinitely far away.
These images are often generated from the real world using a 360° camera or generated with CG. The features of the background completely enclose the scene such that when the scene camera is rotated, the background rotates as well but if the camera moves, the skybox stays in place.
The skybox can also be used to light the scene when image-based lighting is enabled. This can improve the visual fidelity of the scene, especially when combined with PBR materials. See Section 2.13 for more information.
The Results application allows a skybox to be easily added to the scene for added visual appeal.
An example skybox is shown in Figure 29:
Skybox comparison
To add a skybox, in the View menu, click Edit Skybox or click the skybox button in the toolbar. This will open the Edit Skybox Dialog as shown in Figure 31. Edits in this dialog take place immediately for live feedback.
The following options are available for specifying a skybox:
- None
- Removes the skybox from the scene.
- Predefined
- Specifies a basic skybox that is included with Results.
- 360 Image
- Specifies an image taken from a 360° camera (Figure 32). This is also known as a photo sphere image or equirectangular image.
These images look similar to the following:
- Single cubemap
Specifies a single image that contains all 6 sides of a cube that encloses the scene (Figure 33).
The cubemap image must look similar to the following:
This cubemap image is the work of Emil Persson, aka Humus and is available under the Create Commons Attribution 3.0 Unported License: http://creativecommons.org/licenses/by/3.0/
- Split cubemap
- Specifies a cubemap that is split into 6 different images as indicated in the above cubemap image.
Sometimes cubemap images are labelled as Min/Max XYZ faces. This can become confusing if the images are specified in a coordinate system where Y is up, as the Results applications treats the Z axis as up. To determine if the images are specified in an alternate coordinate system, find the bottom image. If it is labelled as Min Y, it is using a Y-is-up coordinate system. To enter these images, swap the Y and Z images when entering them into the Edit Skybox Dialog.
Once a skybox has been chosen, the following properties are available:
- Z Rotation
- Specifies a rotation angle in degrees about the Z axis. This can be used to align the image with a known orientation, such as if a 360 image has been captured from a job site.
- Show Skybox
- Whether the skybox is visible in the scene. This can be used to temporarily hide the skybox. The skybox can also be hidden by going to the View menu and unchecking Show Skybox.
- Compress Textures
- Whether skybox textures should be compressed on the GPU. Checking this box may save graphics memory, which can be helpful on systems with limited GPU memory, but it may also lower skybox image quality.
2.16. Creating Screenshots
A screenshot is a still image of the scene. The Results application can create a single screenshot or multiple screenshots from different views and playback times.
To create a screenshot or series of screenshots, perform the following:
- Activate the desired viewpoint or tour or position the camera at the desired viewpoint from which to take the screenshot.
- Activate all desired results that should be shown in the screenshots.
- Set any desired view options, such as whether the clock or occupant counts should be shown.
- In the File menu, select Create Screenshot. A file chooser will ask for the file name of the resulting screenshot. If multiple screenshots will be created, this is a base name that will be used for each resulting file.
- The Screenshot dialog will appear as shown in Figure 34.
- Press OK to create the screenshots.
The following options are available for screenshots:
- Screenshot Size
- Specifies the dimensions of the resulting screenshots.
The size is entered as
width x height
. - Enable Level of Detail
- Determines whether level-of-detail should be used for occupants as discussed in Section 2.13. Checking this box will reduce the quality of the screenshots but will be faster to render.
- Show screenshots when finished
- If checked, when the screenshots are finished, the folder containing the screenshots will open in a Windows Explorer window, with the new screenshots selected. If only one screenshot is created, the screenshot will also be opened in the default image application.
- Creation
- Specifies how the screenshots are created, including from which views and at what playback times. The different creation methods are defined below.
2.16.1. Single
The Single creation method allows one screenshot to be created. The following options are available:
- Time
- Specifies the playback time of the screenshot. This defaults to the current playback time when the screenshot dialog was opened.
- View
- Specifies which view to take the screenshot from. <current view> indicates that the screenshot should be taken from whatever is currently displayed in the 3d view.
2.16.2. Multiple
The Multiple creation method allows multiple screenshots to be created from several different playback times and views.
The following options are available:
- Start Time
- The first playback time at which to take a screenshot from each view.
- End Time
- No screenshots will be taken after this playback time.
- Time Interval
- The amount of playback time between screenshots.
- Views
- The views from which to take screenshots. Clicking the link will open the Select Views dialog as shown in Figure 35.
The Select Views dialog can be used to select which views the screenshots will be taken from. The list of views can be limited by unchecking the boxes next to the various filters at the bottom of the dialog.
When using the Multiple creation method, the screenshots are created in the following way: for each playback time between the start and end times using the time interval, a screenshot will be created for each selected view.
This means that there may be up to m*n
screenshots taken, where m
is the number of times between the start and end time, and n
is the number of selected views.
The actual number of screenshots may be fewer than this, as screenshots will only be taken for a tour if the playback time is inside the time range of the tour.
The names of the screenshots follow this format:
name_time_viewname.ext
Where name
is the name of the screenshot as chosen when the screenshot dialog was opened, time
is the playback time for the screenshot as an offset in seconds from the start of the results, viewname
is the name of the view from which the screenshot was taken, and ext
is the image extension.
If <current view>
is chosen as one of the views, _viewname
is excluded from the file path.
2.16.3. From File
Screenshots may also be created from a specification file. This method gives the most flexibility and allows the re-use of that specification between results visualizations, but it also requires the user to create the file.
To do so, create a file with the extension, .tsv
, which stands for "tab-separated values".
This is a plain-text file, meaning that it can be created in a text editor, such as Notepad or Wordpad.
The format of the file is as follows:
time1 viewname1 viewname2 time2 viewname1 viewname3 viewname4 time3 viewname2 ...
Each row specifies a different playback time, with the playback time in the first column. Each column after that specifies the name of a view.
If there are multiple views from different sources (e.g. Pathfinder or PyroSim) that have the same name, prepend the name with [Pathfinder] for views created in Pathfinder or [FDS] for views created in PyroSim and Pathfinder or Smokeview (do not include the quotation characters).
There must be a space after the closing square bracket.
Here’s a snippet from a file named screenshots_for_model1.tsv
:
0.0 Top Front 30.0 \"Floor 0\" Left 120.0 Top
Selecting this file with a screenshot name of model1.png
would create the following screenshots:
model1_000.000_Top.png
model1_000.000_Front.png
model1_030.000__Floor 0_.png
model1_030.000_Left.png
model1_120.000_Top.png
Notice that the quotation marks in Floor 0
turned into underscores (_
).
The Results application does this to special characters that are not allowed in file paths.
2.16.4. Scripted Screenshots
Screenshots can also be created by running Results through the command-line without having to go to through the Results user-interface. This is useful, for instance, in automating the creation of screenshots for a report. This option supports all of the above ways of creating screenshots, including single screenshots, screenshots from multiple views at regular intervals, and screenshots from a tsv file.
In order to create screenshots this way, first open a command-prompt by clicking the Start menu, typing cmd
, and pressing Enter.
To create a single screenshot, in the command-prompt enter:
"C:\Program Files\PyroSim\PyroSimResults.exe" -screenshot -ssname "screenshots/ModelScreenshot.png" -sswidth 1280 -ssheight 720 -ssview "Entrance" -sstime 5.0 "C:\PyroSim\test_model\test_model.smvv"
This will create a single screenshot named C:\PyroSim\test_model\screenshots\ModelScreenshot.png
from the view, Entrance
, at t=5.0 s
. The screenshot will have the size, 1280x720
.
To create multiple screenshots as described in Section 2.16.2, in the command-prompt enter:
"C:\Program Files\PyroSim\PyroSimResults.exe" -screenshot -ssname "screenshots/ModelScreenshot.png" -sswidth 1280 -ssheight 720 -ssviews "Entrance,[Pathfinder] View00" -sstbegin 10.0 -sstend 120.0 -ssdt 5.0 "C:\PyroSim\test_model\test_model.smvv"
This will create several screenshots from the views, Entrance
and [Pathfinder] View00
. In this case, the screenshots will be located in C:\PyroSim\test_model\screenshots\
, have base name, ModelScreenshot
, and size, 1280x720
. The screenshots will start at t=10 s
, end at t=120 s
, and be 5 s
apart.
To create screenshots from a tsv file as described in Section 2.16.3, in the command-prompt enter:
"C:\Program Files\PyroSim\PyroSimResults.exe" -screenshot -ssname "screenshots/ModelScreenshot.png" -sswidth 1280 -ssheight 720 -sstsv "screenshots/testtsvfile.tsv" "C:\PyroSim\test_model\test_model.smvv"
This will create screenshots from the visualization file, test_model.smvv
, by using the tsv file, C:\PyroSim\test_model\screenshots\testtsvfile.tsv
. In this case, the screenshots will be located in C:\PyroSim\test_model\screenshots\
, have base name, ModelScreenshot
, and size, 1280x720
.
The following is the full list of screenshot commands that can be used:
- -screenshot
- Indicates that screenshots are to be taken, which will prevent the main Results application frame from showing, and will immediately exit the Results application when the screenshots are finished.
- -ssname x
- [optional] Specifies the base name for the resulting screenshots. This can be an absolute path or can be relative to the directory of the visualization file. In the case of a single screenshot, this specifies the exact name of the screenshot. For multiple screenshots, this specifies only the first part of the screenshot name. The extension indicates the type of image file to create. If the
-ssname
argument is omitted, the screenshots will be located in the same directory as the visualization file and the names will be based on the visualization file name. If the name contains spaces, surround x in quotes, for example,-ssname "My Screenshot.png"
. - -sswidth w
- [Default=
1920
] Specifies the width of the screenshot(s). If omitted,1920
is used instead. - -ssheight h
- [Default=
1080
] Specifies the height of the screenshot(s). If omitted,1080
is used instead. - -ssview viewname
- [Default=
<current view>
] Specifies the name of the view from which to take a screenshot when not using a tsv file. If omitted, the active view saved in the visualization file is used. - -ssviews viewnames
- Specifies the views from which to take multiple screenshots. This must be a comma-separated list of views. If any of the view names has a space, surround viewnames in quotes. For example,
-ssviews "View00,My View,View 3"
. - -sstime t
- [Default=0] Specifies the time at which to take the screenshot. This is only used when taking a single screenshot.
- -sstbegin tbegin
- [Default=0] Specifies the start time at which to take multiple screenshots.
- -sstend tend
- [Default=0] Specifies the end time for taking multiple screenshots.
- -ssdt dt
- [Default=0] Specifies the time between screenshots when taking multiple screenshots.
- -sstsv tsvfile
- Specifies the tsv file when taking screenshots from a tsv file as described in Section 2.16.3. This path can be absolute or can be relative to the specified visualization file’s directory. When using this option, do not include
-ssview, -ssviews, -sstime, -sstbegin, -sstend, -ssdt
.
2.16.5. Previewing Screenshots
When creating a screenshot, the chosen size is often different than the current 3d view size in Results. For this reason, the screenshot might not exactly match what is seen in the 3d view. This can be fixed by matching the 3d view size with the desired sceenshot size. In order to do so, on the View menu, click Set 3D Window Size, which will open the Edit 3D Window Size dialog as shown in Figure 36. In this dialog, set the Width and Height to the same size that will be used for the screenshot.
- -Width
- The desired width of the 3d window.
- -Height
- The desired height of the 3d window.
- -Mode
- The mode in which to set the size of the 3d window. This can be one of the following values:
- -Set Window Size
- Explicitly sets the size of the 3d window. If the requested size is too large to fit on the display monitor, the size is adjusted to fit, but will keep the specified aspect ratio.
- -Match Aspect Ratio
- Adjusts the current window size to so that its aspect ratio matches the requested aspect ratio. This is useful if you will be creating large screenshots but want to keep the Results window about the same size it currently is.
Click OK in the Edit 3D Window Size dialog to change the window size.
2.17. Creating Movies
Movies can be created from the Results application for playback on machines that do not have the Results application or for presentation purposes. Movies can be created in two different ways. One way is to create a high-quality movie that is rendered offline. The other is to create a lower-quality movie in real-time that allows the user to interact with the scene while the movie is recording.
2.17.1. High Quality Movies
High quality movies are useful for presentation purposes, and play back smoothly at any resolution and with any high-quality settings turned on, regardless of the complexity of the scene. The disadvantage to this type of movie is that the camera must either remain static or its movements must be pre-planned using camera tours. In addition, the user cannot interact with the scene while the movie is being created (such as changing the selected occupant, turning on and off paths, etc.).
To create a high-quality movie:
- Either activate the desired camera tour to be used for the movie by double-clicking it in the navigation view or position the camera to the desired viewpoint.
- Activate all desired results that should be shown in the movie.
- Set any desired view options, such as whether the clock or occupant counts should be shown.
- In the File menu select Create Movie. A file chooser will ask for the file name of the resulting movie. From this file chooser, the type of movie can be specified as a MPEG-4 Video (MP4) file, an Audio-Video Interlaced (AVI) file, or a Windows Media Format (WMV) file. AVI files can be rendered as uncompressed or compressed. MP4 and WMV files can only be compressed. Uncompressed files will be very large but will be of the highest-quality. Compressed files are much smaller in size but with some reduced quality. To create compressed AVI files, video codecs must be installed on both the computer that will create the file and the computer that will play back the file. Some popular AVI codecs include Xvid, Divx, and ffdshow. WMV files, however, do not require special codecs to be installed on either the source or destination computers, but they will only work on Windows machines unless special software is installed on another platform. MP4 files do not require any additional codecs for current versions of Windows or most other platforms.
A dialog will show some movie making options as in Figure 37.
The options are as follows:
- Video Size
- Specifies the resulting video’s dimensions. This is only limited by the maximum size of a viewport on the computer’s video hardware; with some codecs, however, each dimension must be a multiple of 2 or 4. If you have trouble creating a movie, try making the size a multiple of 4. The Use window size button will set the size to the 3D window’s current size.
- Framerate
- Determines how smoothly the video will play back. The higher this number is, the smoother the playback at the expense of longer rendering time to create the movie and larger file size. 30 frames/second provides reasonably smooth video playback.
- Speed
- Specifies the speed at which the results will play. 1 X will play the movie at real-time speed, 2 X will play the movie twice real-time, etc. Time Range*: Specifies the beginning and end time of the results over which to create the move.
- Enable Level of Detail
- Specifies that level of detail rendering should be turned on while creating the movie. This will lower the resulting quality, but it will decrease the time to make the movie on scenes with many occupants.
- Watch Movie when Finished
- Specifies that the resulting movie should open in the default video player for the chosen video type when the movie is completed.
- Compressor
Shows which video codec is currently selected and allows the codec to be chosen and configured. If Configure is pressed, another dialog will show as in Figure 38. This dialog will show a list of the codecs currently installed on the computer. Some codecs allow certain properties, such as the Quality, Data Rate, and Keyframe interval to be specified. These properties control the resulting movie’s quality, file size, and seeking performance (how well a movie can be skipped around in the video player), respectively. For the Nvidia NVENC encoder, the Preset property must be specified instead of Quality as seen in Figure 39. Higher preset values result in higher quality but slower to produce files. Some codecs do not expose these properties through this dialog, however. To configure these codecs, you must press the additional Configure button if it is enabled.
Movie option dialogs
- Press OK to start making the movie. While the movie is being created, a dialog will show the progress. If the movie is cancelled before it is completed, there will still be a valid video; it just will not play the entire results.
2.17.2. 360 Movies
High-quality movies can also be created as 360 movies. These movies contain a spherical projection of the scene, allowing the camera angle to be controlled during playback in supported video players. 360 movies exported by Results also contain the metadata needed for uploads to YouTube and other platforms.
360 movies can be created from any viewpoint, tour, or follow camera. However, the primary camera angle will be tilted to be level with the horizontal plane, keeping stability throughout the movie.
The following graphical effects are disabled during 360 movies:
- Motion Blur
- Ambient Occlusion
- Advanced Smoke Lighting
To create a 360 movie, follow the same steps as in Section 2.17.1, but select Create 360 Movie instead of Create Movie in the File menu. 360 movies can only be created in the MPEG-4 Video (MP4) format.
2.17.3. Real-time Movies
Movies can also be created in real-time. This means that it will record while the user is interacting with the results and it will record everything the user sees except for the cursor. The disadvantage of this type of movie is that it will play back only as smooth and of the same quality as that which the user who created the movie saw. So if the scene is very complex and the movie creator’s computer cannot view the results smoothly, the resulting movie’s play back will suffer as well.
To create a movie of this type, press the record button . A file chooser dialog will prompt for the file name of the movie. For real-time movies the only allowable type is WMV. Once the file name is chosen, the codec configuration dialog will be shown as in Figure 38. When OK is pressed on this dialog, the movie will begin recording. At this point, anything the user sees in the 3D View will be recorded in the movie. Now the user can change the camera angle, start and stop playback, select occupants, change view settings, etc. and the movie will capture everything. At any time, the movie can be paused or stopped. Pausing the movie will stop the recording but leave the movie file open so that recording can be resumed to the same file. This allows the user to perform some action that they do not want to be recorded. To pause movie recording, press the pause movie button . To resume recording, press the resume movie button . Stopping the movie will end recording and disallow any further recording to the file. To stop recording, press the stop movie button .
2.17.4. Scripted Movies
Movies can also be created by running Results through the command-line without having to go to through the Results user-interface. This is useful, for instance, in automating the creation of movies for a report.
In order to create movies this way, first open a command-prompt by clicking the Start menu, typing cmd
, and pressing Enter.
To create a movie in the command-prompt enter:
"C:\Program Files\PyroSim\PyroSimResults.exe" -movie -mvname "movies/ModelMovie.mp4" -mvwidth 1280 -mvheight 720 -mvframerate 60 -ssview "Entrance" -mvbegin 5.0 -mvend 10.0 "C:\PyroSim\test_model\test_model.smvv"
This will create a movie named C:\PyroSim\test_model\movies\ModelMovie.mp4
from the view, Entrance
, from t=5.0 s
to t=10.0 s
.
The movie will have a size of 1280x720
and a framerate of 60 frames/second
.
The following is the full list of movie commands that can be used:
- -movie
- Indicates that a movie is to be recorded, which will prevent the main Results application frame from showing, and will immediately exit the Results application when the movie is finished.
- -mvname x
- [optional] Specifies the name for the resulting movie.
This can be an absolute path or can be relative to the directory of the visualization file.
If the
-mvname
argument is omitted, the movie will be located in the same directory as the visualization file and the name will be based on the visualization file name. If the name contains spaces, surround x in quotes, for example,-ssname "My Movie.mp4"
. - -mvwidth w
- [Default=
1920
] Specifies the width of the movie. If omitted,1920
is used instead. - -mvheight h
- [Default=
1080
] Specifies the height of the movie. If omitted,1080
is used instead. - -mvframerate fps
- [Default=
30
] Specifies the framerate of the movie. If omitted,30
is used instead. - -mvspeed speed
- [Default=
1.0
] Specifies the speed at which the results will play. 1.0 will play at real-time speed, 2.0 will play at twice real-time, etc. If omitted,1.0
is used. - -mvview viewname
- [Default=
<current view>
] Specifies the name of the view or tour from which to record a movie. If omitted, the active view saved in the visualization file is used. - -mvbegin tbegin
- [Default=
<view begin>
] Specifies the start time of the movie on the global timeline. If omitted, the start time of the visualization or tour is used. - -mvend tend
- [Default=
<view end>
] Specifies the end time of the movie on the global timeline. If omitted, the end time of the visualization or tour is used. - -mvlod
- Enables level of detail rendering while creating the movie. This will lower the resulting quality, but it will decrease the time to make the movie on scenes with many occupants.
- -mvhideoverlays
- Hides overlays, such as the occupant count and timestamp, while creating the movie.
- -mvencoder encoder
- [Default=
nvenc
] Specifies the video encoder to use for the movie. Must be one ofnvenc
oropenh264
. If not specified,nvenc
will be used. Ifnvenc
is specified but not available,openh264
will be used as a fallback.
- -mvencoderpreset preset
- [Default=
2
] If-mvencoder
isnvenc
, specifies the encoder preset to use from 1-7. Lower values increase the time needed to create the movie but result in higher-quality output. - -mvencoderbitrate bitrate
- [Default=
6000
] Specifies the target bitrate of the movie, in kilobits/second. Higher values result in larger and higher-quality output. If omitted,6000 kilobits/second
will be used. - -mvencoderkeyframeinterval interval
- [Default=
60
] Specifies the number of frames between keyframes in the movie. Lower values result in better playback when skipping around in a movie. If omitted,60 frames
will be used.
2.17.5. Previewing Movies
In order to correctly preview what will be seen in the resulting movies, the 3D window size should match the size that will be used for the movie. This process is the same as it is for previewing screenshots. See Section 2.16.5 for more information.
3. VR Mode
Results can optionally be viewed in virtual reality using a VR headset, such as the Oculus Rift, HTC Vive, or other Steam VR-compatible headset. VR mode provides an immersive view of the model with a better sense of depth, object placement, and object sizes.
When VR Mode is activated, the roam tool is automatically selected and is the only tool that can be used to navigate the model. The viewing camera tracks the movements and orientation of the headset as the user looks around the model.
It is also possible to move through the model using the conventional mouse and keyboard controls for the roam tool, but it is not recommended, as moving the camera in this way can lead to nausea in some users.
VR Mode can also be started while a tour is active. It is recommended that the tour consists only of stationary viewpoints to avoid nauseating the user. When done this way, viewpoints will fade in and out to avoid sudden transitions for the user. If the tour does include camera movements, it will act as if the user is sitting in a car that is moving on rails, allowing the user to continue looking around the model as the tour progresses.
3.1. Hardware Requirements
The following headsets have been verified to work with the Results:
- Oculus Rift
- Oculus Rift S
- HTC Vive
It should, however, work with several other headsets, including all that are compatible with Steam VR and Oculus PC platforms, including the Oculus Rift S, HTC Vive Pro, Valve Index, Samsung Odyssey, etc.
The computer also needs a high-performance video card and processor. Typical VR computers tend to have the following specifications:
- i7 or better CPU
- GPU advertised as being VR ready, such as the Nvidia GeForce GTX
- 16GB of RAM
- SSD or NVMe drive on which the results are stored
Many vendors supply VR-Ready machines as well.
3.2. Viewing VR
To use VR Mode in the Results, perform the following steps:
- Ensure the VR headset is properly installed using the installation instructions for the headset.
- Test and make sure the headset works. Most headsets will show a VR environment as soon as you put it on.
While not wearing the headset, run Results using the PyroSim VR Mode shortcut from the Start menu Figure 40.
Verify that there is a VR button in the main toolbar as shown in Figure 41. If it is greyed out, see Section 3.4.
- Open your output data: the .pfr (Pathfinder) and/or .smv (PyroSim) files.
- The data will be displayed in the Navigation View on the left of the screen. Double-click the data to display in the visualization window. Double-click again to disable that data view (Section 6.2).
- Position the camera to the desired VR location using one of the navigation tools or by activating a viewpoint/tour (Chapter 4).
Click the VR button , click play on the timeline, and put on the VR headset. Depending on the headset, it may take up to a minute for the Results to appear in the headset. Once it does start displaying, the headset should show the viewpoint inside the model with the data being displayed. You can now look and move around in the model with the view updating continuously as your head is moved.
The Results window should show the user’s viewpoint from each eye as shown here:
- Select a different view to move to a new location.
- Take off the headset and click the VR button again to turn off VR Mode.
3.3. Limitations
There are some limitations to using VR mode:
- VR controllers are not yet supported. All interaction must be done with the mouse and keyboard.
- Movies and screenshots may not work as expected.
3.4. VR Troubleshooting
- If Results cannot detect a VR headset attached to the system, the VR button in the main toolbar will be greyed out. If a headset is indeed properly attached and installed, restart either Results or the computer and try again. If it is still greyed out, test another VR application to ensure the headset is working properly. If it is working in another application and still greyed out in the Results, contact support@thunderheadeng.com for further assistance.
- If occupant movement appears choppy or inconsistent, under File→Preferences→Rendering, uncheck the Load animation frames asynchronously option. Remember to turn this back on when finished with VR mode.
- If performance in general is too slow or choppy, under File→Preferences→Rendering, lower the value for VR multisamples.
4. Views, Tours, and Clipping
Views provide the capability to store and retrieve various view state in the Results, to create animated tours of the model, and to clip the model and results using section boxes.
There may only be one active view at a time. There is always a Default view, which contains no saved state and is the active view by default. Whenever a view is activated, the stored view state will be restored. View state may optionally include any of the following:
- Section Box
- A box that can be used to clip away portions of the scene. The clipping is applied to all results, including occupants, though occupants will either be fully visible or fully hidden; they will not be partially clipped as with other scene geometry.
- Viewpoint
- Positioning information for viewing the scene from one of the cameras.
- Tour
- A camera animation that changes the viewing perspective over time.
A view may have a viewpoint or tour, but not both. A section box can be used in combination with either, however.
To activate one of the views, either double-click the desired view in the navigation view or right-click it and select Set Active. This will make the view active and restore the view state associated with that view.
If there is a tour or section box, the tour/section box becomes active and remains active as long as the view is active. If there is a viewpoint instead of a tour, the camera shows the viewpoint, but the navigation tools can still be used to modify the camera. Modifying the camera does not modify the saved viewpoint, however.
To deactivate the view, simply double-click another view. This will deactivate the current view and activate the other one. Alternately, right-click the current view and select Set Inactive or if no changes have been made to the scene camera since the view was activated, double-click the view again. This activates the Default view.
If any views or tours were created in PyroSim, Pathfinder, or Smokeview, they will appear in the navigation view, with a label indicating their origin, such as [Pathfinder] or [FDS]. While these views cannot be edited, they can be duplicated, and the duplicates can be edited. For more information, see Section 4.4.
4.1. Viewpoints
At any time, the state of the active camera can be saved to a view, including its position, orientation, and zoom. A viewpoint can be recalled later to view the scene from that perspective.
4.1.1. Creating a Viewpoint
A viewpoint can be created in one of the following ways:
- In the View menu, select Views and Tours→New View.
- In the navigation view, right-click the Views group and select New View.
- Right-click empty space in the 3D view and select New View.
This will add a new view to the model, saving the current camera viewpoint, section box, navigation tool, and camera type (Perspective versus Orthographic) into the new view. The new view will become the active view.
To delete a view, select it in the navigation view and press Delete on the keyboard. If the deleted view was active, the default view becomes active instead.
4.1.2. Recalling a Viewpoint
To recall a viewpoint, perform any of the following:
- Activate the view that contains the viewpoint.
- If changes have been made to the scene camera since the view was activated, double-click the view again to recall its viewpoint.
- In the navigation view, right-click the view and select Show viewpoint.
- In the 3D view, right-click empty space and select Reset to Viewpoint. This will show the viewpoint of the active view.
- Under the Views menu, select Views and Tours→Reset to Viewpoint. This will also show the viewpoint of the active view.
- While editing a tour, double-click a view containing the viewpoint. See Section 4.2 below for more information on editing tours.
Recalling a viewpoint will switch the scene camera to either the perspective camera or orthographic camera and will initialize it with the state of the saved viewpoint. In addition, the saved navigation tool will also become active.
4.1.3. Editing a Viewpoint
If the orientation of a viewpoint needs to be changed, perform the following:
- Position the scene camera into the new desired position.
- Perform one of the following:
- In the navigation view, right-click the view and select Save viewpoint.
- In the 3D view, right-click empty space and select Save viewpoint.
This will save both the current camera orientation and navigation tool into the view.
4.2. Camera Tours
The Results application provides the capability to create and view camera tours, which can be played back or recorded to video.
Tours are useful in the following scenarios:
- Create more cinematic views of the results, such as showing a dynamic panning view of the model.
- Simulate security cameras by having the camera pan/tilt back and forth on a timed loop.
- Show several static views of the scene that change periodically.
Conceptually, camera tours consist of a number of viewpoints at different playback times, referred to as keyframes. When a tour is played back, the scene camera smoothly interpolates between viewpoints at the keyframes. Tours may repeat and can start at any time.
When a tour is active, the results playback time range is set to the time range of the tour (Section 2.3).
4.2.1. Tour Editor Dialog
Tour creation and editing is performed through the Tour Editor Dialog, as shown in Figure 43. The tour editor dialog allows various tour properties to be modified and allows keyframes to be added, removed, and modified.
While the tour editor dialog (Figure 43) is open, the scene camera will stop tracking with the tour. This is to allow positioning of the camera in order to add or edit keyframe positions. To preview changes made to the tour, click the Preview button at the bottom of the tour editor dialog. This will lock the scene camera back to the tour and begin playback at the current time. If the current time is outside the tour time or at the end of it, the playback time is changed to the beginning time of the tour. To end the preview, click End Preview. The scene camera will once again unlock, allowing changes to the keyframes.
While the tour editor dialog is open, clicking a keyframe in the table will also set the playback time of the results to that keyframe time and show the viewpoint of that keyframe in the 3D view. Similarly, changing the scene playback time using the time slider will automatically select the most recent keyframe in the table.
While the tour editor dialog is open, another view can be double-clicked in the navigation view to show the viewpoint of that view.
4.2.2. Tour Properties
Tours have the following properties:
- Timeline
- Specifies which results timeline the tour belongs in. The value may either be Pathfinder or FDS. If the value is FDS, the keyframe times are stored relative to the FDS Time Offset as described in Section 2.3. That way, if the FDS Time Offset changes, the tour will still remained aligned with the FDS results.
- Repeat
- Specifies whether the keyframes should repeat if the playback time is past the last keyframe time.
- Repeat delay
- If Repeat is checked, this value indicates how much time should be spent on the last keyframe before repeating the first keyframe.
- Keyframes
- Provides a list of all the keyframes in time order. Keyframes can be added and modified in several ways as described below.
Keyframes have these properties:
- Time
- The keyframe’s time. This is the time at which the scene camera should be in the recorded position.
- Viewpoint (not shown in the keyframes table)
- The desired position, orientation, and zoom of the camera when the keyframe is reached.
- Transition
Specifies how the scene camera will transition to the next keyframe. If this is the last keyframe and Repeat is checked, the next keyframe is the first keyframe.
The transition value can be one of the following:
- Move to next
- The scene camera will smoothly move to the next keyframe.
- Stationary
- The scene camera will remain stationary until the next keyframe.
4.2.3. Creating a Tour
To create a tour, perform the following:
- Add an empty tour to the results by performing one of the following:
- In the View menu, selected Views and Tours→New tour.
- In the navigation view, right-click under the Views group and select New tour.
In the 3D view, right-click empty space and select New tour.
- In the tour editor dialog, choose the desired Timeline, but leave Repeat unchecked. If it is desired for the tour to repeat, only check the repeat box after all the keyframes for one loop have been added.
- Move the time slider to the desired start time of the tour.
- Position the camera to the desired start location of the tour. This can be done either with the navigation tools or by double-clicking another view to show its viewpoint.
- Click the Add button in the tour editor dialog. This will record the camera position and playback time as a new keyframe. The time can be adjusted by typing in a new time into the keyframe table.
- Decide what kind of transition should take place to the next keyframe and choose the appropriate value in the Transition column of the keyframes table.
- Repeat steps 3 through 6 for subsequent keyframes.
- Check the Repeat box if the tour should repeat.
- Click the Close button to close the tour editor dialog.
4.2.4. Editing a Camera Tour
There will be times when changes need to be made to a tour, such as the start time, camera position during a transition, adding a repeated section of the tour, etc. Tours can be edited in several ways.
To begin editing the tour, open the tour editor dialog in one of the following ways:
- In the navigation view, right-click the view with the tour, and click Edit tour. This will activate the view and open the tour editor dialog.
- With a tour active, in the 3D view, right-click empty space and select Edit tour. This will begin editing the tour in the active view.
- With a tour active, in the View menu, select Views and Tours→Edit tour. This will also begin editing the tour in the active view.
With the tour editor dialog open, several changes can be made, including the following:
4.2.4.1. Fix the viewpoint of a keyframe
Sometimes a keyframe doesn’t have quite the right orientation or camera position. This can be changed by doing the following:
- Select the keyframe that needs to be updated in the Keyframes table.
- Position the camera to the desired location.
- Right-click the keyframe and select Record camera position.
4.2.4.2. Fix a viewpoint in the middle of the tour
Perhaps all the keyframes look correct, but there is a point in the tour when the camera does not look quite right. This can be fixed by doing the following:
- Preview the tour.
- Move the time slider to the time when the camera looks bad.
- End the preview.
- Adjust the camera until it looks correct.
- Click the Add button in the tour editor dialog. This will insert a new keyframe at the current playback time.
- Preview the tour again and make sure everything looks correct.
4.2.4.3. Delete a portion of the tour
A portion of the tour can be removed by deleting keyframes. To do so, select the keyframes and either press Delete on the keyboard or right-click the frames and select Remove.
4.2.4.4. Shift all or part of the tour to a new time
There might be scenarios where all or part of a tour needs to be moved to a different time. If the time of only one keyframe needs to be corrected, edit the time value directly in the Keyframes table. If all or a portion of the tour needs to be shifted:
- In the Keyframes table, select the keyframes whose times you would like to shift.
- Right-click the keyframes and select Shift Times. This will open the Shift Keyframes dialog as shown in Figure 44.
- In the dialog, enter the new Time for the first of the selected keyframes or enter an Offset.
- Click OK.
The selected keyframe times will be shifted by the specified amount.
4.2.4.5. Duplicate all or part of the entire tour
If you want to duplicate some or all of the tour so that the section will play again at another time within the same tour, perform the following:
- Select the keyframes to be duplicated.
- Right-click the keyframes and select Duplicate. This will open the Duplicate Keyframes dialog as shown in Figure 45.
- The following options may be chosen to determine when the duplicated keyframes will take place:
- Insert at end of tour
- This will cause the duplicated keyframes to be inserted after the last keyframe of the tour. The Last keyframe delay specifies how much time there is between the last keyframe and the first duplicated keyframe.
- Insert at specific time
- This will cause the duplicated keyframes to be inserted at a specific time. If the chosen time is in the middle of the tour, the subsequent keyframes' times are shifted so that the first subsequent keyframe takes place after the last duplicated keyframe. The amount of time between the last duplicated keyframe and first subsequent keyframe is the same as the time between the last selected keyframe and its subsequent keyframe or 10 seconds if the last selected is also the last keyframe.
- Insert at end of the selected keyframes
- This will cause the duplicated keyframes to be inserted at the same time as the next unselected keyframe. The subsequent unselected keyframes' times are shifted the same way as when inserting at a specific time.
4.2.4.6. Hold a viewpoint for some duration in the middle of the tour
After creating a tour, it may be decided that the camera should remain stationary at a particular viewpoint for some length of time before moving on to the next keyframe. This can be done by duplicating the keyframe that should be held and selecting Insert at end of selected keyframe as described above.
The new keyframe will have the same viewpoint as the previous keyframe, which keeps the camera stationary before moving on to the next keyframe. While not completely necessary, it may also be desirable to set the old keyframe transition to Stationary to make it obvious in the keyframes table which keyframe is being held.
4.3. Section Boxes
A section box is a convex region defined by up to six planes and is used to limit the scope of visible geometry and results data. All data outside the box are clipped from view. An example of the clipping is shown in Figure 47.
Effect of a Section Box
NOTE: When viewing a section box with the floors of the model spread out, each floor is clipped by the intersection of the section box and the Z clipping planes of the floor. See Section 2.9 for more information on floors.
The active view’s section box can be disabled by going to the View menu and de-selecting Views and Tours→Enable Section Boxes.
4.3.1. Creating a section box
A section box can be created in several ways:
- In the navigation view, 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.
- In the 3D view, right-click in empty space 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 Add section box. If the active view does not already have a section box, one will be added that encompasses only the selection.
After a section box is added, the Section Box Dialog appears as shown in Figure 48.
While the section box dialog is open, the section box is displayed as a dashed outline of the region with translucent faces. The individual planes of the section box can be added and removed by checking and unchecking the box next to each plane.
4.3.2. Editing a section box
A section box can be edited in several ways:
- In the navigation view, right-click a view and select Edit section properties. If the view is not already active, it will be made active, and the section box dialog will appear.
- In the 3D view, right-click in empty space and select Edit section properties. This will edit the active view’s section box.
- In the View menu, select Views and Tours→Edit section properties. This will also edit the active view’s section box.
4.3.3. Remove a section box
A section box can be removed from a view in any of the following ways:
- In the navigation view, right-click a view with a section box and select Remove section box.
- In the 3D view, right-click in empty space and select Remove section box. This will remove the section box from the active view.
- In the View menu, select Views and Tours→Remove section box. This will also remove the active view’s section box.
4.4. Duplicating Views
With the exception of the default view, any view can be duplicated, including those from Pathfinder, PyroSim, or Smokeview. To duplicate a view or several views:
- In the navigation view, select the views.
- Right-click the selected views, and select Duplicate view.
This will create a copy of each view. All duplicated views can be modified and deleted.
4.5. Views Files
Views made in Pathfinder, PyroSim, Smokeview, and Results versions 2019.1.0515 and prior are stored in several different files including the following:
modelname_views.json
- Views file created in Pathfinder. This is saved in a JSON file format.modelname.views
- Views file created by PyroSim. This is also saved in a JSON file format.modelname.ini
- File created by PyroSim or Smokview that contains viewpoints and tours created for use in Smokeview.modelname_resultsviews.json
- Views file created by the Results application in versions 2019.1.0515 and prior for storing views created in the results, including those duplicated from PyroSim, Pathfinder, or Smokeview views. This is also stored in a JSON file format.
Where modelname
is the name of the originating Pathfinder, PyroSim, or FDS file.
4.6. Importing Views
Views can be imported into the results, for instance, from another results data set.
To do so:
- In the File menu, select Import→Import Views.
- Choose the views file to open. This can be any of the above types except for Smokeview views.
- Click Open.
The views are imported as editable results views into the current results visualization.
Views stored in other visualization files can be imported as described in Section 2.2.4.
4.7. Following an Occupant
Results provides a special view mode to have the camera follow an occupant as they travel through the simulation. To activate this mode, select the desired occupant, and then either click the Follow Occupant button in the main toolbar or right-click the occupant and select Follow Occupant. The camera will remain behind the occupant as results are played back. Activating this view mode will deactivate other views and tours. To stop following the occupant, click the Stop Following Occupant button or right-click anywhere in the 3D view or navigation view and select Stop Following Occupant.
5. Annotations
The Results application provides several different ways to annotate results, including the ability to add dimensions and custom labels.
Annotations are added by drawing them directly into the model using one of the provided tools, detailed below. This can be accomplished in either the Perspective View or Orthographic View, though in some cases it may be easier to use one over the other.
5.1. Dimensions
Dimensions may be added to a results visualization to annotate the length of features in the model or distances as shown in Figure 49. Dimensions may be shown or hidden by going to the View menu and selecting or deselecting Show Dimensions. Go to File › Preferences › Dimensions and Precision, to adjust the total precision of the dimension.
To draw a dimension, perform the following steps:
- Orient the view so that the feature to be dimensioned is visible.
Click the Dimension Tool button in the toolbar above the 3D view to start drawing.
When pinned, the dimension tool will stay active until Esc is pressed on the keyboard, allowing multiple dimensions to be drawn, one after the other. If the tool is unpinned, the most recently used navigation tool will become active after a dimension is drawn.
- Single-click the first endpoint of the feature to be dimensioned.
- Single-click the second endpoint of the feature.
- If the dimension does not need further adjustments (Figure 50), either press Enter on the keyboard or click the second point again, and the dimension will be added. Skip the remaining steps.
- If the dimension needs adjustments, such as to offset it from the dimensioned feature or represent its length along an axis, move the mouse away from the second point.
The dimension preview will show any adjustments to the dimension.
The dimension can be modified in the following ways as demonstrated in Types of Dimension Offsets:
- Offset from feature
The resulting dimension is parallel to the feature and matches its length as shown in Figure 51. To dimension in this manner, move the cursor along an imaginary line extending from the second dimension point and perpendicular to the dimensioned feature.
- Length along Y axis
- The resulting dimension shows the length of the feature when projected along the Y Axis as shown in Figure 52. To dimension in this manner, move the cursor away from the second dimension point along the X axis.
- Length along X axis
- The resulting dimension shows the length of the feature when projected along the X axis as shown in Figure 53. Add this dimension by moving the cursor away from the second dimension point along the Y axis.
- Length along Z axis
- The resulting dimension shows the length of the feature when projected along the Z axis. Add this dimension by moving the cursor away from the second dimension point along the Z axis.
- Click a third time to finalize the dimension with its adjustment and add it to the model.
Dimensions may be selected and deleted from either the 3D view or the Navigation View under the Dimensions group.
Types of Dimension Offsets
5.2. Custom Labels
Another way to annotate results is to add custom labels as shown in Figure 54. Custom labels can be used to add any text to the model and can be added with or without a leader. Labels may be shown or hidden by going to the View menu and checking or unchecking Show Labels.
To create custom labels, perform the following steps:
- Orient the view so that the feature to be labeled is visible.
- Click the Label Tool () button in the toolbar above the 3D view to start drawing. NOTE: The Label Tool button can be clicked again to pin the tool as in PyroSim. When pinned, the label tool will stay active until Esc is pressed on the keyboard, allowing multiple labels to be drawn, one after the other. If the tool is unpinned, the most recently used navigation tool will become active after a label is drawn.
- To add a label in place without a leader line, double-click the location for the label or single-click and then press Enter on the keyboard. Then skip to step 5.
- To add a label with a leader line, single-click the point to be labelled. Then move the mouse to the desired label location and click again. A line is drawn between the labelled point and the label.
- In the dialog that appears, enter the desired label text. The label defaults to the name of the object where the first point was picked, if one exists. In addition, a label may be split into multiple lines if desired.
- Click OK to create the label.
As with dimensions, labels appear in the Navigation View under the Labels group and can be deleted or renamed if necessary.
6. Viewing FDS Results
The Results application provides support for viewing results from the Fire Dynamics Simulator (FDS) from NIST. It is the default results viewer for PyroSim, which is a graphical user interface for FDS. FDS results may optionally be shown along with Pathfinder results. When FDS results are loaded, the Navigation View will list all of the supported FDS output as shown in Figure 55.
The Results application supports the following FDS output:
- 3D Smoke
- Represents the smoke and fire and can be rendered realistically using radiant lighting or volumetrically.
- 3D Slices (SLCF)
- Contain volumetric data of gas-phase quantities. This can be viewed as a volumetric rendering or it may have 2D slices or isosurfaces created from it.
- Plot3D (PL3D)
- Like 3D Slices, contains volumetric data from which volumetric renderings, 2D slices, and isosurfaces may be created.
- Isosurfaces (ISOF)
- Represent 3D contours of gas-phase quantities at specific values.
- 2D Slices (SLCF)
- Represent planar slices of gas-phase data.
- 2D Slice Vectors (SLCF)
- Represent the direction of air flow in planar slices and can be colored by gas-phase quantities.
- Boundaries (BNDF)
- Represent solid- or gas-phase quantities at the boundaries of obstructions.
- Particles (PART)
- May be emitted by devices or vents.
- Maximum Errors
- Represent numerical errors in Pressure or Velocity.
6.1. Results Organization
Each FDS output may be split into multiple objects depending on how many meshes the object resides in. Figure 56 show an example model where there are multiple meshes. In this example, there are five slices of SOOT DENSITY at different locations. The slice at X=13.319 only goes through one mesh, so there is only one entry in the Navigation View. The slices, X=13.5 and Y=17.104, however, go through multiple meshes, so they have multiple entries in the Navigation View.
The hierarchy in this view makes it easy to activate an entire slice as it goes through multiple meshes or only activate the slice in one or more meshes. It also demonstrates how individual results objects have been divided among multiple meshes.
6.2. Activating Results
When an FDS results file is loaded, none of the results are visible. They must be selectively activated to be shown. To do so, in the Navigation View either right-click the desired results object and select Show or double-click the object. To deactivate the object, right click it and select Hide or double-click it.
Results objects can be activated or deactivated at any level in the hierarchy.
For instance, in Figure 56, all SOOT DENSITY
slices can be activated by double-clicking SOOT DENSITY
in the navigation view.
In addition, all SOOT DENSITY
slices at X=13.5
can be activated by double-clicking X = 13.5000
.
Multiple FDS quantities can be active at a time.
For instance, a TEMPERATURE
slice may be shown along with a SOOT DENSITY
slice.
When an object is activated the Results application performs several actions:
- In the Navigation View, the label for the object becomes bold.
In addition, all the parent nodes of the object become bold as well.
For example, if
SOOT DENSITY
sliceX = 13.5000 : Mesh 3
is activated, the Navigation View will appear as shown in Figure 57. This makes it easy to see which items in a hierarchy are currently active even if a node is collapsed. - The first time the object is activated, the file associated with that object will be read from disk, and information will be gathered about the data and cached in a new file that ends with the extension,
tcframes
. For instance, if particles are loaded from a file namedcarport.prt5
, the caching file will be namedcarport.prt5.tcframes
. - Subsequent activation of the object will load the cached information from the
tcframes
file. This occurs much faster than loading the first time. In addition, the application checks to see if there are new frames in the object’s file, which can occur if the FDS simulation is still running. If there are more frames, information is gathered for only the new frames and added to the cache file. - If necessary, a colorbar is added to the right side of the main window as shown in Figure 58. The colorbar can be edited as described in Section 6.3.
- The time range is changed to be the union of the time ranges of all activated objects.
- The newly activated objects are shown in the 3D View.
- Under File→Preferences, if the Allow activating multiple FDS quantities option is unchecked, then other activated objects are deactivated if they do not have a compatible quantity with that of the newly activated objects.
For instance, if a
SOOT DENSITY
slice at X=1.0 is already active and aTEMPERATURE
slice at X=2.0 is being activated, theSOOT DENSITY
slice is deactivated. - Under File→Preferences, if the Allow activating geometrically-conflicting FDS results option is unchecked, then other activated objects are deactivated if have conflicting geometry to that of the newly activated objects.
For instance, if a
SOOT DENSITY
slice at X=1.0 is already active and aTEMPERATURE
slice at X=1.0 is being activated, theSOOT DENSITY
slice is deactivated. - Under File→Preferences, if the Begin playback on activation option is checked and the results are currently paused, the following will occur:
- If the current playback time is outside the time range of the newly-activated results, the playback time is set to the beginning of the new results' time range.
- If the new results' time range has a length greater than zero, playback will resume.
6.3. Colorbars
Nearly all FDS and Pathfinder results data are colored with a colormap (exceptions include 3D Smoke, Particles viewed with the Default
coloring, and some occupant coloring options).
A colormap provides a way to map data values to a color that can be displayed on the screen.
When a colormap is in use, it will be shown as a colorbar on the right side of the 3D View as shown in Figure 58.
If either multiple FDS quantities or both FDS Results and Pathfinder Results are displayed at the same time, there may be multiple colorbars displayed at once.
The colorbar shows the colormap as well as which data values are mapped to the colors.
At the top, it also shows an abbreviation of the quantity and the quantity’s unit in parentheses.
In Figure 58, the label "temp" corresponds with the quantity, TEMPERATURE
, and the unit is C
for degrees Celsius.
Some quantities have units that can be toggled through the View menu for alternative representations of that quantity.
The available units are:
- View › Temperature Unit › Default ©
- View › Temperature Unit › Fahrenheit
- View › Concentration Unit › Default (mol/mol)
- View › Concentration Unit › PPM
- View › Mass Fraction Unit › Default (kg/kg)
- View › Mass Fraction Unit › PPM
Changing units will update the colorbar to show the correct values and the correct range of values for the unit selected.
6.3.1. Highlight Region
The colorbar can be left-clicked to add a highlight region. A highlight region changes all of the values of a limited range to a specific color to make it easier to see as shown in Figure 59. By default, a highlight region covers 5% of the data values surrounding the clicked location on the colorbar (2.5% above and 2.5% below). The size of the region can be changed by using the scroll wheel on the mouse. In addition, the highlight region can be removed by right-clicking the colorbar. The highlight region can also be moved by clicking and dragging the left mouse button on the colorbar.
More fine-grained control over the colorbar can be achieved by double-clicking the colorbar, which will bring up a dialog to edit the colorbar properties as described in Section 6.3.2.
6.3.2. Colorbar Properties
Colorbar properties are edited in the FDS Preferences dialog as shown in Figure 60, the Occupant Contour dialog as shown in Figure 104, or the Occupant Coloring Properties dialog as shown in Figure 94. Any of these dialogs can be reached by double-clicking the colorbar.
- Data Range
- Specifies the data range for mapping results data values to colors in the colormap.
The Minimum Value is mapped to the first (bottom) color in the colormap.
The Maximum Value is mapped to the last (top) color in the colormap.
Colors in-between are mapped linearly between the first and last colors.
Values outside this range are clamped to the first or last colors.
There are several preset Data Range values depending on the active results:
- Percentile (rounded)
- When the results are loaded, a histogram is created from the data. The middle 98% of all data values over all time are rounded and then used for the minimum and maximum values of the data range.
- Percentile
- The middle 98% of all data values are used for the data range.
- Global (rounded)
- When the results are loaded, the absolute minimum and maximum data values are calculated. These values are rounded and used for data range.
- Global
- The absolute minimum and maximum data values for the active results are used for the data range.
- Custom
- Allows the user to type in the desired data range.
- Truncate Data
- Optionally allows data that falls outside a set range to be hidden from view as shown in Truncated colorbar option.
- Hide below
- Specifies the lower bound for the truncation range. All data below this value are hidden from view.
- Hide above
- Specifies the upper bound for the truncation range. All data above this value are hidden from view.
- Color Source
- Specifies the source of the colors.
This can be one of the following values:
- Colormap
- Uses a pre-defined colormap that is a sequence of varying colors.
- Constant Color
- A single color is used for all data. This is usually used in combination with a Gradient Opacity Source.
- Colormap
- The name of the colormap to use when the Color Source is set to Colormap.
- Invert Colors
- Whether to reverse the colors in the colormap when the Color Source is set to Colormap.
- Color
- The color to use when the Color Source is set to Constant Color.
- Opacity Source
- Specifies the source of opacity values.
Opacity controls how opaque results are.
- Constant
- The opacity values are always the same.
- Gradient
- A gradient function will be used to linearly map the data values to opacity values. This can be used to highlight either the lower or upper range of the results data as the other end will be more translucent.
- Feather Below
- Fades the lowest
x%
of contour values from opaque to transparent so that the underlying geometry or navigation mesh may be seen. Values above the threshold are opaque. For example, if the data range is0-10
, and the Feather Threshold is25%
, values below0
will be transparent, values in the range0-2.5
will increase in opacity until they are opaque at2.5
, and all values above2.5
will be opaque. - Feather Above
- Fades the highest
x%
of contour values from opaque to transparent so that the underlying geometry or navigation mesh may be seen. Values below the threshold are opaque.
- Feather Threshold
- The threshold for fading the values.
- Opacity
- Specifies how opaque the results are when the Opacity Source is set to Constant.
- Opacity at Minimum
The opacity at the Minimum Value as specified in the Data Range. This can be any value and does NOT have to lie between 0 and 100%.
- Opacity at Maximum
- The opacity at the Maximum Value as specified in the Data Range. This can be any value and does NOT have to lie between 0 and 100%.
- Number of Colors
- Specifies how many samples should be taken from the colormap to generate the final color function. The samples are taken at evenly-spaced intervals. Using a value of 256 will create a smooth gradient of colors. Using a low value, such as 8, will create discrete colors, leaving visible color bands in the visualization.
- Enable Highlight Color
- Enables the highlight region as discussed in Section 6.3.1.
- Highlight Value
- The center value of the highlight region.
- Highlight Width
- The size of the highlight region. Half of this will be above the Highlight Value and half will be below.
- Highlight Color
- The color of the highlighted values.
Truncated colorbar option
6.4. Global FDS Properties
There is a set of global properties for FDS results that controls how the results are presented, including the colorbar properties for each FDS quantity, time offsets, and interpolation. These settings are located in the FDS Preferences dialog. To open this dialog, either double-click the colorbar if results are already active or under the Analysis menu, select FDS Preferences. The FDS Preference dialog is shown in Figure 60.
In addition to the colorbar properties explained in Section 6.3.2, the following options are available in the FDS Preferences dialog:
- Time Offset
- Provides a shortcut to the FDS Time Offset as described in Section 2.3.
- Interpolate Data
Indicates that results should be linearly interpolated over time. This causes the animation of results to look smoother as they are played back.
- Types that obscure smoke
- Controls which results types appear clearly on top of smoke when both are active. When this option is enabled, the result object will be easier to see when it is embedded in thick smoke, but the depth cues may be more difficult to understand. 2D slices obscure smoke option shows this option enabled and disabled for a 2D Slice.
2D slices obscure smoke option
- Quantity Colors
Indicates which FDS quantity’s colorbar properties are to be edited. There is one colorbar property set per FDS quantity detected in the SMV file. To copy the properties from one quantity to another, click the Copy button () next to the quantity dropdown. In the popup dialog, select the target quantities and press OK. The copied properties will only be committed once OK or Apply is pressed in the FDS Preferences dialog.
6.5. 3D Smoke and Fire
By default, all FDS simulations that contain fire will output two s3d files for each mesh. Together these files can be viewed in the Results application as smoke and fire as shown in Figure 65. When these files are present, the Results application will show a 3D Smoke group in the Navigation View. In the 3D Smoke group, SOOT MASS FRACTION represents the smoke information and HRRPUV (heat release rate per unit volume) represents the fire information.
The smoke and fire visualization is merely an approximation of the actual smoke and fire.
The visualization has the following limitations:
- The smoke data only simulates the absorption of light along each view ray from the camera. It does not simulate the scattering of light as would occur in actual smoke.
- The smoke is completely unlit. In actual smoke, there would be multiple lighting influences on the smoke, including ambient lighting and light from the fire and other light sources.
- The fire location, size, and colors are approximate. In actual fires, these fire properties are determined by a number of factors, including the flame temperature, black-body colors, chemical reactions of elements in the fire, etc. This information is not present, however. Instead, FDS outputs the HRRPUV of the fire. In the Results application, these HRRPUV values are used along with an HRRPUV cutoff value to determine the fire location and size. These values are also fed into a colormap based on the black-body diagram to determine the fire color.
There are a number of properties that affect the appearance of the smoke and fire. These properties can be edited by right-clicking the 3D Smoke group in the Navigation View and selecting Properties. This will show the Smoke3D Properties dialog in Figure 66.
- Preset
- Specifies a pre-defined set of properties to be applied to the values in the dialog.
The following presets are available and are demonstrated in Comparison of smoke/fire presets with smoke opacity set to 25%:
- Default
- The default preset that uses radiant rendering for the fire and only maps the HRRPUV data to a limited range to approximate a fire with a maximum temperature of about 2000° C.
- Smokeview Default (Pre-6.4.4)
- Chooses properties that attempt to make the fire look like that in Smokeview before version 6.4.4. This uses volumetric rendering with a constant fire color.
- Smoke Default
- Chooses properties that attempt to make the fire look like that in Smokeview after version 6.4.4. This uses volumetric rendering with a varying fire color and maps the entire HRRPUV range to the entire fire colormap.
- Custom
- Allows custom values to be entered for the fire and smoke.
- Fire Rendering
- Controls the appearance of the fire.
It may be one of these values:
- Radiant
Approximates real fire, where the fire itself emits light and accumulates along the view ray toward the camera, while being absorbed by smoke between the viewer and the fire. Usually when using this option, Smoke determines fire transparency should also be checked.
- Volumetric
- Treats fire similarly to smoke where it absorbs and reflects light passing through it toward the camera rather than emitting light itself. The 50% Transparency Distance controls how much light is absorbed by the fire. Using this option disables smoke lighting.
- Sampling Factor (Quality)
- This controls the rendering quality of the smoke and fire and depends on the smoke and fire rendering method. See Section 2.13 for more details on the available methods. Generally, the higher the value, the better the quality. If the render method is Use Hardware Shaders, this value controls the number of samples along the view ray used to generate each pixel color. If the render method is Use Compatibility Renderer, it changes the number of slices through the smoke/fire data. When using the compatibility renderer, there is an upper limit to the number of slices that should be used. Exceeding this limit may actually reduce the quality and possibly cause the fire and smoke to disappear. For more information, see Smokeview Technical Reference (Forney 2019) in the section titled, A Limitation of the Slice Solution Method. For either render method, the distance between samples or slices is computed as the average cell size divided by the sampling factor.
- Fire Brightness
If Fire Rendering is set to Radiant, this controls how bright the fire appears. This is similar to adjusting the exposure on a camera, except that it only affects the light from the fire. If the fire appears almost completely white, this may be because it is either a very large fire or has little smoke. In this case, lower the brightness. If the fire can barely be seen, it may be because of very thick smoke. In this case, increase the brightness.
- Smoke Brightness
- If Advanced Lighting is enabled (see Section 2.13) and Fire Rendering is set to Radiant, this option controls the brightness of the ambient light shining on the smoke.
- Smoke Opacity
Controls how opaque the smoke appears.
- Smoke determines fire transparency
- This option is only available if Fire Rendering is set to Radiant and should usually be checked in this case. If checked, the amount of light that each fire cell obscures behind it is controlled by the amount of smoke in that cell. With this option unchecked, the light absorption is controlled by the parameter, 50% Transparency Distance.
- 50% Transparency Distance
- Controls the amount of light absorbed by fire cells. This distance sets the point at which 50% of the light will be absorbed by sequential fire cells.
- Color Source
- Controls the source of the smoke and fire colors.
Cells are colored as smoke when HRRPUV is less than HRRPUV Cutoff.
Otherwise, cells are colored as fire.
The color source value can be one of the following:
- Specify Color
- Allows a single color to be set each for fire and smoke.
- Specify Color Map
- Allows a colormap to control the color of the fire and a single color for smoke.
The following colormaps are split into two regions.
Only the upper half is used to color fire.
All other colormaps use the entire range of the colormap to color the fire.
- Blue→Red Split
- Fire
- Fire 2
- Fire line (level set)
- Split
- Cool
- Fire Color
- The color of the fire when Color Source is set to Specify Color.
- Smoke Color
The color of the smoke. The final smoke color may be adjusted by also adding in color from the fire color map. See Add fire color map to smoke color below.
- Fire Color Map
- The colormap to use to color the fire and optionally smoke.
- Add fire color map to smoke color
- Adds additional color from the fire color map to the Smoke Color to determine a final smoke color used for rendering. If the fire color map is split as indicated above, the additional color is chosen from the bottom half based on the heat release rate. Otherwise, the additional color is chosen from the lowest value in the color map.
- Minimum HRRPUV
- The HRRPUV value that corresponds with the lowest color in the colormap.
- Maximum HRRPUV
- The HRRPUV value that corresponds with the highest color in the colormap.
- HRRPUV Cutoff
Controls how cells are determined to be smoke or fire cells. If the HRRPUV value is less than HRRPUV Cutoff, the cell is treated as a smoke cell and only absorbs and reflects light (reflection color is the smoke color). All other cells are treated as fire cells. If Fire Rendering is set to Radiant, these cells will absorb light and emit light as determined by the colormap.
Comparison of smoke/fire presets with smoke opacity set to 25%
6.6. 3D Slices
In FDS, a 3D slice represents an animated volumetric region that contains data at every intersecting cell for a single gas-phase quantity such as TEMPERATURE or SOOT DENSITY. There can be any number of 3D slices of the gas-phase quantities.
When an FDS simulation contains 3D slices, they will appear under the 3D Slices group in the Navigation View. The hierarchy appears in the Navigation View as FDS Results→3D Slices→Quantity→Name (Mesh).
For more information on the visualization capabilities of 3D slices, refer to Section 6.8.
6.7. Plot3D
FDS has the capability of creating Plot3D files. Like 3D slices, a Plot3D file contains 3D data sets. There are a few key differences between the file format for Plot3D and 3D slices:
- The Plot3D file format is a known format compatible with other applications. 3D slices are specific to FDS.
- FDS Plot3D files always contain information for exactly five quantities, even if fewer than five are specified in the FDS input file. 3D slices only have one quantity and only output exactly the quantities requested in the input file.
- Plot3D files do not contain animation information. Instead, each Plot3D file contains data for exactly one time step. 3D slice files contain animated data for all time steps.
- Plot3D files contain data for an entire mesh. 3D slices can be a subset of a mesh.
Despite the differences, the Results application hides these details from the user and presents Plot3D output exactly like 3D slices, in that each quantity is represented as a separate object in the Navigation View. In addition, the Results application will treat all of the Plot3D files of a given quantity as if they were one animated file.
When an FDS simulation contains Plot3D data, they will appear under the in the Navigation View with this hierarchy: FDS Results→Plot3D→Quantity→Mesh.
For more information on the visualization capabilities of Plot3D, refer to Section 6.8 below.
6.8. Data3D
Both Plot3D and 3D slice files contain 3D datasets (Data3D) of gas-phase quantities. Though they require fairly significant storage space, Data3D are perhaps the most flexible output formats from FDS and can be visualized in several ways.
They can be viewed directly using volumetric rendering, and arbitrary isosurfaces, slices, and points be created from them in the Results application without being required to re-run the FDS simulation.
6.8.1. Data3D Volumetric Rendering
Volumetric rendering of a Data3D object enables viewing it as a 3D form as if it was a cloud of colored gas as shown in Figure 70.
In order to understand the shape and depth of the volume, portions of the dataset must be made translucent.
By default, the minimum value in the data range (Section 6.4) has an opacity of 0% making the lower values completely transparent. The maximum value in the data range has an opacity of 75%. The range of opacity values can be changed by either choosing the constant opacity value or by choosing a Gradiant Opacity Source in the FDS Preferences dialog and setting the desired opacity mapping.
Volumetric renderings are created similarly to fire and smoke. To change their quality, in the Navigation View expand either 3D Slices or Plot3D, right-click one of the quantities, and select Properties. This will open the Data3D Properties dialog as shown in Figure 71.
When using hardware shaders, the Sample Factor controls the number of samples taken from the data set for each view ray. When using the compatibility renderer, the Sample Factor controls the number of slices through the 3d texture. Increasing this value will generally increase the quality of the volumetric rendering at the expense of rendering speed.
6.8.2. Data3D Points
From Data3D objects, any number of points can be created that are colored according to the colorbar and Data3D values as shown in Figure 72. Data3D points can also be used to export time-series data and show plot from the Data3D object as explained in Chapter 9 and Chapter 10.
To create a Data3D point:
- In the Navigation View, expand the appropriate Data3D group (3D Slices or Plot3D).
- Right-click either Points or one of the quantities.
- Select Add point. The Add Point dialog will open as shown in Figure 73.
Choose the desired quantity and location of the point and click OK. The point will be added under the Points group.
To delete a Data3D point, select it in the Navigation View and press the DELETE key.
6.8.3. Data3D Slices
Arbitrary 2D slices can also be created from Data3D objects without rerunning the simulation. These slices do not have the same restrictions as regular FDS slices in that they do not have to be axis-aligned. Instead, they can be in any plane. Figure 74 shows a 2D slice created from a 3D slice.
To add a Data3D slice:
- In the Navigation View, expand the appropriate Data3D group (3D Slices or Plot3D).
- Right-click either Slices or one of the quantities.
- Select Add slice. The Add Slice dialog will open as shown in Figure 75.
- Choose the desired quantity and enter the slice information and click OK. The slice will be added under the Slices group.
When Data3D slices are active, they can be quickly moved along their normal in the Quick Settings.
To delete a Data3D slice, select it in the Navigation View and press the DELETE key.
6.8.4. Data3D Isosurfaces
Arbitrary 3D isosurfaces can also be created from Data3D objects without rerunning the simulation. An isosurface shows the contour of a gas-phase quantity at a specific value. Some isosurfaces created from a 3D slice are shown in Figure 76.
To add a Data3D isosurface:
- In the Navigation View, expand the appropriate Data3D group (3D Slices or Plot3D).
- Right-click either Isosurfaces or one of the quantities.
- Select Add isosurface. The Add Isosurface dialog will open as shown in add-isosurface-dialog.
- Choose the desired quantity and enter the isosurfaces value. The isosurface will be added under the Isosurfaces group.
If only one Data3D isosurfaces is active, its value can be quickly changed in the Quick Settings.
To delete a Data3D isosurface, select it in the Navigation View and press the DELETE key.
6.9. Isosurfaces
FDS supports the generation of animated 3D isosurfaces. An isosurface shows the contour of a gas-phase quantity at a specific value, as shown in Figure 78.
Unlike Data3D isosurfaces, FDS isosurfaces cannot be added or changed in the Results application. Instead, they must be specified in the FDS input file or in PyroSim.
When an FDS simulation contains isosurfaces, they will appear under the Isosurface group in the Navigation View. The hierarchy appears in the Navigation View as FDS Results→Isosurfaces →Quantity→Value→Mesh.
6.10. 2D Slices
FDS also supports the generation of animated 2D slices. A 2D slice shows the values of a gas-phase quantity in a single plane as shown in Figure 79.
Unlike Data3D slices, FDS 2D slices cannot be added or changed in the Results application. Instead, they must be specified in the FDS input file or in PyroSim.
When an FDS simulation contains 2D slices, they will appear under the 2D Slices group in the Navigation View. The hierarchy appears in the Navigation View as FDS Results→2D Slices →Quantity→Name (Slice Location)→Name (Slice Locations: Mesh).
6.11. 2D Slice Vectors
In FDS, 2D slices may optionally be created with the VECTORS option. When this option is enabled, FDS creates three additional 2D slice files containing the U,V,W coordinates of the air velocity. The Results application can combine these additional slice results to create 2D Slice Vectors.
2D Slice Vectors show the velocity of the air as vectors that point in the direction of the air flow and are scaled by the air speed. The velocity and color of each vector is determined at the center of the vector. Figure 80 shows 2D slice vectors that are colored by TEMPERATURE.
When an FDS simulation contains 2D slice vectors, they will appear under the 2D Slice Vectors group in the Navigation View. The hierarchy appears in the Navigation View as FDS Results→2D Slice Vectors →Quantity→Slice Location→Name (Slice Location: Mesh).
To change the magnitude or density of the slice vectors, in the Navigation View, right-click the desired 2D slice vectors and click Properties. The Slice Vector Properties dialog will open as shown in Figure 81.
- Vector Factor
- Controls the length of the vectors. Larger values produce longer vectors.
- Vector Step
- Controls how many vectors are drawn. Larger values produce fewer vectors.
These options are also available in the Quick Settings when 2D slice vectors are active.
6.12. Boundaries
Boundaries show solid-phase and some gas-phase data at the boundaries of solid surfaces as shown in Figure 82.
When an FDS simulation contains boundaries, they will appear under the Boundaries group in the Navigation View. The hierarchy appears in the Navigation View as FDS Results→Boundaries →Quantity→Mesh.
The colors of the boundaries are blended with those of the active geometry set. The amount of blending can be controlled with the Opacity setting in the FDS Preferences dialog (Section 6.4). The default opacity setting of 75% causes 75% of the color to come from the boundary and 25% from the geometry set. Setting this value to 100% would disable blending and only show the boundary colors. In addition, a gradient opacity function can be used to highlight specific boundary values as shown in Figure 83.
6.12.1. Realistic Visualization of Soot Deposition
FDS supports the simulation of aerosol deposition, which can be used to track the deposition of various species on the boundaries of obstructions, such as soot gathering on walls and ceilings. FDS stores the output information in boundary files. By setting specific color parameters, the Results application can visualization soot deposition fairly realistically as shown in Figure 84.
To recreate this visualization, perform the following:
- In the Navigation View, under the FDS Results→Boundaries group, activate SOOT SURFACE DEPOSITION.
- In the Analysis menu, select FDS Preferences to open the FDS Preferences dialog.
- Set Color Source to Constant Color.
- Set Color to the soot color (e.g. black).
- Set Opacity Source to Gradient.
- Set Opacity at Minimum to 0% and Opacity at Maximum to 100%.
- Adjust the Maximum Value of the data range to be the value required for the soot to look completely opaque on a surface assuming complete coverage of the surface.
- Click OK.
6.13. Particles
FDS supports the injection of particles in a simulation. Particles can be used to trace air flow or to represent liquids, such as water or fuel. There can be several classes of particles in one simulation. Figure 85 shows tracer particles flowing through the model.
When an FDS simulation contains particles, they are found in the Navigation View and are organized as follows: FDS Results→Particles→Particle Class→Mesh.
By default, particles appear as dots and are a single color, but they may also be visualized with trails that show the particle motion. In addition, they may be colored by various particle quantities, if enabled in PyroSim or the FDS input file. To change the particle properties, in the Navigation View, right-click the desired particle class and select Properties. This will open the Particle Property Dialog as shown in Figure 86.
- Trail Time
Controls the length of the particle trails by setting how far back in time in seconds to trace the path of the particle. If this value is zero, trails are turned off.
- Particle Color
Controls the color of the particles. <Default> will color all the particles with a uniform color as specified in PyroSim or the FDS input file. Other values will cause a colorbar to appear and will color the particles individually according to their values. Figure 87 shows particles colored by their temperature.
Both the Trail Time and Particle Color may also be changed in the Quick Settings for the active particles.
6.14. Maximum Errors
FDS outputs the locations of cells with the maximum numerical errors in Pressure and Velocity at each time step during a simulation. These locations can be visualized in Results as seen in Figure 88.
These errors can be found in the Navigation View as FDS Results→Maximum Errors→Error Quantity.
Error locations are displayed as a red box surrounding the cell with the maximum error at the current simulation time. They may also appear slightly outside of the mesh due to "ghost" cells used internally by FDS during simulation.
7. Viewing Pathfinder Results
7.1. Displaying Occupants
Occupants can be displayed in several ways. They can be shown as simple shapes, as realistic people, or as the artist’s wood mannequin as shown below.
All display options are found under the View→Occupant Display menu. Occupants can be displayed as follows:
- Show as Disks
- Represents the occupants as flattened disks (Figure 89). The size of each disk represents the collision size of the occupant. A triangle points in the direction in which the occupant is facing.
- Show as Cylinders
- Represents the occupants as cylinders that represent their collision volume (Figure 90). A triangle on top of each cylinder points in the direction in which the occupant is facing.
- Show as Generic
- Represents the occupants as animated mannequins (Figure 91).
- Show as People
- Represents the occupants as realistic animated people (Figure 92). The avatar selected in Pathfinder determines which avatar is shown in the Results application.
Occupant Display options
7.2. Occupant Coloring
Occupants can be colored using several options found in the View→Occupant Color menu. In Figure 93, you can see occupants colored using a density occupant contour. Occupant coloring also affects the color of occupant paths, if enabled (see Section 7.5).
The following options are available:
- Default
- If occupants are displayed as people, they will be textured according to their avatars; otherwise, they will be colored the same as By Occupant Color.
- By Occupant Color
- If an occupant has an individually-set color, the occupant is colored with this; otherwise, the occupant’s profile color is used.
- By Movement Group
- If the occupant is part of a movement group, this colors all the occupants in their group the same color. The group color is set in Pathfinder using the properties panel for the selected movement group. If the occupant is not in a movement group, they are colored the same as By Occupant Color.
- By Movement Group Template
- If the occupant is part of a movement group that was created from a movement group template, this option colors the occupant using the color of the movement group template; otherwise, they are colored the same as By Occupant Color.
- By Behavior
- Colors the occupant according to the occupant’s behavior color as set in Pathfinder.
- By Profile
- Colors the occupant according the occupant’s profile color as set in Pathfinder.
- By View Direction
- Colors the occupant according to their view direction at the current playback time. By default, Yellow is North, green is East, blue is South, red is West. This is useful for identifying counterflow and crossflow.
- By Speed
- Colors the occupant according to their speed at the current playback time. The color map defaults to a fixed range of 0 m/s to 1.5 m/s.
- By Normalized Speed
- Colors the occupant according to their normalized speed at the current playback time. The normalized speed is their current speed/max speed. This is useful for determining how well occupants are traveling in populations of varied maximum occupant speeds.
- By Time to Exit
- Colors the occupant according to their remaining time until they leave the simulation. The value changes depending on the current playback time. The color map defaults to a fixed range of 0 s to 200 s.
- By Congestion
- Colors the occupant according to the current continuous time they have been moving below the Congestion Velocity value set in the simulation parameters. The value changes depending on the current playback time. The color map defaults to a range of 0 s to 240 s with a split at 120 s.
- By Occupant Contour
Colors the occupant according to the value of an occupant contour at the occupant’s location (see Section 7.6). Whenever this option is clicked, an occupant contour can be chosen from a list. The colorbar properties for this option are shared with the occupant contour itself. Any edits made to the occupant contour will reflect in the occupant colors as well, including colormap, highlight region, etc. If the colorbar’s opacity for a particular value is less than 100% and occupants are viewed as people, the occupant’s underlying texture will start to show through rather than making the occupant translucent. The more translucent the colorbar color is, the more the texture shows through. This effect can be seen in Figure 93, as the density contour coloring option in this case uses a feathered opacity.
7.2.1. Occupant Coloring Properties
Some Occupant Colorings can be edited to change the colorbar. To edit a coloring, click Edit Occupant Coloring… on the View menu. This action edits the currently active coloring and will only be enabled if that coloring is based on a quantity.
This will show a Occupant Color Properties dialog as shown in Figure 94. In that dialog, colorbar settings can be edited as described in Section 6.3.
7.3. Occupant Spacing Disks
Occupant spacing disks visualize the amount of overlap per occupant for a specified radius. They are used in social distancing analysis. To show spacing disks for all occupants, on the View menu, point to Occupant Spacing Disks, and click Show All Spacing Disks. Alternatively, to only show spacing disks for selected occupants, click Show Selected Spacing Disks instead. Both of these options show the spacing disks at full-size, which may cause significant overlap of the disks. To reduce the amount of overlap, choose one of the Half-sized options from the Occupant Spacing Disks menu. This will cause the disks to display at half their size, which will reduce the overlap; however, this option should only be used if occupants have uniformly sized disks in each area. To turn off the display of spacing disks, click Hide Spacing Disks. Figure 95 shows an example of spacing disks generated from social distancing with a uniform distribution of radii.
To edit the size of the disks, on the View menu, point to Occupant Spacing Disks, and click Edit Spacing Disks. If social distancing is enabled in the Pathfinder model, the radius can be shown by selecting From Occupant Social Distancing in the Edit Spacing Disk dialog. Otherwise, a constant radius can be entered.
7.4. Selecting Occupants
Occupants can be selected for tracking purposes by clicking on the occupant. When selected, the occupant and their path (if displayed) will turn yellow. Their name and Occupant ID will also be displayed in the status bar at the bottom of the screen. Multiple occupants can be selected by holding CTRL when clicking them. They can be de-selected by clicking anywhere else in the model.
Occupants can also be selected by clicking Find Occupant by ID in the Edit menu. This will show a dialog where an Occupant ID can be entered. The occupant with that ID can then be selected by pressing OK.
7.5. Viewing occupant paths
Occupant paths may be enabled to help visualize flow in an evacuation as shown in Figure 97. They can be shown by checking Show Occupant Paths in the View menu. When paths are enabled, each occupant’s path will be drawn from the time they entered the simulation to the current playing time. Paths are colored according to the current Occupant Color option as defined in Section 7.2. Each point on the path displays the color of the occupant when they were at that location, which allows a single path to have multiple colors. This can be seen in Figure 97 as the Occupant Color is set to By Occupant Speed.
7.6. Occupant Contours/Heat Maps
Pathfinder supports the visualization of dynamic occupant data on the floor areas of the model as shown in Figure 98. Referred to as occupant contours or heat maps, this animated data can give a qualitative visualization of the model’s performance.
Pathfinder supports the visualization of several types of occupant contours, including the following:
- Congestion
- Shows the congestion of occupants, the current continuous time they have been moving below the Congestion Velocity value set in the simulation parameters.
- Congestion [Maximum]
- Shows a maximum filtered version of Congestion, which allows the user to see how much congestion occurs at each area on the floor.
- Density
- Shows how densely packed occupants are in
occupants/m2
. - Level of Service
- Shows Level of Service (Fruin and Strakosch 1987) defined by surface type, including stairways, walkways, and queuing areas. See Section 7.6.9 for more information.
- Social Distance
- Uses the influence radius \(R\) to calculate the distance to the nearest occupant and plots that around the occupant. Other members of the occupant’s group are ignored if Enforce social distancing between group members is unchecked for the group in Pathfinder. This requires the model to have been simulated using Pathfinder 2021.1 or later. Values on the contour represent the value of the closest occupant within \(R\) and are plotted using an inverted color map by default.
- Social Linkage
- Uses the influence radius \(R\) to calculate how many other occupants are within that radius and plots that as the value drawn inside a circle of radius \(R\) centered at the occupant. Other members of the occupant’s group are ignored if Enforce social distancing between group members is unchecked for the group in Pathfinder. This requires the model to have been simulated using Pathfinder 2021.1 or later. Values on the contour represent the value of the closest occupant within \(R\).
- Social Usage
- For every point on the mesh (conceptually a spot on the floor), the number of occupants within radius \(R\) are calculated and assigned to that mesh point. The mesh of all values is then contoured. This will give the high values between the occupants rather than right at the occupants. NOTE: Unlike Social Linkage and Social Distance, the Social Usage contour does not take occupant movement groups into account.
- Speed
- Shows occupant speed.
- Normalized Speed
- Shows occupant speed normalized against each occupant’s maximum speed.
- Time to Exit
Shows the amount of time it will take an occupant to exit from each point on the floor given the current playback time.
- Usage [Instantaneous]
- Shows where occupants currently exist on the floor. This can be used as an alternative to viewing individual occupants, which is useful when viewing large models from afar.
- Usage [Accumulated]
- Shows a time-integrated version of Usage, which allows the user to see how much time is spent on each area of the floor.
In addition to the basic contours, Pathfinder also provides the ability to filter any contour as follows:
- Average
- Averages the values of the base contour over a trailing time interval (default =
30 s
). This can be useful for smoothing data over time and to act as a low-pass filter. - Maximum
- Calculates the maximum contour value over a trailing time interval (default =
unlimited
).
The ability to filter any contour gives the user a great deal of flexibility in visualizing contours. For instance, a contour could be created that displays the maximum average density. The averaging filter would act as a low-pass filter that reduces high-density peaks that may be short lived. The maximum filter would then be used to find the maximum of this smoothed data. This would be created by adding an average filter to the density contour and then adding a maximum filter to this averaging filter.
7.6.1. Adding/Removing Contours
By default, a results file will contain several contours. More can be added or removed at any time.
Adding a contour can be done in one of two ways:
- On the Analysis menu, select New occupant contour () or
- Right-click the "Occupant Contours" group in the navigation view and select, New occupant contour.
Performing either of these actions will open the New Occupant Contour dialog. In this dialog, select the desired contour quantity, and click OK. This will create the new contour and show its properties dialog as discussed below.
Contours can be removed at any time by selecting the desired contour in the navigation view, and either pressing DELETE on the keyboard or selecting Delete from the right-click menu.
7.6.2. Adding Contour Filters
Contour filters can be added at any time in one of two ways:
- On the Analysis menu, select New contour filter or
- In the navigation menu, right-click the contour to filter and select Add filter.
This will show the New Filtered Occupant Contour dialog as shown in Figure 99. Select the desired properties and press OK to create the filter and show its properties dialog.
- Contour
- The contour that will be filtered (any changes to this contour will also affect the filtered contour).
- Filter
- The filter to apply to the contour.
7.6.3. Importing Older Contours
Contours can also be imported from older versions of the Results application (versions 2019.1.0515 and prior). This will import the list of available contours as well as their generation and visualization properties, but it will not import the contour data.
To import contours, under the File menu, select Import Occupant Contours.
In the file chooser dialog, choose the PFRMETA
file that corresponds to the desired Pathfinder results file, and choose Open.
This will add the contours into the current results visualization.
7.6.4. Duplicating Contours
Contours can also be duplicated. This is useful for creating several versions of a particular quantity, such as showing different averaging intervals or creating several snapshots of a contour at different times.
To duplicate a contour, in the navigation view, right-click the contour and select Duplicate. This will create and add a duplicate of the selected contour. Several contours may be duplicated at once by selecting several in the tree before duplicating.
7.6.5. Global Contour Properties
There are several global properties that control how each contour is generated and displayed.
To modify these properties, right-click the "Occupant Contours" group in the navigation view as shown in Figure 100, and select Properties.
This will show the Occupant Contours Properties dialog as shown in Figure 101.
- Maximum Triangle Area
- This controls the quality of the generated contours. Smaller values result in higher quality contours at the expense of larger optimization files and longer calculation times. Specifically, this controls the resolution of the underlying computation mesh for the contours. The effect of this parameter can be seen in Figure 102 and Figure 103.
- Match results time step
- Selecting this causes the contours to be generated at the same frequency as the Pathfinder results. This provides the most time accuracy but also takes the longest to generate and creates the largest files.
- Specify time step
Allows the contour time step to be specified. Values higher than the time step of the Pathfinder results will decrease the time accuracy of the generated contours but will also decrease the calculation time and disk space requirements for the contour files. The specified time step will be rounded to the nearest multiple of the Pathfinder results time step.
Effect of contour mesh resolution
7.6.6. Individual Contour Properties
Each contour also contains a set of properties that control the generation of the contour as well as its visualization. To set the properties of a contour, right-click the contour in the navigation view and select Properties. This will show the properties dialog for that contour.
Each contour has a potentially different set of properties. The properties dialog for density is shown in Figure 104.
The following is composite list of all contour properties that control the creation of the contours:
- Name
- The name displayed in the navigation view for the contour.
- Density Radius
- Controls creation of the density contour. This radius determines the area in which occupants are searched on the solution mesh to determine density.
- Influence Radius
- Controls the size of the area that each occupant’s value has on the contour. The value is tapered from the full value where the occupant exists down to zero at this radius. The effect of this property is shown in Figure 105 and Figure 106.
- Contour Type
- Specifies the type of contour. Contours may either be Animated or Snapshots. If they are animated, their values will change as results are played back. If they are snapshots, however, they will always display the same contour value as calculated at a particular time or time range.
- Limit Time Interval
- For contours that require a time range, such as Average and Maximum filters and Usage [Accumulated], this option limits the time range to a fixed interval.
- If this option is checked for an animated contour, the time interval is trailing.
For instance, if this is checked and a time interval of
30 s
is entered for an average density contour, the average will only be calculated for the trailing 30 seconds of density data at each time step. So att=120s
, the average is calculated over the time range of[90,120] s
. If this option is left unchecked, the calculation will take place over the entire time range preceding each time step. So att=120s
, the time range would be[0,120] s
. - If this option is checked for contour snapshots, the time interval is explicitly specified using Minimum Time and Maximum Time.
If this option is unchecked, the time interval is set to the entire results playback time.
So for instance, if there is currently
400 s
of results data available, the time interval will be[0,400] s
.
- If this option is checked for an animated contour, the time interval is trailing.
For instance, if this is checked and a time interval of
- Snapshot Time
- For contour snapshots, this specifies the calculation time that will be displayed during playback.
In addition to the above properties, colorbar settings can also be specified as described in Section 6.3 with the following additional considerations:
- For Level of Service contours, the Colormap property controls the floor type, which is one of Queuing, Stairway, or Walkway.
- Changing one of the colorbar properties will NOT invalidate contour optimization files.
Effect of influence radius on contours
7.6.7. Activating/Deactivating Contours
One contour may be activated/shown at a time. To activate a contour, either double-click it in the navigation view, or right-click it and select Show from the context menu. The first time this is performed, a dialog will appear asking whether to optimize the contour. Choosing Yes will cause a progress bar to appear while the contour is optimized and stored in an optimization file.
See Section 7.6.8 below for more information about optimization. Check Remember my decision to prevent being asked in the future. This can be changed in the preferences by going to File→Preferences.
Once a contour is active, it will appear bold in the navigation view. In the model view, the contour will appear overlaid on the navigation mesh or imported geometry and a colorbar legend will appear to the right.
The active contour can be hidden by either double-clicking it in the navigation view or right-clicking it and selecting Hide.
7.6.8. Optimizing Contours
Each contour may optionally be optimized for playback. Optimizing a contour is especially helpful with complex models, as it typically allows for much smoother playback and faster seeking when the contour is active, especially for contour filters. Contour optimization only has to be performed once per contour, as the optimization is stored on disk, allowing it to be accessed during later sessions.
The optimization file for each contour is stored in the same directory as the results and will have a filename based on the results filename and the contour’s quantity and filter.
For instance, a model named test.pth
will have a density file name test_density.octranim
.
There are several ways to optimize a contour. The first two methods optimize the contour ahead of time. This is the best option, but it comes at the cost of requiring time up-front to calculate the contour.
Here are all the options for optimizing a contour:
- Manually
Contours can be optimized manually by right-clicking the contours to optimize in the navigation view and selecting *Optimize * from the context menu.
- On Activation
- Contours can be optimized when they are activated (shown). By default, when a contour is activated and the contour has any unoptimized frames, Pathfinder will prompt the user to optimize. The decision can be remembered or this behavior can be manually changed by going to the File Menu and choosing Preferences, which will show the Preferences dialog. Under the Occupant Contours section, choose an option for Optimize on activation.
- On Playback
If a contour has not been optimized using one of the two previous options, contours may instead be optimized dynamically during playback and while seeking. To enable this option, open the preferences dialog as described previously, and check the box next to Enable dynamic optimization. This will cause the contour frames to be optimized as requested either during playback or during seeking of Pathfinder results. Once a frame of contour data has been optimized and saved to disk, it will be retrieved from disk whenever that frame is needed again.
Once a contour has been optimized, there are some actions that may cause the optimization to become invalid. Pathfinder will re-optimize if necessary when the user requests that it be optimized again using one of the above methods.
The following actions may cause a contour optimization to become invalid:
- Re-running the simulation.
- Re-writing the input file from the user interface.
- Modifying one of the global contour properties as described previously.
- Modifying an individual contour’s generation properties as described previously.
- Modifying the properties of a contour that another contour depends on. For instance, modifying the properties of the density contour will invalidate the optimization for any filter that has been applied to that density contour, such as an average density or maximum density filter.
Contour optimization files may be very large for models with large navigation areas and/or long simulation times. These optimization files may be deleted at any time to preserve disk space in one of two ways:
- In the navigation view, right-click the contours for which their optimization files should be deleted and select Delete optimization file.
- In the Analysis menu select Delete contour optimization files. This will delete the optimization files for all contours still present in the results.
7.6.9. Level of Service (LOS)
When using the Level of Service (LOS) contour, the colors are defined as follows:
Color - LOS | Walking | Queueing | Stairs |
---|---|---|---|
- A | 35 ft2 (3.3 m2) per person or greater | 13 ft2 (1.2 m2) per person or greater | 20 ft2 (1.9 m2) per person or greater |
- B | 25 ft2 (2.3 m2)-35 ft2 per person | 10 ft2 (.93 m2)-13 ft2 per person | 15 ft2 (1.4 m2)-20 ft2 per person |
- C | 15 ft2 (1.4 m2)-25 ft2 per person | 7 ft2 (.65 m2)-10 ft2 per person | 10 ft2 (.93 m2)-15 ft2 per person |
- D | 10 ft2 (0.93 m2)-15 ft2 per person | 3 ft2 (0.28 m2)-7 ft2 per person | 7 ft2 (0.65 m2)-10 ft2 per person |
- E | 5 ft2 (0.46 m2)-10 ft2 per person | 2 ft2 (0.19 m2)-3 ft2 per person | 4 ft2 (0.37 m2)-7 ft2 per person |
- F | 5 ft2 (0.46 m2) per person or less | 2 ft2 (0.19 m2) per person or less | 4 ft2 (0.37 m2) per person or less |
7.6.10. Occupant Contour Sample Points
Sample points can be created from occupant contours, which can be used to export time-series data and show plot from the contour as explained in Chapter 9 and Chapter 10. In order to create a sample point, perform the following steps:
- Activate the desired occupant contour as explained in Section 7.6.7.
- In the main toolbar, click the Sample Point Tool . The button can be clicked again to pin the tool like in PyroSim.
- In the 3D View, click on the navigation mesh to create a sample point. If the tool is pinned, continue clicking to add more sample points. Right-click to stop adding points.
Sample points are listed under the Sample Points
group of the Navigation View. From there they be renamed and deleted. They can also be hidden from view by clicking on the View menu and unchecking Show Sample Points.
7.7. Occupant Proximity Analysis
With pandemics such as COVID-19, it has become increasingly important to understand the utilization of spaces with regards to the proximity of occupants. The Results application incorporates a proximity analysis model as defined in the paper, EXPOSED: An occupant exposure model for confined spaces to retrofit crowd models during a pandemic (Ronchi and Lovreglio 2020). The paper defines several variables, of which the following are used in Results:
- k
- The number of occupants an individual is exposed to.
- G
- A global assessment of total exposure time for all occupants in the Pathfinder results. The lower the value, the less likely occupants have been exposed to others.
7.7.1. Performing a proximity analysis
To perform a proximity analysis, under the Analysis menu, click New occupant proximity analysis. The Occupant Proximity Analysis dialog will appear as shown in Figure 107. Enter the desired parameters for the proximity analysis and click OK to begin.
The following options are available:
- Name
- The resulting name for the proximity analysis.
- Proximity Radius
- Defines the search radius for discovering other occupants. This is applied to each occupant to find their surrounding occupants. An occupant considers other occupants within this radius who are not blocked by a boundary on the navigation mesh to be exposed occupants.
- Analysis Timestep
- Defines the rate at which samples are taken from the original Pathfinder results output. A value of 0 matches the timestep of the Pathfinder results. Increasing this value may significantly reduce the analysis computation time and lower the disk space requirements for saving the visualization file, but may cause errors in the analysis. For instance, if the timestep is set to 30 seconds, and an occupant enters another’s Proximity Radius for 20 seconds between sampling, this occupant’s exposure will be missed in the analysis. Generally, values between 0 and 10 seconds produce nearly identical results.
- Report Mode
- Defines the detail of the resulting report.
- Simple
- Provides only basic plots and less detail in the final report.
- Advanced
- Provides all plots and full detail in the final report.
- Occupant counts affect global assessment
If checked, the number of occupants within the proximity radius affects the global assessment value, G, using the following equation:
\[G = \sum_{k=1}^{m} k*C_k\]Where Ck is the sum of the cumulative exposure of all occupants to k other occupants and m is the maximum number of occupants any occupant is exposed to.
If Occupant counts affect global assessment is unchecked, G is affected only by whether an occupant is exposed to others and not how many as follows:
\[G = \sum_{k=1}^{m} C_k\]
7.7.2. Managing Proximity Analyses
After performing a proximity analysis, Results will add the analysis to the Navigation View under the Occupant Proximity
group.
From here, an anlysis can be renamed, refreshed, deleted.
To rename an analysis, right-click and select Rename. To delete an analysis, select it and press Delete. If a proximity analysis has been performed while a simulation is still running, refresh the analysis by right-clicking it and selecting Refresh proximity analysis. This will obtain the newest Pathfinder results data and incorporate it into the proximity analysis.
7.7.3. Proximity Report
A proximity analysis provides several useful outputs, including a proximity report.
To view the proximity report, either double-click the analysis or right-click it and select Show Proximity Report. The proximity report dialog will appear as shown in Figure 108.
This report shows all the properties used to create the analysis as well as the Global Assessment value G and the total exposure time to no occupants for all occupants in the simulation.
Generally, when trying to minimize exposure to other occupants, it is ideal to decrease G and increase k=0
.
If the Advanced
report mode was selected when creating the proximity analysis, the report will also list the exposure times for all k values.
For example, if a k=7
value is 7.4 minutes
, this indicates that occupants were exposed to exactly 7
other occupants for 7.4 minutes
.
7.7.4. Proximity Plots
In addition to the proximity report, several proximity plots are also available as output, including the following:
- Occ Counts vs Time
- This provides both maximum and average plots of the number of exposed occupants over time.
For example, if the
Maximum Occ Counts
plot shows a k value of16
att=50 s
, this indicates that all occupants in the simulation were exposed to a maximum of16
other occupants att=50 s
. Similarly, if theAverage Occ Counts
plot shows a k value of8.8
att=50 s
, this indicates that for the active occupants in the simulation att=50 s
, the average number of occupants they were exposed to at that time was8.8
. - Exposure Time vs. Occ Counts
- This provides maximum and average plots for total exposure times to each k value.
For example, if the
Maximum Exposure Time
fork=5
is46
seconds, this indicates that the maximum amount of time an occupant was exposed to exactly5
other occupants was46
seconds. Similarly, if theAverage Exposure Time
fork=5
is10.3
seconds, this indicates that over all occupants in the simulation ever, the average time they were exposed to exactly5
other occupants is10.3
seconds. - [k=0] Exposure Time
- This provides maximum and average plots for having been exposed to zero occupants over time.
For instance, if the
[k=0] Max. Exposure Time
att=100 s
is26 s
, this indicates that att=100 s
, all occupants in the simulation were exposed to zero occupants for an accumulated total of26 s
. Similarly, if the[k=0] Avg. Exposure Time
att=100 s
is5.3 s
, this indicates that att=5.3 s
, for all occupants who will ever exist in the simulation, including those who enter the simulation after t=100 s, their average accumulated exposure time to zero occupants is5.3 s
. - Maximum/Average Exposure Time vs. Time
- These are only available when choosing the
Advanced
report mode. They are similar to the[k=0] Exposure Time
plots, except that they provide plots for all k values.
7.8. 2D Object Plots
Data associated with occupants, doors, and rooms in the results can be plotted over time in 2D by right-clicking an object and then selecting one of the Plot quantity… menu items. This will create a new plot object under the Object Plots group in the Navigation View, and immediately open a plot dialog for it. Data from multiple objects can be plotted together by selecting them all before right clicking.
7.8.1. Occupant 2D Plots
Occupant plots pull data from both the occupant animation file and the detailed occupant CSV output, if available. The following options are available for occupants:
- Congestion
- The occupant’s congestion, i.e. the continuous time they have been moving below the Congestion Velocity value set in the simulation parameters.
- Distance
- The total distance an occupant has traveled. Only available if detailed CSV output was enabled for this occupant’s profile.
- Normalized Speed
- The normalized speed of an occupant. An occupant’s normalized speed is their current speed/max speed.
- Speed
- The speed of the occupant, in m/s.
- Time to Exit
- The remaining time before the occupant exits the simulation.
- View Direction
- The current view direction of the occupant, in degrees.
- X
- The X position of the occupant.
- Y
- The Y position of the occupant.
- Z
- The Z position of the occupant.
- Fractional Effective Dose Total
- The total fractional effective dose the occupant has been exposed to by each time step. Only available if detailed CSV output was enabled for this occupant’s profile and the simulation was coupled with an FDS simulation.
Additional FDS quantities, such as SOOT Visibility, \(CO\) Volume Fraction, \(CO_{2}\) Volume Fraction, and \(O_{2}\) Volume Fraction may also be available if present in the PLOT3D data output from a coupled FDS simulation.
7.8.2. Door 2D Plots
Doors object plot data is taken from the filename_doors.csv file. The following options are available for doors:
- Time Step Usage [{+/-}{X/Y}]
- The number of occupants who have passed through the door in the specified direction in each time step. For Time Step Usage with no direction specification, this is the total number of occupants to pass through the door in both directions.
- Total Boundary
- The total boundary layer of the door, in meters.
- Width
- The total width of the door, in meters.
- Queued Occupants
- The number of occupants who are waiting in the queue to pass through the door in each time step. This only includes occupants who have actually reached the door and are waiting to enter. Occupants that are stacked up waiting to reach a door will not be counted. This value is only meaningful in SFPE mode.
7.8.3. Room 2D Plots
Rooms object plot data is taken from the filename_doors.csv file. The following options are available for rooms:
- Occupant Count
- The number of occupants present in the associated room (or stairway) in each time step.
8. CSV Files
Pathfinder and FDS output several data files, including many CSV (comma-separated value) files. CSV files are convenient for storing tabular data arranged in rows and columns in a human-readable format. Many of these output files from Pathfinder and FDS contain data for various objects over time. For instance, the FDS hrr.csv output file contains information about the burner’s heat release rate over time, among other quantities.
These CSV output files can be loaded and plotted within the Results application. A link to the CSV file is saved with the visualization file so it can be loaded again the next time the visualization file is loaded.
8.1. Supported CSV Formats
Results supports most of the CSV output files from FDS and Pathfinder. It can also load other CSV files, however, as long as they contain the following:
- At least one header row containing descriptions of each column. The header rows must be the first lines in the CSV file.
- A column containing time values in increasing order. There can be duplicate time entries as long as they are still sequential. Only data from the first row of a series of duplicate times will be plotted, however.
- At least one column besides the time column defining numerical data.
While not required, it is also recommended that the CSV file specifies the following:
width
ordensity
. For instance, there can be multiple columns with a description ofDoor01
. These would be differentiated by a quantity in each one, such aswidth
,flowrate
, etc. The quantity can either be in its own header row or it can be combined with the description row. If it is combined with the description row, it must be in this format: description_quantity, where description is the description of the column, such asDoor01
, and quantity is the quantity for the column, such aswidth
. A header row that specifies a quantity for each column, if relevant.
A quantity identifies the type of value contained in the column, such as m
orkg/s
. The unit can either be in its own header row or it can be combined with either the description row or the quantity row. If it is combined with the description or quantity, the unit must be specified at the end and be in parenthesis. For instance, if it is combined with both, it would be formatted as:Door01_width (m)
. In this example, the description isDoor01
, the quantity iswidth
, and the unit ism
. A header row that specifies a unit for each column, if relevant.
The unit would normally be abbreviated, such as
The following are examples of valid CSV headers:
- Unit on first row, description on second row, no quantity
s, kW, kW, kW, kW, ... Time,HRR,Q_RADI,Q_CONV,Q_COND,...
- Description on first row, quantity on second, unit on third
Time,Region00,Region00,Region01,Region01,... Time,Density, Velocity,Density, Velocity,... s, pers/m2, m/s, pers/m2, m/s, ...
- Description, quantity, and unit combined on one row
Time (s),Door01_Flowrate (occs/s),Door01_Width (m), ...
8.2. Loading a CSV File
To load a CSV file into Results, perform the following:
- Start Results.
- Open an existing visualization file or create a new one and save it.
- On the File menu, click Load CSV File.
- Choose the desired CSV file and click Open.
- Enter the required information in the Load CSV dialog as shown in Figure 111 and click OK.
The Load CSV Dialog shows a preview of the CSV file, which includes the first 10 rows and 20 columns. The following can be entered in the dialog:
- CSV Type
- Specifies the type of data contained in the CSV file.
This list contains all of the known CSV outputs from Pathfinder and FDS that contain time-series data.
One of these will automatically be chosen based on the name of the CSV file.
If the name is not recognized, the box will select
<custom>
. If<custom>
is selected, the rest of the fields in the Load CSV Dialog must be specified. - Time Column
- The column number that contains the time data. Usually this is the first column, but some files might have this in a different position.
- Number of Header Rows
- The total number of rows at the beginning of the file that do not contain time-series data. This can include more rows than just those with the Description, Quantity, and Unit.
- Description Row
- The row number that contains a description of each column.
- Quantity Row
- If the Quantity Row box is checked, this indicates that one of the header rows contains quantity information for each column. Specify the row number that contains the quantities. This can be the same as the Description Row or the Unit Row. If so, see Quantity for the rules on how to combine the quantity information with the description or unit.
- Unit Row
- If the Unit Row box is checked, this indicates that one of the header rows contains unit information for each column. Specify the row number that contains the units. This can be the same as the Description Row or the Quantity Row. If so, see Unit for the rules on how to combine the unit information with the description or quantity.
8.3. Managing CSV Files
CSV files are managed in the Navigation View.
When a CSV file is loaded into Results, it will be added to the Results as a CSV File object.
The CSV File object will appear under the XY Plot Data
group in the Navigation View as shown in Figure 112.
Each non-time column in the CSV File will be added to the Results as a Time Series object and will appear under the CSV File object in the Navigation View.
Individual Time Series objects can be deleted from the CSV File by selecting the item and pressing Delete. The entire CSV File can be deleted by selecting it and pressing Delete.
When the visualization file is saved, a relative path to the CSV file is also saved. When the visualization file is loaded, the path to the CSV file is reconstructed by appending the saved relative path to the current visualization file’s directory.
When results are refreshed (see Section 2.11), the Results application will check for any changes to the columns in the CSV file. If any columns have been added or removed, Time Series objects will also be added or removed from the CSV File object. If any columns have changed order, Results will also correctly track their new positions as long as their name, quantity, and unit stay the same.
8.4. Plotting and Exporting CSV Files
Time Series objects from CSV files can be exported or plotted within Results. See Chapter 9 and Chapter 10 for more information.
9. Exporting Data
The Results application allows time series data to be exported to a CSV (comma-separated value) or TSV (tab-separated value) file. Currently, data can be exported from the following objects:
- Data3D Points
- See Section 6.8.2 for information on how to create these points.
- Sample Points
- See Section 7.6.10 for more information on how to create these points.
- Time Series Objects
- See Section 7.8 and Chapter 8 for more information on how to load Time Series objects.
In order to export the data:
- Select the desired points or times series objects from the Navigation View or 3D View.
- Right-click one of the selected objects, and from the pop-up menu click Export Data.
- Select the desired CSV/TSV file and press OK.
The data for the selected objects will be written to the file. The first column will always be the time, and each subsequent column will be the data for each selected object. The time resolution for the file is based on the underlying time step size of the objects. For instance, if exporting data for occupant contour sample points, the time step size in the CSV file will be the same as the time step specified for the contours as described in Section 7.6.5. For Data3D Points, it depends on the output time step of the FDS simulation. For CSV Time Series objects, it depends on the time stamps in the CSV file. When combining points from multiple sources, the times listed in the CSV file will be the union of the keyframes from all the sources. This might result in time-interpolated data for some of the points.
10. Time History Plots
The Results application allows time history data to be displayed in a plot. Currently, data can be shown from following objects:
- Data3D Points
- See Section 6.8.2 for information on how to create these points.
- Sample Points
- See Section 7.6.10 for more information on how to create these points.
- Time Series Objects
- See Chapter 8 for more information on how to load Time Series objects.
In order to show the plot data:
- Select the desired points or time series objects from the Navigation View or 3D View. Multiple objects with the same quantity and unit can be shown in the same plot by using Ctrl to select the objects.
- Right-click one of the selected objects, and from the pop-up menu click Show Plot.
This will display the Time History Plots dialog, as shown in Figure 113. Alternatively, double-click the desired plot from the Navigation View to show the plot.
To create a screenshot of the plot, on the File menu, click Save Screenshot or press F11. Enter the desired screenshot name and click OK to create the screenshot.
To change how the plot data is displayed, use the View menu. The following options are available:
- Plot Type
- Specifies how data points are connected to each other.
The following options are available:
- Line
- Data points are connected directly with lines.
- Stem
- Vertical lines extend from the X axis to each data point.
- Step
- Points are connected only with vertical and horizontal lines.
- Axis Range
- Sets the X or Y axis range.
- Show Grid
- Shows a grid for the tick marks in the graph.
- Show Data Markers
- Shows small circles at each data point.
11. User Scripts
For more specialized post-processing, Results can run user-developed Python scripts. These scripts can generate custom 2D plots or other visualizations. For example, results plots and tables in the Pathfinder Verification and Validation (Pathfinder Verification and Validation, n.d.) are generated using this system.
11.1. Developing Scripts
Scripts are stored as .py
text files that can be attached to multiple Results visualizations.
The code of a script may be edited in an external text editor of your choice. Visual Studio Code https://code.visualstudio.com/ is a commonly-used tool for code editing.
See the theng
Python library documentation (Theng Library Documentation, n.d.) for information about how to develop these scripts.
11.2. Attaching Scripts to a Visualization
To add a script to your visualization:
- Save your visualization file.
- Right-click the User Scripts section in the Navigation View and from the pop-up menu click Load Python Script. Alternatively, on the File menu click Load Python Script.
- Choose the
.py
script file to load. - Click Open.
A new script will be added under the User Scripts group of the Navigation View. From there they may be renamed and deleted.
11.3. Running Scripts from Results
Before running a script, you will need to install Python https://www.python.org/ and the theng
library https://pypi.org/project/theng/.
Then, you may double-click on the script or right-click the script and from the pop-up menu click Run Script.
If you have not configured it yet, this will prompt you to select your installed Python executable.
Choose the python.exe
file you installed earlier, and then click Open.
If you need to, you can choose a different Python installation later from the Preferences dialog.
Depending on the output of the script, several plot objects may be added as children of the script in the Navigation View. You may double-click any of these to show a pop-up dialog displaying the generated visualization. This may take the form of a static image or an interactive HTML page.
11.4. Running Scripts from the Command Line
Scripts can also be ran through the command-line without having to open the Results user-interface.
In order to run scripts this way, first open a command-prompt by clicking the Start menu, type cmd
, and press Enter.
To run scripts from the command-prompt enter:
"C:\Program Files\PyroSim\PyroSimResults.exe" -script "C:\PyroSim\test_model\test_model.smvv"
This will run all scripts attached to the visualization, with the Pathfinder and FDS results attached to the visualization as input.
Scripts may also be ran by invoking Python directly, without using Results at all. Using scripts this way requires you to manually specify paths to Pathfinder and/or FDS results.
To run scripts processing Pathfinder results from the command-prompt using Python enter:
python myscript.py --path path/to/visualization1.pfr, path/to/visualization2.pfr, ...
For FDS results, enter:
python myscript.py --fds path/to/visualization1.smv, path/to/visualization2.smv, ...
12. Technical Reference
12.1. Occupant Contours
The Results application provides some post-processing capabilities, including the ability to generate contours that show dynamic occupant data overlaid on the navigation mesh or imported geometry as shown in Figure 114.
Contours can either be calculated as results are played back or can be optimized and stored on disk for later retrieval. Optimization is discussed further in the User Manual. The calculation of the contours is described in this guide.
Contours are calculated using a sub-divided version of the navigation mesh as seen in Figure 116.
Contour values are calculated at the vertices of the triangles in the contour mesh and are linearly interpolated across triangles to produce the shading. The contour mesh is used only to display occupant contours and is independent from the navigation mesh used during the simulation. The spatial resolution of the contour mesh as well as the update frequency can be controlled using the Occupant Contours Properties dialog. Smaller values for space and time resolution offer smoother contours at the cost of greater calculation time and memory requirements.
Frames of contour data are produced throughout time depending on both the Pathfinder results data frames and the time step specified in the Occupant Contours Properties dialog as discussed in the User Manual. Each contour frame lines up in time with a frame of occupant animation data, though there does not have to be a one-to-one correspondence. This ensures that contour data is only produced when occupants are at known positions rather than interpolated positions. To view contour data at times between contour frames, the data is linearly interpolated between frames.
12.1.1. Congestion
For each occupant, the current continuous time they have been moving below the Congestion Velocity value set in the simulation parameters is applied to the vertices of the contour mesh within a distance of ri (Influence Radius in the User Manual). The congestion value at each vertex is calculated as follows:
\[c_{v} = \max_{1 \leq x \leq n}\left( c_{x}\frac{r_{i} - d_{x}}{r_{i}} \right)\]
12.1.2. Congestion [Maximum]
The maximum congestion contour is implemented as a maximum filter on top of a congestion contour. See Section 12.1.11 for more information about the maximum filter.
12.1.3. Density
The density calculated at each vertex of the contour mesh is dependent on the location of nearby occupants and the value of the Density Radius parameter. Any occupant intersecting the circle around a vertex contributes to the density at that vertex. Occupants who partially fall within the circle around a vertex contribute partially based on intersection area.
Increasing the Density Radius parameter smooths out contours by eliminating peaks and valleys in the density calculation. This effect will tend to be more visible near the edges of dense flows and more stable within uniformly dense regions due to partial attribution of occupants intersected by the density measurement radius.
The following steps describe in detail how the density values that control contour colors are calculated.
- For each vertex of the contour mesh, an area is calculated. The area is at most πrd2, where rd is the user-settable parameter, Density Radius, as described in the User Manual. The area will be less if there are boundaries closer than rd.
- For each vertex, the mesh is traversed to find occupants whose bodies are at least partially within rd.
- The number of occupants within this radius are summed, with occupants fully within the radius counting as 1 and occupants partially within the radius counting as follows:
\[C = 1 - \frac{d - r_{d} + r_{o}}{2r_{o}}\]
- The occupant count is then divided by the area at the vertex to produce the density value.
12.1.4. Level of Service
Level of Service is implemented the same as density but with three special color maps. Each color map represents a different type of terrain, including Walkway, Stairway, and Queuing (Fruin and Strakosch 1987).
12.1.5. Speed
For each occupant, their speed is applied to the vertices of the contour mesh within a distance of ri (Influence Radius in the User Manual). The speed value at each vertex is calculated as follows:
\[s_{v} = \max_{1 \leq x \leq n}\left( s_{x}\frac{r_{i} - d_{x}}{r_{i}} \right)\]
12.1.6. Normalized Speed
The normalized speed contour is calculated similarly to the speed contour, except that the speed value per vertex is the following:
\[s_{v} = \max_{1 \leq x \leq n}\left( \frac{s_{x}}{s_{\text{xmax}}}*\frac{r_{i} - d_{x}}{r_{i}} \right)\]
Where sxmax is the maximum speed of occupant x.
12.1.7. Usage [Instantaneous]
The usage value at each vertex is calculated as follows:
\[u_{v} = \max_{1 \leq x \leq n}\frac{r_{i} - d_{x}}{r_{i}}\]
12.1.8. Usage [Accumulated]
The accumulated usage contour is implemented as a time-integrated filter on top of an instantaneous usage contour. See Section 12.1.12 for more information about the integration filter.
12.1.9. Time to Exit
The Time to Exit contour value at each vertex is calculated as follows:
\[\text{tte}_{v} = \max_{1 \leq x \leq n}\left( {(t}_{\text{exit}} - t_{\text{curr}})\frac{r_{i} - d_{x}}{r_{i}} \right)\]
Where texit is the occupant’s exit time and tcurr is the current contour calculation time.
12.1.10. Average
Average contours are applied on top of other contours.
They are calculated over a user-specified interval that is always trailing a particular time step.
So if the averaging interval is 30 s
long, then at t=120 s
, the averaging interval is [90,120] s
.
The interval cannot go back in time, however, so at t=10 s
, the interval is [0,10] s
.
For each vertex, the vertex contour values of the base contour are averaged over this interval to produce the final vertex value as follows:
\[v_{x} = \frac{1}{n}\sum_{f = x - n + 1}^{x}v_{f}\]
Where x is the index of the contour frame for the current time step, n is the number of frames that intersect the calculation interval, vf is the vertex value of the base contour at frame f.
12.1.11. Maximum
Maximum contours are applied similarly to average contours. For each vertex, the final vertex value is the maximum of the vertex values of the base contour over the time interval as follows:
\[v_{x} = \max_{x - n + 1 \leq f \leq x}v_{f}\]
12.1.12. Integrate
Currently, the integration filter is not exposed as a general contour filter - it is only available incorporated into the accumulated usage contour. The integration filter is implemented on a per-vertex basis as follows:
\[v_{x} = \sum_{f = x - n + 1}^{x}v_{f}(t_{f} - t_{f - 1})\]
Where tf is the time of frame f, and tf-1 is the time at frame f-1.
13. Troubleshooting
13.1. Floating License Server Problems
The floating license server provides an administration web service that can assist with diagnosing many floating license problems. If the license server is installed on the local machine, the license administration server can be accessed at the following web address: http://localhost:5054
If the license server is installed on a remote machine, replace localhost
with the name of the remote machine (i.e. the host name of the floating license server).
Once you have opened the Reprise License Server Administration page, you can use the Status commands to attempt to debug the license server problem yourself, or you can send a diagnostic report to support@thunderheadeng.com for assistance.
To generate a diagnostic report:
- Under RLM Administration Commands, click Diagnostics
- Click Run Diagnostics
- Email the generated file (
rlmdiag.txt
) to support@thunderheadeng.com
13.2. Video Display Problems
The Results application utilizes several advanced graphics card features in order to provide accelerated display of results. If you experience crashes or problems with display, you should first make sure your video card drivers are up-to-date. If they are, there may be some rendering options that can be turned off in the preferences at the expense of decreased fidelity or rendering speed.
If you encounter these problems, please let us know the make/model of your video card and what video driver you are using. This will help us improve our software and increase compatibility.
13.2.1. Results crashes on startup
If the Results application immediately closes when first started, this is usually the result of bugs in the graphics driver. First make sure you are using the latest drivers for you graphics hardware. Some computers may have two graphics adapters, especially laptops. If you are not sure which graphics are being used for the Results application, update the drivers for both GPUs. If this still doesn’t fix the problem, try running the Results in safe-mode.
This can be done as follows:
- Create a shortcut to the PyroSim Results application,
PyroSimResults.exe
. This executable is found in the install folder for PyroSim. - Right-click the shortcut and select Properties.
- At the end of the Target field, add a space and
-safemode
. - Click OK.
- Double-click the shortcut to run the results in safe-mode.
Running the results in safe-mode will disable several advanced graphics features. It will also show a console window with some logging information.
If the Results application starts successfully in safe-mode, the graphics features can be re-enabled one at a time in the Preferences dialog to see which one caused the problem, see Section 2.13.
13.2.2. Results application crashes when results are loaded
If the Results application crashes when specific results are loaded, such as FDS smoke and fire, the graphics card drivers are usually at fault. First try updating the graphics drivers. If that does not fix the problem, try using a compatibility setting for the result type being loaded. For more information, see Section 2.13.
13.2.3. Results don’t display correctly
If particular results do not display correctly, such as a 2D slice that never changes color, this is usually an issue with the graphics card drivers. Older Intel HD Graphics drivers are especially problematic. First try updating the graphics drivers. If that does not fix the problem, try using a compatibility setting for the result type being displayed. For more information, see Section 2.13.
13.3. Stuttering FDS Results
If FDS results, such as fire and smoke, stutter or pause frequently during playback, this may be because the results files are too large to stream. See Section 2.12 for more information on combatting this problem.
13.4. Unresponsive Results
When results are streaming from disk (Section 2.12), they require a connection to the file on disk. If the result files are on a remote machine, there is a possibility that the files can become disconnected from the Results application. In this case, the application may become frozen as it tries to read more data from the disconnected disk. This is usually caused by stability issues with the network.
The current remedy for this problem is to copy the results to the local machine to ensure a more reliable connection with the Results application.
13.5. Known Issues
There are some known issues with the Results. Some of these issues may be fixed in future releases, while others may be deemed non-critical with no plan for a fix.
- FDS volumetric renderings, such as fire and smoke and Data3D, may not have the correct transparency if there are solution meshes embedded inside other meshes. FDS does not prevent embedded meshes, but it does discourage them.
- Smoke and fire do not appear correctly when viewed behind translucent surfaces, such as glass. We hope to improve this in future versions.
- Translucent objects do not blend correctly when overlapping each other. This is related to the problem with smoke and fire and will hopefully be fixed in future revisions.
- For the
smoke_test
problem presented in Chapter 3 of the Smokeview Verification Guide (Forney 2019), only the Use Hardware Shaders render method for smoke produces the expected greyscale values when viewing the scene from the front camera. See Section 2.13 for more information on the render method. This is because the other modes draw one smoke slice too many, making the smoke appear slightly too opaque. The extra slice is drawn because the obstructions line up exactly with some of the slice planes, and the scene geometry is drawn slightly offset away from the camera using polygon offset to allow some objects to appear on top of the obstructions without interference artifacts. When viewed from any perspective other than the front, the greyscale values should be correct in these modes. - Volumetric Data3D and Data3D Slices do not work over remote desktop or on older graphics hardware.
13.6. Contacting Technical Support
If you need assistance, or wish to provide feedback about any of our products, contact support@thunderheadeng.com
Bibliography
https://support.thunderheadeng.com/docs/pathfinder/latest/verification-validation/.
Pathfinder Verification and Validation. n.d. 403 Poyntz Avenue, Suite B, Manhattan, KS 66502, USA: Thunderhead Engineering.https://thunderheadeng.gitlab.io/sandbox/theng/.
Theng Library Documentation. n.d. 403 Poyntz Avenue, Suite B, Manhattan, KS 66502, USA: Thunderhead Engineering.Forney, Glenn. 2019. Smokeview, A Tool for Visualizing Fire Dynamics Simulation Data Volume II: Technical Reference Guide, NIST Special Publication 1017-2. Sixth Edition. National Institute of Standards and Technology, Gaithersburg, Maryland, USA: NIST.
———. 2019. Smokeview, A Tool for Visualizing Fire Dynamics Simulation Data Volume III: Verification Guide, NIST Special Publication 1017-3. Sixth Edition. National Institute of Standards and Technology, Gaithersburg, Maryland, USA: NIST. Fruin, J.J., and G.R. Strakosch. 1987. Pedestrian Planning and Design. Elevator World. Ronchi, Enrico, and Ruggiero Lovreglio. 2020. “EXPOSED: An Occupant Exposure Model for Confined Spaces to Retrofit Crowd Models during a Pandemic.” Safety Science 130: 104834.