GenX
A highly-configurable, open source electricity resource capacity expansion model that incorporates several state-of-the-art practices in electricity system planning to offer improved decision support for a changing electricity landscape.
https://github.com/genxproject/genx.jl
Keywords from Contributors
power-systems energy-system-modeling capacity-expansion-planning parallel symbolic-computation surrogate energy-system hybrid-differential-equation numerical ode
Last synced: 3 days ago
JSON representation
Acceptance Criteria
- Revelant topics? false
- External users? true
- Open source license? true
- Active? true
- Fork? false
Repository metadata
GenX: a configurable power system capacity expansion model for studying low-carbon energy futures. More details at : https://genx.mit.edu
- Host: GitHub
- URL: https://github.com/genxproject/genx.jl
- Owner: GenXProject
- License: gpl-2.0
- Created: 2021-05-19T17:57:57.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2025-04-16T20:34:40.000Z (12 days ago)
- Last Synced: 2025-04-20T01:05:52.543Z (8 days ago)
- Language: Julia
- Homepage: https://genxproject.github.io/GenX.jl/
- Size: 198 MB
- Stars: 301
- Watchers: 17
- Forks: 130
- Open Issues: 65
- Releases: 16
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Citation: CITATION.cff
- Zenodo: .zenodo.json
README.md
Documentation | DOI |
---|---|
Overview
GenX is a highly-configurable, open source electricity resource capacity expansion model
that incorporates several state-of-the-art practices in electricity system planning to offer improved decision support for a changing electricity landscape.
The model was originally developed by
Jesse D. Jenkins and
Nestor A. Sepulveda at the Massachusetts Institute of Technology and is now jointly maintained by
a team of contributors at the Princeton University ZERO Lab (led by Jenkins), MIT (led by Ruaridh MacDonald), NYU (led by Dharik Mallapragada), and Binghamton University (led by Neha Patankar).
GenX is a constrained linear or mixed integer linear optimization model that determines the portfolio of electricity generation,
storage, transmission, and demand-side resource investments and operational decisions to meet electricity demand in one or more future planning years at lowest cost,
while subject to a variety of power system operational constraints, resource availability limits, and other imposed environmental, market design, and policy constraints.
GenX features a modular and transparent code structure developed in Julia + JuMP.
The model is designed to be highly flexible and configurable for use in a variety of applications from academic research and technology evaluation to public policy and regulatory analysis and resource planning.
Depending on the planning problem or question to be studied,
GenX can be configured with varying levels of model resolution and scope, with regards to:
(1) temporal resolution of time series data such as electricity demand and renewable energy availability;
(2) power system operational detail and unit commitment constraints;
and (3) geospatial resolution and transmission network representation.
The model is also capable of representing a full range of conventional and novel electricity resources,
including thermal generators, variable renewable resources (wind and solar), run-of-river, reservoir and pumped-storage hydroelectric generators,
energy storage devices, demand-side flexibility, demand response, and several advanced technologies such as long-duration energy storage.
The 'main' branch is the current master branch of GenX. The various subdirectories are described below:
-
src/
Contains the core GenX model code for reading inputs, model generation, solving and writing model outputs. -
example_systems/
Contains fully specified examples that users can use to test GenX and get familiar with its various features. -
docs/
Contains source files for documentation pertaining to the model.
Requirements
GenX (v0.4.4) runs on Julia v1.6 through v1.9, with a minimum version of the package JuMP v1.1.1. Julia v1.10 and v1.11 are also supported. However, we recently noticed a decline in performance with Julia v1.10, which is currently under investigation. Therefore, we recommend using Julia v1.9, particularly for very large cases.
We recommend the users to either stick to a particular version of Julia to run GenX. If however, the users decide to switch between versions, it's very important to delete the old Manifest.toml
file and do a fresh build of GenX when switching between Julia versions.
There is also an older version of GenX, which is also currently maintained and runs on Julia 1.3.x and 1.4.x series.
For those users who has previously cloned GenX, and has been running it successfully so far,
and therefore might be unwilling to run it on the latest version of Julia:
please look into the GitHub branch, old_version.
It is currently setup to use one of the following open-source freely available solvers:
- the default solver: HiGHS for linear programming and MILP,
- Clp for linear programming (LP) problems,
- Cbc for mixed integer linear programming (MILP) problems
We also provide the option to use one of these two commercial solvers: - Gurobi, or
- CPLEX.
Note that using Gurobi and CPLEX requires a valid license on the host machine.
There are two ways to run GenX with either type of solver options (open-source free or, licensed commercial) as detailed in the section,Getting Started
.
Documentation
Detailed documentation for GenX can be found here.
It includes details of each of GenX's methods, required and optional input files, and outputs.
Interested users may also want to browse through prior publications that have used GenX to understand the various features of the tool.
How to cite GenX
We request that users of GenX to cite it in their academic publications and patent filings.
MIT Energy Initiative and Princeton University ZERO lab. GenX: a configurable power system capacity expansion model for studying low-carbon energy futures n.d. https://github.com/GenXProject/GenX
Bug and feature requests and contact info
If you would like to report a bug in the code or request a feature, please use our Issue Tracker.
If you're unsure or have questions on how to use GenX that are not addressed by the above documentation, please reach out to Sambuddha Chakrabarti ([email protected]), Jesse Jenkins ([email protected]) or Dharik Mallapragada ([email protected]).
GenX Team
GenX has been developed jointly by researchers at the MIT Energy Initiative and the ZERO lab at Princeton University.
Key contributors include Nestor A. Sepulveda,
Jesse D. Jenkins,
Dharik S. Mallapragada,
Aaron M. Schwartz,
Neha S. Patankar,
Qingyu Xu,
Jack Morris,
Luca Bonaldo
Sambuddha Chakrabarti.
Acknowledgement
The GenX team expresses deep gratitude to Maya Mutic for developing the tutorials along with Filippo Pecci and Luca Bonaldo.
The Julia-themed GenX logo was designed by Laura Zwanziger and Jacob Schwartz.
Citation (CITATION.cff)
cff-version: 1.2.0 message: "If you use this software, please cite it as below." authors: - family-names: "Bonaldo" given-names: "Luca" orcid: "https://orcid.org/0009-0000-0650-0266" - family-names: "Chakrabarti" given-names: "Sambuddha" orcid: "https://orcid.org/0000-0002-8916-5076" - family-names: "Cheng" given-names: "Fangwei" orcid: "https://orcid.org/0000-0001-6589-2749" - family-names: "Ding" given-names: "Yifu" orcid: "https://orcid.org/0000-0001-7128-8847" - family-names: "Jenkins" given-names: "Jesse" orcid: "https://orcid.org/0000-0002-9670-7793" - family-names: "Luo" given-names: "Qian" orcid: "https://orcid.org/0000-0003-3894-4093" - family-names: "Macdonald" given-names: "Ruaridh" orcid: "https://orcid.org/0000-0001-9034-6635" - family-names: "Mallapragada" given-names: "Dharik" orcid: "https://orcid.org/0000-0002-0330-0063" - family-names: "Manocha" given-names: "Aneesha" orcid: "https://orcid.org/0000-0002-7190-4782" - family-names: "Mantegna" given-names: "Gabe" orcid: "https://orcid.org/0000-0002-7707-0221" - family-names: "Morris" given-names: "Jack" - family-names: "Patankar" given-names: "Neha" orcid: "https://orcid.org/0000-0001-7288-0391" - family-names: "Pecci" given-names: "Filippo" orcid: "https://orcid.org/0000-0003-3200-0892" - family-names: "Schwartz" given-names: "Aaron" - family-names: "Schwartz" given-names: "Jacob" orcid: "https://orcid.org/0000-0001-9636-8181" - family-names: "Schivley" given-names: "Greg" orcid: "https://orcid.org/0000-0002-8947-694X" - family-names: "Sepulveda" given-names: "Nestor" orcid: "https://orcid.org/0000-0003-2735-8769" - family-names: "Xu" given-names: "Qingyu" orcid: "https://orcid.org/0000-0003-2692-5135" title: "GenX" version: 0.4.4 doi: 10.5281/zenodo.10846070 date-released: 2025-02-04 url: "https://github.com/GenXProject/GenX.jl"
Owner metadata
- Name:
- Login: GenXProject
- Email:
- Kind: user
- Description:
- Website:
- Location:
- Twitter:
- Company:
- Icon url: https://avatars.githubusercontent.com/u/84470580?v=4
- Repositories: 1
- Last ynced at: 2023-03-04T04:04:17.182Z
- Profile URL: https://github.com/GenXProject
GitHub Events
Total
- Fork event: 12
- Create event: 22
- Commit comment event: 6
- Release event: 3
- Issues event: 33
- Watch event: 36
- Delete event: 14
- Member event: 1
- Issue comment event: 63
- Push event: 274
- Pull request event: 67
- Pull request review event: 95
- Pull request review comment event: 211
Last Year
- Fork event: 12
- Create event: 22
- Commit comment event: 6
- Release event: 3
- Issues event: 33
- Watch event: 36
- Delete event: 14
- Member event: 1
- Issue comment event: 63
- Push event: 274
- Pull request event: 67
- Pull request review event: 95
- Pull request review comment event: 211
Committers metadata
Last synced: 8 days ago
Total Commits: 904
Total Committers: 34
Avg Commits per committer: 26.588
Development Distribution Score (DDS): 0.694
Commits in past year: 86
Committers in past year: 8
Avg Commits per committer in past year: 10.75
Development Distribution Score (DDS) in past year: 0.488
Name | Commits | |
---|---|---|
sambuddhac | s****i@g****m | 277 |
Jacob Schwartz | j****b@j****t | 174 |
nspatank | n****k@n****u | 131 |
Luca Bonaldo | 3****o | 75 |
jfmorris | j****s@m****u | 61 |
Jesse Jenkins | j****s@g****m | 25 |
rmacd757 | r****d@m****u | 20 |
Filippo Pecci | p****o@g****m | 13 |
Gabe Mantegna | 3****a | 12 |
Qingyu Xu | q****x@p****u | 12 |
aaronms | a****s@m****u | 11 |
Dharik Mallapragada | d****3@g****m | 11 |
Pietro Monticone | 3****e | 10 |
Greg Schivley | g****g@c****o | 9 |
github-actions[bot] | 4****] | 8 |
GenXProject | 8****t | 7 |
aaronsax | 3****x | 7 |
wilson-ricks | w****s@p****u | 6 |
Maya Mutic | 6****c | 6 |
ql0320 | 4****b | 5 |
Yuheng Zhang | 5****r | 4 |
Dharik Mallapragada | d****k@m****u | 4 |
Derek Wacks | d****s@g****m | 3 |
aneeshamanocha | 3****a | 3 |
Abdelrahman Ayad | 7****d | 1 |
Fangwei Cheng | f****k@v****u | 1 |
Greg Schivley | g****y@g****m | 1 |
CompatHelper Julia | c****y@j****g | 1 |
Nick Laws | N****s | 1 |
Nick Robinson | n****1@g****m | 1 |
and 4 more... |
Committer domains:
- mit.edu: 4
- princeton.edu: 2
- julialang.org: 1
- virginia.edu: 1
- carbonimpact.co: 1
- ncsu.edu: 1
- jaschwartz.net: 1
Issue and Pull Request metadata
Last synced: 4 days ago
Total issues: 153
Total pull requests: 220
Average time to close issues: 4 months
Average time to close pull requests: 16 days
Total issue authors: 46
Total pull request authors: 19
Average comments per issue: 2.37
Average comments per pull request: 0.65
Merged pull request: 172
Bot issues: 0
Bot pull requests: 2
Past year issues: 76
Past year pull requests: 108
Past year average time to close issues: 16 days
Past year average time to close pull requests: 14 days
Past year issue authors: 30
Past year pull request authors: 14
Past year average comments per issue: 1.57
Past year average comments per pull request: 0.45
Past year merged pull request: 77
Past year bot issues: 0
Past year bot pull requests: 0
Top Issue Authors
- cfe316 (30)
- JesseJenkins (10)
- abooda1981 (10)
- AshwinSandeep1 (9)
- gschivley (9)
- filippopecci (8)
- MADNANTARRAR (7)
- gmantegna (6)
- ran1988 (5)
- ASamarkRoth (5)
- manarjar (4)
- wrgunther (4)
- mrchamanbaz (3)
- lbonaldo (2)
- ml6802 (2)
Top Pull Request Authors
- lbonaldo (86)
- sambuddhac (43)
- cfe316 (24)
- filippopecci (19)
- qluo0320github (9)
- mmutic (8)
- NLaws (7)
- RuaridhMacd (4)
- joaquimg (4)
- Betristor (3)
- gmantegna (3)
- github-actions[bot] (2)
- yifueve (2)
- odow (1)
- abdelrahman-ayad (1)
Top Issue Labels
- bug (52)
- enhancement (34)
- question (30)
- documentation (6)
- good first issue (3)
- wontfix (2)
- help wanted (2)
- waiting for feedback (1)
- needs reproduction (1)
Top Pull Request Labels
- Skip-Changelog (27)
- enhancement (16)
- bug (11)
- documentation (8)
- skip changelog (3)
Package metadata
- Total packages: 1
-
Total downloads:
- julia: 7 total
- Total dependent packages: 0
- Total dependent repositories: 0
- Total versions: 5
juliahub.com: GenX
GenX: a configurable power system capacity expansion model for studying low-carbon energy futures. More details at : https://genx.mit.edu
- Homepage: https://genxproject.github.io/GenX.jl/
- Documentation: https://docs.juliahub.com/General/GenX/stable/
- Licenses: GPL-2.0
- Latest release: 0.4.4 (published 3 months ago)
- Last Synced: 2025-04-23T01:02:24.563Z (5 days ago)
- Versions: 5
- Dependent Packages: 0
- Dependent Repositories: 0
- Downloads: 7 Total
-
Rankings:
- Dependent repos count: 9.486%
- Average: 23.889%
- Dependent packages count: 38.292%
Score: 11.37490400707284