NatLabRockies / NatLabRockies/H2Integrate

Bus component for multi-source and multi-sink systems

Open
#230 0 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.