Retour
Simulation
Octobre 2021

Analyse par Éléments Finis avec FreeCAD sur le Cloud Qarnot

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.

Version

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.

Prérequis

Assurez-vous de remplir les prérequis Qarnot avant de lancer le cas :

  1. Créer un compte Les 15 premiers euros sont gratuits !
  2. Installer le SDK Python avec la commande pip install qarnot.

Vous aurez également besoin de FreeCAD avec Gmsh installé et de la macro. Voici comment les installer :

  1. Installer la dernière version de FreeCAD à partir de son site web. Si vous êtes un utilisateur Linux, une fois le fichier .AppImage téléchargé, utilisez la commande chmod +x FreeCAD_0.19****.AppImage pour le rendre exécutable.
  2. Installer et configurer Gmsh :
    • Télécharger les binaires Gmsh et le décompresser quelque part. Les versions antérieures à la 4.8.0 peuvent causer des erreurs. Si vous êtes un utilisateur Linux, assurez-vous de télécharger la dernière version au lieu d'utiliser apt-get qui installe une version obsolète. Exécutez gmsh pour vous assurer qu'il est correctement installé.
    • Ouvrez FreeCAD et allez dans l'atelier FEM, puis dans Édition -> Préférences -> FEM. Sélectionnez l'onglet Gmsh et remplissez le chemin d'accès aux binaires Gmsh (par exemple /home/gmsh-4.8.4-Linux64/bin/gmsh).
  3. Si vous souhaitez utiliser Elmer, vous devrez également l'installer. La méthode est la même que pour Gmsh :
    • Téléchargez les binaires ou installez-les avec apt-get si vous êtes un utilisateur Linux.
    • Si vous avez téléchargé les binaires, allez dans Édition -> Préférences -> FEM, sélectionnez Elmer et remplissez le chemin d'accès aux deux binaires Elmer (ElmerGrid et ElmerSolver).
  4. Installer la macro Qarnot :
    • Rendez-vous sur le GitHub de la macro, et clonez ou téléchargez le code dans votre dossier de macros. Son emplacement peut être vu en bas de la fenêtre de sélection de macros ouverte par le bouton Exécuter la macro (voir ci-dessous).
    • Si le code de la macro se trouve dans un sous-dossier du dossier Macro, faites ce qui suit :
      • Copiez le fichier FemCloudComputingQarnot.FCmacro dans le dossier macro.
      • Dans FreeCAD, cliquez sur le bouton Exécuter la macro, sélectionnez FemCloudComputingQarnot.FCmacro et cliquez sur Modifier à droite.
      • Modifiez la ligne 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.
    • Enregistrez avec Ctrl+S. Vous pouvez maintenant fermer l'onglet affichant le code de la macro.

Cas de test

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.

Lancement du cas

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.

Résultats

Les résultats peuvent être visualisés comme n'importe quel autre résultat FEM de FreeCAD. Voici une façon de procéder :

  1. Si vous avez utilisé CalculiX ou Z88, sélectionnez CalculiX_static_Results ou z88_Z88_static_result et cliquez sur FEM PostPipelineFromResult. Si vous avez utilisé Elmer, vous pouvez ignorer cette étape.
  2. Avant de visualiser le résultat, faites de la place en masquant d'autres objets (cela peut avoir été fait automatiquement). Pour ce faire, sélectionnez simplement un objet dans l'arborescence des objets (dans le panneau Étiquettes et Attributs) et appuyez sur la barre d'espace pour masquer ou afficher l'objet. Je recommanderais de masquer l'objet Mesh et les contraintes.
  3. Double-cliquez sur l'objet post pipeline (nommé 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).
  4. Pour mieux visualiser la flexion, sélectionnez l'objet post pipeline (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.
  5. À ce stade, il est possible que votre objet de résultat de maillage précédent apparaisse tout rouge ou orange. Pour résoudre ce problème, il vous suffit de demander à FreeCAD d'actualiser le dessin. Double-cliquez sur l'objet de résultat et dans la liste, sélectionnez à nouveau Displacement.
  6. Utilisez la barre d'espace pour masquer ou afficher des objets. Dans l'arborescence des objets, l'objet de résultat déformé se trouve à l'intérieur de l'objet pipeline, alors cliquez sur le triangle d'expansion pour le voir.

Conclusion

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 !

Retour

Nos articles