MasterSim is an FMI Co-Simulation master and programming library. It supports the
Functional Mockup Interface for Co-Simulation in Version 1.0 and 2.0. Using the functionality
of Version 2.0, it implements various iteration algorithms that rollback FMU slaves and
increase stablity of coupled simulation.
MasterSim is actively developed at the Technische Universität Dresden, Institut für Bauklimatik (see contact page).
Parts of MasterSim
MasterSim consists of three parts:
- MasterSimulator command line executable
- MasterSimulator user interface
- MasterSim programming library
Why use MasterSim?
First of all, it is free! The complete source code is available on its SourceForge-project page under
an open source license.
But there are many other reasons for using MasterSim:
- MasterSim is a cross-platform development, available for Windows, Linux and MacOS
- Support for scripted execution
- Support for several FMU instances within the same co-simulation scenario
- Highly configurable master algorithms
- Auto-connection feature in user interface (very useful when connecting FMUs with many matching inputs and outputs)
- Detailed simulation statistics inform about where in your co-simulation is most of the simulation time spend; This is very helpful for performance tuning and selection of the optimal algorithm
- Support for parallel executed variation studies (several MasterSimulator processes), where the same FMU file is used concurrently in several simulations running in parallel
- Diagnostic options that assist FMU developers when debugging their FMU code
- Source code comes with few dependencies on other libraries (only C/C++ standard library and Qt for the user interface), which ensures long lifetime and compatibility for many platforms.
- Software and code is actively developed, used and maintained at the Institut für Bauklimatik, TU Dresden
Details about these features can be found on the documentation page or on the SourceForge-project WIKI-pages.
MasterSim Software Library
With the library you can implement co-simulation functionality into your own simulation
programs with little effort.
FMU Import functionality
The library supports extraction of FMU archives, reading
of modelDescription.xml files, importing shared
library symbols into memory. This is all neatly encapsulated in corresponding classes.
Included in the library source code are standard master algorithms, such
as Gauss-Jacobi, Gauss-Seidel and Newton. They can be readily
used in own code without any work necessary (except for tuning of some numerical parameters, perhaps).
Best-practice guide and example code
The command line co-simulation solver MasterSimulator and the user interface code
can be used as guide and tutorial on how to write such code yourself.
Co-Simulation Standard Support
The library supports currently the FMI Co-Simulation Standard 1.0 and 2.0. Some
of the algorithms (i.e. all algorithms that need setting back of FMU states) require
FMI v2.0, but Gauss-Jacobi and Gauss-Seidel work with FMU 1.0 as well.