ficus: A (mixed integer) linear optimisation model for local energy systems

Maintainer:Dennis Atabay, <>
Organization:Institute for Energy Economy and Application Technology, Technische Universität München
Date:September 10, 2015
Copyright:This documentation is licensed under a Creative Commons Attribution 4.0 International license.


This documentation contains the following pages:


  • ficus is a (mixed integer) linear programming model for multi-commodity energy systems.
  • It finds the minimum cost energy system to satisfy given demand timeseries for possibly multiple commodities (e.g. electricity, heat)
  • It considers given cost timeseries for external obtained commodities as well as peak demand charges with configurable timebase for each commodity
  • It allows to deactivate specific equations, so the model becomes a linear programming model without integer variables
  • It supports multiple-input and multiple-output energy conversion technologies with load dependent efficiencies
  • Thanks to pandas, complex data analysis code is short and extensible.
  • The model itself is quite small thanks to relying on the Pyomo packages.
  • ficus includes reporting and plotting functions


This is a typical result plot created by ficus.plot_timeseries(), showing electricity generation, consumption and storage levels over 7 days:



  • matplotlib for plotting
  • pandas for input and result data handling, report generation
  • pyomo for the model equations and interface to optimisation solvers (CPLEX, GLPK, Gurobi, ...).