Skip to content

Commit 1f4363f

Browse files
NikolaiFaNikolaiFa
authored andcommitted
Clarify interconnection of terminals
1 parent 4429ff7 commit 1f4363f

File tree

1 file changed

+17
-0
lines changed

1 file changed

+17
-0
lines changed

docs/2_4_common_schema.adoc

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1894,6 +1894,12 @@ Predefined rules for variable matching in a connection are given in <<table-pred
18941894
Predefined variable kinds are used to describe how the terminal member variables have to be handled.
18951895
Domain specific connection rules, terminals and their member variables can be provided by other standards, including layered standards.
18961896

1897+
_[Terminal definitions provide heuristics to help importers connect FMUs and check compatibility.
1898+
The matching rules and terminal kinds serve as guidance and should not be interpreted as strict requirements that prevent reasonable connections.
1899+
Importers have flexibility in how they interpret and apply terminal information, and may choose to allow connections that are not explicitly covered by the rules defined here.
1900+
This flexibility is intentional, as terminals are designed to work best within specific user communities or tool ecosystems where additional conventions and constraints may apply.
1901+
Specific domains may provide more precise connection rules and semantics for their use cases.]_
1902+
18971903
_[Algebraic loops in systems of connected FMUs are not addressed or resolved by the terminals._
18981904
_The FMU standard does not require that the <<causality>> of the terminal member variables in connected terminals match._
18991905
_This must be handled by the importer._
@@ -1949,6 +1955,17 @@ However, an importer may still connect terminals based on additional information
19491955

19501956
|====
19511957

1958+
_[When connecting two terminals, each terminal's `matchingRule` is evaluated independently for that terminal.
1959+
For example, a terminal with `matchingRule="plug"` can be connected to a terminal with `matchingRule="bus"` as long as the requirements of each rule are satisfied from that terminal's perspective:
1960+
The plug terminal requires all its member variables to be present in the connection, while the bus terminal allows for partial matching.
1961+
This asymmetric matching is intentional and supports flexible connection scenarios._
1962+
1963+
_For hierarchical (nested) terminals, matching is performed at each level according to the `matchingRule` of that level.
1964+
Each terminal and sub-terminal is matched according to its own `matchingRule`, and the specific order of traversal or flattening is left to the importer's discretion._
1965+
1966+
_A single variable from <<ModelVariables>> may be referenced by multiple terminals within the same FMU.
1967+
This allows the same variable to participate in different connection contexts or to be grouped in multiple logical interfaces.]_
1968+
19521969
[[terminalKind,`terminalKind`]]
19531970
The normalized string `terminalKind` is an optional attribute.
19541971
Other standards may define terminal kinds.

0 commit comments

Comments
 (0)