Jump to content

OpenModelica: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m →‎OpenModelica Connection Editor (OMEdit): bad link repair, replaced: CC using AWB
LenaBR (talk | contribs)
Added more references and more recent material, expanded the descriptions.
Line 1: Line 1:
{{Infobox software
{{Infobox software
| name = OpenModelica
| title =
| title =
| name = OpenModelica
| logo = <!-- [[File: ]] -->
| logo = <!-- [[File: ]] -->
| logo caption =
| logo caption =
Line 11: Line 11:
| released = <!-- {{Start date|YYYY|MM|DD|df=yes/no}} -->
| released = <!-- {{Start date|YYYY|MM|DD|df=yes/no}} -->
| discontinued =
| discontinued =
| latest release version = 1.9.6
| latest release version = 1.11.0
| latest release date = {{Start date and age|2016|03|16|df=yes/no}}
| latest release date = {{Start date and age|2017|02|06|df=yes/no}}
| frequently updated = <!-- DO NOT include this parameter unless you know what it does -->
| status =
| programming language = [[C (programming language)|C]], [[C++]]
| programming language = [[C (programming language)|C]], [[C++]], [[MetaModelica]]
| operating system = [[Linux]], [[Microsoft Windows|Windows]] and [[OS X]]
| operating system = [[Linux]], [[Microsoft Windows|Windows]] and [[OS X]]
| platform =
| platform =
| size =
| size =
| language =
| language =
| status =
| genre = Dynamic simulation and optimization
| genre = Dynamic simulation and optimization
| license = OSMC Public License, [[Eclipse Public License|EPL]], [[GNU General Public License|GPL]] ([[free software]])
| license = OSMC Public License, [[Eclipse Public License|EPL]], [[GNU General Public License|GPL]] ([[free software]])
| alexa =
| alexa =
| website = {{URL|www.openmodelica.org}}
| website = {{URL|www.openmodelica.org}}
| frequently updated = <!-- DO NOT include this parameter unless you know what it does -->
}}
}}


