HOME

TheInfoList



OR:

OpenModelica is a free and
open source Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
environment based on the
Modelica Modelica is an object-oriented, declarative, multi-domain modeling language for component-oriented modeling of complex systems, e.g., systems containing mechanical, electrical, electronic, hydraulic, thermal, control, electric power or process-o ...
modeling language for modeling, simulating, optimizing and analyzing complex dynamic systems. This software is actively developed by Open Source Modelica Consortium, a non-profit, non-governmental organization. The Open Source Modelica Consortium is run as a project o
RISE SICS East AB
in collaboration with
Linköping University Linköping University (, LiU) is a public research university based in Linköping, Sweden. Originally established in 1969, it was granted full university status in 1975 and is one of Sweden's largest academic institutions. The university has fou ...
. 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, automotive and water treatment.


Tools and Applications


OpenModelica Compiler (OMC)

OpenModelica Compiler
(OMC) is a
Modelica Modelica is an object-oriented, declarative, multi-domain modeling language for component-oriented modeling of complex systems, e.g., systems containing mechanical, electrical, electronic, hydraulic, thermal, control, electric power or process-o ...
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, a unified equation-based semantical and mathematical modeling language and is bootstrapped.


OpenModelica Connection Editor (OMEdit)

OpenModelica Connection Editor is an open source
graphical user interface The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, inste ...
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)

OpenModelica Shell (OMShell) is an interactive
command-line interface A command-line interpreter or command-line processor uses a command-line interface (CLI) to receive commands from a user in the form of lines of text. This provides a means of setting parameters for the environment, invoking executables and pro ...
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)

OpenModelica Notebook (OMNotebook), is a light-weight
Mathematica Wolfram Mathematica is a software system with built-in libraries for several areas of technical computing that allow machine learning, statistics, symbolic computation, data manipulation, network analysis, time series analysis, NLP, optimizat ...
-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)

OMPython is a Python interface enabling users to access the modeling and simulation capabilities of OpenModelica from Python. It uses
CORBA The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between sys ...
(omniORB) or
ZEROMQ ZeroMQ (also spelled ØMQ, 0MQ or ZMQ) is an asynchronous messaging library, aimed at use in distributed or concurrent applications. It provides a message queue, but unlike message-oriented middleware, a ZeroMQ system can run without a dedicated ...
to communicate with the OpenModelica scripting API.


OpenModelica Matlab Interface (OMMatlab)

OMMatlab is a Matlab interface that provides access the modeling and simulation capabilities of OpenModelica from matlab. It uses
ZEROMQ ZeroMQ (also spelled ØMQ, 0MQ or ZMQ) is an asynchronous messaging library, aimed at use in distributed or concurrent applications. It provides a message queue, but unlike message-oriented middleware, a ZeroMQ system can run without a dedicated ...
to communicate with the OpenModelica compiler API.


Modelica Development Tooling (MDT)

MDT is an
Eclipse An eclipse is an astronomical event that occurs when an astronomical object or spacecraft is temporarily obscured, by passing into the shadow of another body or by having another body pass between it and the viewer. This alignment of three ce ...
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 The Common Object Request Broker Architecture (CORBA) is a standard defined by the Object Management Group (OMG) designed to facilitate the communication of systems that are deployed on diverse platforms. CORBA enables collaboration between sys ...
based
API An application programming interface (API) is a way for two or more computer programs to communicate with each other. It is a type of software interface, offering a service to other pieces of software. A document or standard that describes how ...
and is used primarily in the development of the OpenModelica compiler.


See also

*
Modelica Modelica is an object-oriented, declarative, multi-domain modeling language for component-oriented modeling of complex systems, e.g., systems containing mechanical, electrical, electronic, hydraulic, thermal, control, electric power or process-o ...
*
Dymola Dymola is a commercial modeling and simulation environment based on the open Modelica modeling language. Large and complex systems are composed of component models; mathematical equations describe the dynamic behavior of the system. Developed by ...
*
JModelica.org JModelica.org is a commercial software platform based on the Modelica modeling language for modeling, simulating, optimizing and analyzing complex dynamic systems. The platform is maintained and developed by Modelon AB in collaboration with academi ...
*
Wolfram SystemModeler Wolfram System Modeler, developed by Wolfram MathCore, is a platform for engineering as well as life-science modeling and simulation based on the Modelica language. It provides an interactive graphical modeling and simulation environment and a cu ...
*
SimulationX SimulationX is a CAE software application running on Microsoft Windows for the physical simulation of technical systems. It is developed and sold by ESI Group. History In the mid 1980s, VEB Mikromat in Dresden (Germany) developed a progra ...
*
Simulink Simulink is a MATLAB-based graphical programming environment for modeling, simulating and analyzing multidomain dynamical systems. Its primary interface is a graphical block diagramming tool and a customizable set of block libraries. It offers t ...


References

{{Reflist, 2 Simulation software Simulation programming languages Mathematical optimization software Free simulation software Declarative programming languages Object-oriented programming