scram

Probabilistic Risk Analysis Tool (fault tree analysis, event tree analysis, etc.)

GPL-3.0 License

Stars
134
Committers
3
scram - v0.1.0: Initial Release

Published by rakhimov over 9 years ago

Basic Fault Tree Analysis with most used gates and event types.

scram - v0.6.0: Common Cause Failure Models

Published by rakhimov almost 10 years ago

Release Notes

Incorporation of Common Cause Failure.

Major Changes

  • Common Cause Failure models:
    • Beta Factor
    • Multiple Greek Letters
    • Alpha Factor
    • Phi Factor

Since v0.5.0

  • 42 commits resulted in 50 files changed, 2740 insertions(+), 304 deletions(-)
scram - v0.5.0: New algorithms, Importance Analysis, and Fault Tree Preprocessing

Published by rakhimov almost 10 years ago

Release Notes

This release introduces a new cut set generation algorithm that is faster than the previous algorithm. In addition, the release adds importance analysis and initial attempts to preprocess and simplify fault trees. A new analysis engine is introduced for easier preprocessing.

Major Changes

  • New algorithms to efficiently generate cut sets (at least 10x improvement):
    • Early set uniqueness detection
    • Local minimality detection upon cut set expansions
  • Fault tree preproccessing:
    • Constant propagation
    • Application of Boolean algebra basics for fault tree simplifications
    • Complex gate expansions for XOR and ATLEAST
    • Original module (independent sub-tree) detection
    • Simple new module creation
  • Importance analysis:
    • Fussel-Vesely
    • Birnbaum
    • Critical Importance Factor
    • Risk Reduction Worth
    • Risk Achievement Worth
  • Importance factors only for basic events in minimal cut sets. The other basic events are 0 importance.
  • Calculations without probability information assume House event state as false.
  • Separate consideration for certain basic events for uncertainty analysis:
    • Only basic events with distributions are left in probability equation.
  • Multiple input files with fault trees and model data are accepted for analysis.
  • Simple logging system for debugging or warning.

Fixed Bugs

  • House events are treated as constant in the fault tree not as regular basic events.
  • House events are not included in minimal cut sets or reported with probability information anymore.
  • Unity is treated in Boolean algebra for minimal cut sets. The special case of Unity top gate is handled.
  • Repeated children are detected in input files. One gate cannot have the same two children in input.

Since v0.4.0

  • 116 commits resulted in 226 files changed, 5342 insertions(+), 37071 deletions(-)
scram - v0.4.0: Uncertainty Analysis

Published by rakhimov about 10 years ago

Release Notes

This release introduces uncertainty analysis and more support for OpenPSA expressions.

Major Changes

  • Uncertainty analysis with Monte Carlo method
  • Automated performance testing
  • Probability calculation performance optimization (up to 10x faster)
  • The default number of series in probability calculations is set to 7 (conservative result with acceptable performance).
  • cppclean code problem check
  • Lowered cyclomatic complexity of the core code (CCN < 15)
  • Bug fixes of wrong output into a file
  • Bug fix in log-normal distribution
  • OpenPSA MEF support additions:
    • Expressions:
      • Constant expressions
      • System mission time
      • Parameter
      • Random deviate (normal, log-normal, histogram, uniform, gamma, beta)
      • Built-in expressions (exponential with two parameters, exponential with four parameters, Weibull)
  • More theory information in documentations.
  • Re-introduction of deprecated Inhibit gate, Conditional and Undeveloped events.

Deprecated Features

  • Vote gate is renamed to "atleast".

Since v0.3.1

  • 124 commits resulted in 120 files changed, 10455 insertions(+), 3244 deletions(-)
scram - v0.3.1: More platforms and XML support

Published by rakhimov about 10 years ago

Release Notes

