IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Fortran Discussion :

Trouver surface de triangles de maillage tétraédrique


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 8
    Par défaut Trouver surface de triangles de maillage tétraédrique
    je veut convertir cette soubritine ecrit en matlab en fortran
    elle trouve les surface de triangles de maillage tétraédrique (SURFTRI)

    Code matlab : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    function tri=surftri(p,t)
    %SURFTRI Find surface triangles from tetrahedra mesh
    %   TRI=SURFTRI(P,T)
     
    %   Copyright (C) 2004-2012 Per-Olof Persson. See COPYRIGHT.TXT for details.
     
    % Form all faces, non-duplicates are surface triangles
    faces=[t(:,[1,2,3]);
           t(:,[1,2,4]);
           t(:,[1,3,4]);
           t(:,[2,3,4])];
    node4=[t(:,4);t(:,3);t(:,2);t(:,1)];
    faces=sort(faces,2);
    [foo,ix,jx]=unique(faces,'rows');
    vec=histc(jx,1:max(jx));
    qx=find(vec==1);
    tri=faces(ix(qx),:);
    node4=node4(ix(qx));
     
    % Orientation
    v1=p(tri(:,2),:)-p(tri(:,1),:);
    v2=p(tri(:,3),:)-p(tri(:,1),:);
    v3=p(node4,:)-p(tri(:,1),:);
    ix=find(dot(cross(v1,v2,2),v3,2)>0);
    tri(ix,[2,3])=tri(ix,[3,2]);

    merci d'avance

  2. #2
    Membre éclairé
    Homme Profil pro
    ingénieur calcul
    Inscrit en
    Décembre 2007
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur calcul
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 363
    Par défaut
    Bonjour,
    moi je n'y connais presque rien en matlab, mais pas trop mal en fortran, donc si ça t'intéresse toujours et si tu es prêt à y passer du temps et des tâtonnements (donc pas du "TOUT CUIT") je suis partant.
    David

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 8
    Par défaut
    merci pour votre réponse et pour Votre volonté , je suis prête aussi pour des tâtonnements avec vous

  4. #4
    Membre éclairé
    Homme Profil pro
    ingénieur calcul
    Inscrit en
    Décembre 2007
    Messages
    363
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur calcul
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Décembre 2007
    Messages : 363
    Par défaut
    rebonjour,
    il faut me donner le plus de détails possible sur ce que font toute les fonctions matlab utilisées pour qu'on puisse les reconstruire en fortran.
    Dans quel code éléments-finis cela se passe t'il.
    Envoyez moi les carte de définition d'un ou deux tétraèdres et des nœuds.
    Je ferai un petit bout de fortran et vous laisserai terminer dès que ce sera réaliste.
    David

  5. #5
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 8
    Par défaut
    j'utilise la Méthode des Volumes de Contrôle à base d’Elément Finis (MVCEF) pour la discrétisation tridimensionnelle

    P =matrice des coordonées des noeux
    T = matrice des élement qui contient numéro des noeux formant (4 noeux)

    pour les fonctions matlab utilisées:
    B = sort(A,dim) retourne les éléments triés de A le long de la dimension dim. Par exemple, si A est une matrice, puis sort(A,2) trie les éléments dans chaque ligne

    [C,ia,ic] = unique(A,'rows') traite chaque ligne de A comme une entité unique et retourne les lignes uniques de A. Les lignes du tableau C sont dans un ordre trié.
    L’option 'rows' ne supporte pas les baies de la cellule , aussi indice de retours vecteurs ia et ic, telle que C = A(ia,: ) et A = C(ic,: ).

    bincounts = histc(x,binranges) compte le nombre de valeurs de x qui se trouvent dans chaque gamme de bac spécifié. L’entrée, binranges, détermine les points de terminaison pour chaque bac. La sortie, bincounts, contient le nombre d’éléments de x dans chaque emplacement.

    k = find(X)renvoie un vecteur contenant les indices linéaires de chaque élément différent de zéro dans le tableau X.

    C = cross(A,B) retourne le produit Croix de A et B.Nom : téléchargement.png
Affichages : 619
Taille : 2,2 KoNom : téléchargement.png
Affichages : 619
Taille : 2,2 KoNom : téléchargement.png
Affichages : 619
Taille : 2,2 KoNom : téléchargement.png
Affichages : 619
Taille : 2,2 Ko

    C = dot(A,B) calcule le produit scalaire dot de A et B.

    et merci d'avance

  6. #6
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Janvier 2015
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2015
    Messages : 8
    Par défaut
    j'ai essayé les 2 premiers lignes


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    open(17,File="c:tetareda")
           open(16,File="c:faces")
           do j=1,ntet	 
    	 read(17,*)element(j),element_type(j),Nnub1(j),Nnub2(j),Nnub3(j),
         & Nnub4(j)
    	 end do        
    	 do j=1,ntet      
    	 write(16,*)Nnub1(j),Nnub2(j),Nnub3(j)
           end do 
           do j=1,ntet     
    	 write(16,*)Nnub1(j),Nnub2(j),Nnub4(j)
           end do 
           do j=1,ntet       
    	 write(16,*)Nnub1(j),Nnub3(j),Nnub4(j)
           end do 
           do j=1,ntet       
    	 write(16,*)Nnub2(j),Nnub3(j),Nnub4(j)
           end do 
           close(17)
            close(16)
    ************************************************************************************		
     
           open(17,File="c:tetareda")
           open(20,File="c:node4")
           do j=1,ntet	 
    	 read(17,*)element(j),element_type(j),Nnub1(j),Nnub2(j),Nnub3(j),
         & Nnub4(j)
    	 end do        
    	 do j=1,ntet      
    	 write(20,*)Nnub4(j)
           end do 
           do j=1,ntet     
    	 write(20,*)Nnub3(j)
           end do 
           do j=1,ntet       
    	 write(20,*)Nnub2(j)
           end do 
           do j=1,ntet       
    	 write(20,*)Nnub1(j)
           end do 
           close(17)
            close(20)

Discussions similaires

  1. Réponses: 7
    Dernier message: 28/11/2012, 10h42
  2. Réponses: 6
    Dernier message: 12/05/2012, 23h10
  3. Approximation d'un maillage par morceau de surface
    Par Alderyan dans le forum Algorithmes et structures de données
    Réponses: 7
    Dernier message: 15/01/2007, 09h39
  4. Génération de maillage automatique minimisant les triangles
    Par Akta3d dans le forum Algorithmes et structures de données
    Réponses: 9
    Dernier message: 13/09/2005, 19h53
  5. Surface d'un triangle en coordonnées cartésiennes
    Par tlemcenvisit dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 11/06/2005, 20h56

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo