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

## Contents¶

This documentation contains the following pages:

## Features¶

• ficus is a (mixed integer) linear programming model for multi-commodity energy systems.
• It finds the minimum cost energy system to satisfy given demand time-series for possibly multiple commodities (e.g. electricity, heat)
• It considers given cost time-series 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
• ficus includes reporting and plotting functions

## Installation¶

If you don’t already have an existing Python I recommend using the Python distribution Anaconda. It contains all needed packages except Pyomo.

1. Anaconda (Python 2.7 or Python 3.5). Choose the 64-bit installer if possible. During the installation procedure, keep both checkboxes “modify PATH” and “register Python” selected!
2. Pyomo (pip install pyomo)
4. Copy the ficus.py file to a directory which is already in python’s search path or add the python folder to python’s search path (sys.path) (how to)
5. Install a solver (optional).

## Get started¶

1. Run the given examples in the examples folder.

## Solver¶

Pyomo allows using the NEOS Server for Optimization for solving, so it is not required to install a solver.

I still recommend to install and use one of the following solvers.

1. GLPK (open source)
This is a typical result plot created by ficus.plot_timeseries(), showing electricity generation and consumption over 7 days: