Open Master Theses Related to the OpenModelica Platform

These projects are suitable for students with skill and interest in advanced programming. If you are interested in one of the projects, please send a copy of your CV and course transcript, to the contacts indicated for the project you are interested in.

Updated on 16/09/2016

Compiler Construction

The master thesis project should develop a new IR for OpenModelica for more efficient code generation. While introducing a more efficient IR, it would also be advisable to make certain operations more efficient. This includes some optimizations such as dead code / use of uninitialized variables that are currently performed elsewhere in the compiler. One of the other gains would be to make interpretation of functions more efficient.

Type Inferencing and Python to Modelica Translation

The goal of this master thesis project is to design and implement a Python to Modelica translator including type inferencing techniques to infer types in dynamically typed Python programs to be used in statically typed Modelica programs. This also includes inferencing shapes of array types. The goal is to be able to call translated Python programs from Modelica. The implementation approach can with a high probability be built on the MetaModelica and OMCCp systems.Click for more details. Contact: Lena Buffoni or Peter Fritzson

External Function Interface Python-Modelica

The goal of this master thesis project is to design and implement a Python – Modelica external function interface. It should be possible to call Python programs from Modelica, and Modelica programs from Python. The Modelica side of the external function interface may involve Modelica, MetaModelica, and C programming, whereas the Python side may involve Python and C programming.Click for more details. Contact: Lena Buffoni or Peter Fritzson

OpenModelica OCAML Code Generator

The goal of this master thesis project is to create one more code generator using the existing C code generators as inspiration. This code generator should generate code for the functional language OCAML.Click for more details Contact: Adrian Pop or Peter Fritzson

OpenModelica Translator to Scicos

The goal of this master thesis is to improve the interoperability of the OpenModelica platform, by implementing export possibility of (Open)Modelica models to to a smaller Modelica subset accepted by Scicos. A transformation module that transforms (Open)Modelica AST to Scicos Modelica AST is needed.Click for more details Contact: Mohsen Torabzadeh-Tari or Peter Fritzson

Advanced Refactoring for Modelica in Eclipse Plugin (First part finished, second part available)

A refactoring is a transformation of e program that improves its structure and understandbility. Earlier basic refac-toring support in MDT has been developed, including the unique property of preserving comments and indenta-tion. The goal of this master thesis project is to develop several advanced refactorings on top of the basic refactoring functio-nality and apply these refactorings to the 150 000 line OpenModelica compiler.Click for more details Contact: Adrian Pop or Peter Fritzson

CUDA Code Generation and Runtime Support for Parallel Extensions of the OpenModelica Compiler

This project centers around code parallelization. The goal is to improve the existing OpenCL/CUDA style explicit programming extensions for the OpenModelica compiler and to add CUDA code generation and runtime support for these new explicit parallel programming constructs in order to achieve speedups on NVIDIA GPUs. Click for more details. Contact: Mahder Gebremedhin or Peter Fritzson

Currently the Open Modelca Compiler (OMC) compiles Modelica/MetaModelica into C-code via several optimizing steps. There has earlier been developed several parallel code generator prototypes in the OpenModelica system including generation of OpenCL code for Nvidia. However, static compilation schemes sometimes fail to parallelize due to conservative assumptions of dependencies. The goal of this master thesis project is to design and implement an efficient parallel autotuning compilation scheme from Modelica to the NVIDIA Fermi GPGPU. The development need not be done from scratch, it can build upon existing implementations. Click for more details. Contact: Mahder Gebremedhin, Lena Buffoni or Peter Fritzson

Graphical User Inferfaces

Requirement modeling in OMEdit

An extension of Modelica for expressing requirements is being developed. It incudes a new type of relationship between Modelica components, introducing a new level of complexity to Modelica models. In order to simplify the design and visualization od such models we propose to implement different views for displaying and hiding the requirement level of the models. The goal of the thesis is to develop an interface for visualizing the new extensions as well as for hiding them from view when necessary. Click for more details Contact: Lena Buffoni or Peter Fritzson

ModelicaML

Moving ModelicaML to a Professional Open-source Project Level

The ModelicaML prototype, which has been developed for the last 4 years, was primarily used as a platform for prototyping new ideas. Today ModelicaML implementation has reached a good level of maturity. The main objective of this project is to move the ModelicaML implementation to a professional open-source project level. Click for more details Contact: Adrian Pop or Peter Fritzson

Design and Implementation of the ModelicaML Support in Papyrus MDT

Modelica Modeling Language (ModelicaML) is a graphical modeling language for the description of time-continuous and time-discrete/event-based system dynamics. ModelicaML is defined as an extended subset of UML. This subset enables the generation of executable Modelica code. Presently, ModelicaML is implemented as a prototype that only supports the obsolete version Papyrus MDT 0.7.4. Based on this prototype, the task of this project is to design and implement the support for ModelicaML for the latest Papyrus version 1.x.Click for more details Contact: Adrian Pop or Peter Fritzson

FMI Support in ModelicaML (New)

Modelica Modeling Language (ModelicaML) is a graphical modeling language for the description of time-continuous and time-discrete/event-based system dynamics. ModelicaML is defined as an extended subset of UML. This subset enables the generation of executable Modelica code. The main task of this project is enabling the design verification by using models (system component-, scenario- or requirement-models, etc.) that were created in different tools or formalisms and were exported in the FMI format. Click for more details Contact: Adrian Pop or Peter Fritzson

Moving ModelicaML to a Professional, Open-Source Project Level (New)

Modelica Modeling Language (ModelicaML) is a graphical modeling language for the description of time-continuous and time-discrete/event-based system dynamics. ModelicaML is defined as an extended subset of UML. This subset enables the generation of executable Modelica code. The ModelicaML prototype, which has been developed for the last 4 years, was primarily used as a platform for prototyping new ideas. Today ModelicaML implementation has reached a good level of maturity. The main objective of this project is to move the ModelicaML implementation to a professional open-source project level.Click for more details Contact: Adrian Pop or Peter Fritzson