Archived OpenModelica forums. Posting is disabled.

Alternative forums include GitHub discussions or StackOverflow (make sure to read the Stack Overflow rules; you need to have well-formed questions)


Forgot password? | Forgot username? | Register

Order of evaluation in Modelica vs determinism of the model

Order of evaluation in Modelica vs determinism of the model

I am completely new to Modelica and my question might be a bit nonsensical. One of problems with languages like C/C++ I had when treating pieces of code like a model, was the arbitrary order of evaluation. Alternative branches needed to be build in the corresponding model just to check if the side effects inside f(x) + g(x) are semantically important, given that the two functions can be called in any order.

Primarily though of as a means for optimisation, the free order of evaluation in C/C++ may lead to different sort of problems. Many more modern languages have a very strict order of evaluation.

Now If I am not wrong, Modelica is not an imperative language and an expression represents some dependency etc. so it is a thing quite different. Still, I have read somewhere, that "tools are free to decide about the order of evaluation" etc. Is this completely normal for declarative languages? Is not there some non-determinism introduced to a Modelica model just to "cater" to tool providers and optimisation lovers?

Are modelica model deterministic, save random operations and of course, the numerical precision?

Edited by: ith - Dec-31-18 11:07:06
There are 0 guests and 0 other users also viewing this topic
You are here: