modelica / fmi-ls-struct

Layered standard for FMI for structuring of variables
Other
5 stars 3 forks source link

How to specify maps whose domain and codomain values are defined in one matrix? #7

Open TorstenBlochwitz opened 10 months ago

TorstenBlochwitz commented 10 months ago

Until now we only allow vector variables to be referenced as domain and codomain variables which contain the data of a map.

In Modelica Standard Library and other applications, values for domain and codomain are defined in one matrix.

How can we express such maps in LS struct?

klausschuch commented 4 months ago

Meeting F2F-Munich: we could define terminalkinds for each of the modelica combitables. If an fmi variable v contain the whole matrix (with the domain and codomain sampling points and the data), we could just reference the same variable in the domain and codomain entries and based on the terminalKind the importer can do the slicing to extract eh domain and codomain values.

<fmiTerminalsAndIcons fmiVersion="3.0">
  <Terminals>
    <Terminal name="map2d" terminalKind="org.fmi-standard.fmi-ls-struct.map.combitable1d" matchingRule="org.fmi-standard.fmi-ls-struct.map">
      <TerminalMemberVariable variableName="v" memberName="x" variableKind="org.fmi-standard.fmi-ls-struct.domain" />
      <TerminalMemberVariable variableName="v" memberName="y" variableKind="org.fmi-standard.fmi-ls-struct.domain" />
      <TerminalMemberVariable variableName="in_y" memberName="in_y" variableKind="org.fmi-standard.fmi-ls-struct.domainInput" />
      <TerminalMemberVariable variableName="v" memberName="v" variableKind="org.fmi-standard.fmi-ls-struct.codomain" />
    </Terminal>
  </Terminals>
</fmiTerminalsAndIcons>