Aller au contenu

Système de numérotation des éléments et bibliothèque de fonctions de forme

La fonction de forme \(N_\alpha^e(\boldsymbol{r})\) introduite dans Fonctions de forme et approximation par éléments finis possède une forme spécifique pour chaque type d’élément. Ce chapitre classe les groupes d’éléments fournis par FrontISTR à l’aide de numéros de type d’élément à trois chiffres et présente l’interface de la bibliothèque de fonctions de forme permettant de traiter uniformément chaque élément. Les systèmes de coordonnées naturelles et les fonctions de forme propres aux éléments solides tridimensionnels, ainsi que la conversion de l’ordre des nœuds intermédiaires pour les éléments quadratiques, sont décrits dans Fonctions de forme des éléments solides tridimensionnels, tandis que les recommandations pour le choix des types d’éléments sont fournies dans Bibliothèque d’éléments (fonctions).

Classification des éléments et règles de dénomination

Les types d’éléments FrontISTR sont identifiés par des numéros à trois chiffres. La signification de chaque chiffre est la suivante.

  • Premier chiffre (groupe d’éléments) : 1 = élément linéique/treillis, 2 = élément plan, 3 = élément solide, 5 = élément d’interface, 6 = élément de poutre, 7 = élément de coque.
  • Deuxième chiffre (forme de base) : distingue la forme géométrique au sein du groupe d’éléments (triangle, quadrilatère, tétraèdre, prisme ou hexaèdre).
  • Troisième chiffre (ordre d’interpolation) : 1 = premier ordre (nœuds de sommet uniquement), 2 = second ordre (avec nœuds intermédiaires). À titre d’exception, l’élément de treillis à deux nœuds porte le numéro 301.

Les éléments disponibles sont répertoriés par groupe d’éléments dans le tableau ci-dessous.

Groupe d’éléments Type d’élément Nombre de nœuds Description
Élément linéique 111 2 Élément de liaison à 2 nœuds (non disponible pour l’analyse des contraintes)
112 3 Élément de liaison à 3 nœuds (non disponible pour l’analyse des contraintes)
Élément plan 231 3 Élément triangulaire linéaire à 3 nœuds
232 6 Élément triangulaire quadratique à 6 nœuds
241 4 Élément quadrilatéral linéaire à 4 nœuds
242 8 Élément quadrilatéral quadratique à 8 nœuds (famille de sérendipité)
Élément solide 301 2 Élément de treillis à 2 nœuds
341 4 Élément tétraédrique linéaire à 4 nœuds
342 10 Élément tétraédrique quadratique à 10 nœuds
351 6 Élément prismatique linéaire à 6 nœuds
352 15 Élément prismatique quadratique à 15 nœuds
361 8 Élément hexaédrique linéaire à 8 nœuds
362 20 Élément hexaédrique quadratique à 20 nœuds (famille de sérendipité)
Élément d’interface 541 4×2 Élément à face quadrilatérale linéaire à 4 nœuds (non disponible pour l’analyse des contraintes)
542 8×2 Élément à face quadrilatérale quadratique à 8 nœuds (non disponible pour l’analyse des contraintes)
Élément de poutre 611 2 Élément de poutre de Bernoulli-Euler à 2 nœuds (6 DDL par nœud)
641 2×2 Élément de poutre de Bernoulli-Euler à 2 nœuds (3 DDL par nœud, pour DDL mixtes)
Élément de coque 731 3 Élément de coque triangulaire MITC3 (6 DDL par nœud)
741 4 Élément de coque quadrilatéral MITC4 (6 DDL par nœud)
743 9 Élément de coque quadrilatéral MITC9 (6 DDL par nœud)
761 3×2 Élément de coque triangulaire MITC3 (3 DDL par nœud, pour DDL mixtes)
781 4×2 Élément de coque quadrilatéral MITC4 (3 DDL par nœud, pour DDL mixtes)

L’élément hexaédrique linéaire 361 possède plusieurs formulations (intégration complète, mode incompatible, B-bar et F-bar), sélectionnées via le contrôle de l’analyse. Pour plus de détails, voir Formulations avancées des éléments.

L’élément de poutre 641 et les éléments de coque 761/781 sont des formulations permettant de relier, aux mêmes nœuds, des éléments structuraux à 6 degrés de liberté à des éléments solides à 3 degrés de liberté ; un nœud structural est représenté par deux nœuds à 3 DDL. Les formulations elles-mêmes sont identiques aux versions correspondantes à 6 DDL (611, 731 et 741).

