Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
  • Loading branch information
modelica committed Jul 7, 2023
1 parent ce09cb2 commit 3682ed9
Show file tree
Hide file tree
Showing 3 changed files with 137 additions and 36 deletions.
109 changes: 97 additions & 12 deletions static/docs/main/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="Asciidoctor 2.0.18">
<meta name="generator" content="Asciidoctor 2.0.20">
<title>System Structure and Parameterization</title>
<style>
/* Asciidoctor default stylesheet | MIT License | http://asciidoctor.org */
Expand Down Expand Up @@ -586,8 +586,8 @@
<div id="header">
<h1>System Structure and Parameterization</h1>
<div class="details">
<span id="revnumber">version 9e90b07,</span>
<span id="revdate">2023-04-30</span>
<span id="revnumber">version 4ba64bd,</span>
<span id="revdate">2023-07-07</span>
</div>
<div id="toc" class="toc2">
<div id="toctitle">Contents</div>
Expand Down Expand Up @@ -2440,19 +2440,24 @@ <h4 id="_connectors">5.2.1. Connectors</h4>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">kind</p></td>
<td class="tableblock halign-left valign-top"><div class="content"><div class="paragraph">
<p>This attribute specifies the kind of the given connector, which indicates whether the connector is an input, an output, both (inout), a parameter or a calculated parameter (i.e. a parameter that is calculated by the component during initialization).</p>
<p>This attribute specifies the kind of the given connector, which indicates whether the connector is an input, an output, both (inout), a constant, a parameter, a calculated parameter (i.e. a parameter that is calculated by the component during initialization), or a structural parameter (i.e. a parameter that can be set during (re-)configuration mode).</p>
</div>
<div class="paragraph">
<p>For components this <strong>MUST</strong> match the related kind of the underlying component implementation. For referenced FMUs it <strong>MUST</strong> match the combination of variability and causality:</p>
<p>For components this <strong>MUST</strong> match the related kind of the underlying component implementation.
For referenced FMUs it <strong>MUST</strong> match the combination of variability and causality:</p>
</div>
<div class="paragraph">
<p>For FMI 2.0 and 3.0 this means that the causality of the variable <strong>MUST</strong> match the kind of the connector (with the kind inout not being valid for either FMI 3.0, 2.0, or 1.0).</p>
</div>
<div class="paragraph">
<p>For FMI 1.0 this means that for connectors of kind input or output the causality of the variable <strong>MUST</strong> be input or output and the variability of the variable <strong>MUST</strong> be discrete or continuous (for outputs also constant and parameter are allowable). For connectors of kind parameter the causality of the FMI 1.0 variable <strong>MUST</strong> be input or internal and the variability <strong>MUST</strong> be parameter. For connectors of kind calculatedParameter the causality of the FMI 1.0 variable <strong>MUST</strong> be output and the variability <strong>MUST</strong> be parameter.</p>
<p>For FMI 1.0 this means that for connectors of kind input or output the causality of the variable <strong>MUST</strong> be input or output and the variability of the variable <strong>MUST</strong> be discrete or continuous (for outputs also constant and parameter are allowable).
For connectors of kind parameter the causality of the FMI 1.0 variable <strong>MUST</strong> be input or internal and the variability <strong>MUST</strong> be parameter.
For connectors of kind calculatedParameter the causality of the FMI 1.0 variable <strong>MUST</strong> be output and the variability <strong>MUST</strong> be parameter.
For connectors of kind constant the causality of the FMI 1.0 variable <strong>MUST</strong> be output and the variability <strong>MUST</strong> be constant.</p>
</div>
<div class="paragraph">
<p>For SignalDictionaryReferences, the kind of a given connector can additionally be inout, which indicates that the semantics of the connector are derived from the connections going to the connector. This can be used for example to allow a connector to function as both an input and output within the same SignalDictionaryReference.</p>
<p>For SignalDictionaryReferences, the kind of a given connector can additionally be inout, which indicates that the semantics of the connector are derived from the connections going to the connector.
This can be used for example to allow a connector to function as both an input and output within the same SignalDictionaryReference.</p>
</div></div></td>
</tr>
</tbody>
Expand Down Expand Up @@ -2770,7 +2775,7 @@ <h4 id="_parameterbindings">5.2.3. ParameterBindings</h4>
A parameter binding applies a set of parameter values (a parameter set), supplied by a parameter source (for example a parameter file) to parametrize a component or system.</p>
</div>
<div class="paragraph">
<p>For FMU components this allows the parametrization of the FMU&#8217;s parameters and start values of other variables.
<p>For FMU components this allows the parametrization of the FMU&#8217;s parameters, structural parameters, and start values of other variables.
For systems this allows the parametrization of complete (sub-)hierarchies of sub-systems and components using a hierarchical naming scheme.</p>
</div>
<div class="paragraph">
Expand Down Expand Up @@ -2814,14 +2819,16 @@ <h4 id="_parameterbindings">5.2.3. ParameterBindings</h4>
The standard allows such punning, because the ability to have a . in the name of systems or components allows for example the replacement of a monolithic component with a system of components, or vice-versa, while keeping parameter names identical.</em> ]</p>
</div>
<div class="paragraph">
<p>More than one ParameterBinding can be supplied., In this case all of the parameters found will be used to parametrize the component, with parameter values in ParameterBinding sources appearing at a succeeding position in the element order taking priority over prior sources at the same hierarchy level, should a parameter be included in more than one ParameterBinding source.</p>
<p>More than one ParameterBinding can be supplied.
In this case all of the parameters found will be used to parametrize the component, with parameter values in ParameterBinding sources appearing at a succeeding position in the element order taking priority over prior sources at the same hierarchy level, should a parameter be included in more than one ParameterBinding source.</p>
</div>
<div class="paragraph">
<p>When ParameterBinding sources on multiple levels of the hierarchy supply values for the same parameter, bindings at a higher hierarchy level take precedence over lower levels, i.e. bindings at a system level take precedence over bindings at a sub-system or component level.</p>
</div>
<div class="paragraph">
<p>Parameter bindings for FMU components can be used to set any initial values in the FMU which are legal to change.
It is assumed that the parameterization is applied prior to initializing for FMI 1.0, or before entering initialization mode for FMI 2.0.</p>
It is assumed that the parameterization is applied prior to initializing for FMI 1.0, or before entering initialization mode for FMI 2.0/3.0.
For structural parameters it is assumed that the parameterization is applied in configuration mode for FMI 3.0.</p>
</div>
<div class="paragraph">
<p>This means that variables eligible for parameterization are those with:</p>
Expand Down Expand Up @@ -3109,7 +3116,7 @@ <h5 id="_allowed_connections">5.3.2.1. Allowed connections</h5>
</div>
<div class="paragraph">
<p>Implementations <strong>MUST NOT</strong> specify connections that are not of one of the allowed combinations in the following table.
Implementations <strong>MUST</strong> ensure that data flow is specified unambiguously, including ensuring that not multiple connections with inbound data flow enter into a connector signifying an input, inout or parameter connector of an element, or a calculatedParameter or output connector of an enclosing system.</p>
Implementations <strong>MUST</strong> ensure that data flow is specified unambiguously, including ensuring that not multiple connections with inbound data flow enter into a connector signifying an input, inout, parameter, or structuralParameter connector of an element, or a constant, calculatedParameter, or output connector of an enclosing system.</p>
</div>
<table class="tableblock frame-all grid-all stretch">
<colgroup>
Expand All @@ -3135,6 +3142,18 @@ <h5 id="_allowed_connections">5.3.2.1. Allowed connections</h5>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">System</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">structuralParameter</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">System</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">calculatedParameter</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">System</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">structuralParameter</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">System</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">output</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">System</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">parameter</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">System</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">calculatedParameter</p></td>
Expand All @@ -3153,6 +3172,30 @@ <h5 id="_allowed_connections">5.3.2.1. Allowed connections</h5>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">System</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">structuralParameter</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Element</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">structuralParameter</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">System</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">structuralParameter</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Element</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">parameter</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">System</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">structuralParameter</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Element</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">input</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">System</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">structuralParameter</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Element</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">inout</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">System</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">parameter</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Element</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">parameter</p></td>
Expand Down Expand Up @@ -3183,6 +3226,30 @@ <h5 id="_allowed_connections">5.3.2.1. Allowed connections</h5>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Element</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">constant</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Element</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">structuralParameter</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Element</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">constant</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Element</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">parameter</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Element</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">constant</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Element</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">input</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Element</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">constant</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Element</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">inout</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Element</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">calculatedParameter</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Element</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">parameter</p></td>
Expand Down Expand Up @@ -3219,13 +3286,31 @@ <h5 id="_allowed_connections">5.3.2.1. Allowed connections</h5>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Element</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">constant</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">System</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">constant</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Element</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">constant</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">System</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">calculatedParameter</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Element</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">constant</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">System</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">output</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Element</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">calculatedParameter</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">System</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">calculatedParameter</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">Element</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">calcualtedParameter</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">calculatedParameter</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">System</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">output</p></td>
</tr>
Expand Down
32 changes: 20 additions & 12 deletions static/docs/main/schema/SystemStructureDescription.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -646,30 +646,36 @@
<xs:annotation>
<xs:documentation xml:lang="en">
This attribute specifies the kind of the given connector,
which indicates whether the connector is an input, an
output, both (inout), a parameter or a calculated parameter (i.e.
a parameter that is calculated by the component during initialization).
which indicates whether the connector is an input, an output,
both (inout), a constant, a parameter, a calculated parameter
(i.e. a parameter that is calculated by the component during
initialization), or a structural parameter (i.e. a parameter
that can be set during (re-)configuration mode).

