TP 2 du cours “Transport de particules : modèles, simulation, et

publicité
TP 2 du cours “Transport de particules : modèles,
simulation, et applications “
(3eme année école ENSEIRB-MATMECA et master MIMSE)
Luc Mieussens
Équipe Calcul Scientifique et Modélisation
Institut de Mathématiques de Bordeaux,
Université de Bordeaux,
351, cours de la Libération, 33405 Talence cedex,
France
([email protected])
1
Équation du transport linéaire
On considère ici l’équation du transport linéaire stationnaire en géométrie 1D, dans un
milieu qui n’intéragit avec les particules que par diffraction. Le modèle (adimensionné) est le
suivant :
σ
(ρ − f ) + εG,
x ∈ [a, b], µ ∈ [−1, 1],
ε
f (x = a, µ > 0) = fG ,
f (x = b, µ < 0) = fD ,
µ∂x f (x, µ) =
où ρ(x) =
1
2
R1
1
(1)
f (x, µ) dµ.
Le but de ce TP est d’étudier la solution de cette équation et les solutions numériques
obtenues par une méthode volume finis, en particulier dans le régime de diffusion (ε petit), et
en présence de couche limite.
2
Schéma numérique
1. Télécharger le programme transport_lineaire.f90 sur cette page :
http://www.math.u-bordeaux1.fr/~lmieusse/PAGE_WEB/enseignement.html
C’est dans ce programme qu’il vous faudra écrire les algorithmes permettant de résoudre
le problème (1).
2. Éditer le fichier transport_lineaire.f90 et étudier le programme principal.
3. Le schéma numérique à utiliser est le suivant :
µ+
k
fi,k − fi−1,k
fi+1,k − fi,k
σ
+ µ−
= (ρi − fi,k ) + εG,
k
∆x
∆x
ε
pour i = 1 à imax et k = 1 à kmax = 16.PLa moyenne ρi est calculée par la formule de
quadrature de Gauss à 16 points ρi = 12 16
k=1 fi,k ωk , et les points de la grille en µ sont
donc les 16 points de Gauss de la formule. Pour i = 1 et i = imax , le schéma fait intervenir
1
les valeurs de f dans les mailles fictives f0,k et fimax+1,k qui sont définies au moyen des
conditions aux limites :
f0,k = fg (µk )
et
fimax+1,k = fd (µk ).
Ce schéma se présente donc comme un système linéaire qu’il faut résoudre.
4. On résoud ce système par la méthode de point fixe suivante :
f n+1
+ i,k
µk
n+1
n+1
f n+1 − fi,k
− fi−1,k
σ
− i+1,k
n+1
+ µk
= (ρni − fi,k
) + εG,
∆x
∆x
ε
n+1
n+1
n+1
avec f0,k
= fg (µk ) et fimax+1,k
= fd (µk ). Écrire l’algorithme qui permet de calculer fi,k
pour tout i et tout k (aide : pour µk > 0 fixé, on a un système triangulaire inférieur, et
pour µk < 0 fixé, on a un système triangulaire supérieur).
5. Programmer ce schéma dans le code, compiler, tester, jusqu’à ce que le code donne un
résultat (stocké dans le fichier rho.dat) qui ait l’air raisonnable.
3
Donnée au bord isotrope
Le code contient les données aux bords suivantes,
fG (µ) = 1
fD (µ) = 0.
avec une opacité constante σ = 1, le nombre de “Knudsen” ε = 0.1, et une source constante
G = 1.
Dans cette section, on détermine la solution asymptotique exacte, et on la compare à la
solution numérique pour différents paramètres.
1. À l’aide de la méthode du développement de Hilbert vue en cours, déterminer l’équation
vérifiée par ρ (la moyenne de f ) dans la limite ε → 0.
2. Résoudre cette équation, et tracer la solution (on conseille de la stocker dans un fichier
pour les comparaisons suivantes).
3. Lancer le code avec ε = 0.1 et imax = 40, puis ε = 0.05 et imax = 80, et enfin ε = 0.01
et imax = 400. Observer l’influence de ε et imax sur la vitesse de convergence du schéma.
Comparer la solution numérique avec la limite asymptotique.
4. À présent, lancer le code avec ε = 0.1 puis ε = 0.05, ε = 0.01, et même ε = 0.001, mais en
gardant imax constant (prendre 40 cellules). Comparer à nouveau la solution numérique
avec la limite asymptotique. Vers quelle solution semble converger la solution numérique
quand on raffine le maillage ?
5. NB : le comportement du schéma numérique dans la limite ε → 0 peut s’analyser en
appliquant le développement de Hilbert au schéma lui-même. Il est alors possible de
montrer que le schéma ne peut préserver la limite asympotique si ∆x ne tend pas vers 0
comme ε.
2
4
Donnée au bord non isotrope : couche limite
À présent, la donnée à gauche est remplacée par fG (µ) = µ. Cette nouvelle donnée change
complètement l’allure de la solution et fait apparaître une couche limite. Ce phénomène est
étudié ici, de façon analytique et numérique.
1. La donnée au bord gauche n’étant pas indépendante de µ, il n’est plus possible que f
tende vers sa moyenne (qui ne dépend pas de µ) près de ce bord quand ε tend vers 0.
Utiliser l’équation (1) pour en déduire l’ordre de grandeur de ∂x f au bord gauche pour ε
petit. Quelle doit alors être l’allure de f au voisinage du bord pour ε petit ? Voyez-vous
ce qu’est le phénomène de couche limite ? Quelle est sa largeur ?
2. On étudie maintenant ce phénomène numériquement à l’aide du code précédent. Modifier
le code pour tenir compte de la nouvelle donnée au bord, puis le lancer avec ε = 0.01 et
imax = 400. Quelle est la largeur de la couche limite ? Cela est-il cohérent avec l’analyse
faite dans la question précédente ? Quelle doit alors être la valeur minimimum de imax
pour voir la couche limite ?
3. Essayer de calculer la solution pour ε = 10−3 (cela est très long : il faut alors compiler le
code en mode optimisé (option -O3)).
4. Malgré ce phénomène de couche limite, il est possible de montrer que f tend bien vers
sa moyenne à l’extérieur de la couche limite. Sa moyenne tend vers la solution de la
même équation asymptotique que celle obtenue section 3, mais la donnée à gauche est
beaucoup plus difficile à obtenir : on peut montrer (par une analyse de couche limite due
à Chandrasekhar) que cette valeur est très proche de 17/24. Comparer alors les solutions
numériques obtenues avec le code à la solution exacte de l’équation asymptotique.
3
Téléchargement