OpenModelica is an open source modelling and simulation environment intended for industrial and academic usage. It is an object-oriented declarative multi-domain modelling language for complex systems. The OpenModelica environment allows most of the expression, algorithm, and function parts of Modelica to be executed interactively. It also allows equation models and Modelica functions to be compiled into efficient C code. The generated C code is combined with a library of utility functions, a run-time library and a numerical DAE solver.

Modelica has emerged as a strong contender in the arena of simulation languages. This environment can be used to work for both steady states as well as dynamic systems. As all the equations are solved simultaneously, it doesn't matter whether the unknown variable is an input or output variable. Listed below are six major components of OpenModelica.

  1. OpenModelica Compiler (OMC) is used for converting Modelica code to C. This Advanced Interactive OpenModelica Compiler (OMC), can interact using API. All other tools of the OpenModelica package, are dependent on OMC as it acts as the engine.
  2. OpenModelica Connection Editor (OMEdit) is a GUI used for creation and modification of the models. OMEdit uses the OpenModelica Compiler through an existing C API to perform simulation, model query and plotting.
  3. OpenModelica Shell (OMShell) is an interactive Command Line Interface session handler which has simple editing functions apart from parsing.
  4. OpenModelica Notebook (OMNotebook) is a lightweight notebook editor, compared to the more advanced Mathematica notebooks available in MathModelica. Hierarchical text documents with chapters and sections can be represented and edited, including basic formatting. Cells can contain ordinary text or Modelica models and expressions, which can be evaluated and simulated.
  5. OpenModelica Python (OMPython) API is a free, open source, highly portable Python based interactive session handler for Modelica scripting. It provides the modeler with components for creating a complete Modelica modeling, compilation and simulation environment based on the latest OpenModelica library standard available. OMPython is architectured to combine both the solving strategy and model building.
  6. Modelica Development Tooling (MDT) is an Eclipse Plugin as part of OMDev – The OpenModelica Development Environment integrates the OpenModelica compiler with Eclipse. MDT, together with the OpenModelica compiler, provides an environment for working with Modelica and MetaModelica development projects. This plugin is primarily intended for tool developers rather than application Modelica modelers.