Recent Releases of Macro

Macro - v0.1.0

MacroEnergy v0.1.0

Diff since v0.0.3

Summary

MacroEnergy v0.1.0 is a major update over v0.0.3, with substantial improvements to outputs, input handling, transmission modeling, storage constraints, solver workflows, and documentation.

  • Expanded result writing and postprocessing. MacroEnergy now exports non-served demand, storage level, curtailment, time weights, richer discounted and undiscounted cost outputs, and detailed cost breakdowns. Full time-series reconstruction is now supported across Monolithic, Myopic, and Benders workflows via WriteFullTimeseries.
  • Improved Benders output parity and cost handling. Benders runs now perform a final operational solve for the selected planning solution, enabling more complete operational outputs and better-aligned dual and cost exports.
  • Redesigned node supply inputs. The preferred node supply schema is now a named supply dictionary with per-segment price, min, and max, including support for time-varying segment data and minimum supply bounds. A converter utility was added to update legacy node inputs.
  • More robust transmission and edge modeling. Edge types are now explicitly split into unidirectional and bidirectional forms. TransmissionLink now models bidirectional transfer, and a new OneWayTransmissionLink asset supports one-way transfer explicitly.
  • Updated storage modeling. Added StorageChargeLimitConstraint, new initial storage feasibility constraints for long-duration storage in Benders, better safety checks around storage duration and capacity assumptions, and improved battery/gas storage defaults and location handling.
  • New assets: SyntheticAmmonia, SyntheticMethanol, ThermalAmmonia, ThermalAmmoniaCCS, ThermalMethanol, ThermalMethanolCCS, and OneWayTransmissionLink. Emissions-tracking assets were also renamed more clearly to UpstreamEmissions and DownstreamEmissions.
  • Better runtime and workflow support. Added Myopic restart support, StopAfterPeriod, optional JuMP direct-model generation and string names, updated default HiGHS settings, improved distributed/Benders process handling, and new economic utility functions for present-value and cash-flow calculations.
  • User extension workflow was cleaned up. User-defined commodities and assets now load from a clearer user_additions/ layout, including support for usercommodities.jl, userassets.jl, and per-asset files under user_additions/assets/.
  • Documentation and tests were significantly expanded. New and updated manuals cover TimeData, timeseries outputs, retrofitting, run workflows, outputs, constraints, and the new asset set, with corresponding tests added for supply parsing, full-timeseries exports, transmission links, user additions, and regression coverage.

Breaking changes

  • Node supply inputs now use supply => {segment => {price, min, max}} instead of the separate inputs for price, min and max.
  • Edge types are now explicitly split into unidirectional and bidirectional forms. TransmissionLink now models bidirectional transfer, and a new OneWayTransmissionLink asset supports one-way transfer explicitly.
  • Legacy unified output code was removed in favor of the expanded write_* output suite.
  • Nodes now have BalanceConstraint enabled by default.

Upgrading your existing cases:

  • Node supply inputs now use supply => {segment => {price, min, max}} instead of the separate inputs for price, min and max. Legacy price_supply / max_supply inputs are still handled, and a function, update_node_supply_inputs was added to help migrate cases.
  • Auto-generated segment names now use segment1, segment2, etc.
  • TransmissionLink is now bidirectional by default; use OneWayTransmissionLink when directionality matters.
  • Compatibility aliases remain for some renamed assets, including FossilFuelsUpstream => UpstreamEmissions and FuelsEndUse => DownstreamEmissions.