Major Changes

  • Pre-expansion of gates (around 4x faster tree expansion).
  • Verified building for Mac OS X with macports.
  • Verified building for Windows with Cygwin.
  • Various statistical distributions for Monte Carlo Method and random number generator.
  • OpenPSA MEF support additions:
    • Several fault trees in one input file.
    • Attributes
    • Label
  • Warnings for unused primary events.
  • More example fault tree inputs.
  • KDE CMake coding style and corrected function declarations according to Google Style.
  • Start of GUI development with Qt
  • CDash reporting.

Since v0.3.0

  • 93 commits resulted in 265 files changed, 79505 insertions(+), 31439 deletions(-)
scram - v0.3.0: OpenPSA Model Exchange Format Support

Published by rakhimov about 10 years ago

Release Notes

This release introduces a refactored structure of the core code and support for XML input files.

Major Changes

  • XML input files formatted according to OpenPSA Model Exchange Format
    • RelaxNG validation of input files.
  • Refactored code structure conceptually similar to the structure of the XML tree from the input file.
  • Three entities: Gates, Basic events, House events.
  • Performance optimization of the tree expansion (around 1.5x faster) and MCS generation (around 3x faster)
  • Cut-off probability for cut sets is introduced for faster probability calculations (around 40-50x faster)
  • Gates can be easily re-used without creating TransferIn/Out input files
  • The fault tree generator script outputs XML input file

Deprecated Features

  • The previous custom input formats for a fault tree and event probabilities
  • L-model probability description with failure rates (This will be implemented by more broad expressions in future)
  • TransferIn and TransferOut are not gate-like types but symbols to represent the re-use of gates.
  • Undeveloped/Conditional event will be treated just like a basic event with an additional description.

Since v0.2.0

  • 131 commits resulted in 305 files changed 15863 insertions and 22968 deletions.
scram - v0.2.0: Static Fault Tree Analysis

Published by rakhimov about 10 years ago

Release Notes

  • New Gates and Event types:
    • NULL
    • NOT
    • NOR
    • NAND
    • XOR
    • VOTE
    • Inhibit
    • Conditional Event
  • Performance improvements for minimal cut set generation.
  • Initial Complexity analysis for main functions.
  • Probability calculation from failure rates.
  • MCUB Approximation for probability calculations.
  • Better output formatting.
  • Better graphing with colors.
  • Time reporting.
  • Bug fixes related to name clashes.
  • Documentation of API and publishing by Doxygen.
  • Better documentation website.
  • References and information about most used MCS algorithms: MOCUS and BDD.

Since v0.1.2

  • SCRAM: 97 commits resulted in 89 files changed with 3782 insertions and 953 deletions.
scram - v0.2.0-rc2:Needs better installation instructions.

Published by rakhimov about 10 years ago

scram - v0.2.0-rc1: Needs Tests, Refactoring, Documentation

Published by rakhimov about 10 years ago

scram - v0.1.2: Transfer Trees and Documentation

Published by rakhimov over 10 years ago

Release Notes

  • Analysis and graphing of a sub-tree without a main tree input file.
  • Bug fixes related to analysis of a sub-tree and its graphing.
  • Documentation is published on gh-pages.

Since v0.1.1

  • SCRAM: 21 commits resulted in 50 changed files encompassing a net 4137
    line insertions(+) and 665 deletions(-).
scram - v0.1.1: Testing, Bug Fixes, Benchmarking

Published by rakhimov over 10 years ago

Release Notes

This release introduces unit, integration, and benchmarking tests, as well as several bug fixes.

Major changes

  • Testing suite
    • unit tests
    • integration tests
    • benchmarking tests
  • Continuous Integration by Travis-CI.
  • Automated Coverity scan for code quality and resource leak analysis.
  • Test coverage check by Coveralls.
  • Several bug fixes for input file parsing and fault tree instantiation.
  • Better memory management with boost smart pointers.

Since v0.1

  • SCRAM: 116 commits resulted in 107 changed files encompassing a net 4799
    line insertions(+) and 923 deletions(-).