Working on efficient mesh generation methods for FEM using parallel octrees at CIMNE
In FEM the mesh generation techniques are being widely studied by a lot of people around the world due to the capabilities of new computer processors, most of people is trying to develop fast, robust and efficient meshers based on techniques that allows to create huge meshes in minutes or even seconds by using a single modern personal computer or a cluster. During my stay at CIMNE I worked on a octree mesher using parallel computing with MPI.
At CIMNE specifically I worked on the balance of an octree using parallel computing. Octree balance means that for each cell all their neighbors can only have one level more or one level less of refinement, this is because to generate the tetrahedral mesh a prestablished pattern is applied and to can apply this pattern the cell sizes have to be controlled in all the octree. In this octree is used a binary codification for each cell, this helps to perform most of the operations robustly and efficiently by using bitwise operations.
When I started working on this project y was surprised by the way that Dr. Abel and Dr. Pooyan program using C++. They program in a way in which bugs can be easily detected due to the tests applied in most of the code, also most of operations are performed fast and efficient due to the use of bitwise operations. By them I learned a programming style in order to generate code more readable and understandable.
During my stay I had some troubles with the work developed, most of troubles are related to the codification using C++ classes and some others related to understand how can I program some algorithms in a efficiently way by using bitwise operations. This troubles were tackled with help from Dr. Abel and Dr. Pooyan and I got the needed skills to implement the octree balance algorithm.
Working at CIMNE has been a very enriching experience for me, because I learned a lot from my assessors and actually I have the skills to implement FEM meshers in which high performance computing techniques and parallel computing is used over all the algorithm.
Actually we had the octree balance algorithm implemented in parallel with MPI, and we are working on apply the tetrahedral pattern to generate FEM elements and after that can determine elements that lies inside the boundary domain and finally save them as the final tetrahedral mesh. The future of this work is generate a parallel, robust and efficient mesher to perform FEM simulations.
During my stay in Barcelona I felt very comfortable due to the great hospitality of all the people with I was in touch more often.
I thank my assessors, TCAiNMaND project managers and to European Union for gave me the opportunity to work with persons from a research center recognized worldwide as is the CIMNE.