This page provides the by MAP eFMI published material: the eFMI Standard, selected recommended documentation and introductory material (overview papers, teaser videos etc), project reports and forms, and eFMI Standard accompanying documents like crosscheck test cases and example eFMUs. Scientific publications are listed separately on the Publications page. For an overview of third party eFMI tooling, please consult the Tools page.
The resources provided on this page can be categorized in:
eFMI Standard releases
Most recent stable release
There exists no current stable release yet. The first release will be the upcoming eFMI Standard 1.0.0; in the meantime, please see the current candidate-drafts.
Current candidate-drafts
The next major upcoming eFMI Standard release is version 1.0.0; below are the candidate-drafts for it. Please see the release cycle for details about the release schedule and for an estimation of maturity of candidate-drafts.
- eFMI Standard 1.0.0 Beta 1 (2024-07-02):
- eFMI Standard 1.0.0 Alpha 4 (2021-02-22):
Previous stable releases
There are no previous stable releases yet. We are still in the process of finishing the first official release; please see the current candidate-drafts.
MAP eFMI published tooling
MAP eFMI provides a set of open source tools and libraries to foster the eFMI ecosystem. For tooling, including commercial tools, that are not MAP eFMI published, please see the Tools page. For final release distributions of MAP eFMI published tooling, please check each individual tool’s repository; note that we apply a unique versioning scheme such that every tool version can be mapped to the eFMI Standard it supports and vice-versa. The tools published by MAP eFMI are:
- eFMI crosscheck test cases: The official eFMI test cases for demonstrating and evaluating eFMI tooling.
- eFMI Container Manager: A tool for creating, checking, reading and modifying eFMUs and their individual containers.
- eFMI Compliance Checker: A tool for checking eFMUs for conformance with the eFMI Standard.
Project organization
- MAP eFMI bylaws (PDF)
- Membership application guidelines and form (PDF)
- Modelica Association Contributor License Agreement (MA CLA) (PDF)
Annual project reports at Modelica Association assembly meetings
Recommended documentation and introductory material
Overview and introduction
- eFMI motivation and objectives teaser (mp4):
- A 3:20-minutes video summarizing the application domain, motivation and objectives of the eFMI Standard.
- eFMI overview paper (PDF) at the 14th International Modelica Conference:
- A comprehensive and highly recommended introductory overview paper about eFMI technology and the eFMI Standard.
- eFMI vs. FMI lineup (mp4):
- A 3:32-minutes summary of the relation of eFMI compared to FMI, highlighting the need for another standard.
- eFMI® scope and delimitation (PDF)
- Classification of eFMI w.r.t. related standards and ecosystems in the (physics) simulation and embedded software domain, highlighting its focus on (1) embedded software development, (2) single function-level design not composition & distributed-deployment and (3) non-functional quality criteria. The unique language design characteristics of eFMI GALEC are used to exemplify the focal point of eFMI: bringing acausal physics simulation to the safety-critical and hard real-time world all the way down to actual target hardware and their ecosystems.
eFMI® Tutorial
A comprehensive eFMI tutorial has been presented at the 15th International Modelica Conference, 9th of October 2023, Aachen, Germany. The tutorial starts with a general eFMI motivation and overview, proceeds with a running example motivating eFMI, a hands-on to generate eFMUs for the running example with a step-by-step guide in Dymola (Dassault Systèmes) and Software Production Engineering (former name CATIA ESP) (Dassault Systèmes), followed by a live presentation of TargetLink (dSPACE GmbH) support for eFMI production code generation and system integration in Simulink® (The MathWorks, Inc.) and other dedicated embedded target environments – including harware-in-the-loop simulation and binary code statistics for the running example – and finally finishes with a short summary of further eFMI tooling, like TPT (PikeTec GmbH) and AUTOSAR Builder (Dassault Systèmes):
- eFMI® Tutorial Agenda (slides (PDF))
- Part 1: eFMI® motivation and overview (recording (mp4), slides (PDF))
- Part 2: Running use-case introduction (recording (mp4), slides (PDF))
- Part 3: Hands on demonstration in Dymola and Software Production Engineering (former name CATIA ESP) (recording (mp4), slides (PDF))
- Part 4: Live demonstration in TargetLink (recording (mp4), slides (PDF))
- Part 5: Short presentation of further tooling (recording (mp4), slides (PDF))
Use-cases and industrial applications
- ITEA 3 EMPHYSIS industrial demonstrator report (PDF):
- The final report summarizing the industrial demonstrators developed in the ITEA 3 Call 2 project EMPHYSIS (see the About page for details about the relationship of MAP eFMI with EMPHYSIS). The report explains the used eFMI tooling and tool interactions, the performance assessment conducted to compare eFMI with state-of-the-art embedded software development, the test suite and unit tests to validate eFMI tooling compatibility (crosschecks) and the varying actual industrial demonstrators and their challenges and eFMI-based solution.
Example eFMUs
Drivetrain torque controller with eFMI 1.0.0 Alpha 4
Example eFMU with Algorithm Code, Production Code, Binary Code and Behavioral Model containers for a drivetrain torque controller. The example and its original Modelica model defining the physics of the drivetrain (the plant model) are test case M04 of the eFMI crosscheck test cases. The embedded controller developed in the eFMU is an approximated inverse model of the drivetrain plant model combined with a simple PI controller. The respective Modelica models of the test setup and controller are:
The example eFMU provides the following eFMI containers, each generated by varying eFMI tooling:
- A Behavioral Model container providing two test scenarios and the original Modelica model defining the controller subject to embedded code generation.
- An Algorithm Code container providing GALEC code – i.e., an algorithmic, causal solution – for the controller; it has been generated using Dymola (Dassault Systèmes).
- Four Production Code containers for the Algorithm Code container, generated using two different tools: Software Production Engineering (former name CATIA ESP) (Dassault Systèmes) and TargetLink (dSPACE GmbH). With each tool two production codes are generated, a 32-Bit and a 64-Bit floating point precision version. All 4 production codes pass MISRA C:2012 checks with Cppcheck 2.10.
- A Binary Code container for the 32-Bit floating point precision production code of Software Production Engineering, targeting Windows x86 and generated using Software Production Engineering.
TPT (PikeTec GmbH) has been used to validate each production code against the scenarios of the Behavioral Model container. The respective test results are stored in TestResult
folders of their respective Production Code containers. Minor differences due to floating point precision are visible by the TPT tests; still all 32-Bit compared to 64-Bit floating point precision results are within the tolerances of the test scenarios defined in the Behavioral Model container’s manifest.
The final content of the collaboratively developed eFMU is:
Note that manifests link dependent containers for traceability. Production code manifests, for example, link back to the Algorithm Code container they implement by means of ManifestReference
and individual ForeignVariableReference
for each block-variable of the original GALEC code. eFMU consistency between dependent artefacts is ensured by means of SHA-1 checksums. For example, the GALEC code of an Algorithm Code container is listed as File
element with a mandatory checksum; likewise, the ManifestReference
of a Production Code container’s manifest lists the checksum of the respective Algorithm Code container manifest it implements.
The schemas
folder contains the XSD Schemas for all manifests as defined in the eFMI Standard 1.0.0. The __content.xml
of the eFMU’s root directory lists all containers of the eFMU; it is the unique entry point for reading and working with the eFMU.