Êtes-vous un étudiant de l'EPFL à la recherche d'un projet de semestre?
Travaillez avec nous sur des projets en science des données et en visualisation, et déployez votre projet sous forme d'application sur Graph Search.
The continuous development of finite element programs creates code which is increasingly difficult to maintain, due to the increasing complexity as well as the chosen programming language. At the same time, the desire to analyse increasingly more complex and larger models requires the use of powerful tools capable of solving these problems in a reasonable amount of time. The research described in this thesis aims to solve these issues of maintainability and performance. For that purpose a new code structure has been designed, and the new finite element program has been adapted to make use of modern high-performance computers. The two principle parts in this thesis are: Design of an object-oriented code base In order to improve maintainability and ease of development, an object-oriented framework for finite element programs, written in C++, has been designed. The structure of the framework is set up in such a way, that the existing computational routines from the old Fortran program can be integrated in the new object-oriented code. Adaptation for high-performance computing Although object-oriented code generates more overhead than traditional procedural programming, the restructuring of the program together with the use of certain advantages of C++ created a new program executable which is faster than the old program. The object-oriented code made the adaptation of the code for parallel computing relatively easy and allowed the programming of the communication to be implemented transparently. New element types and new material models have been implemented to demonstrate the flexibility and ease of development of the new code. Three applications are presented to demonstrate the possibilities of the new finite element program.