You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/1___overview.adoc
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -63,7 +63,7 @@ Clarifications and fixes of all FMI 3.0 patch releases (FMI 3.0.x) are listed in
63
63
=== Overview
64
64
65
65
The Functional Mock-up Interface (FMI) defines a ZIP archive and an application programming interface (API) to exchange dynamic models using a combination of XML files, binaries and C code: the Functional Mock-up Unit (FMU).
66
-
The API is used by a simulation environment, the importer, to create one or more instances of an FMU and to simulate them, typically together with other models.
66
+
The API is used by a simulator, the importer, to create one or more instances of an FMU and to simulate them, typically together with other models.
67
67
The FMI defines three interface types:
68
68
69
69
* <<fmi-for-co-simulation,Co-Simulation (CS)>> where the FMU typically contains its own solver or scheduler,
The Co-Simulation interface is designed both for the coupling of simulation tools, and the coupling of subsystem models, exported by a modeling environment together with their solvers as runnable code.
110
+
The Co-Simulation interface is designed both for the coupling of _simulators_, and the coupling of subsystem models, exported by a modeling environment together with their solvers as runnable code.
111
111
(See <<fmi-for-co-simulation>>.)
112
112
113
113
.Schematic view of data flow between user, the co-simulation algorithm of the importer and the FMU for Co-Simulation
@@ -197,7 +197,7 @@ Expressivity::
197
197
The FMI provides the necessary features to package models of different domains, such as multi-body and virtual ECUs, into an FMU.
198
198
199
199
Stability::
200
-
The FMI is expected to be supported by many simulation tools worldwide.
200
+
The FMI is expected to be supported by many _simulators_ worldwide.
201
201
Implementing such support is a major investment for tool vendors.
202
202
Stability and backwards compatibility of the FMI has therefore high priority.
contains the function prototypes of an FMU that may be accessed in simulation environments.
69
+
contains the function prototypes of an FMU that may be accessed in simulator.
70
70
+
71
71
This header file includes `fmi3PlatformTypes.h` and `fmi3FunctionTypes.h`.
72
72
The header file version number for which the model was compiled, may be inquired by the importer with <<fmi3GetVersion>>. +
@@ -109,14 +109,14 @@ A function that is defined as `fmi3GetFloat64` is changed by the macros to a fun
109
109
- If the FMU is shipped with C source code or with static link library: +
110
110
The constructed function name is `MyModel_fmi3GetFloat64`.
111
111
In other words, the function name is prefixed with the model name and an `pass:[_]`.
112
-
A simulation environment may therefore construct the relevant function names by generating code for the actual function call.
112
+
A simulator may therefore construct the relevant function names by generating code for the actual function call.
113
113
In case of a static link library, the name of the library must be `MyModel.lib` on Windows and `libMyModel.a` on Linux; in other words the <<modelIdentifier>> attribute is used to create the library name.
114
114
115
115
- If the FMU is shipped with DLL/SharedObject: +
116
116
The constructed function name is `fmi3GetFloat64`, in other words, it is not changed.
117
117
_[This can be realized in the case of a source code FMU with a target-specific version of `fmi3Functions.h` that does not use FMI3_FUNCTION_PREFIX to construct the function names._
118
118
_Using the standard-supplied version of `fmi3Functions.h`, the same effect can be achieved by defining the `FMI3_OVERRIDE_FUNCTION_PREFIX` precompiler macro prior to the inclusion of the `fmi3Functions.h` header, for example using precompiler command-line flags.]_
119
-
A simulation environment dynamically loads this library and explicitly imports the function pointers by providing the FMI function names as strings.
119
+
A simulator dynamically loads this library and explicitly imports the function pointers by providing the FMI function names as strings.
120
120
The name of the library must be `MyModel.dll` on Windows or `MyModel.so` on Linux; in other words the <<modelIdentifier>> attribute is used as library name.
121
121
122
122
Since <<modelIdentifier>> may be used as prefix of a C-function name it must fulfill the restrictions on C-function
Copy file name to clipboardExpand all lines: docs/2_3_common_states.adoc
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -92,7 +92,7 @@ For FMUs that have clocks, `eventModeUsed = fmi3True` is required.
92
92
* [[earlyReturnAllowed,`earlyReturnAllowed`]]If `earlyReturnAllowed = fmi3True` the importer can handle <<early-return,early return>>.
93
93
Only in this case, <<fmi3DoStep>> may return with <<earlyReturn,`earlyReturn = fmi3True`>>.
94
94
95
-
* `instanceEnvironment` is a pointer that must be passed to <<fmi3IntermediateUpdateCallback>>, <<fmi3ClockUpdateCallback>>, and <<logMessage,`fmi3LogMessageCallback`>> to allow the simulation environment an efficient way to identify the calling FMU.
95
+
* `instanceEnvironment` is a pointer that must be passed to <<fmi3IntermediateUpdateCallback>>, <<fmi3ClockUpdateCallback>>, and <<logMessage,`fmi3LogMessageCallback`>> to allow the simulator an efficient way to identify the calling FMU.
96
96
97
97
* [[requiredIntermediateVariables,`requiredIntermediateVariables`]] `requiredIntermediateVariables` is an array of the value references of all <<input>> variables that the simulation algorithm intends to set and all <<output>> variables it intends to get during intermediate updates.
98
98
This set may be empty (<<nRequiredIntermediateVariables>> = 0) when the simulation algorithm does not intend to use intermediate update.
@@ -122,7 +122,7 @@ If the FMU does not define any log categories, `category` must be `NULL`.
122
122
123
123
+
124
124
All string-valued arguments passed by the FMU to the <<logMessage>> may be deallocated by the FMU directly after function <<logMessage>> returns.
125
-
_[The simulation environment must therefore create copies of these strings if it needs to access these strings later.]_ +
125
+
_[The simulator must therefore create copies of these strings if it needs to access these strings later.]_ +
126
126
Variables can be referenced in a message with `pass:[#]<ValueReference>pass:[#]`.
127
127
If the character `pass:[#]` shall be included in the message, it has to be prefixed with `pass:[#]`, so `pass:[#]` is an escape character. +
128
128
_[Example: The message `\#1365# must be larger than zero (used in IO channel ##4)` might be changed by the <<logMessage>> function to `body.m must be larger than zero (used in IO channel #4)` if `body.m` is the name of the variable with value reference 1365.]_
@@ -137,7 +137,7 @@ See <<fmi3ClockUpdateCallback>> for details.
137
137
See <<preemption-support>> for details.
138
138
139
139
+
140
-
The arguments <<logMessage>>, <<fmi3IntermediateUpdateCallback,`intermediateUpdate`>>, <<fmi3ClockUpdateCallback,`clockUpdate`>>, <<preemption-support,`lockPreemption`>>, and <<preemption-support,`unlockPreemption`>>, are function pointers provided by the simulation environment to be used by the FMU.
140
+
The arguments <<logMessage>>, <<fmi3IntermediateUpdateCallback,`intermediateUpdate`>>, <<fmi3ClockUpdateCallback,`clockUpdate`>>, <<preemption-support,`lockPreemption`>>, and <<preemption-support,`unlockPreemption`>>, are function pointers provided by the simulator to be used by the FMU.
141
141
Each of these pointers can be NULL to indicate missing support for the respective functionality.
142
142
If such functionality is used anyway, undefined behavior results.
143
143
_[For example, if <<logMessage,`logMessage = NULL`>>, calls to <<fmi3SetDebugLogging>> result in undefined behavior of the FMU._
Copy file name to clipboardExpand all lines: docs/2_4_common_schema.adoc
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2340,7 +2340,7 @@ _This header file is not included in the `binaries` directory, because it is imp
2340
2340
_pass:[]`fmi3FunctionTypes.h` / `fmi3Functions.h` are not needed in the `sources` directory, because they are implicitly defined by attribute `fmiVersion` in file <<modelDescription.xml>>._
2341
2341
_Furthermore, in order that the C compiler can check for consistent function arguments, the header file from the importer should be used when compiling the C sources._
2342
2342
_It would therefore be counter-productive (unsafe) if this header file was present._ +
2343
-
_These header files are not included in the `binaries` directory, since they are already utilized to build the executable of the simulation environment._
2343
+
_These header files are not included in the `binaries` directory, since they are already utilized to build the executable of the simulator._
2344
2344
_The version number of the header file used to construct the FMU can be deduced via attribute `fmiVersion` in file <<modelDescription.xml>> or via function call <<fmi3GetVersion>>.]_
Copy file name to clipboardExpand all lines: docs/3_3_model_exchange_example.adoc
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
=== Code Example
2
2
3
-
In the following example, the usage of the `fmi3XXX` functions is sketched in order to clarify the typical calling sequence of the functions in a simulation environment.
4
-
Furthermore, it is assumed that one FMU is directly integrated in a simulation environment.
3
+
In the following example, the usage of the `fmi3XXX` functions is sketched in order to clarify the typical calling sequence of the functions in a simulator.
4
+
Furthermore, it is assumed that one FMU is directly integrated in a simulator.
5
5
If the FMU would be used inside another model, additional code is needed, especially initialization and event iteration have to be adapted.
In the following example, the usage of the FMI functions is sketched in order to clarify the typical calling sequence of the functions in a simulation environment.
53
+
In the following example, the usage of the FMI functions is sketched in order to clarify the typical calling sequence of the functions in a simulator.
54
54
We consider two FMUs, where both have one <<continuous>> floating point <<input>> and one <<continuous>> floating point <<output>> which are connected in the following way:
Copy file name to clipboardExpand all lines: docs/4___co-simulation.adoc
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
== FMI for Co-Simulation [[fmi-for-co-simulation]]
2
2
3
-
FMI for Co-Simulation provides a standardized interface for execution of simulation models or tools in a co-simulation environment.
3
+
FMI for Co-Simulation provides a standardized interface for execution of simulation models or _simulators_ in a co-simulation environment.
4
4
In contrast to FMI for Model Exchange, a Co-Simulation FMU implements not only the model algorithm, but also the required solution method.
5
5
The data exchange between FMUs is restricted to discrete communication points latexmath:[t_i] (unless <<IntermediateUpdateMode>> is used).
6
6
In the time between two communication points (or between entering <<IntermediateUpdateMode>>), the subsystem inside an FMU is solved independently by internal means.
Copy file name to clipboardExpand all lines: docs/7___appendix.adoc
+9-18Lines changed: 9 additions & 18 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -32,10 +32,10 @@ A <<Clock>> tick causes a <<Clock>> activation at that time instant, except for
32
32
|See <<time-instant>>.
33
33
34
34
|_co-simulation_
35
-
|Coupling of several _simulation programs_ in order to compute the global behavior of a system that consists of several subsystems.
35
+
|Coupling of several _simulators_ in order to compute the global behavior of a system that consists of several subsystems.
36
36
The subsystems are coupled in the sense that the behavior of each subsystem depends on the behavior of the remaining subsystems, so that the co-simulation must be computed in a step-by-step fashion.
37
-
Each simulation program is responsible for computing the behavior of a subsystem, using the outputs produced by the other simulation programs.
38
-
Synonyms: dynamic mutual-exchange, simulator coupling, and coupled simulation.
37
+
Each simulator is responsible for computing the behavior of a subsystem, using the outputs produced by the other simulators.
38
+
Synonyms: dynamic mutual-exchange, and coupled simulation.
39
39
40
40
|_direct feedthrough_
41
41
|Direct feedthrough describes that values of output variables depend directly on values of input variables.
@@ -113,7 +113,7 @@ It may contain multiple FMI types, see <<multipleInterfaceTypes>>.
113
113
114
114
|[[importer, importer]]_importer_
115
115
|The tool that imports or loads one or more FMUs.
116
-
Also called simulation environment, environment, calling environment, (co-)simulation algorithm, target platform, target environment, integrator (in ME).
116
+
Also called simulator, (co-)simulation algorithm, target platform, target environment, integrator (in ME).
117
117
118
118
|_independent variable_
119
119
|All variables are a function of this <<independent>> variable, typically time.
@@ -153,7 +153,7 @@ It can be used to compute its expected behavior under specified conditions.
153
153
|The model description file is an XML file named <<modelDescription.xml>>, which supplies a description of all properties of a _model_ (for example, <<input>> / <<output>> variables).
154
154
155
155
|_Model Description Schema_
156
-
|An _XML_ schema that defines how all relevant, non-executable, information about a "model class" (_FMU)_ is stored in a text file in _XML_ format.
156
+
|An _XML_ schema that defines how all relevant, non-executable, information about a "model class" (_FMU_) is stored in a text file in _XML_ format.
157
157
Most important, data for every variable is defined (variable name, handle, data type, variability, unit, etc.), see <<modelDescription.xml>>.
@@ -185,7 +185,7 @@ These parameters are different from <<calculatedParameter,calculated parameters>
185
185
|Recalculation of <<state,continuous-time states>> by the model.
186
186
187
187
|_runtime environment_
188
-
|See co-simulation environment
188
+
|See _simulator_
189
189
190
190
|_simulation_
191
191
|Compute the behavior of one or several _models_ under specified conditions. +
@@ -194,18 +194,9 @@ These parameters are different from <<calculatedParameter,calculated parameters>
194
194
|_simulation model_
195
195
|see _model_
196
196
197
-
|_simulation program_
198
-
|Software to develop and/or solve simulation _models_.
199
-
The software includes a _solver_, may include a user interface and methods for post processing (see also: _simulation tool_, _simulation environment_). +
200
-
201
-
|_simulation tool_
202
-
|see _simulation program_
203
-
204
197
|_simulator_
205
-
|A simulator can include one or more _simulation programs_.
206
-
207
-
|_simulator coupling_
208
-
|See _tool coupling_.
198
+
|Software to develop and/or solve simulation _models_.
199
+
The software includes a _solver_, may include a user interface and methods for post processing.
209
200
210
201
|_solver_
211
202
|_Software component,_ which includes algorithms to solve _models_, for example, _integration algorithms_ and _event handling_ methods.
@@ -252,7 +243,7 @@ Therefore, this event can be handled efficiently.
252
243
Also known as the _bi-lateral delay line_ method. For more details see <<FBH18>>.
253
244
254
245
|_user interface_
255
-
|The part of the simulation program that gives the user control over the simulation and allows watching results.
246
+
|The part of a _simulator_ that gives the user control over the simulation and allows watching results.
256
247
257
248
|_XML_
258
249
|eXtensible Markup Language (https://www.w3.org/XML/[www.w3.org/XML], https://en.wikipedia.org/wiki/Xml[en.wikipedia.org/wiki/XML]) - An open standard to store information in text files in a structured form.
0 commit comments