Skip to main content

A model generator for energy system modelling and optimisation.

Project description

tox-pytest tox-checks packaging Coverage Status

Documentation Status PyPI Package latest release Supported versions

Zenodo DOI Commits since latest release matrix-chat


https://raw.githubusercontent.com/oemof/oemof-solph/492e3f5a0dda7065be30d33a37b0625027847518/docs/_logo/logo_oemof_solph_FULL.svg

oemof.solph

A model generator for energy system modelling and optimisation (LP/MILP)

Introduction

The oemof.solph package is part of the Open energy modelling framework (oemof). This is an organisational framework to bundle tools for energy (system) modelling. oemof-solph is a model generator for energy system modelling and optimisation.

The package oemof.solph is very often called just oemof. This is because installing the oemof meta package was once the best way to get oemof.solph. Notice that you should prefeably install oemof.solph instead of oemof if you want to use solph.

Everybody is welcome to use and/or develop oemof.solph. Read our contribution section.

Contribution is already possible on a low level by simply fixing typos in oemof’s documentation or rephrasing sections which are unclear. If you want to support us that way please fork the oemof-solph repository to your own GitHub account and make changes as described in the github guidelines

If you have questions regarding the use of oemof including oemof.solph you can visit the openmod forum (tag oemof or tag oemof-solph) and open a new thread if your questions hasn’t been already answered.

Keep in touch! - You can become a watcher at our github site, but this will bring you quite a few mails and might be more interesting for developers. If you just want to get the latest news, like when is the next oemof meeting, you can follow our news-blog at oemof.org.

Documentation

The oemof.solph documentation is powered by readthedocs. Use the project site of oemof.solph to choose the version of the documentation. Go to the download page to download different versions and formats (pdf, html, epub) of the documentation.

Installation

If you have a working Python installation, use pypi to install the latest version of oemof.solph. Python >= 3.8 is recommended. Lower versions may work but are not tested.

We highly recommend to use virtual environments. Please refer to the documentation of your Python distribution (e.g. Anaconda, Micromamba, or the version of Python that came with your Linux installation) to learn how to set up and use virtual environments.

(venv) pip install oemof.solph

If you want to use the latest features, you might want to install the developer version. The developer version is not recommended for productive use:

(venv) pip install https://github.com/oemof/oemof-solph/archive/dev.zip

For running an oemof-solph optimisation model, you need to install a solver. Following you will find guidelines for the installation process for different operating systems.

Installing a solver

There are several solvers that can work with oemof, both open source and commercial. Two open source solvers are widely used (CBC and GLPK), but oemof suggests CBC (Coin-or branch and cut). It may be useful to compare results of different solvers to see which performs best. Other commercial solvers, like Gurobi or Cplex, are also options. Have a look at the pyomo docs to learn about which solvers are supported.

Check the solver installation by executing the test_installation example below (see section Installation Test).

Linux

To install the solvers have a look at the package repository of your Linux distribution or search for precompiled packages. GLPK and CBC ares available at Debian, Feodora, Ubuntu and others.

Windows

  1. Download CBC

  2. Download GLPK (64/32 bit)

  3. Unpack CBC/GLPK to any folder (e.g. C:/Users/Somebody/my_programs)

  4. Add the path of the executable files of both solvers to the PATH variable (cf. setting environment variables as user)

  5. Restart Windows

Check the solver installation by executing the test_installation example (see the Installation test section).

Mac OSX

Please follow the installation instructions on the respective homepages for details.

CBC-solver: https://github.com/coin-or/Cbc

GLPK-solver: http://arnab-deka.com/posts/2010/02/installing-glpk-on-a-mac/

If you install the CBC solver via brew (highly recommended), it should work without additional configuration.

conda

The CBC-solver can also be installed in a conda environment. Please note, that it is highly recommended to use pip after conda, so:

(venv) conda install -c conda-forge coincbc
(venv) pip install oemof.solph

Installation test

Test the installation and the installed solver by running the installation test in your virtual environment:

(venv) oemof_installation_test

If the installation was successful, you will receive something like this:

*********
Solver installed with oemof:
glpk: working
cplex: not working
cbc: working
gurobi: not working
*********
oemof.solph successfully installed.

as an output.

Contributing

A warm welcome to all who want to join the developers and contribute to oemof.solph.

Information on the details and how to approach us can be found in the oemof documentation .

Citing

For explicitly citing solph, you might want to refer to DOI:10.1016/j.simpa.2020.100028, which gives an overview over the capabilities of solph. The core ideas of oemof as a whole are described in DOI:10.1016/j.esr.2018.07.001 (preprint at arXiv:1808.0807). To allow citing specific versions, we use the zenodo project to get a DOI for each version.

Example Applications

The combination of specific modules (often including other packages) is called an application (app). For example, it can depict a concrete energy system model. You can find a large variety of helpful examples in the documentation. The examples show the optimisation of different energy systems and are supposed to help new users to understand the framework’s structure. Please make sure the example you are looking at is created for the version of solph you have installed.

You are welcome to contribute your own examples via a pull request or by e-mailing us (see here for contact information).

License

Copyright (c) oemof developer group

Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

oemof_solph-0.6.3.tar.gz (15.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

oemof_solph-0.6.3-py3-none-any.whl (128.8 kB view details)

Uploaded Python 3

File details

Details for the file oemof_solph-0.6.3.tar.gz.

File metadata

  • Download URL: oemof_solph-0.6.3.tar.gz
  • Upload date:
  • Size: 15.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for oemof_solph-0.6.3.tar.gz
Algorithm Hash digest
SHA256 6a449cfe638280990d9132a431fe5b22fc8d288edc692737737a9edaf52a583f
MD5 d4640d3abd2314eed35ea157da339d58
BLAKE2b-256 80a33c3a7ae925a3553eb6a633b0cf9b06d6a999fb02b6f93961c4ed64aebf8c

See more details on using hashes here.

File details

Details for the file oemof_solph-0.6.3-py3-none-any.whl.

File metadata

  • Download URL: oemof_solph-0.6.3-py3-none-any.whl
  • Upload date:
  • Size: 128.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for oemof_solph-0.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 232bb8913f399865781af13b66fa8ab5e07066287596719f37ac402feb9207da
MD5 82af2e46a15533ca9d4d10f0a0aefa1a
BLAKE2b-256 ff57e2c112e8628ee12d79707b2bfa1572d1a393088199edbfbbc8fa47ba2d9f

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page