Une approche tensorielle à objets pour la discrétisation EF en calcul de structure
R. SAADa, D. EYHERAMENDYb
a. Laboratoire de Mécanique et d’Acoustique (LMA), CNRS UPR 7051, Marseille, France
b. Laboratoire de Mécanique et d’Acoustique (LMA), CNRS UPR 7051, Ecole Centrale Marseille, France
Résumé :
Les problèmes qui se posent aujourd'hui en mécanique numérique et domaines connexes sont complexes, et impliquent de plus en plus souvent plusieurs physiques à différentes échelles de temps et d’espace. Leur traitement numérique est en général long et difficile d’où l’intérêt d’avoir accès à des méthodes et outils facilitant l’intégration de nouveaux modèles physiques dans les outils de simulation. Dans cet article, nous proposons un cadre de calcul formel à objets pour la dérivation de formulations éléments finis et l’intégration automatique des formes élémentaires dans un code de calcul éléments finis. La méthode est basée sur la dérivation des formes discrètes d’un problème variationnel, ici dans un contexte éléments finis, et leur intégration automatique dans un code de calcul.
Abstract :
The problems occurring today in computational mechanics and related domains are complex, and may involve several physics at different time and space scales. The numerical treatment of a complex problems is in general though and time consuming. In this context, the interest to develop methods and tools to accelerate the integration of new formulations into simulation tools is obvious. In this paper, we present a symbolic object-oriented framework for the derivation of finite elements formulations, and the automatic integration of the elemental contributions description into a finite element code. The method is based on the symbolic derivation of the elemental contributions of the variational statement and their automatic integration into a finite element code.
Mots clefs:
Eléments finis, orienté objet, analyse tensorielle, discrétisation automatique d’EDP.1 Introduction
Jusque dans les années 90, les programmes éléments finis étaient constitués de plusieurs milliers de lignes de code généralement écrit en FORTRAN. Les problèmes d'ingénierie qui sont résolus aujourd'hui sont de plus en plus complexes. Il peut s'agir de traiter plusieurs physiques, et/ou plusieurs échelles d'espace et de temps...
Dans les années 90, l'application de la conception orientée objet s'est avérée être très efficace pour le développement de programmes flexibles pour le développement à grande échelle dans un contexte industriel.
Parmi les pionniers, Fenves [1] a décrit les avantages de la programmation orientée-objet dans le cadre des éléments finis. Depuis cette origine, la programmation orientée objet a été largement appliquée à tous les domaines du calcul en mécanique (voir par exemple Mackerle [2] ou Dubois-Pélerin [6] et références incluses). Assez récemment, des auteurs ont proposé différentes implémentations basées sur des approches à objets avancées (Java ou C#) dans différents domaines de la mécanique : Vanderheyden [10] et Riley [11] en mécanique des fluides, Nikishkov [12] en mécanique de la rupture, Eyheramendy [13] en calcul parallèle de dynamique de fluide et en mécanique des solides, Baudel [16] en électromagnétisme, Hauser [17] ou Mackie [8] et Heng [9] pour le calcul parallèle en mécanique. Notez que de nombreux auteurs ont préconisé l'utilisation de Javaet ont comparé ses performances à d’autres langages de programmation (langage C):
Nikishkov, Bull [18], Hauser [17], Eyheramendy [14]. Toutefois, ces codes traditionnels de calcul, y compris lesoutilsindustrielsn'offrentpastoujourstoutelaflexibilitépours’attaqueraux défis des problèmes multi-
physiques et multi-échelles qui se posent dans l'industrie et la recherche. Afin d’aider au développement
d’outils de simulation, de nouvelles approches basées sur la calcul symbolique ont été proposées afin d’automatiser l'élaboration de modèles éléments finis, y compris pour la partie de discrétisation. Ces
approches consistent généralement à construire automatiquement les matrices élémentaires et à les intégrer dans des codes plus classiques ou dans des bibliothèques d'éléments finis. Les exemples les plus a vancés sont : Eyheramendy [3], Logg [4], Korelc [5]. D’autre part, le code Comsol Multiphysics suit en quelque
sorte une stratégie similaire, mais les algorithmes liés à la résolution éléments finis restent imposés pour la résolution. Il est quasi indispensable d’avoir accès à tous les niveaux de l’algorithmique pour résoudre de
nouveaux problèmes. Dans ce travail, nous proposons une approche à objets pour développer des schémas de discrétisation (ici éléments finis) de formes variationnelles, permettant de gérer les formulations couplées en mécanique.L’originalitédu travail résidedansl’utilisationd’un cadre global basé sur le calcul tensoriel pour élaborer symboliquement les matrices élémentaires, et de son intégration dans un environnement à objets. La dernière phase de l’approche consiste à intégrer automatiquement les contributions élémentaires dans un
code de calcul classique. Dans le paragraphe 2, nous présentons une approche mathématique générique de dérivation du modèle éléments finis. Dans le paragraphe 3, nous décrivons le modèle orienté objet intégrant l’approchedéveloppée. Dans le paragraphe 4, leschémad’intégrationautomatiquedesformesélémentaires
obtenues sous forme symbolique est décrit. Dans le paragraphe 5, l'approche est illustrée sur l’élasticité
linéaire en milieu incompressible.
2 Une approche tensorielle pour la discrétisation par éléments finis
Soit un espace de fonctions, on considère les formes et défini sur le produit des espaces et on considère le problème variationnel multiphysique suivant:
Où désigne le nombre de termes de la fonctionnelle , le è me terme de cette fonctionnelle, la fonction test correspondant au ème terme, désigne le nombre de termes de la fonctionnelle , le è me terme de cette fonctionnelle et la fonction test dans le ème terme.
On peut ramener la forme à une forme bilinéaire et la forme à une forme linéaire (par linéarisation si la formulationn’estpaslinéaire) donc le problème devient :
est une forme bilinéaire, est une forme linéaire
La méthode des éléments finis appliquée à l'équation (1) consiste à remplacer parunepaired’espaces
construits à partir de fonctions continues par morceau.
On considère les approximations éléments finis classiques sur un élément :
où sontlesfonctionsd’interpolation sur l’élément. On peut donc écrire pour chacun des termes variationnels de (1) :
Où et sont respectivement les vecteurs élémentaires des inconnues nodales et des inconnues virtuelles
On peut montrer que se calcule explicitement en considérant les produits des champs (exprimés sous forme tensorielle) qui compose le terme variationnel. Il peut s’exprimer sous la forme suivante :
avec , représente le nombre de fonctions de base dans la discrétisation du champ s, est le nombre de facteurs dans la forme , est l’operateur différentiel appliqué sur le champ, représente l’ensembledesindicesdutermeautrequ’unchamptestouunchampsolution, correspond aux degrés de liberté, correspond au système de coordonnées de bases et représente l’ensemble des indices dans la fonction discrétisée. Cette forme est assez générale pour représenter tout type de formes variationnelles (forme multilinéaire ou forme non linéaire) dont les termes de base sont des champs tensoriels.
Remarque : L’approche tensorielle sur laquelle est basé le modèle est valide quel que soit le système de coordonnées choisi à condition que la base de travail soit orthonormée. Il suffit de donner les expressions des opérateurs différentiels dans le système de coordonnées choisi.
3 Une approche orientée objet pour le traitement symbolique des éléments finis
Dans ce paragraphe, nous présentons une hiérarchie des operateurs et nous décrivons les objets nécessaires aux manipulations symboliques pour la méthode des éléments finis. Tout d'abord, nous décrivons les classes nécessaires pour représenter tout type d'expression. Des classes supplémentaires sont nécessaires pour représenter les opérateurs différentiels (appliqué aux tenseurs) et les dérivées partielles appliquées à une fonction. La classe Tensor estlareprésentationmathématiqued’untenseur.Laméthodedediscrétisationpar
éléments finis est programmée dans la classe FEDiscretization.
Figure1:Hiérarchiedesclassesdel’environnementsymbolique
La hiérarchie des classes qui est donné dans la figure 1 nous permet de représenter tout type d'expression. La classe Field représente un champ. Il peut être de type scalaire, vectoriel ou tensoriel. Un opérateur de types dérivés partielles peut être appliqué à ce champ. La classe Integral représente une intégrale. Elle est définie sur un domaine et possède un intégrant. Toutes les grandeurs numériques sont représentées dans la classe Fraction. Les expressions sont donc des sommes de produits gérées dans un arbre binaire représenté dans les classes Sum et Product. La classe Equal permetlareprésentationd’uneégalitéd’expressions,etdoncd'une
équation. La classe Tensor est la représentation mathématique des tenseurs. Elle contient les composantes du tenseur qui sont des expressions (arbre binaire de champs). Les opérations tensorielles du base sont effectuées dans cette classe: produit tensoriel, produit contracté, somme… La classe FEDiscretization regroupe toutes les opérations nécessaires à écrire le schéma de discrétisation par éléments finis. Ceci est fait pour les fonctions solutions et tests. La construction du tenseur est générique. Dans ce travail, seules les expressions des opérateursdifférentielsencoordonnéescartésiennessontprogrammées,mais l’extensionà
d’autressystèmesdecoordonnées serait naturelle (par exemple en dérivant la classe FEDiscretisation pour chacun des systèmes de coordonnées).
Operator
UnaryOperator Field Integral Fraction
DifferentialOperator PartialDerivative BinaryOperator
Product Sum Equal
4 Génération automatique de contributions élémentaire dans un environnement à objets
La classe CodeCompiler gèrel’intégrationdesformesélémentairesdanslecodedecalculFEMJava (voir Eyheramendy [14]). Les formes symboliques obtenues sont introduites dans un code élément finis classique, enrespectant,d’unepart,lessyntaxesdulangagedeprogrammation,etd’autrepart,le schéma algorithmique du code (voir Figure 2). A ce stade, seules les contributions élémentaires sont intégrées dans le code. On pourrait très bien imaginer étendre la génération de code à la partie algorithme de la résolution du problème.
Figure 2 : Intégration des formes élémentaires dans un code Eléments finis
5 Application à une formulation de l’élasticité linéaire pour un milieu incompressible
5.1 Approche tensorielle et approche symbolique
Onconsidèreleproblèmed’élasticitélinéairepourunmilieuincompressible:
Trouver déplacement et paramètre pression avec tels que :
+ Conditions de bords
On cherche la solution approchée du problème sous la forme suivante (formulation de Galerkin stabilisée par ajout de termes de type moindres-carrés -voir Franca [20]):
Où est un paramètre de stabilisation numérique.
Atitred’illustration,onconsidèrele premier terme de la formulation :
Lamatriceélémentairedelarelation(2)s’écrit . Danslecadredel’algèbre
tensorielle classique, la convention d’Einstein s’applique pour les indices et . La matrice élémentaire
Après évaluation symbolique, on obtient la matrice élémentaire dont certains termes sont explicités dans la Figure 3. Celle-ci correspond bien à la forme donnée ci-dessus.
1,1=[2.0*mu*(dN1_dx1*dN1_dx1 + 0.5*(dN1_dx2)*0.5*(dN1_dx2) + 0.5*(dN1_dx3)*0.5*(dN1_dx3) + 0.5*(dN1_dx2)*0.5*(dN1_dx2) + 0.5*(dN1_dx3)*0.5*(dN1_dx3))];
1,2=[2.0*mu*(0.5*(dN1_dx2)*0.5*(dN1_dx1) + 0.5*(dN1_dx2)*0.5*(dN1_dx1))];
1,23=[2.0*mu*(0.5*(dN1_dx2)*0.5*(dN8_dx1) + 0.5*(dN1_dx2)*0.5*(dN8_dx1))];
1,24=[2.0*mu*(0.5*(dN1_dx3)*0.5*(dN8_dx1) + 0.5*(dN1_dx3)*0.5*(dN8_dx1))];
24,1=[2.0*mu*(0.5*(dN8_dx1)*0.5*(dN1_dx3) + 0.5*(dN8_dx1)*0.5*(dN1_dx3))];
24,2=[2.0*mu*(0.5*(dN8_dx2)*0.5*(dN1_dx3) + 0.5*(dN8_dx2)*0.5*(dN1_dx3))];
24,23=[2.0*mu*(0.5*(dN8_dx2)*0.5*(dN8_dx3) + 0.5*(dN8_dx2)*0.5*(dN8_dx3))];
24,24=[2.0*mu*(0.5*(dN8_dx1)*0.5*(dN8_dx1) + 0.5*(dN8_dx2)*0.5*(dN8_dx2) + 0.5*(dN8_dx1)*0.5*(dN8_dx1) + 0.5*(dN8_dx2)*0.5*(dN8_dx2) + dN8_dx3*dN8_dx3)]]
Figure 3 : Vue partielle des termes de la matrice sous forme symbolique 5.2 Application au cisaille ment d’un bloc d’élastomère
On considèrel’exempled’unblocenélastomèreencastrédansunmassifrigide cisaillé sur sa surface supérieure (Figure 4). Le coefficient de Lamé est pris égal à 1,25.Les solutions en déplacement et pression sont données dans les figures 5 et 6.
Figure 4 : Détails du problème Figure 5 : Déformations du solide cisaillé Figure 6 : Isopressions
6 Conclusion
Dans cet article, nous avons présenté les principes d'un cadre global pour générer sous forme symbolique des formes élémentaires de la méthode des éléments finis dans un environnement à objets. Les principes de discrétisation éléments finis basés sur l’analyse tensorielle sont décrits. Le cadre présenté est structuré au seind'unenvironnementorientéobjet.D’autrestypes schémas de discrétisation pourraient être développés en utilisant une approche similaire. Leschémad’intégrationautomatique des formes élémentaires dans un code éléments finis est présenté. L'approche est illustrée sur l'exemple formulation variationnelle pour les équations de l’élasticité pour un milieu incompressible. Ce problème mixte permet de dire que l’approche
peut être appliqué à des problèmes multi-champs (problèmes couplés). La formulation est intégrée à un code
élément fini traditionnel écrit en Java [19]. Cette approche peutêtreétendueà unensemble d’algorithmes
numériques nécessaires pour obtenir un outil de simulation. Nous projetons d’étendre à court terme cette
approche au cadre Lagrangien. Ce type d'approche vise à définir un concept de niveau d'abstraction pour automatiser le développement d’outils de calcul correspondant à un problème donné. Cette approche générique ouvre de nouvelles voies dans la conception de codes basés sur les approches mathématiques et non plus sur de simples applications.
References
[1] G.L. Fenves, “Object-Oriented programming for engineering software development”, Engineering with Computer, 6, 1-15, 1990.
[2] J. Mackerle, “Object-oriented programming in FEM and BEM: a bibliography (1990-2003)”,
Advances in Engineering Software, 35, 325-336, 2004.
[3] D. Eyheramendy, Th. Zimmermann, “Object-oriented finite elements: III. Theory and application of automaticprogramming”,Comput. Methods Appl. Mech. Engrg., 154, 41- 68, 1998.
[4] A.Logg,“AutomatingtheFiniteElementMethod”, Arch Comput Methods Eng., 14, 93-138, 2007.
[5] J. Korelc, “Multi-language and Multi-environment Generation of Nonlinear Finite Element Codes”,
Engineering with Computers, 18, 312-327, 2002.
[6] Y. Dubois-Pelerin and Th. Zimmermann, “Object-oriented finite element programming: III – An efficientimplementationinC++”,ComputerMethodsAppl.Mech. Eng., 108(2), 165-183, 1993.
[7] G.P.Nikishkov, “Object-oriented design of a finite element code in Java”, Computer Modeling in
Engng and Sciences, 11, 81-90, 2006.
[8] R.I.Mackie,“UsingObjectstohandlecomplexityinFiniteElementSoftware”,Eng.withcomputers,
13, 99-111, 1997.
[9] B.C.P.HengandR.I.Mackie,“DesignPatternsinObject-OrientedFiniteElementProgramming”, in
Proceedings of the Fifth International Conference on Engineering Computational Technology, B.H.V.
Topping, G. Montero and R. Montenegro, (Editors), Civil-Comp Press, United Kingdom, 2006.
[10] W.B. VanderHeyden, E.D. Dendy and N.T. Padial-Collins, “CartaBlanca-a pure-Java, component- based systems simulation tool for coupled nonlinear physics on unstructured grids-an update”,
Concurrency and Computation: Practice and Experience, 15, 431-458, 2003.
[11] C.J. Riley, S. Chatterjee and R. Biswas, “High-performance Java codes for computational fluid dynamics”,ConcurrencyandComputation: Practice and Experience 15, 395-415, 2003.
[12] G.P.NikishkovandH.Kanda,“ThedevelopmentofaJavaengineeringapplicationforhigher-order asymptotic analysis of crack-tipfields”,AdvancesinEngineeringSoftware,30,469-477, 1999.
[13] D. Eyheramendy, “Object-oriented parallel CFD with JAVA”, 15th International Conference on Parallel Computational Fluid Dynamics, Eds. Chetverushkin, Ecer, Satofuka, Périaux, Fox, Ed.
Elsevier, 409-416, 2003.
[14] D. Eyheramendy and F. Oudin, Object-oriented finite elements: From Smalltalk to Java, In Trends in Engineering Computational Technology Eds. M. Papadrakakis and B.H.V. Topping, ©Saxe-Cobourg Publications, Chap. 2, (2008) pp. 17-40.
[15] R. Saad and D. Eyheramendy, An object-oriented framework for automated computer-aided finite element derivation, ECT 2010, 14-17 Sept. 2010, Valencia, Spain.
[16] L.Baduel,F.Baude,D.Caromel,C.Delbé,N.Gama,S.ElKasmiandS.Lanteri,“Aparallelobject- oriented application for 3-Delectromagnetism”,ECCOMAS,Jyväskylä,Finland2004.
[17] J. Häuser,T.Ludewig,R.D.Williams,R.Winkelmann,T. Gollnick,S.BrunettandJ.Muylaert,“A
test suite for high-performanceparallelJava”,AdvancesinEngineeringSoftware,31,687-696, 2000.
[18] J.M.Bull,L.A.Schmith,L.PottageandR.Freeman,“Benchmarking Java against C and Fortran for Scientific Applications”, Joint ACM JavaGrande – ISCOPE 2001 Conference, Stanford Universtity, June 2-4, 2001.
[19] D. Eyheramendy, R. Saad et F. Oudin “Advanced object-oriented paradigms for parallel computational mechanics”, Proceedings of the 2nd International Conference on Parallel, Distributed, Grid and Cloud Computing for Engineering, B.H.V. Topping, J.M. Adam, F.J. Pallarés, R. Bru and M.L. Romero, (Editors), Civil-Comp Press, Stirlingshire, Scotland, 2011.
[20] L.P. Francaand T.J.R. Hughes, “Two classes of mixed finite element methods”, Comput. Methods