Challenges for development of configurator based on integrated water, energy, food, and environment systems based on oemof

Dear openmod community,

Thank you very much for your everlasting work developing and updating open energy modeling frameworks. I am a PhD student at RLI Berlin, with the main objective to provide planning support for integrated water, energy, food, and environment systems with open software. Thereby, I currently face challenges for implementing the final part of the project, a configurator for integrated water, energy, food, and environment systems (iWEFEs). In the following, I will shortly describe the background and use case of the tool and then state the challenges I currently face. It would be great to discuss these with you!


The integration of water, energy, food, and environment systems allows the tapping of cross-sectoral synergies and minimization of trade-offs. The development of iWEFEs can be more resource efficient than single sector systems. Examples for iWEFEs include agrivoltaics, renewable-energy-powered water pumps and water treatment systems, biogas production from residues and wastewater, saline water greenhouses, constructed wetland, green roofs, and hydroponics. Despite their benefits, iWEFEs are rarely put into practice because of, among others, a lack of site-specific data and open tools to describe, model, and configure them.

Use Case

Given site-specific, physical and socioeconomic input data, the iWEFEs configurator shall (1) recommend a suitable iWEFEs, and (2) size it according to end-user demands and cost and environmental impact minimization objectives. Users of the tool shall be farmers, small communities, and NGOs planning to improve their water, energy, and food security while protecting the climate and the environment. Inputs for the app are geographic and socioeconomic data describing the local WEFE conditions and nexus. The inputs are a) collected from remote and open servers and b) collected from the end-users via surveys integrated into the app. As an output, the app suggests preliminary design plans of a site-tailored iWEFEs solution which can be used for applying for financing, decision-making and as a draft for detailed system and construction planning.

Characteristics Wishlist

  • Open-source code and open-access application
  • Desktop and mobile phone app
  • Two-step optimization:
    1. selection of suitable iWEFEs technology combinations, 2) sizing
  • Multi-objective optimization: Minimization of Cost, CO2-Emission, and Water Footprint
  • Model of complex WEFE components, processes, and interactions like plant growth, and the microclimatic effects within agrivoltaics systems; support of non-linear relations or smart ways of linearization
  • Simple GUI, app shall be usable without need for software development and technical background

Related repos:

OWEFE: GitHub - rl-institut/OWEFE: open modeling framework for integrated water, energy, food, and environment systems

WEFE Site Analyst (currently under development): GitHub - JulianBarinton/WEFESiteAnalyst: automatized acquisition and analysis of open data for the site-tailored planning of integrated Water-Energy-Food-Environment systems (iWEFEs).

Challenges for iWEFEs configurator implementation in oemof

As I have already built the underlying open water energy food and environmental modeling framework (OWEFE) based on oemof, I also would like to build the iWEFEs Configurator based on oemof. Thereby, there are major challenges to overcome:

  • As I understood, multi-objective optimization is not directly supported in oemof. Moreover, the investment mode seems pretty inconvenient for creating multi-objective optimization models. Are there simple options to solve multi-objective optimization problems in oemof?
  • The lack of support for non-linear relations is problematic for my project. So far, I have tackled these issues with conversion factors, which are recalculated each time step. However, I am uncertain if this procedure works for all complex processes and interactions occurring in OWEFE. Is a wider support of non-linear relations planned?
  • The optimization of multi-objective problems must operate in an extended search space. Conventional algorithms might not be capable of finding the optimum solutions while minimizing computational demand. The usage of AI-based algorithms and machine learning might effectively tackle this challenge. Is it planned to make further optimizers and application of machine learning available in oemof?

In case you think that these challenges cannot be solved in oemof, which modeling framework would you recommend for solving them?

Thank you very much for your attention! Looking forward to your comments and a fruitful discussion.


Julian Fleischmann

With just a quick scan, a couple of points to consider

  • you say non‑linear, but does your problem still remain convex — if not, that will take you outside mix‑integer linear programming and the usual paradigm deployed here?
  • how do you intend to handle multi‑objective optimization — one strategy might be to settle on one objective and explore the Pareto frontier by scanning some subset of the scenario space in a somewhat arbitrary fashion using a number of runs?

The phone‑based usability features look really useful, particularly for data collection and recording community preferences.

The role of AI is not one that has been pursued much in this community. Certainly related work on demand estimation but not core behavior of the system — as far as I know, perhaps someone can update me.

Good luck! R

Hi @JulianBarinton, thanks for your input.

If mixed integer is considered “non-linear”, more is on the way (e.g. Upgrade OffsetConverter by sasa821 · Pull Request #895 · oemof/oemof-solph · GitHub). However, solph focuses on (mixed integer) linear optimisation in particular because of poor availability of free (libre) solvers for higher orders. If this does not change, I don’t see higher orders coming to solph.

There are two approaches that I have seen in the oemof community. Both use a weighted combination of the objectives as the costs in solph. The first approach is to scan the Pareto front by varying the weights. The second is to implement investment in an “outer loop” and use solph just for the optimised operation (e.g. A generalised optimal design methodology for distributed energy systems). In this approach, the weight is considered the same way as the investment and is varied in the outer loop.

The paper about the second approach in the last answer uses heuristics (“AI”). The method is not part of any oemof package but uses PyGMO for the part wrapping solph. As solph is pretty much designed around Pyomo and single-objective optimisation, I don’t see it’s solver replaced. If there is interest, however, there might be something new under the oemof umbrella.