11. Release notes for JModelica.org version 1.5

11.1. Highlights

  • FMU export

  • Improvements in compiler front-end

  • Equation sorting and BLT

  • Symbolic solution of simple equations

  • Improved simulation support for hybrid and sampled systems

  • Improved initialization with Kinsol and SuperLU

  • Improved support for external functions.

11.2. Compilers

11.2.1. When clauses

When clauses are supported in the Modelica compiler.

11.2.2. Equation sorting

Equations are sorted using Tarjan's algorithm and the resulting BLT representation is used in the C code generation. Also, trivial equations are solved and converted into assignment statements.

11.2.3. Connections

Added support for connecting arrays of components and for connect equations in for clauses.

11.2.4. Eclipse IDE

The JModelica plugin for Eclipse has been updated to be more stable and to syntax highlight Modelica 3.2 code properly.

11.2.5. Miscellaneous

Fixed several compiler bugs.

11.3. Simulation

11.3.1. FMU export

JModelica.org 1.5 supports export of Functional Mock-up Interface (FMI) compliant models (FMUs). The exported models follows the FMI standard and may be imported in other FMI compilant simulation tools, or they may be simulated using JModelica.org using the FMU import feature introduced in version 1.4. The exported FMUs contain an XML file, containing model meta data such as variable names, a DLL, containing the compiled C functions specified by FMI, and additional files containing the flattened Modelica model useful for debugging purposes.

11.3.2. Simulation of ODEs

A causalization approach to simulation of Modelica models has been implemented. This means that the DAE resulting from flattening is transformed into an ODE, and ODE solvers can be used to simulate the model. This feature is a requirement for export of FMUs. This strategy has required the symbolic algorithms and the C code generation module to be adapted as described above. In addition, the simulation runtime system has been extended to allow for trivial equations converted into assignments and for implicit systems of equations. The latter are solved using the Newton solver KINSOL, modified to support regularization to handle singular Jacobian matrices.

11.3.3. Simulation of hybrid and sampled systems

When clauses are now supported, as well as the sample operator. Accordingly, some classes of hybrid systems may be simulated as well as sampled control systems. In addition, variables of type Integer and Boolean are also supported.

11.4. Initialization of DAEs

A novel initialization algorithm based on the Newton solver KINSOL from the SUNDIALS suite is introduced. The KINSOL solver has been improved by adding support for Jacobian regularization in order to handle singular Jacobians and by interfacing the sparse linear solver SuperLU in order to more efficiently handle large scale systems.

11.5. Optimization

Curtis Powell Reid seeding has been implemented to speed up computation of sparse Jacobians. When solving large optimization problems, this can give a speed-up factor of up to 10-15.

11.6. Contributors

Christian Andersson

Tove Bergdahl

Magnus Gäfvert

Jesper Mattsson

Johan Ylikiiskilä

Johan Åkesson

11.6.1. Previous contributors

Philip Nilsson

Roberto Parrotto

Jens Rantil

Philip Reuterswärd