Coder Social home page Coder Social logo

hyram's Introduction

Hydrogen Plus Other Alternative Fuels Risk Assessment Models (HyRAM+)

The Hydrogen Plus Other Alternative Fuels Risk Assessment Models (HyRAM+) toolkit integrates deterministic and probabilistic models for quantifying accident scenarios, predicting physical effects, and characterizing the impact on people from hydrogen and other alternative fuels.

Additional descriptions and documentation, as well as a Windows installer, can be found at https://hyram.sandia.gov/.

Copyright and License

The copyright language is available in the COPYRIGHT.txt file. The license, as well as terms and conditions, are available in the COPYING.txt file.

Contributing

The application comprises a frontend GUI written in C# and a backend module written in Python. Anyone who wants to contribute to the development of the open-source HyRAM+ project should refer to the details in the CONTRIBUTING document.

Documentation

The HyRAM+ Technical Reference Manual contains descriptions of the models and calculations used within HyRAM+. It also contains references to the original works that these models and calculations are based on.

The HyRAM 2.0 User Guide contains details and examples on how to use the HyRAM+ software through the graphical user interface (GUI), with example calculations updated with changes to the interface and improved calculation options. This document more references how to use the software interface, rather than specifics on the models and calculations themselves. While there have been many changes to the current HyRAM+ version of the code, many of the examples are still applicable even though the User Guide is based on the previous version; a new version of the User Guide will be published in the future.

Repository Layout

The HyRAM+ repository includes both the C# frontend GUI and the backend Python module. Source code is organized in directories in the git repository in the following directory structure:

├───src
|   ├───gui
|   ├───cs_api
|   └───hyram
|       ├───phys
|       ├───qra
|       └───utilities
└───tests
    ├───cs_api
    └───hyram
        ├───phys
        ├───qra
        └───validation
  • src - Project source code, including C# GUI and python modules
  • src/gui - Front-end C# interface providing convenient access to HyRAM+ tools
  • src/cs_api - Python functions providing C# access to HyRAM+ python code via the python.NET library
  • src/hyram - Python package of HyRAM+ tools including physics, quantitative risk assessment, and miscellaneous utilities
    • Additional information on the usage and development of the HyRAM+ Python module can be found in the README of that directory
  • tests - Tests of the project source code to verify calculations and functionality
  • tests/cs_api - Tests for the Python functions providing C# access to HyRAM+ Python package via the python.NET library
  • tests/hyram - Tests for the HyRAM+ Python package including physics, risk assessment, and physics validation

hyram's People

Contributors

bdehrha avatar ethanhecht avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

hyram's Issues

physics - jet_flame_analysis - Plot is always needed for performing flux analysis

I may be mistaken, but it appears that the only parameter determining the activation of flux analysis at various locations is the analyze_flux parameter of the phys.jet_flame_analysis function, which also generates a plot automatically. It would be beneficial to separate the flux plot from the analysis itself, particularly in scenarios where the model needs to be run multiple times (as plotting incurs computational expenses).

Incompatibility Scipy1.14

In scipy1.14 version scipy.integrate.{simps,trapz,cumtrapz} have been removed in favour of simpson, trapezoid, and cumulative_trapezoid

HyRAM build folder missing python folder

I was following your setup and build instructions from B.1. to B.4.6.
Following step B.4.6., when I ran Build on the Installer in the Solution Explorer, I got the following:
Note: 2> "skipping python copy".

1>------ Build started: Project: DefaultParsing, Configuration: Debug Any CPU ------
2>------ Build started: Project: PythonDir, Configuration: Debug Any CPU ------
1> DefaultParsing -> C:\build\bin\Debug\DefaultParsing.dll
3>------ Build started: Project: JrString, Configuration: Debug Any CPU ------
4>------ Build started: Project: JrConversions, Configuration: Debug Any CPU ------
3> JrString -> C:\build\bin\Debug\JtString.dll
5>------ Build started: Project: JrCollections, Configuration: Debug Any CPU ------
5> JrCollections -> C:\build\bin\Debug\JrCollections.dll
6>------ Build started: Project: UIHelpers, Configuration: Debug Any CPU ------
2> PythonDir -> C:\build\bin\Debug\PythonDir.dll
2> "skipping python copy".
2> C:\hyram\App\PythonDir\....\python_contributions\hyram\hyram\qra_setup.py
2> C:\hyram\App\PythonDir\....\python_contributions\hyram\hyram_init_.py

And the following Error message after the above message:
------ Starting pre-build validation for project 'HyRAMSetup' ------
ERROR: Unable to find source file 'C:\build\bin\Release\python\Lib\site-packages\numpy\core_methods.py' for file 'methods.py', located in '[TARGETDIR]\python\Lib\site-packages\numpy\core', the file may be absent or locked.
ERROR: Unable to find source file 'C:\build\bin\Release\python\Lib\site-packages\networkx\linalg\tests_pycache
\test_spectrum.cpython-36.pyc' for file 'test_spectrum.cpython-36.pyc', located in '[TARGETDIR]\python\Lib\site-packages\networkx\linalg\tests_pycache_', the file may be absent or locked.
ERROR: Unable to find source file 'C:\build\bin\Release\python\Lib\idlelib_pycache_\search.cpython-36.pyc' for file 'search.cpython-36.pyc', located in '[TARGETDIR]\python\Lib\idlelib_pycache_', the file may be absent or locked.
ERROR: Unable to find source file 'C:\build\bin\Release\python\Lib\site-packages\dill\tests_main_.py' for file 'main.py', located in '[TARGETDIR]\python\Lib\site-packages\dill\tests', the file may be absent or locked.
ERROR: Unable to find source file 'C:\build\bin\Release\python\Lib\site-packages\pandas\tests\indexes\timedeltas_init_.py' for file 'init.py', located in '[TARGETDIR]\python\Lib\site-packages\pandas\tests\indexes\timedeltas', the file may be absent or locked.
....
.....
.....
------ Pre-build validation for project 'HyRAMSetup' completed ------
10>------ Build started: Project: HyRAMSetup, Configuration: Debug ------
========== Build: 9 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

Then when I click "Start", I get the following error message at this location:
// Cianan: Must initialize once instead of during each use to avoid re-import issues
PythonEngine.Initialize()
Error message:
System.DllNotFoundException: 'Unable to load DLL 'python36': The specified module could not be found. (Exception from HRESULT: 0x8007007E)'

Upon checking, the build directory (\build\bin\Debug) was missing the "python" which should contain the python36 DLL files.
It looks like I have to manually copy the python folder from the \hyram\App\PythonDir folder to the \build\bin\Debug, it worked.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.