Recent Releases of GenX

GenX - v0.4.5

GenX v0.4.5

Patch Release

Added

  • New resource type: Allam Cycle with Oxygen Storage (#772).
  • Caching of derating_factor to improve performance in model generation (#834).
  • Default option, "EnableJuMPDirectMode", to build the model more efficiently. Models running with, non-default, solvers Cbc and Clp will fail unless "EnableJuMPDirectMode" is set to false (#835).
  • Improve @expressions performance by pre-processing sets (#815).

Fixed

  • Fix call to get_retirement_stage by casting lifetime to integer (#840).
  • Modify storage_all.jl to prevent micro-charging/discharging close to capacity (#836).

Changed

  • Replace += and -= with add_to_expression! and add_similar_to_expression! in several modules to improve performance (#826).
  • Separate myopic logic and DDP logic in the GenX multi-stage code into distinct functions (#810).

Diff since v0.4.4

Merged pull requests: - Add Allam cycle module (#772) (@qluo0320github) - Separate the Fix Cost (#809) (@xuqingyu) - Detangle myopic logic from DDP logic (#810) (@NLaws) - Improve @expressions performance by pre processing sets (#815) (@joaquimg) - Improve performance using add_to_expression! (#826) (@joaquimg) - Update develop branch with hotfix 827 (#829) (@lbonaldo) - Cache derating_factor for performance (#834) (@joaquimg) - Replace JuMP.Model by JuMP.direct_model by default for performance (#835) (@joaquimg) - Modify storageall.jl to prevent micro-charging/discharging close to capacity (#836) (@sambuddhac) - Update endogenousretirement.jl (#840) (@gmantegna) - Rename NetExport to NetImport in power balance output (#853) (@lbonaldo) - Patch Release v0.4.5 (#856) (@lbonaldo)

Closed issues: - [Feature]: consider using directmodel (#833) - [Bug]: Error in definition of function getretirement_stage() (#843)

- Julia
Published by github-actions[bot] 8 months ago

GenX - v0.4.4

GenX v0.4.4

Diff since v0.4.3

Merged pull requests: - Fix path manipulation bug #827 (#828) (@cfe316)

Closed issues: - [Bug]: model errors out when TimeDomainReduction and OutputFullTimeSeries are both activated (#827)

- Julia
Published by github-actions[bot] about 1 year ago

GenX - v0.4.3

GenX v0.4.3

Patch Release

Changed

  • Changed the output filename for RSV from reg_dn.csv to reserves.csv (#814).
  • Created link in the thermal doc page to fuels page for piecewise linear cost curve documentation (#820).
  • Doc rendering fix in fuel.jl (#821).

Fixed

  • Fixed capacity reserve margin formulation for asymmetric storage when OperationalReserves is on. (#818)

Diff since v0.4.2

Merged pull requests: - Update write_rsv.jl with corrected filenames for RSV (#814) (@sambuddhac) - Fix #818 (#819) (@cfe316) - Update thermal.jl with links to fuels page for Piecewise linear cost (#820) (@sambuddhac) - Update fuel.jl (#821) (@sambuddhac) - Patch Release v0.4.3 (#822) (@lbonaldo)

Closed issues: - [Bug]: With OperationalReserves == 1, storage's CRM formulation is (partially) not used unless CapacityReserveMargin > 1 (#818)

- Julia
Published by github-actions[bot] about 1 year ago

GenX - v0.4.2

GenX v0.4.2

Added

  • Fusion plant optional features for thermal plants (#743).
  • Support for reusing the same Gurobi environment for multiple solves when number of concurrent Gurobi uses is limited (#783).
  • Additional long-duration storage constraints to bound state of charge in non-representative periods (#781).
  • New version of add_similar_to_expression! to support arrays of Numbers. (#798)
  • New settings flag LDSAdditionalConstraints to provide flexibility in activating new long-duration storage constraints (#781). Can be set in the GenX settings file (PR #801).

Fixed

  • Add constraint to ensure that electricity charged from the grid cannot exceed the charging capacity of the storage component in VRE_STOR (#770).
  • Update getproperty function for vectors of resources to ensure compatibility with Julia v1.11 (#785).
  • Fixed cost calculation in write_costs.jl when no resources are present in a zone. (#796)
  • Added eTotalCMaxCapSlack to calculation of cUnmetPolicyPenalty in write_costs.jl (#806).

Changed

  • The charge.csv and storage.csv files now include only resources with charge and storage variables (#760 and #763).
  • Deduplicated docs on optimized scheduled maintenance for thermal resources (#745).
  • Removed the CapRes_* columns from Network.csv since they were not being used (#784).

Diff since v0.4.1

Merged pull requests: - Fusion plant features for THERM (#743) (@cfe316) - Fix pr 760 (#763) (@lbonaldo) - Fix 745 one scheduled maintenance doc (#765) (@cfe316) - Charge constr vrestor (#770) (@qluo0320github) - Additional constraints to prevent violation of state of charge limits in non-representative periods (#781) (@federicoparolin) - support reuse of Gurobi environment for multistage models (#783) (@NLaws) - Fix getproperty for Vector{Resources} to align with new array interface (#785) (@lbonaldo) - 771 bugerror writing cost when we have resources that are not new build and not eligible for retirement (#796) (@lbonaldo) - 784 bug capres flag for transmission lines does not appear to do anything (#797) (@lbonaldo) - Add addsimilartoexpression! for arrays (#798) (@lbonaldo) - Settings flag for new LDS constraints activation (#801) (@lbonaldo) - Release v0.4.2 (#805) (@lbonaldo) - Add eTotalCMaxCapSlack to cUnmetPolicyPenalty in `writecosts.jl` (#806) (@lbonaldo)

Closed issues: - [Bug]: Clean up genx.jl exports (#739) - [Request]: Move, reorganize Scheduled maintenance docs (#745) - [Bug]: Example systems with electrolyzers not properly configured (#759) - [Documentation]: Typos in Modelnotation.md (#761) - [Bug]: type Thermal has no attribute cumminretiredcap_mw (#766) - [Bug]: Tutorials Power.csv Plot (#782) - [Bug]: CapRes flag for transmission lines does not appear to do anything (#784) - [Bug]: eTotalCGrid expression calculated but not added to objective function (#803)

- Julia
Published by github-actions[bot] about 1 year ago

GenX - v0.4.1

GenX v0.4.1

Added

  • Objective scaler to address ill-conditioning problem (#667)
  • Co-location of electrolyzers to VRE_STOR and enabled regional hydrogen production limits (#678)
  • Option to output results with time series reconstructed for the entire year (#700)
  • Default settings in multitage optimization (#703)
  • Option to write results after each iteration of a multistage run (Myopic) (#704)
  • Workflow that ensures that CHANGELOG.md and the version number are updated (#711)
  • Print GenX version at startup and export it to disk (#712)
  • Option to precompile run_genx_case! and cluster_inputs to speedup TTFX of GenX (#718)

Fixed

  • Formatting and images in tutorials 3, 5, 6, and 8 to address issue #697 (#698)
  • devbranch in the docs make.jl file to track the develop branch (#710)
  • TDR to load Fuels_data.csv w/wo optional None column (#720)
  • Include comprehensive list of all settings flags (that are currently in GenX) in the docs (#721)
  • Allow load_vre_stor_variability! to load only wind or solar resources as part of the VRE_STOR module (#728)
  • Text to doc pages for retrofits (#730)
  • Typo in HydrogenMinimumProduction setting key (#746)
  • Default value of Cap_Size attribute for thermal generators (#747)

Changed

  • Generalized the cHourlyMatching constraint in electrolyzer.jl and implemented it similarly to the other policies, making it easier for developers to add further contributions to the constraint (#725).

New Contributors

  • @derekwacks made their first contribution in https://github.com/GenXProject/GenX.jl/pull/696

Full Changelog: https://github.com/GenXProject/GenX.jl/compare/v0.4.0...v0.4.1

Diff since v0.4.0

Merged pull requests: - Add electrolyzer to current VRESTOR (#678) (@qluo0320github) - Typo fixes (#696) (@derekwacks) - Tutorial fixes (#698) (@mmutic) - Full time series reconstruction (#700) (@mmutic) - Configure multistage settings (#703) (@mmutic) - 658 save resource buildout every few optimizer iterations and allow optimizer warm start (#704) (@mmutic) - Allow dev docs to track develop branch (#710) (@lbonaldo) - Add workflow to check PR, update existing workflows (#711) (@lbonaldo) - Print version at startup and export it to disk (#712) (@lbonaldo) - Add option to precompile rungenxcase! function (#718) (@lbonaldo) - Make None colum in Fuelsdata optional (#720) (@lbonaldo) - Add all settings params to docs (#721) (@lbonaldo) - Add hourly matching constraint (#725) (@lbonaldo) - Allow load_vre_stor_variability! to load only wind or solar variabilities (#728) (@lbonaldo) - Update retrofits.jl documentation with additional text (#730) (@sambuddhac) - Fix typo in HydrogenMinimumProduction (#746) (@lbonaldo) - Fix default value of cap size api (#747) (@lbonaldo) - Release v0.4.1 (#752) (@lbonaldo) - Update develop branch with release branch (#753) (@lbonaldo)

Closed issues: - Energy Share Requirement Documentation Update (#468) - Adding precompile tools (#519) - Feature Request: Hourly outputs for price, emissions, power, storage dispatch (#538) - TDR requires None column in Fuelsdata (#552) - Provide computationally efficient approach to incorporate multi-level investment/O&M cost supply curve (#647) - no netRevenue.csv in the results (#653) - Save resource buildout every few optimizer iterations and allow optimizer warm start (#658) - [Feature]: Write DDP upper & lower bound each iteration when solving multi-stage with foresight (#686) - [Bug]: wrong contraint expression in reservescontingency!(EP::Model, inputs::Dict, setup::Dict) doc (#689) - TagBot trigger issue (#695) - GenX Documentation [Bug]: (#697) - [Bug]: Model Settings Parameters Documentation (#701) - [Feature]: Add GenX version number to output files (#708) - [Bug]: Minor typos in example_systems/README.mds (#715) - [Bug]: VRESTOR asks for both wind and solar variability data when there is only solar or wind components in VRESTOR. (#727) - [Bug]: Examples 2 and 6 have HydroEnergytoPowerRatio in Thermal.csv (#737) - [Bug]: Typos: HydrogenMimimumProduction (#740) - [Feature]: remove vZERO cruft (#741) - [Feature]: Inclusion of NSE (Non-Served Energy) Data in Example Cases (#744)

- Julia
Published by github-actions[bot] over 1 year ago

GenX - GenX.jl v0.4.0

Note: user guide "Porting a module from GenX v0.3.6 to GenX v0.4.0" available at this link.

What's Changed

This present version of GenX.jl through this new release introduces a few new modules and technologies. It also introduces a new version of the folder structure for case studies and a reformatted version of the input files for demand, reserves and resources. The documentation pages have also been updated to reflect these new changes as well as we have a much more logically consistent and user-friendly structure of organization of the documentation pages. We hope, this will cater better and more effectively, all kinds of users, whether developers/contributors, or energy modelers.

Added

  • Feature CO2 and fuel module (#536) Adds a fuel module which enables modeling of fuel usage via (1) a constant heat rate and (2) piecewise-linear approximation of heat rate curves. Adds a CO2 module that determines the CO2 emissions based on fuel consumption, CO2 capture fraction, and whether the feedstock is biomass.
  • Enable thermal power plants to burn multiple fuels (#586)
  • Feature electrolysis basic (#525) Adds hydrogen electrolyzer model which enables the addition of hydrogen electrolyzer demands along with optional clean supply constraints.
  • Add ability of storage to contribute to capacity reserves (#475)
  • Add Co-located VRE+Storage Module (#523)
  • Add output for dual of capacity constraint (#473)
  • Add PR template (#516)
  • Validation ensures that resource flags (THERM, HYDRO, LDS etc) are self-consistent (#513).
  • Maintenance formulation for thermal-commit plants (#556).
  • Add new tests for GenX: three-zone, multi-stage, electrolyzer, VRE+storage, piecewise_fuel+CO2, and TDR (#563 and #578).
  • Added a DC OPF method (#543) to calculate power flows across all lines
  • Added writeoperatingreservepricerevenue.jl to compute annual operating reserve and regulation revenue. and added the operating reserve and regulation revenue to net revenue (#611)
  • Add functions to compute conflicting constraints when model is infeasible if supported by the solver (#624).
  • New settings parameter, VirtualChargeDischargeCost to test script and VREStor example case. The PR 608 attempts to introduce this parameter as cost of virtual charging and discharging to avoid unusual results (#608).
  • New settings parameter, StorageVirtualDischarge, to turn storage virtual charging and discharging off if desired by the user (#638).
  • Add module to retrofit existing resources with new technologies (#600).
  • Formatted the code and added a format check to the CI pipeline (#673).
  • Add check when capital recovery period is zero and investment costs are non-zero in multi-stage GenX (#666)
  • Added condition number scaling added to objective function (#667)
  • Added versioned doc-pages for v0.3.6 and v0.4.0
  • Added a warning message in writecostsmultistage mentioning the approximate value of costs currently. (#680)

Fixed

  • Reserves have been renamed as OperationReserves in order to distinguish it from Capacity Reserve Margin (#641)
  • Generators_data.csv is not split into multiple different input files grouped together according to different resources (#612)
  • Assign correct investment cost per stage in objective function initialization for multi-stage runs (#530)
  • Fix name of FixedOMCostChargeperMWyr when reading from Generatorsdata in multistage code. (#533) Previously there was a typo in this in the multistage code that led to a silent bug, which affects outputs, for anyone running non-myopic multistage GenX with asymmetric storage.
  • Fix computation of cumulative minimum capacity retirements in multistage GenX (#514)
  • Fix access of eELOSSByZone expr before initialization (#541)
  • Correctly write unmet reserves (in reg_dn.csv) (#575)
  • Correctly scale total reserves column (in reg_dn.csv) (#594)
  • Add validation for Reg_Max and Rsv_Max columns in Generators_data.csv when MUST_RUN is set to 1 (#576)
  • Fix scaling of transmission losses in writetransmissionlosses.jl (#621)
  • Fix cost assignment to virtual storage charge/discharge - issue #604 (#608)
  • Fix modeling of hydro reservoir with long duration storage (#572).
  • Fix update of starting transmission capacity in multistage GenX
  • Fix write_status with UCommit = WriteShadowPrices = 1 (#645)
  • Fixed outputting capital recovery cost to 0 if the remaining number of years is 0 (#666)
  • Updated the docstring for the initializecostto_go function and adjusted the formula for the discount factor to reflect the code implementation (#672).
  • Fix writemultistage_cost.jl: add discount with OPEX multipliers to cUnmetPolicyPenalty (#679)
  • Fix DF calculation in DDP to make it more generic for variable length stages (#680)
  • Fix writepowerbalance.jl: add additional two columns ("VREStorageDischarge" and "VREStorageCharge") for VRE_STOR

Changed

  • Use addtoexpression! instead of the += and -= operators for memory performance improvements (#498).
  • Generally, 'demand' is now used where (electrical) 'load' was used previously (#397).
  • Load_data.csv is being renamed to Demand_data.csv. (#397)
  • Load_MW_z* columns in that file are renamed to Demand_MW_z*. (#397)
  • In Reserves.csv, Reg_Req_Percent_Load and Rsv_Req_Percent_Load are renamed to ..._Demand. (#397)
  • Load and LoadWeight keys in the time_domain_reduction_settings.yml file are renamed to Demand, DemandWeight. (#397)
  • The New_Build column in Generators_data.csv has been separated into two: New_Build and Can_Retire (#392). Values in each column are {0,1}.
  • Separate proprietary JuMP solvers from the GenX package. This allows users of Gurobi or CPLEX to use them without modifying the source code of the GenX package directly. This is a key step in publishing GenX as a proper Julia package. This does require change to the Run.jl files, to specify the solver. (#531)
  • In the examples, change RegMax and RsvMax of any MUST_RUN generators to 0. This mitigates but does not fully fix (#576).
  • Expressions of virtual charging and discharging costs in storageall.jl and vrestor.jl
  • The input file Generators_data.csv has been split into different files, one for each type of generator. The new files are: Thermal.csv, Hydro.csv, Vre.csv, Storage.csv, Flex_demand.csv, Must_run.csv, Electrolyzer.csv, and Vre_stor.csv. The examples have been updated, and new tests have been added to check the new data format (#612).
  • The settings parameter Reserves has been renamed to OperationalReserves, Reserves.csv to Operational_reserves.csv, and the .jl files contain the word reserves have been renamed to operational_reserves (#641).
  • New folder structure for a GenX case. The input files are now organized in the following folders: settings, policies, resources and system. The examples and tests have been updated to reflect this change.
  • New folder structure implemented for example_system. This folder now consists of nine separate folders each pertaining to a different case study example, ranging from the ISONE three zones, with singlestage, multistage, electrolyzers, all the way to the 9 bus IEEE case for running DC-OPF.
  • Pruned HiGHS solver settings to the necessary minimum (#668)
  • Changed deploydoc URL to GenX.jl (#662)

Deprecated

  • The above load keys, which generally refer to electrical demand, are being deprecated. Users should update their case files. For now this is done in a backward-compatible manner, and @info reminders are written to the log to prompt the user to update. "Load" now typically refers only to the transferrence of data from files to memory, except for a few places such as the common term "value of lost load" which refers to non-served demand (#397).
  • New_Build = -1 in Generators_data.csv: instead, use New_Build = 0 and Can_Retire = 0.
  • The matrix-style input of the grid for Network.csv is deprecated in favor a column-style input. Instead of columns z1, z2, ... with entries -1, 0, 1, use two columns: StartZone, EndZone (#591).

Full Changelog: https://github.com/GenXProject/GenX.jl/compare/v0.3.6...v0.4.0-rc

Full List of Changes from GenX v0.3.6 to prerelease v0.4.0-rc

  • Add output for dual of capacity constraint by @gmantegna in https://github.com/GenXProject/GenX.jl/pull/473
  • Remove Network.csv files from single-zone cases by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/505
  • Fix error on writecosts re: COMMITZONE #506 by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/508
  • Feature issue template by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/511
  • add PR template by @gmantegna in https://github.com/GenXProject/GenX.jl/pull/516
  • Deduplicate 'multi-stage' overview docs by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/515
  • Return path from write_outputs by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/509
  • Set example smallhydro plants MUSTRUN=1 by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/517
  • Validate resources in generators_data.csv by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/513
  • Remove coveralls and coverage by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/518
  • Fix typo in logs by @gmantegna in https://github.com/GenXProject/GenX.jl/pull/521
  • Update PULLREQUESTTEMPLATE.md by @gmantegna in https://github.com/GenXProject/GenX.jl/pull/520
  • Fix bug in reserves by @gmantegna in https://github.com/GenXProject/GenX.jl/pull/524
  • addtoexpression! by @pshlime in https://github.com/GenXProject/GenX.jl/pull/498
  • Add ability for storage to contribute to capacity reserves without needing to generate by @gmantegna in https://github.com/GenXProject/GenX.jl/pull/475
  • Disable Retrofits feature by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/527
  • Bug fix and simplify expression_manipulations.jl by @RuaridhMacd in https://github.com/GenXProject/GenX.jl/pull/528
  • Build GenX and run example case nightly by @gschivley in https://github.com/GenXProject/GenX.jl/pull/529
  • Bug Fix for correct tracking of current investment stage by SDDP by @filippopecci in https://github.com/GenXProject/GenX.jl/pull/530
  • Update CHANGELOG.md for SDDP bug fix by @gmantegna in https://github.com/GenXProject/GenX.jl/pull/532
  • Add Co-located VRE+Storage Module by @gmantegna in https://github.com/GenXProject/GenX.jl/pull/523
  • Fix FixedOMCostChargeper_MWyr to align with example cases by @gmantegna in https://github.com/GenXProject/GenX.jl/pull/533
  • Change "load" to "demand" by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/397
  • Feature: rename load to develop in examples by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/534
  • Feature electrolysis basic by @JesseJenkins in https://github.com/GenXProject/GenX.jl/pull/525
  • Remove doubled hydrogen settings in example by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/544
  • Change ModelParameterScale to const by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/551
  • Remove unneeded check in load fuels by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/545
  • Maintenance constraints (and for thermal generators) by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/556
  • Separate new build and retirement eligibility by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/392
  • Added computation of cumulative minimum capacity retirements in multistage by @filippopecci in https://github.com/GenXProject/GenX.jl/pull/542
  • Fix eELOSSByZone expr: access before initialization by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/568
  • Enable commercial solver use without modifying GenX source code by @gmantegna in https://github.com/GenXProject/GenX.jl/pull/531
  • Zero-out RsvMax and RegMax of MUST_RUN example gens by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/577
  • Remove MoM test by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/578
  • Separate reserves into creation and constraints by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/580
  • Refactor reserves by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/562
  • Allow ability to scale written timeseries outputs. by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/581
  • Function to compute locational marginal prices from output by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/582
  • Fix #567: apply min/max power for electrolyzers by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/583
  • Refactor write capactiy value by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/585
  • Fix DimensionMismatch error in refactored CRM by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/588
  • Output correct CRM values for THERM plants with maintenance by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/589
  • use maxlog=1 by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/592
  • Prefer columns-style network format to matrix format by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/591
  • Minor refactor of writeesrrevenue by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/593
  • Update changelog for #591 by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/595
  • Fix 559; report electrolyzer power per-zone by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/596
  • Correctly write and scale unmet reserve output by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/594
  • Use weightedprice variable in writereservemarginrevenue by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/597
  • Use scalefactor in writemin/maxcapacityrequirement.jl by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/599
  • Fix-485: Account for InvCostCharge and FixedOMCost_Charge for STOR=2, in NetRevenue.csv by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/602
  • Fixed issue #605 by @filippopecci in https://github.com/GenXProject/GenX.jl/pull/609
  • Crunching the mass-based and demand-rate based into one expression in… by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/610
  • Update Julia versions in ci.yml by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/615
  • Add validation MUST_RUN reserve contribution by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/619
  • Fix #584: derating factor for VRESTOR in writecapacity_value by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/618
  • Extend expression_manipulations.jl to some variables by @RuaridhMacd in https://github.com/GenXProject/GenX.jl/pull/579
  • Fix scaling of tx losses in tlosses.csv #616 by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/621
  • Fix cTotal on write_costs: #553 by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/620
  • Add default settings to tests and cleanup by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/625
  • Compute conflicting constraints for infeasible models by @filippopecci in https://github.com/GenXProject/GenX.jl/pull/624
  • Get rid of costs to virtual charging & discharging in storage_all.jl by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/608
  • Create writeoperatingreservepricerevenue.jl by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/611
  • Fix writenetrevenue when Reserves = 0 by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/626
  • Fixed #572 : allow long duration hydro reservoir by @filippopecci in https://github.com/GenXProject/GenX.jl/pull/629
  • Fix update of starting transmission capacity in multistage GenX by @filippopecci in https://github.com/GenXProject/GenX.jl/pull/634
  • New input files format - split of Generators_data.csv by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/612
  • Add a feature to enable thermal power plants to burn multiple fuels by @qluo0320github in https://github.com/GenXProject/GenX.jl/pull/586
  • Add the option to write only the annual data and/or specify output files to write by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/617
  • DC OPF by @abdelrahman-ayad in https://github.com/GenXProject/GenX.jl/pull/543
  • Add a setting to turn off storage virtual discharge by @gmantegna in https://github.com/GenXProject/GenX.jl/pull/638
  • Fix write_rsv.jl by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/642
  • Rename Reserves to OperationalReserves by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/641
  • Update case folder structure and examples by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/640
  • Fix scaling of multistage data when read from module file by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/643
  • Fix retcapcharge in load_resources by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/646
  • Fix write_status with UCommit=1 and Shadow Prices by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/645
  • Update interface vre_stor. Review load data. by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/648
  • Update CI to regularly test examples by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/644
  • Docs restructuring by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/637
  • Added zenodo author list by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/650
  • Gen x retrofit mit by @yifueve in https://github.com/GenXProject/GenX.jl/pull/600
  • Proxy PR against Compat Helper PR by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/652
  • Added docstring for endogenous retirement constraint by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/654
  • Updated CHANGELOG by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/656
  • Bring the tip of the develop branch in sync with Release/0.4.0 by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/661
  • PR for GenX v0.4.0 release from Release/0.4.0 by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/655
  • Changed deploydoc URL to GenX.jl by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/662
  • Sync up develop (Changed deploydoc URL to GenX.jl) by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/663
  • Update README.md by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/664
  • Update make.jl by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/669
  • Update README.md by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/670
  • Fix initializecostto_go docstring by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/672
  • HiGHS parameter pruning by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/668
  • Scaler by @Betristor in https://github.com/GenXProject/GenX.jl/pull/667
  • Format codebase and add format check to the CI by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/673
  • Update configuremultistage_inputs.jl by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/666
  • Discount cUnmetPolicyPenalty in writemultistage_cost.jl by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/679
  • Add FLEX power constraint by @qluo0320github in https://github.com/GenXProject/GenX.jl/pull/677
  • Fix the bug in writepowerbalance.jl related to VRE_STOR by @qluo0320github in https://github.com/GenXProject/GenX.jl/pull/682
  • Mga fix/0.4.0 by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/681
  • Remove fuel cols in vre and stor csvs in examples by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/684
  • Add can_retire validation for multi-stage optimization by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/683
  • Update docs with new Tutorials by @mmutic in https://github.com/GenXProject/GenX.jl/pull/685
  • Allow writing of multistage stats during optimization by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/687
  • Fix docstring in operational_reserves.jl by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/690
  • Update ESR docs (Issue #468) by @mmutic in https://github.com/GenXProject/GenX.jl/pull/692
  • Refined DF Calculation in DDP for more general Expression for addressing variable length stages by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/680
  • Merge Release/0.4.0 to main for version release by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/675

New Contributors

  • @pshlime made their first contribution in https://github.com/GenXProject/GenX.jl/pull/498
  • @qluo0320github made their first contribution in https://github.com/GenXProject/GenX.jl/pull/586
  • @abdelrahman-ayad made their first contribution in https://github.com/GenXProject/GenX.jl/pull/543
  • @yifueve made their first contribution in https://github.com/GenXProject/GenX.jl/pull/600
  • @Betristor made their first contribution in https://github.com/GenXProject/GenX.jl/pull/667
  • @mmutic made their first contribution in https://github.com/GenXProject/GenX.jl/pull/685

Full Changelog: https://github.com/GenXProject/GenX.jl/compare/v0.3.7...v0.4.0

Full List of Changes from GenX v0.3.7 to v0.4.0

  • Add output for dual of capacity constraint by @gmantegna in https://github.com/GenXProject/GenX.jl/pull/473
  • Remove Network.csv files from single-zone cases by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/505
  • Fix error on writecosts re: COMMITZONE #506 by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/508
  • Feature issue template by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/511
  • add PR template by @gmantegna in https://github.com/GenXProject/GenX.jl/pull/516
  • Deduplicate 'multi-stage' overview docs by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/515
  • Return path from write_outputs by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/509
  • Set example smallhydro plants MUSTRUN=1 by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/517
  • Validate resources in generators_data.csv by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/513
  • Remove coveralls and coverage by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/518
  • Fix typo in logs by @gmantegna in https://github.com/GenXProject/GenX.jl/pull/521
  • Update PULLREQUESTTEMPLATE.md by @gmantegna in https://github.com/GenXProject/GenX.jl/pull/520
  • Fix bug in reserves by @gmantegna in https://github.com/GenXProject/GenX.jl/pull/524
  • addtoexpression! by @pshlime in https://github.com/GenXProject/GenX.jl/pull/498
  • Add ability for storage to contribute to capacity reserves without needing to generate by @gmantegna in https://github.com/GenXProject/GenX.jl/pull/475
  • Disable Retrofits feature by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/527
  • Bug fix and simplify expression_manipulations.jl by @RuaridhMacd in https://github.com/GenXProject/GenX.jl/pull/528
  • Build GenX and run example case nightly by @gschivley in https://github.com/GenXProject/GenX.jl/pull/529
  • Bug Fix for correct tracking of current investment stage by SDDP by @filippopecci in https://github.com/GenXProject/GenX.jl/pull/530
  • Update CHANGELOG.md for SDDP bug fix by @gmantegna in https://github.com/GenXProject/GenX.jl/pull/532
  • Add Co-located VRE+Storage Module by @gmantegna in https://github.com/GenXProject/GenX.jl/pull/523
  • Fix FixedOMCostChargeper_MWyr to align with example cases by @gmantegna in https://github.com/GenXProject/GenX.jl/pull/533
  • Change "load" to "demand" by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/397
  • Feature: rename load to develop in examples by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/534
  • Feature electrolysis basic by @JesseJenkins in https://github.com/GenXProject/GenX.jl/pull/525
  • Remove doubled hydrogen settings in example by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/544
  • Change ModelParameterScale to const by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/551
  • Remove unneeded check in load fuels by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/545
  • Maintenance constraints (and for thermal generators) by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/556
  • Separate new build and retirement eligibility by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/392
  • Added computation of cumulative minimum capacity retirements in multistage by @filippopecci in https://github.com/GenXProject/GenX.jl/pull/542
  • Fix eELOSSByZone expr: access before initialization by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/568
  • Enable commercial solver use without modifying GenX source code by @gmantegna in https://github.com/GenXProject/GenX.jl/pull/531
  • Zero-out RsvMax and RegMax of MUST_RUN example gens by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/577
  • Remove MoM test by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/578
  • Separate reserves into creation and constraints by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/580
  • Refactor reserves by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/562
  • Allow ability to scale written timeseries outputs. by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/581
  • Function to compute locational marginal prices from output by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/582
  • Fix #567: apply min/max power for electrolyzers by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/583
  • Refactor write capactiy value by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/585
  • Fix DimensionMismatch error in refactored CRM by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/588
  • Output correct CRM values for THERM plants with maintenance by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/589
  • use maxlog=1 by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/592
  • Prefer columns-style network format to matrix format by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/591
  • Minor refactor of writeesrrevenue by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/593
  • Update changelog for #591 by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/595
  • Fix 559; report electrolyzer power per-zone by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/596
  • Correctly write and scale unmet reserve output by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/594
  • Use weightedprice variable in writereservemarginrevenue by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/597
  • Use scalefactor in writemin/maxcapacityrequirement.jl by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/599
  • Fix-485: Account for InvCostCharge and FixedOMCost_Charge for STOR=2, in NetRevenue.csv by @cfe316 in https://github.com/GenXProject/GenX.jl/pull/602
  • Fixed issue #605 by @filippopecci in https://github.com/GenXProject/GenX.jl/pull/609
  • Crunching the mass-based and demand-rate based into one expression in… by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/610
  • Update Julia versions in ci.yml by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/615
  • Add validation MUST_RUN reserve contribution by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/619
  • Fix #584: derating factor for VRESTOR in writecapacity_value by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/618
  • Extend expression_manipulations.jl to some variables by @RuaridhMacd in https://github.com/GenXProject/GenX.jl/pull/579
  • Fix scaling of tx losses in tlosses.csv #616 by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/621
  • Fix cTotal on write_costs: #553 by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/620
  • Add default settings to tests and cleanup by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/625
  • Compute conflicting constraints for infeasible models by @filippopecci in https://github.com/GenXProject/GenX.jl/pull/624
  • Get rid of costs to virtual charging & discharging in storage_all.jl by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/608
  • Create writeoperatingreservepricerevenue.jl by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/611
  • Fix writenetrevenue when Reserves = 0 by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/626
  • Fixed #572 : allow long duration hydro reservoir by @filippopecci in https://github.com/GenXProject/GenX.jl/pull/629
  • Fix update of starting transmission capacity in multistage GenX by @filippopecci in https://github.com/GenXProject/GenX.jl/pull/634
  • New input files format - split of Generators_data.csv by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/612
  • Add a feature to enable thermal power plants to burn multiple fuels by @qluo0320github in https://github.com/GenXProject/GenX.jl/pull/586
  • Add the option to write only the annual data and/or specify output files to write by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/617
  • DC OPF by @abdelrahman-ayad in https://github.com/GenXProject/GenX.jl/pull/543
  • Add a setting to turn off storage virtual discharge by @gmantegna in https://github.com/GenXProject/GenX.jl/pull/638
  • Fix write_rsv.jl by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/642
  • Rename Reserves to OperationalReserves by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/641
  • Update case folder structure and examples by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/640
  • Fix scaling of multistage data when read from module file by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/643
  • Fix retcapcharge in load_resources by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/646
  • Fix write_status with UCommit=1 and Shadow Prices by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/645
  • Update interface vre_stor. Review load data. by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/648
  • Update CI to regularly test examples by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/644
  • Docs restructuring by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/637
  • Added zenodo author list by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/650
  • Gen x retrofit mit by @yifueve in https://github.com/GenXProject/GenX.jl/pull/600
  • Proxy PR against Compat Helper PR by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/652
  • Added docstring for endogenous retirement constraint by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/654
  • Updated CHANGELOG by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/656
  • Bring the tip of the develop branch in sync with Release/0.4.0 by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/661
  • PR for GenX v0.4.0 release from Release/0.4.0 by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/655
  • Changed deploydoc URL to GenX.jl by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/662
  • Sync up develop (Changed deploydoc URL to GenX.jl) by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/663
  • Update README.md by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/664
  • Update make.jl by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/669
  • Update README.md by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/670
  • Fix initializecostto_go docstring by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/672
  • HiGHS parameter pruning by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/668
  • Scaler by @Betristor in https://github.com/GenXProject/GenX.jl/pull/667
  • Format codebase and add format check to the CI by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/673
  • Update configuremultistage_inputs.jl by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/666
  • Discount cUnmetPolicyPenalty in writemultistage_cost.jl by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/679
  • Add FLEX power constraint by @qluo0320github in https://github.com/GenXProject/GenX.jl/pull/677
  • Fix the bug in writepowerbalance.jl related to VRE_STOR by @qluo0320github in https://github.com/GenXProject/GenX.jl/pull/682
  • Mga fix/0.4.0 by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/681
  • Remove fuel cols in vre and stor csvs in examples by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/684
  • Add can_retire validation for multi-stage optimization by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/683
  • Update docs with new Tutorials by @mmutic in https://github.com/GenXProject/GenX.jl/pull/685
  • Allow writing of multistage stats during optimization by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/687
  • Fix docstring in operational_reserves.jl by @lbonaldo in https://github.com/GenXProject/GenX.jl/pull/690
  • Update ESR docs (Issue #468) by @mmutic in https://github.com/GenXProject/GenX.jl/pull/692
  • Refined DF Calculation in DDP for more general Expression for addressing variable length stages by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/680
  • Merge Release/0.4.0 to main for version release by @sambuddhac in https://github.com/GenXProject/GenX.jl/pull/675

New Contributors

  • @pshlime made their first contribution in https://github.com/GenXProject/GenX.jl/pull/498
  • @qluo0320github made their first contribution in https://github.com/GenXProject/GenX.jl/pull/586
  • @abdelrahman-ayad made their first contribution in https://github.com/GenXProject/GenX.jl/pull/543
  • @yifueve made their first contribution in https://github.com/GenXProject/GenX.jl/pull/600
  • @Betristor made their first contribution in https://github.com/GenXProject/GenX.jl/pull/667
  • @mmutic made their first contribution in https://github.com/GenXProject/GenX.jl/pull/685

Full Changelog: https://github.com/GenXProject/GenX.jl/compare/v0.3.7...v0.4.0

- Julia
Published by sambuddhac almost 2 years ago

GenX - GenX Patch Version v0.3.7

What's Changed

Fixed

  • writecosts: add check on COMMITZONE set (#507)
  • Access to eELOSSByZone expr before initialization (#569)
  • Scaling of transmission losses in tlosses.csv (#622)
  • Correct tracking of current investment stage by SDDP (#628)
  • Computation of cumulative minimum capacity retirements in multistage GenX (#631)
  • Modeling of hydro reservoir with long duration storage (#632)
  • Update of starting transmission capacity in multistage GenX (#633)

Full Changelog: https://github.com/GenXProject/GenX.jl/compare/v0.3.6...v0.3.7

- Julia
Published by lbonaldo almost 2 years ago

GenX - GenX v0.4.0-rc

What's Changed

Added

  • Feature CO2 and fuel module (#536) Adds a fuel module which enables modeling of fuel usage via (1) a constant heat rate and (2) piecewise-linear approximation of heat rate curves. Adds a CO2 module that determines the CO2 emissions based on fuel consumption, CO2 capture fraction, and whether the feedstock is biomass.
  • Enable thermal power plants to burn multiple fuels (#586)
  • Feature electrolysis basic (#525) Adds hydrogen electrolyzer model which enables the addition of hydrogen electrolyzer demands along with optional clean supply constraints.
  • Add ability of storage to contribute to capacity reserves (#475)
  • Add Co-located VRE+Storage Module (#523)
  • Add output for dual of capacity constraint (#473)
  • Add PR template (#516)
  • Validation ensures that resource flags (THERM, HYDRO, LDS etc) are self-consistent (#513).
  • Maintenance formulation for thermal-commit plants (#556).
  • Add new tests for GenX: three-zone, multi-stage, electrolyzer, VRE+storage, piecewise_fuel+CO2, and TDR (#563 and #578).
  • Added a DC OPF method (#543) to calculate power flows across all lines
  • Added writeoperatingreservepricerevenue.jl to compute annual operating reserve and regulation revenue. Added the operating reserve and regulation revenue to net revenue (PR # 611)
  • Add functions to compute conflicting constraints when model is infeasible if supported by the solver (#624).
  • New settings parameter, VirtualChargeDischargeCost to test script and VREStor example case. The PR 608 attempts to introduce this parameter as cost of virtual charging and discharging to avoid unusual results (#608).
  • New settings parameter, StorageVirtualDischarge, to turn storage virtual charging and discharging off if desired by the user (#638).
  • Add module to retrofit existing resources with new technologies (#600).

Fixed

  • Set MUSTRUN=1 for RealSystemExample/smallhydro plants (#517). Previously these plants had no resource flag set, and so they did not contribute to the power balance. As these plants are now useful, the objective in these cases is slightly lower.
  • Assign correct investment cost per stage in objective function initialization for multi-stage runs (#530)
  • Fix name of FixedOMCostChargeperMWyr when reading from Generatorsdata in multistage code. (#533) Previously there was a typo in this in the multistage code that led to a silent bug, which affects outputs, for anyone running non-myopic multistage GenX with asymmetric storage.
  • Fix computation of cumulative minimum capacity retirements in multistage GenX (#514)
  • Fix access of eELOSSByZone expr before initialization (#541)
  • Correctly write unmet reserves (in reg_dn.csv) (#575)
  • Correctly scale total reserves column (in reg_dn.csv) (#594)
  • Add validation for Reg_Max and Rsv_Max columns in Generators_data.csv when MUST_RUN is set to 1 (#576)
  • Fix scaling of transmission losses in writetransmissionlosses.jl (#621)
  • Fix cost assignment to virtual storage charge/discharge - issue #604 (#608)
  • Fix modeling of hydro reservoir with long duration storage (#572).
  • Fix update of starting transmission capacity in multistage GenX
  • Fix write_status with UCommit = WriteShadowPrices = 1 (#645)

Changed

  • Use addtoexpression! instead of the += and -= operators for memory performance improvements (#498).
  • Generally, 'demand' is now used where (electrical) 'load' was used previously (#397).
  • Load_data.csv is being renamed to Demand_data.csv.
  • Load_MW_z* columns in that file are renamed to Demand_MW_z*.
  • In Reserves.csv, Reg_Req_Percent_Load and Rsv_Req_Percent_Load are renamed to ..._Demand.
  • Load and LoadWeight keys in the time_domain_reduction_settings.yml file are renamed to Demand, DemandWeight.
  • The New_Build column in Generators_data.csv has been separated into two: New_Build and Can_Retire (#392). Values in each column are {0,1}.
  • Separate proprietary JuMP solvers from the GenX package. This allows users of Gurobi or CPLEX to use them without modifying the source code of the GenX package directly. This is a key step in publishing GenX as a proper Julia package. This does require change to the Run.jl files, to specify the solver. (#531)
  • In the examples, change RegMax and RsvMax of any MUST_RUN generators to 0. This mitigates but does not fully fix (#576).
  • Expressions of virtual charging and discharging costs in storageall.jl and vrestor.jl
  • The input file Generators_data.csv has been split into different files, one for each type of generator. The new files are: Thermal.csv, Hydro.csv, Vre.csv, Storage.csv, Flex_demand.csv, Must_run.csv, Electrolyzer.csv, and Vre_stor.csv. The examples have been updated, and new tests have been added to check the new data format (#612).
  • The settings parameter Reserves has been renamed to OperationalReserves, Reserves.csv to Operational_reserves.csv, and the .jl files contain the word reserves have been renamed to operational_reserves (#641).
  • New folder structure for a GenX case. The input files are now organized in the following folders: settings, policies, resources and system. The examples and tests have been updated to reflect this change.

Deprecated

  • The above load keys, which generally refer to electrical demand, are being deprecated. Users should update their case files. For now this is done in a backward-compatible manner, and @info reminders are written to the log to prompt the user to update. "Load" now typically refers only to the transferrence of data from files to memory, except for a few places such as the common term "value of lost load" which refers to non-served demand (#397).
  • New_Build = -1 in Generators_data.csv: instead, use New_Build = 0 and Can_Retire = 0.
  • The matrix-style input of the grid for Network.csv is deprecated in favor a column-style input. Instead of columns z1, z2, ... with entries -1, 0, 1, use two columns: StartZone, EndZone (#591).

Full Changelog: https://github.com/GenXProject/GenX.jl/compare/v0.3.6...v0.4.0-rc

- Julia
Published by sambuddhac almost 2 years ago

GenX - GenX Patch Version v0.3.6

What's Changed

Fixed

  • Order of slack policy constraint declarations (#464)
  • Sign error in the Maximum Capacity Requirement slack constraint term (#461)
  • Remove outdated HiGHS setting simplexdualisestrategy (#489)
  • Fix bug in LDES outputs (#472)
  • Updated README with new instructions for running GenX through Julia REPL terminal (#492)
  • Fix factor of 0.5 when writing out transmission losses. (#480)
  • Fix summation error when a set of hours is empty (in thermal_commit.jl).

Changed

  • Eliminate 'Axis contains one element' warning (seen when LDS is used) by combining two constraints. (#496)

Full Changelog: https://github.com/GenXProject/GenX/compare/v0.3.5...v0.3.6

- Julia
Published by sambuddhac over 2 years ago

GenX - GenX Patch Version v0.3.5

Release Notes for GenX v0.3.5 (Released on: 18th May, 2023)

Added

  • Added ability to apply run_timedomainreduction to multistage problems (#443).
  • Added a description of how to use time domain reduction (#426).
  • Validation: against trying to perform time domain reduction (clustering) on data which has already been clustered.
  • This changelog (#424).

Fixed

  • run_timedomainreduction did not support multi-stage problems (#441).
  • Not having a changelog (#423).

Changed

  • The columns Rep_Periods, Timesteps_per_Rep_Period, and Sub_Weights are now required in Load_data.csv for all cases (#426).

Removed

  • The settings key OperationsWrapping. Its functionality has now been folded into the TimeDomainReduction setting. Using the key now will print a gentle warning (#426).

Full Changelog: https://github.com/GenXProject/GenX/compare/v0.3.4...v0.3.5

- Julia
Published by sambuddhac almost 3 years ago

GenX - GenX Patch Version v0.3.4

[0.3.4] - 2023-04-28

Added

  • Validation of the time basis in load_data.csv (#413).
  • Arbitrary option keys can be passed to Solvers (#356).
  • Validation for OperationWrapping and TimeDomainReduction settings (#337).
  • Ability to use 'slack variables' to violate policy constraints---at a cost (#328).
  • Documented minimum up & down-time constraints (#324).
  • Validation preventing two columns of input data with the same name (#309).
  • Fuel type None is no longer need to be listed as a column in fuels_data.csv, e.g. for solar panels (#303).
  • Non-varying generators (e.g. thermal generators) no longer need to be listed in generators_variability.csv (#303).
  • Ability to load the transmission network representation from lists rather than a matrix (#292).
  • Maximum Capacity Requirement policy constraint.
  • New run_genx_case! function for use in scripts.
  • New run_timedomainreduction! function for pre-clustering a case.
  • Improved documentation.

Fixed

  • Corrected the interaction of Reserves and Regulation policies with ramp rates (#415).
  • Removed the useless MinCapTag column from examples (#380).
  • Removed invalid BarObjRng key from gurobi settings (#374).
  • Default crossover or run_crossover settings (#363).
  • HYDRO resources now allow the period map to be loaded (#362).
  • Numbering in documentation (#330).
  • Correct scaling of emission outputs (#322).
  • Add transmission losses to ESR constraints (#320).
  • Author's name spelling in docs (#317).
  • Unset executable bits on files (#297).
  • Morris method example now runs.
  • Various other settings issues with example cases.

Changed

  • Simplified the Simple_Test_Case example (#414).
  • SmallNewEngland/Onezone example now uses linearized unit committment by default (#404).
  • Removed the unused dependency BenchmarkTools (#381).

Removed

  • The unmaintained MonteCarlo code (#357).
  • License blocks from most file headers (#353).
  • Extra LDS columns from several examples (#312).
  • SCIP from the Project and from documentation.

What's Changed

  • Slightly squashed Weekly-Develop branch by @cfe316 in https://github.com/GenXProject/GenX/pull/377
  • Remove scary warning about CapResPeriodLength by @cfe316 in https://github.com/GenXProject/GenX/pull/419
  • Rebase Develop onto main to prepare for GenX 0.3.4 release by @cfe316 in https://github.com/GenXProject/GenX/pull/421

Full Changelog: https://github.com/GenXProject/GenX/compare/v0.3.3...v0.3.4

- Julia
Published by sambuddhac almost 3 years ago

GenX - v0.3.3

What's Changed

  • Added docs.yml to enable doc page versioning by @sambuddhac in https://github.com/GenXProject/GenX/pull/287
  • PR to merge Develop with main for version 0.3.3 release by @sambuddhac in https://github.com/GenXProject/GenX/pull/291
  • Deleting doc.yml by @sambuddhac in https://github.com/GenXProject/GenX/pull/296

Full Changelog: https://github.com/GenXProject/GenX/compare/v0.3.2...v0.3.3

- Julia
Published by GenXProject over 3 years ago

GenX - GenX patch version v0.3.2

What's Changed

  • Fix indexing in setting eTotalCapCharge max and min by @RuaridhMacd in https://github.com/GenXProject/GenX/pull/269
  • Feature updates and bug fixes for v0.3.2 patch release by @sambuddhac in https://github.com/GenXProject/GenX/pull/270
  • CRM Zone Membership feature by @xuqingyu
  • Cleaner output file writing and bud fixes for DDP method by @jf-morris

Full Changelog: https://github.com/GenXProject/GenX/compare/v0.3.1...v0.3.2

- Julia
Published by sambuddhac over 3 years ago

GenX - v0.3.1

What's Changed

The major updates to the v0.3.1 patch release are the following: 1. Addition of HiGHS as the default solver (HiGHS is open-source, free/non-commercial, and a fast solver as long as LP problems are being solved) 2. Significant changes to the way in which GenX is run (We decided to stick to what we have been calling Mathod 1 till date and decided to get rid of Method 2. Please read the README carefully to run GenX) 3. Revised and refined DDP model 4. Gotten rid of unused package dependencies to expedite the loading and running of GenX.

The details of the patch release as as follows: * Use joinpath rather than manual path construction from strings by @cfe316 in https://github.com/GenXProject/GenX/pull/191 * Simplify loadperiodmap by @cfe316 in https://github.com/GenXProject/GenX/pull/192 * Simplify dataframe accesses by @cfe316 in https://github.com/GenXProject/GenX/pull/196 * Reformatted the documentation Welcome page to sectionalize it and condense the left pane by @sambuddhac in https://github.com/GenXProject/GenX/pull/199 * Simplify model generation function calls by @cfe316 in https://github.com/GenXProject/GenX/pull/197 * Simplify flexible demand formulation by @cfe316 in https://github.com/GenXProject/GenX/pull/195 * Fix bug in endogenousretirement by @cfe316 in https://github.com/GenXProject/GenX/pull/203 * Remove extraneous methodofmorris files by @cfe316 in https://github.com/GenXProject/GenX/pull/207 * Modifications in thermalnocommit and versioned doc pages by @sambuddhac in https://github.com/GenXProject/GenX/pull/206 * Dev by @sambuddhac in https://github.com/GenXProject/GenX/pull/193 * Prevent writingstoragedual if there's no STOR > 0 by @cfe316 in https://github.com/GenXProject/GenX/pull/226 * GenX Patch 0.3.1 Upgrade: Addition of HiGHS Solver, DDP bug-fixes, and documentation upgrade by @sambuddhac in https://github.com/GenXProject/GenX/pull/236 * Fix images in howtorun_genx.md by @cfe316 in https://github.com/GenXProject/GenX/pull/260 * Rm five unused files from / by @cfe316 in https://github.com/GenXProject/GenX/pull/261 * Rm Documenter[Tools] from main project by @cfe316 in https://github.com/GenXProject/GenX/pull/262

Full Changelog: https://github.com/GenXProject/GenX/compare/v0.3.0...v0.3.1

- Julia
Published by sambuddhac over 3 years ago

GenX - GenX version v0.3.0

GenX version 0.3.0 Release Notes

In this version, we have upgraded GenX to version v0.3.0. To run GenX 0.3.0, we recommend Julia language version 1.6.x series along with JuMP 0.21.x series (all the environment dependencies have been updated to the most recent compatible versions as well). The following are the salient features that have been added in this version release:

  • Added Dual Dynamic Programming (DDP) Multi-stage capacity expansion feature to GenX: This is the major highlight and most important new feature added to GenX in version 0.3.0. Addition of the DDP now allows GenX to carry out multi stage and multi year look-ahead capacity expansion planning into the future in a most rigorous mathematical framework.
  • Vectorization of output writing to enhance the speed of generating results files.
  • Revised and updated "Method of Morris" for sophisticated sensitivity analyses studies (along with previously created "Modeling to Generate Alternatives (MGS)" analysis).
  • Bug-fixes and refinement of modularization of the different policy modules like co2cap, capreservemargin, minimumcapacity_requirement etc., for ease and convenience for adding new technologies by the users.

Below are the details of the changes in this release:

What's Changed

  • Merging Dev into Method of Morris by @nspatank in https://github.com/GenXProject/GenX/pull/66
  • modularizing policies: capacity reserve margin, minimum requirement capacity, ESR by @aneeshamanocha in https://github.com/GenXProject/GenX/pull/68
  • Multi-Stage GenX by @jf-morris in https://github.com/GenXProject/GenX/pull/78
  • Make 'solver' entry case insensitive; document this by @cfe316 in https://github.com/GenXProject/GenX/pull/103
  • Simplify loading scripts: use joinpath by @cfe316 in https://github.com/GenXProject/GenX/pull/97
  • Use joinpath rather than passing string separator by @cfe316 in https://github.com/GenXProject/GenX/pull/104
  • Remove debugging info from flexible demand module by @cfe316 in https://github.com/GenXProject/GenX/pull/107
  • Remove service for unsupported Julia versions by @cfe316 in https://github.com/GenXProject/GenX/pull/105
  • Add cplex.log file to gitignore. by @cfe316 in https://github.com/GenXProject/GenX/pull/88
  • Shorten the .gitignore file by @cfe316 in https://github.com/GenXProject/GenX/pull/110
  • Add a default for MultiStage to configure_settings by @cfe316 in https://github.com/GenXProject/GenX/pull/90
  • Policies (added must run for capacity reserve margins) by @aneeshamanocha in https://github.com/GenXProject/GenX/pull/69
  • Fix bug on main which prevents writing many outputs by @cfe316 in https://github.com/GenXProject/GenX/pull/123
  • Refactor period map loading logic by @cfe316 in https://github.com/GenXProject/GenX/pull/130
  • Remove unused code requiring CapRes_* cols by @gschivley in https://github.com/GenXProject/GenX/pull/120
  • Remove references to LongDurationStorage key by @cfe316 in https://github.com/GenXProject/GenX/pull/124
  • Call write_costs exactly once by @cfe316 in https://github.com/GenXProject/GenX/pull/136
  • Resolving first-stage-only network expansion issue in multi-stage GenX by @jf-morris in https://github.com/GenXProject/GenX/pull/131
  • Add github action test workflow by @gschivley in https://github.com/GenXProject/GenX/pull/142
  • Annualizing costs in myopic multi-stage GenX by @jf-morris in https://github.com/GenXProject/GenX/pull/144
  • Vectorize the simpler writing procedures by @cfe316 in https://github.com/GenXProject/GenX/pull/137
  • Vectorize write_storagedual by @cfe316 in https://github.com/GenXProject/GenX/pull/139
  • Documentation for Multi-Stage GenX by @jf-morris in https://github.com/GenXProject/GenX/pull/160
  • Vectorize write_costs by @cfe316 in https://github.com/GenXProject/GenX/pull/145
  • Vectorize the three slowest outputs by @cfe316 in https://github.com/GenXProject/GenX/pull/147
  • Annualize outputs for reserves and ucommit by @cfe316 in https://github.com/GenXProject/GenX/pull/155
  • Vectorize writing of outputs by @cfe316 in https://github.com/GenXProject/GenX/pull/157
  • DDP Documentation Fix by @jf-morris in https://github.com/GenXProject/GenX/pull/163
  • Correcting multi-stage TDR indexing error by @jf-morris in https://github.com/GenXProject/GenX/pull/162
  • Include STOR=2 techs in STORLONGDURATION and STORSHORTDURATION sets by @jf-morris in https://github.com/GenXProject/GenX/pull/159
  • Fix mismatched arguments in write_outputs by @cfe316 in https://github.com/GenXProject/GenX/pull/175
  • Fix and simplify Up&Down_Time constraints by @cfe316 in https://github.com/GenXProject/GenX/pull/151
  • Scale all generator Cap_Size, not just those with > 1 MW by @cfe316 in https://github.com/GenXProject/GenX/pull/178
  • Gate for accessing HydroEnergytoPowerRatio by @cfe316 in https://github.com/GenXProject/GenX/pull/174
  • DDP Post-convergence extra forward pass by @jf-morris in https://github.com/GenXProject/GenX/pull/182
  • Aaron: Reformatting DDP Directory by @jf-morris in https://github.com/GenXProject/GenX/pull/183
  • Fix zonal cost summations by @cfe316 in https://github.com/GenXProject/GenX/pull/185
  • Dev by @sambuddhac in https://github.com/GenXProject/GenX/pull/179
  • Dev by @sambuddhac in https://github.com/GenXProject/GenX/pull/188

New Contributors

  • @aneeshamanocha made their first contribution in https://github.com/GenXProject/GenX/pull/68
  • @jf-morris made their first contribution in https://github.com/GenXProject/GenX/pull/78

Full Changelog: https://github.com/GenXProject/GenX/compare/v0.2.0...v0.3.0

- Julia
Published by sambuddhac almost 4 years ago

GenX - GenX version v0.2.0

In this version, we have once again upgraded GenX to version v0.2.0. This version (like v0.1.0) also runs with Julia language versions 1.5.x and 1.6.x series along with JuMP 0.21.x series (all the environment dependencies have been updated to the most recent compatible versions as well). The following are the salient features that have been added in this version release:

  • Added "Method of Morris" for sophisticated sensitivity analyses studies (along with previously created "Modeling to Generate Alternatives (MGS)" analysis).
  • Added SCIP as an open source solver option, which has a much superior performance, on, especially mixed integer programming problem instances.
  • Modularized the different policy modules like co2cap, capreservemargin, minimumcapacity_requirement etc., for ease and convenience for adding new technologies by the users.

Just like before, we have also fixed many of the bugs that were present in the earlier release. Version v0.1.0 is still there in the old version branch. The older release before v0.1.0 is still on GitHub on the branch old_version (the older release runs with Julia 1.3.x and 1.4.x series and with older versions of environment dependencies).

- Julia
Published by GenXProject about 4 years ago

GenX - GenX version v0.1.0

In this version, we have upgraded GenX, so that it can be run with the two most recent Julia language versions, namely 1.5.x and 1.6.x series along with JuMP 0.21.x series (all the environment dependencies have been updated to the most recent compatible versions as well). We have also fixed many of the bugs that were present in the earlier release. The older release is still on GitHub on the branch old_version (the older release runs with Julia 1.3.x and 1.4.x series and with older versions of environment dependencies).

- Julia
Published by sambuddhac over 4 years ago