Bibliothèque de fonctions de forme

Les routines de calcul d’élément (construction de la matrice de rigidité et du vecteur des forces internes) ne disposent pas de routines distinctes pour chaque type d’élément. Elles appellent à la place la bibliothèque de fonctions de forme via une interface unifiée prenant comme argument le numéro de type d’élément fetype. Le module elementInfo (fistr1/src/lib/element/element.f90) fournit les fonctions suivantes.

  • NumOfQuadPoints(fetype) : renvoie le nombre de points d’intégration \(n_q\) du type d’élément.
  • getQuadPoint(fetype, np, pos) : renvoie, pour le point d’intégration \(i\), les coordonnées naturelles \(\boldsymbol{r}_i\).
  • getWeight(fetype, np) : renvoie, pour le point d’intégration \(i\), le poids \(w_i\).
  • getShapeFunc(fetype, r, N) : aux coordonnées naturelles \(\boldsymbol{r}\), renvoie les valeurs des fonctions de forme \(N_\alpha^e(\boldsymbol{r})\).
  • getShapeDeriv(fetype, r, dN) : renvoie les dérivées par rapport aux coordonnées naturelles \(\partial N_\alpha^e/\partial \boldsymbol{r}\) des fonctions de forme.
  • getGlobalDeriv(fetype, n_e, r, X^e, J, dN_x) : à partir des coordonnées nodales de l’élément \(\boldsymbol{X}^e\), renvoie les dérivées par rapport aux coordonnées physiques \(\partial N_\alpha^e/\partial \boldsymbol{x}\) et le déterminant jacobien \(J\).
  • getNumberOfSubface(fetype), getSubFace(fetype, k, ...) : renvoient le nombre de faces frontières de l’élément et les numéros des nœuds constituant chaque face. Elles sont utilisées pour construire les charges surfaciques et les surfaces de contact.

Chaque fonction effectue en interne une branche selon le numéro de type d’élément et appelle les sous-routines de fonction de forme et de dérivée de fonction de forme des modules de niveau inférieur fournis pour chaque type d’élément (tet4n.f90, tet10n.f90, prism6n.f90, prism15n.f90, hex8n.f90, hex20n.f90, tri3n.f90, tri6n.f90, quad4n.f90, quad8n.f90, quad9n.f90, line2n.f90, line3n.f90). Les tables numériques des coordonnées et des poids des points d’intégration sont regroupées dans quadrature.f90. Pour ajouter un nouveau type d’élément, implémentez le module de niveau inférieur correspondant et ajoutez les branches associées dans chaque fonction de elementInfo.

Conversion de l’ordre des nœuds intermédiaires des éléments triangulaires quadratiques

Pour l’élément triangulaire quadratique 232, l’ordre des nœuds intermédiaires diffère entre le format d’entrée de maillage HEC-MW (qui ordonne les nœuds de sommet autour de l’élément, puis les nœuds intermédiaires le long des arêtes 1-2, 2-3, …) et le format interne de FrontISTR supposé par les fonctions de forme de la bibliothèque d’éléments. La différence entre les deux formats est résolue immédiatement après le chargement du maillage par hecmw2fstr_mesh_conv (fistr1/src/common/hecmw2fstr_mesh_conv.f90 et hecmw2fstr_connect_conv.c), qui réordonne les six nœuds en \(\{1,2,3,6,4,5\}\) conformément à la table de conversion Table232. Comme la conversion est effectuée directement sur le tableau qui stocke la connectivité des éléments, tous les appels ultérieurs à la bibliothèque d’éléments utilisent l’ordre interne des nœuds de FrontISTR. Lors de la sortie des résultats, la conversion inverse fstr2hecmw_mesh_conv rétablit le format HEC-MW avant l’écriture ; les utilisateurs n’ont donc à connaître que le format HEC-MW pour l’entrée comme pour la sortie.

Les éléments solides tridimensionnels quadratiques 342 (tétraédrique) et 352 (prismatique) font l’objet de conversions automatiques similaires, tandis que 362 (hexaédrique quadratique) ne nécessite aucune conversion. Voir Fonctions de forme des éléments solides tridimensionnels pour leur traitement. Pour l’élément quadrilatéral plan quadratique 242 et l’élément d’interface 542, aucune conversion n’est effectuée car l’ordre des nœuds intermédiaires est identique dans le format d’entrée HEC-MW et dans le format interne.

Sujets connexes