'''OpenModelica''' is a [[Free software|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,<ref>[https://openmodelica.org/home/consortium "OSMC Home page"]</ref> a non-profit, non-governmental organization. Open Source Modelica Consortium is run as a project of [[Swedish Institute of Computer Science|SICS EAST Swedish ICT]]<ref>[https://www.sics.se/groups/sics-east-swedish-ict "SICS EAST Swedish ICT Homepage"]</ref> which is partially owned by [[Linköping University]].
'''OpenModelica'''<ref>{{Cite web|url=https://openmodelica.org|title=Welcome to OpenModelica - OpenModelica|last=Administrator|website=openmodelica.org|language=en-gb|access-date=2017-05-24}}</ref><ref>{{Cite web|url=https://github.com/OpenModelica/OpenModelica|title=OpenModelica/OpenModelica|website=GitHub|language=en|access-date=2017-05-24}}</ref> is a [[Free software|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,<ref>[https://openmodelica.org/home/consortium "OSMC Home page"]</ref> a non-profit, non-governmental organization. The Open Source Modelica Consortium is run as a project of [[Swedish Institute of Computer Science|SICS EAST Swedish ICT]]<ref>[https://www.sics.se/groups/sics-east-swedish-ict "SICS EAST Swedish ICT Homepage"]</ref> in collaboration with [[Linköping University]].


Even though OpenModelica is not as widely used as other commercial Modelica implementations, some of the industrial products use OpenModelica along with proprietary software in the fields of power plant optimization,<ref>[http://new.abb.com/power-generation/power-plant-optimization "ABB Power Plant optimization"]</ref> automotive <ref>[http://www.wolfram.com/system-modeler/ "Wolfram modeler"]</ref> and water treatment.<ref>[http://www.mikepoweredbydhi.com/products/mike-operations " Mike operations"]</ref>
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,<ref>[http://new.abb.com/power-generation/power-plant-optimization "ABB Power Plant optimization"]</ref> automotive <ref>[http://www.wolfram.com/system-modeler/ "Wolfram modeler"]</ref> and water treatment.<ref>[http://www.mikepoweredbydhi.com/products/mike-operations " Mike operations"]</ref>


==Tools and Applications==
==Components==


===OpenModelica Compiler (OMC)===
===OpenModelica Compiler (OMC)===
[https://openmodelica.org/?id=51:open-modelica-compiler-omc&catid=10:main-category 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,<ref>{{Cite journal|last=Pop|first=Adrian|last2=Fritzson|first2=Peter|date=2006-09-13|title=MetaModelica: A Unified Equation-Based Semantical and Mathematical Modeling Language|url=https://link.springer.com/chapter/10.1007/11860990_14|journal=Modular Programming Languages|language=en|publisher=Springer, Berlin, Heidelberg|pages=211–229|doi=10.1007/11860990_14}}</ref> a unified equation-based semantical and mathematical modeling language and is [[bootstrapped]].
A compiler based on [[modelica]] is used for converting from modelica code to [[C (programming language)|C]]. This Advanced Interactive OpenModelica Compiler (OMC), can interact using API. All other tools of the OpenModelica package, are dependent of OpenModelica Compiler as it acts as the engine.


===OpenModelica Connection Editor (OMEdit)===
===OpenModelica Connection Editor (OMEdit)===
'''OpenModelica Connection Editor'''<ref>{{Cite journal|last=Adeel|first=Asghar, Syed|last2=Sonia|first2=Tariq,|date=2010|title=Design and Implementation of a User Friendly OpenModelica Graphical Connection Editor|url=http://liu.diva-portal.org/smash/record.jsf?searchId=2&pid=diva2:399755&dswid=-6197}}</ref><ref>{{Cite web|url=https://openmodelica.org/?id=78:omconnectioneditoromedit&catid=10:main-category|title=OpenModelica Connection Editor (OMEdit) - OpenModelica|last=Administrator|website=openmodelica.org|language=en-gb|access-date=2017-05-24}}</ref> 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 interface, requests model information and creates models/connection diagrams based on the Modelica annotations. The implementation is based on C++ and the [[Qt (software)|Qt library]].
This package contains a [[graphical user interface]], called OpenModelica Connection Editor (OMEdit) for creation and modification for the models. OMEdit uses the OpenModelica Compiler through an existing [[C (programming language)|C]] [[API]] to perform simulation, model query and plotting.


=== OpenModelica Shell (OMShell)===
=== OpenModelica Shell (OMShell)===
OpenModelica Shell (OMShell) is an interactive [[Command Line Interface]] session handler which has simple editing functions apart from parsing.
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)===
===OpenModelica Notebook (OMNotebook)===
OpenModelica Notebook (OMNotebook), is a light-weight [[Mathematica]]-styled editor for Modelica. This has been developed as an advanced teaching tool.
OpenModelica Notebook (OMNotebook), is a light-weight [[Mathematica]]-style editor for Modelica that implements interactive <abbr>WYSIWYG</abbr> 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)===
===OpenModelica Python Interface (OMPython)===
OMPython contains an [[Python (programming language)|Python]] based package and [[API]] for accessing the functionality of the OpenModelica Compiler.
OMPython is a Python interface enabling users to access the modeling and simulation capabilities of OpenModelica from Python. It uses [[Corba|CORBA]] (omniORB) to communicate with the OpenModelica scripting API.


===Modelica Development Tooling (MDT)===
===Modelica Development Tooling (MDT)===
This package contains an [[Eclipse]] based Modelica Editor for advanced model editing with code assistance. MDT interacts with the OpenModelica Compiler through an existing [[Corba]] based [[API]].
MDT is an [[Eclipse]] plugin that integrates the OpenModelica compiler with Eclipse. It provides and editor for advanced text based model editing with code assistance. MDT interacts with the OpenModelica Compiler through an existing [[Corba|CORBA]] based [[API]] and is used primarily in the development of the OpenModelica compiler.


==See also ==
==See also ==
*[[wolfram SystemModeler]]
*[[JModelica.org]]
*[[Modelica]]
*[[Modelica]]
*[[Dymola]]
*[[JModelica.org]]
*[[Wolfram SystemModeler]]
*[[SimulationX]]


==References==
==References==

Revision as of 12:23, 24 May 2017

Developer(s)Open Source Modelica Consortium (OSMC)
Stable release
1.11.0 / 6 February 2017; 7 years ago (2017-02-06)
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[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 SICS EAST Swedish ICT[4] in collaboration with Linköping University.

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,[5] automotive [6] and water treatment.[7]

Tools and Applications

OpenModelica Compiler (OMC)

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,[8] a unified equation-based semantical and mathematical modeling language and is bootstrapped.

OpenModelica Connection Editor (OMEdit)

OpenModelica Connection Editor[9][10] 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 interface, 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 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-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 (omniORB) to communicate with the OpenModelica scripting API.

Modelica Development Tooling (MDT)

MDT is an Eclipse plugin that integrates the OpenModelica compiler with Eclipse. It provides and 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

References

  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. ^ "SICS EAST Swedish ICT Homepage"
  5. ^ "ABB Power Plant optimization"
  6. ^ "Wolfram modeler"
  7. ^ " Mike operations"
  8. ^ Pop, Adrian; Fritzson, Peter (2006-09-13). "MetaModelica: A Unified Equation-Based Semantical and Mathematical Modeling Language". Modular Programming Languages. Springer, Berlin, Heidelberg: 211–229. doi:10.1007/11860990_14.
  9. ^ Adeel, Asghar, Syed; Sonia, Tariq, (2010). "Design and Implementation of a User Friendly OpenModelica Graphical Connection Editor". {{cite journal}}: Cite journal requires |journal= (help)CS1 maint: extra punctuation (link) CS1 maint: multiple names: authors list (link)
  10. ^ Administrator. "OpenModelica Connection Editor (OMEdit) - OpenModelica". openmodelica.org. Retrieved 2017-05-24.