ArticleslgStudy

computer science

OpenModelica

OpenModelica is a computer science topic covered in the lgStudy science library. This page brings together a partial reference excerpt, illustrations, worked examples, real-world applications and a short study plan, so you can understand OpenModelica rather than just read about it. In short: OpenModelica 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, a non-profit, non-governmental organization.

OpenModelica — main illustration
OpenModelica — illustration

Key takeaways

  • OpenModelica belongs to computer science; place it in that map before memorising details.
  • Learn the definition first, then one example that makes the definition concrete.
  • Connect OpenModelica to a quantity you can measure, compute or draw — that is where exam questions come from.
  • Reproduce the core statement of OpenModelica from memory before moving on to harder problems.

Reference excerpt

OpenModelica 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, 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 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 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 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 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) or ZEROMQ 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 to communicate with the OpenModelica compiler API.

Modelica Development Tooling (MDT) 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 Modelica Dymola JModelica.org Wolfram SystemModeler SimulationX Simulink

References

Illustrations

OpenModelica: OpenModelica DC Motor with Gearbox Model
OpenModelica DC Motor with Gearbox Model

Worked examples

Example 1 — a first encounter with OpenModelica

Start with the simplest possible case. Write down what OpenModelica claims or describes in one sentence, then invent the smallest concrete situation in which that sentence is true. In computer science, the smallest case is usually a single object, a single equation or a single measurement. Check that every symbol or term in your sentence has a meaning in that case.

Example 2 — changing one variable

Take the situation from Example 1 and change exactly one quantity: double it, halve it, or set it to zero. Predict what should happen to OpenModelica before you calculate. Comparing your prediction with the result is the fastest way to find out whether you understand the idea or only the words.

Example 3 — an exam-style question

Typical questions about OpenModelica ask you to (a) state it precisely, (b) apply it to given data, and (c) explain a limitation. Practise writing all three answers in under five minutes; the third part is what separates a full-mark answer from an average one.

Applications of OpenModelica

In research
OpenModelica appears in computer science research whenever the underlying quantities have to be modelled precisely. Papers usually cite it as a starting assumption and then explore where it breaks down.
In technology and industry
Engineering practice reuses OpenModelica in design rules, simulations and safety margins. Knowing the idea lets you read a specification sheet and understand why the numbers look the way they do.
In the classroom
OpenModelica is common in secondary-school and first-year university syllabi. It links to neighbouring topics Declarative programming languages, Free simulation software, Mathematical optimization software, so understanding it makes those chapters shorter.
In everyday life
Look for OpenModelica outside the textbook — in sport, cooking, traffic, electronics or the sky above you. An example you found yourself is remembered far longer than one you were given.

Affiliate

Preply — study more efficiently by working with a personal tutor. 50% off.

How to study OpenModelica in 20 minutes

  1. Read the reference excerpt below once, without taking notes.
  2. Close the page and write down what OpenModelica means in your own words.
  3. Compare your version with the excerpt and mark what you missed.
  4. Work through the three examples above with pen and paper.
  5. Explain OpenModelica out loud to somebody else — or to Teacher Smith in the lgStudy chat.

Frequently asked questions

What is OpenModelica in simple terms?

OpenModelica 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, a non-profit, non-governmental organization.

Why does OpenModelica matter?

Because it connects several computer science ideas at once: it gives you a definition you can apply, a quantity you can calculate, and a way to check whether a result is plausible.

How should I study OpenModelica?

Read the excerpt, restate it from memory, then work through the examples and applications listed on this page. The five-step study plan above takes about twenty minutes.

What does this page cover?

It gives you a compact reference excerpt plus original lgStudy explanations, examples, applications and study material on OpenModelica.

Tags

  • Declarative programming languages
  • Free simulation software
  • Mathematical optimization software
  • Object-oriented programming
  • Simulation programming languages
  • Simulation software

Keep exploring