Répondre à la discussion
Affichage des résultats 1 à 10 sur 10

discrétisation d'un volume



  1. #1
    Ryuujin

    discrétisation d'un volume


    ------

    Bonjour.
    Pour réaliser une simulation informatique d'un écoulement multiphasé en milieux poreux avec interactions ( une phase gazeuse solubre et acide ), j'ai pour l'instant opté pour la méthode des différences finies avec un format de donnée consistant en une matrice 300*300*30 dont chaque élément est représentatif d'un volume de sol de 5*5*5 mêtres cubes, et ce pour chaque variable.

    Non seulement c'est très lourd en calculs, mais en plus, la maille n'est pas très fine ; pas assez dans les zones ou les variables étudiées connaissent des modifications rapides, et trop pour les zones ou elles ne varient pas.

    Y aurait-il un moyen de "tendre" ou de "détendre" la maille au fils des itérations ?
    Je devrais peut être changer de méthode, mais je ne vois pas quel structure de données adopter pour appliquer la méthode des éléments finis, en avez-vous une idée s'il vous plait ?

    -----

  2. #2
    moijdikssékool

    Re : discrétisation d'un volume

    ca dépent de de la forme de ton objet autour duquel tu considères l'écoulement, il doit être fin aux endroits obtus et larges dans les zones presque plates
    ce genre de truc se fait grâce à des logiciels. Ca se programme mais c'est hard!

  3. #3
    Ryuujin

    Re : discrétisation d'un volume

    désolé, j'aurais du être plus explicite ; c'est un écoulement à travers un milieux poreux ( modélisation d'injection de CO2 dissout en nappe phréatique perchée ).
    Je ne peux pas utiliser de logiciels ; ceux développés pour les études environnementales sont très peu adaptés ( je ne peux pas dire "pas adaptés ; je ne les connais pas tous, mais disons que je n'en ai pas trouvé qui le soit ) à la modélisation de flux sous forme dissoute et gazeuse, à part bien sûr les outils dévellopés pour l'injection de CO2 en industrie d'extraction pétrolière, mais c'est plutôt en nappe saline et à plus haute température et pression que ce qui m'intéresse, sans parler de la nature des aquitards ( en général, plutôt des shistes ).

    donc en gros, il me reste Matlab.

  4. #4
    moijdikssékool

    Re : discrétisation d'un volume

    tu veux donc modéliser un milieu poreux et ton fluide est gazeux
    je crois que là, il te faudrait faire des essais in-situ et considérer que ton fluide est ralentit en passant dans telle ou telle zone, un peu comme s'il devenait visqueux...

    donc en gros, il me reste Matlab
    ca fait ça Matlab?

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

    Re : discrétisation d'un volume

    in situ ? à 100 m de profondeur ?
    cela risquerait d'être difficile quand même.

    Matlab est une plate-forme de programmation ; ça fait tout du moment qu'on le programme pour.

  7. #6
    moijdikssékool

    Re : discrétisation d'un volume

    Disons qu'il doit exister des données concernant la vitesse d'un fluide au travers d'un milieu poreux (tu dois bien savoir de quel type de grains tu as affaire), suivant la viscosité du fluide et sa pression (ou sa vitesse initiale avant l'entrée dans le milieu poreux). Les centres d'épuration d'eau doivent avoir ça (mais si ton fluide est un liquide gazeux du type CO2, sauf erreur de ma part, ca doit pas des masses exister)
    tu veux mailler pourquoi? il y a plusieurs strates de différentes porosités?

  8. #7
    Joe Hell

    Lightbulb Re : discrétisation d'un volume

    Utilises tu la méthodes des différences finies explicites ou implicites?? C'est très important. Dans ce cas ci, je traiterai principalement des sytème 1D pour simplifier l'écriture.

    La méthode implicite te fournira une solution juste mais tu seras énormément pénalisé par la complexité de résolution.

    Si tu es en méthodes explicites tu dois faire attention que tous tes termes se retrouvant sur la diagonale principale a(i,i) soit positif. C'est un critère de convergence. Pour les noeuds aux limites tu devrais avoir une valeur de 1 et pour les autres 1-B (B constante arbitraire relative à la physique du problème et fonction du pas de temps).

    Aussi, lors de tes itération dans le temps (j), la valeur de ta variable (x) au temps j+1 X(i,j+1) devrait être exprimé en fonction de des
    X(a,j) ou a représente les positions possible des noeuds. (i,i+1,i-1)

    Or dans la méthodes implicites, il est possible de calculé une valeur futur à partir des valeurs présentes dans le système.

    D'autre part, la méthode implicite calcule les X(i,j+1) en fonction de X(i,j) et des X(a,j+1) ou a représente toujours la position des noeuds voisins. Bref, dans ce cas ci, rien à faire, on doit résoudre complètement le système de N équation et N inconnus. N=Nombre de noeuds au différences finis dans le système ce qui devient rapidement très lourd.

    Heureusement un programme comme matlab permet de résoudre ce genre d'équation. Cependant tu dois t'assurer du bons conditionnement de tes matrices avant de résoudre les systèmes d'équation.

    Voici la structure que devrait avoir ton script par différences finis explicites :

    %Début

    %***Entrées des données et variables.

    for j=2:N %itération sur le temps
    for k=1:N %itération sur les lignes
    for i=1:N %itération sur les colonnes
    %entré des données au position i,j de ta matrice globale NxN. Il s'agit de la fameuse matrice tridiagonale en 1D.
    X(i,j)=X(i-1,j-1)-4*X(i,j)+ ... %ces équations varient en fonction de la méthode de différenciatiosn que tu utilise (avant, arrière, centré) Tu devrais trouver sans problème.
    end
    end
    %fin de l'entré des coefficiants dans la matrice tridiagonale (cas 1D)
    b=inv(X)*x %résolution du système d'équation par matrice inverse
    Resultat(i,t)=Resultat(b(i),j) % impression des résultats dans une matrice dont la ligne représente chacun des noeud au différences finis (i=1:N), et la colonne représente le le pas de temps.
    end %itération sur le temps.

    ============================== ====

    J'y suis allé très rapidement puisque je figure que tu connais bien matlab et je voulais te donné quelques pistes. En espérant que ces conseils te seront utiles! Bonne chance!

  9. #8
    Evil.Saien

    Re : discrétisation d'un volume

    Salut,
    en effet il éxiste des méthodes pour augmenter la vitesse de tes claculs ainsi que pour adapter la précision en fonction de la vitesse de variation... Super !
    Toutefois ces méthodes ne sont pas triviales au point de pouvoir te les éxpliquer ici en quelques lignes, disons que je vais juste te donner le principe.
    En fait ce sont les algorithmes utilisant l'aspect de "multirésolution".
    Tu sais ce qu'est une ondelette ? C'est un peu la mode en ce moment... En gros c'est un peu comme Fourier sauf qu'au lieu d'éxprimer une fonction avec des cos et des sin, ici on éxprime une fonction a l'aide d'une fonction d'ondelette plus ou moins grossi et une fonction d'echelle plus ou moins grossi.
    Donc le principe de la multirésolution est de d'abbord faire tourner l'algorithme avec un très gors maillage (volontairement), puis regarder les endroits ou ca change vite pour fractionner les gros cube en de plus petits cubes, et ainsi de suite.
    Ces algorithmes sont normalement très rapides...

    Bonne chance
    Mon psychiatre, pour quinze mille francs, il m'a débarrassé de ce que j'avais : quinze mille francs

  10. #9
    Ryuujin

    Re : discrétisation d'un volume

    Salut à tous ceux sui ont pris le temps de regarder et de répondre à ce poste,
    la personne qui la posté est actuellement absente, elle vous répondra cette fin de semaine samedi après midi),
    merci encore

  11. #10
    Ryuujin

    Re : discrétisation d'un volume

    Joe Hell : >>
    Je n'avais envisagé qu'un schéma explicite ( ne connaissant que cette méthode ) mais je me renseigne actuellement sur les différences finies implicites.

    Pour l'instant, j'écris simplement mes gradients comme les différence aux noeuds i+1 et i-1 divisée par la somme des deux pas, ce qui se calcule en définitive assez bien, même avec les matrices 200*200*30 que j'utilise pour tester mon script.
    Merci beaucoup pour les conseils, et pour la piste de la méthode implicite.
    J'avoue que les critères de convergence en question me posent quelques problèmes ; en particulier pour le calcul des dérivées secondes, enfin, j'y travaille, merci beaucoup.


    Evil.Saien :
    j'avais intuitivement pensé à un système de multirésolution, mais sans aucune base théorique.
    Merci beaucoup pour les mots-clefs ; cela me permettra de me renseigner sur le sujet.

    Au fait, "scinder" des cubes ne pose pas de problèmes lorsque l'on calcule ensuite un gradient par différences-finies ?

Discussions similaires

  1. Volume d'un liquide
    Par Alostmind dans le forum Chimie
    Réponses: 5
    Dernier message: 25/07/2007, 23h20
  2. Réponses: 3
    Dernier message: 18/02/2007, 13h29
  3. Volume d'un cône?
    Par EspritTordu dans le forum Mathématiques du collège et du lycée
    Réponses: 12
    Dernier message: 19/04/2006, 10h32
  4. volume d'un gaz
    Par juline dans le forum Chimie
    Réponses: 4
    Dernier message: 21/02/2006, 09h17
  5. volume d'un cylindre
    Par Meline dans le forum Mathématiques du supérieur
    Réponses: 8
    Dernier message: 03/01/2006, 12h44