Opened 8 years ago

Closed 3 years ago

#4034 closed enhancement (fixed)

Use sparse solvers for event handling in daemode

Reported by: Francesco Casella Owned by: Andreas Heuermann
Priority: high Milestone: 1.19.0
Component: Run-time Version:
Keywords: Cc:

Description

The simulation time for models with many when clauses and large implicit systems of equations, which is one class of models where using daemode makes lots of sense, scales as O(N3). See, e.g., the BreakerNetwork and BreakerNetworkDelayed models in the ScalableTestSuite https://test.openmodelica.org/libraries/ScalableTestSuite_Experimental/BuildModelRecursive.html

As far as I understand, this is due to the fact that, during event handling, the dynamic equations and the equations of the active when clauses are solved using a dense solver, whose solution time is cubic with the size.

If the equations are linear, the -lssMaxDensity and -lssMinSize values should be used to automatically trigger the use of a sparse solver also in this case. I understand this should be enough to handle the ScalableTestSuite test cases efficiently.

The sparse Kinsol solver should be implemented instead, in order to handle the models with large nonlinear implicit equation systems.

Change History (12)

comment:1 by Francesco Casella, 8 years ago

Milestone: 1.10.01.11.0

comment:2 by Francesco Casella, 8 years ago

Owner: changed from somebody to Willi Braun
Status: newassigned

comment:3 by Martin Sjölund, 8 years ago

Milestone: 1.11.01.12.0

Milestone moved to 1.12.0 due to 1.11.0 already being released.

comment:4 by Francesco Casella, 7 years ago

Milestone: 1.12.01.13.0

Milestone moved to 1.13.0 due to 1.12.0 already being released.

comment:5 by Willi Braun, 7 years ago

Status: assignedaccepted

comment:6 by Francesco Casella, 6 years ago

Milestone: 1.13.01.14.0

Rescheduled to 1.14.0 after 1.13.0 releasee

comment:7 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:8 by Francesco Casella, 4 years ago

Milestone: 1.16.01.17.0

Retargeted to 1.17.0 after 1.16.0 release

comment:9 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:10 by Francesco Casella, 3 years ago

Milestone: 1.18.0

Ticket retargeted after milestone closed

comment:11 by Francesco Casella, 3 years ago

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

comment:12 by Francesco Casella, 3 years ago

Milestone: 1.19.0
Resolution: fixed
Status: assignedclosed
Note: See TracTickets for help on using tickets.