Skip to content

Update Naming Convention in Open-Loop Converter Control Strategies#631

Draft
elenya-grant wants to merge 3 commits intoNatLabRockies:developfrom
elenya-grant:dispatch/converter_ol_sync
Draft

Update Naming Convention in Open-Loop Converter Control Strategies#631
elenya-grant wants to merge 3 commits intoNatLabRockies:developfrom
elenya-grant:dispatch/converter_ol_sync

Conversation

@elenya-grant
Copy link
Copy Markdown
Collaborator

@elenya-grant elenya-grant commented Mar 26, 2026

Update Naming Convention in Open-Loop Converter Control Strategies

Update output naming convention in open-loop converter control strategies to align with the naming convention of the storage performance models.

  • f"{commodity}_unmet_demand" -> f"unmet_{commodity}_demand_out"
  • f"{commodity}_unused_commodity" -> f"unused_{commodity}_out"

Removed output f"total_{commodity}_unmet_demand"

Questions for reviewers are outlined in Section 2. This is ready for a draft review.

Section 1: Type of Contribution

  • Feature Enhancement
    • Framework
    • New Model
    • Updated Model
    • Tools/Utilities
    • Other (please describe):
  • Bug Fix
  • Documentation Update
  • CI Changes
  • Other (please describe):

Section 2: Draft PR Checklist

  • Open draft PR
  • Describe the feature that will be added
  • Fill out TODO list steps
  • Describe requested feedback from reviewers on draft PR
  • Complete Section 7: New Model Checklist (if applicable)

TODO:

  • Depends on reviewer answers to questions
  • Remove commented out code

Type of Reviewer Feedback Requested (on Draft PR)

Structural feedback:

  • Would it make sense to add the outputs of the PerformanceModelBaseclass to these models? These models are more like ways to represent a generic end-use (or reference signal) rather than actual control strategies. So-if they represent an end-use and we may want to calculate the LCO of the end-use demand, then we'd need these to calculate/output rated commodity capacity and capacity factor.
  • What should commodity_set_point mean with respect to converter controllers? Right now, it's the total commodity out to meet demand (equivalent to commodity_out from storage performance models)

Implementation feedback:

Other feedback:

Section 3: General PR Checklist

  • PR description thoroughly describes the new feature, bug fix, etc.
  • [-] Added tests for new functionality or bug fixes
  • Tests pass (If not, and this is expected, please elaborate in the Section 6: Test Results)
  • Documentation
    • Docstrings are up-to-date
    • Related docs/ files are up-to-date, or added when necessary
    • Documentation has been rebuilt successfully
    • Examples have been updated (if applicable)
  • CHANGELOG.md
    • At least one complete sentence has been provided to describe the changes made in this PR
    • After the above, a hyperlink has been provided to the PR using the following format:
      "A complete thought. [PR XYZ]((https://github.com/NatLabRockies/H2Integrate/pull/XYZ)", where
      XYZ should be replaced with the actual number.

Section 3: Related Issues

Section 4: Impacted Areas of the Software

Section 4.1: New Files

N/A

Section 4.2: Modified Files

  • h2integrate/control/control_strategies/converters/demand_openloop_converter_controller.py
    • DemandOpenLoopConverterController: renamed outputs
  • h2integrate/control/control_strategies/converters/flexible_demand_openloop_controller.py
    • FlexibleDemandOpenLoopConverterController: renamed outputs
  • h2integrate/control/control_strategies/converters/openloop_controller_base.py
    • ConverterOpenLoopControlBase: removed total_commodity_unmet_demand from output, updated output naming as outlined in Section 1.

Section 5: Additional Supporting Information

Section 6: Test Results, if applicable

Section 7 (Optional): New Model Checklist

  • Model Structure:
    • Follows established naming conventions outlined in docs/developer_guide/coding_guidelines.md
    • Used attrs class to define the Config to load in attributes for the model
      • If applicable: inherit from BaseConfig or CostModelBaseConfig
    • Added: initialize() method, setup() method, compute() method
      • If applicable: inherit from CostModelBaseClass
  • Integration: Model has been properly integrated into H2Integrate
    • Added to supported_models.py
    • If a new commodity_type is added, update create_financial_model in h2integrate_model.py
  • Tests: Unit tests have been added for the new model
    • Pytest-style unit tests
    • Unit tests are in a "test" folder within the folder a new model was added to
    • If applicable add integration tests
  • Example: If applicable, a working example demonstrating the new model has been created
    • Input file comments
    • Run file comments
    • Example has been tested and runs successfully in test_all_examples.py
  • Documentation:
    • Write docstrings using the Google style
    • Model added to the main models list in docs/user_guide/model_overview.md
      • Model documentation page added to the appropriate docs/ section
      • <model_name>.md is added to the _toc.yml

@elenya-grant elenya-grant added ready for review This PR is ready for input from folks dispatch related to dispatch and control labels Mar 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dispatch related to dispatch and control ready for review This PR is ready for input from folks

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant