Skip to content

Shashb91/Hexagonal-MEF

Repository files navigation

Hexagonal-MEF

Ce dépôt contient une implémentation numérique permettant de tracer la courbe de dispersion d’ondes de compression et de cisaillement à travers un réseau hexagonal périodique.
Le travail a été réalisé dans le cadre d’une alternance de recherche au Laboratoire de Mécanique et d’Acoustique (LMA), durant le cycle d’ingénieur de Centrale Marseille 2024-2025.


Objectif du projet

L’objectif est de comprendre et de modéliser la propagation d’ondes dans un matériau de type nid-d’abeilles, en utilisant :

  • un maillage hexagonal périodique,
  • la théorie des poutres d’Euler-Bernoulli,
  • la méthode des éléments finis avec conditions de Bloch,
  • le calcul des valeurs propres pour obtenir la relation dispersion-fréquence,
  • l’extraction et le tracé des courbes de dispersion dans l’espace des vecteurs d’onde.

Contenu du dépôt

  • /maillage/ — Scripts MATLAB de génération du maillage
  • /matrices/ — Scripts MATLAB d'assemblage des matrices et des calculs des matrices élémentaires
  • /resolution/ — Resolution du problème 2D pour une cellule hexagonal
  • /resolution_random/ — Resolution du problème 2D dans le cas d'un cœur hexagonal randomisé (Statistics and Machine Learning Toolbox nécessaire)
  • /resolution_regis/ — Resolution du problème 1D, code extrait du répertoire de Régis Cottereau
  • /python/ — Scripts Python de génération du maillage et de conversion vers GMSH, des matrices de raideur et de masse (compression ou cisaillement ou compression/cisaillement).
  • README.md — Présentation générale du projet (ce fichier).
  • Rapport_d_Alternance_Recherche.pdf — Rapport de l'Alternance Recherche

Contexte scientifique

L’étude du sujet a été encadrée par Régis Cottereau et Lúcio Corrêa.
La structure générale de la résolution s’inspire fortement du code 1D fourni par Régis Cottereau, calculant la courbe de dispersion dans le cas d’un réseau linéaire. Le présent travail étend cette approche au cas d’un réseau 2D hexagonal, introduisant :

  • un maillage hexagonal régulier ou randomisé interne généré automatiquement,
  • une gestion rigoureuse des degrés de liberté (3 par nœud : déplacement axial, déplacement transversal, rotation),
  • l’utilisation de conditions périodiques généralisées (Floquet–Bloch) en 2D,
  • un tri systématique des arêtes pour appliquer correctement les conditions aux quatre frontières,
  • la construction des matrices périodisées et de l’opérateur de réduction.
image

Fonctionnement général

  1. Génération du maillage hexagonal
    Coordonnées des nœuds et liste des connectivités.

  2. Construction des matrices élémentaires
    Matrices de rigidité et de masse selon la théorie Euler-Bernoulli.

  3. Assemblage global
    Construction des matrices globales ( K ) et ( M ).

  4. Conditions de Bloch 2D
    Application des phases selon un vecteur d’onde ((k_x, k_y)).

  5. Résolution du problème propre généralisé
    Extraction des pulsations (\omega(k)).

  6. Tracé de la courbe de dispersion
    Parcours du chemin dans l’espace réciproque et affichage des branches. Regroupement des modes par la méthode Modal Assurance Criterion (MAC).


Prérequis

  • MATLAB R2022a ou plus récent
  • Toolboxes standard (sparse matrices, eigs…)
  • Aucun package externe requis

About

Code MATLAB permettant de tracer la courbe de dispersion dans un milieu hexagonal, avec des poutres et des éléments finis.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors