Macro

Allows you to optimize the design and operations of large multi-sector energy systems.
ps://github.com/macroenergy/macroenergy.jl

Category: Energy Systems
Sub Category: Energy System Modeling Frameworks

Last synced: about 1 hour ago
JSON representation

Repository metadata

Macro allows you to optimize the design and operations of large multi-sector energy systems.

README.md

Macro

Build StatusStable

Macro is a bottom-up, multi-sectoral infrastructure optimization model for macro-energy systems. It co-optimizes the design and operation of user-defined models of multi-sector energy systems and networks. Macro allows users to explore the impact of changing energy policies, technologies, demand patterns, and other factors on an energy system as a whole and as separate sectors.

Features

The Macro development team have built on their experience developing the GenX and Dolphyn models to develop a new architecture which is easier and faster to expand to new energy technologies, policies, and sectors.

Macro's key features are:

  • Graph-based representation of the energy system, facilitating clear representation and analysis of energy and mass flows between sectors.
  • "Plug and play" flexibility for integrating new technologies and sectors, including electricity, hydrogen, heat, and transport.
  • High spatial and temporal resolution to accurately capture sector dynamics.
  • Designed for distributed computing to enable large-scale optimizations.
  • Tailored Benders decomposition framework for optimization.
  • Open-source built using Julia and JuMP.

Citing Macro

If you use Macro, please cite the current version of the software and the software paper.

The version citation is available in the "About" section of the GitHub repository.

We have submitted a peer-reviewed paper describing Macro, but please cite the preprint in the meantime:

@article{macdonald2025macroenergy,
  title={MacroEnergy. jl: A large-scale multi-sector energy system framework},
  author={Macdonald, Ruaridh and Pecci, Filippo and Bonaldo, Luca and Law, Jun Wen and Weng, Yu and Mallapragada, Dharik and Jenkins, Jesse},
  journal={arXiv preprint arXiv:2510.21943},
  year={2025}
}

Installation

You can install Macro (aka.MacroEnergy.jl) using the Julia package manager:

using Pkg
Pkg.add("MacroEnergy")

If you wish to make additions to Macro, please follow the installation instructions in the documentation, on the Getting Started / Installation page.

Recent changes

0.2.4 - 2026-09-10

Changed

  • Skip Julia CI tests when changes are confined to CHANGELOG.md, README.md, or docs/, while retaining documentation builds and a consistent CI result check that reports successful tests or an intentional skip.

Fixed

  • Removed [skip ci] from automated changelog commit messages so release tags pointing to those commits can trigger documentation deployment.

For the full release history, see CHANGELOG.md.

Learning to use Macro

Documentation

The Macro documentation can be found here.. The documentation contains five main resources:

  • A getting started section, which shows you how to install and run Macro.
  • Guides, which walk you through how to achieve specific tasks using Macro.
  • A manual, which describes all the components and features of Macro in detail.
  • Tutorials, which are extended guides with worked examples
  • A function reference, which etails the API and functions available with Macro.

Bug reports

Please report any bugs or new feature requests on the Issues page of this repository.

Citation (CITATION.cff)

cff-version: 1.2.0
message: "If you use Macro, please cite the release version and software paper below"
authors:
- family-names: "Macdonald"
  given-names: "Ruaridh"
  orcid: "https://orcid.org/0000-0001-9034-6635"
- family-names: "Pecci"
  given-names: "Filippo"
  orcid: "https://orcid.org/0000-0003-3200-0892"
- family-names: "Bonaldo"
  given-names: "Luca"
  orcid: "https://orcid.org/0009-0000-0650-0266"
- family-names: "Law"
  given-names: "Jun Wen"
  orcid: "https://orcid.org/0009-0001-8766-3100"
- family-names: "Weng"
  given-names: "Yu"
  orcid: "https://orcid.org/0000-0003-3958-1546"
- family-names: "De Bella"
  given-names: "Alice"
  orcid: "https://orcid.org/0000-0003-3814-7537"
- family-names: "Li"
  given-names: "Anna X."
  orcid: "https://orcid.org/0000-0002-3435-3651"
- family-names: "Vuppanapalli"
  given-names: "Chaitanya"
  orcid: "https://orcid.org/0009-0003-6893-6366"
- family-names: "Cole"
  given-names: "David"
- family-names: "Dimanchev"
  given-names: "Emil"
  orcid: "https://orcid.org/0000-0001-8240-5922"
- family-names: "Luo"
  given-names: "Hongxi"
  orcid: "https://orcid.org/0000-0003-4824-9385"
- family-names: "Langlieb"
  given-names: "Jonah"
  orcid: "https://orcid.org/0000-0002-9949-1123"
- family-names: "Kaloo"
  given-names: "Kaushal"
  orcid: "https://orcid.org/0009-0000-8588-8384"
- family-names: "Atouife"
  given-names: "Mohamed"
  orcid: "https://orcid.org/0009-0003-3457-6761"
- family-names: "Lyu"
  given-names: "Ruike"
  orcid: "https://orcid.org/0000-0003-3749-1117"
- family-names: "Chakrabarti"
  given-names: "Sambuddha"
  orcid: "https://orcid.org/0000-0002-8916-5076"
- family-names: "Wang"
  given-names: "Lillian"
  orcid: "https://orcid.org/0009-0007-7673-1677"
- family-names: "Mallapragada"
  given-names: "Dharik"
  orcid: "https://orcid.org/0000-0002-0330-0063"
