Releases: GenXProject/GenX.jl
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 ofNumbers
. (#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 ofcUnmetPolicyPenalty
inwrite_costs.jl
(#806).
Changed
- The
charge.csv
andstorage.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 fromNetwork.csv
since they were not being used (#784).
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 add_similar_to_expression! for arrays (#798) (@lbonaldo)
- Settings flag for new LDS constraints activation (#801) (@lbonaldo)
- Release v0.4.2 (#805) (@lbonaldo)
- Add
eTotalCMaxCapSlack
tocUnmetPolicyPenalty
inwrite_costs.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 Model_notation.md (#761)
- [Bug]: type Thermal has no attribute cum_min_retired_cap_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)
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!
andcluster_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 docsmake.jl
file to track the develop branch (#710)TDR
to loadFuels_data.csv
w/wo optionalNone
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 #696
Full Changelog: v0.4.0...v0.4.1
Merged pull requests:
- Add electrolyzer to current VRE_STOR (#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 run_genx_case! function (#718) (@lbonaldo)
- Make None colum in Fuels_data 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 Fuels_data (#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 reserves_contingency!(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.md
s (#715) - [Bug]: VRE_STOR asks for both wind and solar variability data when there is only solar or wind components in VRE_STOR. (#727)
- [Bug]: Examples 2 and 6 have Hydro_Energy_to_Power_Ratio 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)
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 write_operating_reserve_price_revenue.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 write_costs_multistage mentioning the approximate value of costs currently. (#680)
Fixed
Reserves
have been renamed asOperationReserves
in order to distinguish it fromCapacity 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 Fixed_OM_Cost_Charge_per_MWyr when reading from Generators_data 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
andRsv_Max
columns inGenerators_data.csv
whenMUST_RUN
is set to 1 (#576) - Fix scaling of transmission losses in write_transmission_losses.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 initialize_cost_to_go function and adjusted the formula for the discount factor to reflect the code
implementation (#672). - Fix write_multi_stage_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 write_power_balance.jl: add additional two columns ("VRE_Storage_Discharge" and "VRE_Storage_Charge") for VRE_STOR
Changed
- Use add_to_expression! 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 toDemand_data.csv
. (#397)Load_MW_z*
columns in that file are renamed toDemand_MW_z*
. (#397)- In
Reserves.csv
,Reg_Req_Percent_Load
andRsv_Req_Percent_Load
are renamed to..._Demand
. (#397) Load
andLoadWeight
keys in thetime_domain_reduction_settings.yml
file are renamed toDemand
,DemandWeight
. (#397)- The
New_Build
column inGenerators_data.csv
has been separated into two:New_Build
andCan_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 Reg_Max and Rsv_Max of any MUST_RUN generators to 0.
This mitigates but does not fully fix (#576). - Expressions of virtual charging and discharging costs in storage_all.jl and vre_stor.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
, andVre_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 toOperationalReserves
,Reserves.csv
to
Operational_reserves.csv
, and the.jl
files contain the wordreserves
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
andsystem
. 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
inGenerators_data.csv
: instead, useNew_Build = 0
andCan_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: Start_Zone, End_Zone (#591).
Full Changelog: 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 #473
- Remove Network.csv files from single-zone cases by @cfe316 in #505
- Fix error on write_costs re: COMMIT_ZONE #506 by @cfe316 in #508
- Feature issue template by @cfe316 in #511
- add PR template by @gmantegna in #516
- Deduplicate 'multi-stage' overview docs by @cfe316 in #515
- Return path from write_outputs by @cfe316 in #509
- Set example small_hydro plants MUST_RUN=1 by @cfe316 in #517
- Validate resources in generators_data.csv by @cfe316 in #513
- Remove coveralls and coverage by @cfe316 in #518
- Fix typo in logs by @gmantegna in #521
- Update PULL_REQUEST_TEMPLATE.md by @gmantegna in #520
- Fix bug in reserves by @gmantegna in #524
- add_to_expression! by @pshlime in #498
- Add ability for storage to contribute to capacity reserves without needing to generate by @gmantegna in h...
GenX Patch Version v0.3.7
What's Changed
Fixed
- write_costs: add check on COMMIT_ZONE 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: v0.3.6...v0.3.7
GenX v0.4.0-rc
Note: user guide "Porting a module from GenX v0.3.6 to GenX v0.4.0" available at this link.
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 write_operating_reserve_price_revenue.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 MUST_RUN=1 for RealSystemExample/small_hydro 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 Fixed_OM_Cost_Charge_per_MWyr when reading from Generators_data 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
andRsv_Max
columns inGenerators_data.csv
whenMUST_RUN
is set to 1 (#576) - Fix scaling of transmission losses in write_transmission_losses.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 add_to_expression! 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 toDemand_data.csv
.Load_MW_z*
columns in that file are renamed toDemand_MW_z*
.- In
Reserves.csv
,Reg_Req_Percent_Load
andRsv_Req_Percent_Load
are renamed to..._Demand
. Load
andLoadWeight
keys in thetime_domain_reduction_settings.yml
file are renamed toDemand
,DemandWeight
.- The
New_Build
column inGenerators_data.csv
has been separated into two:New_Build
andCan_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 Reg_Max and Rsv_Max of any MUST_RUN generators to 0.
This mitigates but does not fully fix (#576). - Expressions of virtual charging and discharging costs in storage_all.jl and vre_stor.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
, andVre_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 toOperationalReserves
,Reserves.csv
to
Operational_reserves.csv
, and the.jl
files contain the wordreserves
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
andsystem
. 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
inGenerators_data.csv
: instead, useNew_Build = 0
andCan_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: Start_Zone, End_Zone (#591).
Full Changelog: v0.3.6...v0.4.0-rc
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 simplex_dualise_strategy (#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: v0.3.5...v0.3.6
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
Changed
- The columns
Rep_Periods
,Timesteps_per_Rep_Period
, andSub_Weights
are now required inLoad_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: v0.3.4...v0.3.5
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 infuels_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
orrun_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 #377
- Remove scary warning about CapResPeriodLength by @cfe316 in #419
- Rebase Develop onto main to prepare for GenX 0.3.4 release by @cfe316 in #421
Full Changelog: v0.3.3...v0.3.4
v0.3.3
What's Changed
- Added docs.yml to enable doc page versioning by @sambuddhac in #287
- PR to merge Develop with main for version 0.3.3 release by @sambuddhac in #291
- Deleting doc.yml by @sambuddhac in #296
Full Changelog: v0.3.2...v0.3.3
GenX patch version v0.3.2
What's Changed
- Fix indexing in setting eTotalCapCharge max and min by @RuaridhMacd in #269
- Feature updates and bug fixes for v0.3.2 patch release by @sambuddhac in #270
- CRM Zone Membership feature by @xuqingyu
- Cleaner output file writing and bud fixes for DDP method by @jf-morris
Full Changelog: v0.3.1...v0.3.2