• Aucun résultat trouvé

3. S TRATEGIES NUMERIQUES

3.2.3. Recherche des collisions

Cette méthode de gestion des collisions à pas de temps fixe et unique est moins coûteuse numériquement que la stratégie de Hoomans et al. [78] mais suppose de petits

déplacements de la phase dispersée afin d’éviter que des bulles se croisent complètement sans

interagir. Cette condition est assurée par l’utilisation d’un ∆ suffisamment petit. En effet,

comme indiqué dans la section précédente, l’ordre de grandeur du déplacement des bulles est

∗~ ∆ . Ainsi, pour les tailles de bulles considérées dans ce travail, , > > , , la gamme de pas de temps , > ∆ > , devrait se révéler suffisante pour assurer un déplacement suffisamment faible, i.e. inférieur à la taille de bulles. L’analyse des résultats de

simulations présentée dans la sous-partie 5.1 confirme l’efficacité et la précision de cette méthode.

3.2.3. Recherche des collisions

Dans le but de détecter et de résoudre les collisions, un algorithme est chargé de rechercher ces collisions en testant la distance séparant tous les couples potentiels de bulles. Pour se faire, la manière la plus simple est de noter la position d’une bulle [ , ] et de calculer la distance ‖ ‖ pour chacune des bulles [ , ], ≠ du domaine de calcul. Le coût numérique de cette opération croît proportionnellement à , ce qui peut fortement limiter les capacités à augmenter l’échelle des systèmes simulés. Il est possible de diminuer légèrement le temps de calcul en imposant [ , [ et ] , ], ce qui revient à ne pas tester deux fois le même couple de bulles. Bien que non-optimisée, cette

méthode a été utilisée pour obtenir l’ensemble résultats présentés dans la suite de ce chapitre.

CHAPITRE III. LA SIMULATION NUMERIQUE DIRECTE : MODELE EULERIEN-LAGRANGIEN AVEC COUPLAGE QUADRILATERAL DES PHASES

84 STRATEGIES NUMERIQUES

tel que celui utilisé par Boissonneau et Byrne [65], avec un nombre de bulles simulées

d’environ 45.000 en état stationnaire (cf. partie 4.2 de ce chapitre).

Dans le but d’améliorer les performances du code, cet algorithme a été modifié par la suite pour limiter l’augmentation du temps calcul de la recherche de collisions avec le nombre

total de bulles. Une méthode courante est de diviser le domaine de calcul en sous-domaines de taille bien inférieure. Afin de ne pas créer de confusion avec les sous-domaines utilisés dans la parallélisation du calcul, nous les nommerons les SDC (sous-domaines de collisions). A chaque SDC est associée une liste des bulles contenues à l’intérieur. L’algorithme de recherche des collisions ne va alors pas scanner l’intégralité du domaine de calcul pour assigner des couples potentiels de collision, mais uniquement les bulles contenues dans des SDC adjacents. L’illustration de la Figure 3.6 permet de schématiser ce procédé. Le domaine de calcul, représenté dans le plan , est décomposé, dans la direction , en SDC de longueur . Ici, une bulle contenue dans le 3ème SDC (en partant du bas) est testée avec les autres bulles des SDC 2, 3 et 4 uniquement, ce qui permet de réduire grandement le nombre de tests à effectuer.

CHAPITRE III. LA SIMULATION NUMERIQUE DIRECTE : MODELE EULERIEN-LAGRANGIEN AVEC COUPLAGE QUADRILATERAL DES PHASES

STRATEGIES NUMERIQUES 85

En contrepartie, cette méthode nécessite d’ajouter une étape pour assigner chaque bulle à un SDC avant de résoudre l’algorithme de recherche des collisions. Cette étape induit un

temps de calcul supplémentaire et accroît la quantité de mémoire utilisée par les processus, mais cela est largement compensé par le gain de temps lors de la recherche des collisions. La longueur peut varier selon les cas et plus elle sera petite, plus le nombre de bulles par SDC sera faible. Réduire permet donc de diminuer le temps de recherche des collisions mais en contrepartie augmente la quantité de mémoire utilisée du fait de l’augmentation du

nombre de SDC. Lors des tests effectués pour l’implémentation de cette méthode, la longueur

= , a été retenue et s’est avérée très efficace. La Figure 3.7 montre l’évolution du

temps de calcul, alloué à la résolution des collisions par itération (en échelle logarithmique), en fonction du nombre de bulles contenues dans le domaine. Les résultats simulés avec la recherche des collisions par SDC (croix) démontrent la très grande efficacité de cette méthode par rapport à la méthode de recherche sur le domaine de calcul entier (losange). Pour cette

dernière, l’accroissement du temps de calcul avec le nombre de bulles est beaucoup plus

rapide et devient rapidement un obstacle à la résolution des simulations. Pour un nombre total de 400.000 bulles par exemple, le temps de calcul est ainsi plus de 200 fois plus élevé sans les SDC qu’avec.

FIGURE 3.7 : Evolution du temps de calcul alloué aux collisions en fonction du nombre de bulles pour les deux méthodes de recherche : recherche sur tout le domaine (losange) ou recherche par SDC (croix).

Ces résultats sont très encourageants pour de futurs travaux et laissent supposer que la méthode Eulérienne-Lagrangienne serait adaptée pour des simulations à grande échelle (i.e.

CHAPITRE III. LA SIMULATION NUMERIQUE DIRECTE : MODELE EULERIEN-LAGRANGIEN AVEC COUPLAGE QUADRILATERAL DES PHASES

86 STRATEGIES NUMERIQUES

Concernant la décomposition en SDC, celle-ci est effectuée dans la direction . Il serait possible de décomposer le domaine selon 2 voire 3 directions et ainsi réduire davantage le nombre de bulles testées par l’algorithme de recherche des collisions. Cependant, les tests que

nous avons menés ont montré une efficacité moindre pour la décomposition dans 3 directions par rapport à la décomposition dans le sens de l’écoulement. Ceci s’explique très

probablement par l’augmentation de la mémoire utilisée pour stocker les matrices de données.

De plus, une décomposition du domaine selon les autres directions est déjà effectuée pour la parallélisation du calcul (cf. paragraphe suivant) et permet ainsi de réduire le nombre de bulles gérées par chaque processus.

Documents relatifs