v0.4.0
This release introduces significant new technology models and framework capabilities for system design and optimization, alongside major refactoring and user experience improvements.
New Features and Technology Models
- Added capability for user-defined technologies in the H2Integrate framework, allowing for custom models to be integrated into the system PR 128.
- Added a check for if a custom model's name clashes with an existing model name in the H2Integrate framework, raising an error if it does PR 128.
- Added geologic hydrogen (GeoH2) converter and examples PR 135.
- Added methanol production base class PR 137.
- Added steam methane reforming methanol production technology PR 137.
- Added CO2 hydrogenation methanol production technology PR 137.
- Added run of river hydro plant model, an example, and a documentation page PR 145.
- Added marine carbon capture base class PR 165.
- Added direct ocean capture technology PR 165.
- Added ammonia synloop, partially addressing Issue 169 PR 177.
- Added simple air separation unit (ASU) converter to model nitrogen production PR 179.
- Added rule-based storage system control capability (e.g., for battery, H2, CO2) PR 195.
- Added ocean alkalinity enhancement technology model PR 212.
- Added
natural_gas_performanceandnatural_gas_costmodels, allowing for natural gas power plant modeling PR 221. - Added wind resource model, API baseclasses, updated examples, and documentation PR 245.
- Added generic storage model, useful for battery, hydrogen, CO2, or other resource storage PR 248.
Improvements and Refactoring
- Removed the
to_organizedirectory PR 138. - Updated the naming scheme throughout the framework so resources produced always have
_outand resources consumed always have_inin their names PR 148. - Added ability to export ProFAST object to yaml file in
ProFastCompPR 207. - Refactored
ProFastCompand put in a new file (h2integrate/core/profast_financial.py). Added flexibility to allow users to specify different financial models PR 218. - Revamped the feedstocks technology group to allow for more precise modeling of feedstock supply chains, including capacity constraints and feedstock amount consumed PR 221.
- Made
pipeandcablesubstance-agnostic rather than hard-coded forhydrogenandelectricityPR 241. - Updated option to pass variables in technology interconnections to allow for different variable names from source to destination in the format
[source_tech, dest_tech, (source_tech_variable, dest_tech_variable)]PR 236. - Split out the electrolyzer cost models
basicandsingliticofor clarity PR 147. - Refactored the ammonia production model to use the new H2Integrate framework natively and removed the prior performance and cost functions PR 163.
- Added a new ammonia production model which has nitrogen, hydrogen, and electricity inputs and ammonia output, with performance and cost functions PR 163.
- Added WOMBAT electrolyzer O&M model PR 168.
- Changed electrolyzer capacity to be specified as
n_clustersrather thanratingin electrolyzer performance model config PR 194. - Changed electrolyzer capacity to be an input to the electrolyzer cost models rather than pulled from the cost model config PR 194.
- Added cost model base class and removed
plant_config['finance_parameters']['discount_years']['tech']. Cost year is now an optional input (tech_config[tech]['model_inputs']['cost_parameters']['cost_year']) and a discrete output PR 199. - Added two ATB-compatible solar-PV cost models PR 193.
- Update PySAM solar performance model to allow for more user-configurability PR 187.
- Added
"custom_electrolyzer_cost"model, an electrolyzer cost model that allows for user-defined CapEx and OpEx values PR 227. - Added variable O&M to
CostModelBaseClassand integrated into finance-related models PR 235. - Improved
h2integrate/transporters/power_combiner.pyand enabled usage of multiple electricity producing technologies PR 232.
Configuration and Optimization
- Updated finance parameter organization naming in
plant_configPR 218. - Changed finance handling to use
finance_subgroupsandfinance_groupsdefined in theplant_configrather than previousfinancial_groupsin thetech_configandtechnologies_to_include_in_metricsinplant_configPR 240. - Allow users to specify the technologies to include in the metrics calculations in the plant configuration file PR 240.
- Added option for user to provide ProFAST parameters in finance parameters PR 240.
- Changed
plant_configatb_yearentry tofinancial_analysis_start_yearPR 190. - Added
simulationsection underplant_config['plant']that has information such as number of timesteps in the simulation, time step interval in seconds, simulation start time, and time zone PR 219. - Moved
overwrite_fin_valuesto HOPP PR 164. - Enable optimization with HOPP technology ratings using
recreate_hopp_config_for_optimizationPR 164. - Made caching in the HOPP wrapper optional PR 164.
- Added more available constraints from the HOPP wrapper useful for design optimizations PR 164.
Documentation, Examples, and Miscellaneous
- Added an example of a user-defined technology in the
examplesdirectory, demonstrating an extremely simple paper mill model PR 128. - Added example for running with HOPP as the only technology in the H2Integrate system PR 164.
- Added an optimization example with a wind plant and electrolyzer to showcase how to define design variables, constraints, and objective functions PR 126.
- Expanded docs to include a new section on modifying config dicts after model instantiation PR 151.
- Added
*_out/to.gitignoreto avoid clutter PR 191. - Bump min Python version and removed unnecessary packages from
pyproject.tomlPR 150. - Bugfix: only run
pyxdsmwhen there are connections in the system PR 201.