L'outil SnappyHexMesh

Pour utiliser, en tapant la commande snappyHexMesh -overwrite, il est nécessaire d'avoir préalablement créé une géométrie au format .stl ou .obj (description des points et surfaces de l'objet) ainsi qu'un maillage de fond.

Création du fichier .obj ...


SnappyHexMesh peut lire deux types de format pour définir l'objet que l'on souhaite introduire sur le maillage de fond. En effet, cet outil est capable de lire les fichiers .stl ou .obj. Dans notre étude, nous sommes passés par des fichiers de type .obj.

Pour cela, il faut utiliser des logiciels de CAO pour définir une surface fermée par des segments, des courbes ou des points. Le logiciel choisi se dénomme FreeCAD, qui est un logiciel disponible librement et gratuitement ici

Cette étape se résumait à ​définir les premiers points définissant grossièrement la géométrie. Ensuite, pour réaliser les congés à l'avant et l'arrière du train, de nomreux points ont été ajoutés afin de correspondre au mieux à la géométrie désirée. Enfin, il a fallu réaliser une extrusion de cette géométrie 2D afin de lui donner une épaisseur et d'avoir une surface 3D fermée.

Voici ce que l'on peut obtenir au final :

 

Création du premier maillage de "background" ...


Ceci se fait se façon assez classique avec un fichier blockMeshDict. On peut créer le maillage de fond avec la commande blockMesh.

 

Lancement de snappyHexMesh ...


Une fois ce fichier .obj obtenu et bien placé, et une fois le maillage de background créé, on peut lancer snappyHexMesh avec la commande snappyHexMesh -overwrite.

​Concrètement, lancer ce mailleur consiste à réaliser les étapes suivantes : 

Étape 1 : Intersection des mailles avec la géométrie

Repérer les intersections du maillage de fond avec la géométrie et affiner les mailles au niveau de ces intersections. Le niveau de raffinement de ces mailles dépend de ce que l'utilisateur a indiqué dans le fichier snappyHexMeshDict. Le niveau 0 correspond au maillage de fond, le niveau 1 correspond à des mailles deux fois plus petites et ainsi de suite...


Source : http://www.openfoam.org/docs/user/snappyHexMesh.php

Étape 2 : Suppression des mailles solides

Pour l'instant, tout le domaine reste maillé. Il faut pouvoir indiquer à snappyHexMesh quelle est la région qui correspond au solide (à l'intérieur ou à l'extérieur de la géométrie). Cela se fait dans le fichier blockMeshDict.

Voici ci-dessous une illustration du domaine obtenu :


Source : http://www.openfoam.org/docs/user/snappyHexMesh.php 

On voit alors que toutes les mailles sont carrées. Il serait donc utile de pouvoir éviter d'avoir ces mailles carrées au niveau de la surface de l'objet. SnappyHexMesh est capable de gérer cette problématique, comme on peut le voir lors de l'étape 3.

Étape 3 : Amélioration des mailles à la surface de l'objet

Par l'intermédiaire d'une légère déformation des mailles proches de l'objet, on peut réussir à parfaitement suivre les points de la surface de l'objet, comme on peut le voir sur l'image suivante.


Source : http://www.openfoam.org/docs/user/snappyHexMesh.php

                                                  

Cet outil, au premier abord difficile à adopter et à utiliser, reste toutefois extrêmement performant. Son principal inconvénient reste qu'il maille automatiquement le domaine. Par conséquent, l'utilisateur n'a pas un contrôle total sur toutes les mailles, notamment leur qualité.