When returning a fatal error in function fmi2NewDiscreteStates the FMUComplianceChecker does not terminate model simulation but tries to call function fmi2NewDiscreteStates again.
So setting
FMI2_Export fmi2Status fmi2NewDiscreteStates(fmi2Component c, fmi2EventInfo* fmiEventInfo) { return fmi2Fatal; }
yields to an infinite loop.
The FMI specification 2.0 page 17 states:
fmi2Fatal – the model computations are irreparably corrupted for all FMU instances. [For example,
due to a run-time exception such as access violation or integer division by zero during the execution
of an fmi function]. Function “logger” was called in the FMU (see below) and it is expected that this
function has shown the prepared information message to the user. It is not possible to call any other
function for any of the FMU instances.
I get this behavior with pre-build executable version 2.0.4 on 64Bit Windows 10 and build of commit dcc15abc94038a7afb8d4828d2bf3ea359de6c09 on 64Bit Unix system.
Can someone reproduce this problem?
When returning a fatal error in function
fmi2NewDiscreteStates
the FMUComplianceChecker does not terminate model simulation but tries to call functionfmi2NewDiscreteStates
again.So setting
FMI2_Export fmi2Status fmi2NewDiscreteStates(fmi2Component c, fmi2EventInfo* fmiEventInfo) { return fmi2Fatal; }
yields to an infinite loop.The FMI specification 2.0 page 17 states:
I get this behavior with pre-build executable version 2.0.4 on 64Bit Windows 10 and build of commit
dcc15abc94038a7afb8d4828d2bf3ea359de6c09
on 64Bit Unix system. Can someone reproduce this problem?