Applied Parallel Computing Large Scale Scientific and Industrial Problems

Volume 1541 of the series Lecture Notes in Computer Science pp 149-160


Modelica—A language for equation-based physical modeling and high performance simulation

  • Peter FritzsonAffiliated withPELAB, Dept. of Computer and Information Science, Linköping University

* Final gross prices may vary according to local VAT.

Get Access


A new language called Modelica for hierarchical physical modeling is developed through an international effort. Modelica 1.0 [http://] was announced in September 1997. It is an object-oriented language for modeling of physical systems for the purpose of efficient simulation. The language unifies and generalizes previous object-oriented modeling languages and techniques.

Compared to the widespread simulation languages available today this language offers two important advances: 1) non-causal modeling based on differential and algebraic equations; 2) multidomain modeling capability, i.e. it is possible to combine electrical, mechanical, thermodynamic, hydraulic etc. model components within the same application model.

A class in Modelica may contain variables (i.e. instances of other classes), equations and local class definitions. The multi-domain capability is partly based on a notion of connectors, which are classes just like any other entity in Modelica.

Simulation models can be developed using a graphical editor for connection diagrams. Connections are established just by drawing lines between objects picked from a class library. The Modelica model is translated into a set of constants, variables and equations. Equations are sorted and converted to assignment statements when possible. Strongly connected sets of equations are solved by calling a symbolic and/or numeric solver. The C/C++ code generated from Modelica models is quite efficient.

High performance parallel simulation code can be obtained either at the coarse-grained level by identifying fairly independent submodels which are simulated in parallel, or at the fine-grained level by parallelizing on clustered expression nodes in the equation graph. Preliminary results using the coarse-grained approach have been obtained in an application on simulating an autonomous aircraft watching car traffic.