FreeCAD est un modeleur 3D paramétrique open source principalement conçu pour modéliser des objets réels de toute taille. Grâce à sa communauté active, il intègre également de nombreuses fonctionnalités, dont un module pour effectuer des analyses par éléments finis (AEF).
La méthode des éléments finis (MEF) est la méthode numérique la plus utilisée pour effectuer des simulations physiques dans des domaines tels que la mécanique, la thermique ou l'électrostatique. Elle peut même être utilisée pour effectuer des simulations de dynamique des fluides et pour résoudre des problèmes multi-physiques. De nombreux solveurs, y compris des solveurs libres et open source, implémentent cette méthode. L'atelier FEM de FreeCAD intègre ces solveurs dans FreeCAD, ce qui permet d'utiliser ses capacités de modélisation au sein d'une interface graphique unifiée.
Le plugin de Qarnot permet d'envoyer le calcul AEF sur la plateforme de Qarnot, vous faisant ainsi économiser du temps et de la puissance de calcul. Il permet également d'envoyer plusieurs simulations à la fois ou de laisser une simulation s'exécuter pendant la nuit pendant que l'ordinateur est éteint.
La macro fonctionne avec FreeCAD 0.19, sorti en 2021. Elle ne fonctionne pas avec les versions précédentes.
La macro prend actuellement en charge les solveurs suivants :
Si une autre version ou un autre solveur vous intéresse, veuillez nous envoyer un e-mail à qlab@qarnot.com.
Assurez-vous de remplir les prérequis Qarnot avant de lancer le cas :
pip install qarnot
.Vous aurez également besoin de FreeCAD avec Gmsh installé et de la macro. Voici comment les installer :
.AppImage
téléchargé, utilisez la commande chmod +x FreeCAD_0.19****.AppImage
pour le rendre exécutable.apt-get
qui installe une version obsolète. Exécutez gmsh
pour vous assurer qu'il est correctement installé./home/gmsh-4.8.4-Linux64/bin/gmsh
).apt-get
si vous êtes un utilisateur Linux.FemCloudComputingQarnot.FCmacro
dans le dossier macro.FemCloudComputingQarnot.FCmacro
et cliquez sur Modifier à droite.sys.path.insert(1, '*******')
en remplaçant les étoiles par le dossier dans lequel le code a été téléchargé. Par exemple, sur mon ordinateur, ce serait sys.path.insert(1, '/home/alexis/.FreeCAD/Macro/qarnot-freecad-plugin')
.c. Si vous utilisez la version 0.19.3 ou ultérieure, vous devrez également indiquer à FreeCAD où vous avez installé le SDK Qarnot. Pour ce faire, ouvrez une console Python standard et exécutez :python import qarnot qarnot.__file__
Ensuite, dans la macro, sous la première ligne sys.path.insert
, ajoutez-en une deuxième avec le chemin d'accès au SDK imprimé. Par exemple, si la console affiche /usr/local/lib/python3.8/dist-packages/qarnot/__init__.py
, la ligne sys.path.insert(1, '/usr/local/lib/python3.8/dist-packages')
doit être ajoutée.Le but du cas de test est d'étudier la flexion d'une poutre rectangulaire sous une charge. Il est accessible directement dans FreeCAD depuis l'atelier FEM dans Utilitaires -> Ouvrir les exemples FEM -> Solveurs -> (CalculiX ou Elmer ou z88) -> CCX cantilever face load.
Pour démarrer le cas, cliquez simplement sur le bouton Exécuter la macro , et sélectionnez FemCloudComputingQarnot.FCmacro
. Si la macro ne démarre pas et que vous avez une erreur telle que No module named 'gui', essayez de fermer et de redémarrer FreeCAD après vous être assuré que la macro et le code sont au bon endroit. Si l'erreur est No module named 'qarnot', assurez-vous d'avoir rempli le bon chemin d'accès pour le SDK Qarnot comme expliqué dans la section des prérequis (5.d).
Dans la fenêtre qui apparaît, cliquez sur le bouton set token et remplissez votre jeton secret.
Ensuite, cliquez sur le solveur que vous souhaitez utiliser (SolverCalculiX
, SolverElmer
ou SolverZ88
) et cliquez sur start. Vous pouvez surveiller vos tâches sur notre plateforme en cliquant sur l'icône de lien à côté de Current tasks. Une fois la tâche terminée, sélectionnez-la et cliquez sur load.
Les résultats peuvent être visualisés comme n'importe quel autre résultat FEM de FreeCAD. Voici une façon de procéder :
CalculiX_static_Results
ou z88_Z88_static_result
et cliquez sur FEM PostPipelineFromResult. Si vous avez utilisé Elmer, vous pouvez ignorer cette étape.ResultPipeline
ou SolverElmerResult
). Dans la liste mode, sélectionnez Surface with Edges. Ensuite, dans field, choisissez displacement. La vue 3D devrait maintenant afficher un maillage coloré qui représente la magnitude du déplacement de la poutre en porte-à-faux. Cliquez sur ok pour fermer la tâche. Si les faces du maillage n'apparaissent pas colorées, allez dans Édition -> Préférences -> Affichage -> Vue 3D et activez Couleur de rétroéclairage (Backlight color).ResultPipeline
ou SolverElmerResult
) et cliquez sur le filtre de déformation (Warp filter) (à côté du bouton de création de pipeline précédemment utilisé). Utilisez le curseur pour sélectionner le facteur de déformation (warp factor), c'est-à-dire le rapport entre le déplacement réel et celui affiché. Par exemple, vous pouvez choisir 10 pour mieux voir la déformation (changez le facteur maximum si nécessaire). Ensuite, dans le panneau en dessous, choisissez Surface with edge et displacement dans les listes mode et Field. Un nouvel objet 3D devrait être apparu sur la vue 3D. Il montre la poutre en porte-à-faux déformée. Cliquez sur ok pour fermer la tâche.Vous pouvez également trouver plus d'informations ici sur le fonctionnement du code et sur la manière de l'utiliser dans un environnement sans interface graphique, par exemple afin d'écrire un script pour démarrer un ensemble de simulations à la fois.
Voilà ! Si vous avez des questions, veuillez contacter qlab@qarnot.com, et nous vous aiderons avec plaisir !