Object-Oriented Modeling and Simulation with Modelica

The modeling language Modelica is bringing about a revolution in the area of simulating complex cyber-physical systems for e.g. robotics, aircrafts, satellites or power plants.

Modelica is a general declarative equation-based object-oriented language for continuous and discrete-event modeling of cyber-physical systems for the purpose of efficient simulation. It is bringing about a revolution in this area, based on its ease of use, visual design of models with combination of lego-like predefined model building blocks, its ability to define model libraries with re-usable components and its support for modeling and simulation of complex applications involving parts from several application domains.
OpenModelica is a tool supporting the Modelica language. It is the most complete open-source Modelica-based modeling, simulation, and optimization environment. It is intended for industrial and academic usage. Its long-term development is supported by a non-profit organization – the Open Source Modelica Consortium (OSMC), see www.openmodelica.org.
OpenModelica contains several subsystems. The OpenModelica model compiler translates equaiton-based models of differential algebraic equations to efficient C code through a complex process of symbolic transformations. The graphical model editor allows combining predefined component models by drag and drop, and graphical connections. The optimization subsystem supports dynamic optimization or parameter sweep style optimization. The Python API support integration with Python applications. Moreover, a prototype parallelization module in the compiler supports extracting both coarse-grained and fine-grained parallelism from equation-based models, and the ParModelica language extension supports data-parallel programming.

References: 

• Peter Fritzson. Principles of Object Oriented Modeling and Simulation with Modelica 3.3: A Cyber-Physical Approach. 1250 pages. ISBN 9781-118-859124, Wiley IEEE Press, 2014.

• Martin Sjölund, Peter Fritzson and Adrian Pop. Bootstrapping a Compiler for an Equation-Based Object-Oriented Language. DOI: 10.4173/mic.2014.1.1. Modeling, Identification and Control, Vol 35, No 1, pp 1-19, 2014.