1. Release notes for JModelica.org version 1.8

1.1. Highlights

  • Improved Modelica compliance of the compiler front-end, including support for if equations and inner/outer declarations

  • Optimized performance and memory utilization of the compiler front-end

  • A new state selection algorithm with support for user defined state selections

  • A new function inlining algorithm for conversion of algorithmic functions into equations

  • Improvements to the CasADi-based collocation optimization algorithm, including support for terminal constraints

1.2. Compilers

1.2.1. Improved Modelica compliance

The following compliance improvements have been made:

  • Support for if equations

  • Support for inner/outer declarations

  • Expressions in der() operator

  • Function call equations in when equations

  • Limited support for String parameters. String parameters are now supported in the compiler front-end, although they are discarded in the code generation.

Also, many bug fixes and performance improvements in the compiler are included in this release.

1.2.2. Function inlining

There is a new function inlining algorithm for conversion of algorithmic functions into equations.

1.2.3. New state selection algorithm

The new state selection algorithm takes user input (stateSelect attribute) into account and implements heuristics to select states that avoids, if possible, iteration of non-linear systems of equations.

1.3. Python

1.3.1. Simplified compiling with libraries

The compiler now support adding extra libraries as files, which makes it easier to compile a model using a structured library not in the MODELICAPATH. Both Python functions compile_jmu and compile_fmu support this. For example, compiling A.B.Example from a library A in directory LibDir with compile_fmu, this can now be written as:

compile_fmu('A.B.Example', 'LibDir/A')

1.4. Optimization

1.4.1. Improvements to CasADi-based collocation algorithm

The CasADi-based collocation algorithm has been improved with new features

  • Support for point constraints

  • Setting of parameter values from Python in loaded models

  • Setting of min/max attributes from Python in loaded models

1.5. Contributors

Bengt-Arne Andersson

Christian Andersson

Tove Bergdahl

Magnus Gäfvert

Fredrik Magnusson

Jesper Mattsson

Tobias Mattsson

Iakov Nakhimovski

Jon Sten

Johan Ylikiiskilä

Johan Åkesson

1.5.1. Previous contributors

Sofia Gedda

Petter Lindgren

Lennart Moraeus

Philip Nilsson

Patrik Meijer

Kristina Olsson

Roberto Parrotto

Jens Rantil

Philip Reuterswärd