|
587 | 587 | <div id="header"> |
588 | 588 | <h1>Functional Mock-up Interface Specification</h1> |
589 | 589 | <div class="details"> |
590 | | -<span id="revnumber">version 223a784,</span> |
591 | | -<span id="revdate">2024-10-08</span> |
| 590 | +<span id="revnumber">version 58f4b94,</span> |
| 591 | +<span id="revdate">2024-10-16</span> |
592 | 592 | </div> |
593 | 593 | <div id="toc" class="toc2"> |
594 | 594 | <div id="toctitle">Contents</div> |
@@ -5460,13 +5460,9 @@ <h3 id="modelDescription.xml"><a class="link" href="#modelDescription.xml">2.4. |
5460 | 5460 | The content of the <code>Annotation</code> element can be arbitrary XML data, and can make use of XML namespaces and XML schemas for combined validation where appropriate.</p> |
5461 | 5461 | </div> |
5462 | 5462 | <div class="paragraph"> |
5463 | | -<p>The namespace mechanism for the <code>type</code> attribute is based on reverse domain notation: |
| 5463 | +<p>The namespace mechanism for the <code>type</code> attribute is based on <a href="#reverse-DNS">reverse domain name notation</a>: |
5464 | 5464 | The originator of a specification for additional data specifies a domain name under their control as the namespace for the additional data, in order to avoid conflicts due to name collisions. |
5465 | | -All namespaces under both the <code>org.modelica</code> and <code>org.fmi-standard</code> domains are reserved for use in future layered standards.</p> |
5466 | | -</div> |
5467 | | -<div class="paragraph"> |
5468 | | -<p><em>[For example, extensions defined by the Modelica Association might make use of the <code>org.modelica.fmi</code> namespace.</em> |
5469 | | -<em>This could lead to annotations with a <code>type</code> attribute of <code>org.modelica.fmi.something</code>, and/or extra files under the <code>extra/org.modelica.ssp.something</code> sub-directory.]</em></p> |
| 5465 | +Such standardized annotations can be defined by a <a href="#LS-reverse-DNS">layered standard</a>, for example.</p> |
5470 | 5466 | </div> |
5471 | 5467 | <div class="paragraph"> |
5472 | 5468 | <p>Annotations are intended to allow structured extensions of the FMI XML files, without creating conflicting extensions, or leaving ambiguities in interpretation. |
@@ -7849,8 +7845,8 @@ <h6 id="section-terminals"><a class="link" href="#section-terminals">2.4.9.2.2. |
7849 | 7845 | <p>The normalized string attribute <code>matchingRule</code> describes the rules for variable matching in a connection of terminals. |
7850 | 7846 | As detailed in <a href="#table-predefined-matching-rules">Table 26</a>, there are four predefined matching rules: <code>plug</code>, <code>bus</code>, <code>sequence</code>, and <code>none</code>. |
7851 | 7847 | Other standards may define new matching rules. |
7852 | | -In order to avoid ambiguities and conflicts, rule names must follow the reverse domain notation of a domain that is controlled by the entity defining the semantics and content of the additional entries. |
7853 | | -The rule names beginning with <code>org.modelica</code> and <code>org.fmi-standard</code> are explicitly reserved for use by layered standards defined by Modelica Association or its own projects (<a href="#MAP">MAPs</a>).</p> |
| 7848 | +In order to avoid ambiguities and conflicts, rule names must follow the <a href="#reverse-dns">reverse domain name notation</a> of a domain that is controlled by the entity defining the semantics and content of the additional entries. |
| 7849 | +Such rule definitions can be part of a <a href="#LS-reverse-DNS">[LS-reverse-DNS]</a>layered standard>>, for example.</p> |
7854 | 7850 | </div> |
7855 | 7851 | <table id="table-predefined-matching-rules" class="tableblock frame-all grid-all stretch"> |
7856 | 7852 | <caption class="title">Table 26. Predefined matching rules.</caption> |
@@ -7895,6 +7891,7 @@ <h6 id="section-terminals"><a class="link" href="#section-terminals">2.4.9.2.2. |
7895 | 7891 | <div id="terminalKind" class="paragraph"> |
7896 | 7892 | <p>The normalized string <code>terminalKind</code> is an optional attribute. |
7897 | 7893 | Other standards may define terminal kinds. |
| 7894 | +It is strongly recommended to use <a id="reverse-DNS"></a> to define a <code>terminalKind</code>. |
7898 | 7895 | It is intended that the <code>terminalKind</code> is used to define domain specific member variable sequences, member names and order, or high level restrictions for connections.</p> |
7899 | 7896 | </div> |
7900 | 7897 | <div class="paragraph"> |
@@ -7942,6 +7939,7 @@ <h6 id="section-terminalvars"><a class="link" href="#section-terminalvars">2.4.9 |
7942 | 7939 | </div> |
7943 | 7940 | <div class="paragraph"> |
7944 | 7941 | <p>The normalized string <code>variableKind</code> is used to provide general information about the variable. |
| 7942 | +It is strongly recommended to use <a id="reverse-DNS"></a> to define a <code>varianbleKind</code>. |
7945 | 7943 | This information defines how the connection of this variable has to be implemented (e.g. Kirchhoff’s current law or common signal flow).</p> |
7946 | 7944 | </div> |
7947 | 7945 | <div class="paragraph"> |
@@ -8873,8 +8871,7 @@ <h5 id="extra-directory"><a class="link" href="#extra-directory">2.5.1.6. Direct |
8873 | 8871 | <p>The ZIP archive may contain additional subdirectories within <code>extra/</code> that can be used to store additional data, e.g. for the implementation of <a href="#VersioningLayered">layered standards</a>.</p> |
8874 | 8872 | </div> |
8875 | 8873 | <div class="paragraph"> |
8876 | | -<p>In order to avoid ambiguities and conflicts, the names of these subdirectories should use the reverse domain notation of a domain that is controlled by the entity defining the semantics and content of the additional entries <em>[(for example <code>extra/com.example/SimTool/meta.xml</code> or <code>extra/org.example.stdname/data.asd</code>)]</em>. |
8877 | | -The use of subdirectories beginning with <code>org.modelica</code> and <code>org.fmi-standard</code> is explicitly reserved for use by <a href="#VersioningLayered">layered standards</a> defined by Modelica Association or its own projects (<a href="#MAP">MAPs</a>), i.e. layered standards defined outside the Modelica Association must not use subdirectory names beginning with these prefixes. |
| 8874 | +<p>In order to avoid ambiguities and conflicts, the names of these subdirectories should use the <a href="#reverse-dns">reverse domain name notation</a> of a domain that is controlled by the entity defining the semantics and content of the additional entries <em>[(for example <code>extra/com.example/SimTool/meta.xml</code> or <code>extra/org.example.stdname/data.asd</code>)]</em>. |
8878 | 8875 | It is explicitly allowed for tools and users other than the original creator of an FMU to modify, add or delete entries in the <code>extra/</code> directory without affecting the validity of the FMU in all other aspects. |
8879 | 8876 | Specifically all validation or digital signature schemes used to protect the content of the FMU should take the variability of extra file content into account <em>[(for example by having separate checksums or signatures for FMU core content and extra content, or not having signatures at all for extra content)]</em>.</p> |
8880 | 8877 | </div> |
@@ -9134,7 +9131,7 @@ <h3 id="VersioningLayered"><a class="link" href="#VersioningLayered">2.6. Versio |
9134 | 9131 | <tbody> |
9135 | 9132 | <tr> |
9136 | 9133 | <td class="tableblock halign-left valign-top"><p class="tableblock"><code>fmi-ls-name</code></p></td> |
9137 | | -<td class="tableblock halign-left valign-top"><p class="tableblock">Name, in reverse domain name notation, of the layered standard.</p></td> |
| 9134 | +<td class="tableblock halign-left valign-top"><p class="tableblock">Name, in <a href="#reverse-DNS">reverse domain name notation</a>, of the layered standard.</p></td> |
9138 | 9135 | </tr> |
9139 | 9136 | <tr> |
9140 | 9137 | <td class="tableblock halign-left valign-top"><p class="tableblock"><code>fmi-ls-version</code></p></td> |
@@ -9235,6 +9232,14 @@ <h3 id="VersioningLayered"><a class="link" href="#VersioningLayered">2.6. Versio |
9235 | 9232 | </xs:schema></code></pre> |
9236 | 9233 | </div> |
9237 | 9234 | </div> |
| 9235 | +<div class="paragraph"> |
| 9236 | +<p><a id="LS-reverse-DNS"></a>Layered standards use the <a href="#reverse-dns">reverse domain name notation</a> of a domain under the control of the organizations that releases the layered standard to reserve namespaces. |
| 9237 | +All namespaces under both the <code>org.modelica</code> and <code>org.fmi-standard</code> domains are reserved for use in future layered standards.</p> |
| 9238 | +</div> |
| 9239 | +<div class="paragraph"> |
| 9240 | +<p><em>[For example, extensions defined by the Modelica Association might make use of the <code>org.modelica.fmi</code> namespace.</em> |
| 9241 | +<em>This could lead to annotations with a <code>type</code> attribute of <code>org.modelica.fmi.something</code>, and/or extra files under the <code>extra/org.modelica.ssp.something</code> sub-directory.]</em></p> |
| 9242 | +</div> |
9238 | 9243 | </div> |
9239 | 9244 | </div> |
9240 | 9245 | </div> |
@@ -12231,101 +12236,102 @@ <h2 id="glossary"><a class="link" href="#glossary">Appendix A: Glossary</a></h2> |
12231 | 12236 | These parameters are different from <a href="#calculatedParameter">calculated parameters</a>, because they can be changed independently (according to their <a href="#variability"><code>variability</code></a>).</p></td> |
12232 | 12237 | </tr> |
12233 | 12238 | <tr> |
| 12239 | +<td class="tableblock halign-left valign-top"><p class="tableblock"><a id="reverse-DNS"></a><em>revers domain name notation</em> |
| 12240 | +A naming convention based on registered domain names, with the order of the components reversed for grouping purposes.</p></td> |
12234 | 12241 | <td class="tableblock halign-left valign-top"><p class="tableblock"><a id="reinitialization"></a><em>reinitialization</em></p></td> |
12235 | | -<td class="tableblock halign-left valign-top"><p class="tableblock">Recalculation of <a href="#state">continuous-time states</a> by the model.</p></td> |
12236 | 12242 | </tr> |
12237 | 12243 | <tr> |
| 12244 | +<td class="tableblock halign-left valign-top"><p class="tableblock">Recalculation of <a href="#state">continuous-time states</a> by the model.</p></td> |
12238 | 12245 | <td class="tableblock halign-left valign-top"><p class="tableblock"><em>runtime environment</em></p></td> |
12239 | | -<td class="tableblock halign-left valign-top"><p class="tableblock">See co-simulation environment</p></td> |
12240 | 12246 | </tr> |
12241 | 12247 | <tr> |
| 12248 | +<td class="tableblock halign-left valign-top"><p class="tableblock">See co-simulation environment</p></td> |
12242 | 12249 | <td class="tableblock halign-left valign-top"><p class="tableblock"><em>simulation</em></p></td> |
| 12250 | +</tr> |
| 12251 | +<tr> |
12243 | 12252 | <td class="tableblock halign-left valign-top"><p class="tableblock">Compute the behavior of one or several <em>models</em> under specified conditions.<br> |
12244 | 12253 | (see also <em>co-simulation</em>)</p></td> |
| 12254 | +<td class="tableblock halign-left valign-top"><p class="tableblock"><em>simulation model</em></p></td> |
12245 | 12255 | </tr> |
12246 | 12256 | <tr> |
12247 | | -<td class="tableblock halign-left valign-top"><p class="tableblock"><em>simulation model</em></p></td> |
12248 | 12257 | <td class="tableblock halign-left valign-top"><p class="tableblock">see <em>model</em></p></td> |
| 12258 | +<td class="tableblock halign-left valign-top"><p class="tableblock"><em>simulation program</em></p></td> |
12249 | 12259 | </tr> |
12250 | 12260 | <tr> |
12251 | | -<td class="tableblock halign-left valign-top"><p class="tableblock"><em>simulation program</em></p></td> |
12252 | 12261 | <td class="tableblock halign-left valign-top"><p class="tableblock">Software to develop and/or solve simulation <em>models</em>. |
12253 | 12262 | The software includes a <em>solver</em>, may include a user interface and methods for post processing (see also: <em>simulation tool</em>, <em>simulation environment</em>).<br></p></td> |
| 12263 | +<td class="tableblock halign-left valign-top"><p class="tableblock"><em>simulation tool</em></p></td> |
12254 | 12264 | </tr> |
12255 | 12265 | <tr> |
12256 | | -<td class="tableblock halign-left valign-top"><p class="tableblock"><em>simulation tool</em></p></td> |
12257 | 12266 | <td class="tableblock halign-left valign-top"><p class="tableblock">see <em>simulation program</em></p></td> |
| 12267 | +<td class="tableblock halign-left valign-top"><p class="tableblock"><em>simulator</em></p></td> |
12258 | 12268 | </tr> |
12259 | 12269 | <tr> |
12260 | | -<td class="tableblock halign-left valign-top"><p class="tableblock"><em>simulator</em></p></td> |
12261 | 12270 | <td class="tableblock halign-left valign-top"><p class="tableblock">A simulator can include one or more <em>simulation programs</em>.</p></td> |
| 12271 | +<td class="tableblock halign-left valign-top"><p class="tableblock"><em>simulator coupling</em></p></td> |
12262 | 12272 | </tr> |
12263 | 12273 | <tr> |
12264 | | -<td class="tableblock halign-left valign-top"><p class="tableblock"><em>simulator coupling</em></p></td> |
12265 | 12274 | <td class="tableblock halign-left valign-top"><p class="tableblock">See <em>tool coupling</em>.</p></td> |
| 12275 | +<td class="tableblock halign-left valign-top"><p class="tableblock"><em>solver</em></p></td> |
12266 | 12276 | </tr> |
12267 | 12277 | <tr> |
12268 | | -<td class="tableblock halign-left valign-top"><p class="tableblock"><em>solver</em></p></td> |
12269 | 12278 | <td class="tableblock halign-left valign-top"><p class="tableblock"><em>Software component,</em> which includes algorithms to solve <em>models</em>, for example, <em>integration algorithms</em> and <em>event handling</em> methods.</p></td> |
| 12279 | +<td class="tableblock halign-left valign-top"><p class="tableblock"><em>state</em></p></td> |
12270 | 12280 | </tr> |
12271 | 12281 | <tr> |
12272 | | -<td class="tableblock halign-left valign-top"><p class="tableblock"><em>state</em></p></td> |
12273 | 12282 | <td class="tableblock halign-left valign-top"><p class="tableblock">The continuous <a href="#state">states</a> of a model are all variables that appear differentiated in the model and are independent from each other.<br> |
12274 | 12283 | The discrete-time states of a model are time-discrete variables that have two values in a model: The value of the variable from the previous <em>event</em> instant, and the value of the variable at the actual event instant.</p></td> |
| 12284 | +<td class="tableblock halign-left valign-top"><p class="tableblock"><em>state event</em></p></td> |
12275 | 12285 | </tr> |
12276 | 12286 | <tr> |
12277 | | -<td class="tableblock halign-left valign-top"><p class="tableblock"><em>state event</em></p></td> |
12278 | 12287 | <td class="tableblock halign-left valign-top"><p class="tableblock">The time of <a href="#state-event">state <em>events</em></a> is not known apriori. |
12279 | 12288 | <a href="#fmi3GetEventIndicators">Event indicators</a> are used to allow the importer finding the time of these state events precisely.</p></td> |
| 12289 | +<td class="tableblock halign-left valign-top"><p class="tableblock"><a id="step-event"></a><em>step event</em></p></td> |
12280 | 12290 | </tr> |
12281 | 12291 | <tr> |
12282 | | -<td class="tableblock halign-left valign-top"><p class="tableblock"><a id="step-event"></a><em>step event</em></p></td> |
12283 | 12292 | <td class="tableblock halign-left valign-top"><p class="tableblock"><em>Event</em> that might occur at a completed integrator step signaled by calling <a href="#fmi3CompletedIntegratorStep"><code>fmi3CompletedIntegratorStep</code></a>. |
12284 | 12293 | Step events are, for example, used to change the mapping of the continuous states to variables (<a href="#dynamic-state-selection">dynamic state selection</a>).</p></td> |
| 12294 | +<td class="tableblock halign-left valign-top"><p class="tableblock"><em>structural parameter</em></p></td> |
12285 | 12295 | </tr> |
12286 | 12296 | <tr> |
12287 | | -<td class="tableblock halign-left valign-top"><p class="tableblock"><em>structural parameter</em></p></td> |
12288 | 12297 | <td class="tableblock halign-left valign-top"><p class="tableblock">A parameter that can be changed in <a href="#ConfigurationMode"><strong>Configuration Mode</strong></a>, i.e. prior to <a href="#InitializationMode"><strong>Initialization Mode</strong></a>, and, if tuneable, also in <a href="#ReconfigurationMode"><strong>Reconfiguration Mode</strong></a>. |
12289 | 12298 | Structural parameters can be used to influence the size and/or dimensionality of array variables of an FMU, for example.</p></td> |
| 12299 | +<td class="tableblock halign-left valign-top"><p class="tableblock"><a id="super-dense-time"></a><em>super-dense time</em></p></td> |
12290 | 12300 | </tr> |
12291 | 12301 | <tr> |
12292 | | -<td class="tableblock halign-left valign-top"><p class="tableblock"><a id="super-dense-time"></a><em>super-dense time</em></p></td> |
12293 | 12302 | <td class="tableblock halign-left valign-top"><p class="tableblock">A precise definition of time taking into account iterations at an event. |
12294 | 12303 | For an <em>FMU</em>, the <a href="#independent"><code>independent</code></a> variable time \(t \in \mathbb{T}\) is a tuple \(t = (t_R, t_I)\) where \(t_R \in \mathbb{R}, t_I \in \mathbb{N} = \{0,1,2,\ldots\}\). |
12295 | 12304 | The real part \(t_R\) of this tuple is the <a href="#independent"><code>independent</code></a> variable of the FMU for describing the continuous-time behavior of the model between events. |
12296 | 12305 | During continuous-time integration \(t_I = 0\). |
12297 | 12306 | The integer part \(t_I\) of this tuple is a counter to enumerate (and therefore distinguish) the events at the same continuous-time instant \(t_R\).</p></td> |
| 12307 | +<td class="tableblock halign-left valign-top"><p class="tableblock"><em>super-dense time instant</em></p></td> |
12298 | 12308 | </tr> |
12299 | 12309 | <tr> |
12300 | | -<td class="tableblock halign-left valign-top"><p class="tableblock"><em>super-dense time instant</em></p></td> |
12301 | 12310 | <td class="tableblock halign-left valign-top"><p class="tableblock">See <a href="#time-instant">time instant</a> and <a href="#super-dense-time">super-dense time</a>.</p></td> |
| 12311 | +<td class="tableblock halign-left valign-top"><p class="tableblock"><a id="time-event"></a><em>time event</em></p></td> |
12302 | 12312 | </tr> |
12303 | 12313 | <tr> |
12304 | | -<td class="tableblock halign-left valign-top"><p class="tableblock"><a id="time-event"></a><em>time event</em></p></td> |
12305 | 12314 | <td class="tableblock halign-left valign-top"><p class="tableblock"><em>Event</em> that is defined by a predefined time instant. |
12306 | 12315 | Since the time instant is known in advance, the integrator can select its step size so that the event point is directly reached. |
12307 | 12316 | Therefore, this event can be handled efficiently.</p></td> |
| 12317 | +<td class="tableblock halign-left valign-top"><p class="tableblock"><a id="time-instant"></a><em>time instant</em></p></td> |
12308 | 12318 | </tr> |
12309 | 12319 | <tr> |
12310 | | -<td class="tableblock halign-left valign-top"><p class="tableblock"><a id="time-instant"></a><em>time instant</em></p></td> |
12311 | 12320 | <td class="tableblock halign-left valign-top"><p class="tableblock">A moment in time, either a continuous-time instant \(t = t_R\), or a super-dense time instant \(t = (t_R, t_I)\), see also <a href="#super-dense-time">super-dense time</a>.</p></td> |
| 12321 | +<td class="tableblock halign-left valign-top"><p class="tableblock"><a id="tlm"></a><em>TLM</em></p></td> |
12312 | 12322 | </tr> |
12313 | 12323 | <tr> |
12314 | | -<td class="tableblock halign-left valign-top"><p class="tableblock"><a id="tlm"></a><em>TLM</em></p></td> |
12315 | 12324 | <td class="tableblock halign-left valign-top"><p class="tableblock">See <a href="#transmission-line-modeling">Transmission Line Modeling</a></p></td> |
| 12325 | +<td class="tableblock halign-left valign-top"><p class="tableblock"><a id="transmission-line-modeling"></a><em>Transmission Line Modeling</em></p></td> |
12316 | 12326 | </tr> |
12317 | 12327 | <tr> |
12318 | | -<td class="tableblock halign-left valign-top"><p class="tableblock"><a id="transmission-line-modeling"></a><em>Transmission Line Modeling</em></p></td> |
12319 | 12328 | <td class="tableblock halign-left valign-top"><p class="tableblock">A mathematical method which uses physically motivated time delays to decouple an equation system into independent parts during a specified time frame without compromising numerical stability. |
12320 | 12329 | Also known as the <em>bi-lateral delay line</em> method. For more details see <a href="#FBH18">[FBH18]</a>.</p></td> |
12321 | | -</tr> |
12322 | | -<tr> |
12323 | 12330 | <td class="tableblock halign-left valign-top"><p class="tableblock"><em>user interface</em></p></td> |
12324 | | -<td class="tableblock halign-left valign-top"><p class="tableblock">The part of the simulation program that gives the user control over the simulation and allows watching results.</p></td> |
12325 | 12331 | </tr> |
12326 | 12332 | <tr> |
| 12333 | +<td class="tableblock halign-left valign-top"><p class="tableblock">The part of the simulation program that gives the user control over the simulation and allows watching results.</p></td> |
12327 | 12334 | <td class="tableblock halign-left valign-top"><p class="tableblock"><em>XML</em></p></td> |
12328 | | -<td class="tableblock halign-left valign-top"><p class="tableblock">eXtensible Markup Language (<a href="https://www.w3.org/XML/">www.w3.org/XML</a>, <a href="https://en.wikipedia.org/wiki/Xml">en.wikipedia.org/wiki/XML</a>) - An open standard to store information in text files in a structured form.</p></td> |
12329 | 12335 | </tr> |
12330 | 12336 | </tbody> |
12331 | 12337 | </table> |
|
0 commit comments