Implémentation du problème physique au sein du code

Pour lancer ces simulations, nous allons ainsi utiliser le maillage mobile avec le solveur pimpleDyMFoam. Afin de prendre compte de la sphère solide qui se déplace, nous avons utilisé le mailleur automatique snappyHexMesh en ayant préalablement défini la conduite circulaire.

En revanche, pour des raisons de ressources de calculs, nous devrons nous restreindre à un cas bidimensionnel. En effet, réaliser une étude paramétrique avec un maillage mobile de 2.6 millions de mailles nous paraît irréalisable dans le temps imparti pour ce BEI. Nous devons donc bien nous rendre compte que le cas étudié n'est pas vraiment le même et ceci peut être source de non concordance entre nos résultats et ceux de la thèse.


Définition de la sphère ...

Pour prendre en compte la sphère, nous allons utiliser le mailleur snappyHexMesh. Ainsi, il nous faut un fichier .obj. Ceci peut être obtenu, en 3 dimensions, avec le logiciel Paraview. Il faut en effet, après avoir lancé le logiciel, cliquer sur "Source" puis "Sphere". Une sphère s'affiche alors à l'écran. On exporte ensuite cette sphere au format x3d qui peut être finalement converti en .obj.

Cette sphère fait donc, comme dans la thèse, 1 mètre de diamètre et aura une vitesse imposée de 1m/s, et est placé selon les cas plus ou moins proche de la paroi du domaine.

Voici finalement le maillage, autour de la sphère, que l'on obtient :


Définition du domaine ...

La stratégie employée est toujours celle décrite précédemment avec une séparation du domaine en 3 blocs. Le bloc central, en translation, contient la sphère et et les deux autres se contractent ou s'étirent.

Voici donc schématiquement comment ce domaine peut être représenté :

Au final, le maillage complet comporte 28 000 cellules. Nous aurons donc une longueur caractéristique de maille du même ordre de grandeur que le maillage utilisé pour la thèse sachant que ce dernier contient 2.6 millions de mailles mais réalise un calcul en trois dimensions.

Pour ce cas de la sphère, nous avons choisi de diviser la simulation en 10 sous-simulations afin de conserver un maillage de qualité correcte. Par conséquent, voici le type de simulation que l'on peut obtenir :


Obtenir le coefficient de traînée avec OpenFOAM ...

Ce paragraphe traite de l'évolution du coefficient de traînée Cx de la sphère dans l'écoulement. Il faut ainsi expliquer comment nous avons pu avoir accès à ce coefficient. Ce dernier est issu de la force de traînée qui est présente suite aux effets visqueux de l'écoulement ainsi que les efforts de pression de l'écoulement sur la surface de la sphère. On peut relier Cx à cette force par la relation suivante :

$ F_x=\frac {1} {2} \cdot \rho \cdot S \cdot C_x \cdot V² $

Grâce aux données de la vitesse et de pression autour de la sphère, il aurait été tout à fait possible de remonter à la force de traînée en réalisant une intégrale sur la surface de cette sphère.

Cependant, directement dans le fichier controlDict et par OpenFOAM, il est possible d'importer la librairie libforces.so qui permet ensuite d'obtenir comme résultat un coefficient de traînée. L'utilisateur doit indiquer une vitesse de référence (la vitesse de la sphère dans notre cas), une longueur de référence (le diamètre), une densité de référence ainsi qu'une surface de référence. Cette surface de référence, dans notre cas 2D, est calculée à partir du diamètre que l'on multiplie par l'épaisseur de la maille dans la troisième direction. Cette surface correspond en effet à la surface apparente de la sphère, vu par l'écoulement.

Voici par conséquent ce qu'il a fallu ajouter à la fin du fichier controlDict :

 

En ayant inséré ce paragraphe dans le fichier controlDict avant de lancer les calculs, OpenFOAM créera alors un dossier intitulé forceCoeffs où sera présent un fichier comportant le coefficient de traînée.

 


Les paramètres numériques ...

 

Enfin, nous avons utilisés les paramètres numériques suivants pour la résolution du problème sous OpenFOAM :

Solveur Discrétisation temporelle Discrétisation spatiale Pas de temps (s) Temps Final (s)
PimpleDyMFoam

Euler implicite,
Ordre 2

Gauss, Ordre 2 10-3 10