Conference article

FMI Go! A simulation runtime environment with a client server architecture over multiple protocols

Claude Lacoursière
HPC2N/UMIT, Umeå University, SE-901 87, Umeå, Sweden

Tomas Härdin
HPC2N/UMIT, Umeå University, SE-901 87, Umeå, Sweden

Download article

Published in: Proceedings of the 12th International Modelica Conference, Prague, Czech Republic, May 15-17, 2017

Linköping Electronic Conference Proceedings 132:72, p. 653-662

Show more +

Published: 2017-07-04

ISBN: 978-91-7685-575-1

ISSN: 1650-3686 (print), 1650-3740 (online)


We present a software infrastructure to perform distributed simulations with Functional Mockup Interface (FMI) compatible components. Distribution is achieved done by mapping the FMI API to a communication protocol with current support for both TCP/IP and MPI. This is a client-server architecture where the client is the global simulation stepper and the servers are the simulation modules. The client contains several time stepping algorithms, root finding for cases involving loops, and support for asynchronous data exchange with ``monitors’’ and ``observers’’ which only consume data. The servers provide support for numerical directional derivatives, filtering, and interpolation. Extensive support is provided for the System Specification and Parameterization (SSP), an emerging standard aimed at supporting the FMI.

The software is open source with a permissive license and designed to be used inside simulation environments and platforms with user interfaces. The focus being strictly on the mathematical and runtime aspect of FMI based simulations.


FMI co-simulation model exchange cosimulation runtime environment numerical time integration client server architecture parallel comp


Arnold, Martin (2010). “Stability of Sequential Modular Time Integration Methods for Coupled Multibody System Models”. In: Journal of Computational and Nonlinear Dynamics 5.3, pp. 031003–031003.

Ascher, Uri M. and Linda R. Petzold (1993). “Stability of Computational Methods for Constrained Dynamics Systems”. In: SIAM J. Sci. Computing 14.1, pp. 95–120.

Awais, M. U. et al. (2013). “Distributed hybrid simulation using the HLA and the Functional Mock-up Interface”. In: Industrial Electronics Society, IECON 2013 - 39th Annual Conference of the IEEE, pp. 7564–7569.

Broman, D. et al. (2013). “Determinate composition of FMUs for co-simulation”. In: 2013 Proceedings of the International Conference on Embedded Software EMSOFT, pp. 1–12.

Cremona, F. et al. (2016). “Step revision in hybrid Cosimulation with FMI”. In: 2016 ACM/IEEE International Conference on Formal Methods and Models for System Design (MEMOCODE), pp. 173–183.

Dag Fritzson Johas Ståhl, Iakov Nakimovski (2007). “Transmission line co-simulation of rolling bearing applications”. In: The 48th Scandinavian Conference on Simulation and Modeling. Ed. by Claus Führer Peter Bunus Dag Fritzson, pp. 24–39.

Davis, Timothy A. (2004). “Algorithm 832: UMFPACK — an Unsymmetric-Pattern Multifrontal Method”. In: ACM Transactions on Mathematical Software 30.2, pp. 196–199.

Drenth, Edo (2016). “Robust Co-Simulation Methodology of Physical Systems”. In: 9th Graz Symposium Virtual Vehicle.

Eriksen, Lars and Lars Nielsen (2014). Modeling and control of engines and drivelines. John Wiley & Sons.

Fiedler, Robert and Martin Arnold (2014). “Coupled differential algebraic equations in the simulation of flexible multibody systems with hydrodynamic force elements”. In: PAMM 14.1, pp. 523–524.

Galtier, Virginie et al. (2015). “FMI-based Distributed Multi-simulation with DACCOSIM”. In: Proceedings of the Symposium on Theory of Modeling & Simulation: DEVS Integrative M&S Symposium. DEVS ’15.

Alexandria, Virginia: Society for Computer Simulation International, pp. 39–46.
Protocol Buffers (2017).

Hairer, E. (2000). “Symmetric Projection Methods for Differential Equations on Manifolds”. In: BIT Numerical Mathematics 40 (4), pp. 726–734.

Hairer, E., C. Lubich, and G. Wanner (2001). Geometric Numerical Integration. Vol. 31. Springer Series in Computational Mathematics. Berlin: Springer-Verlag.

