Home


👋 About CoFMPy¶
CoFMPy is a Python library designed for co-simulating Functional Mock-up Units (FMUs). It offers advanced master coordination features, such as solving algebraic loops between FMUs and managing the interaction between various simulation components. This library provides a seamless interface to orchestrate complex physics simulations and handle the data exchange between FMUs.
The documentation is available online: https://irt-saint-exupery.github.io/CoFMPy/
🐾 Installation¶
CoFMPy is available on PyPI and can be installed using pip
:
pip install cofmpy
🐍 Python interface¶
The Python interface allows users to use CoFMPy and run co-simulation. A high-level API is provided to easily run and visualize a co-simulation system. Advanced users can also dive deeper into the structure of CoFMPy for a more advanced control of the components.
Under the hood, CoFMPy is controlled by a component called the Coordinator. It is the entry point of CoFMPy and it manages all the other components:
- the Master algorithm which is the engine that runs the co-simulation of FMUs.
- the Graph Engine that builds the connections and interactions between the FMUs and the data sources and sinks.
- the data stream handlers that control the input data required by the co-simulation system.
- the data storages that allow to store or send the outputs of the simulation.
- the GUI as the frontend of CoFMPy.
📜 JSON configuration file¶
To properly define the co-simulation system, a JSON configuration file must be created. This file is the only information required by CoFMPy to run the simulation. It must respect a specific syntax in order to define the FMUs, the interactions between them, the data sources and sinks, etc.
✒️ Contributing¶
Feel free to propose your ideas or come and contribute with us on the CoFMPy library!
🙏 Acknowledgments¶
This project was funded by the European Union under GA no 101101961 - HECATE. Views and opinions expressed are however those of the authors only and do not necessarily reflect those of the European Union or Clean Aviation Joint Undertaking. Neither the European Union nor the granting authority can be held responsible for them. The project is supported by the Clean Aviation Joint Undertaking and its Members.




📝 License¶
The package is released under the 2-Clause BSD License.