Load OpenModelica FMU-module (with MSL noise-module) in Python environment with PyFMI does not work.
I have tried to run exported FMU-modules from OpenModelica in PyFMI-environment. Deterministic models works fine.
However, when I include noise models using the MSL block Modelica.Blocks.Noise.NormalNoise Then I get an FMU that get problems when loading into the PyFMI-environment. The error text ends with:
FMUException: Error loading the binary. Could not load the DLLL: libModelicaExternalC.so.0: cannot open shared object file: No such file or directory.
Needless to say, but in OpenModelica the system with noise works well. The same code in JModelica and compiled and loaded in the Python environment with PyFMI also works well. However, the random noise sequence are different for the same seed in OpenModelica and JModelica indicating some difference.
For this example I run JModelica and PyFMI version 2.1 in Docker Linux and OpenModelica is also run in Linux environment. Since Linux in both I can transfer the FMU-model. Both JModelica and OpenModelica support the Modelica standard 3.2.2 and corresponding MSL.
I have also just tested the example with JModelica and PyFMI version 2.4 (or at least 2.2) using Docker Linux image from mclab. I get the same error text as for 2.1 (and without noise block it works as it did for 2.1).
—
My question is if the described error is on PyFMI or OpenModelica side or perhaps both? Or is there something extra to be done when exporting an FMU from OpenModelica with noise-block that should make it all work?
From the error message, it indicates that the FMU is missing one of its dependencies, libModelicaExternalC.so (all dependencies of an FMU should be included in the FMU). The problem lies in the generating tool of the FMU, not in PyFMI.