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