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 :

[Fortran 77] Conduction instationnaire 2D


Sujet :

Fortran

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2007
    Messages : 11
    Par défaut [Fortran 77] Conduction instationnaire 2D
    Bonjour à tous!

    Je rencontre des difficultés en programmation fortran 77 et j'espère que vous pourrez m'aiguiller...

    Je voudrais simplement modéliser un problème de conduction instationnaire dont voici les principales données:

    Soit un puits contenant de l'eau.
    Le puits fait 500m de profondeur et 18cm de large.
    Le puits est entouré sur toute sa profondeur par le terrain environnant depuis la surface.
    Je considère donc le diamètre du terrain autour de 3m de diamètre comme condition limite.
    Je me place en coordonnées cylindrique et je veux connaitre la température
    J'ai un terrain de 500m de profondeur avec un gradient géothermique de 3°C tous les 100m.


    Mon but est de calculer la température de l'eau dans le puits.


    Pour ce faire j'ai dans un premier temps considéré le problème en 1D dans le sens de la profondeur (Z) en faisant un bilan sur une maille quelconque, la maille en tête de puits et la maille de fond et en considérant que la chaleur apportée par le terrain est constante.

    Maintenant je veux pouvoir modéliser le flux de chaleur apporté par le terrain en 2D (profondeur+radial)

    Comment faire,notamment pour programmer les conditions limites?


    Merci à tous!

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Par défaut
    salut,

    Tu as un problème axisymétrique stationnaire, donc tu fais un maillage rectangulaire, de largeur 3m et de hauteur 503m.
    - Dedans tu as continuité de la température et un gradient de température imposé
    - sur les noeuds de l'axe d'axisymétrie le flux est constant = 0 (dérivée thermique nulle)
    - ailleurs sur les bords, tu as des températures imposées

    Ces conditions sont imposées :
    - sur le système linéaire constitué, soit par élimination, soit par pénalisation
    - ou bien, explicitement sur une résolution itérative type gauss-seidel

    voilà, à vue d'oeuil, c'est de ce style

    PS: préfère fortran 90/95 !

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2007
    Messages : 11
    Par défaut
    Bonjour Afranscisco!

    Merci pour ta réponse rapide mais au fait je dois rajouter une difficulté au problème:

    En fait, j'aimerais faire évaporer l'eau de ce puits en créant une dépression en tête du puits.
    En créant une dépression,l'eau du puits va entrer en ébullition et s'évaporer...
    Ce phénomène est dit endothermique, c'est-à dire qu'il nécessite l'apport de chaleur pour se réaliser.
    De ce fait,la seule source de chaleur disponible est la chaleur amenée par le terrain et l'eau des mailles sous jacente.
    En cédant de la chaleur, le terrain va se refroidir ainsi que l'eau en surface.


    Dans mon modèle,j'impose un débit d'évaporation (exemple 0.05 kg/s) que j'ai choisis de telle sorte à éviter que le terrain et l'eau ne gèle.

    je pense que ça change un peu les conditions aux limites et un autre de mes problème érside également dans le maniement des tableaux avec 'DIMENSION'...

    Je ne sais pas si tu as tout saisi mais si toi ou quelqu'un d'autre pouvais m'aider ce serait cool!!

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    98
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 98
    Par défaut
    salut,

    pour l'évaporation, c'est simplement un flux thermique sortant par le haut imposé.
    L'aspect instationnaire peut venir de la perte d'eau dans le puits, en fonction du temps, compensée par de l'air, mais ça devient un peu vicieux ....

    Pour les tableaux, je n'ai pas fait de f77 depuis très très longtemps ; en f90/95 les tableaux s'allouent/desallouent dynamiquement avec l'attribut allocatable.
    Mais dans ton problème, il n'y a pas lieu de changer les bornes ; et en plus tu peux ne stocker que les termes non nuls (5 diagonales) ce qui allège incroyablement ton système.
    Par contre, il faut être à l'aise avec les indices, lors de la résolution...

    bon courage

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2006
    Messages : 197
    Par défaut
    salut.
    je n'ai pas beaucoup de temps pour te donner une réponse précise mais si tu tire de la chaleur du terrain, il faudrait que tu pense à éloigner ta condition limite verticale, c'est à dire mettre plus de 3m de terrain autour du puit.
    ça te permettrai de conserver une CL de dirichlet. parcequ'à mon avis, 3m de terrain ne sont pas suffisants.
    Sinon, peut-être qu'une CL de type mixte pourrait arranger le problème. Tu considère qu'en frontière, le flux est proportionnel à la température. En calculant le flux de température dû à l'absorption de chaleur par le puit, tu peux en déduire la nouvelle température de ta condition limite. Il te suffit de prendre un coefficient du genre conductivité thermique (ou qq chose comme ça) comme coefficient de proportionnalité...

    Je ne sais pas si ça peut t'aider (la reflexion à été rapide, j'ai peut-être dis des bêtises ou mal compris ton problème)


  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    11
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2007
    Messages : 11
    Par défaut
    Merci pour vos réponses.

    J'aurais cependant une autre question:

    Le fait que l'eau du puits s'évapore fait que l'interface eau/air ambiant diminue au fur et à mesure du processus.
    Comme la température du puits est plus élevée en profondeur,cela veut dire que plus l'interface descend,plus l'évaporation va être intense.

    Je ne sais malheureusement pas comment faire pour prendre en compte ce phénomène (recalculer le maillage à chaque itération?)

  7. #7
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2006
    Messages : 197
    Par défaut
    Peut-être que pour faire simple, tu pourais rajouter une variable dans ton problème qui serait la quantité d'eau dans une cellule (1 pour une cellule remplie d'eau et 0 pour de l'air). L'interface entre l'eau et l'air pourrait être représenté par les cellules dont la fraction d'eau serait comprise entre 0 et 1. Et tu pourrait dire que après calcul de l'évaporation, si cette variable est supérieure à 0.5, l'interface est située à l'interface entre la cellule et la cellule au dessus, et si elle est plus petite que 0.5, l'interface serait située sur la face entre cette cellule et la cellule en dessous.
    Je ne sait pas si cette approximation peut te convenir. ça a l'interet de t'éviter de recalculer un maillage.
    Après faut trouver un moyen pour que cela soit pris en compte seulement dans le puit, et pas dans le sol.
    Voila.
    C'est ce à quoi je pense. Mais si le calcul du maillage n'est pas trop long ou trop compliqué, tu peut tenter... ce sera probablement plus juste pour la position de l'interface. Par contre, il te faudra interpoller tes valeurs dans le nouveau maillage en fonction de l'ancien, et ça risque d'introduire des erreurs ..

    Bon courage

  8. #8
    Membre émérite Avatar de genteur slayer
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2002
    Messages
    710
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2002
    Messages : 710
    Par défaut
    ta seule variable est-elle la température???
    je veux dire par là que tu n'as pas d'écoulement de fluide (air ou eau)?
    tu veux connaitre la tempértature où? seulement dans l'eau oubien partout!!! sinon pour savoir où est l'eau c simple elle est dans le domaine définit par z<h



    parce que dans ce cas là, tes seuls inconnues sont T et h où T est la température en tous pointsd et h la hauteur d'eau dans ton puit.

    on a dh/dt=div(q) où q est ton flux 's'évaporant' que tu calcul de façon annexe (dsl je suis pas callé en transition de phase) q est lié à T qui lui est calculer avec une équation du style div(grad(T))=0 (equation de poisson) et les conditions aux bords qui vont bien (surment dépendant de h)ensuite, tu te choisit un schémas numérique par exemple element/volumue finis ou même machins finis (hybride entre les deux précedent) et tu fais résoudre!!!

    CONSEIL (à tous):avant de programmer, il faut poser les équations et les conditions limites, si déjà là, tout est bien posé, la programmation se fait les doights dans le nez!!!

    P.S. il faudrais un module LaTeX dans ce forum genre de balise [LaTeX][\LaTeX] affin de pouvoir posé des équations propres....

  9. #9
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 87
    Par défaut
    Essaies unmaillage radial isosurface c est le mieu pour ton problème.
    Rentre tes condition initiales dans un vecteur entrées et fait tourner...

  10. #10
    Membre éprouvé
    Profil pro
    Inscrit en
    Août 2006
    Messages
    197
    Détails du profil
    Informations personnelles :
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Août 2006
    Messages : 197
    Par défaut
    Un maillage radial isosurface ?
    c quoi ?
    ça ressemble a un nom de type de maillage 3D de logiciel commercial ou qq chose comme nça non?

Discussions similaires

  1. Problème en interfacant C et Fortran
    Par karl3i dans le forum MFC
    Réponses: 6
    Dernier message: 23/05/2006, 16h10
  2. Compilateur Fortran
    Par badrou dans le forum Fortran
    Réponses: 3
    Dernier message: 28/11/2004, 20h39
  3. accès fortran à une base / utilisation des "bytea"
    Par bdkiller dans le forum PostgreSQL
    Réponses: 2
    Dernier message: 05/11/2004, 08h31
  4. Simulateur fortran
    Par kaczmarek dans le forum Linux
    Réponses: 1
    Dernier message: 28/07/2004, 17h55
  5. [TP]Portage d'un encodeur MP3 Fortran en pur Pascal...
    Par Christophe Fantoni dans le forum Turbo Pascal
    Réponses: 11
    Dernier message: 04/07/2003, 17h34

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