
Security News
ESLint Adds Official Support for Linting HTML
ESLint now supports HTML linting with 48 new rules, expanding its language plugin system to cover more of the modern web development stack.
H2Integrate is an open-source Python package for modeling and designing hybrid energy systems producing electricity, hydrogen, ammonia, steel, and other products.
Note: The current version of H2Integrate is under active development and may be missing features that existed previously. H2Integrate v0.2.0 is the last version that uses the prior framework.
For more context about H2Integrate and to see analyses that have been performed using the tool, please see some of these publications. PDFs are available in the linked titles.
The levelized cost of hydrogen is calculated for varying technology costs, and tax credits to explore cost sensitivities independent of plant design, performance, and site selection. Our findings suggest that strategies for cost reduction include selecting sites with abundant wind resources, complementary wind and solar resources, and optimizing the sizing of wind and solar assets to maximize the hybrid plant capacity factor.
Grant, E., et al. "Hybrid power plant design for low-carbon hydrogen in the United States." Journal of Physics: Conference Series. Vol. 2767. No. 8. IOP Publishing, 2024.
Conducting a regional techno-economic analysis at four U.S. coastal sites, the study evaluates two energy transmission configurations and examines associated costs for the years 2025, 2030, and 2035. The results highlight that locations using fixed-bottom technology may achieve cost-competitive water electrolysis hydrogen production by 2030 through leveraging geologic hydrogen storage and federal policy incentives.
Brunik, K., et al. "Potential for large-scale deployment of offshore wind-to-hydrogen systems in the United States." Journal of Physics: Conference Series. Vol. 2767. No. 6. IOP Publishing, 2024.
Modeling results suggest that the levelized cost of storage is highly spatially heterogeneous, with minor impact on the cost of H2 in the Midwest, and potentially significant impact in areas with emerging H2 economies such as Central California and the Southeast. While TOL/MCH may be the cheapest aboveground bulk storage solution evaluated, upfront capital costs, modest energy efficiency, reliance on critical materials, and greenhouse gas emissions from heating remain concerns.
Breunig, Hanna, et al. "Hydrogen Storage Materials Could Meet Requirements for GW-Scale Seasonal Storage and Green Steel." (2024).
King, J. and Hammond, S. "Integrated Modeling, TEA, and Reference Design for Renewable Hydrogen to Green Steel and Ammonia - GreenHEART" (2024).
pip install h2integrate
Using Git, navigate to a local target directory and clone repository:
git clone https://github.com/NREL/H2Integrate.git
Navigate to H2Integrate
cd H2Integrate
Create a conda environment and install H2Integrate and all its dependencies
conda env create -f environment.yml
Install Cbc.
If using a Unix machine (not Windows), install a final dependency
conda install -y -c conda-forge coin-or-cbc=2.10.8
Windows users will have to manually install Cbc: https://github.com/coin-or/Cbc
An additional step can be added if additional dependencies are required, or you plan to use this environment for development work.
-e
for an editable developer installexamples
: allows you to use the Jupyter Notebooksdevelop
: adds developer and documentation toolsall
simplifies adding all the dependenciesThis looks like the following for a developer installation:
pip install -e ".[all]"
Using Git, navigate to a local target directory and clone repository:
git clone https://github.com/NREL/H2Integrate.git
Navigate to H2Integrate
cd H2Integrate
Create a new virtual environment and change to it. Using Conda Python 3.11 (choose your favorite supported version) and naming it 'h2integrate' (choose your desired name):
conda create --name h2integrate python=3.11 -y
conda activate h2integrate
Install H2Integrate and its dependencies:
conda install -y -c conda-forge glpk
Note: Unix users should install Cbc via:
conda install -y -c conda-forge coin-or-cbc=2.10.8
Windows users will have to manually install Cbc: https://github.com/coin-or/Cbc.
If you want to just use H2Integrate:
pip install .
If you want to work with the examples:
pip install ".[examples]"
If you also want development dependencies for running tests and building docs:
pip install -e ".[develop]"
Please be sure to also install the pre-commit hooks if contributing code back to the main repository via the following. This enables a series of automated formatting and code linting (style and correctness checking) to ensure the code is stylistically consistent.
pre-commit install
If a check (or multiple) fails (commit is blocked), and reformatting was done, then restage
(git add
) your files and commit them again to see if all issues were resolved without user
intervention. If changes are required follow the suggested fix, or resolve the stated
issue(s). Restaging and committing may take multiple attempts steps if errors are unaddressed
or insufficiently addressed. Please see pre-commit,
ruff, or isort for more
information.
In one step, all dependencies can be installed as:
pip install -e ".[all]"
The functions which download resource data require an NREL API key. Obtain a key from:
To set up the NREL_API_KEY
and NREL_API_EMAIL
required for resource downloads, you can create
Environment Variables called NREL_API_KEY
and NREL_API_EMAIL
. Otherwise, you can keep the key
in a new file called ".env" in the root directory of this project.
Create a file ".env" that contains the single line:
NREL_API_KEY=key
NREL_API_EMAIL=your.name@email.com
Verify setup by running tests:
pytest
To set up NREL_API_KEY
for resource downloads, first refer to section 7 and 8 above. But for
the .env
file method, the file should go in the working directory of your Python project, e.g.
directory from where you run python
.
H2Integrate is set up to run in parallel using MPI and PETSc for finite differencing and for design of experiments runs through OpenMDAO. To use this capability you will need to follow the additional installation instruction below:
conda install -c conda-forge mpi4py petsc4py
For more details on implementation and installation, reference the documentation for OpenMDAO.
To check that your installation is working, do the following:
cd tests/h2integrate/
mpirun -n 2 pytest test_openmdao_mpi.py
The Examples contain Jupyter notebooks and sample YAML files for common usage scenarios in H2Integrate. These are actively maintained and updated to demonstrate H2Integrate's capabilities. For full details on simulation options and other features, documentation is forthcoming.
Interested in improving H2Integrate? Please see the Contributor's Guide section for more information.
FAQs
Holistic Hybrids Optimization and Design Tool
We found that h2integrate demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
ESLint now supports HTML linting with 48 new rules, expanding its language plugin system to cover more of the modern web development stack.
Security News
CISA is discontinuing official RSS support for KEV and cybersecurity alerts, shifting updates to email and social media, disrupting automation workflows.
Security News
The MCP community is launching an official registry to standardize AI tool discovery and let agents dynamically find and install MCP servers.