oemof – a framework

The framework oemof contains various packages for different tasks. Some are stand-alone libraries, others depend on the oemof core API. – creating an energy system

The library is the base of solver libraries. It can be used to flexibly create energy systems which are internally represented as a bipartite directed graph.


oemof.solph – linear optimisation library

The energy system modelling library solph is part of the oemof installation. This library is used to simulate or optimize multi-regional energy systems considering power, heat and mobility. Furthermore, it is possible to switch between a dispatch and an investment models.

Solph uses the python package pyomo to create linear problems which can be solved by known solvers such as coin-or, gurobi or cplex.

oemof.outputlib and oemof-visio – collecting and plotting results

The oemof.outputlib library is part of the oemof installation. The outputlib collects the results of an optimisation as a dictionary containing scalar values and pandas DataFrames. This makes it easy to process or plot the results using the capabilities of the pandas library.

Beside this, the package oemof_visio provides some basic plot methods to create nice plots. The oemof plot methods can be used additionally and are easily combined with the plot capabilities of pandas and matplotlib.


feedinlib – time series of pv or wind power plants

The modelling library feedinlib is not part of the oemof installation and can be used as a stand-alone application. Feed-in time series of volatile power plants are essential for most energy system models.

The feedinlib will be revised in the near future but the last stable release can still be used.

Clone or fork the ‘feedinlib’ at github and use it within your project. Don’t forget to play back your fixes and improvements. We are pleased to get your feedback.

Annual feedin of wind and pv power plants in Germany using the feedinlib
Annual feedin of wind and pv power plants in Germany using the feedinlib

windpowerlib – time series of wind power plants and farms

The windpowerlib is a library that provides a set of functions and classes to calculate the power output of wind turbines and wind farms. It was originally part of the feedinlib (windpower and pv) but was taken out to build up a community concentrating on wind power models. It is still used by the feedinlib to create wind power time series.

demandlib – create demand profiles

The demandlib library is not part of the oemof installation and can be used as a stand-alone application. It can be used to create time series given the annual demand.

Heat and electricity series of different sectors
Heat and electricity series of different sectors

TESPy – thermal process simulation

TESPy (Thermal Engineering Systems in Python) is a new software in the oemof cosmos. It supplies a large toolbox for simulation of thermal processes, such as heat pumps, thermal power plants or heating networks. You can use TESPy for the design of your plants and predict the offdesign performance. This way TESPy can provide characteristics, for instance the backpressure-line of a chp or temperature dependent COP of a heat pump, for your energy system optimization in oemof.solph.

TESPy is available at You can find the online documentation at readthedocs. If you have any questions or issues, feel free to contact us or open an issue on the github repository.

heat pump topology and COP for different loads and at different ambient temperatures

oemof.db – a toolbox to use postgresql databases

The oemof.db extension is a toolbox to use databases with oemof. There are still parts the rely on the oemof postgis database. If you are interested to join the oemof database project please contact us.

It is planed to be an adapter for open databases (climate data, power plants, etc.).