Nuclear with thermal connection with HTSE - #807
Merged
Conversation
…e a unified example
… how it uses electricity when heat is not available.
Nuchtse develop
…optimization and we need a single analysis test value in this case
update naming and units
Co-authored-by: John Jasa <john.jasa@nrel.gov>
Co-authored-by: John Jasa <john.jasa@nrel.gov>
Co-authored-by: John Jasa <john.jasa@nrel.gov>
Co-authored-by: John Jasa <john.jasa@nrel.gov>
jaredthomas68
requested review from
elenya-grant and
johnjasa
and removed request for
elenya-grant
July 30, 2026 16:05
johnjasa
approved these changes
Jul 31, 2026
johnjasa
left a comment
Collaborator
There was a problem hiding this comment.
Thanks for iterating here! I have small suggestions for clarity.
| cluster_rating_MW: float = field(validator=gt_zero) | ||
| uptime_hours_until_eol: int = field(default=80000, validator=gt_zero) | ||
| turndown_ratio: float = field(default=0.1, validator=gt_zero) | ||
| pressure_H2: float = field(default=1.0, validator=gt_zero) |
Collaborator
There was a problem hiding this comment.
Suggested change
| pressure_H2: float = field(default=1.0, validator=gt_zero) |
Comment on lines
+210
to
+212
| nuclear_reactor_upfront_cost: float = field(validator=gt_zero) | ||
| nuclear_reactor_fixed_om_cost: float = field(validator=gt_zero) | ||
| nuclear_reactor_variable_om_cost: float = field(validator=gt_zero) |
Collaborator
There was a problem hiding this comment.
Suggestion: remove nuclear_reactor_ from all these variables throughout
jaredthomas68
enabled auto-merge (squash)
July 31, 2026 16:27
jaredthomas68
disabled auto-merge
July 31, 2026 16:30
Co-authored-by: John Jasa <john.jasa@nrel.gov>
jaredthomas68
requested review from
elenya-grant
and removed request for
elenya-grant
July 31, 2026 16:32
jaredthomas68
enabled auto-merge (squash)
July 31, 2026 16:33
johnjasa
approved these changes
Jul 31, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Nuclear with thermal connection with HTSE
This pull request adds a nuclear model capable of thermal integration and high temperature steam electrolysis. The models are coupled, but can be used individually and coupled with other components. This PR replaces #761.
Section 1: Type of Contribution
Section 2: Draft PR Checklist
TODO:
Type of Reviewer Feedback Requested (on Draft PR)
Structural feedback:
Implementation feedback:
Other feedback:
Section 3: General PR Checklist
docs/files are up-to-date, or added when necessaryCHANGELOG.md"A complete thought. [PR XYZ]((https://github.com/NatLabRockies/H2Integrate/pull/XYZ)", where
XYZshould be replaced with the actual number.Section 4: Related Issues
Section 5: Impacted Areas of the Software
Section 5.1: New Files
examples/36_nuclear_reactor_htse/driver_config.yamldriver.optimization/design_variables: Adds optimization inputs for the thermal nuclear + HTSE example so reactor dispatch and HTSE sizing can be varied.examples/36_nuclear_reactor_htse/nuclear_reactor_thermal_htse.yamlexamples/36_nuclear_reactor_htse/plant_config.yamltechnology_interconnections/finance_parameters: Adds the plant wiring and finance subgroup definitions for coupled nuclear electricity, process heat, HTSE hydrogen production, and grid sales.examples/36_nuclear_reactor_htse/run_nuclear_reactor_thermal.pyexamples/36_nuclear_reactor_htse/tech_config.yamltechnologies: Adds the thermal nuclear reactor, HTSE, feedstock, demand, and grid component definitions needed to run the integrated example.h2integrate/converters/hydrogen/htse_electrolyzer.pyHTSEPerformanceModel: Adds a simplified HTSE performance model that converts available heat and electricity into hydrogen production, water use, efficiency, and replacement outputs.HTSECostModel: Adds a size-based HTSE cost model that computes CapEx and fixed OpEx from installed electrolyzer capacity.h2integrate/converters/hydrogen/test/test_htse_electrolyzer.pyh2integrate/converters/nuclear/nuclear_plant_thermal.pySimpleThermalNuclearReactorPerformanceModel: Adds a thermal nuclear reactor model that dispatches between electricity generation and process heat delivery.SimpleThermalNuclearReactorCostModel: Adds a reactor cost model that computes capital, fixed operating, and variable operating costs.h2integrate/converters/nuclear/test/test_nuclear_plant_thermal.pySection 5.2: Modified Files
examples/test/test_all_examples.pytest_nuclear_reactor_htse_example: Adds an integration test for the new thermal nuclear + HTSE example to validate annual electricity, hydrogen output, grid exports, and thermal-balance behavior.h2integrate/converters/hydrogen/__init__.pyHTSEPerformanceModelandHTSECostModelto the hydrogen converter package exports.h2integrate/converters/nuclear/__init__.pySimpleThermalNuclearReactorPerformanceModelandSimpleThermalNuclearReactorCostModelto the nuclear converter package exports.h2integrate/core/supported_models.pysupported_models: Registers the new HTSE and thermal nuclear model classes so they can be instantiated from YAML configuration.h2integrate/transporters/pipe.pyPipePerformanceModel.setup: Updates water pipe units fromgalUStogalUS/hso water transport matches the HTSE feedstock rate units.Section 6: Additional Supporting Information
Section 7: Test Results, if applicable
Section 8 (Optional): New Model Checklist
docs/developer_guide/coding_guidelines.mdattrsclass to define theConfigto load in attributes for the modelBaseConfigorCostModelBaseConfiginitialize()method,setup()method,compute()methodCostModelBaseClass__init__.pyfile to ensure it is properly imported and used insupported_models.pysupported_models.pycreate_financial_modelinh2integrate_model.pytest_all_examples.pydocs/user_guide/model_overview.mddocs/section<model_name>.mdis added to the_toc.ymlgenerate_class_hierarchy.pyto update the class hierarchy diagram indocs/developer_guide/class_structure.md