Matlab : Conversion éléments T3 vers T6
Répondre à la discussion
Affichage des résultats 1 à 6 sur 6

Matlab : Conversion éléments T3 vers T6



  1. #1
    Fouch

    Matlab : Conversion éléments T3 vers T6


    ------

    Bonjour à tous,

    Je sollicite votre aide pour trouver un code Matlab permettant de convertir des éléments triangulaires de type T3 (3 noeuds) vers T6 (6 noeuds). Malgré 2 heures de recherches sous Google en Français et en Anglais, je ne trouve pas mon bonheur.
    J'utilise actuellement Distmesh mais celui-ci ne génere que des maillages avec des triangles T3.

    Merci d'avance !

    -----

  2. #2
    Paraboloide_Hyperbolique

    Re : Matlab : Conversion éléments T3 vers T6

    Bonjour,

    Par coïncidence, je suis moi-même en train de regarder le code de "distmesh" pour une autre application (remaillage d'une surface à la géométrie complexe). Je suis donc en mesure de vous répondre.

    "distmesh" retourne:

    -) Une liste de n vertex sous forme d'une matrice p de taille (n x 3) ou (n x 2) contenant les coordonnées des vertex le long de chaque ligne.
    -) Une liste de nt triangles sous forme d'une matrice t de taille (nt x 3) listant les index des vertex pour chaque triangle de type t3; chaque index pointant vers un vertex formant un sommet d'un triangle.

    Si vous souhaitez des éléments t6 à partir de ces triangles t3, une manière de faire est:

    -) Pour chaque triangle t3 calculer trois vertex v_sup1, v_sup2, v_sup3 supplémentaires qui seront placés aux milieux des arêtes du triangle courant. Par exemple, pour le ième triangle, ces trois vertex supplémentaires seront:

    Code:
    v_sup1 = (p(t(i, 1),:) + p(t(i, 2), :)) / 2;
    v_sup2 = (p(t(i, 2),:) + p(t(i, 3), :)) / 2;
    v_sup3 = (p(t(i, 3),:) + p(t(i, 1), :)) / 2;
    -) Ajouter (concaténer) ces nouveaux vertex à la fin de la liste des vertex p et garder trace de leurs index dans la liste. Si p possède m lignes, alors ces index valent, respectivement pour v_sup1, v_sup2 et v_sup3, m+1, m+2 et m+3.

    -) Ajouter ces index (m+1), (m+2) et (m+3) à la suite de la i ème ligne de la matrice t dans les colonnes respectives 4, 5 et 6. (Matrice t qui devra préalablement être redimensionnée à la taille (nt x 6) tout en conservant les données initiales dans les colonnes 1, 2 et 3).

    -) Recommencer pour le triangle suivant (i+1 ème) jusqu'à avoir parcouru tous les triangles.

    En espérant avoir été clair.

  3. #3
    Paraboloide_Hyperbolique

    Re : Matlab : Conversion éléments T3 vers T6

    Petite remarque: la procédure que j'ai décrite ci-dessous dupliquera inutilement des vertex. Pour éviter cela, il faudrait maintenir une liste des arêtes pour lesquelles un vertex a été ajouté et de l'index qui lui est associé.

  4. #4
    Fouch

    Re : Matlab : Conversion éléments T3 vers T6

    Bonjour et merci pour votre retour.

    C'est limpide, j'espère pouvoir tester ça rapidement.

    Je vous tiendrai au courant .

    Merci encore !

  5. A voir en vidéo sur Futura
  6. #5
    Fouch

    Re : Matlab : Conversion éléments T3 vers T6

    Cette méthode fonctionne sans pb.

    Plus qu'à écrire le reste du code.

    Merci encore !

  7. #6
    Paraboloide_Hyperbolique

    Cool Re : Matlab : Conversion éléments T3 vers T6

    De rien.......

Discussions similaires

  1. code matlab elements finis P2 2D
    Par ashref1991 dans le forum Mathématiques du supérieur
    Réponses: 1
    Dernier message: 05/02/2014, 00h11
  2. conversion matlab vers mathematica
    Par invitea41a00b4 dans le forum Mathématiques du supérieur
    Réponses: 3
    Dernier message: 30/10/2011, 17h54
  3. conversion vers une image sous matlab
    Par invite3270ee48 dans le forum Programmation et langages, Algorithmique
    Réponses: 3
    Dernier message: 06/04/2011, 20h16
  4. elements finis sur MatLab
    Par ABN84 dans le forum Physique
    Réponses: 7
    Dernier message: 18/04/2010, 10h15
  5. Méthode des éléments finis 2D sur matlab
    Par invitef7da45dc dans le forum Mathématiques du supérieur
    Réponses: 0
    Dernier message: 26/04/2009, 15h33