Repository navigation
Conversation
Paper mill and synthetic aviation fuels
Headroom/reserve rate connections
… ProFAST for NPV calculations Co-authored-by: vijay092 <59975769+vijay092@users.noreply.github.com>
Enable `from_dict` to Handle an Object of the Correct Type
Rename resource connections
LCO/NPV fix
Update Pre-Commit and GH Actions Versions
Added pysam options input for battery
Nonannual resource models
Register models with a `@register` decorator instead of a hardcoded dictionary
Removed `system_model` attribute from wind and solar PySAM models
Updating stale and outdated docs references throughout
bumping for v0.10.0 release
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.
0.10.0 [October 12, 2026]
New Features
PySAMWavePerformanceModelandWaveResourceto wrap PySAM MhkWave as an H2I performance model, replacing the HOPP wave module in example 09. PR 825NRRIIronMinePerformanceModelandNRRIIronMineCostModel. PR 840rexpackage PR 854WTKHRRRMETDatasetH5to access data from the WTK HRRR MET datasetNSRDBDatasetH5to access data from the NSRDB datasetResourceBaseH5ConfigandResourceBaseH5Modelare base configuration classes for these resource datasetsLinearMassTransportCostModel, which has CapEx and OpEx costs scale with the amount of commodity being transported PR #892events and durations to account for system and component-level availability. The
PerformanceReliabilityclass is made available for integration with existing performance modelsby applying the
availabilityto either the demand or production of energy, dependent on theperformance model's design. PR 833
Updates
Modeling
PySAMWindPlantPerformanceModelto accept more than 300 turbines by overriding the default maximum in the PySAM model. PR 831percent_load_missedandcurtailment_percentoutputs toDemandComponentBase, allows zero capacity in wind/solar/battery performance models. PR 826GenericConverterCostModelfor increased cost model flexibility for additional costs that don't scale based on capacity, energy throughput, or commodity throughput. PR 849PeakLoadManagementOptimizedStorageControllercan now be used as a storage tech's SLC sub-controller via a new opt-inconstrain_dispatch_to_set_pointconfig field, which caps dispatch at the provided demand signal without changing its existing peak-window behavior by default. Issue 749LinearDistanceCostModelPR 865electricity_headroomandelectricity_sell_headroom) to the grid performance model. PR #755dc_ac_ratio,tilt_angleandazimuth_angletoPYSAMSolarPlantPerformanceModel. PR #881PYSAMSolarPlantPerformanceModelandPYSAMWindPlantPerformanceModelto support lifetime outputs. PR #889PYSAMWavePlantPerformanceModelto support lifetime performance output and aligned the PySAM solar, wind, and wave setup paths to validate lifetime options against plant life. PR 895pysam_options. PR TBDcompute()method, and validate recalculated wind power curves. PR 909Infrastructure
_validate_technology_interconnectionstoH2IntegrateModelwith three topology checks ontechnology_interconnections; see method for details. Also extendedtech_control_classifierspopulation to always run (previously only populated when SLC was enabled), addedheattoPipePerformanceModelsupported transport items, and updated examples 33 and 36 to use length-4 connections. PR 832connection_namewhen naming transport models PR #842get_environment_variables()PR #834h2integrate.core.validatorswith built in attrs validators. PR 835populate_tech_yamlutility to automatically generatemodel_inputssections in technology configuration files by introspecting model classes and organizing parameters into appropriate sections. Simplifies building tech configs, especially for storage models with multiple parameter sections. PR 866resource_to_tech_connectionstosite_to_tech_connectionsso it reflects both site metadata and technology connections such as latitude, longitude, and resource data. PR 879_check_dispatch_connectionstoH2IntegrateModelto validatetech_to_dispatch_connectionsin the plant config againstdispatch_rule_set/control_strategydeclarations in the technology config, catching extraneous or missing dispatch connections at load time instead of deep inside the storage models. Also fixed a latent bug where dispatch rule connections were never wired due to an incorrect dictionary lookup, and removed unuseddispatch_rule_setentries from examples 09 and 11. PR 882BaseConfig.from_dictto receive an instance of the object it should be creating to enableattrsconverter routines to safely handle instances of existing configuration objects orconfiguration dictionaries for defining objects once. PR 869
H2IntegrateModelinto focused utility functions. PR #886PeakLoadManagementHeuristicOpenLoopStorageController, removed a deep copy of every YAML node in the config loader, reused a singleTimezoneFinderfor OpenMeteo resource data, and switched reverse geocoding to single-process mode. These changes do not change results.PYSAMWindPlantPerformanceModel(same 148 x 6 MW turbines), example 13 uses 44 GE 1.5 MW turbines (same 66 MW capacity), and example 26 uses 25 turbines instead of 100 for the FLORIS wind plant._baseclass.pysuffix, including renamingh2integrate/core/model_baseclasses.pytoh2integrate/core/model_baseclass.py; imports from the old module paths must be updated. PR 900supported_modelsdictionary with a@registerclass decorator. The registry finds decorated classes by scanning the package source and still imports each model module only when that model is used.no_cost_modelsandno_replacement_schedule_modelsare now set with the decorator'sno_costandno_replacement_schedulearguments. PR 902optiwindnet<0.3.1in theardextra becauseoptiwindnet0.3.1 is incompatible withard-nrel0.1.0b5. PR 902Fixes
check_inputsand updated testing ofcheck_inputsto actually test the error messages PR #846pytest.raiseswere indented inside the context manager block and never ran, and corrected the now-active expected error strings. PR #846Cconverted todegC, etc) and refactored inheritance of baseclasses for existing resource models PR 858