Added
- Added basic automatic Python tests for QRA probits, positions, effects, and fatalities
- Added basic utility to create temporary folder in current working directory if one doesn't already exist
- Added functions to calculate and plot overpressure effects for positions in QRA
- Added function to calculate fatality probability based on overpressure effects for QRA
- Added visible flame length as output to the Physics mode flame analysis
- Added mass flow rate as output to Physics mode Plume Dispersion and Unconfined Overpressure analyses
- Added automatic tests to verify zero-risk cases for QRA calculations
- Added check for Physics mode Plume Dispersion mole fraction contour values that reject 0.0 or 1.0 as possible inputs
- Added ambient pressure to Python engineering toolkit mass flow rate inputs
- Added wind to Python flame analyses
- Added Python calculation of hydrogen peak overpressures using modified BST method from Jallais et al. (2018) https://doi.org/10.1002/prs.11965
- Added impulse and overpressure data to QRA results
- Added discharge coefficient input to flame and QRA analyses
- Added phase input to Engineering Toolkit temperature, pressure, density calculations
- ETK temperature-pressure-density tool now calculates second missing parameter when phase is saturated
Changed
- Changed calculation of flow through an orifice to find maximum flux rather than relying on calculated speeds of sound
- Moved positions and heat flux effects from hyram.phys to hyram.qra and removed flux-analysis call from physics api
- Moved position generation to main QRA analysis instead of inside heat flux effects
- Moved calculation of thermal fatalities loop to separate fatalities module
- Changed QRA main analysis to calculate overpressure harm using unconfined overpressure model rather than overpressure/impulse direct inputs
- Changed QRA main analysis to utilize refactored code in new effects, fatalities, ignition probabilities, pipe size, and risk modules
- Changed internal calculations to use W/m2 for heat flux and Pa for peak overpressure for consistency; GUI and plots still report kW/m2 and kPa
- Figures are explicitly closed after saving to file to avoid taking up memory
- Changed the origin of unconfined overpressure blast wave to be the point at which the jet concentration is midway between the upper and lower flammability limits, instead of half the distance to the lower flammability limit
- Changed Bauwens/Dorofeev unconfined overpressure models to utilize fitted curves for detonation cell size rather than a saved spline-fit object in a pickle file
- Some Python optional arguments had default values that were specific to hydrogen (e.g., LFL and UFL), changed the default to select values specific to the fuel selected rather than hydrogen
- Fixed overpressure origin calculation, y- and z-coordinates were flipped
- Changed default overpressure probit model to TNO - Head Impact
- Changed ode integrator within Flame objects to use implicit Adams/BDF method rather than explicit Runge-Kutta method
- Improved accuracy of calculation of flammable mass within a jet/plume by interpolating the endpoints near the rich and lean regions
- Updated fault tree images in GUI to reflect added components in version 4.0
Removed
- Removed unused debris fatality probit
- Removed numerical comparison tests for QRA C-API, the tests now just check that the interface is working and that calculations run without error
- Removed saving and loading of flame data object file in QRA calculations since old results could stay in there despite model changes
- Removed unused save and load object functions from physics thermo module and utilities
- Removed value-specific checks from Python C-API tests, these may be incorporated in separate future validation tests
- Removed single-point radiation model from jet flame entirely from the Python code
- Removed unused 3D ISO heat flux plot, along with associated scikit-image dependency
- Removed unused unconfined overpressure contour plot
- Removed package dill as a dependency of the hyram Python package
- Removed package pandas as a dependency of the hyram Python package
- Removed overpressure impulse table inputs from GUI
- Removed unused facility height input in QRA
- Removed unused leak height input in QRA calculations
- Removed Python 2-phase speed of sound calculations