Skip to content

Open loop control base remove "storage" naming - #828

Merged
johnjasa merged 2 commits into
NatLabRockies:developfrom
jaredthomas68:openloopnaming
Aug 7, 2026
Merged

Open loop control base remove "storage" naming#828
johnjasa merged 2 commits into
NatLabRockies:developfrom
jaredthomas68:openloopnaming

Conversation

@jaredthomas68

@jaredthomas68 jaredthomas68 commented Aug 7, 2026

Copy link
Copy Markdown
Collaborator

Remove "storage" from open loop control base

This PR removed "storage" from the open-loop control base because it can be used for converter control (as in #773). Because the user only specifies child classes of the open loop control base, this is a non-breaking change.

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): renaming (non-breaking)

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:

  • Step 1
  • Step 2

Type of Reviewer Feedback Requested (on Draft PR)

Structural feedback:

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 4: Related Issues

#773 - see comment

Section 5: Impacted Areas of the Software

Section 5.1: New Files

  • None.
    • The open-loop base module in this PR is a rename/refactor of the prior storage-specific base

Section 5.2: Modified Files

  • openloop_control_base.py

    • OpenLoopControlBaseConfig / OpenLoopControlBase: Renamed the prior storage-focused base into a shared open-loop base so storage and converter controllers can use one common config, setup, and validation path.
  • demand_openloop_storage_controller.py

    • DemandOpenLoopStorageControllerConfig / DemandOpenLoopStorageController: Updated inheritance/imports to use the renamed shared open-loop base.
  • plm_openloop_storage_controller.py

    • PeakLoadManagementHeuristicOpenLoopStorageControllerConfig / PeakLoadManagementHeuristicOpenLoopStorageController: Updated inheritance/imports to the shared open-loop base.
  • simple_openloop_controller.py

    • SimpleStorageOpenLoopControllerConfig / SimpleStorageOpenLoopController: Updated inheritance/imports to the shared open-loop base.

Section 6: Additional Supporting Information

Section 7: Test Results, if applicable

Section 8 (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
    • Run generate_class_hierarchy.py to update the class hierarchy diagram in docs/developer_guide/class_structure.md

@jaredthomas68
jaredthomas68 changed the base branch from main to develop August 7, 2026 19:54
@jaredthomas68
jaredthomas68 requested a review from johnjasa August 7, 2026 19:55
@jaredthomas68 jaredthomas68 mentioned this pull request Aug 7, 2026
50 tasks

@johnjasa johnjasa left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for this! Very discrete and clear PR

@johnjasa
johnjasa enabled auto-merge (squash) August 7, 2026 19:58
@johnjasa
johnjasa merged commit d12fd94 into NatLabRockies:develop Aug 7, 2026
22 checks passed
@jaredthomas68
jaredthomas68 deleted the openloopnaming branch August 7, 2026 21:25
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants