oemof.solph is a model generator for energy system modelling and optimisation. It facilitates the formulation of (mixed-integer) linear programs from a generic graph-based structure, allowing to create multi-sector models on different levels of detail with user-defined time-resolution.
oemof.solph facilitates the formulation of (mixed-integer) linear programs meant for energy system optimisation (e.g. unit commitment, investment planning) using an object-oriented graph-based approach.
As a user, you define buses and components (the nodes) of an energy system graph, and connect these using directed edges called flows. The formulation of the components is centred on the mathematical properties, e.g. a Converter
is used to formulate proportional relations, an OffsetConverter
allows to add proportional relations with an offset. This generic way allows to create multi-sector models on different levels of detail.
The time resolution is defined globally by the user giving a list of time stamps. This way, it is even possible to have different resolutions for different periods of time. For example, in a solar powered system, coarse time steps might do for the nights but increased resolution could be valuable around sunrise and sunset. An experimental feature also allows to define investments to take place at multiple points in time, allowing to optimise gradual transitions in large-scale models.
oemof.solph is part of the open energy modelling framework (oemof), that bundles several tools that are meant to complement each other.