New equations solvers

EcosimPro and PROOSIS are in constant development and take special care that their numerical solvers work as efficiently and robustly as possible. The latest versions of EcosimPro and PROOSIS include several performance enhancements, one of which is the linear equations solver. The graph  below shows that the new linear box solver is up to 50% faster than in previous versions while maintaining the same numerical results. Of course, not all the model has linear boxes, and depending on the number and size of linear boxes, the influence of this improvement will be more noticeable in some cases than others in cutting down on simulation time. Electrical models usually benefit the most from this improvement.

Figure 1 Linear box solver performance (higher is better):

Linear box solver performance

In addition to the improved linear box solver, there are improvements to how memory is managed in the CVODE and IDAS solvers included in EcosimPro and PROOSIS as well as optimizing the Jacobian calculation during the solving process, leading to substantial improvements in some simulations.

Figure 2 Performance of the Priming_complex ESPSS experiment using IDAS and CVODE. EcosimPro 5.6.1 vs EcosimPro 5.10.0 (Lower relative values are better):

Performance of the Priming_complex ESPSS experiment using IDAS and CVODE

EcosimPro and PROOSIS have not only improved the existing solvers, but have also added the following to give the user even more flexibility when simulating:

  • RK45: ODE solver, explicit, variable-step, equivalent to Matlab’s ode45. It converges faster than RK4.
  • BACKEULER: ODE solver, implicit and fixed-step. Useful to solve “stiff” problems in situations needing a fixed step.
  • BACKEULER_SPARSE: ODE solver, implicit and fixed-step. Useful to solve “stiff” problems in situations needing a fixed step. This solver is more efficient than BACKEULER and is meant to make use of the structure of the model by reducing the number of times the waste function is called.