Conversation
* Remove old iron models (#601) * removed temporary iron and steel models * supported models * update example 28 with updated models * remove outdated files * consolidate iron examples * fix all the stuff I broke * update docs and changelog * update example name and add model names to docs * update changelog --------- Co-authored-by: elenya-grant <116225007+elenya-grant@users.noreply.github.com> * update SMR energy conversion ratio and tests (#606) * update SMR energy conversion ratio and tests * update changelog * docs * minor updates to inline comments * update usage based on hydrogen production --------- Co-authored-by: Rob Hammond <13874373+RHammond2@users.noreply.github.com> Co-authored-by: elenya-grant <116225007+elenya-grant@users.noreply.github.com> Co-authored-by: John Jasa <john.jasa@nrel.gov> Co-authored-by: genevievestarke <103534902+genevievestarke@users.noreply.github.com> Co-authored-by: Jared Thomas <jaredthomas68@gmail.com> Co-authored-by: bayc <christopher.j.bay@gmail.com> Co-authored-by: John Jasa <johnjasa11@gmail.com> Co-authored-by: Jared Thomas <jaredthomas68@users.noreply.github.com> Co-authored-by: Jonathan Martin <94018654+jmartin4u@users.noreply.github.com> Co-authored-by: jmartin4 <jonathan.martin@nrel.gov> Co-authored-by: Jonathan Martin <94018654+jmartin4nrel@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Chris Bay <12664940+bayc@users.noreply.github.com> * Break out Pyomo controller simulation code (#587) * Breakout simulation code * Remove duplicate code * Fix testing * Update doc strings and docs * added docstring for heuristic controller config * fixed issue that I made with the HeuristicLoadFollowingControllerConfig * Update docs/control/pyomo_controllers.md Co-authored-by: Jared Thomas <jaredthomas68@users.noreply.github.com> * Make initialize_parameters() functions the same for both controllers * Apply suggestion from @jaredthomas68 Co-authored-by: Jared Thomas <jaredthomas68@users.noreply.github.com> * Fix doc string format * Update h2integrate/control/control_strategies/heuristic_pyomo_controller.py Co-authored-by: Jared Thomas <jaredthomas68@users.noreply.github.com> * Update h2integrate/control/control_strategies/heuristic_pyomo_controller.py Co-authored-by: Jared Thomas <jaredthomas68@users.noreply.github.com> * Fix ruff formatting --------- Co-authored-by: John Jasa <johnjasa11@gmail.com> Co-authored-by: elenya-grant <116225007+elenya-grant@users.noreply.github.com> Co-authored-by: Jared Thomas <jaredthomas68@users.noreply.github.com> Co-authored-by: kbrunik <102193481+kbrunik@users.noreply.github.com> * Bugfix in Charge/Discharge efficiency handling in `StoragePerformanceModel` (#600) * fixed how charge and discharge rates are applied in generic_storage_pyo model --------- Co-authored-by: John Jasa <johnjasa11@gmail.com> * Tests for non-one battery efficiencies (#610) * add unit tests for openloop storage controller with non-one efficiencies * rearrange usage of pytest.approx so the target comes second and uses approx * update changelog: * Sync Storage Autosizing Model and Pass-Through controller to Align with Pyomo Controllers (#608) * updated the storage autosizing and pass through controller for new control and performance model structure * added subtest for integration with pass through controller * updated to use commodity_set_point instead of input-demand * made set_demand_as_avg_commodity_in a required input parameter * moved passthrough controller to storage subfolder * Added minor changes that got missed in PR 600 --------- Co-authored-by: kbrunik <102193481+kbrunik@users.noreply.github.com> * Sync Demand Open Loop Controller and Simple Generic Storage to Align with Pyomo Controllers (#612) * updated simple_generic_storage to simulate storage performance * updated demand openloop controller so discharge setpoint is correct * PySAM Marine Models (#607) * tidal resource model and performance model * add performance values for testing * test power curve scaling * marine cost model * tidal example * integration test * documentation * update docs * small changes * update for failing tests * fix equation rendering * fix segmentation fault * add test for using default pysam config * address reviewer feedback * fix wind pysam * attempt to modify file path handling for resource data * fix path stuff * Sync PySAM Battery and Generic Storage Pyomo Performance models with open-loop controllers (#613) * refactored pysam battery and storage performance models to be compatible with updated open-loop controllers * updated generic storage pyo to use pass through controller * renamed PassThroughOpenLoopController to SimpleStorageOpenLoopController * removed simple_generic_storage * renamed xx_charge_fraction to xx_soc_fraction --------- Co-authored-by: Genevieve Starke <genevieve.starke@nrel.gov> * minor error msg and doc corrections (#618) * CO2 Model Fixes (#617) * units and connecting variables * fix doc page * catch if annual_input_energy is 0 * remove base class * fix oae test * failing doc test * fix value call * final touchs * Bugfix: Update storage models so can use different control types per storage type (#615) * updated logic in pysam batery and generic storage to handle multiple storage types * added tests and bugfix in heuristic with setting efficiencies --------- Co-authored-by: John Jasa <johnjasa11@gmail.com> * Baseclass for Openloop Storage Control Strategies (#619) * added openloop control storage baseclass * Enable use of Pyomo Controllers in the Storage Autosizing Model (#621) * updated autosizing storage model to be compatible with pyomo controllers * renamed fixures in heuristic controller tests * aggregated heuristic controller tests into one file * added simple test for storage autosizing and heuristic * renamed fixtures in optimized controller tests * aggregated optimized control tests into one file * updated test for heuristic controller with autosizing * updated so simple storage autosizing can run with optimal pyomo control * Generic cost model for converters (#622) * added generic cost model * added tests and updated model * updated example 3 to use new converter model and added to supported models * updated docstrings and input descriptions * updated changelog * added to model overview * Clarified error message --------- Co-authored-by: John Jasa <johnjasa11@gmail.com> * Introducing multivariable commodity streams (#480) * Working out first steps of multivariable streams * Adding to multivariable streams work * expanding multivariable stream definition * Building out more of the gas combiner * Improving example for multivariable streams * Updating examples and merging * Apply suggestions from code review Co-authored-by: genevievestarke <103534902+genevievestarke@users.noreply.github.com> * Many updates based on PR feedback * Updated to mass fractions for multicommodity stream * renamed a few multicommodity variable names * Added helper functions for multivariable stream definitions * Updated names throughout for multivariable streams * Updated docs for multivariable streams * Added commodity stream tests * Addressing PR feedback * Updates based on PR feedback * Updates based on PR feedback --------- Co-authored-by: genevievestarke <103534902+genevievestarke@users.noreply.github.com> Co-authored-by: kbrunik <102193481+kbrunik@users.noreply.github.com> * Removed some shape_by_conn calls due to OM issues (#632) * Removed some shape_by_conn calls due to OM issues * Moved last calls of copy_shape * Fixing test_pipe fail --------- Co-authored-by: jmartin4 <jonathan.martin@nrel.gov> * Move xdsm call in H2IntegrateModel to its own method (#629) * move xdsm creation in H2IModel to a method so user has to call it if desired instead of having it be automatic * update changelog and docs and adjust create_xdsm logic to reflect that it is an optional call * update docs * update docs * update docs for visualization * change xdsm code cell to not execute on build * switch pdf for png * minor comments update in code example * remove xdsm call * Updated XDSM explanation link --------- Co-authored-by: John Jasa <johnjasa11@gmail.com> * Handling Leap Years in OpenMeteo Resource Data (#633) * updated openmeteo resource models to handle leap day * added resource files for leap year * added tests for leap year resource data * added integration w pvwatts test for leap year * Methodized leap day handling for base class for future resource handling --------- Co-authored-by: John Jasa <johnjasa11@gmail.com> * Baseclass for Storage Performance Models (#624) * added draft storage model baseclass * updated draft storage baseclass * added docstring to run_storage method * minor updates to comments in storage_model_baseclass * updated storage performance model to inherit baseclass * fixed storage performance model and storage baseclass * updated storage autosizing model * updated pysam battery to use baseclass and removed battery_baseclass * removed commented out code and simplified some docstrings * removed unnecessary docstrings * updated changelog * PR review: minor personal preferences * updated inline comment --------- Co-authored-by: John Jasa <johnjasa11@gmail.com> * Modified the calc tilt angle function for pysam solar (#646) * Oxygen output from PEM electrolyzer (#642) * added oxygen output from electrolyzer * updated example 14 to calc LCOO --------- Co-authored-by: John Jasa <johnjasa11@gmail.com> * Removed remaining naming dependencies (#654) * Removed remaining naming dependencies * Added to changelog and fixed CI issue * PR feedback * Fixed schema reqs * Update validators to allow zero values for costs for nuclear * Bugfix: Connecting resource to multiple techs (#655) * bugfix and added test for connecting one resource model to multiple techs * updated changelog * Updated test to call setup to trigger connection error --------- Co-authored-by: John Jasa <johnjasa11@gmail.com> * Update urls for NLR pages and github repositories (#658) * Update urls for NLR pages and github repositories * Updated from WISDM to NLRWindSystems org for some repos * Updated and removed more NREL references --------- Co-authored-by: John Jasa <johnjasa11@gmail.com> * Enhancement/windows ci (#590) * update installation instructions * add windows to CI and use conda consistently for Python across OS * merge develop and update changelog * adopt 'extras' flag for analysis extras to correctly use optional CI * update changelog * reorder ci setup * update order * attempt python version restructure * reinstate old python version * update URL * move runs-on back to below strategy * add os to optional matrix * reorganize the conditional for extras * convert lists to yaml bullet lists * skip gis-dependent tests when not installed * update changelog * use optional deps for all tests and add single runner for validating dependency-determined skipped tests * reformatting * reduce sql file access scope to functions to avoid windows errors * downgrade temp_dir to a function scope to avoid windows access errors * move temp examples fixture to be in main conftest, and enable repo-wide access * add module scoped example directory copy * apply module scoped example copy fixture to recorder tests and update * update changelog * update miniconda action usage * use the example copy fixture to isolate sql access in tests for potential windows resolution * reorganize changelog * fix typo in parameter name * update workflow * remove max-parallel * Revert "reorganize changelog" This reverts commit 679a38d. * add shell to all tests * don't allow coverage upload to fail ci * uncomment windows * add garbage collection to help with sql file handling * temporarily only run windows to reduce runner usage * add sleep to see if small timeout resolves issue * only run single test * remove garbage collection * fix typo * remove manual folder removal in favor of pytest cleanup * reinstate normal CI processes * add file removal to avoid OpenMDAO silent failure * temporarily only run single file on single windows runner * fix typo * fix typo * move manual recorder_path deletion * put ci back * handle None case * track model state using IntEnum * add xfail for windows because of OpenMDAO improper SQL file handling for Windows * add todo about removing manual removal * restore accidentally deleted file --------- Co-authored-by: John Jasa <johnjasa11@gmail.com> Co-authored-by: kbrunik <kbrunik@gmail.com> * updated CI workflow to disable windows (#668) * Check for extraneous or mis-categorized input parameters (#647) * added dictionary utilities * bugfix in setup() and added start of a test * added fix to calling check_inputs * fixed check_inputs * added another check in check_inputs * updated error messages in check_inputs and fixed example 1 * Added tests * added another subtest to test_check_inputs * fixed tech configs for examples * added some inline comments * check for requisite models and return if none * perform check from note and collapse checking logic * collapse user input regeneration to reduce number of loops * remove nested looping approach * move assert to proper context manager level * add indent level back * fix min combinations logic for passing tests * flatten improperly shared parameterization checking logic * update test to include multiple categories for improperly shared * fix typo * update docstring * added handling for combined cost and performance models * Added tech config fpath to the error messages for parameter checking * changlog * changed strict to True for six converter models * reverted strict setting for electrolyzer --------- Co-authored-by: John Jasa <johnjasa11@gmail.com> Co-authored-by: Hammond, Rob <13874373+RHammond2@users.noreply.github.com> Co-authored-by: kbrunik <kbrunik@gmail.com> * Update Naming Convention in Open-Loop Converter Control Strategies (#631) * renamed outputs in converter openloop controllers * updated tests and examples with updated naming * added performance model outputs to the converter control strategies * moved converter control strategies to demand folder * removed commodity_set_point as output * renamed demand component to be performance model instead of control strategy * moved output calculations to shared method in baseclass --------- Co-authored-by: kbrunik <102193481+kbrunik@users.noreply.github.com> Co-authored-by: John Jasa <johnjasa11@gmail.com> * modified state check for setup and run (#669) * Add interactive class hierarchy visualization to docs (#643) * Added class hierarchy diagram * merging * Updated the PR template * Changed class hierarchy embedding * moved class hierachy * Breaking the sphinx narrow rule * Combined colors based on feedback * Updated colors based on Gen's feedback * Shifted diagram location right * Reformatting embedding the class viz structure * Updated dev pyproject for viz tool --------- Co-authored-by: kbrunik <102193481+kbrunik@users.noreply.github.com> * Standardize Feedstock Outputs (follow-on to 463) (#523) * added capacity and price as inputs to feedstock component * updated feedstock mdoel to have standard outputs * added commodity_amount_units to FeedstockCostConfig * added standard output to feedstock cost model and connected commodity_out between performance and cost model * renamed config inputs for feedstocks * updated ex 23 which is untested and cleaned up feedstocks.py * minor docstring updates and added comments * added in notes of questions for reviewers to feedstocks.py * updated MMBtu units to MMBtu/h * fixed iron and steel tests * made changes to feedstock * fixed tests * removed unused comment * removed shape from price input * added integration test for feedstock integrated with finance model * updated feedstocks.md * changed based on reviewer feedback * added subtests to test_feedstocks * small changes to feedstock doc * docs --------- Co-authored-by: John Jasa <johnjasa11@gmail.com> Co-authored-by: kbrunik <kbrunik@gmail.com> Co-authored-by: kbrunik <102193481+kbrunik@users.noreply.github.com> * Framework to allow for variable dt (#653) * add draft for variable timestep framework * Changed error wording * switch bounds to tuple * minor test correction * include time-series generation functions * add tests for variable dt and update simulation length check for non-hourly dt * update docs * update changelog * update docs and doc strings * restore develop version of utilities.py * update dt bounds error * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Fixing tests * Adding time step bounds to all models * Adding time step bounds to the combiner/splitter/transporters * Updates for tests * Adding time step bounds to the custom paper mill performance model * Added time step bounds to paper mill cost --------- Co-authored-by: John Jasa <johnjasa11@gmail.com> Co-authored-by: kbrunik <102193481+kbrunik@users.noreply.github.com> Co-authored-by: John Jasa <john.jasa@nrel.gov> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * patch: Variable dt (#671) * update dt bounds error to require `_time_step_bounds` * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Add time step bounds to all tech models * Apply time step bounds check to feedstocks, transporters, and combiners --------- Co-authored-by: John Jasa <johnjasa11@gmail.com> Co-authored-by: kbrunik <102193481+kbrunik@users.noreply.github.com> Co-authored-by: John Jasa <john.jasa@nrel.gov> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> * Remove system-level outputs from storage and replace with demand component (follow-on to 631) (#666) * removed system level calcs from storage and updated most tests * updated examples with storage but dont use storage as a commodity_stream in finances * updated examples with storage defined as a commodity_stream for a finance subgroup * added time_step_bounds to demand components * added test for example 23 * added example for different demand between storage and demand component * added demo for the demand components using example 13 * made it so demand is only input to battery performance model if using feedback control * added standard_capacity_factor as output from storage * added doc page for storage performance models --------- Co-authored-by: kbrunik <102193481+kbrunik@users.noreply.github.com> Co-authored-by: John Jasa <johnjasa11@gmail.com> Co-authored-by: kbrunik <kbrunik@gmail.com> * Updating the readme and intro doc page ahead of v0.8 release (#677) * Updating the readme * Updated intro.md and changelog * Minor readme updates * Addressing Kaitlin's comments * Added more lingo to readme * Addressing PR suggestions --------- Co-authored-by: kbrunik <102193481+kbrunik@users.noreply.github.com> * Move storage controllers into `storage` folder in `control_strategies` (#678) * moved controllers to storage folder * renamed pyomo controllers to include storage in the control name * moved control strategy tests * moved tests to the right folder * moved pyomo baseclass and controller_opt_problem_state to top-level control_strategies * updated import statements * renamed pyomo baseclass file * updated import for pyomo storage baseclass * made storage chapter in docs * removed backslashes from eqn since they dont render properly on readthedocs * Making changes per Gen's suggestion (#681) * Bump version from 0.7.2 to 0.8.0 --------- Co-authored-by: kbrunik <102193481+kbrunik@users.noreply.github.com> Co-authored-by: elenya-grant <116225007+elenya-grant@users.noreply.github.com> Co-authored-by: Rob Hammond <13874373+RHammond2@users.noreply.github.com> Co-authored-by: genevievestarke <103534902+genevievestarke@users.noreply.github.com> Co-authored-by: Jared Thomas <jaredthomas68@gmail.com> Co-authored-by: bayc <christopher.j.bay@gmail.com> Co-authored-by: Jared Thomas <jaredthomas68@users.noreply.github.com> Co-authored-by: Jonathan Martin <94018654+jmartin4u@users.noreply.github.com> Co-authored-by: jmartin4 <jonathan.martin@nrel.gov> Co-authored-by: Jonathan Martin <94018654+jmartin4nrel@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Co-authored-by: Chris Bay <12664940+bayc@users.noreply.github.com> Co-authored-by: Genevieve Starke <genevieve.starke@nrel.gov> Co-authored-by: kbrunik <kbrunik@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Remove old iron models (Remove old iron models #601)
removed temporary iron and steel models
supported models
update example 28 with updated models
remove outdated files
consolidate iron examples
fix all the stuff I broke
update docs and changelog
update example name and add model names to docs
update changelog
update SMR energy conversion ratio and tests (update SMR energy conversion ratio and tests #606)
update SMR energy conversion ratio and tests
update changelog
docs
minor updates to inline comments
update usage based on hydrogen production
Break out Pyomo controller simulation code (Break out Pyomo controller simulation code #587)
Breakout simulation code
Remove duplicate code
Fix testing
Update doc strings and docs
added docstring for heuristic controller config
fixed issue that I made with the HeuristicLoadFollowingControllerConfig
Update docs/control/pyomo_controllers.md
Make initialize_parameters() functions the same for both controllers
Apply suggestion from @jaredthomas68
Fix doc string format
Update h2integrate/control/control_strategies/heuristic_pyomo_controller.py
Update h2integrate/control/control_strategies/heuristic_pyomo_controller.py
Fix ruff formatting
Bugfix in Charge/Discharge efficiency handling in
StoragePerformanceModel(Bugfix in Charge/Discharge efficiency handling inStoragePerformanceModel#600)fixed how charge and discharge rates are applied in generic_storage_pyo model
Tests for non-one battery efficiencies (Tests for non-one battery efficiencies #610)
add unit tests for openloop storage controller with non-one efficiencies
rearrange usage of pytest.approx so the target comes second and uses approx
update changelog:
Sync Storage Autosizing Model and Pass-Through controller to Align with Pyomo Controllers (Sync Storage Autosizing Model and Pass-Through controller to Align with Pyomo Controllers #608)
updated the storage autosizing and pass through controller for new control and performance model structure
added subtest for integration with pass through controller
updated to use commodity_set_point instead of input-demand
made set_demand_as_avg_commodity_in a required input parameter
moved passthrough controller to storage subfolder
Added minor changes that got missed in PR 600
Sync Demand Open Loop Controller and Simple Generic Storage to Align with Pyomo Controllers (Sync Demand Open Loop Controller and Simple Generic Storage to Align with Pyomo Controllers #612)
updated simple_generic_storage to simulate storage performance
updated demand openloop controller so discharge setpoint is correct
PySAM Marine Models (PySAM Marine Models #607)
tidal resource model and performance model
add performance values for testing
test power curve scaling
marine cost model
tidal example
integration test
documentation
update docs
small changes
update for failing tests
fix equation rendering
fix segmentation fault
add test for using default pysam config
address reviewer feedback
fix wind pysam
attempt to modify file path handling for resource data
fix path stuff
Sync PySAM Battery and Generic Storage Pyomo Performance models with open-loop controllers (Sync PySAM Battery and Generic Storage Pyomo Performance models with open-loop controllers #613)
refactored pysam battery and storage performance models to be compatible with updated open-loop controllers
updated generic storage pyo to use pass through controller
renamed PassThroughOpenLoopController to SimpleStorageOpenLoopController
removed simple_generic_storage
renamed xx_charge_fraction to xx_soc_fraction
minor error msg and doc corrections (Ard doc/msg adjustments #618)
CO2 Model Fixes (CO2 Model Fixes #617)
units and connecting variables
fix doc page
catch if annual_input_energy is 0
remove base class
fix oae test
failing doc test
fix value call
final touchs
Bugfix: Update storage models so can use different control types per storage type (Bugfix: Update storage models so can use different control types per storage type #615)
updated logic in pysam batery and generic storage to handle multiple storage types
added tests and bugfix in heuristic with setting efficiencies
Baseclass for Openloop Storage Control Strategies (Baseclass for Openloop Storage Control Strategies #619)
added openloop control storage baseclass
Enable use of Pyomo Controllers in the Storage Autosizing Model (Enable use of Pyomo Controllers in the Storage Autosizing Model #621)
updated autosizing storage model to be compatible with pyomo controllers
renamed fixures in heuristic controller tests
aggregated heuristic controller tests into one file
added simple test for storage autosizing and heuristic
renamed fixtures in optimized controller tests
aggregated optimized control tests into one file
updated test for heuristic controller with autosizing
updated so simple storage autosizing can run with optimal pyomo control
Generic cost model for converters (Generic cost model for converters #622)
added generic cost model
added tests and updated model
updated example 3 to use new converter model and added to supported models
updated docstrings and input descriptions
updated changelog
added to model overview
Clarified error message
Introducing multivariable commodity streams (Introducing multivariable commodity streams #480)
Working out first steps of multivariable streams
Adding to multivariable streams work
expanding multivariable stream definition
Building out more of the gas combiner
Improving example for multivariable streams
Updating examples and merging
Apply suggestions from code review
Many updates based on PR feedback
Updated to mass fractions for multicommodity stream
renamed a few multicommodity variable names
Added helper functions for multivariable stream definitions
Updated names throughout for multivariable streams
Updated docs for multivariable streams
Added commodity stream tests
Addressing PR feedback
Updates based on PR feedback
Updates based on PR feedback
Removed some shape_by_conn calls due to OM issues (Removed some shape_by_conn calls due to OM issues #632)
Removed some shape_by_conn calls due to OM issues
Moved last calls of copy_shape
Fixing test_pipe fail
Move xdsm call in H2IntegrateModel to its own method (Move xdsm call in H2IntegrateModel to its own method #629)
move xdsm creation in H2IModel to a method so user has to call it if desired instead of having it be automatic
update changelog and docs and adjust create_xdsm logic to reflect that it is an optional call
update docs
update docs
update docs for visualization
change xdsm code cell to not execute on build
switch pdf for png
minor comments update in code example
remove xdsm call
Updated XDSM explanation link
Handling Leap Years in OpenMeteo Resource Data (Handling Leap Years in OpenMeteo Resource Data #633)
updated openmeteo resource models to handle leap day
added resource files for leap year
added tests for leap year resource data
added integration w pvwatts test for leap year
Methodized leap day handling for base class for future resource handling
Baseclass for Storage Performance Models (Baseclass for Storage Performance Models #624)
added draft storage model baseclass
updated draft storage baseclass
added docstring to run_storage method
minor updates to comments in storage_model_baseclass
updated storage performance model to inherit baseclass
fixed storage performance model and storage baseclass
updated storage autosizing model
updated pysam battery to use baseclass and removed battery_baseclass
removed commented out code and simplified some docstrings
removed unnecessary docstrings
updated changelog
PR review: minor personal preferences
updated inline comment
Modified the calc tilt angle function for pysam solar (Modified the calc tilt angle function for pysam solar #646)
Oxygen output from PEM electrolyzer (Oxygen output from PEM electrolyzer #642)
added oxygen output from electrolyzer
updated example 14 to calc LCOO
Removed remaining naming dependencies (Removed remaining naming dependencies #654)
Removed remaining naming dependencies
Added to changelog and fixed CI issue
PR feedback
Fixed schema reqs
Update validators to allow zero values for costs for nuclear
Bugfix: Connecting resource to multiple techs (Bugfix: Connecting resource to multiple techs #655)
bugfix and added test for connecting one resource model to multiple techs
updated changelog
Updated test to call setup to trigger connection error
Update urls for NLR pages and github repositories (Update urls for NLR pages and github repositories #658)
Update urls for NLR pages and github repositories
Updated from WISDM to NLRWindSystems org for some repos
Updated and removed more NREL references
Enhancement/windows ci (Enhancement/windows ci #590)
update installation instructions
add windows to CI and use conda consistently for Python across OS
merge develop and update changelog
adopt 'extras' flag for analysis extras to correctly use optional CI
update changelog
reorder ci setup
update order
attempt python version restructure
reinstate old python version
update URL
move runs-on back to below strategy
add os to optional matrix
reorganize the conditional for extras
convert lists to yaml bullet lists
skip gis-dependent tests when not installed
update changelog
use optional deps for all tests and add single runner for validating dependency-determined skipped tests
reformatting
reduce sql file access scope to functions to avoid windows errors
downgrade temp_dir to a function scope to avoid windows access errors
move temp examples fixture to be in main conftest, and enable repo-wide access
add module scoped example directory copy
apply module scoped example copy fixture to recorder tests and update
update changelog
update miniconda action usage
use the example copy fixture to isolate sql access in tests for potential windows resolution
reorganize changelog
fix typo in parameter name
update workflow
remove max-parallel
Revert "reorganize changelog"
This reverts commit 679a38d.
add shell to all tests
don't allow coverage upload to fail ci
uncomment windows
add garbage collection to help with sql file handling
temporarily only run windows to reduce runner usage
add sleep to see if small timeout resolves issue
only run single test
remove garbage collection
fix typo
remove manual folder removal in favor of pytest cleanup
reinstate normal CI processes
add file removal to avoid OpenMDAO silent failure
temporarily only run single file on single windows runner
fix typo
fix typo
move manual recorder_path deletion
put ci back
handle None case
track model state using IntEnum
add xfail for windows because of OpenMDAO improper SQL file handling for Windows
add todo about removing manual removal
restore accidentally deleted file
updated CI workflow to disable windows (Temporarily disable Windows CI and break up unit/regression/integration tests for speed #668)
Check for extraneous or mis-categorized input parameters (Check for extraneous or mis-categorized input parameters #647)
added dictionary utilities
bugfix in setup() and added start of a test
added fix to calling check_inputs
fixed check_inputs
added another check in check_inputs
updated error messages in check_inputs and fixed example 1
Added tests
added another subtest to test_check_inputs
fixed tech configs for examples
added some inline comments
check for requisite models and return if none
perform check from note and collapse checking logic
collapse user input regeneration to reduce number of loops
remove nested looping approach
move assert to proper context manager level
add indent level back
fix min combinations logic for passing tests
flatten improperly shared parameterization checking logic
update test to include multiple categories for improperly shared
fix typo
update docstring
added handling for combined cost and performance models
Added tech config fpath to the error messages for parameter checking
changlog
changed strict to True for six converter models
reverted strict setting for electrolyzer
Update Naming Convention in Open-Loop Converter Control Strategies (Update Naming Convention in Open-Loop Converter Control Strategies #631)
renamed outputs in converter openloop controllers
updated tests and examples with updated naming
added performance model outputs to the converter control strategies
moved converter control strategies to demand folder
removed commodity_set_point as output
renamed demand component to be performance model instead of control strategy
moved output calculations to shared method in baseclass ---------
modified state check for setup and run (modified state check for setup and run #669)
Add interactive class hierarchy visualization to docs (Add interactive class hierarchy visualization to docs #643)
Added class hierarchy diagram
merging
Updated the PR template
Changed class hierarchy embedding
moved class hierachy
Breaking the sphinx narrow rule
Combined colors based on feedback
Updated colors based on Gen's feedback
Shifted diagram location right
Reformatting embedding the class viz structure
Updated dev pyproject for viz tool
Standardize Feedstock Outputs (follow-on to 463) (Standardize Feedstock Outputs (follow-on to 463) #523)
added capacity and price as inputs to feedstock component
updated feedstock mdoel to have standard outputs
added commodity_amount_units to FeedstockCostConfig
added standard output to feedstock cost model and connected commodity_out between performance and cost model
renamed config inputs for feedstocks
updated ex 23 which is untested and cleaned up feedstocks.py
minor docstring updates and added comments
added in notes of questions for reviewers to feedstocks.py
updated MMBtu units to MMBtu/h
fixed iron and steel tests
made changes to feedstock
fixed tests
removed unused comment
removed shape from price input
added integration test for feedstock integrated with finance model
updated feedstocks.md
changed based on reviewer feedback
added subtests to test_feedstocks
small changes to feedstock doc
docs
Framework to allow for variable dt (Framework to allow for variable dt #653)
add draft for variable timestep framework
Changed error wording
switch bounds to tuple
minor test correction
include time-series generation functions
add tests for variable dt and update simulation length check for non-hourly dt
update docs
update changelog
update docs and doc strings
restore develop version of utilities.py
update dt bounds error
Apply suggestions from code review
Fixing tests
Adding time step bounds to all models
Adding time step bounds to the combiner/splitter/transporters
Updates for tests
Adding time step bounds to the custom paper mill performance model
Added time step bounds to paper mill cost
patch: Variable dt (patch: Variable dt #671)
update dt bounds error to require
_time_step_boundsApply suggestions from code review
Add time step bounds to all tech models
Apply time step bounds check to feedstocks, transporters, and combiners ---------
Remove system-level outputs from storage and replace with demand component (follow-on to 631) (Remove system-level outputs from storage and replace with demand component (follow-on to 631) #666)
removed system level calcs from storage and updated most tests
updated examples with storage but dont use storage as a commodity_stream in finances
updated examples with storage defined as a commodity_stream for a finance subgroup
added time_step_bounds to demand components
added test for example 23
added example for different demand between storage and demand component
added demo for the demand components using example 13
made it so demand is only input to battery performance model if using feedback control
added standard_capacity_factor as output from storage
added doc page for storage performance models
Updating the readme and intro doc page ahead of v0.8 release (Updating the readme and intro doc page ahead of v0.8 release #677)
Updating the readme
Updated intro.md and changelog
Minor readme updates
Addressing Kaitlin's comments
Added more lingo to readme
Addressing PR suggestions
Move storage controllers into
storagefolder incontrol_strategies(Move storage controllers intostoragefolder incontrol_strategies#678)moved controllers to storage folder
renamed pyomo controllers to include storage in the control name
moved control strategy tests
moved tests to the right folder
moved pyomo baseclass and controller_opt_problem_state to top-level control_strategies
updated import statements
renamed pyomo baseclass file
updated import for pyomo storage baseclass
made storage chapter in docs
removed backslashes from eqn since they dont render properly on readthedocs
Making changes per Gen's suggestion (Making changes per Gen's suggestion #681)
Bump version from 0.7.2 to 0.8.0
Add meaningful title here
[Add description of feature here]
Section 1: Type of Contribution
Section 2: Draft PR Checklist
TODO:
Type of Reviewer Feedback Requested (on Draft PR)
Structural feedback:
Implementation feedback:
Other feedback:
Section 3: General PR Checklist
docs/files are up-to-date, or added when necessaryCHANGELOG.md"A complete thought. [PR XYZ]((https://github.com/NatLabRockies/H2Integrate/pull/XYZ)", where
XYZshould be replaced with the actual number.Section 4: Related Issues
Section 5: Impacted Areas of the Software
Section 5.1: New Files
path/to/file.extensionmethod1: What and why something was changed in one sentence or less.Section 5.2: Modified Files
path/to/file.extensionmethod1: What and why something was changed in one sentence or less.Section 6: Additional Supporting Information
Section 7: Test Results, if applicable
Section 8 (Optional): New Model Checklist
docs/developer_guide/coding_guidelines.mdattrsclass to define theConfigto load in attributes for the modelBaseConfigorCostModelBaseConfiginitialize()method,setup()method,compute()methodCostModelBaseClasssupported_models.pycreate_financial_modelinh2integrate_model.pytest_all_examples.pydocs/user_guide/model_overview.mddocs/section<model_name>.mdis added to the_toc.ymlgenerate_class_hierarchy.pyto update the class hierarchy diagram indocs/developer_guide/class_structure.md