The FMI++ Python Interface

About

The Functional Mock-up Interface (FMI) specification intentionally provides only the most essential and fundamental functionalities in the form of a C interface. On the one hand, this increases flexibility in use and portability to virtually any platform. On the other hand, such a low-level approach implies several prerequisites a simulation tool has to fulfil in order to be able to utilize such an FMI component.

The FMI++ Python Interface is a Python wrapper for the FMI++ Library, which intends to bridge the gap between the basic fuctionality provided by the FMI specification and the typical requirements of simulation tools. The FMI++ Library provides high-level functionalities that ease the handling and manipulation of FMUs, such as numerical integration, advanced event-handling or state predictions. This allows FMUs to be integrated more easily, e.g., into fixed time step or discrete event simulations.

This package provides a stand-alone version of the Python interface for the FMI++ Library for Windows (as binary wheels) and Linux (as source distribution package). For other operating systems, this package can be built from source.

Getting started

The FMI++ Python Interface provides several classes that allow to manipulate FMUs for ModelExchange and for Co-Simulation. In the following, short descriptions and code snippets of the provided functionality demonstrate their usage. More extensive background information can be found in the documentation of the FMI++ Library.