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.
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.
Added support for connecting arrays of components and for connect equations in for clauses.
The JModelica plugin for Eclipse has been updated to be more stable and to syntax highlight Modelica 3.2 code properly.
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.
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.
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.
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.