Full-scale 3D simulations of the heart as a "binary cube"
In the context of cardiac simulations, the irregular 3D volume of the heart poses a computational challenge. Not only sophisticated 3D mesh generation techniques have to be applied, but the resulting unstructured data structure can seriously hamper the overall computing speed, on both conventional single-core computers and modern parallel computers.
Traditional full-scale 3D simulations of the heart rely on unstructured 3D meshes, which are hard to achieve high performance on modern computer hardware.
Approach: We will immerse the irregular 3D heart volume into a cube, which is then gridded with a uniform 3D mesh. Each mesh point is checked with respect to the original 3D heart volume, being either inside or outside. The "outside" points are included in a regular data structure, but will be numerically masked away during the actual computations. Although a considerable part of the computation is seemingly wasted, advantages for the overall computing speed may still arise due to the underlying regular data structure.
Parallelization: If the above method of "binary cube" is to be further sped up by parallel computing, a viable strategy is to first divide the entire 3D cube into a number of smaller 3D subcubes. If a 3D subcube has none "inside points", then it can be ignored completely. The remaining subcubes, each having at least one "inside point", will be assigned to several computers (or CPU cores). The needed inter-subcube data exchange will be enabled by MPI communication.
Objectives: The parallel implementation of "binary cube" should be used to do full-scale 3D heart simulations, which are of great interest to ongoing research activities at the Cardiac Modeling Department at Simula. Moreover, its overall parallel performance should be rigorously compared with a traditional parallel 3D heart simulator that is based on an unstructured mesh and data structure.
Learning outcome: The master student will learn the basic numerical ingredients of cardiac simulations, while gaining expertise in parallel programming and code performance tuning. A successful completion of the master project is expected to make substantial contributions to some of the ongoing research activities at Simula Research Laboratory.