How sandialabs/hyram works
HyRAM+ combines a Qt GUI with Python models for deterministic physical-effects analyses and probabilistic quantitative risk assessment (QRA). The GUI presents inputs, dispatches analyses, and displays results; the physics package covers release/plume, flame, accumulation, and overpressure effects. QRA and uncertainty quantification are separate backend capabilities. The README establishes the product scope, and sampled code confirms GUI-to-physics calls and threaded analysis dispatch; unsampled QRA internals are shown as capabilities without speculative links between stages.
Main entry points: api.py Physics API · analyses.py Analysis handlers · main.py GUI startup · fields.py Form bindings
Components 24
GUI workflow
- GUI startup
gui/src/hyramgui/main.py - Input models
gui/src/hyramgui/hygu/models/fields.py - Form bindings
gui/src/hyramgui/hygu/forms/fields.py - Analysis handlers
gui/src/hyramgui/models/analyses.py - Analysis dispatch
gui/src/hyramgui/hygu/threads.py - Result state
gui/src/hyramgui/forms/app.py
Physical effects
- Physics API
src/hyram/phys/api.py - Jet and plume
src/hyram/phys/_jet.py - Release nozzle
src/hyram/phys/_notional_nozzle.py - Indoor accumulation
src/hyram/phys/_indoor_release.py - Overpressure
src/hyram/phys/_unconfined_overpressure.py - Flame effects
src/hyram/phys/_flame.py - Thermodynamics
src/hyram/phys/_therm.py
Risk assessment
- QRA analysis
src/hyram/qra/analysis.py - Component failures
src/hyram/qra/component_failure.py - Event trees
src/hyram/qra/event_tree.py - Consequences
src/hyram/qra/consequence.py - Human effects
src/hyram/qra/effects.py - Risk results
src/hyram/qra/risk.py
Uncertainty analysis
- Uncertainty evaluation
src/hyram/qra/uncertainty.py - Sampling
src/hyram/qra/uq/sampling.py - Distributions
src/hyram/qra/uq/distributions.py - Parallel evaluation
src/hyram/qra/uq/parallel_evaluations.py
Other components
- Analyst
Connections 19
- Analyst → GUI startup: opens
- GUI startup → Form bindings: binds controls
- GUI startup → Input models: exposes fields
- Input models → Form bindings: supplies values
- Form bindings → Analysis handlers: submits inputs
- Analysis handlers → Analysis dispatch: queues analysis
- Analysis dispatch → Analysis handlers: executes handler
- Analysis handlers → Physics API: calls analyses
- Physics API → Jet and plume: uses models
- Physics API → Indoor accumulation: uses model
- Physics API → Overpressure: uses model
- Physics API → Flame effects: uses model
- Physics API → Thermodynamics: uses properties
- Physics API → Release nozzle: uses nozzle model
- Analysis handlers → Result state: returns results
- Analyst → QRA analysis: requests QRA
- Uncertainty evaluation → Sampling: evaluates samples
- Sampling → Distributions: draws values
- Uncertainty evaluation → Parallel evaluation: evaluates in parallel