NatLabRockies / NatLabRockies/H2Integrate

Update demand connection definition to work with pyomo framework

Open
#385 0 comments 0 reactions 2 assignees View on GitHub

@genevievestarke is already working on this.

Since Dec 2, 2025.

enhancement framework in progress
Dominant language
Python
Stars
26
Forks
44
Avg merge
3d 22h
Merged PRs (30d)
16

Description

Update demand connection definition to work with pyomo framework

This feature would include updates to how the definition of control connections is done, building off of the demand component added in #328. This would adopt the paradigm where all technology components take in demanded load and output excess commodity.

The changes would mostly be around the inputs/outputs for the technology models, generalizing those, as well as simplifying the control connection definition to not require specification of specific demand in and excess out values.

Proposed solution

The changes in the input file would move from:

technology_interconnections: [
  ["ng_feedstock", "natural_gas_plant", "natural_gas", "pipe"], 
  ["solar","electrical_load_demand",["electricity_out","electricity_in"]], 
  ["electrical_load_demand", "natural_gas_plant", ["electricity_unmet_load", "electricity_demand"]], 
]

to something like:

technology_interconnections: [
  ["ng_feedstock", "natural_gas_plant", "natural_gas", "pipe"], 
]

control_connections: [
  ["electrical_load_demand", "solar"],
  ["solar", "natural_gas_plant"],
]

This would make the control connections more explicit, and support the pyomo dispatch optimization framework that is being developed.

Alternatives considered

Additional context

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.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.