Dymola and Modelica are often used as synonyms or mentioned in the same breath. Depending on the context, this is misleading or even wrong. We explain the differences and connections between the Modelica language and the Dymola software.

Dymola is a commercial simulation software of the French Dassault Systèmes group. It was originally developed by the company Dynasim AB in Lund (Sweden). Simulation models are formulated in Dymola using the **Modelica **modeling language in text form (code) or assembled in a graphical interface by drag-and-drop from submodels organized in model libraries.

Modelica is a freely available modeling language for the mathematical description of multi-physical systems. The language was published in the 1.0 version in 1997 and has been developed further in the Modelica Association since 2000. Modelica is object-oriented and equation-based. Systems of differential equations, algebraic equations and discrete events can be formulated. The symbolic and numerical solution of these systems of equations is not part of the standard, but is the responsibility of the respective simulation software.

Analog zu generellen Programmiersprachen wie Python ist Modelica vollständig objektorientiert. Durch Vererbung und Instanziierung können komplexe Simulationsmodelle in kleinere Einheiten unterteilt und organisiert werden. Das erhöht die Übersichtlichkeit in Systemmodellen und ermöglicht die Wiederverwendbarkeit von einzelnen Komponenten.

An essential feature of Modelica is that, in contrast to classical programming languages, no instructions are formulated which the computer processes step by step, but that **equations** are described. The order of the equations in the Modelica code is not important. The only important thing is that the resulting system of equations is solvable. This approach is called equation orientation or **acausal modeling**.

The term acausal comes from the fact that there is no fixed causal relationship in Modelica code. As in mathematical equations, x=y is equivalent to y=x.

However, it is important to understand that this only applies to the higher level of the modeling language. In order to numerically compute the simulation result for a model, a causal relationship - that is, a computational order - must necessarily be established. This happens in the Modelica tools like Dymola in the background. The system of equations is symbolically manipulated and converted into a form that is as easy to solve as possible. Modelica then translates it into a programming language (usually C) and couples it to numerical solution algorithms. The user only notices this if the symbolic transformation or the numerical solution goes wrong.

Another special feature of the Modelica language is that the graphical representation of models is part of the standard. For example, in Dymola, models can be created both at code level and in a graphical view (drag-and-drop of subcomponents). And since the graphical representation is part of the standard, the model looks exactly the same when you open it in other Modelica tools.

The origins of the Modelica language and the Dymola software both go back to Hilding Elmqvist. Therefore, Dymola has been the de facto standard among Modelica tools from the very beginning - and still is, if truth be told. Ultimately, this is where the widespread speech and spelling Dymola/Modelica in the same breath comes from.But a lot has happened in the last few years.

And there are now a considerable number of Dymola alternatives:

- OpenModelica (open source)
- SimulationX
- Modelon Impact (web based)
- Wolfram SystemModeler
- MapleSim

At TLK Energy, we regularly offer training on Modelica and our library TIL Suite. Modelica Training covers all the important basics of Modelica. For newcomers and beginners, this is the fastest way to start working successfully with Modelica.

For those who have more time and prefer self-study instead of training, the free online textbook Modelica by Examp by Michael Tiller is certainly a very good choice.