- family-names: "Jenkins"
  given-names: "Jesse"
  orcid: "https://orcid.org/0000-0002-9670-7793"
title: "MacroEnergy.jl"
version: 0.1.0
date-released: 2026-04-14
url: "https://github.com/macroenergy/MacroEnergy.jl"

Owner metadata


GitHub Events

Total
Last Year

Committers metadata

Last synced: 1 day ago

Total Commits: 1,943
Total Committers: 23
Avg Commits per committer: 84.478
Development Distribution Score (DDS): 0.618

Commits in past year: 808
Committers in past year: 21
Avg Commits per committer in past year: 38.476
Development Distribution Score (DDS) in past year: 0.535

Name Email Commits
Ruaridh Macdonald r****d@m****u 742
lbonaldo b****2@g****m 582
Filippo Pecci p****o@g****m 361
Mohamed Atouife 1****0 55
Anna Li l****9@g****m 47
Emil Dimanchev e****d@m****u 35
Junwenlaw 9****w 31
github-actions[bot] 4****] 21
Ruike Lyu (吕睿可) 4****9 17
lbonaldo 3****. 15
Jesse Jenkins j****s@g****m 7
HongxiLuo h****2@p****u 5
CompatHelper Julia c****y@j****g 4
Chakrabarti, Sambuddha (Sam) s****i@g****m 4
lillianwang112 w****2@g****m 4
Sush1090 s****0@g****m 3
Alice Di Bella 9****e 2
Daniel Ari Friedman d****n@g****m 2
JZL 1****L 2
Akash Goel g****3@g****m 1
David Cole d****c@g****m 1
Emil Dimanchev e****i@M****e 1
Rohit Giridharan r****0@g****m 1

Committer domains:


Issue and Pull Request metadata

Last synced: 1 day ago

Total issues: 38
Total pull requests: 212
Average time to close issues: about 1 month
Average time to close pull requests: 21 days
Total issue authors: 11
Total pull request authors: 20
Average comments per issue: 2.03
Average comments per pull request: 0.73
Merged pull request: 151
Bot issues: 0
Bot pull requests: 6

Past year issues: 16
Past year pull requests: 79
Past year average time to close issues: 2 months
Past year average time to close pull requests: about 1 month
Past year issue authors: 7
Past year pull request authors: 15
Past year average comments per issue: 1.44
Past year average comments per pull request: 0.95
Past year merged pull request: 58
Past year bot issues: 0
Past year bot pull requests: 6

More stats: https://issues.ecosyste.ms/repositories/lookup?url=ps://github.com/macroenergy/macroenergy.jl

Top Issue Authors

  • acpascale (7)
  • Junwenlaw (7)
  • docxology (6)
  • filippopecci (5)
  • HongxiLuo (4)
  • lbonaldo (3)
  • RuaridhMacd (2)
  • rohitgiridharan (1)
  • Sush1090 (1)
  • asgross (1)
  • JuliaTagBot (1)

Top Pull Request Authors

  • RuaridhMacd (75)
  • lbonaldo (57)
  • filippopecci (32)
  • EmilDimanchev (11)
  • github-actions[bot] (6)
  • anna-x-li (6)
  • Junwenlaw (6)
  • lillianwang112 (3)
  • sambuddhac (3)
  • Rick10119 (2)
  • JesseJenkins (2)
  • Wendy-YuWENG (1)
  • ksk9220 (1)
  • goelakash (1)
  • JZL (1)

Top Issue Labels

  • enhancement (9)
  • bug (4)
  • discussion (1)

Top Pull Request Labels

  • documentation (52)
  • enhancement (46)
  • bug (23)
  • performance (4)
  • breaking-change (2)
  • refactor (1)

Dependencies

.github/workflows/changelog-sync.yml actions
  • actions/checkout v4 composite
  • julia-actions/setup-julia v2 composite
Project.toml julia
  • BenchmarkTools *
  • CSV *
  • DBInterface *
  • DataFrames *
  • Dates *
  • Distributed *
  • DistributedArrays *
  • DuckDB *
  • DuckDB_jll *
  • GZip *
  • GitHub *
  • HiGHS *
  • InteractiveUtils *
  • JSON3 *
  • JuMP *
  • Logging *
  • LoggingExtras *
  • MacroEnergyScaling *
  • MacroEnergySolvers *
  • Markdown *
  • OrderedCollections *
  • Parquet2 *
  • Pkg *
  • Printf *
  • Random *
  • Revise *
  • SlurmClusterManager *
  • Test *
  • YAML *
docs/Project.toml julia
  • AbstractTrees *
  • DataFrames *
  • Documenter *
  • DocumenterMermaid *
  • HiGHS *
  • InteractiveUtils *
  • MacroEnergy *
.github/workflows/CompatHelper.yml actions
.github/workflows/TagBot.yml actions
  • JuliaRegistries/TagBot v1 composite
.github/workflows/ci.yml actions
  • actions/checkout v4 composite
  • julia-actions/cache v2 composite
  • julia-actions/julia-buildpkg latest composite
  • julia-actions/julia-processcoverage v1 composite
  • julia-actions/julia-runtest latest composite
  • julia-actions/setup-julia latest composite
.github/workflows/documentation.yml actions
  • actions/checkout v4 composite
  • julia-actions/cache v2 composite
  • julia-actions/julia-buildpkg latest composite
  • julia-actions/julia-docdeploy latest composite
  • julia-actions/setup-julia v2 composite

Score: 7.542213463193403