Guide d’utilisation
OpenFOAM
Intro
Ce guide a pour objectif d’apprendre à faire une simulation cfd à l’aide
du solver OpenFOAM.
La simulation ce déroule en plusieurs étapes que nous détaillerons:
- Maillage du système avec le logiciel SALOME
- Calcul de la simulation avec OpenFOAM
- Traitement du résultat avec ParaView
Maillage
• La première étape est donc de mailler le système, pour ce faire il faut
utiliser le logiciel SALOME
• Allez dans « geometry »
• Puis File/Import/STEP
Choisissez votre volume à mailler qui doit être
au format STEP
Un message apparaît pour demander si il faut
prendre en compte les unités du fichier, cliquez
sur Yes.
• Vous pouvez utiliser l’outil « Reset » pour centrer votre
objet
• Pour vous assurer que votre objet a bien été importé aux
dimensions voulues, vous pouvez aller dans
Inspection/Dimensions/Bounding Box
Pour le paramétrage des conditions du système
(pression, vitesse du fluide etc..) OpenFOAM doit
connaître certaines surfaces spécifiques à savoir
les entrées, les sorties de fluides et les « murs »
(inlet, outlet, walls). On doit donc partitionner
notre volume en un groupement de surfaces.
- Pour ce faire on va dans
NewEntity/Group/Create Group
- Dans Shape Type il faut sélectionner le
« carré » qui correspond aux surfaces
- Dans group name, choisissez le nom de votre
groupe
- Dans main shape, sélectionnez votre volume
que vous pouvez trouver dans l’arborescence
- Et enfin sélectionnez la surface que vous
voulez et cliquez sur add. Un numéro rouge
correspondant à votre surface apparaît alors
dans la « boîte blanche »
- Cliquez sur Apply en bas de la fenêtre et
recommencez jusqu’à avoir défini toutes vos
surface.
Remarque : pour sélectionner plusieurs surface,
maintenez la touche shift
Dans mon exemple j’ai 3 groupes : inlet, outlet,
walls
inlet outlet walls
• On se place maintenant dans le
module « mesh » pour éditer notre
maillage
• Cliquez sur l’icône encadré en rouge
pour créer un maillage
• Choisissez votre volume à mailler et
choisissez un algorithme de maillage.
J’ai personnellement utilisé NETGEN
3D et NETGEN 1D-2D
En cliquant sur le petit engrenage on peut
éditer la taille des mailles. Dans un premier
temps vous pouvez laisser les paramètres
par défaut pour voir à quoi ressemble le
maillage. Puis l’affiner dans un second temps
si besoin.
Dans l’arborescence, faites un clique droit
sur votre maillage, puis cliquez sur
« compute »
Si le maillage vous convient,
selectionnez Mesh_1 puis allez dans
file -> export -> UNV file
On choisit le format UNV qui est
facilement exploitable par OpenFOAM
Résolution de la simulation avec OpenFOAM
Maintenant que notre maillage est prêt, on peut préparer notre solver.
Nous utilisons donc OpenFOAM qui est un logiciel opensource qui ne
dispose pas d’interface, on doit donc le piloter par le terminal de
l’ordinateur. De plus c’est un logiciel Linux, ainsi lorsqu’on est sur
windows on doit utiliser un émulateur Linux pour utiliser le logiciel.
Nous utiliserons Ubuntu qui est un OS dérivé de linux.
Dans ce tutoriel je suppose que OpenFOAM est déjà installé sur
l’odinateur.
• Commencez donc par ouvrir le
terminal ubuntu en tapant
« ubuntu » dans la barre de
recherche windows.
• Un terminal devrait s’ouvrir
• Pour vérifier qu’OpenFOAM est
bien installé, entrez la
commande blockMesh. Vous
devriez obtenir l’affichage
suivant.
-créez un dossier « simulations » dans /mnt/c/Utilisateurs/2882-***/
-dans l’explorateur de fichier, allez dans linux/Ubuntu/home/ «utilisateur »/OpenFOAM/application/solvers
Ce dossier contient les différents solvers OpenFOAM.
On comprend ici que le logiciel est
très complet avec des solvers qui
permettent de nombreux type de
simulation autre que les fluides.
- Vous devez maintenant utiliser le solver le plus adapté pour réaliser votre simulation. Pour avoir une
description de chaque solver cliquez sur le dossier de celui qui vous intéresse et ouvrez avec votre éditeur
de texte le fichier .C
- Dans l’exemple ci-dessus il s’agit du solver simpleFOAM qui
est adapté pour résoudre des problème d’écoulements
turbulents de fluides incompressibles en régime permanent
• Le nombre de Reynolds permet de situé le régime dans lequel on se trouve.
• J’ai créé un calculateur excel qui permet de le déterminer.
- Pour ma simulation je choisis le solver simpleFOAM. Si vous prenez un solver différent, la démarche est tout
à fait similaire, vous pourrez donc l’adapter à votre cas.
- Allez dans OpenFOAM/tutorials/incompressible/simpleFOAM/ , copiez le tutoriel qui se rapproche le plus
de votre situation, puis collez le dans votre dossier simulation. Vous pouvez le renommer par exemple simu
- Collez votre maillage dans le dossier comme ci-dessus
- Maintenant ouvrez le terminal UBUNTU et rendez vous dans le dossier que vous venez de créer.
- La commande pour changer de dossier est cd /chemin_à_suivre/
- Ainsi dans votre cas ça devrait être cd /mnt/c/Users/2882-***/simulations/simu
- Entrez ensuite la commande ideasUnvToFoam Mesh_coude
• Cette commande permet d’importer les données du maillage dans les dossiers OpenFOAM
• Allez ensuite dans votre dossier simu puis dans /constant/polyMesh
• Ouvrez boundary à l’aide de votre éditeur de texte, vous devriez alors voir
Les différents groupes que vous avez défini au moment du maillage
- Par défaut tous les groupes sont définis en type « patch », vous devez changer
en type « wall » le groupe constituant vos surfaces « murs »
• On définit maintenant les paramètres pour lancer notre simulation, on se dirige cette fois vers le dossier 0
• On y trouve les fichiers suivants qui correspondent à chacun des paramètres de la simulation.
U et p sont respectivement la vitesse et la pression statique du fluide. k/ epsilon/ nut/nutilda/omega sont tous
des paramètres qui permettent de quantifier la « turbulence » du fluide.
Dans les slides qui suivent vous pourrez voir mon paramétrage. J’ai utilisé le tableur précédent pour calculer k
et epsilon. Il faudra que vous trouviez les paramètres adéquat pour votre système.
Dans les fichiers vous pourrez voir
une ligne « dimensions [0 1 -1 0 0
0 0] » il s’agit des unités de la
valeur ici des m/s. Elle est organisé
ainsi : dimensions [M L T Θ N I J]
Ensuite dans boundaryField on
définit les conditions du système. Il
faut modifier les fonctions de
bases et en créer une pour chaque
partition du système.
• Voici quelques fonctions qui peuvent être utilisée pour créer vos conditions:
fixedValue : impose une valeur constante au champ
uniformFixedValue : valeur imposée uniforme, souvent utilisée avec une fonction temporelle
zeroGradient : gradient normal nul à la frontière
flowRateInletVelocity : impose un débit volumique ou massique à l’entrée
flowRateOutletVelocity : impose un débit volumique ou massique à la sortie
noSlip : vitesse nulle au mur
movingWallVelocity : mur en mouvement avec une vitesse imposée
rotatingWallVelocity : mur en rotation
kqRWallFunction : condition murale pour énergie turbulente k
epsilonWallFunction : modélise epsilon près du mur
nutkWallFunction : viscosité turbulente au mur
Ce ne sont ici qu’un échantillon de toutes les fonctions qui peuvent exister, il faut les chercher sur des forums
ou dans le code source.
Avant de lancer la simulation, une dernière chose que l’on
peut régler est le controlDict que l’on peut trouver dans
/system/
On peut régler:
-le pas de temps deltaT
-le temps de début de simulation startTime
-le temps de fin de simulation endTime
-le temps d’intervalle d’écriture writeInterval
Ici le writeInterval est à 50 ce qui signifie que tous les 50
calculs, un fichier va apparaître dans votre dossier avec les
informations nécessaires pour le post-traitement.
On peut maintenant lancer la simulation, pour ce faire
il faut entrer la commande simpleFoam (nom de votre
solver). On voit alors le calcul qui commence.
Une fois le calcul terminé, entrez la commande touch
visu_simu.foam (vous pouvez ici mettre le nom que
vous voulez mais attention de bien terminer par
.foam). Cela va créer un fichier .foam dans votre
dossier que l’on va pouvoir injecter dans notre logiciel
de post-traitement.
Post-traitement
• Ouvrez maintenant ParaView et glissez directement dessus le fichier .foam , vous devriez voir apparaître votre fluide. Vous
pouvez alors choisir si vous voulez observer le champs de vitesse ou de pression. Vous pouvez tracer des lignes de champs
à l’aide de la fonction streamtracer que vous pouvez trouver en tapant ctrl+espace
Champ de pression Lignes de champ de vitesse
FIN
• Il ne vous reste plus qu’à interpréter vos résultats !
Voici des liens vers des tutoriels que j’ai utilisé :
[Link]
[Link]
[Link]