Opened 7 years ago

Last modified 3 years ago

#4990 assigned enhancement

Should we make IDA the default ODE mode solver?

Reported by: Francesco Casella Owned by: Andreas Heuermann
Priority: high Milestone:
Component: Run-time Version:
Keywords: Cc: Martin Sjölund, Adrian Pop

Description

The IDA solver has been implemented as an alternative to DASSL for quite some time. IDA is in fact DASSL's successor: it implements the same basic algorithm, but it is written natively in C and, contrary to DASSL, it is actively maintained as a part of the SUNDIALS suite, so it is in general expected to give better performance than the old DASSL. In principle, once we have IDA implemented I see no reason to keep DASSL as the default option. In fact, I have some test cases where DASSL fails and IDA works just fine.

Unfortunately, 99% of the users will just use the default solver and, in case of simulation issues, won't probably think of solving them by simply switching to IDA.

So, the question is: should we make ida the default solver for ode mode simulations, in place of dassl?

I guess in order to answer this question we need to run the whole testsuite with ida as a default solver and look for regressions and improvements.

Currently, we have Hudson tasks running the whole testsuite with ida and daeMode (https://libraries.openmodelica.org/branches/daemode/ and https://libraries.openmodelica.org/branches/newInst-daemode/), but I don't think we should make daeMode the default solver option.

@sjoelund.se, could you set up a task to be run on demand such as https://libraries.openmodelica.org/branches/daemode/, but only with -s=ida as default simflag and no daeMode?

I could then analyze the results, so we can take an informed decision. In fact, it could be that ida has few recessions, or possibly none, and a lot of improvements compared to dassl already. On the other hand, if there are issues left we could try to solve them, and/or to give suggestions to the end users when should they perfer IDA over DASSL.

Change History (6)

comment:1 by Francesco Casella, 6 years ago

Milestone: 1.13.01.14.0

Rescheduled to 1.14.0 after 1.13.0 releasee

comment:2 by Francesco Casella, 5 years ago

Milestone: 1.14.01.16.0

Releasing 1.14.0 which is stable and has many improvements w.r.t. 1.13.2. This issue is rescheduled to 1.16.0

comment:3 by Francesco Casella, 4 years ago

Milestone: 1.16.01.17.0

Retargeted to 1.17.0 after 1.16.0 release

comment:4 by Andreas Heuermann, 4 years ago

Owner: changed from Willi Braun to Andreas Heuermann
Status: newassigned

comment:5 by Francesco Casella, 4 years ago

Milestone: 1.17.01.18.0

Retargeted to 1.18.0 because of 1.17.0 timed release.

comment:6 by Francesco Casella, 3 years ago

Milestone: 1.18.0

Ticket retargeted after milestone closed

Note: See TracTickets for help on using tickets.