-
Notifications
You must be signed in to change notification settings - Fork 51
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
SSP use from OMEdit causes Infinite loop while showing messages #1007
Comments
@arun3688 can you please test it on Windows? |
@lochel I tested and it is running into infinite loop with the following error
|
@max-privato Could you change the solver to As a workaround you can continue to use |
@AnHeuermann can you look into the error messages with |
ok. Thank you. |
From what I understand from the CVODE sources the input consistency checks for the first step are failing because the initial error weights have a component equal to zero. I can see that we have
With scalar tolerances (1e-4 , 1e-6) the simulation runs successfully. So why are the tolerances 0? Because some nominals are
So the FMU I will add a check if the nominals of an imported FMU are greater then 0. |
I could of course add something like
and only issue a warning instead of a hard error. |
Thanks @AnHeuermann. The new error messages state the issue rather clear. Should we add a flag to use the default scalar tolerances in case of illegal nominal values? |
That could work for this issue but has the potential to crash with strange errors for other models. Having a nominal of We could set nominal values to |
I agree with your argumentation, so no need for further changes and I'll close this issue. @max-privato please feel free to reopen the issue if there is more to do. |
In fmi2GetNominalsOfContinuousStates from FMI Specification 3.2.2 If the FMU does not have information about the nominal value of a continuous state i, a nominal value x_nominal[i] = 1.0 should be returned. Note that it is required that x_nominal[i] > 0.0 The first part of the sentence implies that an FMU can be without nominal values of a continuous state and in this case 1 must be assumed. How the FMU tells the caller that it has not the nominal value of a continuous state? Maybe returning 0? In this case, it would be correct to set it to 1 in gru_ter, and the last part of the sentence would be interpreted that the returned nominal values must not be negative. This seems reasonable to me, even though the specification could have been clearer. What do yo think? I must say that the FMU creating problems to SSP is read correctly in Dymola and Matlab; we'll try SystemModeler and Amesim within a couple of days. In case several other tools accept gruTer, maybe they use the same interpretation of the specification I proposed above? Yes, the FMU is created using Dymola from a Modelica package we developed. I tried to create the same FMU using OM, but had an error when importing the fmu back, for which I'll open a separate ticket. |
The next nightly build should contain all the required changes. |
Description
I have a Work-in-progress ssp.
When I run it OMEdit enters an infinite loop in showing error messages and to see them I must get a screen print and copy somewhere.
Even if the model has mistakes, this behaviour is unexpected.
Sorry for not creating a MWE, but I don't have time now. In case of need, I could try next week.
Steps to reproduce the behavior
Load ErrorLoop.ssp and run it
Expected behavior
Screenshots
Version and OS
OM: 1.18-deb 224, Win10 64 bit
OMSimulator --version
]ErrorLoop.zip
The text was updated successfully, but these errors were encountered: