FER/SubDomain€: un environnement graphique pour des
Transcription
FER/SubDomain€: un environnement graphique pour des
FER/SubDomain : un environnement graphique pour des méthodes de décomposition de domaine Z.-Q. Feng, J.-M. Cros Laboratoire de Mécanique et Énergétique d’Évry Université d'Évry - Val d'Essonne 40 rue du Pelvoux, 91020 Évry cedex, France [email protected], [email protected] Résumé Cette communication détaille les fonctionnalités d'un outil graphique de pré et post-traitement FER/SubDomain qui inclut une méthode de partitionnement de maillage METIS. Le logiciel combine une interface utilisateur conviviale avec menus déroulants (sous Windows) et la librairie OpenGL pour la représentation des résultats. Cet outil est interfacé avec un code de calcul parallèle développé au sein du laboratoire. 1 Introduction Le groupe de modélisation en dynamique des structures du Laboratoire de Mécanique et Énergétique d'Évry (LMEE) développe un code de calcul parallèle qui permet actuellement de résoudre des problèmes statiques et dynamiques (transitoire et analyse modale) linéaires. Le ou les systèmes linéaires intervenant dans les différentes analyses précitées sont résolus par une méthode de décomposition de domaine sans recouvrement du type complément de Schur sous forme duale ou primale [1,2]. Le parallélisme est obtenu par échange de messages (librairie MPI) et la programmation est basée sur le modèle SPMD (Single Program Multiple Data). Chaque sous-domaine est ainsi associé à un processeur. Cette architecture logicielle permet d'exécuter le code sur un simple PC monoprocesseur ou une machine parallèle (SGI Origin2000 du Pôle Parallélisme Île de France Sud, IBM SP4 de l'IDRIS, …). Par ailleurs, l'optimisation est obtenue par l'emploi de solveurs directs creux optimisés (librairie ESSL sur les machines IBM par exemple) et l'utilisation des bibliothèques BLAS et LAPACK. En complément de ce code, il fallait un outil de partitionnement de maillage. Actuellement plusieurs outils de ce type sont disponibles (METIS [3], Chaco [4], Ralpar [5]). Généralement, ces programmes permettent uniquement de découper un maillage. Cette partition du maillage peut s’effectuer soit au niveau du code de calcul parallèle de manière transparente pour l’utilisateur soit en amont du code de calcul. C’est la seconde solution que nous avons privilégié. Notre ambition était donc d'intégrer ce type d'outil de découpage dans une suite logicielle de pré et post-traitement 1 FER [6]. De très nombreuses méthodes de découpage ont été proposées [7-9] que l'on peut ranger en deux catégories : les méthodes logiques qui se basent uniquement sur la connectivité et les méthodes physiques qui utilisent la position des nœuds. Le logiciel de découpage actuellement implémenté dans FER/SubDomain est METIS qui fait partie de la première catégorie de découpeurs. METIS est en fait un ensemble de sous-programmes réalisant des tâches précises (renumérotation, transfert de maillage sous forme de graphe, découpage,...) que l'on peut combiner à loisir. METIS minimise la taille de l'interface entre les sous-domaines et permet d'obtenir des sous-domaines de tailles équivalentes afin de répartir équitablement la charge de travail lors du calcul, puisque un sous-domaine est affecté à un processeur. Le logiciel FER/SubDomain est développé à partir du logiciel FER/View qui est écrit en C++ et utilise pleinement le concept de programmation orientée objets, ainsi l'intégration d'un outil comme METIS (écrit en C) a été relativement aisée. Ceci est principalement dû à une architecture souple et ouverte du FER/SubDomain. Pour être complet, il manquait à notre suite logicielle, des outils de maillage. Les versions antérieures de FER/View permettaient déjà de relire des maillages (au format ASCII) en provenance de logiciels commerciaux comme ANSYS, NASTRAN, ... Un outil supplémentaire a été développé récemment [10], il permet de récupérer des maillages en provenance du logiciel CAST3M. Cet outil résulte d’une modification de la directive SORT de CAST3M qui permet outre la récupération de maillages réalisés avec CAST3M, la récupération de résultats (déplacements, contraintes aux nœuds, ...) qui peuvent être ainsi visualisés facilement à l'aide de FER/View. Soulignons au passage que les sources de cette directive ainsi qu'une version exécutable de FER/View sont disponibles sur le site WEB du laboratoire [11]. 2 Organisation générale du FER/SubDomain Le logiciel FER/SubDomain a été développé sur PC et fonctionne sous l’environnement Windows 9X/NT/XP. Le langage C++ a été choisi pour le développement du code parce qu’il possède toutes les possibilités de la programmation orientée-objets (POO), mais aussi pour sa simplicité et modularité. Nous avons choisi OpenGL comme support graphique car il est devenu un standard intégré dans la bibliothèque du Windows 95, Windows 98 et Windows NT [12]. MFC (Microsoft Foundation Class) [13] a été proposé par Microsoft pour faciliter le développement des applications Windows. Dans FER/SubDomain, MFC est largement utilisé pour concevoir les objets d’interfaces comme les boîtes de dialogue, les menus, les icônes, etc. FER/SubDomain est un environnement graphique qui intègre plusieurs modules fonctionnels. La figure 1 montre l’organigramme du code. L’utilisation de FER/SubDomain est relativement aisée. La première étape consiste à lire un maillage créé par un logiciel de CAO (Pro/Engineer, I-DEAS, …) ou un autre code de calcul (ANSYS, CAST3M, …). Le format d'entrée est relativement standard : coordonnées des nœuds, description des éléments, des codes permettent d'identifier le type de l'élément fini ainsi que ses caractéristiques (matérielles et/ou géométriques). Ensuite, les étapes classiques de pré-traitement qui consistent en l'affectation des propriétés matérielles, la définition du type d'éléments finis, et en l'imposition des conditions aux limites et des 2 sollicitations. Arrive alors l'étape de décomposition en sous-structures ou sous-domaines. À partir de la version originale de METIS, deux méthodes qui transforment les maillages en graphes ont été implémentées (méthodes nodale ou duale). Une fois choisie la méthode de découpage, il suffit d'indiquer le nombre de sous-domaines désiré. Le résultat apparaît à l'écran (Figure 3). À l'issue du découpage, FER/SubDomain écrit un fichier de données (ASCII) pour chaque sous-domaine qui reprend le format standard FER/View plus des informations liées à la décomposition de domaine : liste des sous-domaines voisins, liste ordonnée des nœuds appartenant à l'interface et enfin identification des coins. En outre un second fichier permet de conserver la relation entre la numérotation locale du sous-domaine et la numérotation globale afin de pouvoir reconstituer à la fin du calcul la solution globale. Enfin, un dernier fichier décrit la numérotation globale et locale des coins. Ces fichiers de données sont transférés sur les machines parallèles. Le code de calcul parallèle génère, en fin d’exécution, un fichier de résultats (déplacements, contraintes aux nœuds, modes propres,...) lisible par le post/processeur du FER/SubDomain. FER/SubDomain Mailleur Pré/processeur Données METIS Découpeur du maillage Résultats Post/processeur Solveur FER/Parallel MEF + Décomposition de domaine Figure 1 - Organigramme de FER/SubDomain 3 Fonctionnalités du FER/SubDomain Le logiciel FER/SubDomain intègre l'ensemble des fonctionnalités des logiciels développés antérieurement (FER/View et FER/PrePost). La figure 2 donne une vue générale de l’interface FER/SubDomain. Par ailleurs, le maillage représenté a été récupéré sur le site de l'INRIA [14] et la mise au format lisible par FER/SubDomain n'a réclamé que quelques minutes. Ce maillage a été ensuite découpé en 16 sous-domaines (Figure 3). Les principales caractéristiques du logiciel sont résumées ci-après : • Importation de maillage (Pro/Engineer, I-DEAS, CAST3M, Modulef, etc.) • Affichage des nœuds, des éléments et de la géométrie (avec ou sans numéro) • Définition des caractéristiques des matériaux, des paramètres, ... par l’intermédiaire de boîtes de dialogue • Sélection des nœuds, surfaces ou volumes via la souris 3 • • • • • • • • • • • Affectation des caractéristiques des éléments et des conditions aux limites par groupes Affichage de la liste des nœuds, éléments et matériaux Décomposition des maillages en sous-domaines Optimisation de la numérotation Création des fichiers pour le solveur (description des sous-domaines, de l’interface entre les sous-domaines, ...) Affichage du maillage déformé ou des modes propres Affichage sous forme de contours, d’iso-ligne, d’iso-surface ou de vecteurs Possibilité d’effectuer des coupes dans les structures tridimensionnelles Manipulation de l’image via la souris : rotation, translation, zoom, agrandissement, réduction, actualisation, … Effets d’éclairage Animation des résultats dans tous les cas d’affichage. Figure 2 - Interface conviviale du logiciel FER/SubDomain 4 Figure 3 – Découpage d’un maillage en 16 sous-domaines Outre l'appel à la librairie METIS, le logiciel possède un certain nombre de fonctionnalités nécessaires à la mise en œuvre du code de calcul parallèle : • Repérage des nœuds d'un sous-domaine faisant partie de l'interface entre les sousdomaines. • Optimisation de la numérotation locale des sous-domaines afin de diminuer la largeur de bande des matrices. • Détections des coins, qui sont définis comme des nœuds appartenant à plus de deux sous-domaines et/ou comme étant susceptibles d'appartenir à l'intersection de l'interface entre les sous-domaines et de la frontière du domaine d'étude. • Création et optimisation d'une numérotation globale des coins. Cette option est utile car les coins donnent naissance à des matrices au profil bande, d'où l'importance d'une optimisation adéquate de la numérotation afin d'économiser la mémoire et d'avoir de meilleures performances. De plus, d'autres fonctionnalités ont été ajoutées : • Possibilité de visualiser les sous-domaines éclatés les uns par rapport aux autres ou au contraire collés pour représenter le maillage initial. • Possibilité de sélectionner à la souris des parties du maillage en vue de définir des caractéristiques (cas des surfaces courbes). 5 4 Exemples d’illustration Un exemple classique [15] consiste à chercher le champ de déplacement d'un cylindre (rayon 3 m, longueur 6 m, épaisseur 0,03 m) soumis à deux charges concentrées (1 Newton) diamétralement opposées et qui repose à ses extrémités sur deux diaphragmes rigides dans leur plan. Le matériau qui constitue le cylindre est élastique linéaire (E=3 1010 Pa, ν=0,3). En raison de la symétrie, seulement un huitième du cylindre est discrétisé à l'aide d'éléments finis de coque à trois nœuds. Le maillage régulier comprend 224x224 nœuds, soit un modèle de 301 056 degrés de liberté. Le maillage est découpé automatiquement en 64 sous-domaines (Figure 4a) non réguliers [16]. La méthode de décomposition ou de sous-structuration itérative utilisée [17] pour résoudre ce problème converge en 52 itérations. Le temps de résolution, sur l'IBM SP4 de l'IDRIS, est d'environ 5 secondes. Ce temps de calcul est donné à titre indicatif, puisque cette machine ne fonctionne pas en temps dédié. La figure 4b représente une répartition des contraintes sur le maillage déformé. (b) (a) Figure 4 – Cylindre pincé, 64 sous-domaines Un autre calcul statique est effectué sur la pièce volumique de la figure 2. Comme le montre la figure 5 qui représente une répartition de contraintes dans le sous-domaine n°15 de la figure 3, il est également possible de visualiser les solutions par sous-domaines. Par ailleurs, il convient de souligner que METIS souffre de quelques faiblesses. Le maillage ne peut comporter qu'un type d'élément et les types d'éléments se limitent à quatre (éléments à 3 nœuds et 4 nœuds, hexaèdre et tétraèdre). De plus, comme le montrent les figures 4a et 5, l’interface entre les sous-domaines est très chahutée, ce qui diminue la vitesse de convergence des méthodes de décomposition de domaine. Ce dernier point peut être 6 amélioré en utilisant des outils de découpage basés sur la méthode physique comme Ralpar ou Chaco. Figure 5 – Répartition des contraintes dans le sous-domaine n°15 5 Conclusion Dans ce travail, un prototype du logiciel FER/SubDomain de pré et post-traitement de calcul des structures par éléments finis a été développé. Il peut être utilisé en interactif de façon très simple et très conviviale. Cet outil est en perpétuelle évolution, citons par exemple les améliorations de cette année (rapidité accrue dans l'affichage de gros maillages, amélioration dans la sélection des entités, récupération de maillages en provenance de différents codes : CAST3M, Modulef, I-DEAS, ...). La méthode de conception et de programmation orientée-objets en langage C++, ayant une architecture souple et ouverte, facilite les nouveaux développements. Remerciements Les calculs ont été effectués sur l’ordinateur IBM SP4 de l’IDRIS - Institut du Développement et des Ressources en Informatique Scientifique. 7 Références [1] Le Tallec P., Domain decomposition methods in computational mechanics, Computational Mechanics Advances, 1 (2), 121-220 (1994). [2] Farhat C., Roux F.-X., Implicit parallel processing in structural mechanics, Computational Mechanics Advances, 2 (1), 1-124 (1994). [3] http://www-users.cs.umn.edu/~karypis/metis [4] Hendrickson B., Leland R., The Chaco User's Guide: Version 2.0, Tech Report SAND94-2692, 1994. [5] Fowler R.F., Greenough C., RALPAR - RAL Mesh Partitioning Program, Version 2.0, Rutherford Appleton Laboratory, 1997. [6] http://gmfe16.cemif.univ-evry.fr:8080/~feng [7] Simon H.D., Partitioning of unstructured problems for parallel processors, Computing Systems in Engineering, 22 (2/3), 135-148 (1991). [8] Farhat C., Lesoinne M., Mesh partitioning algorithms for the parallel solution of partial differential equations, Applied Numerical Mathematics, 12, 443-457 (1993). [9] Sharp M., Farhat C., TOP/DOMDEC : A totally object oriented program for visualisation, domain decomposition and parallel processing, User's manual, PGSoft and University of Colorado, 1994. [10] Feng Z.Q., Turbelin G., Cros J.M., Compatibilité CAST3M – FER/View, Journée du club CASTEM, Paris, 3 déc. 2002. [11] http://gmfe16.cemif.univ-evry.fr:8080/theme1.html#7 [12] Wright R. S. Jr., Sweet M., OpenGL superbible : the complete guide to OpenGL programming for Windows NT and Windows 95, Waite Group Press, 1996. [13] Brain M., Lovette L., Developing professional applications for Windows 95 and NT using MFC, Prentice Hall PTR, 1997. [14] http://www-rocq.inria.fr/gamma/medit/down [15] Batoz J.-L., Dhatt G., Modélisation des structures par éléments finis, volume 3, Coques, Hermès 1992. [16] Feng Z.Q., Cros J.M., FER/SubDomain : an integrated environment for finite element analysis using object-oriented approach, Mathematical Modelling and Numerical Analysis, 36 (5), 773-781 (2002). [17] Farhat C., Lesoinne M., Le Tallec P., Pierson K., Rixen D. : FETI-DP : A dual-primal unified FETI method - Part I: A faster alternative to the two-level FETI method, Int. J. Numer. Meth. Engrg., 50, 1523—1544 (2001). 8