Quelques commentaires sur le programme de simulation de l'instabilité de Rayleigh-Benard


1 Première partie : génération du fichier Q1 de base

2 deuxième partie : modification du fichier Q1

3 Modification du ground

retour menu principal

.

.

.

.

.

.

.

.

.

.

.

.

Fichier de base


Nous avon généré le fichier Q1 à l'aide du menu du satellite à l'aide du menu suivant.

titre de la simulation

On génère un maillage cartésien carré (0.01m de côté) : Lx=Ly=0.01m ; Lz=1m ; Nx=Ny=20 ; Nz=1

On sélectionne le nombre de mailles dans dimension et les différemtes longueur du domaine dans domain

On choisit des équations du type elliptique. En effet, on aurait pris un type parabolique s'il y avait une direction privilégié comme dans un jet. Pour notre cas, il n'y a pas de direction privilégié, l'écoulement dépend de toutes nos conditions aux limites.

Le mode conjugate heat transfert (transfert de chaleur) est inactif. On résoud donc l'enthalpie. Le mode actif aurait permis de résoudre la température dans un solide notamment.

Dans variables to be solved/stored , on choisit les variables que l'on veut résoudre. Ici on choisit de résoudre la pression et la vitesse en laminaire ainsi que la température.

On choisit le type de fluide que l'on veut résoudre : eau, air ou autre que l'on peut définir.

On ne met aucune conditions initiales.

On choisit les différents conditions aux limites que l'on veut imposer. Ici, on choisit d'appliquer des conditions de mur en y=0 et en y=0.01. Pour rentrer ces conditions dans Phoenics, on utilise 1 ou 2 suivant que l'on veut être en x=0 ou x=0.01, de même pour y.

Aprés avoir défini ces murs, on y impose quelques propriétés physiques : le frottement est laminaire et on fixe l'enthalpie.

On impose également des forces de gravité : Gravity Forces active. On fait alors l'approximation de Boussinesq. La température et la densité sont alors couplées.

Dans ce menu, on peut donner les conditions de calcul comme nombre d'itération.

Cette option permet de donner la fréquence de visualisation des résidus lorsque l'algorithme de résolution tourne.

retour début

retour menu principal


.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

.

Modification du fichier Q1


Pour que notre programme puisse tourner comme normalement, il faut faire encore quelques modifications du fichier Q1. Nous allons donc examiner les différents groupes les uns après les autres.

On fait apparaître explicitement Nx et Ny afin de pouvoir les changer plus facilement. Le dernier facteur 1 indique que notre mailliage est symétrique.

On écrit explicitement les conditions aux limites en fonction des Nx et Ny. De plus, pour pouvoir contrôler le nombre de Rayleigh, on introduit une variable DDDT qui est la différence de température entre les deux plaques. (cette variable est déclaré dans le groupe 1)

Ici Buoyd est égale à : BUOYD=-beta/Cp où beta=-1/v*dv/dT

Ce groupe est très important pour pouvoir contrôler la convergence du logiciel. La relaxation permet d'empêcher la solution d'osciller.

Pour la vitesse, on prend une relaxation avec un faux pas de temps (FALSDT). En effet, elle crée un pas de temps fictif. Si ce pas de temps est petit, le calcul est influencé par le voisinnage. Si le pas de temps est grand, il ne subit aucune influence de ce voisinnage. Si la relaxation est très importante, la solution ne converge pas forcément vers la bonne solution. En effet, dans le cas d'une forte relaxation, le calcul ne peut pas s'écarter des conditions initiales. Le faux pas de tempos est égale à : deltat=Lmaille/u où u est une vitesse à déterminer avec les caractéristiques de l'écoulement, elle est appelée ici Vref et on la prendra de l'ordre des vitesses maximales atteintes dans notre écoulement. On introduit dans notre expression (Cf. expression ci-dessous) un coefficient en plus qui traduit le nombre de CFL.

Pour la pression, on choisit de prendre une relaxation linéaire car la pression n'est pas transportée.

vref et coeff sont déclarés dans le groupe1.

retour début

.

.

.

.

.

.

.

.

.

.

.

.

.

Modification du ground


Malgré la relaxation, notre calcul a toujours du mal à converger. En effet, on travaille avec un système instable qui hésite entre deux écoulement : soit un écoulement où la cellule tourne dans le sens des aiguilles d'une montre, soit un écoulement où la cellule tourne dans le sens inverse des aiguilles d'une montre. Pour améliorer la convergence, il faut forcer l'écoulement dans un sens ou l'autre par l'intermédiaire des confitions initiales. Pour imposer ces conditions initiales, nous allons modifier le fichier Ground de Phoenics. On modifie donc le groupe 11 qui contient les initialisations.

On initialise la vitesse V1 de la façon suivante : V1(x,y)=amplitude*sin(pi*y/ly)*sin(2pi*x/ly) ainsi nous alons pouvoir forcer les cellules à tourner dans le sens des aiguilles d'une montre. L'amplitude de notre condition initiale est fixée avec RG(1). Cette grandeur sera déclaré dans le groupe 1 du fichier Q1 ainsi l'utilisateur pourra modifier cette amplitude sans devoir recompiler le Ground à chaque fois.

Tous les variables sont stockées dans un seul vecteur, le vecteur F. Pour retrouver la valeur de début de stckage, il suffit de faire : L0F(variable). Cette fonction renvoie le numéro dans F du 0ième élement .

Une fois, le Ground modifié, il faut modifier le fichier Q1 comme suit.

retour début

retour menu principal