For components this must match the related kind of the underlying
component implementation, e.g. for referenced FMUs it must match the
combination of variability and causality.
component implementation. For referenced FMUs it must match the
combination of variability and causality:

For FMI 2.0 this means that the causality of the variable must
match the kind of the connector.
For FMI 2.0 and 3.0 this means that the causality of the variable
must match the kind of the connector (with the kind inout not being
valid for either FMI 3.0, 2.0, or 1.0).

For FMI 1.0 this means that for connectors of kind input or output
the causality of the variable must be input or output and the
variability of the variable must be discrete or continuous (for
outputs also constant and parameter are allowable). For connectors
of kind parameter the causality must be input or internal and the
variablity must be parameter. For connectors of kind
calculatedParameter the causality must be output and the variablity
must be parameter.
of kind parameter the causality of the FMI 1.0 variable must be
input or internal and the variability must be parameter. For
connectors of kind calculatedParameter the causality of the FMI 1.0
variable must be output and the variability must be parameter. For
connectors of kind constant the causality of the FMI 1.0 variable
must be output and the variability must be constant.

For SignalDictionaryReferences, the kind of a given connector can
additionally be 'inout', which indicates that the semantics of the
connector are derived from the connections going to the connector.
This can be used for example to allow a connector to function as
both an input and output within the same SignaleDictionaryReference.
both an input and output within the same SignalDictionaryReference.
</xs:documentation>
</xs:annotation>
<xs:simpleType>
Expand All @@ -678,6 +684,8 @@
<xs:enumeration value="output"/>
<xs:enumeration value="parameter"/>
<xs:enumeration value="calculatedParameter"/>
<xs:enumeration value="structuralParameter"/>
<xs:enumeration value="constant"/>
<xs:enumeration value="inout"/>
</xs:restriction>
</xs:simpleType>
Expand Down
Loading

0 comments on commit 3682ed9

Please sign in to comment.