Stratégie utilisée

Le cas initial ...

Lorsqu'on reprend le tutoriel choisi, à savoir l'étude d'un cône se déplaçant dans un domaine fermé, nous avons pu voir qu'il y avait trois sections distinctes.

Le bloc central, contenant le cône ainsi que les mailles situées entre lui et la paroi supérieure du cône, se translatait de la gauche vers la droite. Il est important de noter que l'on pourra incorporer la géométrie du train dans ce bloc central.
De part et d'autre de cette partie centrale du domaine, chacun des blocs se dilate (celui de gauche) ou se contracte (celui de droite). Cela permet bien évidemment de conserver un domaine aux dimensions fixes, mais un problème majeur important se met en valeur : celui de la déformation des mailles.

Pour mettre en place notre raisonnement, rappelons que nous conserverons toujours cette idée de séparer le domaine en 3 blocs. le bloc central contiendra la géométrie complexe maillée avec snappyHexMesh :


Le problème rencontré ...

 

En effet, à l'instant initial, le maillage semble un peu trop contracté à gauche et un peu trop étiré à droite. Cependant, au fur et à mesure que le calcul avance, le bloc central se translate vers la droite. Ainsi, le bloc de gauche, qui avait initialement des mailles compactes, voit ses volumes de contrôle s'étirer de manière conséquente. A l'inverse, les mailles du bloc de gauche de resserrent de façon non négligeable.

On peut illustrer cette déformation avec ces deux images. la première est l'instant initial du cas de base fourni par OpenFOAM. La seconde correspond à l'instant final.

Globalement, le maillage nous paraît être de mauvaise qualité si l'on discute en terme de ration "hauteur par rapport à longueur" lors des instants initial et final. Concernant notre étude, ce domaine sera assimilé à un tunnel. Le domaine sera donc encore plus long que celui du tutoriel. Les blocs de gauche et de droite seront encore plus déformés. Dès lors, il nous paraissait inconcevable d'utiliser cette technique sans rien modifier tant la pauvreté du maillage rendrait notre confiance en ces résultats assez faible.

 


La solution envisagée ...

L'idée est de résoudre cette problématique tout en conservant ce solveur qui sépare le domaine de calcul en 3 blocs distincts.

Il faudrait alors, à l'instant initial, mailler le domaine de manière à avoir un maillage à la qualité satisfaisante. On exécute OpenFOAM et le solveur pimpleDyMFoam afin de réaliser les premières itérations. Le maillage est alors légèrement déformé au cours de ces itérations.

Toutefois, ce premier calcul n'ira pas au terme de la simulation. En effet, nous considérons que au bout d'un certain temps $t_0$, le maillage aura été trop déformé, on s'arrête à cet instant là. Il faut alors retenir la solution de chaque champ des différentes variables calculées (U, p, k, $\epsilon$, etc ...). Une fois retenue cette solution à $t=t_0$, il faut alors remailler le domaine de manière à avoir une qualité de maillage de nouveau satisfaisante. A partir de ce nouveau maillage, on peut relancer le solveur pimpleDyMFoam. On réalise encore quelques itérations jusqu'à ce qu'on arrive à une date $t=t_1$ où l'on considérera que la qualité du maillage n'est plus assez satisfaisante. On retiendra les différents champs des grandeurs calculées pour appliquer cette solution à un nouveau troisième maillage pour relancer une troisième sous-simulation. On procède ainsi jusqu'à ce qu'on ait atteint le temps final de simulation désiré.

Concrètement, afin de choisir ces dates $t_i$ où il faudra remailler et donc changer de sous-simulation, nous diviserons la simulation complète en N sous simulations. Ainsi, pour une durée de simulation de T secondes, nous remaillerons le domaine toutes les $\frac {T}{N}$ secondes. Il faut ensuite choisir ce paramètre N de manière avoir suffisamment de sous-simulations pour toujours conserver un maillage ayant une qualité recevable.

Enfin, nous verrons dans la paragraphe suivant que OpenFOAM a un outil extrêmement pratique permettant d'appliquer une condition initiale particulière à un calcul. Cette condition initiale peut tout à fait venir d'un calcul déjà effectué. Si le maillage est différent, OpenFOAM pourra interpoler les champs de toutes les grandeurs de l'ancien maillage sur le nouveau maillage.


Par la figure ci-dessous, nous pouvons donc schématiquement représenter notre vision du problème et notre organisation pour traiter le parcours complet du train dans un tunnel. La page suivante permettra alors de retranscrire cet idéogramme avec un script en bash.