Skip to content
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

Meaning of 'stepSize' and possible new 'interval' attribute to Experiment element #12

Open
casella opened this issue Oct 30, 2024 · 1 comment

Comments

@casella
Copy link

casella commented Oct 30, 2024

Follow-up of the discussion in PR modelica/fmi-standard#1980.

FMI-LS-REF Section 3.3. defines the Experiment element in the manifest file with attributes name, description, startTime, stopTime, tolerance, stepSize. Although the last four attributes have the same name as in the FMI DefaultExperiment XML element, the description of the last attribute stepSize is not the same as in FMI. Furthermore, it is a tautology, i.e., it doesn't explain anything. Does it mean the size of a fixed step-size solver? Does it mean the communication interval of a variable-step-size solver? Does it mean both, depending on the context?

Most importantly, how do two strictly related existing MA standards, Modelica and FMI, deal with that?

The current situation is a rather messy:

  • Modelica >=3.2r2 has annotation(experiment(Interval)), see Section 18.4, which actually indicates the communication interval. Also (ab?)used in practice as step size for fixed time-step solvers
  • FMI 2.0.4 has stepSize meaning default communication interval for FMI-CS, default fixed step size for FMI-ME
  • FMI 2.0.5 draft and FMI 3.0.x have stepSize meaning default communication interval for FMI-CS, but meaning nothing for FMI-ME
  • FMI-LS-REF has stepSize meaning step size, whatever this means.

In modelica/fmi-standard#1991 I am proposing to fix this issue in FMI either by adding an interval attribute to DefaultExperiment, or by defining the meaning of stepSize in FMI-ME to be the same of FMI-CS, i.e., the default communication interval. However, this needs to follow the FMI release cycle timing, which is very constrained.

@chrbertsch in modelica/fmi-standard#1980 suggests that we fix this issue in FMI-LS-REF instead. I think we should also do that, i.e. fix both FMI (eventually) and FMI-LS-REF (now). However, we should do that in a coordinated way that avoids generating further ambiguity and confusion.

My suggestion is that the concept of Interval for experiments, which is defined in Modelica since 2012, should eventually have clearly defined consistent counterparts in FMI and FMI-LS-REF.

There are different ways to do that, either by (re)defining the meaning of stepSize in FMI-ME and FMI-LS-REF and/or adding a new attribute interval in FMI and FMI-LS-REF. I'm not sure which path is the best, but we should definitely do something about it, because the current status is really a bit messy.

All things considered, this is probably a relatively minor issue. However, it is a nice case study for trying to develop coordinated standards within the MA.

@chrbertsch
Copy link
Collaborator

  • FMI 2.0.4 has stepSize meaning default communication interval for FMI-CS, default fixed step size for FMI-ME

  • FMI 2.0.5 draft and FMI 3.0.x have stepSize meaning default communication interval for FMI-CS, but meaning nothing for FMI-ME

Correction: there is no change in FMI 2.0.5rc1 compared to FMI 2.0.4.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants