The team develops numerical models to solve complex multi-physics problems. The main design requirement is that the resulting algorithms are efficient on massively hybrid supercomputers, for both distributed and shared memory systems.
The design of a numerical model to solve a physical problem is driven by two main requirements: the accuracy of the model to describe the problem, and the efficiency of its implementation on parallel systems. The modelling of a physical phenomena is rarely unique, and one has to choose between accuracy, complexity and efficiency… that is, to look for the good balance between quality and cost. This statement is particularly true when one has in hand massively parallel supercomputers, where parallel efficiency makes all the difference. Some algorithms may be good algorithms on sequential computers but behave poorly on parallel computers. One straight example is recursive algorithms.
Our objective is therefore to provide good transversal and application-based algorithms, in the aforementioned sense, to solve the numerous complex physical problems solved daily in the department and by our external collaborators. The transversal areas are:
- Algebraic solvers (pipelined CG, Deflated CG, GMRES) and preconditioners (RAS, Gauss-Seidel, Linelet, coarse space corrections)
- Geometrical tools (Chimera, multi domain coupling, element search)
- Stabilization strategies (VMS, shock capturing)
- Multiphysics coupling (FSI, Fluid-particle, Fluid-rigid body interactions)
The application based are:
- Free surface flows (interface reconstruction, pressure enrichment)
- Particle tracking (dynamic load balance, reload balancing)
- Multiphysics coupling (contact, interpolation techniques)
All these algorithms are implemented using MPI, MPI3 with non-blocking global communications, openMP and recently OmPsS programming models.