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
15 changes: 12 additions & 3 deletions .github/workflows/build-spec.yml
Original file line number Diff line number Diff line change
Expand Up @@ -76,16 +76,25 @@ jobs:
- name: Generate HTML
uses: avattathil/asciidoctor-action@master
with:
program: "asciidoctor --base-dir . --destination-dir=build --backend=html5 --attribute=revnumber=${{ env.REVNUMBER }} --attribute=revdate=$(date +%F) docs/index.adoc"
program: "asciidoctor --base-dir . --attribute=revnumber=${{ env.REVNUMBER }} --attribute=revdate=$(date +%F) docs/index.adoc"

- name: Create build directory
run: |
mkdir -p build/images/schema
mkdir -p build/theme/css
mkdir -p build/theme/images
mkdir -p build/theme/js

- name: Copy resources
run: |
cp LICENSE.txt build
cp headers/*.h build/headers
cp schema/*.xsd build/schema
cp docs/index.html build
cp docs/images/favicon.ico build/images
cp docs/images/*.svg build/images
cp docs/images/schema/*.png build/images/schema
cp docs/theme/css/*.css build/theme/css
cp docs/theme/images/*.svg build/theme/images
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
3 changes: 3 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,6 @@
[submodule "docs/Reference-FMUs"]
path = docs/Reference-FMUs
url = https://github.com/modelica/Reference-FMUs.git
[submodule "docs/theme"]
path = docs/theme
url = git@github.com:modelica/ma-asciidoctor-theme.git
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}
13 changes: 7 additions & 6 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 @@ -327,7 +327,6 @@ Each state description starts with a brief state's purpose, then the mathematica
To keep the descriptions brief and redundancy low, <<fmi-common-concepts,common concepts>>, which are used by more than one interface type, are described once.

The standard document is in HTML allowing heavy use of in-document links: all state names, function names, many function arguments, XML elements and attributes are links to definitions or descriptions.
By pressing "t", the table of contents can be displayed on the left side or hidden.

In key parts of this document, non-normative examples are used to help understand the standard.
To keep the standard itself brief, the https://modelica.github.io/fmi-guides/main/fmi-guide/[FMI Implementer's Guide] was created.
Expand All @@ -336,7 +335,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