IEEE (2010). “IEEE Standard for Modeling and Simulation (M&S) High Level Architecture (HLA)– Framework and Rules”. In: IEEE Std 1516-2010, pp. 1–38.

iMatrix (2017). ZeroMQ.

Köler, Jochen et al. (2016). “Modelica-Association-Project “System Structure and Parametrization" – Early Insights”. In: Proceedings of the 1st Japanese Modelica Conference. Modelica Association. Linköping University Electronic Press, pp. 35–42.

Krus, Petter (1995). “Modelling of Mechanical Systems using Rigid Bodies and Transmission Line Joints”. In: ASME J. Dyn. Sys., Meas., Control 121.4, pp. 606–611.

Lacoursière, Claude (2007). “Ghosts and Machines: Regularized Variational Methods for Interactive Simulations of Multibodies with Dry Frictional Contacts”.

PhD thesis. Dept. of Computing Science, Umeå University. Lacoursière, Claude and Sjöström (2014). A non-smooth event-driven, accurate, adaptive time stepper for simulating switching electronic circuits. Tech. rep. UMINF 16.15. Dept. of Computing Science, Umeå University.

M. Benedikt et al. (2013). “NEPCE - A nearly energypreserving coupling element for weak-coupled problems and co-simulations”. In: V International Conference on Computational Methods for Coupled Problems in Science and Engineering. Ed. by S. Idelsohn, M.  apadrakakis, and B. Schrefler, pp. 1021–1032.

Martin, Arnold, Clauss Christoph, and Schierz Tom (2013). “Error Analysis and Error Estimates for Co-Simulation in FMI for Model Exchange and Co-Simulation V2.0”. In: Archives of Mechanical Engineering 60. 1, pp. 75–94.

Microsoft (2017). Microsoft MPI.

MIT (n.d.). MIT license.

MODELISAR (2014). FMI website. last retrieved 2017-01-22. URL:

MPI (2017). A Message Passing Interface Standard.

MPICH (2017). High performance, widely portable implementation of the Message Passing Interface.

Ptolemaeus, Claudius, ed. (2014). System Design, Modeling, and Simulation using Ptolemy II. URL:

QTronic (2017). QTronic FMI SDK.

Schierz, Tom and Martin Arnold (2012). “Stabilized overlapping modular time integration of coupled differential-algebraic equations”. In: Applied Numerical Mathematics 62.10. Selected Papers from NUMDIFF-12, pp. 1491–1502.

Schierz, Tom, Martin Arnold, and Cristoph Clauss (2012). “Co-simulation with communication step size control in an FMI compatible master algorithm”. In: Proceedings of the 9th International MODELICA Conference.  Schweizer, B. and D. Lu (2015). “Predictor/corrector cosimulation approaches for solver coupling with algebraic constraints”. In: ZAMM 95 (9), pp. 911–938.

Schweizer, Bernhard and Pu Li (2015). “Solving Differential-Algebraic Equation Systems: Alternative Index-2 and Index-1 Approaches for Constrained Mechanical Systems”. In: Journal of Computational and Nonlinear Dynamics 11.4, pp. 044501–044501.

Schweizer, Bernhard, Pu Li, and Daixing Lu (2015). “Explicit and Implicit Cosimulation Methods: Stability and Convergence Analysis for Different Solver Coupling Approaches”. In: Journal of Computational and Nonlinear Dynamics 10.5, pp. 051007–051007.

Schweizer, Bernhard, Pu Li, Daixing Lu, and Tobias Meyer (2015). “Stabilized Implicit Cosimulation Method: Solver Coupling With Algebraic Constraints for Multibody Systems”. In: Journal of Computational and Nonlinear Dynamics 11.2, pp. 021002–021002.

Schweizer, Bernhard, Daixing Lu, and Pu Li (2015). “Cosimulation method for solver coupling with algebraic constraints incorporating relaxation techniques”. English. In: Multibody System Dynamics, pp. 1–36.

Sjölund, Martin et al. (2010). “Towards Efficient Distributed Simulation in Modelica using Transmission Line Modeling”. In: Proceedings of the 3rd International Workshop on Equation-Based Object-Oriented Languages and tools. Ed. by Peter Fritzson et al., pp. 71–80.

Zeigler, Bernard P., Herbert Praehofer, and Tag G. Kim (2000). Theory of Modeling and Simulation. 2nd ed. Academic Press.

Citations in Crossref