Merged pull requests:

  • bug fixes for json_to_csv and load function (#151) (@anna-x-li)
  • Add basic chemicals (ammonia and methanol production technologies) (#153) (@Rick10119)
  • Merge updated docs (#159) (@RuaridhMacd)
  • Simplify and fix example blocks in modeler guide (#162) (@lbonaldo)
  • Add retrofit docs (#163) (@anna-x-li)
  • clarifying period accounting (#167) (@EmilDimanchev)
  • New user guide page: Running a Macro Model (#169) (@lbonaldo)
  • Small fixes to docs and default values (#170) (@lbonaldo)
  • Update instructions on how to run example systems (#172) (@lbonaldo)
  • Add integer capacity decisions for Battery charge & discharge edges (#173) (@JesseJenkins)
  • Fix issue with gas storage default constraints (#174) (@filippopecci)
  • Use direct_model (#175) (@filippopecci)
  • Improve balance updates (#176) (@filippopecci)
  • Restart myopic (#177) (@filippopecci)
  • Write storage capacity (#178) (@filippopecci)
  • Fix bug in age based retirements (#179) (@filippopecci)
  • Update capacity constraint function (#180) (@filippopecci)
  • adding new storage charge limit constraint (#181) (@filippopecci)
  • Fix writing of duals with MILP (#182) (@lbonaldo)
  • Update documentation for GasStorage asset - default constraints (#183) (@lbonaldo)
  • Few updates to ouputs (#185) (@lbonaldo)
  • Add non-served demand and storage level output functions (#186) (@lbonaldo)
  • Update to working cluster manager (#187) (@EmilDimanchev)
  • Update tutorials 1 and 2 in docs (#189) (@lbonaldo)
  • Fix warning when deleting Julia workers in Benders (#190) (@lbonaldo)
  • Update default optimizer attributes in run_case to use HiGHS settings (#191) (@lbonaldo)
  • Handle JuMP warning about improper expression index (#192) (@RuaridhMacd)
  • Consolidate economic functions (#193) (@RuaridhMacd)
  • Add detailed cost breakdown outputs (by type and zone) (#196) (@lbonaldo)
  • Allow user assets to be defined in the inputs (#197) (@RuaridhMacd)
  • Add curtailment output functionality for all solution algorithms (#199) (@lbonaldo)
  • Hotfix: Add Transform->Transform and Storage->Storage cases to get_flow_sign (#201) (@RuaridhMacd)
  • Modify definition of Benders planning problem (#202) (@filippopecci)
  • Fix subproblem data extraction (#203) (@filippopecci)
  • Hotfix: Benders subproblem does not have duals (#204) (@filippopecci)
  • Increase version to v0.1.0 (#205) (@RuaridhMacd)
  • HotFix: Discount scaling for duals from Benders (#206) (@filippopecci)
  • Update installation instructions with Manifest.toml note (#207) (@cerealice)
  • Fix user-defined constraint dispatch with Base.invokelatestUpdate constraints_utils.jl (#208) (@JesseJenkins)
  • Added planning constraints for long duration energy storage with Benders (#210) (@dlcole3)
  • Handle missing values for co2_slack outputs in systems with multiple co2 sinks (#211) (@lbonaldo)
  • Add warning if discharge edge on Storage with max and/or min duration constraints doesn't have capacity (#212) (@RuaridhMacd)
  • Add write_time_weights output function (#213) (@JesseJenkins)
  • Split edge into unidirectional edge and bidirectional edge (#214) (@RuaridhMacd)
  • Rename fossil up/down stream assets (#216) (@RuaridhMacd)
  • Update node supply / demand mechanics (#217) (@RuaridhMacd)
  • More checks on constraints (#218) (@filippopecci)
  • Add OneWayTransmissionLink (#219) (@HongxiLuo)
  • Add full time series reconstruction from representative periods (#220) (@lbonaldo)
  • Simplify Node supply inputs (#222) (@RuaridhMacd)
  • Add Time Data page to the documentation (#223) (@lbonaldo)
  • Hotfix BlastFurnaceBasicOxygenFurnace (#228) (@RuaridhMacd)

Closed issues:

  • Output subperiod weights (#36)
  • Add documentation for retrofitting features (#133)
  • Add detailed accounting of costs, per type at least, to the all costs outputs (#166)
  • Error in Tutorial Example (#188)
  • Include curtailment in output files (#198)
  • Documentation issue (broken link to period_map.csv) (#215)

Energy Systems - Energy System Modeling Frameworks - Julia
Published by github-actions[bot] about 2 months ago

Macro - v0.0.3

MacroEnergy v0.0.3

Diff since v0.0.2

v0.0.3 incorporates several bug fixes, especially for Windows machines. There are no breaking changes.

We will start compiling full release notes from v0.0.4 onwards.

Merged pull requests:

  • Iron and steel sector addition to Macro (#128) (@Mohamedat0)
  • Extend retrofit features to multi-stage model (#135) (@filippopecci)
  • Few fixes to docs and new Timeseries.md page (#137) (@lbonaldo)
  • Fixed bug in retrofit integer_decisions (#139) (@Junwenlaw)
  • HotFix: Bug in HydroRes definition (#140) (@filippopecci)
  • Add JOSS paper to /joss-paper branch (#141) (@RuaridhMacd)
  • Agg demand (#142) (@anna-x-li)
  • Implement dual values export for BalanceConstraint and CO2CapConstraint (#143) (@lbonaldo)
  • Minimum retired capacity constraint (#144) (@filippopecci)
  • Fix write_duals for Benders to not rescale balance duals (#145) (@lbonaldo)
  • Update asset library index with iron&steel sector (#146) (@filippopecci)
  • Heat and steam sectors commodity, assets and documentations (#147) (@Junwenlaw)
  • Update modeler debugging and testing documentation (#148) (@lbonaldo)
  • add real world parameters as default set to aluminum sector (#149) (@Rick10119)
  • Fix issue with cross references in documentation (#152) (@filippopecci)
  • Update installation instructions (#154) (@RuaridhMacd)
  • Update citation (#155) (@RuaridhMacd)
  • Update citation to prioritize software citation (#156) (@RuaridhMacd)
  • Fix small typo in citation name (#157) (@JZL)
  • Fix bug with UserAdditions path on Windows (#158) (@RuaridhMacd)
  • Update ci to include windows os (#160) (@lbonaldo)
  • v0.0.3 release (#161) (@RuaridhMacd)

Closed issues:

  • Output duals (#45)
  • Extend retrofit features to multi-stage model (#134)
  • Allow Modeling of Curtailment (#136)

Energy Systems - Energy System Modeling Frameworks - Julia
Published by github-actions[bot] 6 months ago

Macro - v0.0.2

MacroEnergy v0.0.2

Diff since v0.0.1

This update applies a small fix to how subcommodities are loaded and some new features:

  • New logging options
  • Settings are now printed as part of results
  • Automatically generated Mermaid diagrams for Assets
  • Asset retrofits, for single-stage Cases
  • Some refactoring of the output-writing utilities

Breaking changes

  • There are no breaking changes

Merged pull requests:

  • Retrofit feature (#115) (@anna-x-li)
  • Automatic mermaid diagrams (#127) (@RuaridhMacd)
  • Refactor utilities for writing output module (#129) (@lbonaldo)
  • Add option to free model memory in myopic iterations (#131) (@lbonaldo)
  • Fix bug with subcommodities (#132) (@RuaridhMacd)

Closed issues:

  • Add NodeIn and NodeOut columns in flows.csv (#33)

Energy Systems - Energy System Modeling Frameworks - Julia
Published by github-actions[bot] 8 months ago

Macro - v0.0.1

MacroEnergy v0.0.1

Energy Systems - Energy System Modeling Frameworks - Julia
Published by github-actions[bot] 9 months ago