GSoC/GCI Archive
Google Summer of Code 2011

Computational Science and Engineering at TU Wien

Web Page:

Mailing List:

We are a loose interest group at the TU Wien (Vienna University of Technology) and in particular interested and involved in the simulation of fluid dynamics, propagation of high frequency waves, electronic devices such as lasers and transistors, and the mechanical stability of human bones. Even though the physical effects encountered are of very different nature, the simulation flow is often very similar. We have a number of open source projects that cover different aspects of the simulation process:

* Netgen: A multi-platform automatic mesh generation tool written in C++ capable of generating meshes in two and three dimensions. See

* ViennaMesh: Provides a unified interface for various mesh related tools. See

* NGSolve: A general purpose Finite Element Library on top of Netgen. See

* ViennaCL: Provides high level C++ interfaces for linear algebra routines on CPUs and GPUs using OpenCL. See

As can be seen from the download statistics at the individual project pages, our libraries are widely used. In order to further improve our libraries, we hope to find motivated students who wish to get a deeper insight into the various challenges encountered when running predictive simulations.


Our code repository can be found here:


  • Algebraic Multigrid Preconditioner (AMG) for ViennaCL The topic of my work is about preconditioners and more specifically on algebraic multigrid methods. The goal is to develop an efficient parallel implementation for ViennaCL to be used with the already existing solvers and to test those implementations with certain benchmarks and automatic tests. Furthermore, variations of the AMG algorithm will be implemented and tested to both find out a default solution and also to enable users to tweak the algorithm to specific needs.
  • NETGEN: Constructive Solid Geometry in 2D For generating a mesh, Netgen currently has 2 types of input for the 3D solids, i.e. an input described by the Constructive Solid Geometries and one by the standard STL file format. As for the 2D objects, the only type of input is the one which uses spline curves. The aim of this project is to use the similar approach of the CSG input format in the case of 2D shapes. As a consequence, the time consumed to setup the 2D geometries needed for the simulation over 2D figures will be diminished.
  • ViennaMesh: Distributed Parallel Meshing of Segments In this project, I will highly improve the perfomance of the mesh generation produced by the ViennaMesh library. With considerably big hull meshes, obtaining a volume mesh results in a very exigent task. To overcome this problem, I propose distributing the processing of the volume mesh so it can be executed either in domestic environments or in large clusters.