Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .github/workflows/build-spec.yml
Original file line number Diff line number Diff line change
Expand Up @@ -86,6 +86,10 @@ jobs:
cp docs/images/favicon.ico build/images
cp docs/images/*.svg build/images
cp docs/images/schema/*.png build/images/schema
mkdir -p build/theme/css
cp docs/theme/css/*.css build/theme/css
mkdir -p build/theme/js
cp docs/theme/js/*.js build/theme/js

- name: Create ZIP archive
uses: actions/upload-artifact@v4.4.0
Expand Down
4 changes: 2 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ xsddiagram/
# build artifacts
build/

# keep docinfo
!docinfo.html
# keep docinfo files
!docinfo*.html

# custom automation scripts
*.bat
5 changes: 0 additions & 5 deletions docs/0___preamble.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@ The https://fmi-standard.org/[Functional Mock-up Interface (FMI)] is a free stan
[[MAP,MAP]]It is supported by https://fmi-standard.org/tools/[more than 230 tools] and maintained as a https://www.modelica.org/association/[Modelica Association Project] (MAP FMI).
https://github.com/modelica/fmi-standard/releases[Releases] and https://github.com/modelica/fmi-standard/issues[issues] can be found on https://github.com/modelica/fmi-standard[github.com/modelica/fmi-standard].

{empty} +
{empty}

Copyright (C) 2008-2011 MODELISAR Consortium and 2012-2025 The Modelica Association Project FMI.

This document is licensed under the Attribution-ShareAlike 4.0 International license.
Expand All @@ -14,5 +11,3 @@ The licenses text can be found in the https://raw.githubusercontent.com/modelica
Attention is drawn to the possibility that some of the elements of this document may be the subject of patent rights.
Modelica Association shall not be held responsible for identifying such patent rights.
All contributors to this specification have signed the https://github.com/modelica/fmi-standard.org/blob/main/static/assets/FMI_CCLA_v1.0_2016_06_21.pdf[Corporate Contributor License Agreement of the FMI Project] or the https://github.com/modelica/ModelicaAssociationCLA/releases/download/1.1.1/ModelicaAssociationCLA_1.1.1.pdf[Contributor License Agreement of the Modelica Association].

{empty}
12 changes: 7 additions & 5 deletions docs/1___overview.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ That integration algorithm of the importer, usually a ODE/DAE solver, is respons

.Schematic view of data flow between user, the solver of the importer and the FMU for Model Exchange
[#figure-model-exchange-data-flow]
image::images/model-exchange-data-flow.svg[width=40%, align="center"]
image::images/model-exchange-data-flow.svg[width=450]

==== FMI for Co-Simulation (CS)

Expand All @@ -112,7 +112,7 @@ The Co-Simulation interface is designed both for the coupling of simulation tool

.Schematic view of data flow between user, the co-simulation algorithm of the importer and the FMU for Co-Simulation
[#figure-co-simulation-data-flow]
image::images/co-simulation-data-flow.svg[width=40%, align="center"]
image::images/co-simulation-data-flow.svg[width=450]

==== FMI for Scheduled Execution (SE)

Expand All @@ -123,15 +123,15 @@ _[See also https://modelica.github.io/fmi-guides/main/fmi-guide/#_use_cases_for_

.Schematic view of data flow between user, the scheduler of the importer and model partitions of the FMU for Scheduled Execution
[#figure-scheduled-execution-data-flow]
image::images/scheduled-execution-data-flow.svg[width=40%, align="center"]
image::images/scheduled-execution-data-flow.svg[width=600]

==== Feature Overview of the Interface Types

Co-Simulation FMUs contain all code necessary to abstract away the details of their internal computations.
This simplifies the importer compared to Model Exchange and Scheduled Execution, at the cost of reduced flexibility of use.

.Simplicity of import versus flexibility of use
image::images/fmi-types-overview.svg[width=50%, align="center"]
image::images/fmi-types-overview.svg[width=550]

<<table-overview-features>> gives a non-normative overview of the features of the different interface types.

Expand Down Expand Up @@ -336,7 +336,9 @@ Contrary to the standard, the FMI Implementer's Guide will be a living document,

Conventions used in this document:

* Non-normative text is given in square brackets in italic font: _[Especially examples are defined in this style.]_
* Non-normative text is given in a gray box like this one:
+
NOTE: Especially examples are defined in this style.

* The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in https://tools.ietf.org/html/rfc2119[RFC 2119] (regardless of formatting and capitalization).

Expand Down
31 changes: 22 additions & 9 deletions docs/2_1_common_math.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,11 @@ latexmath:[t_{\mathit{Imax}}] is the largest occurring integer index of super-de
a|previous value
|====

_[Assume that an FMU has an event at latexmath:[t_R=2.1s] and here a variable changes discontinuously._
_If no event iteration occurs, the time instant when the event occurs is defined as (2.1, 0), and the time instant when the integration is restarted is defined as (2.1, 1).]_
[NOTE]
====
Assume that an FMU has an event at latexmath:[t_R=2.1s] and here a variable changes discontinuously.
If no event iteration occurs, the time instant when the event occurs is defined as (2.1, 0), and the time instant when the integration is restarted is defined as (2.1, 1).
====

The hybrid differential equations exposed by FMI for Model Exchange or wrapped by FMI for Co-Simulation are described as piecewise continuous-time systems.
Discontinuities can occur at time instants latexmath:[t_0, t_1, \ldots, t_n] where latexmath:[t_i < t_{i+1}].
Expand Down Expand Up @@ -112,15 +115,19 @@ These variables are continuous-time variables.

|`attribute = value`
|A set of variables which have an XML attribute-value combination as defined.
_[Example:_ latexmath:[\mathbf{v}_{\mathit{initial=exact}}] _are variables defined with attribute <<initial>> = <<exact>> (see <<ModelVariables>>).]_

[NOTE]
====
Example: latexmath:[\mathbf{v}_{\mathit{initial=exact}}] are variables defined with attribute <<initial>> = <<exact>> (see <<ModelVariables>>).
====

|====

At every event instant latexmath:[t_i], continuous-time variables might change discontinuously (see <<figure-piecewise-continuous-variables>>):

.Piecewise-continuous variables of an FMU: continuous-time (latexmath:[\mathbf{v}_c]), discrete-time (latexmath:[\mathbf{v}_d]) and clocked (latexmath:[\mathbf{v}_k]).
[#figure-piecewise-continuous-variables]
image::images/PieceWiseContinuousVariables.svg[width=40%]
image::images/PieceWiseContinuousVariables.svg[width=400]

The mathematical description of an FMU uses the following variables, where bold variables (e.g. latexmath:[\mathbf{v}]) indicate vectors and italic variables (e.g. latexmath:[t]) denote scalars:

Expand All @@ -132,7 +139,11 @@ The mathematical description of an FMU uses the following variables, where bold
|Description

a|latexmath:[t]
a|<<independent>> variable _[typically: time]_ latexmath:[\in \mathbb{T}].
a|<<independent>> variable

NOTE: typically: time

latexmath:[\in \mathbb{T}].
This variable is defined with <<causality>> = <<independent>>.
All other variables are functions of this independent variable.

Expand Down Expand Up @@ -190,13 +201,15 @@ latexmath:[{}^{\bullet}\mathbf{x}_d] is the value of latexmath:[\mathbf{x}_d] at
Every event removes automatically a previous definition of latexmath:[T_{\mathit{next}}], and it must be explicitly defined again, even if a previously defined latexmath:[T_{\mathit{next}}] was not yet reached (see <<fmi3UpdateDiscreteStates>>).

|[[relations,relations]] latexmath:[\mathbf{r}]
|A vector of Boolean variables representing relations: latexmath:[\mathbf{r}_j := \mathbf{z}_j > 0].
a|A vector of Boolean variables representing relations: latexmath:[\mathbf{r}_j := \mathbf{z}_j > 0].
When entering <<ContinuousTimeMode>> all relations reported via the event indicators latexmath:[\mathbf{z}] are fixed and during this mode these relations are replaced by latexmath:[^{\bullet}\mathbf{r}].
Only during <<InitializationMode>> or <<EventMode>> the domains latexmath:[\mathbf{z}_j > 0] can change.
_[For more details, see <<frozen-relations,Remark 3>> below.]_

NOTE: For more details, see <<frozen-relations,Remark 3>> below.

|[[buffers,buffers]] latexmath:[\mathbf{b}]
|Hidden data of the FMU.
_[For example, delay buffers in Model Exchange FMUs that are used in <<ContinuousTimeMode>>]_.
a|Hidden data of the FMU.

NOTE: For example, delay buffers in Model Exchange FMUs that are used in <<ContinuousTimeMode>>.

|====
Loading