I would like to know if it is possible to link some components of an object into a vector via a modelica loop or if I should pass through a python script.
I have two applications cases to share :
For example :
Vector[1] = Model.P1
Vector[2] = Model.P2
...
Vector[i] = Model.Pi
in my mind, this could be achieve by a loop which looks like :
i=1
for each component in Model
Vector[i] = Model.component
i = i+1
end for
But the for each loop does not seem to exist in pure modelica
Vector[1] = Model.Submodel1.P
Vector[2] = Model.Submodel2.P
...
Vector[i] = Model.Subdmodeli.P
in the same way as the 1st example:
i=1
for each Submodel in Model
Vector[i] = Model.Submodel.P
i = i+1
end for
An idea I had was to use a loop like:
Loop
Vector[i] = Model.Subdmodel+string("i").P
end loop
But it is not a success too...
That is currently not possible in Modelica.
However, there exists a proposal along those lines https://github.com/modelica/ModelicaSpecification/tree/MCP/0021/RationaleMCP/0021
It is preliminarily implemented in Dymola (although the examples are horribly outdated, and some examples may fail badly in some Dymola versions), and may have been implemented in OpenModelica as well.
The key difference are: