• Aucun résultat trouvé

collisions conduiront `a des distributions de vitesses de sortie conformes `a celles pr´evues par l’utilisation de la section efficace de de diffusion dans la cin´etique des mol´ecules r´eelles.

3.1.2 Objectif de la simulation

L’objectif principal de notre simulation est de calculer des param`etres macrosco-piques caract´eristiques des ´ecoulements (notamment en r´egime transitionnel et proche mol´eculaire libre) dans les microtubes et les microcanaux. La question que l’on peut se poser est : pourquoi ´elaborer son propre programme alors qu’il existe de nombreux lo-giciels commerciaux ou universitaires qui permettent de traiter de nombreux probl`emes de DSMC. En fait ces logiciels sont g´en´eralement de tr`es gros codes qui ont pour but de simuler, les entr´ees d’engins spatiaux dans des atmosph`eres rar´efi´esDietrich & Boyd

(1996). Pour les probl`emes que nous voulons traiter (calcul des d´ebits massiques, des profils de vitesses . . . dans les microtubes et les microcanaux) ils ne sont pas adapt´es car ils traitent d’´ecoulements largement supersoniques Dietrich & Boyd(1996), Wu & Tseng (2001), alors que les notres ont des vitesses de quelques m`etres par seconde. Il nous faut donc r´eduire drastiquement le bruit statistique en multipliant le nombre de particules test (i.e. de simulation) dans chaque cellule (jusqu’`a 100000Sun & Boyd

(2002)) et par cons´equent diminuer le nombre de cellules. De plus dans les probl`emes de microfluidique les conditions d’entr´ees et de sorties tournent autour de la d´etermination de conditions de flux. Alors que dans les probl`emes de rentr´ee atmosph´erique les condi-tions amont loin de la paroi (o`u la vitesse du gaz est l’oppos´ee de celle de l’engin) sont parfaitement connues.

Enfin, comme de plus nous voulons g´erer un grand nombre de particules, notre code doit ˆetre capable de fonctionner en parall`ele sur les machines en r´eseau multi-processeurs de notre laboratoire. Toutes ces exigences nous ont dissuad´e d’utiliser le code commercial deBird(1994) comme l’ont faitXue et al.(2000), Wang & Li(2004) et ont rendu, selon nous, n´ecessaire la conception de notre propre logiciel.

Ce logiciel doit ˆetre sˆur et facilement ´evolutif pour ˆetre en ad´equation permanente avec nos besoins qui changent en fonction du d´eveloppement de notre recherche. Cet outil sera programm´e suivant les principes de la programmation orient´ee objet. En effet, elle permet la r´eutilisation des codes, i.e. son caract`ere ´evolutif, par la mise en oeuvre de l’h´eritage et du polymorphisme. De plus l’encapsulation des donn´ees et des fonctions sensibles accroˆıt la s´ecurit´e du logiciel. A notre connaissance, il n’existe qu’un seul programme de DSMC bas´e sur ces principes celui deDietrich & Boyd (1996).

3.2 DSMC et programmation orient´ee objet

La programmation orient´ee objet (POD) a permis de faire progresser la fiabilit´e, la maintenance et le caract`ere ´evolutif des logiciels dans de nombreux domaines. Tradi-tionnellement, depuis Bird (1994) , les programmes de DSMC sont ´ecrits en Fortran. Nous allons voir ici ce que peut apporter la POO dans ce type programme lorsqu’il est

´ecrit en C++ Stroustrup(1991) et Milewski(2001). Penser objet, c’est d’abord analy-ser les constituants de notre probl`eme, leurs comportements et leurs interactions. Cette analyse nous guidera dans la conception des classes `a partir desquelles nous fabrique-rons les objets qui simuleront de mani`ere correcte et efficace les propri´et´es physiques d’un syst`eme exp´erimental ou d’un mod`ele.

3.2.1 Les particules tests

Il s’agit tout d’abord de d´ecrire le mouvement des particules test, donc de connaˆıtre leurs positions et leurs vitesses. Les positions changent `a chaque pas de temps en fonction de la vitesse. En fin de pas de temps les vitesses changent sous l’effet des collisions conformement au mod`ele de section efficace que l’on adopte. Pour cela, il faut des donn´ees suppl´ementaires qui sont caract´eristiques des esp`eces mol´eculaires repr´esent´ees par les particules tests comme la masse, le rayon, l’exposant de la loi de puissance qui d´ecrit l’interaction en fonction de la temp´erature et que l’on peut relier simplement `a la viscosit´e, au moins en r´egime continu, (mod`ele VHS)Bird(1994). Si on ´etudie des esp`eces mol´eculaires qui ont une structure interne (diatomique par exemple), il faut encore d’autres donn´ees pour d´ecrire les modes internes (vibrations, rotations), leurs couplages et leur effets sur la dynamique de la collision. Par cons´equent, chaque particule test sera caract´eris´ee par ses vecteurs position et vitesse ainsi que par les propri´et´es physiques de son esp`ece1.

3.2.2 Les parois

Pour d´eterminer compl`etement le mouvement des particules test, il faut connaˆıtre la mani`ere dont elles rebondissent sur les parois du dispositif. Diff´erents op´erateurs kernels peuvent ˆetre employ´es pour traiter les rebonds sur diff´erents types de parois imperm´eables : parois parfaitement diffuses, purement sp´eculaires, parois `a r´eflexion Maxwellienne isotropes (Maxwell(1878)), r´eflexion de type Cercignani-Lampis ( Cerci-gnani & Lampis (1971)), ou r´eflexions anisotropes Dadzie-M´eolans (Dadzie & M´eolans

(2004),M´eolans & Dadzie(2005)). Ces op´erateurs repr´esentent une probabilit´e permet-tant de relier le flux de mol´ecules r´efl´echies par la paroi au flux de mol´ecules incidentes. Dans l’approche DSMC, il faut traduire tout cela en terme de probabilit´e : notamment la probabilit´e pour les mol´ecules de quitter la paroi dans une direction donn´ee avec une vitesse donn´ee2. Pour garder le maximum de flexibilit´e au programme, les objets parois sont mis en œuvre a travers une hi´erarchie de classes en utilisant le m´ecanisme des fonctions virtuelles.

1. Ce sont ces caract´eristiques qui se traduiront en donn´ees membres de la classe d´ecrivant les objets particules test.

3.2 DSMC et programmation orient´ee objet

3.2.3 Les cellules

Une fois le mouvement des particules test d´etermin´e, il faut ˆetre capable de calcu-ler des valeurs moyennes comme des pressions, des temp´eratures, des flux thermiques, des vitesses d’´ecoulement, des d´ebits . . . Dans le cadre de l’hypoth`ese des milieux continus ces quantit´es apparaissent comme des champs scalaires, vectoriels ou tenso-riels d´ependant du temps, reli´ees entre eux par des ´equations int´egro-diff´erentielles. Les propri´et´es de sym´etrie permettent d’envisager des solutions de dimension r´eduite plus facile `a trouver. Dans un probl`eme de DSMC, l’´evaluation des valeurs moyennes des propri´et´es mol´eculaires est d´evolue aux cellules. Pour que les valeurs moyennes ne soient pas trop fluctuantes, il faut un nombre suffisant de particules test par cellules1 . C’est donc la pr´ecision souhait´ee sur ses valeurs moyennes que va d´ependre le temps de calcul. Pour caract´eriser une cellule, il faudra, bien sˆur, des donn´ees g´eom´etriques de position et de dimensionnement mais aussi la donn´ee du nombre de mol´ecules que repr´esente, dans chaque cellule, une particule test. La donn´ee de ce nombre permet de compa-rer les valeurs moyennes calcul´ees sur les particules test aux quantit´es physiquement mesurables.

3.2.4 Les sous cellules

Comment peut on relier les particules test au cellules ? Il faut analyser pour cela la mani`ere dont sont trait´ees les collisions entre particules test. Comme le traitement des collisions est s´epar´e du mouvement, il faut choisir un pas de temps qui est petit devant le temps moyen entre deux collisions pour ne pas introduire un biais trop important. Du point de vue algorithmique, nous verrons dans le paragraphe3.4.4que le probl`eme des collisions qui est normalement de complexit´e N2, peut se r´eduire `a un probl`eme de complexit´e N . Cet algorithme ne met pas en jeu les positions relatives des particules. Mais cette insuffisance n’est pas tr`es grave si les collisions s’effectuent dans un volume r´eduit c’est pourquoi, pour accroˆıtre la pertinence de la simulation, on divise les cellules en sous cellules de taille convenable et c’est au sein d’une mˆeme sous-cellule que seront trait´ees les collisions. Ce sont donc les sous cellules qui stockeront les particules tests.

3.2.5 La classe de simulation

La pr´ec´edente analyse du rˆole respectif des cellules et sous-cellules permet de com-prendre la fa¸con dont doit se faire le d´ecoupage de l’espace contenu dans le dispositif `

a simuler. La taille et le nombre de cellules sont d´etermin´es par la nature de la pro-pri´et´e physique que l’on veut ´etudier. Par exemple, quand on ´etudie le d´ebit massique2 du gaz dans un micro-canal, celui-ci peut ˆetre d´ecrit par une seule cellule puisque, en r´egime permanent, cette quantit´e est conserv´ee `a travers toutes les sections du tube. Par contre pour ce mˆeme microcanal, si l’on veut d´eterminer comment se comporte

1. Ce nombre d´epend du cas physique ´etudi´e, de quelques dizaines pour un ´ecoulement supersonique `

a quelques milliers pour un ´ecoulement subsonique microfluidique

la pression le long de l’axe du tube, nous d´ecouperons le conduit suivant ses sections droites en cellules ´equidistantes si nous pressentons que le gradient de pression est constant ou quasi constant. Si nous voulons ensuite d´eterminer le profil transversal de la vitesse de l’´ecoulement parall`ele `a l’axe, nous subdiviserons les cellules pr´ec´edentes suivant la hauteur du microcanal.

D’autre part le d´ecoupage en sous-cellules, qui ne sert qu’`a traiter de la mani`ere la plus r´ealiste possible, les collisions des particules test, doit ˆetre bas´e sur un rapport ad´equat entre le pas de temps et le temps moyen entre collision (courament 1/20). Le rˆole de la classe simulation sera de traduire cette analyse en programme en organisant l’interactions des briques ´el´ementaires que nous avons d´ecrites dans les paragraphes pr´ec´edents. Cette classe connaˆıt donc la g´eom´etrie du probl`eme `a r´esoudre et les quan-tit´es dont on veut d´eterminer les valeurs moyennes. Cela signifie que c’est elle qui fixe la mani`ere dont les cellules et les sous-cellules sont r´eparties dans l’espace. C’est elle qui g`ere le mouvement des particules test, y compris les rebonds sur les parois, qui ont lieu durant le pas de temps. A la fin du pas de temps, elle indique, en fonction de la position de la particule, `a quelle cellule et sous cellule elle va appartenir. Elle s’occupe du reclassement des particules en fonction de cette information et finalement elle g`ere les collisions. En cas de parall`elisation du code, elle g`ere aussi les ´echanges de particules test entre les processeurs.