Package: oemof.solph
oemof.solphA model generator for energy system modelling and optimisation (LP/MILP)IntroductionDocumentationInstallationInstalling a solverInstallation testContributingCitingExamplesLicenseIntroductionThe oemof.solph package is part of theOpen 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 packageoemof.solphis very often called justoemof.
This is because installing theoemofmeta package was once the best way to getoemof.solph.
Notice that you should prefeably installoemof.solphinstead ofoemofif you want to usesolph.Everybody is welcome to use and/or develop oemof.solph.
Read ourcontributionsection.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 thegithub guidelinesIf you have questions regarding the use of oemof including oemof.solph you can visit the openmod forum (tag oemofortag oemof-solph) and open a new thread if your questions hasn’t been already answered.Keep in touch! - You can become a watcher at ourgithub 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 atoemof.org.DocumentationTheoemof.solph documentationis powered by readthedocs. Use theproject siteof oemof.solph to choose the version of the documentation. Go to thedownload pageto download different versions and formats (pdf, html, epub) of the documentation.InstallationIf 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.solphIf you want to use the latest features, you might want to install thedeveloper version. The developer version is not recommended for productive use:(venv) pip install https://github.com/oemof/oemof-solph/archive/dev.zipFor 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 solverThere 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 thepyomo docsto learn about which solvers are supported.Check the solver installation by executing the test_installation example below (see section Installation Test).LinuxTo 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.WindowsDownloadCBCDownloadGLPK (64/32 bit)Unpack CBC/GLPK to any folder (e.g. C:/Users/Somebody/my_programs)Add the path of the executable files of both solvers to the PATH variable usingthis tutorialRestart WindowsCheck the solver installation by executing the test_installation example (see theInstallation testsection).Mac OSXPlease follow the installation instructions on the respective homepages for details.CBC-solver:https://projects.coin-or.org/CbcGLPK-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.condaProvided you are using a Linux or MacOS, the CBC-solver can also be installed in acondaenvironment. Please note, that it is highly recommended touse pip after conda, so:(venv)conda install -c conda-forge coincbc(venv)pip install oemof.solphInstallation testTest the installation and the installed solver by running the installation test
in your virtual environment:(venv)oemof_installation_testIf 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.ContributingA 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 foundin the oemof documentation.CitingFor explicitly citing solph, you might want to refer toDOI: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 inDOI:10.1016/j.esr.2018.07.001(preprint atarXiv:1808.0807).
To allow citing specific versions, we use the zenodo project to get a DOI for each version.ExamplesThe 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.
There is some elaboration on the examples in the respective repository.
The repository has sections for each major release.You are welcome to contribute your own examples via apull requestor by e-mailing us (seeherefor contact information).LicenseCopyright (c) 2023 oemof developer groupPermission 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.