Major OpenModelica Releases¶
This Appendix lists the most important OpenModelica releases and a brief description of their contents. Right now versions from 1.3.1 to v1.24.3 are described.
Release Notes for OpenModelica 1.24.3¶
Patch release for 1.24.2
Fixes 6 issues, most importantly a regression involving start attributes for state variables not showing up in the parameter input dialog.
Full Changelog: https://github.com/OpenModelica/OpenModelica/compare/v1.24.2...v1.24.3
Release Notes for OpenModelica 1.24.2¶
Patch release of 1.24.0, fixes issues with the OMEdit GUI. Replaces the previously planned 1.24.1 which was skipped.
A list of the fixed issues is available here.
What's Changed¶
Hide the start and fixed attributes based on final modifier (#13007) by @adeas31 in https://github.com/OpenModelica/OpenModelica/pull/13008
Add context to
Inst.expand
(#12962) by @perost in https://github.com/OpenModelica/OpenModelica/pull/13023OMEdit fixes by @adeas31 in https://github.com/OpenModelica/OpenModelica/pull/13081
Fixes 1.24.1 by @adeas31 in https://github.com/OpenModelica/OpenModelica/pull/13100
Cpp FMI: don't check clockSubactive in firstTick of simulation code by @rfranke in https://github.com/OpenModelica/OpenModelica/pull/13120
Fix the icon display if the component does not have annotation by @adeas31 in https://github.com/OpenModelica/OpenModelica/pull/13200
Draw a default grey box if the model doesn't have an icon by @adeas31 in https://github.com/OpenModelica/OpenModelica/pull/13216
Cherry-pick instance API fixes by @perost in https://github.com/OpenModelica/OpenModelica/pull/13218
Full Changelog: https://github.com/OpenModelica/OpenModelica/compare/v1.24.0...v1.24.2
Release Notes for OpenModelica 1.24.0¶
The release date of 1.24.0 was anticipated with respect to the traditional summer release and winter release date. The main motivation is that a major update of the OMEdit source code was made on the master branch to make it compatible with both Qt5 and Qt6. This makes it hard to back-port crucial fixes to the GUI in patch releases before the formerly scheduled release date of Jan-Feb 2025. The current development version on the master branch is quite stable and there are no major complaints, which allow us to anticipate the next official release to September 2024.
OpenModelica Compiler (OMC)¶
The new front end has been further improved with about 25 issues solved, here is a complete list. Nine of those issues regarded fixes to the new experimental Base Modelica flat output.
A new compiler flag --exposeLocalIOs was added to automatically add the outputs of a model components to the outputs of an FMU, instead of only adding the top-level outputs. This can easily provide monitoring information in an FMU without the need of painstakingly bring all those outputs to the top level in the original Modelica model.
Besides #12730, the work on the backend was mostly focused on developing the new backend, with 14 issues being fixed.
One small fix was made to the C runtime.
Graphical Editor OMEdit¶
The OMEdit source code was adapted to use both Qt5 and Qt6, see pull request #12485.
The quality of the OMEdit GUI was further improved over the previous version 1.23.1, with about 15 issues fixed, see the complete list.
An important improvement regarding the usability of the GUI concerns the reaction time when editing diagrams, which used to be very slow when adding or removing components and connections in large models; these operations are now much faster, while changing parameters can still be quite slow. See #11920 for more details.
FMI export¶
A few issues were addressed regarding FMI export.
List of tickets closed in 1.24.0¶
List of closed tickets in 1.24.0. Over 65 issues were addressed and resolved.
Next releases¶
The next release 1.25.0 is planned to be released in January/February 2025, with a first beta release possibly before the end of the year. It should include further improvements to the GUI such as parameter editing in hierarchically structured model, restructured Simulation Setup dialog, Rename feature with refactoring, faster editing of large models in OMEdit, etc. Further improvements in FMI 2.0.x export are also planned.
Download it from: https://openmodelica.org
Full Changelog: https://github.com/OpenModelica/OpenModelica/compare/v1.23.1...v1.24.0
Release Notes for OpenModelica 1.23.1¶
This is a minor release with fixes to OMEdit and omc to avoid crashes.
Download it from: https://openmodelica.org
Full Changelog: https://github.com/OpenModelica/OpenModelica/compare/v1.23.0...v1.23.1
Release Notes for OpenModelica 1.23.0¶
Version 1.23.0 of OpenModelica was released on 6 June 2024. It has many improvements and bug fixes compared to 1.22.3 (1.22.4 for Linux), plus some new useful features, in particular regarding the OMEdit GUI and the FMI export feature.
Proper rounding of decimal numbers¶
Real parameter values returned by the front-end when flattening models often had bad rounding, such as 499.99999999999
instead of 500
or 1.00000000000012
instead of 1.0
. Also, bad rounding used to plague parameter values with unit conversions driven by displayUnit
attributes in the OMEdit GUI. In some cases, very long decimal outputs such as 1200000000.0
were displayed, instead of the more easily understood 1.2e9
.
This issue was tackled systematically and resolved thanks to rounding algorithms based on the Ryu library, see #8865 for a comprehensive list of all improvements. Now all Real values numbers that are expected to be represented as round decimal numbers are actually represented as such; additionally, decimal vs. scientific format is chosen according to heuristic rules, to ensure good readability by humans in all cases, without significant loss of precision.
OpenModelica Compiler (OMC)¶
The new front end has been further improved with about 25 issues solved, here is a complete list.
The front end can now provide clean BaseModelica flat output from the command line; experimental array-preserving flat output can also be obtained. See the User's Guide for more information.
The draft MLS 3.7 Sect. 7.1 now explicitly requires annotations at the end of a class to be carried over when extending model; this includes experiment annotations. This behaviour is now implemented in the frontend, so it is no longer necessary to re-add the experiment annotation when extending a class, see #10386.
Most of the work on the backend is still focused on developing the new backend; about 10 fixes were made to the current backend. Two notable improvements are worth mentioning:
the non-standard
annotation(tearingSelect)
was deprecated and replaced byannotation(__OpenModelica_tearingSelect)
according to the Modelica Language Specification Sect. 8.6 parameters with no binding and no explicitly set value now cause the compilation to fail, see #10386. This may cause some old models to fail during compilation, but it is the required behaviour by the specification, to guard against parameters that are accidentally left without a meaningful value. The fix is to provide the modifier for the parameters without bindings, or to add an explicit
start = 0
modifier in the library model.
About 10 bug fixes were made to the C runtime.
Graphical Editor OMEdit¶
The quality of the OMEdit GUI was further improved over the previous version 1.22.3, with about 55 issues fixed, see the complete list. Most of them are bug fixes, but there are also some new features:
Duplicate class feature now works correctly also when the class is duplicated in another scope #5346
Top-level model parameters can now be edited with the GUI #4408
Further optimization of the editor's response time when deleting components and adding/deleting connections #11920
All rounding issues in the GUI resolved #8865
FMI export¶
14 issues were addressed regarding FMI export, further improving the quality of that feature. We are currently testing over 80 libraries from the Package Manager collection by exporting FMI-CS FMUs with OMC and simulating them with CVODE using the FMPy tool; test reports can be reached from this page.
List of tickets closed in 1.23.0¶
List of closed tickets in 1.23.0. Over 140 issues were resolved.
Next releases¶
The next release 1.24.0 is planned to be released in Q4 2024. It should include further improvements to the GUI such as parameter editing in hierarchically structured model, restructured Simulation Setup dialog, Rename feature with refactoring, faster editing of large models in OMEdit, etc. Further improvements in FMI 2.0.x export are also planned.
Download it from: https://openmodelica.org
Full Changelog: https://github.com/OpenModelica/OpenModelica/compare/v1.22.3...v1.23.0
Release Notes for OpenModelica 1.22.3¶
This patch release contains several fixes and improvements to the OMEdit GUI. See the full list of the closed issues here.
Release Notes for OpenModelica 1.22.2¶
This patch release contains several fixes and improvements, mostly to the OMEdit GUI
a critical bug when handling connections that causes OMEdit to crash when editing them was fixed
moving components around in diagrams in OMEdit is now much faster and responsive
several fixes to diagram visualization and parameter inputs in OMEdit
much faster FMU code export thanks to the clang compiler and parallel C source code compilation
A full list of closed issues can be found here.
Release Notes for OpenModelica 1.22.1¶
This patch release contains several improvements to the OMEdit GUI:
It is now possible to handle 'each' and 'final' prefixes in parameter input dialogs
It is possible to close the Message Browser window if one wants to maximize the real estate for result plots. Only the status bar is displayed also over multiple re-runs or re-compilations, unless warnings or errors pop up
Some fixes to visualization glitches and OMEdit unexpected crashes
For the full list of improvements, see here.
Release Notes for OpenModelica 1.22.0¶
The main highlight of the 1.22.0 release of OpenModelica is a significant improvement of the OMEdit GUI, made possible by the new instance-based architecture for the interaction between the OMEdit GUI and the underlying OMC compiler, which is now activated by default; see below for further details. Many bugs were also fixed, leading to a much improved user experience, compared to the previous 1.21.0 release.
OpenModelica Compiler (OMC)¶
The new front end has been further improved with about 25 bug fixes, here is a complete list. The conversion from Integer to Enumeration, which was introduced in Modelica 3.4, is now supported by OMC.
Most of the work on the backend is currently focused on developing the new backend; a few fixes were made to the current backend. The `--tearingMethod=noTearing
<https://openmodelica.org/doc/OpenModelicaUsersGuide/latest/omchelptext.html#omcflag-tearingmethod>`__ was deprecated, because it breaks models with discrete variables involved in algebraic loops, `--tearingMethod=minimalTearing
<https://openmodelica.org/doc/OpenModelicaUsersGuide/latest/omchelptext.html#omcflag-tearingmethod>`__ should be used instead. A few bug fixes were also made to the code generation process.
Several bug fixes and improvements were made to the C runtime. A new simulation flag `-lv_system
<https://openmodelica.org/doc/OpenModelicaUsersGuide/1.22/simulationflags.html#simflag-lv-system>`__ was added, to enable logging of solver behaviour for selected systems; together with `-lv_time
<https://openmodelica.org/doc/OpenModelicaUsersGuide/1.22/simulationflags.html#simflag-lv-time>`__, this allows to avoid huge log files when debugging solver issues taking place at some point in time with some specific system of equations.
Several improvements were made to the C++ runtime:
support for ExternalMedia library (fix record inputs of external functions and bindings of records to scalar variables)
support for ThermofluidStream library (fix array dimensions of created temporary variables)
preliminary support for DAE mode
fixed issue with start attributes for iteration variables of implicit nonlinear systems, which were previously lost
Graphical Editor OMEdit¶
As mentioned above, the new instance-based infrastructure for model editing is now firmly in place and is activated by default. This supports long awaited-for features, namely conditional connectors and parameter input dialogs activated by boolean variables, replaceable classes and models with parameter editing. It also improves the support of the DynamicSelect annotation. In case of remaining issues, it is still possible to de-activate the new infrastructure and fall back to the old one, using the checkbox Tools | Options | General | Optional Features | Disable new instance-based graphical editing of models.
Connection handling and rendering is also much improved:
it is no longer possible to make connections between incompatible connectors (that previously only failed later on when trying to compile the model);
connection lines are drawn with a white background that allows to reveal bogus connections that were previously hidden by the component itself (e.g., inadvertently short-circuiting a resistor or capacitor). It also show clearly that two apparently crossing connection lines have no actual connection to each other;
connection lines spanning a connection set with more than one connector are now rendered with dot-like branching points, increasing readability.
Over 70 issues were successfully addressed in the OMEdit graphical editor. About 35 issues concerned the debugging and fine-tuning of the new instance-based infrastructure.
Scripting interfaces¶
Improvement made to the OMMatlab concening the efficiency of the linearize()
API function call were ported to OMPython and OMJulia. The updated implementation avoids recompiling the model from scratch every time when multiple calls to linearize()
are made on the same model, resulting in dramatic performance improvement.
FMI support¶
Further development work was carried out to support source-code FMI export across all operating systems using CMAKE, see closed tickets, in addition to the old workflow that was based on GNU makefiles and only worked in POSIX environments. This functionality, documented here, is now mostly in place, though it requires more testing to become fully usable. To get the latest developments in FMI export support, consider trying the 1.23.0-dev nightly builds.
A new flag --nonStandardExposeLocalIOs was introduced to export input/output connectors of sub-models, like sources, sinks and sensors. The default value 0 expose the top-level public inputs and outputs, the value 1 also exposes public inputs and outputs of components, the value 2 also exposes public inputs and outputs of components within components, and so on.
List of tickets closed in 1.22.0¶
List of closed tickets in 1.22.0. 140 issues were resolved.
Next releases¶
The next release 1.23.0 is planned to be release in Q2 2024. It should include further improvements to the GUI such as parameter editing in hiearchically structured model, fully functional Duplicate feature, restructured Simulation Setup dialog, etc. Further improvements in FMI 2.0.x export are also planned.
Download it from: https://openmodelica.org
Full Changelog: https://github.com/OpenModelica/OpenModelica/compare/v1.21.0...v1.22.0
Release Notes for OpenModelica 1.21.0¶
The 1.21.0 release of OpenModelica doesn't contain any major new feature, but it contains many improvements and bugfixes that significantly improved the quality of the software with respect to the previous 1.20.0 release.
The new single-step gbode solver has been further developed and can now be used as a serious alternative to the more established dassl, ida, and cvode solvers. A full-fledged GUI for its configuration is still not available and will be added in future versions. Currently, the method defaults to esdirk4, a general-purpose 4-th order implicit method. Other methods can be set with the -gbm simulation flag, and each method now automatically selects the best advanced options. All solvers use variable step-size with error control by default, but they can be turned to fixed time step by adding the -gbctrl=const simulation flag.
A completely overhauled architecture for the interaction between the OMEdit GUI and the underlying OMC compiler is now experimentally available in 1.21.0. It relies on the new frontend to instantiate the classes being edited, rather than trying to re-do it from scratch on the GUI side. This architecture provides faster user interaction and allowed to fix many shortcomings of the GUI, e.g. lack of proper support for replaceable classes with parameters, conditional connectors and parameter dialog activation depending on parameters, etc.
OpenModelica Compiler (OMC)¶
The new front end has been further improved with about 20 bug fixes, here is a complete list. Major development work went into supporting the development and fine-tuning a new API for the the OMEdit GUI, see tickets.
Several fixes were made to the current backend, although development work is now mostly focused on the new backend, which includes array-preserving code generation features. The new backend is still not capable of running most models from mainstream libraries. However, it is starting to show interesting results on selected large-scale test models, with size up to a million equations. These models can now be handled with reasonable amounts of time required to build and compile the simulation code. The new backend can be activated with the --newBackend
compiler flag.
Several bug fixes were made to the code generation process. The new CMake-based build infrastructure has been further developed and is now nearly complete, including support for FMI generation.
Many bug fixes and improvements were made to the C runtime, mostly regarding the new gbode solver. This solver is fast reaching production quality and can now be used as a serious alternative to the mainstream dassl, ida, and cvode solvers; it also replaces deprecated obsolete solvers such as impeuler, trapezoid, imprungekutta, etc., that will be removed in future versions.
Graphical Editor OMEdit¶
About 60 issues were successfully addressed in the OMEdit graphical editor. Most notably, the performance of the GUI support for replaceable classes has been improved dramatically; therefore that option, which is required to use Modelica.Media and Modelica.Fluid, is no longer optional but always active by default.
About half of the addressed issues concern the development and fine tuning of the new instance-based interface, that is going to be much faster than the existing one and to address long-standing issues such as supporting conditional connectors and replaceable classes with parameter modifiers.
This new interface can be activated with the Tools | Options | General | Enable instance API option. It is mostly in place now, but it still requires further testing and debugging before it can replace the existing one for good. If you want to experiment with it, we suggest you to use the latest 1.22.0-dev nightly build version, that incorporates the latest developments and bug fixes. Please try that one before reporting issues on the bug tracker.
Scripting interfaces¶
The OMMatlab interface was significantly improved in this version, see tickets. In particular, it is now possible to linearize a system in many different conditions without recompiling it each time, which is useful model-based control design.
List of tickets closed in 1.21.0¶
List of closed tickets in 1.21.0. Over 130 issues were resolved.
Next releases¶
The next release 1.22.0 is planned to be release in Q4 2023. It will include the new instance-based editing in OMEdit, featuring support of conditional connectors, parameter-depending dialog annotation, hierarchical editing of models, and faster rendering of complex diagrams.
Download it from: https://openmodelica.org
Full Changelog: https://github.com/OpenModelica/OpenModelica/compare/v1.20.0...v1.21.0
Release Notes for OpenModelica 1.20.0¶
The first most notable feature of this release is the automatic installation of the Modelica Standard Library (MSL), which is now fully integrated with the Package Manager. Every time any tool of the OpenModelica suite (e.g. OMEdit, OMNotebook, OMShell, etc.) attempts to load a version of the MSL, it checks if it has already been installed in the user's set of system libraries, which is handled by the Package Manager and is located in the user's .openmodelica directory. If that directory is empty, either because of a fresh install, or because it has been deleted, then the MSL is automatically installed in the user's system libraries from cached zip files in the OpenModelica installation directory; in fact, both MSL 3.2.3 (which is backwards compatible with 3.2.2 and 3.2.1) and 4.0.0 are installed, so that any library created during the last ten years can run out of the box.
This automatic installation does not require any Internet connection, so it also works behind corporate firewalls or in situations with limited available bandwidth. This solution uses the same package manager that is also used to install other system libraries, contrary to the solution implemented in versions 1.18.0 and 1.19.x, which used two different directories in the MODELICAPATH, one for the package manager and one for the preinstalled MSL, leading to slightly confusing duplicate installations of MSL.
OMEdit loads MSL 4.0.0 by default in the Libraries Browswer. However, if one then loads a package using MSL 3.2.3, it is possible to unload MSL 4.0.0 and load MSL 3.2.3 just with a click of a button.
The second most notable feature is that a new general purpose ODE solver, named gbode
, was introduced. This solver is a fully configurable single-step solver, supporting many different integration methods, both explicit and implicit, using either fixed time step or variable time step with error control, handling event detection and dense output for accurate resampling over a regular time grid. Implemented methods include Euler, Heun, Dormand-Prince, Gauss, Radau, Lobatto, Adams-Moulton, Fehlberg, SDIRK, ESDIRK, etc. Adaptive multi-rate algorithms are also available within this solver, although this feature is still experimental. This solver replaces previously available solvers like euler
, impeuler
, trapezoid
, etc., which are now deprecated and will be removed in future versions of the tool.
The solver is currently only available via simulation flags, which can be set in OMEdit under Simulation Setup | Simulation Flags | Additional Simulation Flags (optional). It will be supported via drop-down menus in future releases. See the User's Guide under Solving Modelica Models for further information.
OpenModelica Compiler (OMC)¶
The new front end has been further improved, with over a dozen bug fixes.
Some issues were fixed in the current backend, although most of the development work is now focused on the new backend, which can be optionally activated with the --newBackend
compiler flag, and will become the default choice in a future release.
Regarding code generation several issues were fixed, including one that affected the ExternalMedia library, which is now fully supported by OpenModelica.
C Runtime¶
Besides introducing the new gbode
solver, some other issues were fixed. The support for external input from CSV files was improved and better documented. See here for a full list of closed issues.
Graphical Editor OMEdit¶
Besides improved support of the Modelica Standard Library with the package manager, over a dozen issues were fixed, see the full list.
FMI¶
Main highlights: - The FMI import feature allows to import an FMU as a block in a Modelica model. This feature was broken in versions 1.18.0 and 1.19.0, it is now functional again, with some limitations, see the User's Guide for further information. Support for this feature must be explicitly activated with the Enable FMU Import checkbox in the Tools | Options | Simulation | Translation Flags tab of OMEdit. - Support of FMI code generation using CMake, see the documentation in the User's Guide.
Bug fixes.
See here for a full list of closed FMI issues.
List of tickets closed in 1.20.0¶
List of closed tickets in 1.20.0. Over 80 issues were resolved.
Next releases¶
A 1.20.1 bugfix version may be released if critical bugs are identified and resolved before January 2023. The next release 1.21.0 is planned to be beta-released in February 2023, and released in March 2023; it should include a completely restructured handling of model editing in OMEdit, including long awaited-for features like support of conditional connectors, parameter-depending dialog annotation, and faster rendering of complex diagrams.
Download it from: https://openmodelica.org
Full Changelog: https://github.com/OpenModelica/OpenModelica/compare/v1.19.0...v1.20.0
Release Notes for OpenModelica 1.19.2¶
Version 1.19.2 is a bugfix release, where some critical bugs that were present in 1.19.0 got fixed.
The most important one is #8772: parameter dependencies were not handled correctly in some cases, leading to some parameters being wrongly evaluated to zero, which also impacted multibody system animations, see #8938.
Some further remaining issues with directory names containing accented letters were fixed in #8777. A problem with the delay operator was also fixed, see #9116.
Here is the complete list of bug fixes in release 1.19.2.
Download it from: https://www.openmodelica.org
Release Notes for OpenModelica 1.19.0¶
OpenModelica Compiler (OMC)¶
The new front end has been further improved, with over 40 bug fixes.
Several issues were fixed in the backend, most notably problems affecting event generation and issues involving algorithms and arrays, which led to a wrong diagnosis of under-determined system of equations. Overall, over 15 issues were addressed.
Regarding code generation 5 issues were fixed, mostly concerning corner cases that involved arrays, record, and slicing operators.
C Runtime¶
Remaining issues concerning Clock variables were resolved; so, starting from this version, the synchronous features of the Modelica language, in particular the Modelica.Clocked library, are now fully supported. The configuration of runtime and external libraries on Windows was substantially improved. A bug was fixed in daeMode that prevented correct event handling in state-less models, which now run correctly. Overall about 20 issues were fixed.
Graphical Editor OMEdit¶
The most important new feature in 1.19.0 is the fully integrated package management and conversion script support in the GUI. We suggest you to read the Package Management section of the user's guide for an introduction to the basic concepts.
The package management functionality is now available under the File | Manage Libraries menu. It is possible to install supported (or experimental) open-source libraries from the internet, and upgrade them when newer versions are released; all the required dependencies are installed automatically. The Windows installer by default also installs the basic versions of the Modelica standard library, as a fallback in case internet connection is not available, e.g. in corporate environments. All other libraries are no longer supplied with the installer and must be installed via the package manager. Off-line use of the package manager will be improved in future versions.
When right-clicking on a library in the libraries browser, a new context menu item "Convert to Newer versions of used libraries" is available. This allows you to convert your library to newer versions of its dependencies, once you have installed them. If the newer version of the used library is backwards compatible with the previous one, this just changes the uses annotation, otherwise, the conversion script is run automatically. The most common use of this feature is to upgrade models or libraries that you developed using the Modelica library 3.2.3 to use Modelica 4.0.0. We recommend that you use this functionality on your own libraries only; for libraries that you download from the internet, it is best to wait for the developers to perform the conversion and release new versions of their libraries, that you can then get through the package manager.
Support of the dynamicSelect annotation has been improved, although it is still not 100% functional in all cases.
The plotting of results has been significantly improved; appropriate prefixes are now automatically selected to avoid getting very large or very small numbers on the Y-axis.
Overall, over 40 issues were fixed since the previous 1.18.1 release.
Work is on going to provide full support of parameter-depending conditional connectors, parameter-depending dialog annotations, and editing of parameter modifiers in redeclared classes. Implementing these features requires a fundamental re-design of the way OMEdit interacts with the OMC environment to get the required information. These features should become available, at least experimentally, in the future 1.20.0 release.
FMI Export¶
Introduced support for interpolation in CS-FMUs by setting "canInterpolateInputs=true" in modeldescription.xml - Introduced support for getting partial derivatives in ME-FMUs by setting "providesDirectionalDerivative=true" - Lots of improvements to OpenModelica FMU export configurations (black box as well as source code FMUs). - Added source-code nonlinear solver CMINPACK to source-code FMUs
Basic source-code FMU compilation with CMake; cross compilation with Docker now available on Windows.
About 10 issues fixed.
OMSimulator¶
Support of importing and exporting Units and UnitDefinitions to SSP files. - Support for getting directional derivative in OMSimulator using both Symbolic Jacobians and numerical approximation using KINSOL solver.
List of tickets closed in 1.19.0¶
List of closed tickets in 1.19.0. About 180 issues were resolved.
Next releases¶
A 1.19.1 bugfix version may be released if critical bugs are identified and resolved before July 2022. The next release 1.20.0 is planned to be beta-released in July 2022, and release in September 2022. On-going work to further improve the level of support of the Buildings library should ensure a significant improvement in the level of support of most Modelica libraries in that upcoming release.
Download it from: https://www.openmodelica.org
Release Notes for OpenModelica 1.18.0¶
OpenModelica Compiler (OMC)¶
The development of the new front end continued further, after becoming the default in the previous version. The compiler can now successfully flatten 100% of the models of the Modelica Standard Library 3.2.3 and 4.0.0 that have an experiment annotation. It can also successfully flatten 100% of many other open-source Modelica libraries, such as Chemical, HelmholtzMedia, IBPSA, ModelicaTest, OpenIPSL, PNLib, PhotoVoltaics, PlanarMechanics, PowerGrids, PowerSysPro, PowerSystems, SystemDynamics, TAeZoSysPro, ThermofluidStream. The success ratio when flattening the models of the Buildings library is currently at 96%, on-going work aims at reaching 100% by the end of 2021. Overall, 20 front end issues were fixed since the last official release.
Regarding symbolic analysis and code generation, the handling of index reduction in non-trivial cases where the state constraints are spread among many equations has been improved by the introduction of the ASCC algorithm, coupled with the existing reshuffle loop algorithm; this had beneficial effects in particular on three-phase circuit models. Some bugs in the generation of symbolic jacobians for nonlinear systems were also fixed. Overall, 11 issues were resolved.
C Runtime¶
Full support of the spatialDistribution() operator was introduced, including accurate handling of events. Several low-level issues were resolved, involving memory leaks and segmentation faults.
C++ Runtime¶
The C++ runtime was improved to handle more Modelica language features that are used by the new frontend. The previously release OMC 1.17 had worse coverage for the C++ runtime since it used the new frontend by default without supporting it in the C++ code generator. With these improvements, the coverage of libraries improved significantly, also compared to previous versions of OpenModelica with the old frontend, since the new frontend handles more models correctly than the old one, see the regression report, column "Compilation".
Graphical Editor OMEdit¶
Several new features were added to the plotting functionality of OMEdit, in particular: - a "Fit to Diagram" button was added close to the zoom buttons to automatically adjust the extent of a model diagram to its actual content; - the sign of plotted variables can now be toggled by means of the context menu on the variable legends, to compare directly variables that are opposite in sign; - appropriate multiples of SI units (e.g. mW, W, kW, MW, GW for power) are automatically selected for display based on the order of magnitude of the variable, to avoid very large or very small numbers on the plot axes; - the rendering of plots and parameter windows on large and/or high-resolution screens was further improved.
Several bugs were also fixed; in total, 27 issues were addressed.
FMI Support and OMSimulator¶
FMI 2.0 export was further improved. OMSimulator development continues, over 30 issues were fixed.
Data reconciliation¶
The operation of power plants requires a good quality of the process data obtained through sensor measurements. Unfortunately, sensor measurements such as flow rates, temperatures, and pressures are subject to errors that lead to uncertainties in the assessment of the system's state. Operational margins are therefore set to take into account uncertainties on the system's state. Their effect is to decrease production because safety regulations put stringent limits on the thermal power of the plants. It is therefore important to compute the best estimates of the measurement uncertainties in order to increase power production by reducing operational margins as much as possible while still preserving system safety.
The best estimates can be obtained by combining data statistics with a knowledge a priori of the system in the form of a physical model. Data reconciliation is a technique that has been conceived in the process industry for that purpose. It is fully described in the VDI 2048 standard for the control and quality improvement of process data and their uncertainties by means of correction calculation for operation and acceptance tests".
An extension of Modelica to perform data reconciliation on Modelica models was developed together with EDF and is now fully implemented and integrated with the OMEdit GUI. The basic ideas are explained in this presentation, and a section DataReconciliation was added to the User's Guide, explaing how to use it step-by-step.
List of tickets closed in 1.18.0¶
We are currently transitioning from the old trac issue tracker to the GitHub issue tracker, which is fully integrated with the GitHub revision control and continuous integration framework that we use for the development of OpenModelica. Eventually, the old trac tickets will be migrated onto the GitHub issue tracker. For the time being, old tickets are still managed on trac, while new ones are on GitHub. Overall, about 80 issues were addressed successfully since the 1.17.0 release.
Next releases¶
A 1.18.1 bugfix release is planned later this year with some critical bug fixes that have been identified and partially addressed, but need some more testing. The next release 1.19.0 is planned to be released in February 2022, close to the OpenModelica Workshop and Annual Meeting.
Version 1.19.0 is expected to contain a GUI integrated in OMEdit for library handling and conversions. It is also planned to successfully run 100% or close to 100% of the Buildings 7.0.1 library. This will be a major milestone, given the broad extent and complexity of that library.
Download it from: https://www.openmodelica.org
Release Notes for OpenModelica 1.17.0¶
OpenModelica Compiler (OMC)¶
The new frontend has been further improved, and is now the default choice for all the OpenModelica tools. The -d=newInst
flag no longer needs to be set in scripts. The old frontend is no longer maintained and will progressively be replaced also for the API interface used by OMEdit. 21 tickets were fixed since the previous 1.16.5 release.
Some issues were fixed in the backend, in particular regarding homotopy
during initialization. Some improvements to code generation, in particular enhancing the support of the HelmholtzMedia library.
The MSYS environment used on Windows was updated to a more recent version, with several benefits: - clang is now also available on Windows and used by default instead of gcc for the compilation of the generated C code, providing much faster C compile time on Windows; - dynamic linking is used instead of static linking, further reducing the overall compilation time on Windows; - a more recent version of the QT library is used, which solves some issues with the rendering of features in OMEdit.
The Sundials solvers and basic linear algebra library KLU were upgraded to the most recent available versions, with benefits in performance and roubustness at runtime.
Supported versions of Modelica Standard Library (MSL)¶
OpenModelica now supports both currently maintained versions of the Modelica Standard Library, MSL 3.2.3 and MSL 4.0.0. This means that you can use Modelica libraries that use either version of the MSL, or create new ones that do so. Automatic conversion of existing libraries from MSL 3.2.3 to MSL 4.0.0 is currently not yet available, it is planned for version 1.18.0.
Please note that the synchronous features in MSL 4.0.0 are still not fully supported, so we suggest not to rely on them in this version of the tool. Better support is planned for version 1.18.0.
Graphic Editor OMEdit¶
The user experience with OMEdit is significantly improved in version 1.17.0, in particular for the Windows version, where the compilation time was drastically reduced by using clang instead of gcc and by dynamic linking instead of static linking of the simulation executable.
Thanks to the upgrade of the employed QT graphics libraries, several issues that plagued the graphical user interface are now resolved.
Replaceable classes continue to have graphical support in OMEdit, even though parameters in redeclared classes cannot yet be modified from the GUI, thus requiring to switch to text mode to do so. The new front end can also be used for some of the API functions called by OMEdit to render the model diagrams, making the response of the GUI much faster. Please note that both these features are currently optional and needs to be activated by setting Tools | Options | General | Enable replaceable support and Enable new frontend use in the OMC API (faster GUI response). These settings are retained from the previous installation upon version upgrading.
Unsaved code was sometimes lost when switching among different windows in OMEdit, this is no longer happening in this release. Several issues that caused occasional crashes of the GUI were also fixed.
OMEdit now can use both currently maintained versions of the Modelica Standard Library, MSL 3.2.3 and MSL 4.0.0. Please note that the Modelica.Clocked package in MSL 4.0.0 is still not handled in a completely reliable way, while most other models work equally well in the two versions.
When starting the program for the first time after installation, one can choose among three options: load MSL 3.2.3 automatically, which however prevents using libraries that need MSL 4.0.0; load MSL 4.0.0 automatically, which prevents using libraries that need MSL 3.2.3; not loading any version of the library upon starting OMEdit, leaving it to the tool to load the right one when a model or library is opened, thanks to the uses() annotation. The latter option allow to handle different projects that use either version of the MSL without problems, of course one at a time. This choice can be later modified by going to the Tools | Options | Libraries menu and by adding or removing the Modelica library from the automatically loaded system libraries, and/or by modifying the specific version that gets loaded.
Proper support of the package manager from the GUI, including conversion scripts to upgrade existing libraries from MSL 3.2.3 to MSL 4.0.0, is planned for version 1.18.0.
16 bug fixes were made to OMEdit in version 1.17.0, to increase usability of the GUI.
Direct support of macOS discontinued from 1.17.0¶
Until version 1.16.x, OpenModelica was built on Windows, Linux, and macOS. The core functionality of the tool is implemented in Linux, and is ported to Windows using the MinGW environment, and on macOS using the macports environment.
Unfortunately, many libraries OpenModelica depends on are not regularly updated on macports, which caused the Mac build to break every other day. Given our limited resources, we can't take on the burden of the required macports maintenance, so we regret to inform you that we decided to stop providing builds of OpenModelica for macOS. It is still possible to run OpenModelica on the Mac by running a virtual machine with a Linux installation of OpenModelica, see the instructions on the Mac download page. We are still trying to make it possible to build OpenModelica from sources on macOS, please check ticket #6306 for the latest updates and if you want to contribute to the effort. However, we do not guarantee this will be always possible in the future.
FMI Support¶
FMI 2.0 export and FMI simulation with OMSimulator was further improved.
Other things¶
OMSimulator is now integrated into pypi and installed via pip.
A prototype Flat Modelica code export feature is now available, a result of the Emphysis project and eFMI on-going standardization effort. It can be activated with the compilation flag.
The Modelica package manager is still only available from the command line in this release. We plan to integrate it the OMEdit GUI for the 1.18.0 release, together with conversion scripts.
Download it from: https://www.openmodelica.org
Release Notes for OpenModelica 1.16.5¶
This hopefully the final bugfix release of 1.16.0, which addresses an issue that affected diagrams in OMEdit under certain conditions.
What's Changed¶
Keep the NFApi settings (#7215) by @adeas31 in https://github.com/OpenModelica/OpenModelica/pull/7217
Full Changelog: https://github.com/OpenModelica/OpenModelica/compare/v1.16.4...v1.16.5
Release Notes for OpenModelica 1.16.4¶
This is a further bugfix release of 1.16.0, which addresses an issue that affected diagrams in OMEdit under certain conditions.
What's Changed¶
Move the nfAPI and nfAPINoise settings to general page (#7171) by @adeas31 in https://github.com/OpenModelica/OpenModelica/pull/7175
Prepare for 1.16.4 by @adrpo in https://github.com/OpenModelica/OpenModelica/pull/7186
Full Changelog: https://github.com/OpenModelica/OpenModelica/compare/v1.16.3...v1.16.4
Release Notes for OpenModelica 1.16.2¶
This is a bug fix release.
What's Changed¶
Omedit fixes by @adeas31 in https://github.com/OpenModelica/OpenModelica/pull/6982
Fixes 1.16 by @adeas31 in https://github.com/OpenModelica/OpenModelica/pull/7004
fix ticket #6300, use NF for getElementAnnotations if -d=nfAPI is on by @adrpo in https://github.com/OpenModelica/OpenModelica/pull/7055
partial fix for #6287 and fix for #6288 by @adrpo in https://github.com/OpenModelica/OpenModelica/pull/7056
Full Changelog: https://github.com/OpenModelica/OpenModelica/compare/v1.16.1...v1.16.2
Release Notes for OpenModelica 1.16.1¶
This is a further bugfix release of 1.16.0
What's Changed¶
fix #6167 allow partial handling in NF when -d=nfAPI is on by @adrpo in https://github.com/OpenModelica/OpenModelica/pull/6898
Do not put libOMEdit.a in build/ by @sjoelund in https://github.com/OpenModelica/OpenModelica/pull/6908
Copy OMEdit fixes from master to v1.16 by @adrpo in https://github.com/OpenModelica/OpenModelica/pull/6911
Use assert instead of Q_ASSERT by @adeas31 in https://github.com/OpenModelica/OpenModelica/pull/6929
Copy #6174 fixes to 1.16 by @adrpo in https://github.com/OpenModelica/OpenModelica/pull/6939
Backport the new ZMQ flags to 1.16 by @sjoelund in https://github.com/OpenModelica/OpenModelica/pull/6950
Full Changelog: https://github.com/OpenModelica/OpenModelica/compare/v1.16.0...v1.16.1
Release Notes for OpenModelica 1.16.0¶
OpenModelica Compiler (OMC)¶
The new frontend has been further improved, with enhanced support of records and arrays. 33 tickets were fixed since the previous 1.14.0 release. The new front-end can now handle 100% of the Modelica Standard Library 3.2.3 models.
Improvements to the back-end:
new minimal tearing option
--minimalTearing
to disable tearing except for discrete variablesimproved symbolic Jacobian evaluation option
--simJacConstantSplit
reuses constant part of the Jacobianimprovements to dynamic state selection and common subexpression elimination
new ASCC algorithm replaces and improves resolveLoops algorithm, allowing to detect high-index problems with indirect structural state constraints, e.g. in three-phase AC circuits
homotopy operator now used on first try by default
linearized model export also available in Matlab, Python, and Julia with option
--linearizationDumpLanguage
Improvements to code generation and runtime:
Better support for models with records
CVODE solver from SUNDIALS added;
2 methods available: BDF (stiff) and Adams-Moulton (non-stiff)
It is now possible to build a version of OMC with parallel Jacobian evaluation using OpenMP
On Windows build OMC with
make -f Makefile.omdev.mingw omc -j4 USE_PARJAC=yes
On Unix configure with
--enable-parjac
and build OMC.Only DASSL and IDA can use parallelized symbolic Jacobians.
Simulate with
-jacobianThreads=<numberOfThreads>
or set environment variableOMP_NUM_THREADS=<numberOfThreads>
to use a specific number of threads. Otherwise all available threads will be used.
Graphic Editor OMEdit¶
Replaceable classes now have graphical support in OMEdit. This feature was planned to be included in release 1.15.0, but it eventually turned out to be more convenient to merge it in the 1.16.0 release. Support for replaceable elements in OMEdit is currently limited to redeclare statements without parameter modifiers. This is enough to handle Modelica.Media medium models in Modelica.Fluid components. Please note that this feature is currently optional and needs to be activated by setting ToolsGeneral|Enable replaceable support in OMEdit.
Over 50 bug fixes were made to OMEdit to increase usability of the GUI.
OMSimulator GUI improved: text editing of SSP models, undo/redo, delete components, etc.
FMI Support¶
Many FMI export bug fixes and improvements to increase usability of OMC-generated FMUs.
FMI/CS 2.0 now includes CVODE solvers (previously only fixed-step forward Euler) and customization via simulation flags.
Other things¶
Successful integration of Modelon's license manager for encrypted libraries. A special version of OMC available to Consortium members can now handle encrypted libraries, preventing source code browsing, and license management, via Modelon's license manager, embedded in the encrypted library.
Improved Modelica package management. The conversion(noneFromVersion)
annotation is now fully supported, which means for example that OpenModelica will automatically use the Modelica Standard Library 3.2.3 even for libraries that have a uses annotation pointing to earlier MSL versions, e.g. 3.2.2 or 3.2.1, because the conversion(noneFromVersion)
annotations in the MSL specify that 3.2.3 can be used instead of 3.2.2 or 3.2.1 without any conversion script, i.e., it is fully backwards compatible. A full-fledged Modelica package manager is also included in OpenModelica 1.16.0, currently only with a command line interface; integration in the GUI is planned for the next 1.17.0 release, together with conversion scripts.
New Contributors¶
@mflehmig made their first contribution in https://github.com/OpenModelica/OpenModelica/pull/302
@stheid made their first contribution in https://github.com/OpenModelica/OpenModelica/pull/752
Full Changelog: https://github.com/OpenModelica/OpenModelica/compare/v1.15.0-dev...v1.16.0
Release Notes for OpenModelica 1.14.2¶
A bug fix release for v1.14.1, fixing among other things compilation on Ubuntu 20.04.
What's Changed¶
Fixes ticket:5733 Don't use the qualified path by @adeas31 in https://github.com/OpenModelica/OpenModelica/pull/647
[NF] Fix some Expression.map*Opt functions. by @perost in https://github.com/OpenModelica/OpenModelica/pull/656
ticket:5778 Fixed users guide links by @adeas31 in https://github.com/OpenModelica/OpenModelica/pull/666
Full Changelog: https://github.com/OpenModelica/OpenModelica/compare/v1.14.1...v1.14.2
Release Notes for OpenModelica 1.14.0¶
OpenModelica Compiler (OMC)¶
The most dramatic enhancement of the OpenModelica Compiler is the New Frontend, which on the average gives a factor of 10-20 speed improvement in the flattening phase of compilation. The new frontend is default in this release, but a feature is implemented that allows the user to switch to the old frontend if problems appear for a specific model The speed of the OMEdit GUI has only slightly increased in this version, since it is still dependent mostly on the old frontend. Further GUI speed increases are available in the coming OpenModelica.1.15.0. About 200 issues have been fixed, including enhancements, compared to the previous 1.13.2 release. The bug fixes are on trac.
OpenModelica Compiler New Frontend news: • Implementation of expandable connectors completed, a rather large piece of work. • A number of smaller enhancements and fixes • The New Frontend (NF)gives slightly better simulation coverage on MSL 3.2.3 than the Old Frontend • The New Frontend is on the average about 20 times faster on flattening. • Remaining work is mainly on further bug fixing and testing the new frontend for all other libraries, as well as more work on modifiers of arrays in conjunction with non-expanded arrays. (The array modifiers have now been implemented in 1.16.0 but not yet it 1.14.0 in order to not delay the 1.14.0 release)
Graphic Editor OMEdit¶
Drag and drop for the text layer. • Auto completion of class names, components and annotations. • GUI for data reconciliation – a method for increasing sensor data precision • Improved duplication functionality for copying classes. • Better handling of Compiler flags. • Partly completed: annotations for dynamic icon update. • Support for connectorSizing annotation • Several bug fixes. You can find the list here. • Docs: https://openmodelica.org/doc/OpenModelicaUsersGuide/latest/omedit.html. • Autocomplete annotations. • Support for Icon/Diagram map annotation • Copy paste functionality • Reset OMEdit settings/options. • Array plots update on re-simulation • Support for connectorSizing annotation. • Drag and drop class names to text layer in OMEdit • OMPlot: Improved plotting e.g., top and bottom margins for better view, snap to curve etc. • GUI support for replaceable libraries is being tested in a separate branch and will be made available in the coming 1.15.0 release.
OMC backend and run-time system¶
A new more efficient and correct implementation of arrays and records.
The FMI OMSimulator API calls are now also available in the OMC API functions, e.g. for use from OMNotebook, Jupyter notebooks.
Backend new features¶
Added possibility to generate analytic Jacobians for linear strong components • Use flag LSanalyticJacobian to enable analytical Jacobian for linear loops. Default false.
Added output language options for linearization: matlab, python, julia. • Available with --linearizationDumpLanguage=modelica/matlab/python/julia. Default is modelica.
Backend enhancements¶
Unified Jacobian evaluation from DASSL and IDA integrators • Added result check for linear solvers Lis, Klu, Total Pivot and Umfpack if a residual function is available. • Improved debug dumping
Improved warning for iteration variables:
• Only warn about non-linear iteration variables with default start attribute. • Other variables have no influence on simulation at all.
Build instructions for OpenModelica on Windows Subsystem for Linux • Improved Jacobian evaluation with translation flag -d=symJacConstantSplit (requires --generateSymbolicJacobian). Generate Jacobians with separated constant part to split equations that are independent of the seed vector. These equations only need to be evaluated only once per Jacobian evaluation.
Backend bugfixes¶
Homotopy: Use simplified version only during initialization to avoid errors during matching and differentiation. • Logging for Homotopy path fixed so log can be loaded in OMEdit. • Support general function call differentiation for equations in residual form. • Equations in residual form don't fail during index reduction any more.
FMI Support¶
Bug fixes to FMI export, see below
Full Changelog: https://github.com/OpenModelica/OpenModelica/compare/v1.14.0-dev...v1.14.0
Release Notes for OpenModelica 1.13.0¶
OMSimulator 2.0 – the second release of our efficient FMI Simulation
tool including a GUI for FMI Composition, co-simulation and model-exchange simulation, and SSP standard support. - Model and library encryption/decryption support. (Only for usage by OSMC member organizations) - Improved OpenModelica DAEMode for efficient solution of large Modelica models. - Julia scripting API to OpenModelica. - Basic Matlab scripting API to OpenModelica. - OMSysIdent - parameter estimation module for linear and non-linear parametric dynamic models. - Interactive simulation and control of simulations with OPC-UA. - PDEModelica1 - experimental support for one-dimensional PDEs in Modelica. - Analytic directional derivatives for FMI export and efficient calculation of multiple Jacobian columns – giving much faster simulation for some models - Enhanced OMEdit – including fast multi-file search. - Improved error messages and stability. - A version of the new fast compiler frontend available for testing, can be enabled by a flag Currently (December 10), simulates about 84% of MSL 3.2.2
Note: the replaceable GUI support has been moved to OpenModelica 1.14.0 and will be available in nightly builds.
Release Notes for OpenModelica 1.12.0¶
A new (stand-alone) FMI- and TLM-based simulation tool OMSimulator, first version for connected FMUs, TLM objects, Simulink models (via wrappers), Adams models (via wrappers), BEAST models (via wrappers), Modelica models
Graphic configuration editing of composite models consisting of FMUs
Basic graphical editing support for state machines and transitions
Faster lookup processing, making some libraries faster to browse and compile
Additional advanced visualization features for multibody animation
Increased library coverage including significantly increased verification coverage
Increased tool interoperability by addition of the ZeroMQ communications protocol
Further enhanced OMPython including linearization, now also working with Python 3
Support for RedHat/Fedora binary builds of OpenModelica
OpenModelica Compiler (OMC)¶
Faster lookup processing
Initializing external objects together with parameters
Handle exceptions in numeric solvers
Support for higher-index discrete clock partitions
Improved unit checking
Improved initialization of start values
Decreased compilation time of models with large size arrays
New approach for homotopy-based initialization (still experimental)
A bunch of fixes: Bugs, regressions, performance issues
Improved Dynamic Tearing by adding constraints for the casual set
Improved module wrapFunctionCalls with one-time evaluation of Constant CSE-variables
Added initOptModule for inlineHomotopy
Added configuration flag tearingStrictness to influence solvability
New methods for inline integration for continuous equations in clocked partitions, now covering: ExplicitEuler, ImplicitEuler, SemiImplicitEuler and ImplicitTrapezoid
Complete implementation of synchronous features in C++ runtime
Refactored linear solver of C++ runtime
Improved Modelica_synchronous_cpp coverage
New common linear solver module, optionally sparse, for the C++ runtime
Coverage of most of the OpenHydraulics library
Improved coverage of ThermoSysPro, IdealizedContact and Chemical libraries
Support of time events for cpp-simulation and enabled time events in cpp-FMUs
Global homotopy method for initialization
Scripting API to compute accumulated errors (1-norm, 2-norm, max. error) of 2 time series
Graphic Editor OMEdit¶
Additional advanced visualization features for multibody animation (transparency, textures, change colours by dialog)
An HTML WYSIWYG Editor, e.g. useful for documentation
Support for choices(checkBox=true) annotation.
Support for loadSelector & saveSelector attribute of Dialog annotation.
Panning of icon/diagram view and plot window.
AutoComplete feature in text editing for keywords, types, common Modelica constructs
Follow connector transformation from Diagram View to Icon View.
Further stability improvements
Improved performance for rendering some icons using the interactive API
Improved handling of parameters that cannot be evaluated in Icon annotations
Basic graphic editing support for state machines and transitions (not yet support for showing state internals on diagram layer)
Interactive state manipulation for FMU-based animations
FMI Support¶
A new (stand-alone) FMI- and TLM-based simulation tool OMSimulator, first version (a main deliverable of the OPENCPS project, significant contributions and code donations from SKF)
Graphic configuration editing of composite models consisting of FMUs
Co-simulation/simulation of connected FMUs, TLM objects, Simulink models (via wrappers), Adams models (via wrappers), BEAST models (via wrappers), Modelica models.
Other things¶
Increased OpenModelica tool interoperability by adding the ZeroMQ communications protocol in addition to the previously available Corba. This also enables Python 3 usage in OMPython on all platforms.
Textual support through the OpenModelica API and graphical support in OMEdit for generation of single or multiple requirement verification scenarios
VVDRlib – a small library for connecting requirements and models together, with notions for mediators, scenarios, design alternatives
Further enhanced OMPython including linearization, now also working with Python 3.¨
Jupyter notebooks also supported with OMPython and Python 3
New enhanced library testing script (libraries.openmodelica.org/branches).
Addition of mutable reference data types in MetaModelica
Support for RedHat/Fedora binary builds of OpenModelica
Support for exporting the system of equations in GraphML (yEd) format for debugging
Release Notes for OpenModelica 1.11.0¶
Dramatically improved compilation speed and performance, in particular for large models.
3D animation visualization of regular MSL MultiBody simulations and for real-time FMUs.
Better support for synchronous and state machine language elements, now supports 90% of the clocked synchronous library.
Several OMEdit improvements including folding of large annotations.
64-bit OM on Windows further stabilized
An updated OMDev (OpenModelica Development Environment), involving msys2. This was needed for the shift to 64-bit on Windows.
Integration of Sundials/IDA DAE solver with potentially large increase of simulation performance for large models with sparse structure.
Improved library coverage.
Parameter sensitivity analysis added to OMC.
OpenModelica Compiler (OMC)¶
Real-time synchronization support by using simFlag -rt=1.0 (or some other time scaling factor).
A prototype implementation of OPC UA using an open source OPC UA implementation. The old OPC implementation was not maintained and relied on a Windows-only proprietary OPC DA+UA package. (At the moment, OPC is experimental and lacks documentation; it only handles reading/writing Real/Boolean input/state variables. It is planned for OMEdit to use OPC UA to re-implement interactive simulations and plotting.)
Dramatically improved compilation speed and dramatically reduced memory requirements for very large models. In Nov 2015, the largest power generation and transmission system model that OMC could handle had 60000 equations and it took 700 seconds to generate the simulation executable code; it now takes only 45 seconds to do so with OMC 1.11.0, which can also handle a model 10 times bigger (600 000 equations) in less than 15 minutes and with less than 32 GB of RAM. Simulation times are comparable to domain-specific simulation tools. See for example ScalableTestSuite for some of the improvements.
Improved library coverage
Better support for synchronous and state machine language elements, now simulates 90% of the clocked synchronous library.
Enhanced Cpp runtime to support the PowerSystems library.
Integration of Sundials/IDA solver as an alternative to DASSL.
A DAEMode solver mode was added, which allows to use the sparse IDA solver to handle the DAEs directly. This can lead to substantially faster simulation on large systems with sparse structure, compared to the traditional approach.
The direct sparse solvers KLU and SuperLU have been added, with benefits for models with large algebraic loops.
Multi-parameter sensitivity analysis added to OMC.
Progress on more efficient inline function mechanism.
Stabilized 64-bit Windows support.
Performance improvement of parameter evaluation.
Enhanced tearing support, with prefer iteration variables and user-defined tearing.
Support for external object aliases in connectors and equations (a non-standard Modelica extension).
Code generation directly to file (saves maximum memory used). #3356
Code generation in parallel is enabled since #3356 (controlled by omc flag `-n`). This improves performance since generating code directly to file avoid memory allocation.
Allowing mixed dense and sparse linear solvers in the generated simulation (chosen depending on simflags `-ls` (dense solver), `-lss` (sparse solver), `-lssMaxDensity` and `-lssMinSize`).
Graphic Editor OMEdit¶
Significantly faster browsing of most libraries.
Several GUI improvements including folding of multi-line annotations.
Further improved code formatting preservation during edits.
Support for all simulation logging flags.
Select and export variables after simulation.
Support for Byte Order Mark. Added support enables other tools to correctly read the files written by OMEdit.
Save files with line endings according to OS (Windows (CRLF), Unix (LF)).
Added OMEdit support for FMU cross compilation. This makes it possible to launch OMEdit on a remote or virtual Linux machine using a Windows X server and export an FMU with Windows binaries.
Support of DisplayUnit and unit conversion.
Fixed automatic save.
Initial support for DynamicSelect in model diagrams (texts and visible attribute after simulation, no expressions yet).
An HTML documentation editor (not WYSIWYG; that editor will be available in the subsequent release).
Improved logging in OMEdit of structured messages and standard output streams for simulations.
FMI Support¶
Cross compilation of C++ FMU export. Compared to the C runtime, the C++ cross compilation covers the whole runtime for model exchange.
Improved Newton solver for C++ FMUs (scaling and step size control).
Other things¶
3D animation visualization of regular MSL MultiBody simulations and for real-time FMUs.
An updated OMDev (OpenModelica Development Environment), involving msys2. This was needed for the shift to 64-bit on Windows.
OMWebbook, a web version of OMNotebook online. Also, a script is available to convert an OMNotebook to an OMWebbook.
A Jupyter notebook Modelica mode, available in OpenModelica.
Release Notes for OpenModelica 1.10.0¶
The most important enhancements in the OpenModelica 1.10.0 release:
OpenModelica Compiler (OMC)¶
New features:
Real-time synchronization support by using simFlag -rt=1.0 (or some
other time scaling factor). - A prototype implementation of OPC UA using an open source OPC UA implementation. The old OPC implementation was not maintained and relied on a Windows-only proprietary OPC DA+UA package. (At the moment, OPC is experimental and lacks documentation; it only handles reading/writing Real/Boolean input/state variables. It is planned for OMEdit to use OPC UA to re-implement interactive simulations and plotting.)
Performance enhancements:
Code generation directly to file (saves maximum memory used). #3356 -
Code generation in parallel enabled since #3356 allows this without allocating too much memory (controlled by omc flag `-n`). - Various scalability enhancements, allowing the compiler to handle hundreds of thousands of equations. See for example ScalableTestSuite for some of the improvements. - Better defaults for handling tearing (OMC flags `--maxSizeLinearTearing` and `--maxSizeNonlinearTearing`). - Allowing mixed dense and sparse linear solvers in the generated simulation (chosen depending on simflags `-ls` (dense solver), `-lss` (sparse solver), `-lssMaxDensity` and `-lssMinSize`).
Graphic Editor OMEdit¶
OpenModelica Notebook (OMNotebook)¶
Optimization¶
FMI Support¶
OpenModelica Development Environment (OMDev)¶
Release Notes for OpenModelica 1.9.4¶
OpenModelica v1.9.4 was released 2016-03-09. These notes cover the v1.9.4 release and its subsequent bug-fix releases (now up to 1.9.7).
OpenModelica Compiler (OMC)¶
Improved simulation speed for many models. simulation speed went up for 80% of the models. The compiler frontend became faster for almost all models, average about 40% faster.
Initial support for synchronous models with clocked equations as defined in the Modelica 3.3 standard
Support for homotopy operator
Graphic Editor OMEdit¶
Undo/Redo support.
Preserving text formatting, including indentation and whitespace. This is especially important for diff/merge with several collaborating developers possibly using several different Modelica tools.
Better support for inherited classes.
Allow simulating models using visual studio compiler.
Support for saving Modelica package in a folder structure.
Allow reordering of classes inside a package.
Highlight matching parentheses in text view.
When copying the text retain the text highlighting and formatting.
Support for global head definition in the documentation by using `__OpenModelica_infoHeader` annotation.
Support for expandable connectors.
Support for uses annotation.
FMI Support¶
Full FMI 2.0 co-simulation support now available
Upgrade Cpp runtime from C++03 to C++11 standard, minimizing external link dependencies. Exported FMUs don't depend on additional libraries such as boost anymore
FMI 2.0 is broken for some models in 1.9.4. Upgrading to 1.9.6 is advised.
Release Notes for OpenModelica 1.9.3¶
The most important enhancements in the OpenModelica 1.9.3 release:
Enhanced collaborative development and testing of OpenModelica by moving to the GIT-hub framework for versioning and parallel development.
More accessible and up-to-date automatically generated documentation provided in both html and pdf.
Further improved simulation speed and coverage of several libraries.
OMEdit graphic connection editor improvements.
OMNotebook improvements.
OpenModelica Compiler (OMC)¶
This release mainly includes improvements of the OpenModelica Compiler (OMC), including, but not restricted to the following:
Further improved simulation speed and coverage for several libraries.
Faster generated code for functions involving arrays, factor 2 speedup for many power generation models.
Better initialization.
An implicit inline Euler solver available.
Code generation to enable vectorization of for-loops.
Improved non-linear, linear and mixed system solving.
Cross-compilation for the ARMhf architecture.
A prototype state machine implementation.
Improved performance and stability of the C++ runtime option.
More accessible and up-to-date automatically generated documentation provided in both html and .pdf.
Graphic Editor OMEdit¶
There are several improvements to the OpenModelica graphic connection editor OMEdit:
Support for uses annotations.
Support for declaring components as vectors.
Faster messages browser with clickable error messages.
Support for managing the stacking order of graphical shapes.
Several improvements to the plot tool and text editor in OMEdit.
OpenModelica Notebook (OMNotebook)¶
Several improvements:
Support for moving cells from one place to another in a notebook.
A button for evaluation of whole notebooks.
A new cell type called Latex cells, supporting Latex formatted input that provides mathematical typesetting of formulae when evaluated.
Optimization¶
Several improvements of the Dynamic Optimization module with collocation, using Ipopt:
Better performance due to smart treatment of algebraic loops for optimization.
Improved formulation of optimization problems with an annotation approach which also allows graphical problem formulation.
Proper handling of constraints at final time.
FMI Support¶
Further improved FMI 2.0 co-simulation support.
OpenModelica Development Environment (OMDev)¶
A big change: version handling and parallel development has been improved by moving from SVN to GIThub. This makes it easier for each developer to test his/her fixes and enhancements before committing the code. Automatic mirroring of all code is still performed to the OpenModelica SVN site.
Release Notes for OpenModelica 1.9.2¶
The OpenModelica 1.9.2 Beta release is available now, January 31, 2015. Please try it and give feedback! The final release is planned within 1-2 weeks after some more testing. The most important enhancements in the OpenModelica 1.9.2 release:
The OpenModelica compiler has moved to a new development and release platform: the bootstrapped OpenModelica compiler. This gives advantages in terms of better programmability, maintenance, debugging, modularity and current/future performance increases.
The OpenModelica graphic connection editor OMEdit has become 3-5 times faster due to faster communication with the OpenModelica compiler linked as a DLL. This was made possible by moving to the bootstrapped compiler.
Further improved simulation coverage for a number of libraries.
OMEdit graphic connection editor improvements
OpenModelica Compiler (OMC)¶
This release mainly includes improvements of the OpenModelica Compiler (OMC), including, but not restricted to the following:
The OpenModelica compiler has moved to a new development and release platform: the bootstrapped OpenModelica compiler. This gives advantages in terms of better programmability, maintenance, debugging, modularity and current/future performance increases.
Further improved simulation coverage for a number of libraries compared to 1.9.1. For example:
MSL 3.2.1 100% compilation, 97% simulation (3% increase)
MSL Trunk 99% compilation (1% increase), 93% simulation (3% increase)
ModelicaTest 3.2.1 99% compilation (2% increase), 95% simulation (6% increase)
ThermoSysPro 100% compilation, 80% simulation (17% increase)
ThermoPower 97% compilation (5% increase), 85% simulation (5% increase)
Buildings 80% compilation (1% increase), 73% simulation (1% increase)
Further enhanced OMC compiler front-end coverage, scalability, speed and memory.
Better initialization.
Improved tearing.
Improved non-linear, linear and mixed system solving.
Common subexpression elimination support - drastically increases performance of some models.
Graphic Editor OMEdit¶
The OpenModelica graphic connection editor OMEdit has become 3-5 times faster due to faster communication with the OpenModelica compiler linked as a DLL. This was made possible by moving to the bootstrapped compiler.
Enhanced simulation setup window in OMEdit, which among other things include better support for integration methods and dassl options.
Support for running multiple simultaneous simulation.
Improved handling of modifiers.
Re-simulate with changed options, including history support and re-simulating with previous options possibly edited.
More user friendly user interface by improved connection line drawing, added snap to grid for icons and conversion of icons from PNG to SVG, and some additional fixes.
Optimization¶
Some smaller improvements of the Dynamic Optimization module with collocation, using Ipopt.
FMI Support¶
Further improved for FMI 2.0 model exchange import and export, now compliant according to the FMI compliance tests. FMI 1.0 support has been further improved.
Release Notes for OpenModelica 1.9.1¶
The most important enhancements in the OpenModelica 1.9.1 release:
Improved library support.
Further enhanced OMC compiler front-end coverage and scalability
Significant improved simulation support for libraries using Fluid and Media.
Dynamic model debugger for equation-based models integrated with OMEdit.
Dynamic algorithm model debugger with OMEdit; including support for MetaModelica when using the bootstrapped compiler.
New features: Dynamic debugger for equation-based models; Dynamic Optimization with collocation built into OpenModelica, performance analyzer integrated with the equation model debugger.
OpenModelica Compiler (OMC)¶
This release mainly includes improvements of the OpenModelica Compiler (OMC), including, but not restricted to the following:
Further improved OMC model compiler support for a number of libraries including MSL 3.2.1, ModelicaTest 3.2.1, PetriNet, Buildings, PowerSystems, OpenHydraulics, ThermoPower, and ThermoSysPro.
Further enhanced OMC compiler front-end coverage, scalability, speed and memory.
Better coverage of Modelica libraries using Fluid and Media.
Automatic differentiation of algorithms and functions.
Improved testing facilities and library coverage reporting.
Improved model compilation speed by compiling model parts in parallel (bootstrapped compiler).
Support for running model simulations in a web browser.
New faster initialization that handles over-determined systems, under-determined systems, or both.
Compiler back-end partly redesigned for improved scalability and better modularity.
Better tearing support.
The first run-time Modelica equation-based model debugger, not available in any other Modelica tool, integrated with OMEdit.
Enhanced performance profiler integrated with the debugger.
Improved parallelization prototype with several parallelization strategies, task merging and duplication, shorter critical paths, several scheduling strategies.
Some support for general solving of mixed systems of equations.
Better error messages.
Improved bootstrapped OpenModelica compiler.
Better handling of array subscripts and dimensions.
Improved support for reduction functions and operators.
Better support for partial functions.
Better support for function tail recursion, which reduces memory usage.
Partial function evaluation in the back-end to improve solving singular systems.
Better handling of events/zero crossings.
Support for colored Jacobians.
New differentiation package that can handle a much larger number of expressions.
Support for sparse solvers.
Better handling of asserts.
Improved array and matrix support.
Improved overloaded operators support.
Improved handling of overconstrained connection graphs.
Better support for the cardinality operator.
Parallel compilation of generated code for speeding up compilation.
Split of model files into several for better compilation scalability.
Default linear tearing.
Support for impure functions.
Better compilation flag documentation.
Better automatic generation of documentation.
Better support for calling functions via instance.
New text template based unparsing for DAE, Absyn, SCode, TaskGraphs, etc.
Better support for external objects (#2724, reject non-constructor functions returning external objects)
Improved C++ runtime.
Improved testing facilities.
New unit checking implementation.
Support for model rewriting expressions via rewriting rules in an external file.
Reject more bad code (r19986, consider records with different components type-incompatible)
OpenModelica Connection Editor (OMEdit)¶
Convenient editing of model parameter values and re-simulation without recompilation after parameter changes.
Improved plotting.
Better handling of flags/units/resources/crashes.
Run-time Modelica equation-based model debugger that provides both dynamic run-time debugging and debugging of symbolic transformations.
Run-time Modelica algorithmic code debugger; also MetaModelica debugger with the bootstrapped OpenModelica compiler.
OMPython¶
The interface was changed to version 2.0, which uses one object for each OpenModelica instance you want active. It also features a new and improved parser that returns easier to use datatypes like maps and lists.
Optimization¶
A builtin integrated Dynamic Optimization module with collocation, using Ipopt, is now available.
FMI Support¶
Support for FMI 2.0 model exchange import and export has been added. FMI 1.0 support has been further improved.
Release Notes for OpenModelica 1.9.0¶
This is the summary description of changes to OpenModelica from 1.8.1 to 1.9.0, released 2013-10-09. This release mainly includes improvements of the OpenModelica Compiler (OMC), including, but not restricted to the following:
OpenModelica Compiler (OMC)¶
This release mainly includes bug fixes and improvements of the OpenModelica Compiler (OMC), including, but not restricted to the following:
A more stable and complete OMC model compiler. The 1.9.0 final version simulates many more models than the previous 1.8.1 version and OpenModelica 1.9.0 beta versions.
Much better simulation support for MSL 3.2.1, now 270 out of 274 example models compile (98%) and 245 (89%) simulate, compared to 30% simulating in the 1.9.0 beta1 release.
Much better simulation for the ModelicaTest 3.2.1 library, now 401 out of 428 models build (93%) and 364 simulate (85%), compared to 32% in November 2012.
Better simulation support for several other libraries, e.g. more than twenty examples simulate from ThermoSysPro, and all but one model from PlanarMechanics simulate.
Improved tearing algorithm for the compiler backend. Tearing is by default used.
Much faster matching and dynamic state selection algorithms for the compiler backend.
New index reduction algorithm implementation.
New default initialization method that symbolically solves the initialization problem much faster and more accurately. This is the first version that in general initialize hybrid models correctly.
Better class loading from files. The package.order file is now respected and the file structure is more thoroughly examined (#1764).
It is now possible to translate the error messages in the omc kernel (#1767).
FMI Support. FMI co-simulation with OpenModelica as master. Improved
FMI Import and export for model exchange. Most of FMI 2.0 is now also supported.
Checking (when possible) that variables have been assigned to before they are used in algorithmic code (#1776).
Full version of Python scripting.
3D graphics visualization using the Modelica3D library.
The PySimulator package from DLR for additional analysis is integrated with OpenModelica (see Modelica2012 paper), and included in the OpenModelica distribution (Windows only).
Prototype support for uncertainty computations, special feature enabled by special flag.
Parallel algorithmic Modelica support (ParModelica) for efficient portable parallel algorithmic programming based on the OpenCL standard, for CPUs and GPUs.
Support for optimization of semiLinear according to MSL 3.3 chapter 3.7.2.5 semiLinear (r12657,r12658).
The compiler is now fully bootstrapped and can compile itself using a modest amount of heap and stack space (less than the RML-based compiler, which is still the default).
Some old debug-flags were removed. Others were renamed. Debug flags can now be enabled by default.
Removed old unused simulation flags noClean and storeInTemp (r15927).
Many stack overflow issues were resolved.
Dynamic Optimization with OpenModelica. Dynamic optimization with XML export to the CasADi package is now integrated with OpenModelica. Moreover, a native integrated Dynamic Optimization prototype using Ipopt is now in the OpenModelica release, but currently needs a special flag to be turned on since it needs more testing and refinement before being generally made available.
OpenModelica Notebook (OMNotebook)¶
A `shortOutput` option has been introduced in the simulate command
for less verbose output. The DrModelica interactive document has been updated and the models tested. Almost all models now simulate with OpenModelica.
OpenModelica Eclipse Plug-in (MDT)¶
Enhanced debugger for algorithmic Modelica code, supporting both
standard Modelica algorithmic code called from simulation models, and MetaModelica code.
OpenModelica Development Environment (OMDev)¶
Migration of version handling and configuration management from
CodeBeamer to Trac.
Graphic Editor OMEdit¶
General GUI: backward and forward navigation support in Documentation view, enhanced parameters window with support for Dialog annotation. Most of the images are converted from raster to vector graphics i.e PNG to SVG.
Libraries Browser: better loading of libraries, library tree can now show protected classes, show library items class names as middle ellipses if the class name text is larger, more options via the right click menu for quick usage.
ModelWidget: add the partial class as a replaceable component, look for the default component prefixes and name when adding the component.
GraphicsView: coordinate system manipulation for icon and diagram layers. Show red box for models that do not exist. Show default graphical annotation for the components that doesn't have any graphical annotations. Better resizing of the components. Properties dialog for primitive shapes i.e Line, Polygon, Rectangle, Ellipse, Text and Bitmap.
File Opening: open one or more Modelica files, allow users to select the encoding while opening the file, convert files to UTF-8 encoding, allow users to open the OpenModelica result files.
Variables Browser: find variables in the variables browser, sorting in the variables browser.
Plot Window: clear all curves of the plot window, preserve the old selected variable and update its value with the new simulation result.
Simulation: support for all the simulation flags, read the simulation output as soon as is is obtained, output window for simulations, options to set matching algorithm and index reduction method for simulation. Display all the files generated during the simulation is now supported. Options to set OMC command line flags.
Options: options for loading libraries via loadModel and loadFile each time GUI starts, save the last open file directory location, options for setting line wrap mode and syntax highlighting.
Modelica Text Editor: preserving user customizations, new search & replace functionality, support for comment/uncomment.
Notifications: show custom dialogs to users allowing them to choose whether they want to see this dialog again or not.
Model Creation: Better support for creating new classes. Easy creation of extends classes or nested classes.
Messages Widget: Multi line error messages are now supported.
Crash Detection: The GUI now automatically detects the crash and writes a stack trace file. The user is given an option to send a crash report along with the stack trace file and few other useful files via email.
Autosave: OMEdit saves the currently edited model regularly, in order to avoid losing edits after GUI or compiler crash. The save interval can be set in the Options menu.
ModelicaML¶
Enhanced ModelicaML version with support for value bindings in
requirements-driven modeling available for the latest Eclipse and Papyrus versions. GUI specific adaptations. Automated model composition workflows (used for model-based design verification against requirements) are modularized and have improved in terms of performance.
Release Notes for OpenModelica 1.8.1¶
The OpenModelica 1.8.1 release has a faster and more stable OMC model compiler. It flattens and simulates more models than the previous 1.8.0 version. Significant flattening speedup of the compiler has been achieved for certain large models. It also contains a New ModelicaML version with support for value bindings in requirements-driven modeling and importing Modelica library models into ModelicaML models. A beta version of the new OpenModelica Python scripting is also included. The release was made on 2012-04-03 (r11645).
OpenModelica Compiler (OMC)¶
This release includes bug fixes and improvements of the flattening frontend part of the OpenModelica Compiler (OMC) and several improvements of the backend, including, but not restricted to:
A faster and more stable OMC model compiler. The 1.8.1 version flattens and simulates more models than the previous 1.8.0 version.
Support for operator overloading (except Complex numbers).
New ModelicaML version with support for value bindings in requirements-driven modeling and importing Modelica library models into ModelicaML models.
Faster plotting in OMNotebook. The feature sendData has been removed from OpenModelica. As a result, the kernel no longer depends on Qt. The plot3() family of functions have now replaced to plot(), which in turn have been removed. The non-standard visualize() command has been removed in favour of more recent alternatives.
Store OpenModelica documentation as Modelica Documentation annotations.
Re-implementation of the simulation runtime using C instead of C++ (this was needed to export FMI source-based packages).
FMI import/export bug fixes.
Changed the internal representation of various structures to share more memory. This significantly improved the performance for very large models that use records.
Faster model flattening, Improved simulation, some graphical API bug fixes.
More robust and general initialization, but currently time-consuming.
New initialization flags to omc and options to simulate(), to control whether fast or robust initialization is selected, or initialization from an external (.mat) data file.
New options to API calls list, loadFile, and more.
Enforce the restriction that input arguments of functions may not be assigned to.
Improved the scripting environment. cl := $TypeName(Modelica);getClassComment(cl); now works as expected. As does looping over lists of typenames and using reduction expressions.
Beta version of Python scripting.
Various bugfixes.
NOTE: interactive simulation is not operational in this release. It will be put back again in the near future, first available as a nightly build. It is also available in the previous 1.8.0 release.
OpenModelica Notebook (OMNotebook)¶
Faster and more stable plottning.
OpenModelica Shell (OMShell)¶
No changes.
OpenModelica Eclipse Plug-in (MDT)¶
Small fixes and improvements.
OpenModelica Development Environment (OMDev)¶
No changes.
Graphic Editor OMEdit¶
Bug fixes.
OMOptim Optimization Subsystem¶
Bug fixes.
FMI Support¶
Bug fixes.
OpenModelica 1.8.0, November 2011¶
The OpenModelica 1.8.0 release contains OMC flattening improvements for the Media library - it now flattens the whole library and simulates about 20% of its example models. Moreover, about half of the Fluid library models also flatten. This release also includes two new tool functionalities - the FMI for model exchange import and export, and a new efficient Eclipse-based debugger for Modelica/MetaModelica algorithmic code.
OpenModelica Compiler (OMC)¶
This release includes bug fixes and improvements of the flattening frontend part of the OpenModelica Compiler (OMC) and several improvements of the backend, including, but not restricted to: A faster and more stable OMC model compiler. The 1.8.0 version flattens and simulates more models than the previous 1.7.0 version.
Flattening of the whole Media library, and about half of the Fluid
library. Simulation of approximately 20% of the Media library example models. - Functional Mockup Interface FMI 1.0 for model exchange, export and import, for the Windows platform. - Bug fixes in the OpenModelica graphical model connection editor OMEdit, supporting easy-to-use graphical drag-and-drop modeling and MSL 3.1. - Bug fixes in the OMOptim optimization subsystem. - Beta version of compiler support for a new Eclipse-based very efficient algorithmic code debugger for functions in MetaModelica/Modelica, available in the development environment when using the bootstrapped OpenModelica compiler. - Improvements in initialization of simulations. - Improved index reduction with dynamic state selection, which improves simulation. - Better error messages from several parts of the compiler, including a new API call for giving better error messages. - Automatic partitioning of equation systems and multi-core parallel simulation of independent parts based on the shared-memory OpenMP model. This version is a preliminary experimental version without load balancing.
OpenModelica Notebook (OMNotebook)¶
No changes.
OpenModelica Shell (OMShell)¶
Small performance improvements.
OpenModelica Eclipse Plug-in (MDT)¶
Small fixes and improvements. MDT now also includes a beta version of a new Eclipse-based very efficient algorithmic code debugger for functions in MetaModelica/Modelica.
OpenModelica Development Environment (OMDev)¶
Third party binaries, including Qt libraries and executable Qt clients, are now part of the OMDev package. Also, now uses GCC 4.4.0 instead of the earlier GCC 3.4.5.
Graphic Editor OMEdit¶
Bug fixes. Access to FMI Import/Export through a pull-down menu. Improved configuration of library loading. A function to go to a specific line number. A button to cancel an on-going simulation. Support for some updated OMC API calls.
New OMOptim Optimization Subsystem¶
Bug fixes, especially in the Linux version.
FMI Support¶
The Functional Mockup Interface FMI 1.0 for model exchange import and export is supported by this release. The functionality is accessible via API calls as well as via pull-down menu commands in OMEdit.
OpenModelica 1.7.0, April 2011¶
The OpenModelica 1.7.0 release contains OMC flattening improvements for the Media library, better and faster event handling and simulation, and fast MetaModelica support in the compiler, enabling it to compiler itself. This release also includes two interesting new tools – the OMOptim optimization subsystem, and a new performance profiler for equation-based Modelica models.
OpenModelica Compiler (OMC)¶
This release includes bug fixes and performance improvements of the flattening frontend part of the OpenModelica Compiler (OMC) and several improvements of the backend, including, but not restricted to:
Flattening of the whole Modelica Standard Library 3.1 (MSL 3.1),
except Media and Fluid. - Progress in supporting the Media library, some models now flatten. - Much faster simulation of many models through more efficient handling of alias variables, binary output format, and faster event handling. - Faster and more stable simulation through new improved event handling, which is now default. - Simulation result storage in binary .mat files, and plotting from such files. - Support for Unicode characters in quoted Modelica identifiers, including Japanese and Chinese. - Preliminary MetaModelica 2.0 support. (use setCommandLineOptions({"+g=MetaModelica"}) ). Execution is as fast as MetaModelica 1.0, except for garbage collection. - Preliminary bootstrapped OpenModelica compiler: OMC now compiles itself, and the bootstrapped compiler passes the test suite. A garbage collector is still missing. - Many bug fixes.
OpenModelica Notebook (OMNotebook)¶
Improved much faster and more stable 2D plotting through the new OMPlot module. Plotting from binary .mat files. Better integration between OMEdit and OMNotebook, copy/paste between them.
OpenModelica Shell (OMShell)¶
Same as previously, except the improved 2D plotting through OMPlot.
Graphic Editor OMEdit¶
Several enhancements of OMEdit are included in this release. Support for Icon editing is now available. There is also an improved much faster 2D plotting through the new OMPlot module. Better integration between OMEdit and OMNotebook, with copy/paste between them. Interactive on-line simulation is available in an easy-to-use way.
New OMOptim Optimization Subsystem¶
A new optimization subsystem called OMOptim has been added to OpenModelica. Currently, parameter optimization using genetic algorithms is supported in this version 0.9. Pareto front optimization is also supported.
New Performance Profiler¶
A new, low overhead, performance profiler for Modelica models has been developed.
OpenModelica 1.6.0, November 2010¶
The OpenModelica 1.6.0 release primarily contains flattening, simulation, and performance improvements regarding Modelica Standard Library 3.1 support, but also has an interesting new tool – the OMEdit graphic connection editor, and a new educational material called DrControl, and an improved ModelicaML UML/Modelica profile with better support for modeling and requirement handling.
OpenModelica Compiler (OMC)¶
This release includes bug fix and performance improvemetns of the flattening frontend part of the OpenModelica Compiler (OMC) and some improvements of the backend, including, but not restricted to:
Flattening of the whole Modelica Standard Library 3.1 (MSL 3.1),
except Media and Fluid. - Improved flattening speed of a factor of 5-20 compared to OpenModelica 1.5 for a number of models, especially in the MultiBody library. - Reduced memory consumption by the OpenModelica compiler frontend, for certain large models a reduction of a factor 50. - Reorganized, more modular OpenModelica compiler backend, can now handle approximately 30 000 equations, compared to previously approximately 10 000 equations. - Better error messages from the compiler, especially regarding functions. - Improved simulation coverage of MSL 3.1. Many models that did not simulate before are now simulating. However, there are still many models in certain sublibraries that do not simulate. - Progress in supporting the Media library, but simulation is not yet possible. - Improved support for enumerations, both in the frontend and the backend. - Implementation of stream connectors. - Support for linearization through symbolic Jacobians. - Many bug fixes.
OpenModelica Notebook (OMNotebook)¶
A new DrControl electronic notebook for teaching control and modeling with Modelica.
OpenModelica Development Environment (OMDev)¶
Several enhancements. Support for match-expressions in addition to matchcontinue. Support for real if-then-else. Support for if-then without else-branches. Modelica Development Tooling 0.7.7 with small improvements such as more settings, improved error detection in console, etc.
New Graphic Editor OMEdit¶
A new improved open source graphic model connection editor called OMEdit, supporting 3.1 graphical annotations, which makes it possible to move models back and forth to other tools without problems. The editor has been implemented by students at Linköping University and is based on the C++ Qt library.
OpenModelica 1.5.0, July 2010¶
This OpenModelica 1.5 release has major improvements in the OpenModelica compiler frontend and some in the backend. A major improvement of this release is full flattening support for the MultiBody library as well as limited simulation support for MultiBody. Interesting new facilities are the interactive simulation and the integrated UML-Modelica modeling with ModelicaML. Approximately 4 person-years of additional effort have been invested in the compiler compared to the 1.4.5 version, e.g., in order to have a more complete coverage of Modelica 3.0, mainly focusing on improved flattening in the compiler frontend.
OpenModelica Compiler (OMC)¶
This release includes major improvements of the flattening frontend part of the OpenModelica Compiler (OMC) and some improvements of the backend, including, but not restricted to:
Improved flattening speed of at least a factor of 10 or more compared
to the 1.4.5 release, primarily for larger models with inner-outer, but also speedup for other models, e.g. the robot model flattens in approximately 2 seconds. - Flattening of all MultiBody models, including all elementary models, breaking connection graphs, world object, etc. Moreover, simulation is now possible for at least five MultiBody models: Pendulum, DoublePendulum, InitSpringConstant, World, PointGravityWithPointMasses. - Progress in supporting the Media library, but simulation is not yet possible. - Support for enumerations, both in the frontend and the backend. - Support for expandable connectors. - Support for the inline and late inline annotations in functions. - Complete support for record constructors, also for records containing other records. - Full support for iterators, including nested ones. - Support for inferred iterator and for-loop ranges. - Support for the function derivative annotation. - Prototype of interactive simulation. - Prototype of integrated UML-Modelica modeling and simulation with ModelicaML. - A new bidirectional external Java interface for calling external Java functions, or for calling Modelica functions from Java. - Complete implementation of replaceable model extends. - Fixed problems involving arrays of unknown dimensions. - Limited support for tearing. - Improved error handling at division by zero. - Support for Modelica 3.1 annotations. - Support for all MetaModelica language constructs inside OpenModelica. - OpenModelica works also under 64-bit Linux and Mac 64-bit OSX. - Parallel builds and running test suites in parallel on multi-core platforms. - New OpenModelica text template language for easier implementation of code generators, XML generators, etc. - New OpenModelica code generators to C and C# using the text template language. - Faster simulation result data file output optionally as comma-separated values. - Many bug fixes.
It is now possible to graphically edit models using parts from the Modelica Standard Library 3.1, since the simForge graphical editor (from Politecnico di Milano) that is used together with OpenModelica has been updated to version 0.9.0 with a important new functionality, including support for Modelica 3.1 and 3.0 annotations. The 1.6 and 2.2.1 Modelica graphical annotation versions are still supported.
OpenModelica Notebook (OMNotebook)¶
Improvements in platform availability.
Support for 64-bit Linux. - Support for Windows 7. - Better support
for MacOS, including 64-bit OSX.
OpenModelica 1.4.5, January 2009¶
This release has several improvements, especially platform availability, less compiler memory usage, and supporting more aspects of Modelica 3.0.
OpenModelica Compiler (OMC)¶
This release includes small improvements and some bugfixes of the OpenModelica Compiler (OMC):
Less memory consumption and better memory management over time. This
also includes a better API supporting automatic memory management when calling C functions from within the compiler. - Modelica 3.0 parsing support. - Export of DAE to XML and MATLAB. - Support for several platforms Linux, MacOS, Windows (2000, Xp, Vista). - Support for record and strings as function arguments. - Many bug fixes. - (Not part of OMC): Additional free graphic editor SimForge can be used with OpenModelica.
OpenModelica Notebook (OMNotebook)¶
A number of improvements, primarily in the plotting functionality and platform availability.
A number of improvements in the plotting functionality: scalable
plots, zooming, logarithmic plots, grids, etc. - Programmable plotting accessible through a Modelica API. - Simple 3D visualization. - Support for several platforms Linux, MacOS, Windows (2000, Xp, Vista).
OpenModelica 1.4.4, Feb 2008¶
This release is primarily a bug fix release, except for a preliminary version of new plotting functionality available both from the OMNotebook and separately through a Modelica API. This is also the first release under the open source license OSMC-PL (Open Source Modelica Consortium Public License), with support from the recently created Open Source Modelica Consortium. An integrated version handler, bug-, and issue tracker has also been added.
OpenModelica Compiler (OMC)¶
This release includes small improvements and some bugfixes of the OpenModelica Compiler (OMC):
Better support for if-equations, also inside when. - Better support
for calling functions in parameter expressions and interactively through dynamic loading of functions. - Less memory consumtion during compilation and interactive evaluation. - A number of bug-fixes.
OpenModelica Notebook (OMNotebook)¶
Test release of improvements, primarily in the plotting functionality and platform availability.
Preliminary version of improvements in the plotting functionality:
scalable plots, zooming, logarithmic plots, grids, etc., currently available in a preliminary version through the plot2 function. - Programmable plotting accessible through a Modelica API.
OpenModelica Eclipse Plug-in (MDT)¶
This release includes minor bugfixes of MDT and the associated MetaModelica debugger.
OpenModelica Development Environment (OMDev)¶
Extended test suite with a better structure. Version handling, bug tracking, issue tracking, etc. now available under the integrated Codebeamer.
OpenModelica 1.4.3, June 2007¶
This release has a number of significant improvements of the OMC compiler, OMNotebook, the MDT plugin and the OMDev. Increased platform availability now also for Linux and Macintosh, in addition to Windows. OMShell is the same as previously, but now ported to Linux and Mac.
OpenModelica Compiler (OMC)¶
This release includes a number of improvements of the OpenModelica Compiler (OMC):
Significantly increased compilation speed, especially with large
models and many packages. - Now available also for Linux and Macintosh platforms. - Support for when-equations in algorithm sections, including elsewhen. - Support for inner/outer prefixes of components (but without type error checking). - Improved solution of nonlinear systems. - Added ability to compile generated simulation code using Visual Studio compiler. - Added "smart setting of fixed attribute to false. If initial equations, OMC instead has fixed=true as default for states due to allowing overdetermined initial equation systems. - Better state select heuristics. - New function getIncidenceMatrix(ClassName) for dumping the incidence matrix. - Builtin functions String(), product(), ndims(), implemented. - Support for terminate() and assert() in equations. - In emitted flat form: protected variables are now prefixed with protected when printing flat class. - Some support for tables, using omcTableTimeIni instead of dymTableTimeIni2. - Better support for empty arrays, and support for matrix operations like a*[1,2;3,4]. - Improved val() function can now evaluate array elements and record fields, e.g. val(x[n]), val(x.y) . - Support for reinit in algorithm sections. - String support in external functions. - Double precision floating point precision now also for interpreted expressions - Better simulation error messages. - Support for der(expressions). - Support for iterator expressions such as {3*i for i in 1..10}. - More test cases in the test suite. - A number of bug fixes, including sample and event handling bugs.
OpenModelica Notebook (OMNotebook)¶
A number of improvements, primarily in the platform availability.
Available on the Linux and Macintosh platforms, in addition to
Windows. - Fixed cell copying bugs, plotting of derivatives now works, etc.
OpenModelica Shell (OMShell)¶
Now available also on the Macintosh platform.
OpenModelica Eclipse Plug-in (MDT)¶
This release includes major improvements of MDT and the associated MetaModelica debugger:
Greatly improved browsing and code completion works both for standard
Modelica and for MetaModelica. - Hovering over identifiers displays type information. - A new and greatly improved implementation of the debugger for MetaModelica algorithmic code, operational in Eclipse. Greatly improved performance - only approx 10% speed reduction even for 100 000 line programs. Greatly improved single stepping, step over, data structure browsing, etc. - Many bug fixes.
OpenModelica Development Environment (OMDev)¶
Increased compilation speed for MetaModelica. Better if-expression support in MetaModelica.
OpenModelica 1.4.2, October 2006¶
This release has improvements and bug fixes of the OMC compiler, OMNotebook, the MDT plugin and the OMDev. OMShell is the same as previously.
OpenModelica Compiler (OMC)¶
This release includes further improvements of the OpenModelica Compiler (OMC):
Improved initialization and index reduction. - Support for integer
arrays is now largely implemented. - The val(variable,time) scripting function for accessing the value of a simulation result variable at a certain point in the simulated time. - Interactive evalution of for-loops, while-loops, if-statements, if-expressions, in the interactive scripting mode. - Improved documentation and examples of calling the Model Query and Manipulation API. - Many bug fixes.
OpenModelica Notebook (OMNotebook)¶
Search and replace functions have been added. The DrModelica tutorial (all files) has been updated, obsolete sections removed, and models which are not supported by the current implementation marked clearly. Automatic recognition of the .onb suffix (e.g. when double-clicking) in Windows makes it even more convenient to use.
OpenModelica Eclipse Plug-in (MDT)¶
Two major improvements are added in this release:
Browsing and code completion works both for standard Modelica and for
MetaModelica. - The debugger for algorithmic code is now available and operational in Eclipse for debugging of MetaModelica programs.
OpenModelica 1.4.1, June 2006¶
This release has only improvements and bug fixes of the OMC compiler, the MDT plugin and the OMDev components. The OMShell and OMNotebook are the same.
OpenModelica Compiler (OMC)¶
This release includes further improvements of the OpenModelica Compiler (OMC):
Support for external objects. - OMC now reports the version number
(via command line switches or CORBA API getVersion()). - Implemented caching for faster instantiation of large models. - Many bug fixes.
OpenModelica Eclipse Plug-in (MDT)¶
Improvements of the error reporting when building the OMC compiler. The errors are now added to the problems view. The latest MDT release is version 0.6.6 (2006-06-06).
OpenModelica Development Environment (OMDev)¶
Small fixes in the MetaModelica compiler. MetaModelica Users Guide is now part of the OMDev release. The latest OMDev was release in 2006-06-06.
OpenModelica 1.4.0, May 2006¶
This release has a number of improvements described below. The most significant change is probably that OMC has now been translated to an extended subset of Modelica (MetaModelica), and that all development of the compiler is now done in this version..
OpenModelica Compiler (OMC)¶
This release includes further improvements of the OpenModelica Compiler (OMC):
Partial support for mixed system of equations. - New initialization
routine, based on optimization (minimizing residuals of initial equations). - Symbolic simplification of builtin operators for vectors and matrices. - Improved code generation in simulation code to support e.g. Modelica functions. - Support for classes extending basic types, e.g. connectors (support for MSL 2.2 block connectors). - Support for parametric plotting via the plotParametric command. - Many bug fixes.
OpenModelica Shell (OMShell)¶
Essentially the same OMShell as in 1.3.1. One difference is that now all error messages are sent to the command window instead of to a separate log window.
OpenModelica Notebook (OMNotebook)¶
Many significant improvements and bug fixes. This version supports graphic plots within the cells in the notebook. Improved cell handling and Modelica code syntax highlighting. Command completion of the most common OMC commands is now supported. The notebook has been used in several courses.
OpenModelica Eclipse Plug-in (MDT)¶
This is the first really useful version of MDT. Full browsing of Modelica code, e.g. the MSL 2.2, is now supported. (MetaModelica browsing is not yet fully supported). Full support for automatic indentation of Modelica code, including the MetaModelica extensions. Many bug fixes. The Eclipse plug-in is now in use for OpenModelica development at PELAB and MathCore Engineering AB since approximately one month.
OpenModelica Development Environment (OMDev)¶
The following mechanisms have been put in place to support OpenModelica development.
A separate web page for OMDev (OpenModelica Development Environment).
A pre-packaged OMDev zip-file with precompiled binaries for
development under Windows using the mingw Gnu compiler from the Eclipse MDT plug-in. (Development is also possible using Visual Studio). - All source code of the OpenModelica compiler has recently been translated to an extended subset of Modelica, currently called MetaModelica. The current size of OMC is approximately 100 000 lines All development is now done in this version. - A new tutorial and users guide for development in MetaModelica. - Successful builds and tests of OMC under Linux and Solaris.
OpenModelica 1.3.1, November 2005¶
This release has several important highlights.
This is also the *first* release for which the New BSD (Berkeley) open-source license applies to the source code, including the whole compiler and run-time system. This makes is possible to use OpenModelica for both academic and commercial purposes without restrictions.
OpenModelica Compiler (OMC)¶
This release includes a significantly improved OpenModelica Compiler (OMC):
Support for hybrid and discrete-event simulation (if-equations,
if-expressions, when-equations; not yet if-statements and when-statements). - Parsing of full Modelica 2.2 - Improved support for external functions. - Vectorization of function arguments; each-modifiers, better implementation of replaceable, better handling of structural parameters, better support for vector and array operations, and many other improvements. - Flattening of the Modelica Block library version 1.5 (except a few models), and simulation of most of these. - Automatic index reduction (present also in previous release). - Updated User's Guide including examples of hybrid simulation and external functions.
OpenModelica Shell (OMShell)¶
An improved window-based interactive command shell, now including command completion and better editing and font size support.
OpenModelica Notebook (OMNotebook)¶
A free implementation of an OpenModelica notebook (OMNotebook), for electronic books with course material, including the DrModelica interactive course material. It is possible to simulate and plot from this notebook.
OpenModelica Eclipse Plug-in (MDT)¶
An early alpha version of the first Eclipse plug-in (called MDT for Modelica Development Tooling) for Modelica Development. This version gives compilation support and partial support for browsing Modelica package hierarchies and classes.
OpenModelica Development Environment (OMDev)¶
The following mechanisms have been put in place to support OpenModelica development.
Bugzilla support for OpenModelica bug tracking, accessible to anybody.
A system for automatic regression testing of the compiler and
simulator, (+ other system parts) usually run at check in time. - Version handling is done using SVN, which is better than the previously used CVS system. For example, name change of modules is now possible within the version handling system.