NatLabRockies / NatLabRockies/H2Integrate

Remove unmet_demand output from non-demand components

Open
#873 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

Remove outputs that should be calculated using Demand components that are still being output from non-demand-tech technologies. PR #666 and #631 both worked to remove unmet_demand calculations from storage performance models and storage control models and instead to use the demand components (in the demand/ folder). This update has not been done for converter technologies.

Outputs of unmet_xxx_out that should be removed and should be replaced with a demand component (found by @cfrontin)

  • h2integrate/converters/natural_gas/natural_gas_cc_ct.py: has output of unmet_electricity_demand
  • h2integrate/converters/hydrogen/steam_methane_reformer.py: has output of unmet_hydrogen_demand
  • h2integrate/converters/grid/grid.py: has output of electricity_unmet_demand (note that this naming convention is different from the other converter techs listed)
  • h2integrate/converters/diesel/diesel_generator.py: has output of unmet_electricity_demand
  • h2integrate/converters/combustion_machines/turbine_simple_cycle.py: has output of unmet_{commodity}_demand

I suppose this is a little tricky since these technologies do have an input of the demand - and it'd be important to ensure that the demand input to the converter is the same demand profile given to the demand component. Perhaps this can be done with the input-to-input connections allowed by OpenMDAO (and is also relevant to Issue #872). Would love to hear folks thoughts on this before this issue is addressed!

Like - is there a reason why demand components shouldn't be used instead? What's the value-add of having these calculations in the technologies themselves instead of in a demand component? If they should be done in the technology - what type control classifier signals that this is an output that the technology should have (and what naming convention should we use)? Can we actually connect demand inputs so that the demand into a tech is the same demand as the demand comp (see the update/note in Issue #872)?

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 five converter files listed in the issue, then compare PRs #666 and #631 and the related discussion in Issue #872. Resolve whether demand components should replace the converter outputs and how their inputs should be connected before changing the models. Done means the agreed demand-component design is applied consistently across the listed technologies.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
backend
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.