Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
95 commits
Select commit Hold shift + click to select a range
e160884
Example set up to use doc co2, need to updated mcm locally
jmartin4u Aug 18, 2025
b564188
Running with co2 connection (not correctly)
jmartin4u Aug 19, 2025
4ea37bf
Running example with plots
jmartin4u Aug 25, 2025
e94bb3d
Making tighter plots
jmartin4u Aug 26, 2025
f791fa7
Plot colors
jmartin4u Aug 26, 2025
64680e8
Making new folder for methanol doc example
jmartin4u Sep 4, 2025
e4c1a9b
Repopulating co2h example
jmartin4u Sep 4, 2025
2d953eb
Methanol doc with financials
jmartin4u Sep 4, 2025
b0b6681
Merge remote-tracking branch 'upstream/develop' into meoh-dev2
jmartin4u Sep 4, 2025
b98d80e
Config updates from merge
jmartin4u Sep 4, 2025
379a328
Merge remote-tracking branch 'upstream/develop' into meoh-dev2
jmartin4u Sep 5, 2025
7467b99
Getting tests passing
jmartin4u Sep 5, 2025
087c6a4
Example chart set up
jmartin4u Sep 5, 2025
ad69753
Changelog update
jmartin4u Sep 5, 2025
b131e0d
Tests fixes
jmartin4u Sep 5, 2025
cd09412
Fix test
jmartin4u Sep 5, 2025
a020f4d
Adding line to skip mcm test if not installed
jmartin4u Sep 12, 2025
bce8387
Merge branch 'develop' into meoh-dev2
johnjasa Sep 15, 2025
ba0b2e0
merge develop
kbrunik Sep 23, 2025
917d3de
update comments
kbrunik Sep 23, 2025
20408c5
Merge remote-tracking branch 'upstream/develop' into meoh-dev3
jmartin4u Sep 24, 2025
a0a67ab
Splitting electricity
jmartin4u Sep 24, 2025
7046939
Merge branch 'meoh-dev3' into meoh-dev2
jmartin4u Sep 24, 2025
e156ace
CO2 storage working, need to check timeseries
jmartin4u Sep 25, 2025
6c4b489
Remove wind file
jmartin4u Sep 25, 2025
fccfc8a
Reasonable asset sizing
jmartin4u Sep 25, 2025
1b7baec
Merge remote-tracking branch 'upstream/develop' into develop
jmartin4u Sep 30, 2025
ee0b2b0
Merge branch 'develop' into meoh-dev2
jmartin4u Oct 1, 2025
80dda6a
Optimized
jmartin4u Oct 1, 2025
fe8c3b7
Test fix
jmartin4u Oct 1, 2025
d67adfa
Fix precommit
jmartin4u Oct 1, 2025
fa20cf6
Merge pull request #289 from NREL/main
johnjasa Oct 2, 2025
d7feb8e
Merge remote-tracking branch 'upstream/develop' into develop
jmartin4u Oct 2, 2025
16c92eb
Merge remote-tracking branch 'upstream/develop' into meoh-dev2
jmartin4u Oct 2, 2025
1eac56d
Removed co2 capture rate mt
johnjasa Oct 7, 2025
8b65e31
Switching lots of tech config values from a .csv (#242)
jmartin4u Oct 7, 2025
ee0d2a7
Custom Finance Model (#247)
elenya-grant Oct 7, 2025
d18a47c
Throw error for missing resource or missing resource connection (#284)
elenya-grant Oct 7, 2025
bbe1528
minor clean up
kbrunik Oct 7, 2025
c7f279d
minor clean up
kbrunik Oct 7, 2025
cbdf07d
Merge branch 'develop' into meoh-dev2
kbrunik Oct 7, 2025
539b5d8
Removing commented out config block
jmartin4u Oct 7, 2025
e950dd8
Merge pull request #239 from jmartin4nrel/meoh-dev2
jmartin4u Oct 7, 2025
44ac54c
Fix local test failures on test_hybrid_energy_plant_example (#283)
jmartin4u Oct 7, 2025
66d1c29
commodity-neutral transporters and basic operations (#293)
kbrunik Oct 8, 2025
2cfcbe7
Merge branch 'develop' of https://github.com/NREL/H2Integrate into de…
jmartin4u Oct 9, 2025
2b0dd94
Updated/Fixed SQL Recording (#291)
elenya-grant Oct 9, 2025
9eba75f
Flexible Finance Streams (#294)
kbrunik Oct 10, 2025
0f2ef46
GOES Solar Resource Models (#279)
elenya-grant Oct 14, 2025
8711b3d
Sprucing up plots for white paper
jmartin4u Oct 16, 2025
856cfbd
Add a bool to driver_config for creating OM reports (#308)
johnjasa Oct 17, 2025
66a7790
Merge branch 'develop' into meoh-plot
johnjasa Oct 17, 2025
4a7afa7
Merge pull request #307 from jmartin4nrel/meoh-plot
kbrunik Oct 17, 2025
7550089
Minor opt formulation fixes (#317)
johnjasa Oct 24, 2025
e922c52
Pyomo dispatch (#211)
jaredthomas68 Oct 26, 2025
c9a4a50
added conftest files to prevent clutter (#311)
elenya-grant Oct 27, 2025
9a7859a
Updated recorder to be attached to driver or model (#295)
elenya-grant Oct 27, 2025
b9a3db2
updated api docs to include more useful information (#323)
elenya-grant Oct 29, 2025
cb9b0ad
Sync battery cost model and controller inputs (#290)
elenya-grant Oct 30, 2025
c56c82e
PySAM Wind and Basic Turbine Layout (#306)
kbrunik Nov 3, 2025
50e7659
Added CsvGenerator option for design of experiments (#314)
elenya-grant Nov 3, 2025
fcef700
Net Present Value Financial Models (#310)
kbrunik Nov 5, 2025
56ddf01
Added functionality for loading yamls and finding files (#313)
elenya-grant Nov 6, 2025
b76a769
Recording and Loading SQL Files: Example and Doc page (#322)
elenya-grant Nov 6, 2025
4820d28
Merge Geologic Hydrogen Branch into Develop (#354)
kbrunik Nov 6, 2025
17b4859
Merge Iron Branch into Develop (#360)
kbrunik Nov 6, 2025
317694f
Open-Meteo Wind Resource (#332)
elenya-grant Nov 10, 2025
953e4dc
Natural Gas Plant operation with electricity demand (#334)
kbrunik Nov 11, 2025
b8e02e1
Improving the readability of the `post_process` method (#361)
johnjasa Nov 12, 2025
ce48da3
Fixing ammonia stoichiometry (#363)
jmartin4u Nov 12, 2025
eb1b9b3
Minor bugfix to ProFAST output naming (#368)
elenya-grant Nov 13, 2025
b21c0c0
Decoupled H2 Storage Performance and Cost Models (#324)
elenya-grant Nov 14, 2025
da6fef8
Post-processing: summarize data in .sql file and export to csv (#366)
elenya-grant Nov 18, 2025
8600c7c
Added library folder for commonly used inputs (#369)
elenya-grant Nov 18, 2025
3fadefc
Update GeoH2 Subsurface Modeling (#367)
kbrunik Nov 20, 2025
506efdd
Standalone Iron Mine (#364)
johnjasa Nov 20, 2025
229a8c0
Ability to sweep sites in design of experiments (DOEs) (#336)
elenya-grant Nov 20, 2025
a47500e
prettified postprocessing outputs a little bit (#378)
johnjasa Nov 26, 2025
6100992
NSRDB Solar Resource Models for Himawari and Meteosat Prime Meridian …
elenya-grant Nov 26, 2025
70145dc
Pin jupyter-book version in pyproject.toml
johnjasa Dec 1, 2025
8f61b24
Fix typo in CONTRIBUTING.md note section (#383)
jaredthomas68 Dec 2, 2025
2fa822b
Load Demand Component (#328)
kbrunik Dec 2, 2025
cee3861
Grid Components (#340)
kbrunik Dec 4, 2025
6508a98
geo h2 doc page (#380)
kbrunik Dec 4, 2025
58a8864
New PR Template (#390)
kbrunik Dec 9, 2025
c8f7fe1
Removing more of old GreenHEART (#384)
johnjasa Dec 10, 2025
9fb54c4
Allow for starts-with matching for technology names in electricity pr…
jaredthomas68 Dec 11, 2025
83c257f
Correct name spelling from 'Corey' to 'Cory'
johnjasa Dec 11, 2025
bf800a6
Update LICENSE to remove ProFAST note
johnjasa Dec 11, 2025
6458588
add zenodo citation
RHammond2 Dec 11, 2025
82ba52a
Update CHANGELOG with new features and improvements corresponding to …
jaredthomas68 Dec 11, 2025
43ab54c
Allow generic combiner to handle as many inflow streams as desired (#…
jaredthomas68 Dec 15, 2025
8f5499b
Demonstrating different sizing modes with H2 electrolyzer (#198)
jmartin4u Dec 16, 2025
3a25e3f
Moved last of the high-level tests (#412)
johnjasa Dec 17, 2025
9d3ec0d
Prepping for v0.5.0 release (#414)
johnjasa Dec 18, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
110 changes: 71 additions & 39 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,77 +25,109 @@ IMPORTANT NOTES

<!--The title should clearly define your contribution succinctly.-->
# Add meaningful title here

<!-- Describe your feature here. Please include any code snippets or examples in this section. -->
[Add description of feature here]

## Type of Contribution
## Section 1: Type of Contribution
<!-- Check all that apply to help reviewers understand your contribution -->
- [ ] Feature Enhancement
- [ ] New Technology Model
- [ ] Framework
- [ ] New Model
- [ ] Updated Model
- [ ] Tools/Utilities
- [ ] Other (please describe):
- [ ] Bug Fix
- [ ] Documentation Update
- [ ] CI Changes
- [ ] Other (please describe):

## General PR Checklist

## Section 2: Draft PR Checklist
<!--Tick these boxes if they are complete, or format them as "[x]" for the markdown to render. -->
- [ ] `CHANGELOG.md` has been updated to describe the changes made in this PR
<!--Complete when opening a draft PR. -->
- [ ] Open draft PR
- [ ] Describe the feature that will be added
- [ ] Fill out TODO list steps
- [ ] Describe requested feedback from reviewers on draft PR
- [ ] Complete Section 7: New Model Checklist (if applicable)
<!-- Describe the feature in this PR and outline next steps -->
### TODO:
- [ ] Step 1
- [ ] Step 2

### Type of Reviewer Feedback Requested (on Draft PR)
<!-- Outline the feedback that would be helpful from reviewers while it's a draft PR -->
**Structural feedback**:

**Implementation feedback**:

**Other feedback**:

## Section 3: General PR Checklist
<!--Complete when converting draft PR to a merge-ready PR. -->
- [ ] PR description thoroughly describes the new feature, bug fix, etc.
- [ ] Added tests for new functionality or bug fixes
- [ ] Tests pass (If not, and this is expected, please elaborate in the Section 6: Test Results)
- [ ] Documentation
- [ ] Docstrings are up-to-date
- [ ] Related `docs/` files are up-to-date, or added when necessary
- [ ] Documentation has been rebuilt successfully
- [ ] Examples have been updated (if applicable)
- [ ] Tests pass (If not, and this is expected, please elaborate in the tests section)
- [ ] Added tests for new functionality or bug fixes
- [ ] PR description thoroughly describes the new feature, bug fix, etc.

## New Technology Checklist
<!-- Complete this section only if you checked "New Technology Model" above -->
- [ ] **Performance Model**: Technology performance model has been implemented and follows H2Integrate patterns (if applicable)
- [ ] **Cost Model**: Technology cost model has been implemented (if applicable)
- [ ] **Tests**: Unit tests have been added for the new technology
- [ ] Performance model tests (if applicable)
- [ ] Cost model tests (if applicable)
- [ ] Integration tests with H2Integrate system
- [ ] **Example**: A working example demonstrating the new technology has been created
- [ ] Example has been tested and runs successfully in `test_all_examples.py`
- [ ] Example is documented with clear explanations in `examples/README.md`
- [ ] Input file comments
- [ ] Run file comments
- [ ] **Documentation**:
- [ ] Technology documentation page added to `docs/technology_models/`
- [ ] Technology added to the main technology models list in `docs/technology_models/technology_overview.md`
- [ ] **Integration**: Technology has been properly integrated into H2Integrate
- [ ] Added to `supported_models.py`
- [ ] If a new commodity_type is added, update `create_financial_model` in `h2integrate_model.py`
- [ ] Follows established naming conventions outlined in `docs/developer_guide/coding_guidelines.md`

## Related issues

<!--If one exists, link to a related GitHub Issue.-->
- [ ] `CHANGELOG.md` has been updated to describe the changes made in this PR

## Section 3: Related Issues
<!--If this PR relates to an existing GitHub issue, please link the issue and indicate whether this PR would fully or partially resolve that issue. Please also link any issues that were created due to this PR-->

## Impacted areas of the software

## Section 4: Impacted Areas of the Software
<!--
Replace the below example with any added or modified files, and briefly describe what has been changed or added, and why.
Replace the below example with any added or modified files, and briefly describe what has been changed or added, and why. Can exclude CHANGELOG.md, doc pages and supported_models.py.
-->
### Section 4.1: New Files
- `path/to/file.extension`
- `method1`: What and why something was changed in one sentence or less.

## Additional supporting information
### Section 4.2: Modified Files
- `path/to/file.extension`
- `method1`: What and why something was changed in one sentence or less.

## Section 5: Additional Supporting Information
<!--Add any other context about the problem here.-->


## Test results, if applicable

## Section 6: Test Results, if applicable
<!--
Add the results from unit tests and regression tests here along with justification for any
failing test cases.
-->

## Section 7 (Optional): New Model Checklist
<!-- Complete this section only if you checked "New Model" above -->
- [ ] **Model Structure**:
- [ ] Follows established naming conventions outlined in `docs/developer_guide/coding_guidelines.md`
- [ ] Used `attrs` class to define the `Config` to load in attributes for the model
- [ ] If applicable: inherit from `BaseConfig` or `CostModelBaseConfig`
- [ ] Added: `initialize()` method, `setup()` method, `compute()` method
- [ ] If applicable: inherit from `CostModelBaseClass`
- [ ] **Integration**: Model has been properly integrated into H2Integrate
- [ ] Added to `supported_models.py`
- [ ] If a new commodity_type is added, update `create_financial_model` in `h2integrate_model.py`
- [ ] **Tests**: Unit tests have been added for the new model
- [ ] [Pytest-style unit tests](https://realpython.com/pytest-python-testing/)
- [ ] Unit tests are in a "test" folder within the folder a new model was added to
- [ ] If applicable add integration tests
- [ ] **Example**: If applicable, a working example demonstrating the new model has been created
- [ ] Input file comments
- [ ] Run file comments
- [ ] Example has been tested and runs successfully in `test_all_examples.py`
- [ ] **Documentation**:
- [ ] Write docstrings using the [Google style](https://sphinxcontrib-napoleon.readthedocs.io/en/latest/example_google.html)
- [ ] Model added to the main models list in `docs/user_guide/model_overview.md`
- [ ] Model documentation page added to the appropriate `docs/` section
- [ ] `<model_name>.md` is added to the `_toc.yml`





<!--
__ For NREL use __
Expand Down
3 changes: 2 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -144,5 +144,6 @@ reports/*
*.aux
*.bbl

# Ignore wind resource data files
# Ignore wind and solar resource data files
resource_files/wind/*
resource_files/solar/*
54 changes: 54 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,59 @@
# Changelog

## 0.5.0 [December 18, 2025]

### New Features and Technology Models

- Added PySAM Windpower performance model to simulate wind [PR 306](https://github.com/NREL/H2Integrate/pull/306)
- Added `simple_grid_layout.py` for wind plant layout modeling, can model square or rectangular layouts [PR 306](https://github.com/NREL/H2Integrate/pull/306)
- Added ability to visualize the wind plant layout for PySAM Windpower model using `post_process(show_plots=True)` [PR 306](https://github.com/NREL/H2Integrate/pull/306)
- Added Wind Annual Technology Baseline cost model `atb_wind_cost.py` [PR 306](https://github.com/NREL/H2Integrate/pull/306)
- Added resource models to make solar resource API calls to the NREL Developer GOES dataset [PR 279](https://github.com/NREL/H2Integrate/pull/279)
- Added solar resource models for Meteosat Prime Meridian and Himawari datasets available through NSRDB [PR 377](https://github.com/NREL/H2Integrate/pull/377)
- Added wind resource model for API calls to Open-Meteo archive [PR 332](https://github.com/NREL/H2Integrate/pull/332)
- Added PySAM battery model as a storage technology performance model [PR 211](https://github.com/NREL/H2Integrate/pull/211)
- Added framework to run heuristic load following dispatch for storage technologies [PR 211](https://github.com/NREL/H2Integrate/pull/211)
- Added storage auto-sizing performance model based on storage sizing calculations that existed in the coupled hydrogen storage performance and cost model [PR 324](https://github.com/NREL/H2Integrate/pull/324)
- Added grid converter performance and cost model which can be used to buy, sell, or buy and sell electricity to/from the grid [PR 340](https://github.com/NREL/H2Integrate/pull/340)
- Add feature for natural gas plant converter to take electricity demand as an input and added system capacity as an input [PR 334](https://github.com/NREL/H2Integrate/pull/334)
- Added standalone iron mine performance and cost model [PR 364](https://github.com/NREL/H2Integrate/pull/364)
- Add open-loop load demand controllers: `DemandOpenLoopConverterController` and `FlexibleDemandOpenLoopConverterController` [PR 328](https://github.com/NREL/H2Integrate/pull/328)

### Improvements and Refactoring

- Updated inputs for the `ATBBatteryCostModel` and `DemandOpenLoopController` so storage capacity and charge rate can be design variables [PR 290](https://github.com/NREL/H2Integrate/pull/290)
- Split out cost models from coupled hydrogen storage performance and cost model [PR 324](https://github.com/NREL/H2Integrate/pull/324)
- Created `ProFastBase`, a base class for the `ProFastLCO` and `ProFastNPV` models [PR 310](https://github.com/NREL/H2Integrate/pull/310)
- Added `ProFastNPV`, a finance model using ProFAST to calculate NPV of the commodity [PR 310](https://github.com/NREL/H2Integrate/pull/310)
- Moved `compute()` from `ProFastBase` to `ProFastLCO` [PR 310](https://github.com/NREL/H2Integrate/pull/310)
- Added `NumpyFinancialNPV`, a finance model that uses NumPy Financial npv to calculate the npv from the cash flows [PR 310](https://github.com/NREL/H2Integrate/pull/310)
- Added capability for user-defined finance models in the H2Integrate framework [PR 247](https://github.com/NREL/H2Integrate/pull/247)
- Enabled dynamic plant component sizing modes through the resizeable model class `ResizeablePerformanceModelBaseClass` [PR 198](https://github.com/NREL/H2Integrate/pull/198)
- Move geologic hydrogen models into specific geoh2 subsurface converters [PR 367](https://github.com/NREL/H2Integrate/pull/367)
- Updated generic combiner to accept any number of inflow streams instead of just 2 [PR 406](https://github.com/NREL/H2Integrate/pull/406)
- Allow multiple instances of the same electricity producing technologies using prefix-based matching [PR 397](https://github.com/NREL/H2Integrate/pull/397)
- Allow multiple instances of custom models in the same hybrid system [PR 397](https://github.com/NREL/H2Integrate/pull/397)
- Removed a large portion of the old GreenHEART code that was no longer being used [PR 384](https://github.com/NREL/H2Integrate/pull/384)
- Moved high-level tests to the appropriate directory and removed defunct tests [PR 412](https://github.com/NREL/H2Integrate/pull/412)

### Configuration and Optimization

- Added `tools/run_cases.py` with tools to run different `tech_config` cases from a spreadsheet, with new docs page to describe: docs/user_guide/how_to_run_several_cases_in_sequence.md [PR 242](https://github.com/NREL/H2Integrate/pull/242)
- Updated setting up recorder in `PoseOptimization` [PR 291](https://github.com/NREL/H2Integrate/pull/291)
- Added `create_om_reports` option to driver config to enable/disable OpenMDAO reports (N2 diagrams, etc.) [PR 308](https://github.com/NREL/H2Integrate/pull/308)
- Added design of experiment functionality [PR 314](https://github.com/NREL/H2Integrate/pull/314)
- Added "csvgen" as generator type for design of experiments [PR 314](https://github.com/NREL/H2Integrate/pull/314)
- Added `load_yaml()` function and flexibility to input a config dictionary to H2IntegrateModel rather than a filepath [PR 313](https://github.com/NREL/H2Integrate/pull/313)
- Removed `boundaries` from the necessary keys in `plant_config` validation [PR 361](https://github.com/NREL/H2Integrate/pull/361)
- Added ability for latitude and longitude to be design variables in design sweep [PR 336](https://github.com/NREL/H2Integrate/pull/336)

### Documentation, Examples, and Miscellaneous

- Added an optimized offshore methanol production case to examples/03_methanol/co2_hydrogenation_doc [PR 137](https://github.com/NREL/H2Integrate/pull/137)
- Improved the readability of the postprocessing printout [PR 361](https://github.com/NREL/H2Integrate/pull/361)
- Improved readability of the postprocessing printout by simplifying numerical representation, especially for years [PR 378](https://github.com/NREL/H2Integrate/pull/378)
- Fixed stoichiometry mistake in ammonia synloop [PR 363](https://github.com/NREL/H2Integrate/pull/363)

## 0.4.0 [October 1, 2025]

This release introduces significant new technology models and framework capabilities for system design and optimization, alongside major refactoring and user experience improvements.
Expand Down
Loading