Automated Computing
We offer several masters thesis opportunities in the field of Automated Computing.
The writing of scientific software is often both tedious and error-prone, leading to long development cycles and unreliable software. To further complicate matters, development of efficient scientific software requires specialization, both to the hardware and the application at hand. However, manual labor may in many cases be replaced by automated code generation, ultimately leading to automated development of efficient scientific software.
Together with colleagues around the world, we are working to implement a software system to realize the vision of automated computing based on automated code generation. The software is distributed as free/open source software as part of the FEniCS Project. FEniCS has been documented in a large number of journal publications and has started to attract a substantial user base indicated by approximately 1000 monthly downloads by users from more than 70 countries.
The research group Automated and Distributed Computing offers several opportunities for projects related to automated computing and FEniCS. Possible projects include (but are not limited to)
- Automated tabulation of hierarchical basis functions
- Automated code generation for tensor-valued finite element problems
- Automated code generation for quadrilateral finite elements
- Automated finite element computing on GPUs
- Automated solution of partial differential equations on manifolds
- Sparse linear algebra on GPUs
- Efficiency of a posteriori error estimators in biomedical applications
- Efficient data structures for finite element assembly
Requirements
Students should have a background in numerical analysis, finite element methods and C++/Python programming. Recommended courses include INF5660 (Advanced problem solving with high level languages) and INF5681 (Introduction to finite element methods).
