Un générateur d éléments finis pour la résolution de problèmes couplés - Organisation et implémentation orientée objet du code CAVOK - Pierre Lamary (*,**) & Yvon Chevalier (*) (*) ISMCM-CESTI Laboratoire des Structures, Acoustique et Rhéologie 3, rue Fernand Hainaut 93407 Saint-Ouen, France Pierre.Lamary@ismcm-cesti.fr (**) Volage Limited Aeronautic engineering, Vibro-acoustics of transportation Lamary house 113, rue Lamarck 75018 Paris, France Résumé : L'orienté objet permet une nouvelle approche de la programmation de la méthode des éléments finis. Selon notre expérience, une implémentation formelle de la méthode peut naturellement être développée. Ces travaux nous ont conduit à la réalisation du code de calculs CAVOK. Nous présentons dans cette communication les fondements de son Générateur d Éléments Finis. Celui-ci permet à un utilisateur avancé de se créer de nouveaux types d éléments finis et d accéder ainsi à la résolution de nombreuses équations différentielles (structure, acoustique, vibrations, élasto-acoustique, viscoélasticité, poroélasticité ). Nous terminerons en suivant un exemple de validation basé sur la résolution de l équation de Laplace qui met en œuvre l approche proposée. Abstract: Object oriented language offers a new approach to programming of the finite elements method. Our experience has shown that a formal implementation of the method can be developed naturally. This research has led to the creation of the computational code CAVOK. We will focus on the foundations of its Finite Elements Generator. This generator allows the advanced user to create new types of finite elements and to solve a large range of differential equations (structure, acoustics, vibrations, elastoacoustics, viscoelasticity, poroelasticity, etc.). We will conclude by looking at a validation example related to the solving of Laplace s equation that implements the approach proposed. Mots-clefs : éléments finis ; vibro-acoustique ; logiciel 1 Introduction Nos motivations sont nées de la difficulté de traiter de nouveaux problèmes couplés dans l environnement des logiciels de calculs des structures existants. Ainsi, dès les années 1995, en s appuyant sur les langages Orientés Objets (C++), tout juste disponibles à l époque, nous avons écrit les premières lignes d un nouveau code appelé CAVOK (Calculs Acoustiques et Vibroacoustiques OK). Ce code est original dans la mesure où il dispose d un générateur d éléments 1
finis qui permet à un utilisateur avancé de se créer de nouveaux types d éléments finis. Les points clefs de la programmation sont présentés, dont : la banalisation des degrés de liberté, le support sémantique de la définition des termes des intégrales élémentaires à calculer, la gestion des performances et de la mémoire, l accès intime aux grandeurs définies. Une application de validation est présentée où le code a été testé pour résoudre l équation de Laplace. Par ailleurs, et ce sera l objet de la présentation de M. Tanneau au cours de ce séminaire, le code nous permet actuellement de mener des études avancées en vibro-acoustique où interviennent des domaines élastiques, acoustiques, viscoélastiques et poroélastiques. Implémentation L aspect formel de notre programmation provient du fait que, ni les Degrés De Liberté (DDL), ni les Éléments Finis (EF) ont de nature physique prédéfinie. Ces notions sont supportées dans notre code par les deux entités : I. La classe NodeDOF (DDL aux Nœuds), II. La classe ReferenceElement (EF de Référence). Ces deux classes constituent la pierre angulaire du code et l on peut dire d un certain point de vue que le reste de la programmation est construite autour de ces deux objets. Des informations complémentaires sur l organisation générale du logiciel peuvent être trouvées en [1]..1 Degrés De Liberté Comme le montrent la figure 1 et la figure, la classe NodeDOF de DDL aux nœuds comporte un champ Nom qui sera renseigné par l utilisateur. Les valeurs DZERO, DX, DY ou Class NodeDOF Class DOF string Name string Extra double Value double LoadValue integer ShapeRef... inheritance Class ElementDOF association Class Node double co-ordinates dynamic list of NodeDOF... Figure 1: Description succincte de la classe NodeDOF de Degrés de Liberté aux Nœuds DZ seront affectées dans le champ Extra afin de savoir s il s agit du degré lui-même ou de l une de ses dérivées (élément d Hermite). Après calculs, le champ Value prendra la valeur calculée au DDL alors que le champ LoadValue contiendra la valeur du second membre de l équation matricielle [K]{X}={F} ainsi résolue ou la valeur des réactions en ce DDL.
L index ShapeRef est utilisé pour associer une fonction de forme à ce DDL lorsque cette classe est utilisée dans la définition d Éléments Finis de Référence. Ce que nous examinerons dans le paragraphe suivant. Figure : Interface pour définir de nouveaux types de DDL. Éléments Finis de Référence Deux types d entités d Éléments Finis sont introduites : I. Les Éléments Finis Réels, II. Les Éléments Finis de Référence. Le calcul éléments finis global est mené à partir d une liste de nœuds et d éléments finis que nous appelons Éléments Finis Réels qui proviennent de la discrétisation du ou des domaines étudiés par un ou des mailleurs. Ceci conduit à un liste importante de nœuds et d éléments. Class ReferenceElement Data : Methods : Variables List ComputeShape (..) Approximation Nodes List ComputeEps (..) Geometric Nodes List ComputeSig (..) Gauss Node List ComputeK-Matix (..) Shape List... Eps List Sig List K-Matrix List... Figure 3: Classe ReferenceElement utilisée comme un support formel pour créer de nouveaux types d éléments finis C est pourquoi nous avons construit une classe RealElement aussi petite que possible. Elle contient la liste des Nœuds sur lesquels s appuie l élément réel, une référence à un Matériau et une référence à un Éléments Finis de Référence. Ainsi, la taille mémoire est préservée avec de grandes listes de petits objets alors que seuls les différents types de Matériaux et les différents types d Éléments Finis de Référence (ReferenceElement) seront instanciés. 3
En contraste à la classe RealElement, la classe, ReferenceElement (fig. 3) est importante en taille et contient toutes les définitions et les fonctions nécessaires aux calculs des matrices élémentaires des formulations variationnelles à résoudre. C est cette classe (ReferenceElement) que nous allons maintenant présenter, qui permet de se créer de nouveaux type d éléments finis. Le Générateur d Éléments Finis (fig. 4) est l interface utilisateur qui permet d en manipuler les données. Figure 4 : Menu principal du Générateur d Éléments Finis utilisé pour se créer de nouveaux types d EF Afin de guider l utilisateur dans la définition des termes à calculer, les informations à saisir pour cette classe s appuient sur une analogie structurale. La définition la plus générale proposée pour accéder à la définition du calcul de matrices élémentaires prend la forme présentée aux figures 5 et 6. NodeDOF [ K]{ NodeDOF} Eps { Sig} = dv Figure 5 : Support sémantique de l analogie structurale pour la définition de matrices élémentaires Dans cette expression qui représente un des termes de la formulation variationnelle d un problème, les termes Eps (Epsilon) sont définis par l utilisateur comme combinaison linéaire de dérivées des DDL et par extension comme combinaison des DDL eux-mêmes. Les termes Sig (Sigma) sont des combinaisons linéaires des termes Eps. Les coefficients des combinaisons linéaires sont extraits d une liste de variables qui concrètement porteront les caractéristiques des matériaux. Figure 6 : Interface pour la définition d une matrice élémentaire 4
Grâce à notre définition étendue (par rapport à la mécanique) des Eps, la matrice [K] ainsi définie rend compte tout autant de matrices de masse ou de rigidité et plus généralement des termes de formulations variationnelles faibles de problèmes linéaires. Une méthode fondamentale, bas niveau, de cette classe s occupe du calcul d une matrice [B] pour une position donnée de Eps dans l élément de référence telle que {Eps} = [B] {NodeDOF}. La matrice [B] est évaluée à chaque point de Gauss pour le calcul numérique de [K]. Par ailleurs, cette classe est aussi utilisée en post-traitement lorsque les NodeDOF ont des valeurs connues. Toutes les entités définies sont accessibles et peuvent être examinées pour conduire une analyse fine des phénomènes physiques. Ce code présente donc un intérêt majeur pour résoudre des équations qui échappent aux logiciels habituels de calculs des structures. Il s applique à des actions de recherche ou à la résolution de problèmes complexes. Un des inconvénient de notre approche est à la nécessité de procéder aux décodages de nombreuses expressions écrites en compréhension. Ceci ralentie la phase d assemblage des matrices globales. Cependant, pour des problèmes de grandes tailles, n > 100 000 DDL, cet inconvénient disparaît dans la mesure où le temps d assemblage, en n opérations, devient très vite très inférieur à la résolution, quasiment en n^3, du système. 3 Exemple Nous présentons dans cette partie un exemple de validation extrait de [] où notre approche est mise en œuvre. 3.1 Données Soit à résoudre le problème de transfert de chaleur dans la plaque suivante : Figure 7 : Plaque trouée Pour un matériau isotrope, de conductivité thermique, d d x = d =1. 4 W/m- C = y (béton), la répartition de température u à l équilibre dans la plaque est définie par l équation de Laplace : u u d + d = 0, (1) x y et par les conditions aux limites considérées. 5
Pour notre exemple, celles-ci s expriment par : u = 0 sur AD et BC (température imposée), () = 0 n sur AB et CD (isolation), (3) d =1 n sur le cercle intérieur (flux de chaleur imposé). (4) Un quart de la plaque est étudié à cause des symétries. Le domaine est représenté par quatre éléments iso-paramétriques à huit nœuds (Q8) à quatre points de Gauss. Les conditions aux limites sur le cercle intérieur seront introduites sous forme de sollicitations concentrées d amplitude : π π π aux nœuds 1 et 17, au nœud 9, aux nœuds 6 et 14. 4 1 6 3. Création d un élément Q8 Laplace Selon la méthode Galerkine, et après intégration par partie, la formulation variationnelle faible du problème (1) s écrit, δu, une fonction test cinématiquement admissible : A δu δu d + d dxdy = x x y y S δu d ds. (5) n Sous cette forme, le premier membre de l équation (5) s identifie à la formule générale présentée figure 5 et conduit à poser : E11 = T.DX (dérivée de T par rapport à x) E = T.DY (dérivée de T par rapport à y) SIG11 = d E11 SIG = d E où T est le nom que nous donnons aux températures aux nœuds (fig. ). Ces entités sont directement saisies via l interface de la figure 6 de définition de matrice élémentaire. Le second membre de (5) qui correspond aux chargements, ne nécessite pas la création d un élément fini dans la mesure où les conditions aux limites seront directement introduites aux nœuds. Figure 8 : Élément Q8 Par ailleurs les informations relatives aux fonctions de forme, aux fonctions d approximation, à la position des nœuds géométriques, à la position des nœuds portant les inconnues et aux points de Gauss, et exprimées dans un repère de référence (fig.8), sont renseignées. 6
3. Validation L élément ainsi construit est testé sur le maillage de la figure 7. Les valeurs obtenues, figure 9, sont rigoureusement identiques à [] et nous visualisons figure 10 le champ de température dans le quart de plaque. Figure 9 : Température aux nœuds Figure 10 : Champ de température 4 Conclusion L implémentation de ce code et de son générateur d éléments finis a été rendue possible parce que les langages objets permettent de manipuler des abstractions de haut niveau. La définition d un nouveau type d élément fini s effectue à partir de la formulation faible du problème. Ce code trouve tout son intérêt pour la pédagogie, la recherche, et la solution de problèmes industriels qui échappent aux codes de calculs standards. Nous travaillons actuellement à la communication entre outils afin de piloter d importantes chaînes de calculs et nous étudions l applicabilité de notre approche à la méthode des éléments finis frontières. Références [1] P. Lamary, I. Tawfiq, Y. Chevalier. 000. Design of an Object Oriented software for vibroacoustic problems Formal FEM -. 3thd International Conference on Integrated Design and Manufacturing in Mechanical Engineering IDMME 000 16-19 May 000, Montreal. [] G. Dhatt, G. Touzot. 1984. Une présentation de la méthode des Éléments finis. Maloine S.A. Éditeur, Paris. 7