Skip to content

jump-dev/open-energy-modeling-benchmarks

Repository files navigation

open-energy-modeling-benchmarks

The purpose of this repository is to collate a collection of benchmarks related to open energy modeling in JuMP. These benchmarks will be used to improve JuMP and HiGHS.

This repository is part of our Open-Energy-Modeling project.

For suggestions and feedback, please open a GitHub issue.

License

This repository is licensed under the MIT license.

Structure

This repository is organized as follows:

  • /benchmark: scripts to run any required benchmarking experiments
  • /instances: a collection of MPS for benchmarking. Files in this directory are gzipped with the default gzip <file.mps>. Filenames are composed by two pieces [PREFIX]-[SHA256] where [SHA256] is the SHA256 of the uncompressed MPS file (to mitigate against potential differences in gzip settings), and [PREFIX] is a name that can be used to trace the origin of that particular model. If no prefix was defined it falls back to UNNAMED. By default, models in this directory are not included by git. Add them with git add -f instances/*.
  • /GenX: case studies and scripts to run models built with GenX.
  • /PowerModels: case studies and scripts to run models built with PowerModels.
  • /Sienna: case studies and scripts to run models built with Sienna.
  • /TulipaEnergyModel: case studies and scripts to run models built with TulipaEnergyModel.
  • Makefile: a top-level makefile to automate rebuilding the instances, and any other tasks that we end up needed to repeat regularly.

Usage instructions

Rebuild all instances with:

make all

GenX

For now, we can rebuild all of the GenX examples with (from the root of this directory):

make genx

To run a particular case, do:

julia --project=GenX GenX/main.jl --case=1_three_zones --run [--write]

See the GenX/main.jl driver script for more details.

PowerModels

For now, we can rebuild all of the PowerModels examples with (from the root of this directory):

make powermodels

To run a particular case, do:

julia --project=PowerModels PowerModels/main.jl --case=pglib_opf_case1951_rte.m --run [--write]

See the PowerModels/main.jl driver script for more details.

Sienna

For now, we can rebuild all of the Sienna examples with (from the root of this directory):

make sienna

To run a particular case, do:

julia --project=Sienna Sienna/tutorial_1.jl --case=PTDF-12 --run [--write]

See the Sienna/tutorial_1.jl driver script for more details.

SpineOpt

For now, we can rebuild all of the SpineOpt examples with (from the root of this directory):

make spineopt

To run a particular case, do:

julia --project=SpineOpt SpineOpt/main.jl --case=1_electrolyzer_with_rolling_horizon.json --run [--write]

See the SpineOpt/main.jl driver script for more details.

  • SpineOpt requires a python installation and additional install steps. See the SpineOpt/README.

TulipaEnergyModel

For now, we can rebuild all of the TulipaEnergyModel examples with (from the root of this directory):

make tulipaenergymodel

To run a particular case, do:

julia --project=TulipaEnergyModel TulipaEnergyModel/main.jl --case=1_EU_investment_simple --run [--write]

See the TulipaEnergyModel/main.jl driver script for more details.

UnitCommitment

For now, we can rebuild all of the UnitCommitment examples with (from the root of this directory):

make unitcommitment

To run a particular case, do:

julia --project=UnitCommitment UnitCommitment/main.jl --case=matpower/case1888rte/2017-01-01 --run [--write]

See the UnitCommitment/main.jl driver script for more details.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages