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

Algorithmes et structures de données Discussion :

Mécanique des fluides, Maillage 2D


Sujet :

Algorithmes et structures de données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2004
    Messages : 185
    Par défaut Mécanique des fluides, Maillage 2D
    Bonjour,
    J'ai un projet à effectuer en mécanique des fluides, j'envisage de faire une résolution des équations de Navier-Stokes en 2D, je cherche actuellement des informations (cours, exemples) sur comment générer un maillage en 2D de manière automatique en fonction de la forme de ma goutière et d'éventuels obstacles que j'y aurai introduit.

    Pour l'heure j'ai écrit un programe qui résout les équations de NS (incompressible) à l'aide d'un maillage carré, mes obstacles dans ce cas étant des formes à angles droits ça ne pose pas de soucis (du moins j'en ai pas détecté), vu que les tout le monde aime les « scrinne chotes » je mets des images issues, de mon prog,
    composante horizontale de la vitesse à la 5000 itération :

    composante verticale de la vitesse à la 5000 itération :

    pression à la 5000 itération :

    (bon la visualisation n'est pas parfaite il y a au moins un « beuggue »)

    j'aimerai envisager des formes circulaires, voir par exemple un profil plus complexe comme celui d'une aile d'avion. L'idée la plus intuitive est de créer de plus petits carrés qui recouvriraient au mieux les obstacles est éventuellement la forme de la gouttière.

    j'ai ensuite pensé à utiliser un maillage qui s'adapte en fonction de la variation de la gouttière et de la présence ou non d'obstacle, ou dit autrement, d’avoir un maillage non uniforme, ou encore des carré plus gros à certains endroit que d'autres.

    Dans ce cas de figure j'ai peur de faussé le calcul des vitesses et des pressions, j'aurai donc besoin d'information sur de '1' la possibilité ou non d'un tel procédé, de '2' connaitre les critères de validité en fonction du type de schéma employé (implicite, explicite).

    Ensuite j'ai également pensé utiliser l'algorithmes de voronoï pour discrétiser l'espace. De ça je me suis dit, comme il s'agit d'une surface, la plus petite figure géométrique 2D c'est un triangle, donc je pourrais de suite envisager de générer un maillage avec des triangles. J'ai une vague idée de comment faire, mais par contre je ne vois pas comment résoudre les équations de NS dans un tel cas de figure.

    Mes connaissances en mécaflotte sont limitées à celles apprises par moi même, durant l'écriture de mon premier projet que j'ai cité plus haut, ou dit autrement j'ai pas eu de cours de mécaflotte.

    J'ai eu un cours de calculs numériques mais je ne suis pas un expert par contre mon projet actuel étant monitoré par l’enseignant qui nous a donné ce cours j'ai un allié de choix!

    Voilà c'est beaucoup de demandes , mais si vous pouviez m'aiguiller ça me ferait gagner du temps,

    Merci.

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    185
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2004
    Messages : 185
    Par défaut
    Bon, je vais commencé par donner des éléments de réponse.
    Diviser une surface avec des triangles, dans le but de résoudre des équations telles que celles de NS, c'est à dire, des équations elliptiques, ce fait à l'aide de la « méthode de Galerkin (discontinue) » j'entrerai pas dans le détail vu que ça fait que trois heures que je connais le nom de cette méthode, alors son contenu me semble encore très ésotérique dans l’immédiat...

    au moment où j'écris ça je viens juste de mettre la main sur un cours sur « les éléments finis » en français, écrit par André Fortin (Université de Laval) et André Garon (École Polytech. de Montréal, ça, ça tombe bien j'habite juste à coté! ) je l'ai pas encore e-feuilleté (il fait 324 pages le bébé quand même mais au moins c'est en français....), en tout cas il semblerait que les éléments finis soient liés à Galerkin, mais je ne l'affirme pas.

    Sinon dans la langue de « Chèque-spire » on trouve des publications, mais une référence d'ouvrage revient très souvent « Discontinous Galerkin Methods » édition Springer
    [ame="http://www.amazon.com/Discontinuous-Galerkin-Methods-Compuration-Applications/dp/3540667873"]Amazon.com: Discontinuous Galerkin Methods: Theory, Compuration and Applications (9783540667872): Bernardo Cockburn, George E. Karniadakis, Chi-Wang Shu: Books@@AMEPARAM@@http://ecx.images-amazon.com/images/I/41zOZKXVxsL.@@AMEPARAM@@41zOZKXVxsL[/ame]
    mais ça c'est pas gratis...

    voilà voilà.... si des connaisseurs passent par là, tout info sera bienvenue....

  3. #3
    Membre très actif
    Profil pro
    chercheur
    Inscrit en
    Avril 2004
    Messages
    830
    Détails du profil
    Informations personnelles :
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : chercheur

    Informations forums :
    Inscription : Avril 2004
    Messages : 830
    Par défaut
    Connais-tu freefem++ ?

  4. #4
    Membre Expert
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Par défaut
    Bonjour,

    je répond à un précédent message qui m'a échappé.

    Citation Envoyé par TocTocKiéLà? Voir le message
    Diviser une surface avec des triangles, dans le but de résoudre des équations telles que celles de NS, c'est à dire, des équations elliptiques, ce fait à l'aide de la « méthode de Galerkin (discontinue) »
    Tout est faux dans cet énoncé!

    en tout cas il semblerait que les éléments finis soient liés à Galerkin, mais je ne l'affirme pas.
    Oui, ils sont liés. La méthode de Galerkin consiste à projeter, dans un espace (vectoriel) de dimension finie, un problème posé dans un espace (de Hilbert souvent) de dimension infinie. Ton problème de NS est sûrement posé dans un espace de Sobolev et, par la méthode de Galerkin, tu vas pouvoir en approcher les solutions dans un espace de dimension finie lié à une discrétisation du domaine d'étude (maillage). La manière dont tu définis cet espace détermine la méthode d'approximation (éléments finis, volumes finis, galerkin discontinu, etc).

    Pour un simple projet, tu peux te contenter d'utiliser la méthode des éléments finis, il y a déjà beaucoup de choses à comprendre. Il y a plein d'auteurs de livres sur le sujet.
    Pour les aspects théoriques, je te conseille ceux-ci :
    1. Ciarlet, The Finite Element Methods for Elliptic Problems
    2. Monk, Finite Element Methods for Maxwell's Equations
    3. Girault-Raviart, Finite Element Methods for Navier-Stokes Equations: Theory and Algorithms

    Le 1 est la référence sur la méthode des éléments finis.
    Le 2 est plus moderne et aborde mieux la théorie des éléments finis mixtes.
    Attention, le 3 est très difficile d'accès!

    Si tu préfères les livres en francais, je te conseille plutôt :
    4. Raviart-Thomas, Introduction à l'analyse numérique des équations aux dérivés partielles
    5. Ern, Aide-mémoire des éléments finis
    6. Ern-Guermond, Eléments finis: théorie, applications, mise en oeuvre

    Le 4 est génial, très didactique.
    Les 5 et 6 sont très bien pensés et offrent un compromis intéressant entre théorie et pratique.

    A mon avis, c'est plutôt vers ces 3 livres que tu devrais d'abord te diriger.

    Enfin, un livre plus conçu pour les ingénieurs :
    7. Zienkiewicz, The Finite Element Method (3 volumes)

    C'est une référence en la matière.

  5. #5
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!
    Exemple de problème avec un vrai jeu de données :
    Le choix des noeuds du maillage est arbitraire; il ne fait donc pas partie des données du problème.
    Jean-Marc Blanc

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Découper un espace en triangles, il y a la triangulation de Delaunay (complément de Voronoi). Très nombreux algos sur le Web..


    Pour résoudre l'équation je ne sais pas, mais pour interpoler sur un triangle il y a un algo tout simple et superbe : CONREC (en Fortran, mais s'adapte très facilement car le principe est ultrasimple et lumineux).. http://en.giswiki.net/wiki/CONREC

  7. #7
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!
    Découper un espace en triangles, il y a la triangulation de Delaunay (complément de Voronoi).
    Effectivement, c'est une méthode qui est très utilisée. Mais il y en a une autre qui me semble plus efficace: tu traces une série de lignes (ça peut être des segments de droites) à travers ton domaine d'intégration, de manière à le découper en bandes parallèles; tu places ensuite tes noeuds sur ces lignes et tu découpes les bandes en triangles de manière à ce que les 3 sommets de chaque triangle soient sur deux lignes consécutives. Ainsi, la matrice du système à résoudre est tridiagonale par blocs, ce qui permet d'éviter beaucoup de calculs inutiles. C'est ce que j'avais fait à l'époque dans ma thèse de doctorat, mais pour une équation de Poisson. Tu la trouveras sous http://library.epfl.ch/theses/?nr=102
    Jean-Marc Blanc

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par FR119492 Voir le message
    tu traces une série de lignes (ça peut être des segments de droites) à travers ton domaine d'intégration, de manière à le découper en bandes parallèles; tu places ensuite tes noeuds sur ces lignes et tu découpes les bandes en triangles de manière à ce que les 3 sommets de chaque triangle soient sur deux lignes consécutives.
    Mais dans ce cas comment peux-tu garantir qu'il n'y a qu'un seul point par triangle ??

    Car le principe de Delaunay (ou de Voronoi) est quand même que par aire de Voronoi il n'y a qu'un seul point (ou que les sommets des triangles de Delaunay sont les points, tout en gardant les triangles les plus équilatéraux possibles)

    Je comprend bien ce que tu proposes, mais quand tu dis "tu places tes noeuds sur les lignes", cela suppose que tes noeuds ne sont pas les points de l'échantillon à mailler.. Et que donc tu pourrais avoir 3, 10, 100, ou 0 points dans ce triangle...







    Quant aux implémentations, il y en a au moins 2 sur ce forum, dans la rubrique Contribuez :

    En Java :

    http://www.developpez.net/forums/d48...-incrementale/

    et en C :

    http://www.developpez.net/forums/d69...ete-and-build/

    Les 2 implémentations suivent la méthode du "incremental build"..



    Avec une série de pointeurs sur des docs ici (codes en C) :

    http://www.developpez.net/forums/d69...aunay-voronoi/

  9. #9
    Rédacteur

    Homme Profil pro
    Comme retraité, des masses
    Inscrit en
    Avril 2007
    Messages
    2 978
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : Suisse

    Informations professionnelles :
    Activité : Comme retraité, des masses
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 2 978
    Par défaut
    Salut!
    Je comprend bien ce que tu proposes, mais quand tu dis "tu places tes noeuds sur les lignes",
    Je n'ai peut-être pas été assez clair:
    • Tu numérotes les lignes: k=1,m
    • Sur la ligne k, tu as n_k points que tu numérotes dans l'ordre: i=1,n_k; sur la ligne k+1, tu as n_(k+1) points que tu numérotes dans l'ordre: j=1,n_(k+1).
    • Tu parcours la bande comprise entre les lignes k et k+1 en commençant par le début. Tu connais déjà deux sommets du premier triangle, à savoir les points (k,1) et (k+1,1). Tu prends comme troisième sommet celui des points (k,2) et (k+1,2) qui donne le triangle le plus petit.
    • Tu continues jusqu'à la fin de la bande.

    Si tu as choisi tes lignes de manière judicieuse, les coordonnées des points peuvent se calculer de manière analytique.

    Jean-Marc Blanc

  10. #10
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Billets dans le blog
    2
    Par défaut
    je suis d'accord avec toi.. Mais cela suppose quand même une densité de points relativement "constante".. Si tu as des zones à fabile densité, l'algo marche bien.. Mais si tu as des zones à très forte densité, il me semble que tu vas soit rassembler pleins de points dans 1 triangle, soit avoir des triangles très effilés, et du coup pas forcément un maillage, mais un "découpage de l'espace"... comme des parts de gateau.. Et pas forcément couvrant tout..

    Si je prend par exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ligne k  --------*------------*------*
                          * * *           *
                            *              
    ligne k+1 ----*--------*-------*---*
    La cellulle du milieu me pose un problème avec ton approche...


    Exemple de problème avec un vrai jeu de données :
    Images attachées Images attachées  

  11. #11
    Membre Expert
    Homme Profil pro
    Chercheur
    Inscrit en
    Mars 2010
    Messages
    1 218
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Chercheur

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 218
    Par défaut
    Bonjour,

    Citation Envoyé par TocTocKiéLà? Voir le message
    je cherche actuellement des informations (cours, exemples) sur comment générer un maillage en 2D de manière automatique en fonction de la forme de ma goutière et d'éventuels obstacles que j'y aurai introduit.
    Si tu peux, récupère le papier de Hermeline et George sur la triangulation de Delaunay :
    http://onlinelibrary.wiley.com/doi/1...30507/abstract
    Si tu l'obtiens, j'aimerais bien que tu me l'envoies au passage!

    Sinon, pour la génération de maillage, il faut regarder les papiers de Borouchaki, George, Hecht et Frey :
    Borouchaki : http://www.andrew.cmu.edu/user/sowen...orouchaki.html
    George : http://www-roc.inria.fr/gamma/gamma/.../index.fr.html
    Frey : http://www.ann.jussieu.fr/~frey/index.html#publis
    Hecht : http://www.ann.jussieu.fr/~hecht/

    Sur la page de George, tu trouveras également des bouquins écrits avec Frey et Borouchaki :
    http://www-roc.inria.fr/gamma/gamma/.../index.fr.html
    Tu devrais en trouver au moins un à ta bu.

    Pour les aspects liés à l'implémentation, il y a un cours de Hecht intitulé "Maillage 2D, 3D et adaptation " disponible par ftp sur sa page personnelle, et surtout le livre de O'Rourke que je te conseille vivement de te procurer :
    http://maven.smith.edu/~orourke/books/compgeom.html
    Tu trouveras également une implémentation de l'algorithme de Delaunay dans la troisième édition des numerical recipes :
    http://books.google.fr/books?id=w47c...page&q&f=false

    Avis personnel : si le sujet de ton projet n'est pas la génération de maillage mais la résolution des équations de NS, je pense que tu vas perdre beaucoup à tenter d'implémenter un générateur sans être forcément sûr d'arriver à mailler les types de domaine pour lesquels tu souhaites faire tes études.

    j'aimerai envisager des formes circulaires, voir par exemple un profil plus complexe comme celui d'une aile d'avion. L'idée la plus intuitive est de créer de plus petits carrés qui recouvriraient au mieux les obstacles est éventuellement la forme de la gouttière.
    Pour les ailes d'avion, tu peux utiliser la transformation de Joukovsky, c'est plus simple que de faire du maillage paramétré :
    http://fr.wikipedia.org/wiki/Transfo...n_de_Joukovsky


    j'ai ensuite pensé à utiliser un maillage qui s'adapte en fonction de la variation de la gouttière et de la présence ou non d'obstacle, ou dit autrement, d’avoir un maillage non uniforme, ou encore des carré plus gros à certains endroit que d'autres.
    Si tu veux faire au plus simple, oublie les carrés et passe directement aux triangles avec une triangulation de Delaunay.

    Dans ce cas de figure j'ai peur de faussé le calcul des vitesses et des pressions, j'aurai donc besoin d'information sur de '1' la possibilité ou non d'un tel procédé, de '2' connaitre les critères de validité en fonction du type de schéma employé (implicite, explicite).
    Pour le 1, c'est classique, ça s'appelle du maillage adaptatif. Avec les carrés, on fait généralement du quadtree. Avec les triangles, on découpe les triangles en sous-triangles.

    Pour le 2, impossible de te répondre car tu n'as pas mentionné ta méthode de résolution (différences finies, éléments finis, volumes finis, autre)?


    Ensuite j'ai également pensé utiliser l'algorithmes de voronoï pour discrétiser l'espace. De ça je me suis dit, comme il s'agit d'une surface, la plus petite figure géométrique 2D c'est un triangle, donc je pourrais de suite envisager de générer un maillage avec des triangles. J'ai une vague idée de comment faire, mais par contre je ne vois pas comment résoudre les équations de NS dans un tel cas de figure.
    Générer une triangulation de Delaunay ou un diagramme de Voronoï revient au même car ces partitions sont duales. En joignant les centres des cellules de Voronoï adjacentes, tu obtiens une triangulation de Delaunay. Pour résoudre les équations de NS sur un maillage triangulaire non-structuré, on utilise en général la méthode des éléments finis mais on peut également le faire avec des volumes finis (ex: Fluent).


    Mes connaissances en mécaflotte sont limitées à celles apprises par moi même, durant l'écriture de mon premier projet que j'ai cité plus haut, ou dit autrement j'ai pas eu de cours de mécaflotte.
    Tu t'achètes un livre sur le sujet et le tour est joué!

    Dernière remarque : il y a moyen de ne pas t'embêter avec le maillage, c'est d'utiliser une méthode de domaines fictifs.

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 59
    Par défaut
    Bonjour,

    J'ai un probléme dans mes resultats que je n'ai pas arrivé à expliquer! j'ai une géometrie dans laquelle y a une entrée de fluide et une sortie, quand j'augmente la vitesse de l'ecoulement à l'entree je vois des zones de recirculation qui apparaissent entre les deux parois qui entoure l'entrée du gaz! je sais que ces zones de recirculation sont dues aux instabilités du fluide mais elle s'appelle comment cette stabilité ? et comment je peux l'expliquer sachant que tout le domaine à une température constante (T ambiante partout) merci

Discussions similaires

  1. Mécanique des fluides en Java
    Par haykel h dans le forum NetBeans
    Réponses: 5
    Dernier message: 19/02/2012, 15h23
  2. mécanique des solides en python
    Par sebastator dans le forum Calcul scientifique
    Réponses: 5
    Dernier message: 17/02/2010, 15h00
  3. Programme mécanique des fluides
    Par zabbaou dans le forum Fortran
    Réponses: 16
    Dernier message: 23/05/2009, 20h04
  4. Millie: simuler une girouette (mecanique des fluides, différences finies, etc.)
    Par Rodrigue dans le forum Algorithmes et structures de données
    Réponses: 17
    Dernier message: 03/07/2008, 14h24

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