Contenu

Maillages de grande taille et informatique associée

Aujourd’hui, on réalise des calculs, par exemple en mécanique des fluides, avec quelques (jusqu’à 50) millions d’éléments. Il est nécessaire d’être capable de traiter des cas à 500 millions ou plus afin de bien respecter une géométrie complexe et/ou de bien capter tous les phénomènes physiques sous-jacents dont les échelles varient fortement (écoulements turbulents, calcul de sûreté de grands systèmes). Pour la simulation du comportement des nanostructures ou de mésostructures en environnement hétérogène, des cas de l’ordre du milliard d’éléments sont à considérer.

Ceci impose l’étude et le développement de méthodes utilisant de manière fine les possibilités des architectures des calculateurs ainsi que des méthodes de génération de maillages en parallèle, notamment via des techniques de décomposition de domaines :

  • décomposition de domaine a priori et a posteriori. Mise au point de nouvelles méthodes basées sur des parcours spécifiques par voisinage du domaine de calcul,
  • diagramme de Laguerre et diagramme de Voronoï de sphères. Cette décomposition particulière s’applique aux structures granulaires et se construit par une approche originale basée sur la modification topologique d’une triangulation,
  • algorithme de gestion de mémoire (renumérotations diverses). Cette étape s’avère nécessaire avant tout traitement de maillage utilisant des opérateurs locaux (par exemple, pour des opérateurs devant regarder les voisinages d’une entité donnée). Elle est également utile pour envisager des calculs parallèles et/ou multi-coeurs,
  • utilisation fine des architectures multi-coeurs. On regarde ici la manière de tirer parti de ces architectures en adaptant les codes (le moins possible),
  • utilisation de machines massivement parallèles pour traiter les problèmes de grande taille et/ou instationnaires,
  • parallélisation des processus de génération de maillages (versus parallélisation d’un mailleur) dans la logique globale d’un calcul. On s'appuie sur un mailleur intrinsèquement série (même s’il comprend des parties multi-coeurs) utilisé dans un processus global parallèle.

De nombreuses équipes travaillent sur ces sujets ou des sujets voisins mais assez peu de manière étroite avec plusieurs applicatifs comme les nôtres. Par ailleurs, notre démarche est de rendre transparent le processus global de parallélisation (sans réel ”middleware”).