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.
Tutorial¶
An in-depth tutorial is available online. The tutorial’s demos are also available as Code Ocean compute capsule.
- Class fmipp.FMUModelExchangeV1
- Class fmipp.FMUModelExchangeV2
- Class fmipp.FMUCoSimulationV1
- Class fmipp.FMUCoSimulationV2
- Class fmipp.IncrementalFMU
- Class fmipp.RollbackFMU
- Class fmipp.FixedStepSizeFMU
- Class fmipp.InterpolatingFixedStepSizeFMU
- Class fmipp.VariableStepSizeFMU
- Class fmipp.export.FMIAdapterBase
- Class fmipp.export.FMIAdapterV2