I. Introduction▲
Cet article présente la conception du mailleur en triangles du logiciel PFEM2D (solveur éléments finis 2D). Ce mailleur utilise un algorithme de triangulation de Delaunay classique, auquel s'ajoute quelques fonctionnalités telles que l'optimisation de positionnement de nœud, les inversions de diagonales, etc.
Ce mailleur va nous permettre de discrétiser en éléments triangulaires un domaine 2D fermé par une frontière définie à partir d'éléments 1D tels que segments et arcs de cercle. Le maillage de la frontière ne sera abordé que de manière très succincte, car il ne présente pas de difficulté particulière.
II. Précédents articles▲
Ce tutoriel s'intègre dans une série d'articles basé sur le développement d'un logiciel de modélisation éléments finis 2D nommé PFEM2D.
Le précédent article, PFEM2D - Panneau graphique personnalisé en Java2D, a permis de mettre en place un environnement graphique que nous allons utiliser pour l'interface du programme PFEM2D. La définition du domaine 2D sera basé sur les éléments graphiques utilisés au sein de cet environnement.
Nous allons donc préparer cet article en téléchargeant le code source de l'article précédent à cette adresse. Ce code source sert de base pour cet article.
III. Présentation de l'algorithme général▲
L'algorithme général du mailleur triangle est le suivant :
- maillage de la frontière du domaine (segments et arcs de cercle)
- maillage de l'intérieur du domaine (triangulation de Delaunay)
- optimisation du positionnement des nœuds du domaine (hors frontière) et optimisation de la forme des éléments triangles
IV. Un peu de vocabulaire▲
Avant d'aller plus loin dans les explications, nous allons donner les définitions des termes utilisés dans le cadre de la modélisation par éléments finis :
- domaine : ici, il s'agit d'une zone fermée de l'espace 2D. Cette zone est délimitée par sa frontière, qui est l'ensemble jointif de courbes (segment, arc de cercle, cercle), ou l'ensemble d'ensemble jointif de courbes (domaine percé par exemple), sans intersection ;
- nœud : point de l'espace 2D, défini par un identifiant, et par ses coordonnées x et y ;
- élément : ici, il ne s'agira que de segment et de triangle. C'est l'entité de discrétisation de l'espace, c'est-à-dire que nous allons discrétiser la frontière du domaine en une suite de segments, et découper la surface du domaine en un ensemble de triangles, qui formeront un pavage de l'espace délimité par le domaine ;
- maillage : ensemble des éléments définissant le pavage du domaine ;
V. Maillage de la frontière du domaine▲
Le maillage de la frontière ne pose pas de difficulté technique. Tous les objets géométriques sont discrétisés en une série de segments. Ces segments approximent au mieux (suivant les paramètres de maillage que l'on a définis) la géométrie de l'objet support.
La discrétisation d'un segment de droite se fait de manière exacte en divisant ce segment par autant d'éléments que souhaité. La discrétisation d'un arc de cercle par contre fait apparaître une approximation de la courbure. Plus le nombre d'éléments sera élevé, meilleure sera l'approximation de la courbure. Attention toutefois à ne pas tomber dans l'excès, le calcul ne nécessite pas obligatoirement une approximation parfaite !
Pour le maillage de la frontière, le programme parcourt tous les objets définissant le modèle (disponible dans l'objet PFEM2DModel courant), et les maille individuellement. On notera que les points sont automatiquement maillés en nœuds, et qu'un point commun entre deux objets géométriques est maillé en un unique nœud commun aux deux maillages des objets. Ainsi, le maillage de la frontière conserve la connectivité des objets.
VI. Triangulation de Delaunay du domaine▲
Optimisation de la forme des éléments triangles▲
VIII. Optimisation du positionnement des nœuds▲
IX. Conclusion▲
Ce tutoriel
Les sources de cet article sont disponibles en suivant ce lien : src_PlegatFem2D_GUIPanel.zipsrc_PlegatFem2D_GUIPanel.zip (miroirmiroir).
Les icônes utilisées dans l'application exemple sont incluses dans les sources. Elles peuvent également être téléchargées sur le site www.fatcow.com (sous licence CC).
X. Remerciements▲
Merci à XXX et YYY pour leurs commentaires, à ZZZ pour sa relecture orthographique, ainsi qu'à djibrildjibril pour son aide sur le KitOOoDVP.