OPTIMICA Compiler Toolkit v1.18 is part of Modelon’s 2020.1 release.

New versions of Modelon libraries are sold and distributed directly from Modelon, as well as approved resellers.


CasADi is temporarily unavailable for this release.

Compiler Changes

Important improvements to the compiler:

  • Improved performance of handling encrypted libraries.

The release contains a number of bug fixes to the compiler, among them:

  • A rare bug in constant evaluation of attributes of parameters that are arrays of primitive types was resolved.
  • The variability of parameters used to set the stateSelect attribute of a variable is now structural.
  • Fixed a bug where linear equations were eliminated incorrectly.

API Improvements

Important improvements to the compiler API:

  • Grant access to more annotations in encrypted libraries. Details are found in the API documentation of the Annotation interface.
  • Deprecated the method SourceClass.iconSVG() because icons rendered by it are of poor quality. Use InstanceClass.iconSVG() instead.
  • The following functionality is now exposed through the EditingManager, and the methods themselves are now

    • SourceShortClassImpl.setSuperClass(String). This method now also preserves string comments and annotations.
    • Annotation.experimental_setValue(String)
    • Modifier.experimental_replaceWith(String)
    • Added API method API.checkSyntaxLibrary(Path) for running a syntax check on all Modelica files in a library.
  • Generated icons no longer include sub-connectors of connectors.

The release contains a number of bug fixes to the compiler API, among them:

  • Expression.getDeclaredText(): parenthesized expressions would not print parentheses for expressions retrieved from the Source-API.
  • Components are now final when modified final without any value modification. Previously, the final modifier did not have any effect in this case.
  • The API can now correctly determine the size of row components. Previously some cases were erroneously reported as scalars.
  • Fixed a problem where getQualifiedName(), in one case, did not contain indices, and where getElementName() contained parent names.
  • Many bug fixes where made in the functionality of the EditingManager. It can now be considered non-experimental while in previous releases, it should have been marked as such.
  • CompilationException did not contain any warnings that occurred during compilation if there were errors as well.

Python Packages Improvements

Important changes to Python packages:

  • It is now possible to add additional Java libraries to classpath via PyModelica before starting the Java Virtual Machine (JVM).
  • In the Steady State framework, there is now support for using dynamic models, i.e. using states as iteration variables and derivatives as residuals.


In release 1.8 we have updated the Modelica Standard Library (MSL) version to 3.2.3, build 3. It has been modified with additional patches, see Section C.3.

For OPTIMICA Compiler Toolkit version 1.18 the following libraries provided by Modelon are compliant: