OpenModelica

Summary

OpenModelica[1][2] is a free and open source environment based on the Modelica modeling language for modeling, simulating, optimizing and analyzing complex dynamic systems. This software is actively developed by Open Source Modelica Consortium,[3] a non-profit, non-governmental organization. The Open Source Modelica Consortium is run as a project of RISE SICS East AB in collaboration with Linköping University.

OpenModelica
Developer(s)Open Source Modelica Consortium (OSMC)
Stable release
1.22.2 / 21 February 2024; 48 days ago (2024-02-21)
Repositorygithub.com/OpenModelica/OpenModelica
Written inC, C++, MetaModelica
Operating systemLinux, Windows and OS X
TypeDynamic simulation and optimization
LicenseOSMC Public License, EPL, GPL (free software)
Websitewww.openmodelica.org

OpenModelica is used in academic and industrial environments. Industrial applications include the use of OpenModelica along with proprietary software in the fields of power plant optimization,[4] automotive[5] and water treatment.[6]

Tools and Applications edit

OpenModelica Compiler (OMC) edit

OpenModelica Compiler (OMC) is a Modelica compiler, translating Modelica to C code, with a symbol table containing definitions of classes, functions, and variables. Such definitions can be predefined, user-defined, or obtained from libraries. The compiler also includes a Modelica interpreter for interactive usage and constant expression evaluation. The subsystem also includes facilities for building simulation executables linked with selected numerical ODE or DAE solvers. The OMC is written in MetaModelica,[7] a unified equation-based semantical and mathematical modeling language and is bootstrapped.

OpenModelica Connection Editor (OMEdit) edit

OpenModelica Connection Editor[8][9] is an open source graphical user interface for creating, editing and simulating Modelica models in textual and graphical modes. OMEdit communicates with OMC through an interactive API, requests model information and creates models/connection diagrams based on the Modelica annotations. The implementation is based on C++ and the Qt library.

OpenModelica Shell (OMShell) edit

OpenModelica Shell (OMShell) is an interactive command-line interface that parses and interprets commands and Modelica expressions for evaluation, simulation, plotting, etc. The session handler also contains simple history facilities, and completion of file names and certain identifiers in commands.

OpenModelica Notebook (OMNotebook) edit

OpenModelica Notebook (OMNotebook), is a light-weight Mathematica-style editor for Modelica that implements interactive WYSIWYG realization of Literate Programming, a form of programming where programs are integrated with documentation in the same document.

OMNotebook is primarily used for teaching and allows to mix hierarchically structured text with cells containing Modelica models and expressions. These can be evaluated, simulated and plotted with the results displayed directly in the OMNotebook.

OpenModelica Python Interface (OMPython) edit

OMPython is a Python interface enabling users to access the modeling and simulation capabilities of OpenModelica from Python. It uses CORBA (omniORB) or ZEROMQ to communicate with the OpenModelica scripting API.

OpenModelica Matlab Interface (OMMatlab) edit

OMMatlab is a Matlab interface that provides access the modeling and simulation capabilities of OpenModelica from matlab. It uses ZEROMQ to communicate with the OpenModelica compiler API.

Modelica Development Tooling (MDT) edit

MDT is an Eclipse plugin that integrates the OpenModelica compiler with Eclipse. It provides an editor for advanced text based model editing with code assistance. MDT interacts with the OpenModelica Compiler through an existing CORBA based API and is used primarily in the development of the OpenModelica compiler.

See also edit

References edit

  1. ^ Administrator. "Welcome to OpenModelica - OpenModelica". openmodelica.org. Retrieved 2017-05-24.
  2. ^ "OpenModelica/OpenModelica". GitHub. Retrieved 2017-05-24.
  3. ^ "OSMC Home page"
  4. ^ "ABB Power Plant optimization"
  5. ^ "Wolfram modeler"
  6. ^ " Mike operations"
  7. ^ Pop, Adrian; Fritzson, Peter (2006-09-13). "MetaModelica: A Unified Equation-Based Semantical and Mathematical Modeling Language". Modular Programming Languages. Lecture Notes in Computer Science. Vol. 4228. pp. 211–229. doi:10.1007/11860990_14. ISBN 978-3-540-40927-4.
  8. ^ Adeel, Asghar, Syed; Sonia, Tariq (2010), Design and Implementation of a User Friendly OpenModelica Graphical Connection Editor{{citation}}: CS1 maint: multiple names: authors list (link)
  9. ^ Administrator. "OpenModelica Connection Editor (OMEdit) - OpenModelica". openmodelica.org. Retrieved 2017-05-24.