Johannes Bamme

Role-Based Modeling of Particle Methods

The aim of my thesis project is to introduce the concept of role modeling in the research processes of Systems Biology. The current approach of the Center for Systems Biology Dresden is based on observing developmental processes using real-time 3D microscopy, followed by processing and analyzing the imagery to learn mechanistic models. Then, these models are simulated numerically and visualized in overlay with the 3D microscopy data in order to test whether they are sufficient to explain the biological phenomenon. All steps in this process, from image processing to the model learning to simulation and visualization, rely on the efficient, distributed computing framework particle methods.

The overall goal of my thesis project is to investigate how and where the modeling concept of roles can simplify or enlighten this process. The most interesting and promising direction is to extend the numerical framework particle methods with roles. This could significantly simplify the implementation of a particle methods simulation. This could not only reduce the complexity of the code it also relieves the programmer from the need of being aware of the state of the system. For example, a particle could be free, play a vertex in a graph if connected, or play a grid node if the connectivity satisfies a topological constraint. For all of these states the calculation of the gradient is different for instance and the programmer needs to be aware of this. With roles, the correct algorithm will be chosen automatically depending on which role the particle plays at the time.

The route of my thesis project started from identifying the needed role features for particle methods by using the list of 26 role features investigated by F. Steimann and T. Kühn. The next step is now testing the role-based particle methods within the role-based programming language SCROLL from M. Leuthäuser. With this information, I will implement these specific role features in C++ so I can test them in the C++ particle methods library OpenFPM. Therefor the goal is to provide the access of roles during the programming phase and at runtime and to conserve the high performance of the OpenFPM library.