NatLabRockies / NatLabRockies/H2Integrate
Bus component for multi-source and multi-sink systems
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 26
- Forks
- 44
- Avg merge
- 3d 22h
- Merged PRs (30d)
- 16
Description
Bus component for multi-source and multi-sink systems
Originally noted by @jmartin4nrel
Summary
Create a unified "bus" component that combines the functionality of both combiner and splitter, enabling support for >2 electricity sources and >2 electricity sinks in a single component. This would replace the current two-component approach for complex electrical systems.
Background
Currently, H2Integrate requires separate electricity_combiner (2 inputs into 1 output) and electricity_splitter (1 input into 2 outputs) components. For systems with multiple sources (wind, solar, nuclear) and multiple sinks (electrolysis, deferrable load, non-deferrable load), users must chain multiple components, creating complex interconnection configurations.
Proposed Solution
Implement an ElectricalBusComponent that acts as a central hub for electrical power distribution with configurable numbers of inputs and outputs.
Considerations:
- configurable priority order for output allocation
- equal split, priority-based, or custom allocation logic
- optional constraints on individual input/output limits?
Plant Configuration:
technology_interconnections: [
["wind", "electrical_bus", "electricity", "cable"],
["solar", "electrical_bus", "electricity", "cable"],
["nuclear", "electrical_bus", "electricity", "cable"],
["electrical_bus", "electrolysis", "electricity", "cable"],
["electrical_bus", "deferrable_load", "electricity", "cable"],
["electrical_bus", "non_deferrable_load", "electricity", "cable"],
]
Extension to Other Commodities
While this issue focuses on electricity, the bus concept could extend to other commodity types. In a simplistic way, this is doable with the changes accomplished by solving #229. However, gas/liquid commodity buses might have additional complexity, like:
- Storage/buffering requirements
- Pressure/temperature constraints
- Mixing compatibility issues
- Transport lag times
I suggest starting with electrical bus implementation, then evaluating commodity-specific requirements before extending the pattern.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading the existing electricity_combiner and electricity_splitter components and the technology_interconnections configuration shown in the issue. Define how electrical inputs and outputs should be allocated, including priority or equal-split behavior and any limits, before implementing the bus. Done means a single electrical bus can support more than two sources and sinks in the example plant configuration.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- backend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100