Skip to content

Pass -s=ida for --daeMode models - #420

Merged
sjoelund merged 1 commit into
masterfrom
daemode-explicit-ida
Nov 13, 2026
Merged

sjoelund merged 1 commit into
masterfrom
daemode-explicit-ida

Conversation

@sjoelund

Copy link
Copy Markdown
Member

OpenModelica #17977 makes -s=auto the default solver method, and the runtimes no longer replace an explicit method. A model compiled with --daeMode and simulated with a method other than ida now stops with:

The model was compiled with --daeMode, which works only with -s=ida
or -s=auto.

Before, the runtimes used IDA without an error. The testing gives an explicit method in two cases: the s of the __OpenModelica_simulationFlags annotation (s = "dassl" in Dynawo.Examples.SVarC), and the cvode and gbode solvers of the solvers job. These runs all fail on master now.

Find --daeMode in the custom commands of the library and the job, and in the __OpenModelica_commandLineOptions annotation of the model, as omc reads it: case-insensitive, with =false, and the last value wins. For such a model, ignore the s of the annotation and put -s=ida last in the simulation flags of every run. The runs then use IDA, as before #17977, so the cvode and gbode tables keep IDA results for these models.

The wasm FMU runners now use the same test. The old test did not find --daemode, which one Dynawo model uses.

Assisted-by: Claude Opus 5.5

OpenModelica #17977 makes -s=auto the default solver method, and the
runtimes no longer replace an explicit method. A model compiled with
--daeMode and simulated with a method other than ida now stops with:

  The model was compiled with --daeMode, which works only with -s=ida
  or -s=auto.

Before, the runtimes used IDA without an error. The testing gives an
explicit method in two cases: the s of the __OpenModelica_simulationFlags
annotation (s = "dassl" in Dynawo.Examples.SVarC), and the cvode and
gbode solvers of the solvers job. These runs all fail on master now.

Find --daeMode in the custom commands of the library and the job, and
in the __OpenModelica_commandLineOptions annotation of the model, as
omc reads it: case-insensitive, with =false, and the last value wins.
For such a model, ignore the s of the annotation and put -s=ida last in
the simulation flags of every run. The runs then use IDA, as before
#17977, so the cvode and gbode tables keep IDA results for these models.

The wasm FMU runners now use the same test. The old test did not find
--daemode, which one Dynawo model uses.

Assisted-by: Claude Opus 5.5
@sjoelund
sjoelund merged commit 7019435 into master Nov 13, 2026
7 checks passed
@sjoelund
sjoelund deleted the daemode-explicit-ida branch November 13, 2026 15:18
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

Successfully merging this pull request may close these issues.

1 participant